Many features of the program are configurable through the menu system.  Some advanced settings and functions in beta test will require changes to this ini file to work properly.  All the settings used by the program are stored here and no changes are made to the registry.

While the default name of this file is DScaler.ini, other names and copies may be used, to create multiple profiles.  Just create a shortcut to invoke DScaler with a single parameter such as "DScaler.exe vcr.ini".  This would cause the vcr.ini (or whatever) file to be used and saved on exit.  Doing this is easiest if you copy a working DScaler.ini file first and then change it using the DScaler menus.

Setting Default Description

[Pulldown]

PulldownThresholdLow

40

A percentage which determines when PAL pulldown detection will detect a noticable improvement in combing.  Lower values will make detection require more combing to change.  Change this if PAL detection is not working for you.
PulldownThresholdHigh

10

A percentage which determines when PAL pulldown detection will go back from movie mode to video mode.  This value copes with certain types of video noise, if it is set too low then it will flip back on static movie images, if set too high it will remain in movie mode for too long.
PALPulldownRepeatCount

3

Number of times film mode is detected in a row before going into film mode
PALPulldownRepeatCount2

1

Number of times that film mode errors must bedetected in a row before going back to video mode
PulldownRepeatCount

4

This is the number of times the pulldown pattern must be detected before switching.
Threshold32Pulldown

15

This is the number of pixels per field that need to be similar for NTSC movie detection to detect a triplet of fields from the same movie frame. Higher values will cope with more video noise but will not detect the movies as well.
BitShift

13

This is used by the NTSC detection code to limit what pixels are the same.  This should allow for noise in source.  The value is applied to the square of the pixel difference with the results bitshifted right by this amount.
DiffThreshold

224

No longer used
PulldownRepeatCount2

2

The number of times an unexpected pattern can occur before switching back to video video mode from a film mode. 
RefreshRate

0

If set then it is used with DoAccurateFlips to reduce judder
StaticImageFieldCount 16 The Adaptive video deinterlace mode considers an image to be static if it stays the same (or nearly the same, subject to Threshold32Pulldown) for this many fields. In Adaptive mode, DScaler will switch from LowMotionMode to StaticImageMode for as long as the image remains the same. This helps reduce CPU consumption on still images such as DVD menu screens.
LowMotionFieldCount 4 The Adaptive video deinterlace mode considers an image to be low-motion if its difference stays below Threshold32Pulldown for this many fields. When that happens, DScaler will switch from high-motion to low-motion mode.
StaticImageMode 3 Specifies the video deinterlace mode to use in Adaptive mode for static scenes (see StaticImageFieldCount).
LowMotionMode 2 Specifies the video deinterlace mode to use in Adaptive mode for low-motion scenes (see LowMotionFieldCount).
HighMotionMode 2 CSpecifies the video deinterlace mode to use in Adaptive mode for high-motion scenes (see LowMotionFieldCount).

[Hardware]

BtAgcDisable

0

Disable AGC(automatic gain control). This doesn't work well for almost anyone, but it's there. (Adv. Video Flags)
BtCrush

1

Turn on Adaptive AGC , this is the Crush bit in the ADC Interface register. (Adv. Video Flags)
BtWhiteCrushUp

207

Fine tuning of the Adaptive AGC White Crush Up Register. This, and below, are the full 8 bit contents of the 2 registers. I'm not sure we have the best defaults here. See the BT8x8 datasheets. (Adv. Video Flags)
BtWhiteCrushDown

127

Fine tuning of the Adaptive AGC White Crush Down Registers. See above. (Adv. Video Flags)
BtEvenChromaAGC

1

Even/odd chroma AGC. Must be 0 or 1. Turns on color AGC. (Adv. Video Flags)
BtOddChromaAGC

1

 
BtEvenLumaPeak 0 From the BT8X8datasheet: (PEAK) bit determines whether the normal luma low-pass filters are implemented via the HFILT bits, or the peaking filters are implemented. (HFILT is the horizontal filter mentioned below) (Adv. Video Flags)
BtOddLumaPeak 0  
BtFullLumaRange 1 Luma Output Range. DScaler defaults to 1 but maybe should be set to 0 for NTSC systems. (Adv. Video Flags)
BtEvenLumaDec 0 From the datasheet: The Luma Decimation filter is used to reduce the high-frequency component of the luma signal. Useful when scaling to CIF resolutions or lower.  If ON it enables luma decimation using the selectable H filter. (Adv. Video Flags)
BtOddLumaDec

