i.MX6q about 4 HD overlay

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6q about 4 HD overlay

973 Views
shpark
Contributor II

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

Labels (1)
0 Kudos
5 Replies

644 Views
shpark
Contributor II

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.

645 Views
VladanJovanovic
NXP Employee
NXP Employee

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.

0 Kudos

645 Views
shpark
Contributor II

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.


0 Kudos

645 Views
VladanJovanovic
NXP Employee
NXP Employee

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

645 Views
shpark
Contributor II

Hi,

I agree with you.

I'll have a go.

Thank you,

regards.
SH

0 Kudos