Skip to content

Advanced Parameter Adjustment

Harry Munday edited this page Sep 16, 2025 · 10 revisions

This document contains advanced modify-able options inside ld-decode, vhs-decode, hifi-decode.

These are called "advanced parameters" but are more accurately, just tinkering with core components of the decoders filtering stages which is what has a drastic visual effect on the analogue picture signals.

Note

Tweaks are on a per recording and per VCR basis and results can vary drastically from different recordings & formats.

Tape Decoding

For VHS-Decode

--params_file <filename> Changes the decoder settings to use an external .json file with the correct formatting

Example:

Create a new text file, use this template and then save it as a custom-params.json file.

Note these values vary by tape format & TV System.

{
   "sys_params":{
      "burst_abs_ref":5000
   },
   "rf_params":{
      "video_lpf_freq":3000000
   }
}

Filter Tune Tool

filter_tune.py is a filter adjustment tool used with tbc files that have been raw exported, it is the filter_tune option in the self-contained binary packages.

Use --export_raw_tbc when decoding an FM RF Capture, this decodes a raw TBC without de-emphasis applied for filter tuning.

This can be used to derive a custom-params set of values to load into vhs-decode via .JSON file for a better quality decode, this process can be used for visual adjustment on a per file or per tape segment or per batch of tapes from the same source that may have some off-spec element. However this can be also used in aiding the development of newly or just implemented tape media formats as SP/LP/ELP etc for example all have different filter configs.

User Methods

Current State as of 12.10.2022 (DD.MM.YYYY)

PAL

Itewreed#2179's adjustments for Teletext with VHS-Teletext

Hardware Used for reference:

CX Card is a WinTV-Nova S, a 33µF electrolytic cap is between tap and the rg174 wire. From there it goes to the amp that originally is for digital CCTV with a bw of 8MHz and then into the CX card.


rfparams["deemph_mid"] = 210000
RFParams_PAL_VHS["video_bpf_low"] = 1400000
RFParams_PAL_VHS["video_hpf_extra"] = 1120000
RFParams_PAL_VHS["video_lpf_freq"] = 4500000

"It might be, that this is a good setting for my VCR I use for RF capture. So the settings could be different for other VCRs hardware and could give different results."

Discord Note

if self.options.double_lpf: # Double up the lpf to possibly closer emulate # lpf in vcr. May add to other formats too later or # make more configurable. self.Filters["FVideo"] *= filter_video_lpf

Smooths out high-frequency noise in the chroma signal.

Discord Note

vhsdecode/addons/chromaAFC.py

stock luma filter settings, chromaafc.py settings: (self.fsc_mhz - .44) / self.out_frequency_half, (self.fsc_mhz + .34) / self.out_frequency_half,

and --nld

Changes chroma filtering

Discord Note

Modification to addons/chromaAFC.py

Top is:

(self.fsc_mhz - .84) / self.out_frequency_half, (self.fsc_mhz + .74) / self.out_frequency_half,

Middle is (stock values):

(self.fsc_mhz - .64) / self.out_frequency_half, (self.fsc_mhz + .54) / self.out_frequency_half,

Bottom is:

(self.fsc_mhz - .44) / self.out_frequency_half, (self.fsc_mhz + .34) / self.out_frequency_half,

Deprecated Adjustments

Discord Note

NTSC

Titan91#1526's adjustments for NTSC video.

  1. Set RFParams_NTSC_VHS["video_bpf_low"] = 1500000 in vhs.py
  2. Set rfparams["deemph_gain"] = 12 in vhs.py
  3. Set rfparams["deemph_mid"] = 280000 in vhs.py (I have not confirmed this)
  4. Disable double band pass filtering to improve sharpness slightly by commenting out lines 1554 and 1558 of process.py

Page End

Home

Starting & Contributing

Software Installation

Capture Hardware

Hardware Installation

Software Usage

VBI Data Extraction & Decoding

Tools & Scripts

Guides

Technical

Other Decoders

Support & Community

Clone this wiki locally