基于 ARM 的低成本、低功耗多核 AV 播放器的设计

出处:维库电子市场网 发布于:2023-03-06 16:17:50

低功耗系统设计已成为手持移动设备和汽车信息娱乐系统的强制性要求。此外,汽车系统需要能够将家庭和办公室的用户体验带到汽车上。对高计算、高质量和低功耗解决方案的日益增长的需求迫使嵌入式计算转向多核系统。因此,基于多核平台的嵌入式解决方案已在移动、汽车、医疗和工业应用等领域的游戏、视频和图像处理等许多应用中变得普遍。

挑战在于利用基于多核的系统和可用的媒体框架,提供开源访问的可扩展性和可移植性,以满足低功耗、高性能嵌入式应用程序的要求。随着功能强大的软件和硬件可编程片上系统 (SoC) FPGA 设备的出现,嵌入式系统设计人员能够设计出完全符合客户要求的形式、功能和性能的解决方案。这些解决方案是的、高效的、具有成本效益的,可满足终客户的需求。Xilinx Zynq SoC 系列 FPGA 就是这样一种设备。

本文介绍了如何使用低成本、低密度的 Zynq FPGA 创建一个计算平台,以实现乘用车(例如汽车、公共汽车、火车、飞机和轮船)的信息娱乐系统。这种平台的其他应用包括私人和公共场所的数字标牌和信息显示,例如酒店、医院、加油站或信息亭,以及消费市场的数码相框。

概述 
车载信息娱乐体验面临双重要求,既要满足家庭或办公室用户体验,又要满足汽车行业的节能要求。在我们的中,具体要求是构建具有视频-音频同步功能的极低成本、低功耗、720p30fps AV 播放器解决方案,能够与在可编程结构上实现的客户硬件块连接。这一目标将通过开发具有硬件实时加速的紧密耦合多核软件来实现,着眼于大大降低 BOM、降低 NRE 成本、降低设计风险以及重要的是加快上市时间。

我们继续分解 Atria Logic AL-AVPLR-IPC AV 播放器的要求,包括一个文件读取器、一个解复用器、一个带色彩空间转换器的 H.264 Baseline Profile HD 解码器和一个 AAC-LC 立体声解码器. 还包括一个 AV 播放器应用程序,带有用于基本播放器操作的内置 GUI,例如播放、暂停、停止和快进技巧模式。操作系统支持是通过 Ubuntu LTS 实现的,因为它提供了具有非常高效的利用率的多核用法。AV 播放器应用程序完全基于 Linux GTK,而解码器本身完全在 Linux GStreamer 开源多媒体框架中实现。播放器的框图如下图 1 所示。

点击查看大图 
 
图 1:Atria Logic AV 播放器框图( Logic Inc)  

我们将 Xilinx Zynq-7000 器件系列的 Z-7010 视为适合满足所有要求的实施方案。这款 ARM 驱动的可编程 SoC 提供的 CPU 性能和的散热性能。同时,该器件提供了足够的可编程结构,可满足那些需要加速器引擎能够装入逻辑阵列的要求,即使对于这种低功耗平台也能确保足够的性能。我们使用该设备的另一个原因是随时可用的小型 Zybo 开发板,它加快了我们的开发工作以实现快速周转。

除了用于自定义实现胶合逻辑、RAM 和 DSP 功能的可编程逻辑之外,Zynq 架构还包括带有 Neon DSP 引擎的双核 ARM Cortex-A9 CPU、完整的串行 I/O、USB 和 PCIe 接口阵列、加密/解密引擎、GbE 和内存控制器。低功耗、集成 CAN 总线接口和扩展温度变体使 Zynq 系列的完全硬件和软件可编程 SoC 非常适合低功耗、低成本的汽车信息娱乐应用。

视频解码以 30 帧/秒的速度处理高达 1280×720 的高清分辨率,以及 48KHz 的立体声音频解码。音频和视频保持完美同步,避免口型同步问题。

挑战在于保留尽可能多的可编程逻辑以实现其他功能,同时保持低功耗。这意味着实施需要充分利用可用的 ARM 内核和 Neon DSP,同时优化固件以尽可能高效地运行。这是通过充分利用 Ubuntu 中的多线程和对称多处理 (SMP) 功能实现的。

多线程双核播放器 
播放器将音频和视频指定为在单独线程上运行的管道的一部分,以便在两个 ARM Cortex-A9 内核上并行执行。AAC-LC 音频解码器负载比 H.264 视频解码器小得多。因此,视频解码器被分成两个线程以充分利用两个内核,每个内核都以 667MHz 运行。在图 2 中,Video Thread2 生成了一个新线程 Thread4,这两个视频线程在两个不同的内核上执行。

点击查看大图 
 
图 2:多线程视频和音频解码执行( Logic Inc)  

AV 播放器 GUI 应用程序在单线程 Thread1 上启动。压缩后的音频数据和视频数据分别在 Thread2 和 Thread3 中排队,保持堆栈溢出限制。在这两个线程中解复用音频和视频数据,在单独的音频和视频处理线程中解耦接收器数据的处理。


