Composite Baseband Video Signal Modules

ntsc.comb

I/O: video/video

Supports HDR: no

Parameters:

  • Scene detection threshold (thresh): Average luminance difference across consecutive frames between 0 and 255.

Notes:

  • This module acts as a comb filter in the digital video domain. Specifically, the input is delayed by one frame (two full fields) and added to the current frame.
  • If consecutive frames are different enough (determined by thresh), input fields are passed directly through the module without modification. This is meant to avoid "ghosting" when the input cuts to a new scene.

ntsc.demod

I/O: video/video

Supports HDR: no

Parameters:

  • Chroma gain (chromagain): The amount of gain to apply to the chromaticity signal after separating it from the rest of the video signal. Defaults to 0.0 dbV
  • Luma gain (lumagain): The amount of gain to apply to the luminance signal after separating it from the rest of the video signal. Defaults to 0.0 dbV

Notes:

  • Input flowing to this module should always come from a signal "pre-scanned" by the ntsc.scan module.
  • Only use this module for composite video output. If ntsc.scan is used in component signal mode, use ntsc.demod3.

ntsc.demod3

I/O: video/video

Supports HDR: no

Parameters:

  • Chroma gain (chromagain): The amount of gain to apply to the chromaticity signal after separating it from the rest of the video signal. Defaults to 0.0 dbV
  • Luma gain (lumagain): The amount of gain to apply to the luminance signal after separating it from the rest of the video signal. Defaults to 0.0 dbV

Notes:

  • Input flowing to this module should always come from a signal "pre-scanned" by the ntsc.scan module.
  • Only use this module for component video output. If ntsc.scan is used in composite signal mode, use ntsc.demod.

ntsc.mod

I/O: video/signal

Supports HDR: no

Parameters:

  • Chroma flag (chromaflag): Can be 1 or 0. Produces black & white NTSC video if 0 and color NTSC video if 1. Defaults to 1.
  • Chroma synch (synch): Phase of the chroma carrier signal in units of samples. Defaults to 0 samples.

Notes:

  • Will automatically rescale input frames to 720x242 1:1 SAR.
  • Assumes video input is at exactly 59.94 (60000/1001) frames per second.
  • Each frame of video input is regarded by the module as a field (interlaced half-frame).
  • Because of this, for realistic results, progressive input frames should be pre-processed to separate the even and odd fields and sequence them as progressive half-frames.
  • Fields arrive in time-order sequence. NTSC traditionally transmits even lines first, beginning numbering at 1. Equivalent to FFmpeg's top-field first.
  • Output signal clock is exactly 13.5 MHz.

ntsc.scan

I/O: signal/video

Supports HDR: no

Parameters:

  • Y channel (y): Zero-based channel index for Y signal recovery. Defaults to 0.
  • I channel (i): Zero-based channel index for I signal recovery (chroma). Defaults to 0.
  • Q channel (q): Zero-based channel index for Q signal recovery (chroma). Defaults to 0.
  • Sync threshold min (min): Minimum threshold value for sync signal recovery in units of volts. Defaults to -0.29V
  • Sync threshold max (max): Maximum threshold value for sync signal recovery in units of volts. Defaults to -0.27V
  • H-sync timing threshold (h): Minimum time threshold value for H-sync signal recovery in units of samples. Defaults to 54.
  • V-sync timing threshold (v): Minimum time threshold value for V-sync signal recovery in units of samples. Defaults to 300.
  • Vertical adjustment (adj): Vertical offset to add to the output video signal in units of lines. Defaults to 0.
  • Chroma phase offset (synch): Chroma signal phase offset in units of degrees. Defaults to 0.

Notes:

  • Expected input for ntsc.mod is equivalent to expected output for this module.

  • Video output consists of rescaled progressive half-frames at 59.94 (60000/1001) frames per second.

  • Output frames arrive in time-order sequence (top-field first).

  • Expected input signal clock is exactly 13.5 MHz, incongruent input signals will be resampled to this rate before demodulation.

  • If all of the channel ID parameters are congruent, composite output mode is used. Y+C will be filtered and separated into Y, I, and Q automatically by the module, including automatic clock recovery for chroma signal.

  • Otherwise, component output mode is used. Y, I and Q will be interpreted verbatim from the specified channels in the input signal.