分类筛选
分类筛选:

关于AndroidS2论文范文资料 与基于AndroidS2视频*设计和实现有关论文参考文献

版权:原创标记原创 主题:AndroidS2范文 科目:硕士论文 2024-03-09

《基于AndroidS2视频*设计和实现》:本论文为您写AndroidS2毕业论文范文和职称论文提供相关论文参考文献,可免费下载。

摘 要:为了在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论文参考资料:

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

相关免费毕业论文范文

热门有关优秀论文题目选题

和你相关的