Video Deinterlacing & Field Merge for Broadcast Encoders
Deinterlace 1080i feeds from Nimbra, Ateme, and Harmonic encoders. Field merge, bwdif filtering, GPU-accelerated pipeline.
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:
- True interlaced: 1920x1080i at 25/29.97 fps. Each frame contains two interleaved fields (top field, bottom field). This is the standard format.
- 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?
| Symptom | Cause | Fix |
|---|---|---|
| 1920x540 resolution at double frame rate | Encoder sends fields as frames | Field merge |
| Vertically squeezed image | Same — half-height fields | Field merge |
| Normal 1080i feed | Already correctly interlaced | Skip to deinterlace |
Encoders That Produce Field-as-Frame
| Encoder | Typical Output | Notes |
|---|---|---|
| Net Insight Nimbra | 1920x540 @ 50/59.94fps | Common in satellite contribution. Nimbra VA 210/220 series and video gateway configurations often output fields as progressive frames over IP. |
| Ateme Kyrion/Titan | 1920x540 @ 50/59.94fps | Ateme 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/VOS | 1920x540 @ 50/59.94fps | Harmonic encoders in certain MPEG-2 TS configurations produce separated fields. Particularly common with Ellipse series in contribution workflows. |
| Generic MPEG-2 TS | Varies | Any 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:
| Aspect | bwdif | yadif |
|---|---|---|
| Edge quality | Better — uses 3-line Gaussian weighted interpolation | Good — uses 2-line linear interpolation |
| Motion handling | Smoother — larger filter kernel | Adequate — smaller kernel |
| Artifacts | Fewer jagged edges on diagonal motion | More visible on fast-moving content |
| CPU cost | Slightly higher | Slightly lower |
| Recommendation | Default choice for broadcast | Acceptable 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:
| Filter | Purpose |
|---|---|
tinterlace=merge | Recombines two 540p frames into one 1080i frame |
setfield=tff | Sets the field order to top-field-first (standard for 1080i broadcast) |
bwdif | Deinterlaces 1080i to 1080p, doubling the frame rate |
setsar=1:1 | Ensures square pixel aspect ratio for the progressive output |
hwupload | Uploads 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:
| Operation | CPU Cost (1080i50 → 1080p50) |
|---|---|
| Field merge (tinterlace) | ~2% of one core |
| Deinterlace (bwdif) | ~8-12% of one core |
| setfield + setsar | Negligible |
| 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
- Open your route in the Vajra Cast dashboard.
- Navigate to Transcoding settings.
- Under Input Processing, enable Deinterlace.
- If your source is field-as-frame (540p at double rate), enable Field Merge as well.
- Select the field order (TFF is the default and correct for most broadcast content).
- 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
- Learn about Hardware Transcoding for GPU-accelerated encoding after deinterlacing
- Return to the Broadcast Streaming Software Guide for the complete feature overview
- Explore Real-Time Metrics for monitoring your deinterlacing pipeline
SRT gateway, automatic failover, real-time monitoring, and multi-destination routing. Free for 30 days.
30 days free · No credit card · Direct access to the dev team