目录
- 参考
- 背景
- 简介
1. 参考
2. 背景
随着消费者对音视频、语音和3D等应用需求的增长,多媒体硬件平台的开发步伐正在加快,通常这类产品需要高性能处理和高数据吞吐量能力。因此出现了各种各样的解决方案,都旨在加速多媒体应用程序。包括:
- 具有特定多媒体扩展的通用处理器
- 底层的硬件加速器
- 包括DSPs在内的多处理器体系结构
- 专用硬件视频解码器
所有这些体系结构变体的关键挑战之一是开发有效的代码。尽管通常都提供编译器,但是很少能够从高级编程语言中充分利用整个体系结构的潜力。其结果是,应用程序的大部分通常是用汇编语言编写的,以专门针对硬件平台。不同的多媒体硬件解决方案的大量涌现意味着软件必须为移植到的每个新平台重新编写和优化。
这种执行效率低下的结果是推迟新产品的引进,增加开发成本,降低产品质量,最终在市场需求不断增长的时候减缓了多媒体领域的创新。
3. 简介
OpenMax(Open Media Acceleration),也被称为OMX,是无授权费的、C语言编写的多媒体API标准,API提供了音频、视频、静态图片的一些常用处理操作的接口。目标是降低将多媒体软件移植到新的处理器和体系结构的成本和复杂性。
- 2004.07,OpenMAX最初宣布,工作组最初由ARM、摩托罗拉、三星等公司的成员组成。
- 2005.12,1.0版本发布。
- 由非盈利技术联盟Khronos Group管理。
- 自2012年以来没有任何产品被宣布为符合标准。OpenMAX规范从来没有更新过以支持最近的编解码器,比如HEVC或VP9,这使得Android实际上成为OpenMAX IL标准的更新源。
OpenMAX分为3层:
- OpenMAX AL(Application Layer,应用层),提供应用程序(如媒体播放器)和多媒体框架(如Android上的StageFright或MediaCodec API、Windows上的DirectShow、FFmpeg或Libav、GStreamer)之间的标准化接口。
- OpenMAX IL(Integration Layer,集成层),提供多媒体框架和多媒体组件(如硬件或软件的音/视频编解码器)之间的标准化接口。
- OpenMAX DL(Development Layer,开发层),提供软件(如视频编解码器和3D引擎)和物理硬件(如DSP、CPUs、GPUs)之间的标准化接口,它包括音频或视频处理功能如fft、过滤器、颜色空间转换、视频处理等,用于加速编解码等处理。
网友评论