zoukankan      html  css  js  c++  java
  • Android多媒体开发-- OpenMax IL简介

    1.openmax 简介

    OpenMax是一个多媒体应用程序的框架标准,由NVIDIA公司和Khronos在2006年推出。
    OpenMAX分为3层:
    第一层:OpenMax DL(Development Layer,开发层)
    第二层:OpenMax IL(Integration Layer,集成层)
    第三层:OpenMax AL(Appliction Layer,应用层)


    2.OpenMax IL简介

    OpenMax IL 处在中间层的位置,OpenMAX IL 作为音频,视频和图像编解码器 能与多媒体编解码器交互,并以统一的行为支持组件(例如资源和皮肤)。这些编解码器或许是软硬件的混合体,对用户是 的底层接口应用于嵌入式或 和移动设备。它提供了应用程序和媒体框架, 透明的。本质上不存在这种标准化的接口,编解码器供 应商必须写私有的或者封闭的接口,集成进移动设备。 IL 的主要目的 是使用特征集合为编解码器提供一个系统抽象,为解决多个不同媒体系统之间轻便性的问题。

    OpenMax IL 的目的就是为硬件平台的图形及音视频提供一个抽象层,可以为上层的应用提供一个可跨平台的支撑。这一点对于跨平台的媒体应用来说十分重 要。本人也接触过几家高清解码芯片,这些芯片底层的音视频接口虽然功能上大致相同,但是接口设计及用法上各有不同,而且相差很多。你要想让自己开发的媒体 应用完美的运行在不同的硬件厂商平台上,就得适应不同芯片的底层解码接口。这个对于应用开发来说十分繁琐。所以就需要类似于OpenMax IL 这种接口规范。应用假如涉及到音视频相关功能时,只需调用这些标准的接口,而不需要关心接口下方硬件相关的实现。假如换了硬件平台时,只需要把接口层与硬件适配好了就行了。上层应用不需要频繁改动。
    你可以把OpenMax IL 看作是中间件中的porting层接口,但是现在中间件大部分都是自家定义自己的。
    OpenMax 想做的就是定义一个这样的行业标准,这样媒体应用、硬件厂商都遵循这种标准。硬件厂商将OpenMax 与处理器一并提供,上层的多媒体框架想要用到硬件音视频加速功能时,只需遵循openmax的接口就可以扩平台运行。
    可喜的,现在越来越多的多媒体框架及多媒体应用正在遵循openmax标准,包括各种知名的媒体开源软件。越来越多的芯片厂商也在遵循openmax的标准。对于现在的音视频编解码来说,分辨率越来越高,需要芯片提供硬件加速功能是个大的趋势。我相信 接口的标准化是一定要走的。

    3.OpenMax IL结构

    OpenMax IL主要内容如下所示。

     客户端(Client):OpenMax IL的调用者

     组件(Component):OpenMax IL的单元,每一个组件实现一种功能

     端口(Port):组件的输入输出接口

     隧道化(Tunneled):让两个组件直接连接的方式

    组件、端口、隧道化思想和GStreamer 中的 pipeline 十分类似。
    Component实现单一功能、或是Source、Host、Accelerator和Sink。
    Port 是 Component对外的输入输出口。
    通过Tunneled 将单一Component串联起来形成一个完整功能。
    OpenMax Core是辅助各个组件运行的部分
            

    4.Component内部结构


    Component 的基本模型如上图,可以把它想象成一个加工车间:

    输入端口输入材料

    输出端口输出加工完成品

    通过handle 来给车间发送指令或者或者状态

    将事件及时发送给车间外部管理者

  • 相关阅读:
    使用__autoload()来管理文件导入
    PHP 类中的常量
    PHP 访问类中的静态属性
    PHP 中的静态变量的简单使用
    Vscode下Python的用户界面介绍
    VsCode下代码导航
    在VS代码中编辑Python
    vscode下Python设置参考
    在VS Code中对Python进行单元测试
    解决html5中video标签无法播放mp4问题的办法
  • 原文地址:https://www.cnblogs.com/shakin/p/4096525.html
Copyright © 2011-2022 走看看