The Interlaced Problem in IP Workflows

Interlaced video is not going away. SDI infrastructure runs on 1080i50 and 1080i59.94 across Europe and North America. When broadcast encoders convert SDI to IP transport (SRT, UDP, HTTP), the interlaced signal arrives at the other end in one of two forms:

  1. True interlaced: 1920x1080i at 25/29.97 fps. Each frame contains two interleaved fields (top field, bottom field). This is the standard format.
  2. Half-height field-as-frame: 1920x540 at 50/59.94 fps. Each SDI field is encoded as a separate progressive frame at half the vertical resolution. This is common with Nimbra, Ateme, and Harmonic encoders.

The second format is the problematic one. The encoder has split the interlaced frame into its constituent fields and encoded each as an independent frame. The receiving side gets a 540p stream at double the frame rate, which looks wrong on any monitor — vertically squeezed, with half the resolution.

Vajra Cast handles both cases. The processing pipeline detects the format and applies the correct filter chain automatically.

Field Merge

Field merge is the first step when dealing with half-height field-as-frame feeds. It recombines two consecutive 540p frames back into a single 1080i frame.

Input: 1920x540 @ 50fps (two fields encoded as separate frames) Output: 1920x1080i @ 25fps (standard interlaced frame)

The FFmpeg filter is tinterlace=merge, which takes pairs of consecutive frames and interleaves their lines:

  • Frame 0 (540 lines) → top field (odd lines of 1080 frame)
  • Frame 1 (540 lines) → bottom field (even lines of 1080 frame)

After merge, the stream is a standard interlaced signal that can be processed further or passed through as-is to interlaced destinations.

When Is Field Merge Needed?

SymptomCauseFix
1920x540 resolution at double frame rateEncoder sends fields as framesField merge
Vertically squeezed imageSame — half-height fieldsField merge
Normal 1080i feedAlready correctly interlacedSkip to deinterlace

Encoders That Produce Field-as-Frame

EncoderTypical OutputNotes
Net Insight Nimbra1920x540 @ 50/59.94fpsCommon in satellite contribution. Nimbra VA 210/220 series and video gateway configurations often output fields as progressive frames over IP.
Ateme Kyrion/Titan1920x540 @ 50/59.94fpsAteme encoders in MPEG-2 and H.264 modes may split fields depending on encoding profile and transport settings. Check the “field mode” configuration.
Harmonic Ellipse/VOS1920x540 @ 50/59.94fpsHarmonic encoders in certain MPEG-2 TS configurations produce separated fields. Particularly common with Ellipse series in contribution workflows.
Generic MPEG-2 TSVariesAny encoder producing MPEG-2 Transport Stream with field-level encoding may exhibit this behavior.

Not every unit from these manufacturers will produce field-as-frame output. It depends on the encoding profile, transport configuration, and firmware version. If you receive a 540p stream at double the expected frame rate from any of these encoders, field merge is the answer.

Deinterlace

Once you have a proper 1080i signal (either received directly or reconstructed via field merge), deinterlacing converts it to progressive:

Input: 1920x1080i @ 25fps (interlaced, two fields per frame) Output: 1920x1080p @ 50fps (progressive, one full frame per field)

Vajra Cast uses the bwdif (Bob Weave Deinterlacing Filter) algorithm. bwdif produces one output frame per field, doubling the frame rate while maintaining full resolution. The result is smooth 50fps progressive video.

Why bwdif Over yadif?

Both are motion-adaptive deinterlacers, but bwdif produces noticeably better results on broadcast content:

Aspectbwdifyadif
Edge qualityBetter — uses 3-line Gaussian weighted interpolationGood — uses 2-line linear interpolation
Motion handlingSmoother — larger filter kernelAdequate — smaller kernel
ArtifactsFewer jagged edges on diagonal motionMore visible on fast-moving content
CPU costSlightly higherSlightly lower
RecommendationDefault choice for broadcastAcceptable fallback

For broadcast contribution where quality matters, bwdif is the right choice. The CPU difference is negligible, and the quality improvement is visible on any production monitor.

