GamMatch

From Avisynth wiki
Jump to: navigation, search
Abstract
Author StainlessS
Version v0.05
Download GamMatch_25&26_x86_x64_dll_v0.05_20190106.zip
Category Adjustment Filters
License GPLv2
Discussion Doom9 Thread

Contents

Description

GamMatch(), [Gamma Matcher]. Useful to correct bad color clip where there is a better color source of perhaps lower rez available. Additional tweaking via RedMul, GrnMul and BluMul multipliers. GamMatch, Allows to correct a clip that has had Levels + Gamma badly applied, to one of more channels, by using an in sync version clip with good un-messed with color, but perhaps of inferior resolution. GamMatch is unlikely to be of any use where eg Tweak or some other non RGB levels type mod has been applied.

     What it does(roughly):-
         Alter bad source color clip channel minimums, maximums and averages to match dc detect (good color) clip.


Requirements


*** vcredist_x86.exe is required for GamMatch-x86
*** vcredist_x64.exe is required for GamMatch-x64


Syntax and Parameters

GamMatch(Clip c,clip dc,
      \ Float "RedMul"=1.0,Float "GrnMul"=1.0, Float "BluMul"=1.0,
      \ Float "Th"= 0.00,Float "loTh"=Th,Float "hiTh"=Th,
      \ int "RngLim"=11,Float "GamMax"=10.0,
      \ int "x"=20,int "y"=20,int "w"=-20,int "h"=-20,
      \ Bool "Show"=True,int "Verbosity"=2,Bool "Coords"=false
      \ )

    c, no default.              Bad Color source clip.

    dc, no default.             Detection clip (good color clip). Must be same ColorSpace and FrameCount as source clip, no other similarities enforced.

    RedMul, default 1.0         Red channel multiplier adjustment.   [0.1 <= RedMul <= 10.0]
    GrnMul, default 1.0         Green channel multiplier adjustment. [0.1 <= GrnMul <= 10.0]
    BluMul, default 1.0         Blue channel multiplier adjustment.  [0.1 <= BluMul <= 10.0]

    Th, Default 0.00           Sets Default for loTh and hiTh. Suggest Default, 0.00(percent).  [-1.0(OFF) , or 0.0 -> 1.0]
								   v0.05, NOTE, Default changed from 0.04 to 0.00.
    loTh, Default Th           As for Ignore_low in AutoLevels, or Threshold in YPlaneMin.  [-1.0, or 0.0 -> 1.0]
                               Percent, amount of extreme pixels (eg noise) to ignore when finding minimum R, G or B channel values.
                               -1.0 is OFF, input channel minimum is set to 0 as for levels(0,gamma,input_max, ... ).
                               If loTh >=0.0, then will scan frame looking for lowest pixel value whose cumulative sum
                               [including all pixels counts of lower value pixels] is greater than loTh%.
                               loTh, only shown in metrics if greater or equal to 0.0 ie switched ON (Always shown when Verbosity=3=FULL).
    hiTh, Default Th           As for Ignore_high in AutoLevels, or Threshold in YPlaneMax. [-1.0, or 0.0 -> 1.0]
                               Percent, amount of extreme pixels (eg noise) to ignore when finding maximum R, G or B channel values.
                               -1.0 is OFF, input channel maximum set to 255, as in levels(input_min,gamma,255, ... ).
                               If hiTh >=0.0, then will scan frame looking for highest pixel value whose cumulative sum
                               [including all pixels counts of higher value pixels] is greater than hiTh%.
                               hiTh, only shown in metrics if greater or equal to 0.0 ie switched ON (Always shown when Verbosity=3=FULL).

    RngLim, default 11         [1 <= RngLim <= 32]
                               If ALL THREE RAW input channel ranges ie (ChannelMax(max(hiTh,0.0))-ChannelMin(max(loTh,0.0))) are less than RngLim then
                               all scaling is disabled, and remapping is linear without gamma estimation, to range omin -> omax,
                               ie avoid remapping of Black, White frames, or single color frames.

    GamMax, default 10.0       Upper value for guess gamma [2.0 <= GamMax <= 10.0]
                                   Starting guess upper range and limit for gamma estimator (probably best left alone).
                                   The lower guess range and limit will be set to 1.0 / GamMax, by default 0.1.


    x,y, Both default 20.      Area of dc Detect clip frame to sample when getting averages and estimating Gamma function, allows to ignore rubbish at frame edges.
    w,h, Both default -20.     Specified as for crop eg x=10,y=20,w=-30,h=-40, as in crop(10,20,-30,-40).

    Show, default true        True, show metrics info on frame.
    Verbosity, default 2       0 = Only upper frame metrics Flags line only
                               1 = Upper frame metrics
                               2 = Upper + important ones. (default)
                               3 = Nearly Full metrics.
                               4 = Full Metrics except version info
                               5 = Full Metrics including version info
                               Upper frame metrics shown as eg:- (when Verbosity=5=FULL)

                                  nnnnn] Flags:- SR
                                             R         G         B
                                  DC:       3,251     7,247     5,251
                                  DC_AVE:  73.875    62.033    70.528       >>>>>>>>
                                  RAW:      8,247    12,223    32,239
                                  IN:       8,247    12,223    32,239
                                  IN_AVE:  62.515    88.859   133.384
                                  SCALED:  58.165    92.887   124.893
                                  GAMMA:    1.240     0.640     0.486
                                  OUTAVE:  73.875    62.032    70.529       <<<<<<<< This matching DC_Ave

                               where,
                                  nnnnn, is the frame number.
                                  Flags:- (Specific to current frame, can change frame to frame)
                                      'S' = Scale, mode signified by color.
                                            Greyed out. Scale = 0(No Effect). May be Greyed out if all channels Min/Max are 0,255.
                                            White.  Scale = 1[Scales input channel average maximum dynamic range of R,G,B]
                                            Orange. Scale = 2[Scales input channel average dynamic range of R and G and B, Individually]
                                      'R' = Limited by RngLim, mode signfied by color.
                                            Greyed out. Not Range Limited.
                                            Red, at least 1 channel has remapping disabled.
                                  DC:     Shows comma separated channel minimum and maximum of DC clip(dependent upon loTh, hiTh).
                                  DC_AVE: DC Clip channel averages.
                                  RAW:    Shows RAW comma separated channel minimum and maximum, eg ChannelMin(max(loTh,0.0)) and (ChannelMax(max(hiTh,0.0)),
                                          only shown if Verbosity>=3 or, if any RAW input range is less than RngLim AND any of the RAW inputs are different
                                          to the equivalent standard input.
                                  IN:     Shows comma separated channel minimum and maximum (dependent upon Scale, loTh, hiTh).
                                  IN_AVE: Input channel averages.
                                  SCALED: Scaled input averages, (dependent upon Scale, loTh, hiTh, channel minimums and maximums).
                                  GAMMA:  Estimated gamma to achieve OutAve for channel. (dependent upon pretty much everything).
                                  OUTAVE: Output channel average ie rendered result.

                               DC and DC_AVE derived from DC (Good color clip), all others from clip c (BAD color clip, Incl OUTAVE).

    Coords, default False.  If True, then shows DC clip with dotted lines showing the x,y,w,h coords plotted on frame.
	                        (All other GamMatch functionality disabled).


Examples

TODO

Changelog

    v0.05, 06 Jan 2019.
		Bug fixed in GuessGamma(), previously found gamma could have been slightly nearer than result.
		Changed default Th to 0.00.



Archived Downloads

Version Download Mirror
v0.05 GamMatch_25&26_x86_x64_dll_v0.05_20190106.zip GamMatch_25&26_x86_x64_dll_v0.05_20190106.zip


External Links




Back to External Filters

Personal tools