Hi all,
I would like to decode 4xHD(H.264@30) streams and display using overlay via VPU and IPU.
And I am trying with 352MHz VPU, 400MB DMA, 512kB vpudec gst-plugin(VPU_DEC_CONF_BUFDELAY).
using gstreamer pipeline like below:
gst-launch (mynetworksrc) ! vpudec low-latecy=true, fram-plus=4 ! mfw_isink axis-top=0, axis-left=0, disp-width=640, disp-height=360 sync=false
(mynetworksrc) ! vpudec low-latecy=true, fram-plus=4 ! mfw_isink axis-top=0, axis-left=640, disp-width=640, disp-height=360 sync=false
(mynetworksrc) ! vpudec low-latecy=true, fram-plus=4 ! mfw_isink axis-top=360, axis-left=0, disp-width=640, disp-height=360 sync=false
(mynetworksrc) ! vpudec low-latecy=true, fram-plus=4 ! mfw_isink axis-top=360, axis-left=640, disp-width=640, disp-height=360 sync=false
Where mynetworksrc is rendering h264 stream in live.
Actually, H264 streams are decoded and I can show 4 channel display.
Sometimes(or very often) videos are asynchronous represented for same view.
============================================================
MMDC new Profiling results:
***********************
Total cycles count: 528038167
Busy cycles count: 392753113
Read accesses count: 26000291
Write accesses count: 6171477
Read bytes count: 790623016
Write bytes count: 275883340
Avg. Read burst size: 30
Avg. Write burst size: 44
Read: 754.00 MB/s / Write: 263.10 MB/s Total: 1017.10 MB/s
Utilization: 16%
Bus Load: 74%
Bytes Access: 33
==============================================================
I think memory bandwidth is enough to display 4 videos as above. Am I right?
And I read about VPU throughput limitation from a thread. Is this async issue caused by VPU performance?
Thank you,
SH
I made sure that VPU perfomance is enough to decode 4HD streams @ 30fps.
Decoding time is <5 msec per frame(MJPEG). And average is 3.2 msec on my board(Boundary Devices EVM).
There is a rendering issue.
I'll use GPU to resolve the issue.
Thanks to everyone,
Regards.
SH.
i.MX 6Quad is specified to support 2 FullHD video decoding streams. 4 will be too much for it for real-time decoding I believe.
Hi Vladan,
First thank you for your reply.
It was HD(720p), not a Full HD(1080p).
Someone advised me if I use VPU core api(standalone application without gstreamer), then I can see 4 HDs decoding in real-time.
How do you think about this? Is it possible?
Thank you,
SH.
Hi,
not an expert for video, so difficult to estimate this use case. I think it will depend a lot on the type of video that is decoded. For h.264, overall bandwidth limit for VPU block for processing input video is 50Mbps. So if 4 videos are within this limit, VPU should be able to decode. But how 4 conccurent videos decoding will stress the memory bus etc. is difficult to estimate, especially when combining those videos to final framebuffer.
In order to minimize all overhead, using VPU API direclty is the best way to go ahead. But it is best to try it out on a dev. board to benchmark and see the effect of other SW (OS overhead...) on this video use case.
best regards,
vladan
Hi,
I agree with you.
I'll have a go.
Thank you,
regards.
SH