0

 
BtEvenComb 1 Chroma Comb Enable. This bit determines if the chroma comb is included in
the data path. If enabled, a full line store is used to average adjacent lines of
color information, reducing cross-color artifacts. (Adv. Video Flags)
BtOddComb 1  
BtColorBars 0 Show color bars on display (Adv. Video Flags)
BtGammaCorrection 0 Gamma Correction. This is another double negative. If it equals 0 (OFF) it really says we do not want to do gamma correction removal. If ON the we DO gamma correction removal. (Adv. Video Flags)
BtCoring 0 Luma Coring. This sets the minimum black level. This value might also be different for PAL/NTSC. It must be 0, 1, 2, or 3. Unclear yet what is the best value. (Adv. Video Flags)
BtHorFilter 0 Turns on hardware Horizontal filter. Because of DScalers large scale only values 0 and 1 are valid. 0=normal 2 tap filter (like before), 4 adds a little more filter but works (I think) only when the BtLumaPeak and BtLumaDec are also both on. It makes thing a little softer. (Adv. Video Flags)
BtVertFilter 0 Vertical filter. Valid values would be 0-7 but at DScaler's resolution only 0 and 4 are allowed. 0 = 2-tap interpolation only. 4 = 2-tap plus z filter. This make thing a lot softer. (Adv. Video Flags)
BtColorKill 1 Auto Low Color Killer is supposed to suppress the color signal if it looks like a black and white video. It should probably default to on.  (Adv. Video Flags)

[Threads]

Hurry_When_Late

0

Performance parameter.  If set to 1 will cause DScaler to bypass some processing to conserve CPU time if it seems to not be keeping up with the input video stream. May be set to 1for slower machines.
Wait_For_Flip

1

Performance parameter. Whether to wait for processing to complete (or at least be properly set up) when flipping the video overlay buffer.  May be set to 0 for slower machines.
Sleep_Interval

1

Performance parameter. The number of milliseconds DScaler will sleep, waiting for the next video input buffer. May be set to 0 for slower machines. If this is set to 0 it may appear on a CPU monitor that DScaler is using 100% of available CPU processor time but it will still be a good citizen and yield control if another task is ready to run. May be set to 0 for slower machines.
Back_Buffers

2

The number of video overlay back buffers to use (in addition to the normal front video display buffer).  This may be set to only 1 if there is too little video memory on your graphics card, at a small performance penalty.
DoAccurateFlips

1

Used to eliminate judder.  Has no effect if RefreshRate is not set in [Pulldown]

[Deinterlace]

DeinterlaceMode

  2

The Deinterlace mode to be used. The best way to set this is run DScaler and set it from the menu.  The current mode will be saved on exit.
EdgeDetect 

625

This values governs the strength of edge detection, use higher values if you think that the video deinterlacing is occurring too often.
JaggieThreshold

73

This values governs the threshold for fine line dtection, use higher values if you get problems with small text
BlcMinimumClip

-15

The Blended Clip "Minimum Clip" slider value.  This can be used to increase the amount of Clip vs Weave in the event that none of the other more specific values seem to work and you still see too many Weave artifacts ("venetion blinds"). It's best to try everything else first.
BlcPixelMotionSense

17

The Blended Clip deinterlace method "Pixel Motion Sensitivity" slider: This determines how sensitive we are to motion.  Motion is calculated as the maximum absolute change in luma from the previous field in either of the two vertically adjacent pixels. I was going to use the change in  luma of the Weave pixel but that is not current enough to prevent the "flash attacks" of venetiaon blinds that can occur with sudden scene changes. This value is calculated separately for each pixel.
BlcRecentMotionSense

0

The Blended Clip "Recent Motion Sensitivity" slider: This increases the tendency to use Clip based upon an n-period Exponential Moving Average of the recent motion. Recent motion is in turn an arithmetic average of how much each pixel's luma has changed from the previous field.  
BlcMotionAvgPeriod

20

The Blended Clip "Motion Average Period" slider: This sets the period of the moving average for Recent Motion Sensitivity. 
BlcPixelCombSense

27

The Blended Clip "Pixel Comb Sensitivity" slider: This determines how sensitive we are to the current comb factor of each pixel. This uses a simplified comb factor C = abs(2*W - H - L)/2, which is just the distance of the Weave pixel's luma from its interpolated value.  This value is calculated separately for each pixel. This value along with the Pixel Motion Sense seem to be the two main things to play with to get good results. Generally, increase one of these if you get Weave artifacts and decrease one if you get BOB artifacts.  
BlcRecentCombSense
0 The Blended Clip "Recent Comb Senseitivity" slider:  Operates like the Recent Motion slider but acts on the average Comb Factor.
BlcCombAvgPeriod

20

The Blended Clip "Comb Average Period" slider: Sets the period of the Comb exponential moving average. See the comments on "Motion Average Period".
BlcHighCombSkip

 10

The Blended Clip "Skip High Comb Frames" slider: This was added in the hopes that it could help to skip a frame in the event of a sudden flash attack on a rapid scene change or maybe help to handle some very poorly mastered anime using ?:? pulldown.  It will give very ugly results if you set it too high.
BlcLowMotionSkip

