1、浙江大学硕士学位论文 摘要i基于 Android 的 OpenMAX 框架研究与开发 浙江大学硕士学位论文 摘要ii摘要从近几年手机的发展趋势看,智能手机越来越流行,Android 手机表现的尤为强劲。而多媒体播放的娱乐 功能显得尤为重要。如何更好地提高多媒体效率成为了用户选择使用的一大契机。本文主要研究在 Android 平台上实现硬件编解码。主要是 jni 技术实现数据交换,通 过对 OpenMAX 框架的抽象封装,流程控制,数据输入输出。从而实现硬件编解码,并且把 OpenMAX 框架硬件编解码集成到 项目中,加强多媒体文件编解码速度,提高性能。论文的研究结果可以提供一个 优秀的 Ope
2、nMAX 硬件编解码框架, 为其他 Android 手机开发者参考。本文的主要创新点和贡献点如下:1 实现多媒体硬件编解码,提高多媒体文件的编解码效率。2 对 OpenMAX 框架的抽象和封装,更加便于开发调用。3 实现更加精简的代码便于后期维护。4 加强产品的使用性,提高产品的用户体验。本文同时介绍了 Google Android 平台及多媒体框架的工作机制, OpenMAX框架,硬件编解码。详细分析 OpenMAX 框架的运行机制。对 Android 和OpenMAX 有一个更加详细的了解。关键词: Android,OpenMAX,多媒体框架,编解码浙江大学硕士学位论文 Abstracti
3、iiAbstractDevelopment trends of mobile phones in recent years, smart phones become increasingly popular,Android phone is particularly strong. The entertainment feature of multimedia player is particularly important. How to better improve the the Multimedia efficiency has become a great opportunity f
4、or the user to choose.This paper mainly studies hardware codec on the Android platform. The main is the jni technology for data exchange, the abstract encapsulation for the OpenMAX framework ,process control, data input and output. In order to achieve hardware codec, and OpenMAX framework hardware c
5、odec integrated into the project, to enhance multimedia file encoding and decoding speed, improve performance. The thesis results can provide an excellent the OpenMAX hardware codec framework of reference for other Android phone developer. The main innovation and contribution of this article are as
6、follows:1,multimedia hardware codec, improve the efficiency of encoding and decoding of multimedia documents.2, abstraction and encapsulation of the OpenMAX framework easier to develop.3, to achieve a more streamlined code to facilitate later maintenance.4, to enhance the use of the product, to impr
7、ove the user experience.This paper describes the working mechanism of the Google Android platform multimedia framework, the OpenMAX framework, hardware codec. Detailed analysis of the operating mechanism of the OpenMAX framework. A more detailed understanding of the Android and OpenMAX.Key Words: An
8、droid, OpenMAX, multimedia framework, Hard-codec 浙江大学硕士学位论文 目录I目录摘要 .iAbstract.ii图目录 .IV表目录 .V第 1 章 绪论 .11.1 项目背景 .11.2 项目研究目的和意义 .11.3 国内外现状分析 .21.4 本人主要工作 .31.5 章节安排 .4第 2 章 Android 系统的介绍 .52.1 Android 系统的简介 .52.2 Android 平台的架构 .62.2.1 Linux Kernel(Linux 内核 层) .62.2.2 Library(函数库) .62.2.3 Android
9、Runtime(Android 运行时库) .72.2.4 Application Framework(应用软件架构) .72.2.5 Application(应用程序) .82.3 Android 系统的多媒体框架 .82.4 本章小结 .9第 3 章 OpenMAX 介绍 .103.1 OpenMAX 的简介 .103.2 OpenMAX 的概述 .103.2.1 OpenMAX 标准化接口 17.103.2.1.1 OpenMAX IL(Integration Layer).103.2.1.2 OpenMAX DL(Development Layer) .123.2.1.3 OpenMA
10、X AL (Appliction Layer).123.2.2 Android 中 OpenMAX 的使用情况 .153.2.3 Android 中 OpenMAX 的实现的内容 .153.2.4 Android 中的 OpenMAX 接口函数 .163.3 本章小结 .19第 4 章 OpenMAX 框架硬编解码分析和设计 .204.1 OpenMAX 框架硬件编解码结构 .204.2 OpenMAX 框架硬件编解码模块及功能分析 .214.2.1 JNI 模块 .21浙江大学硕士学位论文 目录II4.2.2 硬件解码功能 .224.2.2.1 数据转换模块 .224.2.2.2 硬件控制模
11、块 .224.2.3 硬件编码功能 .234.2.3.1 数据转换模块 .234.2.3.2 硬件控制模块 .234.3 OpenMAX 框架硬件编解码的整体设计 .234.3.1 OpenMAX 框架硬件编解码的整体结构 .234.3.2 OpenMAX 框架硬件解码的数据控制结构 .244.3.3 OpenMAX 框架硬件编码控制结构 .244.4 本章小结 .25第 5 章 OpenMAX 框架的硬编解码的实现 .265.1 系统整体流程 .265.1.1 具体流程 .265.1.2 数据处理流程 .275.1.3 编解码的参数设置 .285.1.3.1 解码芯片参数 .285.1.3.
12、2 编码芯片参数 .285.2 基于 OpenMAX 框架硬件解码 .295.2.1 基于 OpenMAX 框架硬件解码整体设计 .295.2.2 基于 OpenMAX 框架硬件解码的设计 .305.2.2.1 硬件解码的设置 .305.2.2.2 初始化的设计 .305.2.2.3 打开的设计 .315.2.2.4 关闭的设计 .325.2.2.5 数据处理过程具体函数 .325.2.3 基于 OpenMAX 框架硬件解码的实现 .335.2.3.1 变量和结构体的定义 .335.2.3.2 主要函数 .345.3 基于 OpenMAX 框架硬件编码 .345.3.1 基于 OpenMAX
13、框架硬件编码整体设计 .345.3.2 基于 OpenMAX 框架硬件编码的设计 .355.3.2.1 硬件编码设置 .365.3.2.2 初始化的设计 .365.3.2.3 打开的设计 .365.3.2.4 启动的设计 .375.3.2.5 关闭的设计 .385.3.2.6 数据处理过程具体函数 .39浙江大学硕士学位论文 目录III5.3.3 基于 OpenMAX 框架硬件解码的实现 .405.3.3.1 变量和结构体的实现 .405.3.3.2 主要函数 .415.4 本章小结 .42第 6 章 Android 中 OpenMAX 框架硬编解码的应用 .436.1 OpenMAX 框架硬
14、件编解码的应用 .436.1.1 生成动态库 .436.1.2 Jni 的数据交互 .446.2 MovieStory 中 OpenMAX 框架硬件解码的应用 .446.2.1 MovieStory 项目的介绍 .446.2.2 MovieStory 使用 OpenMAX 框架硬解码 .446.2.2.1 OMX 开启 .446.2.2.2 数据流程 .456.2.2.3 OMX 的关闭 .456.3 Amdv 中 OpenMAX 框架硬件编码应用 .456.3.1 Amdv 的简单介绍 .456.3.2 Amdv 使用 OpenMAX 框架硬编码 .476.3.2.1 初始化 .476.3.
15、2.2 数据的传入 .476.3.2.3 数据的输出 .476.3.2.4 退出 .486.4 本章小结 .48第 7 章 OpenMAX 效果测试 .497.1 效果测试环境 .497.2 MovieStory 硬件解码效果测试 .497.2.1 MovieStory 硬件解码效果测试设计 .497.2.2 MovieStory 硬件解码效果数据对比 .497.2.3 MovieStory 硬件解码加强点 .497.3 Amdv 中的硬件编码效果的测试 .507.3.1 Amdv 硬件编码效果测试设计 .507.3.2 Amdv 硬件编码效果数据对比 .507.3.3 Amdv 硬件编码效果
16、加强点 .517.4 本章小结 .51第 8 章 总结 .52参考文献 .53作者简历 .55致谢 .56浙江大学硕士学位论文 图目录IV图目录图 2.1 Android 系统的构成 .6图 2.2 Android 多媒体播放整体框架 .8图 3.1 OpenMAX IL 层次结构 .11图 3.2 OpenMAX IL 组件工作流程 .13图 3.3 OpenMAX IL 组件结构 .14图 3.4 OMX Codec 解码序列 图 .18图 4.1 OpenMAX 框架硬件编解码整体架构 .20图 4.2 OpenMAX 框架硬编解码的内部结构 .23图 4.3 OpenMAX 框架硬解码的数据控制结构 .24图 4.4 OpenMAX 框架硬编码的数据控制结构 .25图 5.1 整体流程类图 .26图 5.2 编解码控制流程 .