i.MX6 enable CSI->VDIC->MEM support

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

i.MX6 enable CSI->VDIC->MEM support

1,334 Views
yairpodemsky
Contributor II

Hi all,

We are facing an issue with the i.MX6 Dual where the streaming frame rate is very low (no higher than 12.5 FPS).

In our investigations we have discovered that this issue is completely solved if the incoming video is progressive (de-interlacing done in an external ADV).

Unfortunately, we cannot use the ADV de-interlacing in the final product, and must instead do it on the i.MX itself.


An investigation has found that while the i.MX IPU has a direct (CSI) camera to Video De-Interlacer (VDI) data path (CSI->VDIC->MEM), the freescale driver does not support it.

This is supposed to be the best way to preform the de-interlacing, and I have inferred that the low frame rate is due to the use of a less efficient method.


I have found an old patch to add support for the CSI->VDIC->MEM path to the driver, but it is meant for linux version 3.14. See https://community.nxp.com/docs/DOC-339509.

I tried to migrate it to our current version 4.9 (see 0006-IPU-VDIC-support.patch file attached), however the new paths haven't managed to stream at all.


Our basic pipeline is:

gst-launch-1.0 imxv4l2videosrc device=/dev/video0 do-timestamp=true ! imxipuvideotransform deinterlace=true ! imxvideoconvert_ipu ! imxvpuenc_h264 ! mpegtsmux ! rtpmp2tpay ! udpsink host=<host> port=<port>

but we have also tried removing the network with:

gst-launch-1.0 imxv4l2videosrc device=/dev/video0 do-timestamp=true ! imxipuvideotransform deinterlace=true ! imxvideoconvert_ipu ! imxvpuenc_h264 ! mpegtsmux ! multifilesink


Any assistance will be greatly appreciated.
Regards,
Yair

3 Replies

737 Views
ilyakosharov
Contributor II

Hi yairpodemsky!

I've patched 4.1.15_1.0.0 kernel with your patch and tried to capture frames with input=3 (CSI->VDI->MEM). And I'have no frames at all.

CSI->MEM still works.

Do you have any success with patching modern kernels for de-interlace?

0 Kudos

738 Views
igorpadykov
NXP Employee
NXP Employee

Hi Yair

used pipeline is for gstreamer-imx, alternatively one can try with nxp imx-gst1.0-plugins

described in attached Linux Guide sect.7.3.9 Recording the TV-in source. Full nxp linux

documentation is available on

https://www.nxp.com/support/developer-resources/run-time-software/i.mx-developer-resources/i.mx-6ser...

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

738 Views
yairpodemsky
Contributor II

Hi Igor,

I have tried using imxv4l2src instead of imxv4l2videosrc as described in sect.7.3.9 Recording the TV-in source you have attached.

This have however not improved the frame rate on our MIPI camera, which remains 12.5,

but has failed completely to read from our bt.656 camera, where as imxv4l2videosrc reads it successfully.

Thanks,

Yair

0 Kudos