按关键词阅读: android 基于 论文 硕士学位 开发 研究 框架 OpenMAX
四个组成分别是Source组件、Host组件、Accelerator组件和Sink组件 。
其中 , Source组件只有一个 。
48、输出端口 , Host组件有一个输入端口和输出端口;
Accelerator组件有一个输入端口 , 使用了硬件编解码器 , 以加快整个环节 。
Accelerator组件和Sink组件 , 通过私人通信 , 组件端口一直没有明确的组成部分 。
OpenMAX IL在使用的时候 , 处理数据流也会有自己的不同的处理方式:既有经过客户端的 , 也有不经过客户端的 。
Source组件到Host组件的数据流就是需要客户端的;
而Host组件到Accelerator组件的数据流就没有经过客户端 , 使用了隧道化(Tunneled)的方式;
Accelerator组件和Sink组件甚至可以使用私有的通讯方式 。
OpenMAX IL的组件是OpenMAX 。
49、 IL实现的核心内容 , 一个组件以输入、输出端口为接口 , 端口可以被连接到另一个组件上 。
外部对组件可以发送命令 , 还进行设置和获取参数、获取配置等操作 。
组件的端口可以包含缓冲区(Buffer)的队列 。
OpenMAX IL的组件的处理的核心内容就是:把Buffer放在输入端口 , 如何进行解码或者编码操作处理;再把Buffer从输出端口拿出 , 即是将解码或者编码后的数据进行输出 , 由此多组件相联接可以构成流式的处理 。
OpenMAX IL中一个组件的结构如图3.3所示图 3.3 OpenMAX IL 组件结构OpenMAX IL的组件功能和它定义的端口类型密切相关 , 通常情况下:只有一个输出端口的 , 为Source 。
50、组件;
只有一个输入端口的 , 为Sink组件;
有多个输入端口 , 一个输出端口的为Mux组件;
有一个输入端口 , 多个输出端口的为DeMux组件;
输入输出端口各一个组件的为中间处理环节 , 这是最常见的组件 。
不同的OpenMAX IL组件它的端口支持的数据类型也不同 。
例如 , 对于一个输入、输出端口各一个的组件 , 它的输入端口可以是WMA格式的数据 , 输出端口可以是PCM格式的数据 , 那么这就是一个WMA的解码组件 。
隧道化(Tunneled)是关于组件连接方式的一个概念 。
通过隧道化可以将不同的组件的一个输入端口和一个输出端口连接到一起 , 在这种情况下 , 两个组件的处理过程合并 , 两个组件共同处理数据 。
特别的 , 对于一个输入端 。
51、口和一个输出端口的组件 , 两个组件可以作为类似一个组件来使用 。
但是这种方式在Android Opencore里没有用到 。
3.2.1.2 OpenMAX DL(Development Layer) OpenMAX DL定义了一套API, 它是音频 , 视频和图像功能模块的集合 。
它包括了音频信号的处理功能 , 如 FFT 和 Filter, 图像原始处理 , 如颜色空间的转换 , 和视频的原始处理 , 以实现例如 MPEG-4, H.264, MP3 , AAC和JPEG 等编解码器的优化 。
OpenMAX 通过iDL和aDL来加速 , iDL 使用 OpenMAX IL 结构 , aDL向OpenMAX DL API增加了异步接口 。
52、 。
3.2.1.3 OpenMAX AL (Appliction Layer) OpenMAX AL 定义了一下多媒体应用程序的框架标准 。
3.2.2 Android中OpenMAX的使用情况OpenMAX就是一个为多媒体应用程序准备的API标准 。
其中 , OpenMAXIL(集成层)技术规格定义了媒体组件接口 , 以便在嵌入式器件的流媒体框架中快速集成加速编解码器 。
在Android中 , OpenMAX层 , 通常可以用于多媒体引擎的插件 , Android的多媒体引擎OpenCore和StageFright都是使用OpenMAX作为插件 , 主要用于的编解码(Codec)处理 。
在Android的框架层 , 在Andro 。
53、id里面定义了一套OpenMAX接口 , 和标准的接口概念基本相同 , 但是使用C+类型的接口 , 并且使用了Android的BinderIPC机制 。
Android封装OpenMAX的接口被StageFright使用 , OpenCore没有使用这个接口 , 而是使用其他形式对OpenMAXIL层接口进行封装 。
Android系统Opencore的编解码部分采用对OpenMAX IL层进行封装来使用 , 使用的是标准OpenMAX IL层的接口 , 但是这些接口Google又进行了简单的封装 , 并没有直接使用OpenMAX IL层提供的纯C接口 。
封装后的OpenMAX IL组件很容易被嵌入到StageFright中 。
3.2. 。
54、3 Android 中OpenMAX的实现的内容Android中Opencore使用的主要是OpenMAX的编解码功能 。
虽然OpenMAX也可以生成输入、输出、文件解析和构建等组件 , 但是在各个系统 (Android等)中使用的最多的还是编解码组件 。
原因是媒体的输入、输出环节和系统的关系很大导致引入OpenMAX标准比较麻烦;文件解析和构建环节一般也不需要使用硬件加速 。
编解码组件也是最能体现硬件加速的环节 , 因此最常使用 。
稿源:(未知)
【傻大方】网址:/a/2021/0621/0022536619.html
标题:基于|基于Android的OpenMAX框架研究与开发硕士学位论文( 七 )