0

The Blended Clip "Skip Low Motion Frames" slider: This also is just experimental an probably of low value. The idea here is that any frame with sufficiently low change from the previous one is maybe a still frame with some video noise, and could be skipped. Not for normal use. NOTE - This may go away in a future release.
BlcUseInterpBob

0

The Blended Clip "Use Interpolated BOB instead of Clip" check box. For those who don't like the Clipped Weave, this will change it to an Interpolated Bob. All other blending and processing will still function. (but it probably won't look as good).
BlcBlendChroma

1

The Blended Clip "Blend Chroma Value" check box: Usually the chroma value for the Clipped Weave is just taken from the pixel above it. Checking this box causes the chroma values to also use the clipping algorithm. 
Checking this box seems to get richer color detail and a more theater like picture but it sometimes seems to create some softness or shimmering on my stock ticker or rapidly moving objects with lots of detail like a hockey game. Generally though it seems better.
BlcShowControls

1

The Blended Clip control panel displays by default every time that deinterlace method is selected.  Setting this to 0 suppresses that display.

[ASPECT]

SourceAspect

0

The most recent aspect ratio used. This is the ratio multiplied by 1000, e.g. a 4:3 ratio is (4 / 3 * 1000) or 1333. A value of 0 means to use the aspect ratio of the source material, either 4:3 or 16:9 depending on aspect_mode. This is settable via various menu items in the Aspect menu, and may also be modified by the aspect ratio autodetect option.
CustomSourceAspect

0

Allows you to specify a custom aspect ratio which may be accessed from the Aspect menu. Normally unused.
ScreenAspect

0

The aspect ratio of the display screen. If 0, the screen is assumed to have square pixels and its resolution is used as the aspect ratio. This is settable via various menu items in the Aspect menu.
CustomScreenAspect

0

Allows you to specify a custom screen aspect ratio which may be accessed from the Aspect menu. Normally unused.
Mode

0

1 if the source is a 4:3 image (even a letterboxed one), 2 if it's an anamorphic 16:9 image, or 0 to stretch the source to the current window size. This is settable via various menu items in the Aspect menu.
AutoDetectAspect

0

Controls whether the code analyzes each frame to detect the current aspect ratio. This may be toggled using the "Autodetect" Aspect menu option. If deactivated, you can get DScaler to detect the aspect ratio of the current frame using the "Compute" Aspect menu option.
LuminanceThreshold

15

Controls how bright letterbox bars are allowed to get. Valid values are 0 through 127. Any pixel with lower luminance than this is considered black by the aspect ratio detection code. Lowering this value will allow DScaler to detect letterbox modes on darker scenes, at the cost of increasing the chance that video noise in the letterbox bars will be treated as part of the picture. If all your letterboxed material is from a clean signal source, you'll probably want to lower this.
IgnoreNonBlackPixels

0

When detecting aspect ratios, we often want to ignore TV station logos that extend into the letterbox area. This setting controls how many non-black pixels (see LuminanceThreshold) must be present on a line before it's no longer considered part of a letterbox bar. A value of 0 means 20% of the width of the screen, more than big enough to cover most logos. If you never watch letterboxed material with station logos, e.g. if all your letterboxed material is on laserdisc or DVD, set this to 1.
AspectConsistencyTime

15

This many seconds must pass without a narrower frame appearing before the autodetect code will switch to a wide ratio it hasn't seen before.
AspectHistoryTime

300

The autodetect module will remember previous aspect ratios it's switched to for this many seconds. Ratios that last for less than a second aren't remembered since they're assumed to have been erroneous.
ZoomInFrameCount

60

