AnsweredAssumed Answered

Help with i.mx6q YUV streaming

Question asked by Ivan Kozic on Oct 30, 2013
Latest reply on Mar 9, 2016 by Evgeny Molchanov
Branched to a new discussion

Hi all,


I have a problem that I can't seem to solve on my own, so any help is greatly appreciated. I am currently streaming YUV422 from Aptina AR0330 using parallel interface with i.MX6q (iWave board). I have issues figuring out how to properly use IPU for this case. For start, I need to get Full-HD image on the HDMI display. The resolution coming from the sensor is always 1920x1080 @60fps. I am using 3.0.35-4.0.0 kernel. I am using mxc_v4l2_overlay.out unit test for this.

So my current situation is:


1. YUV stream is properly being read and I get a good image when using fb1 (foreground FB), as this is YUV framebuffer. However, as far as I can see it is mainly used as a preview, and thus resolution is limited to 240x320, which is quite low and not really usable. The image is perfect however.

2. fb0 does not work, as it is a RGB24 framebuffer and I am sending YUV stream to it. At first I thought IC might be skipped (I saw some threads here regarding IDMAC using NV12):

Capturing YUV420 from MIPI CSI camera for VPU compression

However, it is not clear from the discussion if IC can really be skipped. As far as I see, there has to be some sort of color space conversion done before the data comes to the framebuffer (and CSC is done in IC, so it can not really be skipped, can it?).


So in general, I have difficulty understanding what is the exact difference in these two cases - I know that for case 2., CSI grabs the data and sends it to the memory and afterwards this is fetched and sent to the display controller. However, preview path with YUV framebuffer I don't get - is there some sort of direct path in the IPU only for this preview functionality? If so, is the resolution so low because of the bandwidth limitation of this path?


I have also seen that there are two possible options for Overlay routing in menuconfig:

1. Queue IPU device for overlay library,

2. Pre-processor VF SDC library.

of which I am using 1. Although it seems to me that fb1 path is actually this Pre-processor VF SDC path. But not really sure.


So in general if anyone could explain these in just a few words I would be very grateful. I suppose that the ideal way would be to activate IPU for CSC and use fb0 for Full-HD, but I am actually not 100% sure of this.

Thanks in advance!