Interlaced Input - CESNET/UltraGrid GitHub Wiki

Dealing with interlaced input

Most of cameras today provide interlaced content. If you output the video with progressive display, it can produce artefacts. Interlacing can be regarded as a disadvantage. On the other hand, it also brings some adventages, either. For instance, double field rate which is advantegous especially for 25/50 FPS. In any case, if you intend to display interlaced content, you may need to use some additional actions.

Spatial Deinterlacing

Simple way of getting rid of interlacing artifacts is to use a spatial deinterlacer (doesn't change frame-rate).

It can be toggled for both OpenGL and SDL displays by pressing 'd' key when playing video or as a command-line parameter:

uv -d sdl:d

uv -d gl:d

With all display, you can use postprocess filter deinterlace:

uv -p deinterlace -d <display>

The only difference is that with the postprocess filter you cannot toggle deinterlacing on runtime.

Temporal and temporal/spatial deinterlacing

Advantage of using interlaced video is that it has double field-rate than its progressive counterpart. The advantage over progressive video is that the movement is usually more smooth. UltraGrid can emulate the behavior of interlaced systems by doubling frame rate and interlacing individual fields in manner of television systems. If you want this behavior, add a command-line parameter -p double_framerate. Note that you probably obtain best results if you set display refresh-rate to multiple of video frame/field rate, eg. 50 or 100 for 50i video, eg. 60 or 120 for 59.94/60 interlaced video.

Following deinterlacers doubles the framerate. With UltraGrid version 1.8 and older, only double_framerate is available.

Bob

Bob is a simple deinterlacer that treads every field as a frame by doubling its vertical resolution. Usage:

uv -d gl -p deinterlace_bob

Linear

Linear deinterlacing is similar to bob above, but instead of just doubling the lines to achieve full resolution, it linearly interpolates the missing lines from adjacent ones.

uv -d gl -p deinterlace_linear

Doubling frame rate

Compared to the above, double_framerate filter doubles the framerate by letting the fields interleaved using following pattern:

111111          333333          555555
222222          444444          666666
111111          333333          555555
222222          444444          666666
                      ↓
111111  111111  333333  333333  555555  555555
        222222  222222  444444  444444  666666
111111  111111  333333  333333  555555  555555
        222222  222222  444444  444444  666666

Usage:

uv -d sdl -p double_framerate

This deinterlacer doesn't remove saw-like pattern so you may also want to use it together with blend (-d gl:d or -d sdl:d) to mitigate interlacing artifacts or as an option to postprocessor -p double_framerate:d.

⚠️ **GitHub.com Fallback** ⚠️