Android 多媒体系统集成的复杂性
多媒体处理器用于实施标准Linux DMA缓冲区内存共享功能。如果所有驱动程序使用同一接口,则同一分配可以由一个处理器写入并由另一个处理器读取,从而为平台上的所有图形和视频内容提供零拷贝路径,确保仍能够维持尽可能低的内存带宽开销。
●像素格式协商是需要在系统集成期间关注的第二个领域。务必确保多媒体IP解决方案中的每个组件(不论是视频、GPU还是显示)实际上均能够理解来自其他组件的图形输出格式,以及确保每个组件生成的内容均能够以某种格式被其他组件读取。例如,尽管视频处理器可能能够以五种不同的YUV格式写出视频帧,如果显示处理器不支持其中的任何格式,则只能使用GPU功能在显示器上合成视频。或者,如果显示处理器不理解带有预乘Alpha值(大多数Android用户界面所使用的)的像素格式,则显示处理器将成为美化过的帧缓冲区控制器。最后,即便组件能够完全理解32位RGBA像素格式,出于某些未知的原因,显示的应用程序仍将出现反转的颜色。这会导致在开发过程中浪费大量时间,因为不仅需要追踪哪个组件在排序方面(比如32位像素格式的红色和蓝色组分)与其他一切不一致,而且还需要研究如何对它们进行反转。
●同步是第三个领域,此处旨在尽可能异步运行以减少排队和延迟。主要问题在于,当系统中存在零拷贝路径、并且两个或多个设备正在直接使用同一个内存时,这些组件之间的同步将变得极为重要。例如,如果显示处理器在GPU或视频处理器完成写入之前便开始从缓冲区中进行读取,则会导致屏幕出现奇怪的伪像。在较早的Android版本(Jellybean之前)中,渲染流水线中的每个组件通过执行以下一系列步骤处理和控制Android用户空间的同步:处理软件驱动程序中的命令;在硬件中执行其任务;等待任务在驱动程序中完成;以及将责任传递给管线的下一阶段。尽管这会使组件之间的同步方法变得简单容易,但也会造成管线出现暂停间隙,从而使流畅视觉内容之间出现差异并且中断最终用户体验。但是,一种全新同步化方法Android Fences已添加至平台;只要软件驱动程序支持它们,则允许在管线的每个阶段针对其组件执行CPU端处理和排队工作,即便前一阶段尚未在硬件中完成。这将大幅缩短一个硬件完成与下一个硬件开始之间的间隔。然而,要充分利用Android Fences的优势,还需要渲染管线中的每个组件均支持它们。如果所有组件均支持Android Fences,但其中一个组件出现漏洞,则会出现问题。如果三个或更多个不同供应商提供的软件驱动程序均支持 Android Fences,但其中一个出现漏洞,则很难进行追踪、并且需要与多个供应商一起执行三项单独的调查。同时还有可能出现此种情况:只有当某个供应商的组件使用标准接口与其他供应商的组件进行通信时,该漏洞才会显现出来。
ARM多媒体技术
如上所述,Android多媒体子系统开发过程中遇到的基本问题是,从多个供应商采购组件和解决方案(无论是包含内部开发的部件还是由诸如半导体供应商之类的外部公司提供),这意味着将对产品质量和/或开发进度产生影响。而可以向OEM、系统集成商和硅片供应商提供显著帮助的解决方案即为ARM的预集成多媒体堆栈。自开发首款移动电话以来,ARM一直致力于与其合作伙伴合作,一同开发可以在固定功耗预算范围内、持续扩展移动设备功能的技术。因此,ARM在多媒体IP以及处理因集成高度复杂的视频和图形技术而产生的系统级问题方面具有丰富的经验。ARM产品的核心在于,可以在图形、视频和显示处理器内核、系统级SoC优化技术领域提供广泛的多媒体技术组合。
●ARM Mali GPU系列是指一系列广泛的产品,可以进行扩展以便为移动细分市场内外的各类设备提供丰富的消费者体验,适合高端和主流市场,包括:
ARM Mali-T820:提供多功能和效率的最佳组合,可以向下一代主流移动设备交付丰富的用户界面和卓越的内容,并采用尽可能小的硅片面积维持最佳性能的ARM特色产品;
ARM Mali-T830:其每个着色器内核的计算能力高于Mali-T820,能够为主流移动设备的消费者带来诸如高级3D游戏等更复杂的内容;
ARM Mali-T860:可从一个内核扩展至十六个内核,经过优化,能够为高端移动设备市场带来具备卓越性能效率的复杂图形和计算内容;
全新Mali-T880,旨在为温度受限的移动和消费者平台带来高端复杂的用例,能效较之前一代提高了40%.附加的算术能力和可扩展性支持可支持类似游戏机的高级游戏体验。
Mali-T860和Mali-T880均本地支持10位YUV,为最佳4K内容提供令人惊叹的视觉表现,并且与Mali-V550视频处理器和Mali-DP550显示处理器的配置相得益彰
- Android开发技巧:软硬件的巧妙整合(01-16)
- 基于Android的VoIP系统的设计与实现(03-28)
- 基于Android系统的影音播放器开发(03-25)
- Android的阿喀琉斯之踵(07-08)
- Android开发之“hello World”的实现 (07-23)
- 基于Android平台的即时通信系统客户端设计(09-24)