iMX6 VDI 60fps de-interlace improvement example

Document created by Qiang Li - Mpu Se Employee on Aug 16, 2015Last modified by Qiang Li - Mpu Se Employee on Aug 23, 2017
Version 2Show Document
  • View in full screen mode

It is based on L3.0.35_GA4.1.0 BSP.

 

In default Linux BSP, there are 3 kinds of de-interlace mode, motion =0,1,2 mode, motion mode 0 and 1 will use three fields for de-interlace, and motion mode 2 wil use one field for de-interlace, so the whole fps is 30.

In this mode, for motion mode 0 and 1, field 1,2,3 was used for first VDI output frame of display; and field 3,4,5 was used for second VDI output frame of display; field 5,6,7 was used for third VDI output frame of display. One field data (such as 2,4,6) was used only once, so there is data lost.

 

After applied these patches, the VDI de-interlace output will be 60fps: for motion mode 0 and 1, field 0,1,2 was used for first VDI output frame of display; and field 1,2,3 was used for

second VDI output frame of display; field 2,3,4 was used for third VDI output frame of display. So all field data will be used twice, there is no video data lost, the VDI quality was improved.

 

Kernel patches:

0001-Add-MEM-to-VDI-to-MEM-support-for-IPU.patch

0002-Add-IPU-IC-memcpy-support.patch

0003-IPU-VDI-support-switch-odd-and-even-field-in-motion-.patch

0004-IPU-VDI-correct-vdi-top-field-setting.patch

 

mxc_v4l2_tvin_imx6_vdi_60fps.zip: this is the test application sample code.

 

Test commands, parameter "-vd" means double fps VDI:

./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 720 -oh 480 -m 0 -vd

Outcomes