The Full Pipeline

When processing a half-height field-as-frame feed into clean progressive output, Vajra Cast applies the following filter chain:

tinterlace=merge → setfield=tff → bwdif → setsar=1:1 → hwupload

Each step:

FilterPurpose
tinterlace=mergeRecombines two 540p frames into one 1080i frame
setfield=tffSets the field order to top-field-first (standard for 1080i broadcast)
bwdifDeinterlaces 1080i to 1080p, doubling the frame rate
setsar=1:1Ensures square pixel aspect ratio for the progressive output
hwuploadUploads the frame to GPU memory for hardware-accelerated encoding

The pipeline runs in software up to the hwupload step, then hands off to the GPU for encoding (Intel QSV or VAAPI). This is deliberate: deinterlacing is a CPU-side filter that needs access to raw pixel data. The GPU handles the computationally expensive encoding step.

For feeds that are already standard 1080i (not field-as-frame), the pipeline skips the first two steps:

bwdif → setsar=1:1 → hwupload

Field Order

Field order matters. Most 1080i broadcast content is top-field-first (TFF). If the field order is wrong, you get a characteristic “judder” effect where motion appears to move backward for one field before correcting. Vajra Cast defaults to TFF but can be configured for bottom-field-first (BFF) when needed.

Performance

Deinterlacing is a CPU-side operation, but it is lightweight compared to encoding:

OperationCPU Cost (1080i50 → 1080p50)
Field merge (tinterlace)~2% of one core
Deinterlace (bwdif)~8-12% of one core
setfield + setsarNegligible
Hardware encode (QSV, 1080p50)~3% CPU (GPU does the work)
Total pipeline~15% of one core

A modern server can run multiple deinterlace pipelines in parallel without breaking a sweat. The bottleneck is always the hardware encoder session count, not the deinterlace filter.

Configuration in Vajra Cast

Via the Web Interface

  1. Open your route in the Vajra Cast dashboard.
  2. Navigate to Transcoding settings.
  3. Under Input Processing, enable Deinterlace.
  4. If your source is field-as-frame (540p at double rate), enable Field Merge as well.
  5. Select the field order (TFF is the default and correct for most broadcast content).
  6. Apply. The filter chain is inserted before the encoder.

Via the REST API

curl -X POST -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "deinterlace": {
      "enabled": true,
      "fieldMerge": true,
      "fieldOrder": "tff",
      "algorithm": "bwdif"
    },
    "encoder": "qsv",
    "codec": "h264",
    "width": 1920,
    "height": 1080,
    "bitrate": 8000,
    "fps": 50
  }' \
  http://localhost:8080/api/v1/routes/1/transcode

Auto-Detection

Vajra Cast can detect field-as-frame input by analyzing the stream metadata (resolution and frame rate). If it sees 1920x540 at 50fps on a route configured for 1080i input, it automatically enables field merge. You can override this behavior in the route settings if needed.

Common Scenarios

Nimbra Contribution to Progressive Output

A satellite contribution link using Nimbra encoders delivers 1920x540@50fps via SRT. You need clean 1080p50 for your production workflow:

Nimbra (1920x540@50fps SRT) → Vajra Cast → Field Merge + Deinterlace → 1080p50 H.264 (SRT out)

Ateme Encoder to HLS Delivery

An Ateme Kyrion encodes a studio camera feed as field-as-frame. You need to deliver progressive HLS for OTT:

Ateme (1920x540@50fps UDP) → Vajra Cast → Field Merge + Deinterlace → 1080p50 H.264 (HLS out)

Standard 1080i to Progressive

A standard interlaced feed (already 1920x1080i) from any source needs progressive conversion:

Any source (1920x1080i@25fps SRT) → Vajra Cast → Deinterlace → 1080p50 H.264 (SRT out)

Next Steps

Build your streaming pipeline with Vajra Cast

SRT gateway, automatic failover, real-time monitoring, and multi-destination routing. Free for 30 days.

Start free trial See pricing

30 days free · No credit card · Direct access to the dev team