继续阅读第二页 >>


Ubuntu 操作系统需要估计每个线程所需的堆栈空间。每个线程或分支的多队列或单独队列元素用于并行或管道执行的任务。操作系统互斥体的所有必要锁都已启动。通过内存子系统堆栈空间的正确锁定和解锁,可以生成新的视频线程或将音频线程保持在特定内核上。在线程返回时,进程被销毁。但是,Linux 裸机线程无法自动取消分配本地堆栈内存。因此,父进程通过将堆栈空间添加到 malloc() 空闲列表来回收内存空间作为线程清理。用于 AV 播放器的代码内存为 16kB,而数据内存限制为 4kB。用于完整框架的整体系统内存限制为 512MB。这可以通过仅保留 Gstreamer 框架的已使用功能并淘汰未使用的功能来在很大程度上进行优化。

多线程方法完成音频和视频解码,利用两个内核。Gstreamer 初运行播放器时效率低下,CPU1 利用率仅为 66%,CPU2 利用率仅为 81%。线程流水线实现了近 100% 的利用率,提高了 29-34%。

Neon DSP 的效率和性能 
然而,接近 100% 的利用率不足以满足播放器的性能要求。一种选择是在 SoC 的可编程逻辑部分实现色彩空间转换。但是,这会减少可能需要的其他系统逻辑可用的可编程逻辑的数量。此外,它不会使用定点逻辑产生适当的质量。

因此,我们选择在其中一个 Neon DSP 引擎上实施色彩空间转换模块。Cortex-A9 Neon MPE 使用 ARM v7 SIMD 和矢量浮点指令集扩展了 CPU 内核功能。充分利用 Neon DSP 使用 32 位、64 位和 128 位四元寄存器执行浮点计算的能力,显着加速了 YUV420 到 RGB444 色彩空间的转换,并通过为 SIMD 操作使用并行矢量数据安排,我们设法将两个 Neon DSP 引擎的利用率限制为只有一个。

下面的清单显示了使用 Neon DSP 引擎的颜色空间转换例程的示例代码清单。Neon DSP 还实现了多个寄存器的并行加载和存储,以及动态数据解交错。


清单:Neon DSP 引擎上的 YUV 到 RGB 色彩空间转换例程( Logic Inc)  

性能结果 
用于颜色空间转换矩阵例程的 Neon DSP 代码优化为 1.4 倍至 1.64 倍。表 1 列出了具有不同比特率、大小和复杂性的不同流的详细结果。

视频流比特率解决在每个@650MHz 的双核上解码 FPS2A9 + 霓虹灯的帧率霓虹灯优化因子
H264_720p_BP_1mbps.2641兆比特/秒1280×72028421.5
H264_720p_BP_4mbps.2644兆比特/秒1280×72022321.4
H264_720p_BP_6mbps.2646兆比特/秒1280×72021331.57
H264_1080p_BP_2mbps.2642兆比特/秒1280×72014201.64

表 1:使用 Neon DSP 色彩空间转换代码的 H.264+AAC 播放器的性能结果( Logic Inc)

减少负载的其他机会包括将去块滤波器执行转移到其中一个 Neon DSP 引擎。

在具有运行频率为 667MHz 的 ARM Cortex-A9 内核的 Xilinx Z-7010 SoC FPGA 上,实现以 20 帧/秒的速度解码 1280×720 视频和 AAC-LC 立体声音频,容量利用率接近 100%。在图 3 中,CPU1 内核利用率显示为 99.3%,而 CPU2 显示为 100%。

点击查看大图 
 
图 3:AV Player 多核加载( Logic Inc)  

汽车功能安全和质量 
Zynq Z-7010 上的 AV Player 实现完全符合 MISRA 2000 合规性 C 代码编码指南,完全通过了静态 QAC 检查。该实施还符合 ISO26262 安全合规性 ASIL B 指南。

结论 
随着各种应用对低功耗、低成本解决方案的需求不断增加,可编程 SoC 计算平台提供了独特的解决方案及其价值主张。完整的价值利用来自于在需要时充分利用可用的 CPU 内核和 DSP 引擎(例如图像色彩空间及其动态范围质量或音频后处理增强或视觉计算质量和准确性)或用于必要硬件加速或性能改进处理的可编程结构(视频和/或视觉)。这与的多核处理技术相辅相成,可为针对此类应用的设计奠定基础。

作为汽车信息娱乐的此类解决方案,Atria Logic AL-AVPLR-IPC AV 播放器在 Xilinx Zynq Z-7010 上实现了性能、密度和性能的平衡,该设备的所有可编程逻辑仍可用于集成其他电路板逻辑,化 BOM 成本并提高系统可靠性。这种方法提供了一种有效的解决方案,可以为许多应用程序实施 AV 播放,例如乘用车的信息娱乐系统,如信息娱乐系统、数字标牌和信息,以及包含视频功能的数字相框。


关键词: ARM

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!