GStreamer 支持哪些视频格式?
该问题实际有几个方面,其中包括硬件、软件和 ZCU106 VCU TRD 等。
硬件:
首先,从纯硬件的角度来看,VCU 支持 4:2:2、4:2:0 8 和 10 位数据。
这列在 H.264/H.265 视频编解码单元 (VCU) 产品指南 (PG252) 的特性部分。
源帧格式部分介绍了如何压缩数据。
图 3-2 是一个很实用的图,其中显示:打包是 Luma (Y),然后是交错色度 (UV) 像素。
软件:
在 2017.4 版本中,该软件只支持 4:2:0 8 位,其匹配高达 NV12。
在 2018.1 及后续版本中新增 4:2:2 及 10 位支持。
GStreamer 和 OpenMAX:
GStreamer 插件 omxh264enc/omxh264dec 和 omxh264enc/omxh265dec 希望传入的视频格式是半平面格式。
您可以在 H.264/H.265 视频编解码单元 (VCU) 产品指南中找到 NV12 及其它格式的描述,位于“GStreamer”部分。
如果用户试图将 i420 格式帧传递给 GStreamer,他们将看到一个错误,因为它不是半平面格式。
用户可使用一个格式转换器插件(如 Gstreamer 视频转换模块)将压缩文件(即 i420)转换为半平面文件(即 NV12)。
您也可以查看下面的“警告”部分,了解有关性能的信息。
VCU 控制软件:
VCU 控制软件包括转换库,其可将一些压缩格式转换为 VCU 支持的半平面格式。
您可以在 H.264/H.265 视频编解码单元 (VCU) 产品指南中找到 NV12 及其它格式的描述,在“VCU 控制软件编码器参数、编码器输入参数”表中。
如果用户尝试使用支持控制软件的打包(即 i420)格式,它将被转换为半平面(即 NV12)格式,并传递给 VCU。
您也可以查看下面的“警告”部分,了解有关性能的信息。
ZCU106 VCU TRD:
VCU TRD 是一个演示平台,包括多个 IP 和 VCU。
2017.4 VCU TRD 受软件支持限制,只支持 4:2:0 8 位数据。
2018.3 VCU TRD 增加了对 4.2.2 的支持。10 位数据。
VCU TRD 假设您知道数据仍然必须采用 VCU 支持的格式打包,如上文所述。
视频数据需要转换为半平面(即 NV12)格式(或 VCU 支持的另一种格式)。
警告:
当使用文件源 (filesrc) 时,不会使用 DMA 缓冲器,在尝试使用 GStreamer 或 VCU 控制软件将视频从压缩格式(即 i420)转换为半平面格式(即 NV12)时,它可能会导致一些性能问题。(也就是说,转换在软件中进行)。
当使用实时接口时,用户如果将数据写入内存,应在将实时格式转换为半平面格式(即 NV12)的路径中使用视频帧缓冲器 IP。
这样做,在从内存中读取数据时,VCU 将具有格式正确的数据。(也就是说,转换在硬件中进行)。
Answer Number | 问答标题 | 问题版本 | 已解决问题的版本 |
---|---|---|---|
66763 | LogiCORE H.264/H.265 Video Codec Unit (VCU) - Release Notes and Known Issues for the Vivado 2017.3 tool and later versions | N/A | N/A |
Answer Number | 问答标题 | 问题版本 | 已解决问题的版本 |
---|---|---|---|
70845 | ZCU106 VCU TRD - LogiCORE H.264/H.265 Video Codec Unit (VCU) - Where can I find an example of using the GStreamer Appsrc and Appsink with the Zynq UltraScale+ MPSoC VCU? | N/A | N/A |
AR# 70645 | |
---|---|
日期 | 12/19/2018 |
状态 | Active |
Type | 综合文章 |
器件 | |
Tools | |
IP | |
Boards & Kits |