AR# 73250

2019.2 Zynq UltraScale+ MPSoC VCU - Why do I see frame drops when trying to decode multiple streams (i.e. 20 streams) of input using VCU TRD 2019.2 designs?

描述

Why do I see frame drops when trying to decode 20 streams of input using VCU TRD 2019.2 designs?

The design being tested here is from the VCU TRD 2019.2 and the following is the gst-launch pipeline:


gst-launch-1.0 filesrc location=./out_720p60.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fpsdisplaysink name=fpssink text-overlay=false video-sink=fakevideosink -v > log1.txt \
filesrc location=./out_720p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_420p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_360p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_160p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v &
gst-launch-1.0 filesrc location=./out_720p60.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fpsdisplaysink name=fpssink text-overlay=false video-sink=fakevideosink -v > log2.txt \
filesrc location=./out_720p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_420p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_360p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_160p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v &
gst-launch-1.0 filesrc location=./out_720p60.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fpsdisplaysink name=fpssink text-overlay=false video-sink=fakevideosink -v > log3.txt \
filesrc location=./out_720p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_420p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_360p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_160p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v &
gst-launch-1.0 filesrc location=./out_720p60.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fpsdisplaysink name=fpssink text-overlay=false video-sink=fakevideosink -v > log4.txt \
filesrc location=./out_720p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_420p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_360p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v \
filesrc location=./out_160p30.264 ! h264parse ! omxh264dec internal-entropy-buffers=2 ! omxh265enc target-bitrate=1000 num-slices=1 b-frames=2 prefetch-buffer=true ! fakevideosink -v &


解决方案

This is a known issue with the Zynq UltraScale+ MPSoC - LogiCORE H.264/H.265 Video Codec Unit (VCU) that occurs when trying to decode 20 streams of file input.

The issue has been identified in the VCU Firmware and it will be fixed in an upcoming software release.

  • 2019.2 - Users can download the PetaLinux Recipes and Patch files from (Xilinx Answer 73019) to work around this issue
  • 2020.1 - This issue will be resolved in the 2020.1 release and later versions

链接问答记录

主要问答记录

AR# 73250
日期 12/19/2019
状态 Active
Type 已知问题
器件
Tools
IP