首页 > 其他分享 >OpenMax 介绍

OpenMax 介绍

时间:2023-04-30 19:05:39浏览次数:26  
标签:IL component 介绍 API OpenMAX 组件 OpenMax


一、OpenMax
OpenMAX是由Khronos组织所发布的一种开放标准,用来实现高效能的多媒体加速。为了因应目前众多的平台与开发装置,在media上也需要制定开放标准的APIs,OpenMAX 是一个免费的跨平台API,适合用在multimedia components的开发,特色是可以在不同的平台上开发整合。
OpenMax 实际上分成三个层次,自下而下上分别是和,OpenMax DL(开发层),OpenMal IL(集成层),OpenMax AL(应用层)。


提示:在实际的应用中,OpenMax的三个层次中使用较多的是OpenMax IL集成层,由于操作系统到硬件的差异和多媒体应用的差异,
OpenMax的DL和AL层使用相对较少


二、OpenMax IL
2.1、定义
OpenMAX IL component:封装了目标系统所需功能的组件,IL封装为函数提供了一个标准接口。在IL层,component代表各个功能模块,可以是sources, sinks,codecs, filters, splitters, mixers等等。
OpenMAX IL core:相关平台的代码,具有将OpenMAX IL component载入主存储器的功能,当应用程序不再需要某组件时,IL core将负责把该组件从存储器卸去。一般来说,组件一旦载入存储器,IL core将不在参与应用程序与组件之间的通信。
IL client:访问IL core或IL component的软件层,可能是位于GUI应用程序的下层,如GStreamer。IL client是一个典型的功能块,如filter graph multimedia ramework, OpenMAX AL, 或application。IL client与OpenMAX IL core进行交互, 利用IL core加载和卸载组件、在组件间建立直接通信以及获得组件方法的入口。
Tunnels/Tunneling:直接在两个IL component间操作的标准的数据隧道。


2.2、接口
OpenMAX IL API是一个基于组件的媒体API,由两部分组成:内核API和
组件API。
2.2.1 core
OpenMAX IL API core的作用是用来动态地装载和卸载component,并且用来建立 component之间的通信的。组件一旦加载,则API允许用户直接与组件进行通信。另外,内核允许用户在两个组件之间建立一个communication tunnel,一旦建立,将不再使用内核API,通信直接在组件间进行。
2.2.2 component
在IL层,component代表各个功能模块,可以是sources, sinks, codecs, filters,splitters, mixers等等。一个组件通过一系列相关的数据结构和接口可以设置或检索各个参数,这些参数包括相的组件操作数据或是组件的实际状态。
2.3 Ports
组件间的数据进出由叫做ports的接口进行传输,ports不仅代表组件间的数据联系,还代表需要维持这个联系的buffers。用户可以经过input ports发送数据到组件,或经过output ports接收数据。将一个组件的output port与另一个组件类型相似的input por相连,在组件间建立一个communication tunnel。

标签:IL,component,介绍,API,OpenMAX,组件,OpenMax
From: https://blog.51cto.com/u_548275/6237996

相关文章

  • Android主流屏幕分辨率介绍
    对于Android游戏开发我们不得不像iPhone那样思考兼容Android平板电脑,苹果要考虑iPad、iPhone3GS和iPhone4等屏幕之间的兼容性,对于开发Android游戏而言也不例外,考虑的机型更多。常规的我们可能只考虑QVGA,HVGA,WVGA,FWVGA和DVGA,但是抛去了手机不谈,可能平板使用类似WSVGA的1024......
  • Atomic:原子类介绍
    Atomic是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。所以,所谓原子类说简单点就是具有原子/原子操作特征的类。在java.util.concurrent.atomic下。根据操作的数据类型,可以将JUC包中的原子类分为4类: ......
  • 以太网扫盲(一)各种网络总线 mii总线,mdio总线介绍
    本文主要介绍以太网的MAC(MediaAccessControl,即媒体访问控制子层协议)和PHY(物理层)之间的MII(MediaIndependentInterface,媒体独立接口),以及MII的各种衍生版本——GMII、SGMII、RMII、RGMII等。简介从硬件的角度看,以太网接口电路主要由MAC(MediaAccessControl)控制器和物理层接口......
  • Delphi原子操作函数介绍
    一、Delphi的原子操作函数在System.SyncObjs单元中,有一个TInterlocked的密封类,其十多个类函数(classfunction)其实都是调用的System单元的原子操作函数,只是封装得更容易理解。使用方法:如对一个数值加一,则直接b:=TInterlocked.Increment(a);或TInterlocked.Increment(a);,不用创建......
  • CRF介绍
    (一)什么是CRF?CRF,全称ConditionalRandomFields,中文名:条件随机场。是给定一组输入序列的条件下,另一组输出序列的条件概率分布模型。(二)什么时候可以用CRF?当输出序列的每一个位置的状态,需要考虑到相邻位置的状态的时候。举两个例子:1、假设有一堆小明日常生活的照片,可能的状态有......
  • Kubernetes(K8S) kubesphere 介绍
    使用Kubeadm部署Kubernetes(K8S)安装--附K8S架构图Kubernetes(K8S)kubesphere安装官网地址:https://kubesphere.com.cn/KubeSphere是个全栈的Kubernetes容器云PaaS解决方案KubeSphere是在目前主流容器调度平台Kubernetes之上构建的企业级分布式多租户容器平台,提供简单易......
  • 2023-04-29 动态规划介绍
    2023-04-29动态规划介绍动态规划是运筹学课程的一部分多阶段决策问题有一类活动的过程,可以分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果当然,每个阶段的决策的选取不是任意确定的,它依赖于当前的状态,又会影响以后的发展如下图,①......
  • Kubernetes从入门到精通 Kubernetes从介绍
    1第一章kubernetes介绍1.1应用部署方式演变在部署应用程序的方式上,主要经历了三个时代:传统部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响虚拟化部......
  • 类型擦除介绍
    隔离变化    软件设计的主要目标就是适应变化,在需求中去识别变化,从而进行抽象隔离变化,并且符合SOLID准则,良好的设计可以让程序员少加些班,好保住“猿类”们那珍惜的毛发。   有过面向对象开发经验的同学自然能想到继承,通过抽象基类实现多态,来隔离不同派生类型进行差异......
  • 关于AWS-ElastiCache的总体介绍
    AmazonElastiCachemakesiteasytosetup,manage,andscaledistributedin-memorycacheenvironmentsintheAWSCloud.Itprovidesahighperformance,resizable,andcost-effectivein-memorycache,whileremovingcomplexityassociatedwithdeployingand......