linux cpu占用率如何看
280
2022-11-09
加速下一代多媒体设备交付的开放标准
消费者对他们的多媒体设备的期望越来越高,这迫使应用程序开发人员跟上。幸运的是,带有标准组件的中间件框架正在出现以帮助设计人员。Fakhir 介绍了 OpenMAX 多媒体框架并说明了它如何改变多媒体设备的开发。
一个渐进但革命性的变化正在改变当今软件应用程序中使用多媒体的方式。不久前,大多数多媒体供应商都有自己的实施方案。代码互操作性和可移植性通常不是主要要求。但现在,随着硬件越来越强大,终端用户的需求越来越大,多媒体领域已经向各个方向扩展。
这种扩展现在已经达到了单个供应商无法满足所有要求的程度。加速硬件、编解码器、容器格式、网络流媒体和其他高度专业化的子域已经出现。这种增长引发了人们感知多媒体服务方式的重大转变。
从服务到框架
为了满足不断扩展的多媒体领域不断增长的需求,软件供应商已将他们的重点转移到多媒体框架上,如图 1 所示。框架是来自不同来源的软件的异构混合物。多媒体框架的关键特性是灵活且可扩展的架构,允许框架提供的服务随着行业需求的变化而发展。
图1
多媒体框架的灵活性是通过利用组件的概念来实现的。组件就像简单的构建块一样执行,它们组合在一起形成更复杂的系统。框架 API 不提供对特定服务的访问,而是允许开发人员根据设计要求组装不同的组件。该框架独立于这些组件实际执行的操作以及它们的执行方式。
为什么框架范式在多媒体上运行良好?答案在于多媒体处理的本质。多媒体处理本质上涉及通过不同阶段的线性数据流。每个阶段都有明确的定义,并且在逻辑上独立于其他阶段。因此,以管道形式线性排列的组件自然适合多媒体。图 2 显示了音频播放的示例管道。多媒体数据从一端流入,并在从另一端离开管道时由不同的组件处理。
图 2
多媒体框架优势
标准化确保互操作性
每个组件的内部逻辑都封装在标准组件定义中。这种标准化和前面提到的松散耦合提供了一个很好的平台来确保不同软件供应商编写的组件之间的互操作性。几个软件供应商可能会为一个框架做出贡献,他们的所有组件都可以无缝地配合和协同工作。框架也可用作软件集成工具。
OpenMAX 标准由三个级别组成,如图 3 所示。到目前为止所讨论的内容对应于定义基于组件的框架的 OpenMAX 集成级别 (IL)。IL 级别之上和之下的其他两个级别解决了框架同样重要的方面:实现和使用。
图 3
为多媒体框架编写组件
组件库是多媒体框架中最大的功能区域,涉及软件和芯片供应商的最大努力。供应商通常专注于某些服务;例如,软件供应商可能专门提供 MPEG4 等视频编解码器。一旦嵌入到框架的组件中,这个特定的编解码器就可以成为多媒体框架的一部分。供应商将服务封装到组件中,使其标准化并易于插入现有软件,从而为广泛使用其产品开辟了机会。
多媒体框架的另一个显着特征是它允许将第三方服务集成到组件中很容易。框架为此目的提供了特殊的工具和技术。
多媒体数据处理对时间非常关键。数据必须实时压缩、解压缩或转换为其他格式。这种数据处理采用必须高度优化的计算密集型算法。OpenMAX Development Level (DL) 解决了这一重要的优化领域,为大量与多媒体处理相关的常用算法提供了一个 API。
服务提供商不必担心实施和优化这些算法;他们只是在他们的软件中使用 OpenMAX DL API。然后,这些 API 的实际实现由此类系统中的另一个利益相关者(即硅供应商)提供。硅供应商实施所有 OpenMAX DL 定义的算法,这些算法专门针对供应商的硬件平台进行了优化。这通过允许他们的软件在硬件上有效运行而使软件供应商受益,并通过确保为其平台编写的软件充分利用硬件来帮助硅供应商。
框架组件执行许多常见操作,例如管理缓冲区、维护组件状态和保护数据。一些框架通过允许组件层次结构来简化组件编写者的任务。一个通用基础组件提供所有通用功能以及可以从该基础组件派生的其他组件,如图 4 所示。使用面向对象的设计原则,派生组件继承基础组件的属性,最大限度地减少冗余并帮助组件作家只专注于他们的特定服务。
图 4
因为框架充当来自不同来源的软件的异构混合,组件编写者可能并不总是熟悉另一个组件。这就是框架提供的其他调试和开发工具发挥作用的地方。调试工具至关重要,因为它们有助于可视化多媒体管道并定位问题。图 5 表示使用 Nucleus Multimedia Framework 调试器的实时组件管道。
图 5
在软件应用程序中使用多媒体框架
尽管基于组件的框架具有优势,但这些类型的 API 并不容易被应用程序开发人员接受,他们习惯于使用简单的 API,例如“播放 MP3 文件”。必须创建组件,将它们连接在一起,然后使用它们‚Äì 无论多么简单的操作‚Äì 都没有提供足够的抽象级别来证明它们的使用是合理的。
OpenMAX 应用层 (AL) 旨在解决这些问题,提供易于使用的 API,隐藏了底层框架的机制。这也使用户应用程序更具可移植性,因为它们使用跨所有硬件平台一致的开放标准,而不是依赖专有 API。
简化集成的 API
OpenMAX 跨平台 API 支持跨多个操作系统和硅平台开发、集成和编程来自不同软件供应商的加速多媒体组件。通过这种方法,嵌入式设备集成商可以利用任何软件供应商的库和编解码器组件,只要它们基于 OpenMAX API 构建,同时实现新硅平台的全部加速潜力。结果将是具有最先进多媒体功能的设备以硅片速率交付给消费者。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~