f3kdbmod16

Ein Skript, damit f3kdb mittels der Detailmaske von gf3 läuft.
Unter denselben Bedingungen waren die Resultate sehr ähnlich, jedoch war f3kdbmod16 deutlich schneller.
Bei einem Test von 2000 Frames, war f3kdbmod16 knapp 30 Sekunden schneller.
f3kdbmod16 brauchte 1 1/2 Minuten, gradfun3 brauchte 2 Minuten.
Sollte also in der Regel um die 25% schneller laufen als gradfun3.

Vergleiche:

Diese Diashow benötigt JavaScript.

Skript:

Avisynth 2.6.0 or newer:

#Author: Petoyusa, eXmendiC, Frechdachs, kageru
#Version: 1.2
function f3kdbmod16(clip clp, int "thry", int "thrc", int "radiusy", int "radiusc", int "grainy", int "grainc", bool "dynamic_grainy", bool "dynamic_grainc", float "mask_thr", int "mask_radius")
{
radiusy = default( radiusy, 12 )
radiusc = default( radiusc, 8 )
thry = default( thry, 40 )
thrc = default( thrc, thry/2 )
mask_thr = default( mask_thr, 2 )
mask_radius = default( mask_radius, 2 )
grainy = default( grainy, 15 )
grainc = default( grainc, 0 )
dynamic_grainy = default( dynamic_grainy, false )
dynamic_grainc = default( dynamic_grainc, false )

mask = clp.GradFun3(thr_det=mask_thr,mask=mask_radius,debug=1,lsb_in=true,lsb=true)
U = clp.UToY().f3kdb(range=radiusc, Y=thrc, Cb=0, Cr=0, grainY=grainc, grainC=0, dynamic_grain=dynamic_grainc, keep_tv_range=true, input_depth=16, output_depth=16)
V = clp.VToY().f3kdb(range=radiusc, Y=thrc, Cb=0, Cr=0, grainY=grainc, grainC=0, dynamic_grain=dynamic_grainc, keep_tv_range=true, input_depth=16, output_depth=16)
Y = clp.f3kdb(range=radiusy, Y=thry, Cb=0, Cr=0, grainY=grainy, grainC=0, dynamic_grain=dynamic_grainy, keep_tv_range=true, input_depth=16, output_depth=16)
filtered = YToUV(U, V, Y)
return Dither_merge16(filtered, clp, mask, y=3, u=3, v=3, luma=true)
}
function f3kdbmod16x(clip clp, int "thry", int "thrc", int "radius", int "grainy", int "grainc", bool "dynamic_grain", float "mask_thr", int "mask_radius")
{
radius = default( radius, 12 )
thry = default( thry, 40 )
thrc = default( thrc, thry/2 )
mask_thr = default( mask_thr, 2 )
mask_radius = default( mask_radius, 2 )
grainy = default( grainy, 15 )
grainc = default( grainc, 0 )
dynamic_grain = default( dynamic_grain, false )

mask = clp.GradFun3(thr_det=mask_thr,mask=mask_radius,debug=1,lsb_in=true,lsb=true)
filtered = clp.f3kdb(range=radius, Y=thry, Cb=thrc, Cr=thrc, grainY=grainy, grainC=grainc, dynamic_grain=dynamic_grain, keep_tv_range=true, input_depth=16, output_depth=16)
return Dither_merge16(filtered, clp, mask, y=3, u=3, v=3, luma=true)
}

Für Vapoursynth Port HIER klicken.

radiusy = Radius des Debanders im Luma-Bereich (Y)
radiusc = Radius des Debanders im Chroma-Bereich (UV)
thry = Stärke des Debanders im Luma-Bereich (Y)
thrc = Stärke des Debanders im Chroma-Bereich (UV)
mask_thr = Stärke der Maske um Konturen/Details von Banding zu erkennen
mask_radius = Radius der Maske
grainy = Grain der nach dem Debandvorgang hinzugefügt wird im Luma-Bereich (Y)
grainc = Grain der nach dem Debandvorgang hinzugefügt wird im Chroma-Bereich (UV)
dynamic_grainy = Dynamisches Grain statt statischem Grain im Luma-Bereich (Y) verwenden
dynamic_grainy = Dynamisches Grain statt statischem Grain im Chroma-Bereich (UV) verwenden

Funktioniert ähnlich wie f3kdb. Parameternamen sind jedoch von gradfun3 übernommen.
Hier zur Doku von f3kdb und gradfun3.

Advertisements