When autodetecting aspect ratios, if a ratio we've used before (within the past AspectHistoryTime seconds) reappears and is consistent for this many frames, switch back to it.
Clipping 1 If turned on (non-zero), the source image is clipped (masked) to hide any source material outside the expected region. This is the normal operation mode. It can be turned off and combined with the image positioning commands to make more space available for captions.
deferedOverlay 0 If turned on (non-zero) the overlay on the screen will not be updated until Windows has painted the black masking bars but before painting the purple overlay color. Additionally, it imposes a delay for the vertical retrace before painting the overlay color. Under normal CPU load, this should eleminate flashing of purple borders when resizing or bouncing the image. Flashing may still occur under heavy load.
Bounce 0 If turned on (non-zero), the image will bounce within any space remaining either beside or above/below the image. Used to maximize the region being used on a CRT projector to minimize the risk of burning in one piece of the CRT.
BouncePeriod 1800 Time (in seconds) it takes for the image to bounce from the center to the right/bottom then back to the left/top and back to center. Default is half an hour.
BounceTimerPeriod 1000 Number of miliseconds between overlay updates when bounce mode is enabled.
Orbit 0 If enabled (non-zero) the region of the captured image is bounced around. This prevents any individual item on the screen from being constantly displayed in the same location and thus minimizes CRT burn-in risk from small static objects. The orbit causes the image to move into the overlay region, so you may need a larger overlay setting if you use the orbit option.
OrbitPeriodX 2700 Number of seconds for the image to move back and forth across the entire orbit region in the horizontal. It is recommended that OrbitPeriodX and OrbitPeriodY use different values to provide wider variation in the orbit positions. If both values are the same, the image will only diagionally orbit from top-left to bottom-right.
OrbitPeriodY 3600 Number of seconds for the image to vertically across the entire orbit region. It is recommended that OrbitPeriodX and OrbitPeriodY use different values to provide wider variation in the orbit positions. If both values are the same, the image will only diagionally orbit from top-left to bottom-right.
OrbitSize 8 Number of pixels in the captured material to orbit.
OrbitTimerPeriod 60000 Number of miliseconds between updates of the overlay for image orbiting.
VerticalPos CENTER Vertical position of the image (TOP, CENTER, BOTTOM).
HorizontalPos CENTER Horizontal position of the image (LEFT, CENTER, RIGHT).

[NoiseFilter]

UseTemporalNoiseFilter 0 Controls whether the temporal noise filter is activated when DScaler starts up. 0 means it isn't; any other number means it is.
TemporalLuminanceThreshold 6 Controls how different a pixel's luminance (brightness) has to be from its predecessor in the previous frame before it's considered a change in the actual image rather than just noise. Valid values are 0-255. Values over 15 tend to produce posterization artifacts that are more distracting than the video noise was.
TemporalChromaThreshold 7 Controls how different a pixel's chrominance (hue) has to be from its predecessor in the previous frame before it's considered a change in the actual image rather than just noise. Valid values are 0-255. Values over 20 tend to produce posterization artifacts that are more distracting than the video noise was.

[GammaFilter]

UseGammaFilter

0

Do you want to use the gamma filter
Gamma

1000

Gamma adjustment, note 1000 doesn't do anything, 1300 does a 1.3 power adjustment

Deinterlace Modes

The following numeric codes correspond to the various deinterlace modes supported by DScaler. They are used in the DeinterlaceMode, LowMotionMode, HighMotionMode, and StillImageMode settings.

ID Name Summary
0 Video Bob Adaptive video deinterlace with a tendency to bob rather than weave. Useful for high-motion scenes on slower PCs.
1 Video Weave Adaptive video deinterlace with a tendency to weave rather than bob. Useful for low-motion scenes on slower PCs.
2 Video 2-Frame Adaptive video deinterlace that examines more data than Video Bob or Video Weave. Can handle high and low-motion scenes but requires more CPU horsepower.
3 Simple Weave Combines each incoming field with the previous one, with no attempt to eliminate visible artifacts. Suitable for static (still) images.
4 Simple Bob Fills the whole screen with each incoming field, effectively cutting resolution in half. Not generally useful, though some sports may look acceptable and it uses less CPU time than most of the other modes.
5 Scaler Bob Like Simple Bob, but uses the display hardware to expand the half-resolution image rather than doing it in software. Uses less CPU time than Simple Bob and looks better on some video cards. Switching to and from this mode may produce brief distortions in the picture.
6-7 2:2 Pulldown PAL film modes, each film frame corresponding to two video fields for a frame rate of 25FPS. Generally you will want to let DScaler automatically detect these modes rather than setting them by hand.
8-12 3:2 Pulldown NTSC film modes, each pair of film frames corresponding to five video fields for a frame rate of 24FPS. Generally you will want to let DScaler automatically detect these modes rather than setting them by hand.
13-14 Even/Odd Only Ignore the odd or even fields, respectively. Essentially these are bob modes, but they may produce better results on some video cards than simple bobbing. Mostly useful for older videogame systems (PlayStation, Nintendo64, etc.) that render games at half resolution.
15 Blended Clip Attempts to smoothly blend the results of weaving and bobbing rather than simply choosing one or the other outright. This mode has a lot of settings that can be tweaked with a control panel.
16 Adaptive Not exactly a mode in its own right, the adaptive algorithm switches between other deinterlace modes depending on the amount of motion in the scene. Its exact behavior is controlled by LowMotionFieldCount, HighMotionMode, and related INI file settings; see the [Pulldown] section above.
17 Greedy Examines several nearby pixels to determine which one will produce the best image. Works well on poorly-mastered film material and on video with low amounts of motion.
18 Greedy 2 Frame Examines several nearby pixels to determine when to BOB a pixel. Works well on sports and on video with large amounts of motion.