论文范文网-权威专业免费论文范文资源下载门户!
当前位置:毕业论文格式范文>硕士论文>范文阅读
快捷分类:

关于AndroidS2论文范文 基于AndroidS2视频播放器设计和实现相关论文写作参考文献

分类:硕士论文 原创主题:AndroidS2论文 更新时间:2024-03-09

基于AndroidS2视频播放器设计和实现是关于本文可作为AndroidS2方面的大学硕士与本科毕业论文android论文开题报告范文和职称论文论文写作参考文献下载。

摘 要:为了在Android上实现 S格式视频播放,根据现有的Window下C语言源代码,移植并开发了一款基于Android的 S2视频播放器.并对该播放器的系统架构、解码模块以及移植方法进行了具体的阐述.该播放器在不同配置的Android机上进行测试,结果表明其可以满足用户对于本地 S视频播放的需求,具有一定的市场前景.

关键词:Android; S2;视频播放器

S是我国具备自主知识产权的第二代信源编码标准,是基于我国创新技术和部分公开技术的自主标准,编码效率比MPEG-2高2-3倍, S2的编码效率又比 S1提高1倍以上.近些年随着 S技术的发展和其相关产业链的不断形成,目前国内外已经出现了可用于 S视频解码的专用芯片、以及嵌入式平台的 S视频解码器,但其存在着系统资源有限,对硬件的依赖性高等问题.随着Android用户的不断提高以及开发技术不断成熟,用户对移动端 S视频播放的需求越来越迫切,Android下的 S2视频播放器的开发受到了一定的关注.

早期的Android移植C/C++必须要使用JNI调用C动态库,存在着开发难度大,兼容性差等问题.2010年4月,谷歌正式对开发者发布了Android NDK,NDK对单纯使用JNI的方式进行了封装,开发人员可以使用NDK更方便地实现Java和C/C++的交叉编译.同时,这种方法提高了兼容性,更容易进行内存调试.如今,Android应用程序的开发有3种编程语言组合可以选择:1)Java;2)Java+C/C++;3)C/C++.

本文在研究了 S2的C语言源码和官方文档的基础上,考虑到开发的便宜性,选用第二种方案,使用Java+C/C++作为移植工作的编程语言.

1播放器的架构及其实现

1.1系统整体构建

Android软件架构通过一个应用程序框架提供一个Linux内核和一个C/C++库集合,共有4层,分别为Linux内核层,Native层,Application Framework层,Applications层.其中,Native层可分为Libraries和Android Runtime两部分.

Android原生视频播放依托于Android多媒体系统,纵向跨越了Android系统的所有4个层次.其中Native层是多媒体系统的重点,实现了视频处理的绝大部分函数.Android多媒体库中Native层Libraries的C/C++库对于早期的视频编码式(如H.264)提供完整的视频处理功能,仿照Android原生视频的架构,本文进行了如下的架构设计,如图1所示.

谷歌官方推荐使用NDK来进行Native层Libraries的C/C++库的移植.通过NDK将C/C++代码生成为JNI可调用的动态或静态链接库完成Native层的工作.

1.2软件功能设计

本文设计的视频播放器主要由文件管理和视频播放两个模块组成.文件管理可以按目录浏览文件,也可对 S格式视频进行搜索.视频播放主要实现视频的播放、暂停、变速、画面缩放、转屏等功能.软件功能框图如图2所示.

1.3 S2视频解码模块

S2解码函数作为整个系统中最核心的部分,其性能直接影响到解码的效率和复杂度.为了节约存储空间以及降低代码的耦合度,根据联合信源公司的 S2-P2项目源码,本文将其中解码函数编译成动态链接库lib S2.so.并向应用层预留了如下几个接口:

OpenDec():打开 S2解码器;

Dec S2():解码 S2视频流;

CloseDec():关闭 S2解码器.

其中Dec S2():是视频解码接口,主要负责视频解码.解码过程可分为如下几个模块:变长解码(熵解码)、反扫描、反量化和反变换、帧内预测、帧间预测、环路滤波.其结构框图如图3所示.

根据生成的动态链接库进行移植,经eclipse平台测试后发现,在现有的程序结构以及编译指令的条件下,解码速度有限,故本文对源代码进行了如下优化:

1.3.1对程序代码进行整合

源代码读入码流后,对每个参数都要进行I/P/B帧的判断和解析,给系统带来额外开销.本文将其修改为对I/P/B帧只进行一次判断,各部分分别对不同帧进行不同处理,这样就可以极大的节省CPU的开销,改善视频解码器的处理性能.

1.3.2对解码算法优化

本文对全零块的识别处理进行优化,在反变换时首先判别全零检测标志位(cbp),若其为0,则不需进行反变换;当进行图像重构时,同样先判断解码块的对应标志位,若为0,则当前图像块的像素值就是预测块得值.这样可以极大提高程序的运行效率.

1.4 S2基于Android的移植

编译环境:JDK1.6,Cygwin2.4.1,Eclipse Luna

运行平台:Android2.3-Android5.1(API Level:9-20)

NDK版本:android-ndk-r9d

移植步骤如下:

1) 编写带有native声明的方法的java类

在Eclipse中新建一个Android工程,修改DecodeActivity,代码如下:

2)使用javac命令编译所编写的java类

在cmd中转移至.java文件所在目录,键入javac DecodeActivity.java命令,会在该目录中生成DecodeActivity.class字节码文件.

3)生成.h头文件

在cmd中键入javah DecodeActivity.java命令,会在该目录中生成DecodeActivity.h头文件,内容如下:

总结:本论文为您写AndroidS2毕业论文范文和职称论文提供相关论文参考文献,可免费下载。

参考文献:

1、 一种环形网络的可扩展流水仲裁器设计 摘要:对环形网络的仲裁器结构进行研究,提出了一种可扩展流水仲裁器结构,能够同时完成通信缓冲和通信链路的分配 对14个通信节点互连进行了建模模拟,。

2、 基于单片机8路抢答器设计和实现 摘 要: 设计了一种以单片机AT89S51为控制核心的8路抢答器,从硬件电路制作和软件程序编写两个方面详细介绍了8路抢答器的设计方法。实验结果表。

3、 电视台高清演播室视频系统的设计和维护 摘要:随着科技的持续进步,各行各业加快了发展步伐,在媒体行业不断发展的背景下,高清演播室逐渐普及到人们的日常生活中,在演播室普及的同时对其发展也。

4、 巧用播放器为百度网盘下载提速 播放软件变身下载工具其实有些软件附带的一些功能,就可以解决用户面临的一些大问题。比如我们利用一款播放软件,就可以有效地解决百度网盘下载的问题。。

5、 一种低功耗便携式RFID读写器设计 摘 要:本文提出一种低功耗便携式RFID读写器的设计方案。详细阐述了RFID读写器的设计原理、硬件结构和软件的设计方法。RFID读写器基于MSP。

6、 网络电视电影播放器 不需安装卫星天线、不需机顶盒、更不需要DVD机……走到哪里看到哪里,想看什么就看什么!此产品免月租、免安装,即插即看,只要有宽带网络,上万部高清。