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