VCU编码帧率
2023-06-13 09:18:23 时间
AMD Xilinx MPSoC VCU 使用要点
VCU编码帧率
最近有客户反馈VCU编码4K NV12 视频时, 帧率只能达到42FPS。
Vivado设计检查
通过检查Vivado设计,发现以下设计可能影响帧率,做了改进。
- VCU与DDR连接的AXI Interconnect的位宽是32-bit。 建议改为64-bit或者128-bit。
- VCU的AXI Master连接到了DDR的同一个Slave port。 建议同时运行的模块的AXI Master,连接到DDR的不同的Slave port,防止拥塞,充分利用带宽。
- VCU Coding type 被设置成Intra Frame Only, 导致VCU Encode buffer为0。 建议设置为Intra & Inter Frame ,并设置Motion Vector Range为 medium,得到更大的VCU Encode buffer。
- 使能VCU Encode buffer。
软件设计检查
- 软件设置CacheLevel2为True,使用VCU Encode buffer。
- 使用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 |
相关文章
- 编码通信与魔术初步(三)——最大熵模型
- 编码Oracle安装之路:设定字符集编码(oracle安装字符集)
- 单词的压缩编码算法详解编程语言
- 如何查看Linux文件的编码格式?(查看linux编码方式)
- 查看MySQL表编码:一个实例指南(mysql查看表编码)
- 修改MySQL表编码:一种有效的方式(mysql修改表编码)
- 如何修改MySQL的默认编码:一步步实现(修改mysql的默认编码)
- MySQL中的CNO管理数据库中的字符编码问题(mysql中cno)
- 使用Redis编码实现良好的优化性能(使用redis代码)
- 融云在WICC2021分论坛分享视频编码优化技术
- 用php实现gb2312和unicode间的编码转换
- MySQLGBK→UTF-8编码转换
- ASP让url的中文显示为编码
- Mysql数据库编码问题(修改数据库,表,字段编码为utf8)