zl程序教程

您现在的位置是:首页 >  其他

当前栏目

VCU编码帧率

2023-06-13 09:18:23 时间

AMD Xilinx MPSoC VCU 使用要点

VCU编码帧率

最近有客户反馈VCU编码4K NV12 视频时, 帧率只能达到42FPS。

Vivado设计检查

通过检查Vivado设计,发现以下设计可能影响帧率,做了改进。

  1. VCU与DDR连接的AXI Interconnect的位宽是32-bit。 建议改为64-bit或者128-bit。
  2. VCU的AXI Master连接到了DDR的同一个Slave port。 建议同时运行的模块的AXI Master,连接到DDR的不同的Slave port,防止拥塞,充分利用带宽。
  3. VCU Coding type 被设置成Intra Frame Only, 导致VCU Encode buffer为0。 建议设置为Intra & Inter Frame ,并设置Motion Vector Range为 medium,得到更大的VCU Encode buffer。
  4. 使能VCU Encode buffer。

软件设计检查

  1. 软件设置CacheLevel2为True,使用VCU Encode buffer。
  2. 使用HDMI-Rx等Live Vidoe,不使用filesrc,避免数据拷贝。

结论

经过以上改进后, 帧率可以达到64FPS。

VCU延时

客户使用在gst命令前添加GST_DEBUG="GST_TRACER:7" GST_TRACERS="latency" GST_DEBUG_FILE="/run/latency.txt"来测量VCU延时,发现解码延时达到5秒钟。 这是错误的结果。 单板没有足够的内存保存5秒钟的原始视频,甚至没有足够的内存保存2秒钟的原始视频。

建议使用 GST_DEBUG=omx:6 GST_DEBUG_FILE="/run/latency.txt"来测试VCU延时。在记录文件里搜索“retrieved latency”,可以看到各个模块的延时。

普通情况下的延时数据, 编码延时18ms,解码延时200ms。

0:00:00.408347321  4876 0xaaab00dce770 DEBUG            omxvideoenc gstomxvideoenc.c:2659:gst_omx_video_enc_set_latency:<omxh265enc-omxh265enc0> retrieved latency of 18 ms
0:00:00.506572825  4876 0xaaab00e5c770 DEBUG            omxvideodec gstomxvideodec.c:2481:gst_omx_video_dec_set_latency:<omxh265dec-omxh265dec0> retrieved latency of 200 ms

Low-Latency情况下的延时数据, 编码延时4ms,解码延时17ms。

0:00:00.422535568  8048 0xaaaae02f2770 DEBUG            omxvideoenc gstomxvideoenc.c:2659:gst_omx_video_enc_set_latency:<omxh265enc-omxh265enc0> retrieved latency of 4 ms
0:00:00.521424529  8048 0xaaaae0382770 DEBUG            omxvideodec gstomxvideodec.c:2481:gst_omx_video_dec_set_latency:<omxh265dec-omxh265dec0> retrieved latency of 17 ms

Low-Latency情况下的延时数据, 编码延时4ms,解码延时17ms。

PG252中的Glass-to-Glass延时数据

Table 69: Glass-to-Glass Latency

Use Case

Capture

Encode(HEVC/AVC)

Decode

Display

Normal Latency

16.6

18 ms / 35 ms

200 ms

16.6 ms

Reduced Latency

16.6

18 ms / 35 ms

50 ms

16.6 ms

Low Latency

16.6 ms

4 ms / 10 ms

17 ms

16.6 ms

Xlx Low-Latency

1 ms

4 ms / 10 ms

9 ms

16.6 ms