Interlaced Video - Interlaced Video - 3.0 English - PG447

H.264/H.265/JPEG Video Codec Unit 2 (VCU2) Solutions LogiCORE IP Product Guide (PG447)

Document ID
PG447
Release Date
2026-03-06
Version
3.0 English

Interlaced video is a technique to double the perceived frame rate of a video display with the same bandwidth. An interlaced frame contains two fields captured at two different times. One field contains all odd-numbered lines in the image and the other contains all even-numbered lines. This improves motion perception to the viewer and reduces flicker by taking advantage of viewing in rapid succession as continuous motion. Interlaced video was historically used in a wide range of different video systems and remains in use today.

VCU2 supports encoding and decoding of interlaced video in H265 mode only. VCU2 can decode and encode of various video resolutions like 1920x1080i, 720x576i, and 720x480i.

filesrc > omxh265dec > omxh265enc > filesink

gst-launch-1.0 filesrc location=in.h265 ! omxh265dec ! omxh265enc target-bitrate=10000 control-rate=2 ! queue max-size-bytes=-1 ! filesink location=out.h265

v4l2src > omxh265enc > omxh265dec > kmssink

gst-launch-1.0 v4l2src io-mode=4 ! video/x-raw\(format:Interlaced\),interlace-mode=alternate, format=NV16_10LE32,width=1920,height=1080,framerate=30/1 ! omxh265enc target-bitrate=10000 control-rate=2 ! omxh265dec ! queue max-size-bytes=-1 ! kmssink bus-id=drm-pl-disp-drv connector-properties="props,sdi_mode=0,sdi_data_stream=2,is_frac=0"

Audio serial pipeline: v4l2src > omxh265enc > omxh265dec > kmssink alsasrc > audioconvert > audioresample > alsasink

gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! video/x-raw\(format:Interlaced\),interlace-mode=alternate,field-order=bottom-field-first,format=NV16_10LE32,width=1920,height=1080,framerate=30/1 ! omxh265enc target-bitrate=20000 ! queue ! omxh265dec ! queue max-size-bytes=0 ! kmssink bus-id=amba_pl@0:drm-pl-disp-drv connector-properties="props,sdi_mode=0,sdi_data_stream=2,is_frac=0" show-preroll-frame=false sync=true alsasrc device=hw:1,1 ! queue ! audioconvert ! audioresample ! audio/x-raw, rate=48000, channels=2, format=S24_32LE ! alsasink device="hw:1,0"

Audio file playback pipeline: filesrc > tsdemux > omxh265dec > kmssink tsdemux > faad > audioconvert > audioresample > alsasink

gst-launch-1.0 filesrc location=/media/usb/video/sdi_cap_1080i_aac_coffea_long.ts ! video/mpegts ! tsdemux name=demux demux. ! queue ! h265parse ! omxh265dec ! queue ! kmssink bus-id=amba_pl@0:drm-pl-disp-drv connector-properties="props,sdi_mode=0,sdi_data_stream=2,is_frac=0" show-preroll-frame=false sync=true demux. ! queue ! aacparse ! faad ! volume volume=9 ! audioconvert ! audioresample ! audio/x-raw, rate=48000, channnels=2, format=S24_32LE ! alsasink device="hw:1,0" provide-clock=false
Note: It is suggested not to use alsasink clock as the Gstreamer clock provider. There is a limitation of interlaced audio that alsasink clock and video rendering depending on each other, so setting alsasink provide-clock to FALSE for file playback case.