本资源的原文使用英文撰写。 为方便起见,TI 提供了译文;由于翻译过程中可能使用了自动化工具,TI 不保证译文的准确性。 为确认准确性,请务必访问 ti.com 参考最新的英文版本(控制文档)。
本应用手册针对使用 AM62A 处理器时的多媒体性能提供了各种基准 [1]。本文中的多媒体是指对视频流进行编码和解码以及对静态图像进行编码的能力。AM62A 中的硬件加速器能够进行 H.264/265 编码/解码和 MJPEG 编码。还介绍了示例用例,并对典型用例负载进行了系统分析。
Other TMs
在当今快速发展的数字化环境中,物联网应用的边缘有多种技术正在融合。基于摄像头和视频的应用现在可以执行智能边缘处理,例如检测人员、目标物体或事件,同时计算和功耗显著降低。然后,这些经过处理的数据可以无缝地流式传输到一个中心点,例如可视门铃、无人机和安防摄像头等监控应用。对于这些类型的应用,出色的编码/解码能力以及支持多种配置(例如多流和多分辨率编码/解码)的能力非常重要。本应用手册展示了如何使用 AM62A 处理器来应对这些用例。其 H.264 和 H.265 编码和解码功能允许对高清视频内容进行无缝压缩和解压缩,确保对实时流式传输和视频监控等应用进行高效的数据处理。要以上所有目标,解决方案需要具备低功耗和小尺寸特性,从而更大限度地延长电池寿命。本应用手册主要介绍 AM62A 器件的多媒体功能 [2]。本文档简要介绍了 AM62A,并描述了用于访问多媒体加速器的软件框架。接下来,提供了系统设计人员关心的典型基准,例如延时和 DDR 带宽消耗。最后,两个系统示例使用案例展示了系统流程以及资源负载。这些示例应用已经在 AM62A 入门套件 [3] 上进行了测试。
AM62A Edge AI 微处理器如图 2-1 所示。AM62A 简化方框图是一款面向分析应用而设计的异构处理器。不同的硬件加速器针对不同的任务进行了优化,从而能够针对不同的视觉和多媒体应用优化功耗和成本以及占用空间
AM62A 中来自多媒体环境的主要处理和计算子系统如下所示:
AM62A 中的编解码器硬件 IP 块支持 H.264 和 H2.65 编码/解码功能。表 3-1 说明了编码器/解码器块的一些高级规格。
最大分辨率 | 8192x 8192 |
---|---|
最小分辨率 | 256x128 |
时钟速率 | 400MHz |
约束条件 | 图片宽度和高度都是 8 的倍数 |
并发编码/解码流 | 取决于分辨率和帧速率 4 个 1920x1080 @ 30fps 编码流 + 4 个解码流 |
H.264 编码 | H.264 Baseline/Constrained Baseline/ Main/High Profiles Level @ L5.2 |
H.265 编码 | H.265 Main 和 Main Still Picture Profile @ L5.1 High Tier |
H.264 解码 | H.264 Baseline/Constrained Baseline/ Main/High Profiles Level @ L5.2 |
H.265 解码 | H.265 Main 和 Main Still Picture Profile @ L5.1 High Tier |
AM62A 中的 JPEG 硬件 IP 块是一种有状态且可扩展的高性能静态图像编码器。它能够对 YUV420/YUV422 原始图片数据进行实时编码,使其转换为完全压缩图像 (jpeg) 或压缩图像序列 (MJPEG)。
表 4-1 展示了 MJPEG 编码器的一些高级规格。
最大分辨率 |
8k x 8k |
时钟速率 |
250MHz |
编码率 |
4 字节/周期(YUV422 中为 2 个像素/周期,YUV420 中为 2.66 个像素/周期) |
特性支持 |
JPEG 基线配置文件 配置压缩比 两个量化表 |
表 4-2 列出了理论吞吐量。测得的吞吐量通常在 80% 左右,对于 YUV 4:2:2 格式,测得的吞吐量为 416MP/s。
颜色二次采样 | 吞吐量 |
---|---|
YUV 4:2:0 | 250x2.66= 666MP/s |
YUV 4:2:2 | 250x2 = 500MP/s |
JPEG 编码单个流 1080p@30FPS 的硬件和软件延时(考虑生成标头、比特流)测量结果约为 8.04ms。
有关 JPEG 编码器的详细信息可在 [6] 中找到。
GStreamer 是一个开源框架,它简化了媒体播放器和捕获编码器等多媒体应用的开发。它通过使用标准接口封装了现有的多媒体软件元件(例如编解码器和硬件加速器),并为各种应用提供了统一的框架。值得注意的是,新的 GStreamer 功能正在不断添加,核心库也得到了 GStreamer 社区成员的积极支持。有关 GStreamer 框架的附加信息,请访问 GStreamer 工程网站 [4]。
GStreamer 的模块化性质有利于添加新功能,并能够实现应用开发和测试的灵活性。处理节点通过具有多个接收端和/或源端焊盘的 Gstreamer 插件来实现。许多插件通常作为 ARM 软件实现运行,但对于更复杂的 SOC,某些函数在硬件加速 IP 上的执行效果更好。用于 AM62A 视觉处理的 GStreamer 插件可在 [5] 中找到。