Jeremy Duncan
7th August 2007, 09:02
________ Media Player Classic. Gabest 6.4.9.0 ________
\\\\\ Click the View button, and the Options Button.
\\\\\ Default output
\\\\\ Click the Audio Switcher Tab, Slide the bar to the far right.
\\\\\ Click the External Filters Tab.
Click the Add Filter Button.
Double click the filters you want. You'll need;
FFdshow Audio decoder
FFdshow video decoder
\\\\\ After you see them in the External Filter screen. highlight each one and click Prefer.
Double Click the FFdshow video decoder.
Codecs tab
Set Mpeg2 to Libmpeg2, and check "DVD decoding".
Set Raw video to All supported
Set up ffdshow as shown in the Seesaw configuration.
\\\\\ Double Click the FFdshow Audio decoder.
Set up ffdshow as shown in the FFdshow Audio decoder configuration.
________ SeeSaw________
\\\\\ Codecs tab
Set Mpeg2 to Libmpeg2, and check "DVD decoding".
Set Avisynth to Avisynth, Raw video to All supported
\\\\\ Blur & NR tab
Check Soften. Set it to zero.
Check Temporal smooth, uncheck the process color sub tab, and set it to zero.
Check denoise3d: Luma: 0.00, Chroma: 0.00, Time: 0.00, HQ UnChecked
\\\\\ Deinterlace tab
5 Tap Lowpass
\\\\\ Avisynth tab
YV12 checked,
Add FFdshow Video source checked,
3:2 Pulldown box: Ignore Pulldown checked,
Check Buffer back/Ahead: 1, 2
*copy and paste* the code below into the avisynth text box, and then click apply.
SetMemoryMax(1024)
FluxSmoothT(3)
ColorMatrix(Mode="Rec.601->Rec.709",scaling=2,threads=2)
MT("SeeSaw(NRlimit=0, NRlimit2=5, Sstr=2.22, Szp=1, Slimit=9, Sdamplo=16, Spower=1, sootheT=95, SdampHi=39)",3)
\\\\\ Resize & aspect tab
Specify size 1024, 576 (Match your screen resolution)
Process Pixel aspect ratio internally checked
No aspect ratio correction checked
Lanczos
Taps: 2
Luma Sharpen: 1.00 (If it seems too sharp, just lower the Luma sharpen to 0.50 or something.
The 5 Tap lowpass blurs the picture a bit, so I set the Luma Sharpen to compensate. Works fine at 1.00)
Accurate rounding checked
\\\\\ Queue & Output tab
Queue output samples checked
\\\\\ Output tab
YV12 checked
________ FFdshow Audio Decoder ________
\\\\\ Check OSD,and Check Jitter.
\\\\\ Close FFdshow Audio Decoder, and play a movie.
\\\\\ While the movie is playing. You'll the the word "Jitter" in the top left of the screen.
Beside the word Jitter is a number. Write this number down, or remember what it was.
\\\\\ Open the FFdshow Audio decoder again.
Check the Delay Tab. Set each box to the number you wrote down in the previous step.
\\\\\ Check the Equalizer tab. Set the Equalizer starting from the far left slider: -7.92, -4.92, -1.92, -3.96, -4.92, -5.88, -3.96, -1.92, 0, -3.00
\\\\\ Check the Volume Tab, *Check Normalize*, check Reset on seek, check show current volume levels.
\\\\\ Check the Mixer Tab. Check "Normalize Matrix", Check the "Output Speakers Configuration" tab.
If you are using only 2 speakers, or headphones select "2/0 - stereo".
Check LFE if your using a subwoofer.
Checking Normalize Matrix is very important.
\\\\\ Close the FFdshow audio decoder by pressing Apply and OK.
SeeSaw.avsi (rename the seesaw extension to .avsi)
MT.dll
MaskTools.dll
mt_masktools.dll
RepairSSE3
RemoveGrainSSE3.dll
ColorMatrix.dll
Fluxsmooth.dll
________ Plugins ________
MT (http://www.avisynth.org/tsp/MT_07.zip)
Removegrain 0.9 (http://home.pages.at/kassandro/RemoveGrain/RemoveGrain.zip)
Removegrain 1.0 (http://home.arcor.de/kassandro/RemoveGrain/RemoveGrain.rar)
MT_Masktools (http://manao4.free.fr/masktools-v2.0a30.zip)
Masktools (http://manao4.free.fr/MaskTools-v1.5.8.zip)
Colormatrix (http://web.missouri.edu/~kes25c/ColorMatrixv21.zip)
Fluxsmooth (http://avisynth.org/warpenterprises/files/fluxsmooth_25_dll_20040729.zip)
________ Software ________
FFDshow. Updated July 2, 2007 (http://downloads.sourceforge.net/ffdshow-tryout/ffdshow_beta3_rev1324_20070701_clsid.exe?modtime=1183396865&big_mirror=0)
Media Player Classic (http://prdownloads.sourceforge.net/guliverkli/mpc2kxp6490.zip?download)
Avisynth (http://downloads.sourceforge.net/avisynth2/Avisynth_257.exe)
# SeeSaw v0.3e (02 Jan 2006)
#
# (Full Name: "Denoiser-and-Sharpener-are-riding-the-SeeSaw" )
#
# This function provides a (simple) implementation of the "crystality sharpen" principle.
# In conjunction with a user-specified denoised clip, the aim is to enhance
# weak detail, hopefully without oversharpening or creating jaggies on strong
# detail, and produce a result that is temporally stable without detail shimmering,
# while keeping everything within reasonable bitrate requirements.
# This is done by intermixing source, denoised source and a modified sharpening process,
# in a seesaw-like manner.
#
# This version is considered alpha.
#
# Usage:
#
# a = TheNoisySource
# b = a.YourPreferredDenoising()
# SeeSaw( a, b, [parameters] )
#
# You're very much encouraged to feed your own custom denoised clip into SeeSaw.
# If the "denoised" clip parameter is omitted, a simple "spatial pressdown" filter is used.
#
#
# Fiddled together by Didée, for your pleasure.
#
# ======= Main function =======
function SeeSaw( clip clp, clip "denoised",
\ int "NRlimit",int "NRlimit2",
\ float "Sstr", int "Slimit", float "Spower", float "SdampLo", float "SdampHi", float "Szp",
\ float "bias", int "Smode", int "sootheT", int "sootheS", float "ssx", float "ssy")
{
ssx = default( ssx, 1.0 ) # supersampling factor x / SeeSaw doesn't require supersampling urgently.
ssy = default( ssy, ssx ) # supersampling factor y / if at all, small values ~1.25 seem to be enough.
NRlimit = default( NRlimit, 2 ) # absolute limit for pixel change by denoising
NRlimit2 = default( NRlimit2, NRlimit+1) # limit for intermediate denoising
Sstr = default( Sstr, 1.5 ) # Sharpening strength (don't touch this too much)
Slimit = default( Slimit, NRlimit+2 ) # positive: absolute limit for pixel change by sharpening
# negative: pixel's sharpening difference is reduced to diff=pow(diff,1/abs(limit))
Spower = default( Spower, 4 ) # exponent for modified sharpener
Szp = default( Szp, 16+2 ) # zero point - below: overdrive sharpening - above: reduced sharpening
SdampLo = default( SdampLo, Spower+1 ) # reduces overdrive sharpening for very small changes
SdampHi = default( SdampHi, 24 ) # further reduces sharpening for big sharpening changes. Try 15~30. "0" disables.
bias = default( bias, 49 ) # bias towards detail ( >= 50 ) , or towards calm result ( < 50 )
Smode = default( Smode, ssx<1.35 ? 11 : ssx<1.51 ? 20 : 19 )
sootheT = default( sootheT, 49 ) # 0=minimum, 100=maximum soothing of sharpener's temporal instableness.
# (-100 .. -1 : will chain 2 instances of temporal soothing.)
sootheS = default( sootheS, 0 ) # 0=minimum, 100=maximum smoothing of sharpener's spatial effect.
Szp = Szp / pow(Sstr, 1.0/4.0) / pow( (ssx+ssy)/2.0, 1.0/2.0 )
SdampLo = SdampLo / pow(Sstr, 1.0/4.0) / pow( (ssx+ssy)/2.0, 1.0/2.0 )
ox=clp.width
oy=clp.height
xss = m4(ox*ssx)
yss = m4(oy*ssy)
NRL = string( NRlimit )
NRL2 = string( NRlimit2 )
NRLL = string( int(round( NRlimit2 * 100.0/bias - 1.0 )) )
SLIM = string( abs(Slimit) )
BIAS1 = string( bias )
BIAS2 = string( 100-bias )
#ZRP = string( abs(Szp) )
#PWR = string( abs(Spower) )
#DMP = string( SdampLo )
denoised = defined(denoised) ? denoised : mt_lutxy(clp,clp.removegrain(4,-1),"x "+NRL+" + y < x "+NRL+" + x "+NRL+" - y > x "+NRL+" - y ? ?",chroma="copy first")
NRdiff = mt_makediff(clp,denoised,chroma="process")
tame = mt_lutxy(clp,denoised,"x "+NRLL+" + y < x "+NRL2+" + x "+NRLL+" - y > x "+NRL2+" - x "+BIAS1+" * y "+BIAS2+" * + 100 / ? ?")
head = tame.sharpen2(Sstr,Spower,Szp,SdampLo,SdampHi,4)
# head = head.mt_merge(tame,tame.prewitt(multiplier=1.0).mt_expand().removegrain(20))
(ssx==1.0 && ssy==1.0) ? repair(tame.sharpen2(Sstr,Spower,Szp,SdampLo,SdampHi,Smode),head,1,-1,-1)
\ : repair(tame.lanczosresize(xss,yss).sharpen2(Sstr,Spower,Szp,SdampLo,SdampHi,Smode),head.bicubicresize(xss,yss,-.2,.6),1,-1,-1).lanczosresize(ox,oy)
SootheSS(last,tame,sootheT,sootheS)
sharpdiff= mt_makediff(tame,last)
(NRlimit==0) ? clp : \
mt_lutxy(clp,NRdiff, "y 128 "+NRL+" + > x "+NRL+" - y 128 "+NRL+" - < x "+NRL+" + x y 128 - - ? ?",chroma="process")
Slimit>=0 ? mt_lutxy(last,sharpdiff,"y 128 "+SLIM+" + > x "+SLIM+" - y 128 "+SLIM+" - < x "+SLIM+" + x y 128 - - ? ?",chroma="copy first")
\ : mt_lutxy(last,sharpdiff,"y 128 == x x y 128 - abs 1 "+SlIM+" / ^ y 128 - y 128 - abs / * - ?",chroma="copy first")
return( last )
}
# ======= Modified sharpening function =======
function sharpen2(clip clp, float strength, int power, float zp, float lodmp, float hidmp, int rgmode)
{
STR = string( strength )
PWR = string( 1.0/float(power) )
ZRP = string( ZP )
DMP = string( lodmp )
HDMP = (hidmp==0) ? "1" : "1 x y - abs "+string(hidmp)+" / 4 ^ +"
mt_lutxy( clp, clp.RemoveGrain(rgmode,-1,-1), \
"x y == x x x y - abs "+ZRP+" / "+PWR+" ^ "+ZRP+" * "+STR+" * x y - 2 ^ x y - 2 ^ "+DMP+" + / * x y - x y - abs / * "+HDMP+" / + ?",chroma="copy first")
return( last )
}
# ======= Soothe() function to stabilze sharpening =======
function SootheSS(clip sharp, clip orig, int "sootheT", int "sootheS")
{
sootheT = default(sootheT, 25 )
sootheS = default(sootheS, 0 )
sootheT = (sootheT > 100) ? 100 : (sootheT < -100) ? -100 : sootheT
sootheS = (sootheS > 100) ? 100 : (sootheS < 0) ? 0 : sootheS
ST = string( 100 - abs(sootheT))
SSPT = string( 100 - abs(sootheS))
mt_makediff(orig,sharp)
(sootheS==0) ? last
\ : mt_lutxy( last, last.removegrain(20,-1,-1),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+SSPT+" * 128 + x 128 - abs y 128 - abs > x "+SSPT+" * y 100 "+SSPT+" - * + 100 / x ? ?", chroma="ignore")
(sootheT==0) ? last
\ : mt_lutxy( last, last.temporalsoften(1,255,0,32,2),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+ST+" * 128 + x 128 - abs y 128 - abs > x "+ST+" * y 100 "+ST+" - * + 100 / x ? ?", chroma="ignore")
(sootheT > -1) ? last
\ : mt_lutxy( last, last.temporalsoften(1,255,0,32,2),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+ST+" * 128 + x 128 - abs y 128 - abs > x "+ST+" * y 100 "+ST+" - * + 100 / x ? ?",chroma="ignore")
mt_makediff(orig,last)
# mergechroma(sharp) # not needed in SeeSaw
return( last )
}
# ======= MOD4-and-atleast-16 helper function =======
function m4(float x) {x<16?16:int(round(x/4.0)*4)}
- The problem. In some DVD's, I get forced subtitles.
To fix this, I set up blur and nr as you see above. Not using anything, set to zero. This fixes most dvd's with the forced subtitle problem.
I can't reproduce it though, but when the problem did happen before, I wasn't using the deinterlace or blur and nr tabs.
I'm posting this to show a differetnt problem.
Using the deinterlace tab, above avisynth and resize tabs.
On the movie "Blade 2", and "Equilibrium", the Menu's are blank dark pages, but I can hear the music.
Unchecking the deinterlace tab, and reloading the page fixes the problem and I can see the menu fine.
I know Leak tweaked the video codec, and so I'm hoping he can fix this too.
The movies "Blade 2", and "Equilibrium", are the NTSC Standard definition versions. Played on Vista Premium.
I found that messing with the output colorspace can cause forced subtitles to appear, using YUY2, or IYUV instead of YV12 might let you see the forced subtitles bug.
\\\\\ Click the View button, and the Options Button.
\\\\\ Default output
\\\\\ Click the Audio Switcher Tab, Slide the bar to the far right.
\\\\\ Click the External Filters Tab.
Click the Add Filter Button.
Double click the filters you want. You'll need;
FFdshow Audio decoder
FFdshow video decoder
\\\\\ After you see them in the External Filter screen. highlight each one and click Prefer.
Double Click the FFdshow video decoder.
Codecs tab
Set Mpeg2 to Libmpeg2, and check "DVD decoding".
Set Raw video to All supported
Set up ffdshow as shown in the Seesaw configuration.
\\\\\ Double Click the FFdshow Audio decoder.
Set up ffdshow as shown in the FFdshow Audio decoder configuration.
________ SeeSaw________
\\\\\ Codecs tab
Set Mpeg2 to Libmpeg2, and check "DVD decoding".
Set Avisynth to Avisynth, Raw video to All supported
\\\\\ Blur & NR tab
Check Soften. Set it to zero.
Check Temporal smooth, uncheck the process color sub tab, and set it to zero.
Check denoise3d: Luma: 0.00, Chroma: 0.00, Time: 0.00, HQ UnChecked
\\\\\ Deinterlace tab
5 Tap Lowpass
\\\\\ Avisynth tab
YV12 checked,
Add FFdshow Video source checked,
3:2 Pulldown box: Ignore Pulldown checked,
Check Buffer back/Ahead: 1, 2
*copy and paste* the code below into the avisynth text box, and then click apply.
SetMemoryMax(1024)
FluxSmoothT(3)
ColorMatrix(Mode="Rec.601->Rec.709",scaling=2,threads=2)
MT("SeeSaw(NRlimit=0, NRlimit2=5, Sstr=2.22, Szp=1, Slimit=9, Sdamplo=16, Spower=1, sootheT=95, SdampHi=39)",3)
\\\\\ Resize & aspect tab
Specify size 1024, 576 (Match your screen resolution)
Process Pixel aspect ratio internally checked
No aspect ratio correction checked
Lanczos
Taps: 2
Luma Sharpen: 1.00 (If it seems too sharp, just lower the Luma sharpen to 0.50 or something.
The 5 Tap lowpass blurs the picture a bit, so I set the Luma Sharpen to compensate. Works fine at 1.00)
Accurate rounding checked
\\\\\ Queue & Output tab
Queue output samples checked
\\\\\ Output tab
YV12 checked
________ FFdshow Audio Decoder ________
\\\\\ Check OSD,and Check Jitter.
\\\\\ Close FFdshow Audio Decoder, and play a movie.
\\\\\ While the movie is playing. You'll the the word "Jitter" in the top left of the screen.
Beside the word Jitter is a number. Write this number down, or remember what it was.
\\\\\ Open the FFdshow Audio decoder again.
Check the Delay Tab. Set each box to the number you wrote down in the previous step.
\\\\\ Check the Equalizer tab. Set the Equalizer starting from the far left slider: -7.92, -4.92, -1.92, -3.96, -4.92, -5.88, -3.96, -1.92, 0, -3.00
\\\\\ Check the Volume Tab, *Check Normalize*, check Reset on seek, check show current volume levels.
\\\\\ Check the Mixer Tab. Check "Normalize Matrix", Check the "Output Speakers Configuration" tab.
If you are using only 2 speakers, or headphones select "2/0 - stereo".
Check LFE if your using a subwoofer.
Checking Normalize Matrix is very important.
\\\\\ Close the FFdshow audio decoder by pressing Apply and OK.
SeeSaw.avsi (rename the seesaw extension to .avsi)
MT.dll
MaskTools.dll
mt_masktools.dll
RepairSSE3
RemoveGrainSSE3.dll
ColorMatrix.dll
Fluxsmooth.dll
________ Plugins ________
MT (http://www.avisynth.org/tsp/MT_07.zip)
Removegrain 0.9 (http://home.pages.at/kassandro/RemoveGrain/RemoveGrain.zip)
Removegrain 1.0 (http://home.arcor.de/kassandro/RemoveGrain/RemoveGrain.rar)
MT_Masktools (http://manao4.free.fr/masktools-v2.0a30.zip)
Masktools (http://manao4.free.fr/MaskTools-v1.5.8.zip)
Colormatrix (http://web.missouri.edu/~kes25c/ColorMatrixv21.zip)
Fluxsmooth (http://avisynth.org/warpenterprises/files/fluxsmooth_25_dll_20040729.zip)
________ Software ________
FFDshow. Updated July 2, 2007 (http://downloads.sourceforge.net/ffdshow-tryout/ffdshow_beta3_rev1324_20070701_clsid.exe?modtime=1183396865&big_mirror=0)
Media Player Classic (http://prdownloads.sourceforge.net/guliverkli/mpc2kxp6490.zip?download)
Avisynth (http://downloads.sourceforge.net/avisynth2/Avisynth_257.exe)
# SeeSaw v0.3e (02 Jan 2006)
#
# (Full Name: "Denoiser-and-Sharpener-are-riding-the-SeeSaw" )
#
# This function provides a (simple) implementation of the "crystality sharpen" principle.
# In conjunction with a user-specified denoised clip, the aim is to enhance
# weak detail, hopefully without oversharpening or creating jaggies on strong
# detail, and produce a result that is temporally stable without detail shimmering,
# while keeping everything within reasonable bitrate requirements.
# This is done by intermixing source, denoised source and a modified sharpening process,
# in a seesaw-like manner.
#
# This version is considered alpha.
#
# Usage:
#
# a = TheNoisySource
# b = a.YourPreferredDenoising()
# SeeSaw( a, b, [parameters] )
#
# You're very much encouraged to feed your own custom denoised clip into SeeSaw.
# If the "denoised" clip parameter is omitted, a simple "spatial pressdown" filter is used.
#
#
# Fiddled together by Didée, for your pleasure.
#
# ======= Main function =======
function SeeSaw( clip clp, clip "denoised",
\ int "NRlimit",int "NRlimit2",
\ float "Sstr", int "Slimit", float "Spower", float "SdampLo", float "SdampHi", float "Szp",
\ float "bias", int "Smode", int "sootheT", int "sootheS", float "ssx", float "ssy")
{
ssx = default( ssx, 1.0 ) # supersampling factor x / SeeSaw doesn't require supersampling urgently.
ssy = default( ssy, ssx ) # supersampling factor y / if at all, small values ~1.25 seem to be enough.
NRlimit = default( NRlimit, 2 ) # absolute limit for pixel change by denoising
NRlimit2 = default( NRlimit2, NRlimit+1) # limit for intermediate denoising
Sstr = default( Sstr, 1.5 ) # Sharpening strength (don't touch this too much)
Slimit = default( Slimit, NRlimit+2 ) # positive: absolute limit for pixel change by sharpening
# negative: pixel's sharpening difference is reduced to diff=pow(diff,1/abs(limit))
Spower = default( Spower, 4 ) # exponent for modified sharpener
Szp = default( Szp, 16+2 ) # zero point - below: overdrive sharpening - above: reduced sharpening
SdampLo = default( SdampLo, Spower+1 ) # reduces overdrive sharpening for very small changes
SdampHi = default( SdampHi, 24 ) # further reduces sharpening for big sharpening changes. Try 15~30. "0" disables.
bias = default( bias, 49 ) # bias towards detail ( >= 50 ) , or towards calm result ( < 50 )
Smode = default( Smode, ssx<1.35 ? 11 : ssx<1.51 ? 20 : 19 )
sootheT = default( sootheT, 49 ) # 0=minimum, 100=maximum soothing of sharpener's temporal instableness.
# (-100 .. -1 : will chain 2 instances of temporal soothing.)
sootheS = default( sootheS, 0 ) # 0=minimum, 100=maximum smoothing of sharpener's spatial effect.
Szp = Szp / pow(Sstr, 1.0/4.0) / pow( (ssx+ssy)/2.0, 1.0/2.0 )
SdampLo = SdampLo / pow(Sstr, 1.0/4.0) / pow( (ssx+ssy)/2.0, 1.0/2.0 )
ox=clp.width
oy=clp.height
xss = m4(ox*ssx)
yss = m4(oy*ssy)
NRL = string( NRlimit )
NRL2 = string( NRlimit2 )
NRLL = string( int(round( NRlimit2 * 100.0/bias - 1.0 )) )
SLIM = string( abs(Slimit) )
BIAS1 = string( bias )
BIAS2 = string( 100-bias )
#ZRP = string( abs(Szp) )
#PWR = string( abs(Spower) )
#DMP = string( SdampLo )
denoised = defined(denoised) ? denoised : mt_lutxy(clp,clp.removegrain(4,-1),"x "+NRL+" + y < x "+NRL+" + x "+NRL+" - y > x "+NRL+" - y ? ?",chroma="copy first")
NRdiff = mt_makediff(clp,denoised,chroma="process")
tame = mt_lutxy(clp,denoised,"x "+NRLL+" + y < x "+NRL2+" + x "+NRLL+" - y > x "+NRL2+" - x "+BIAS1+" * y "+BIAS2+" * + 100 / ? ?")
head = tame.sharpen2(Sstr,Spower,Szp,SdampLo,SdampHi,4)
# head = head.mt_merge(tame,tame.prewitt(multiplier=1.0).mt_expand().removegrain(20))
(ssx==1.0 && ssy==1.0) ? repair(tame.sharpen2(Sstr,Spower,Szp,SdampLo,SdampHi,Smode),head,1,-1,-1)
\ : repair(tame.lanczosresize(xss,yss).sharpen2(Sstr,Spower,Szp,SdampLo,SdampHi,Smode),head.bicubicresize(xss,yss,-.2,.6),1,-1,-1).lanczosresize(ox,oy)
SootheSS(last,tame,sootheT,sootheS)
sharpdiff= mt_makediff(tame,last)
(NRlimit==0) ? clp : \
mt_lutxy(clp,NRdiff, "y 128 "+NRL+" + > x "+NRL+" - y 128 "+NRL+" - < x "+NRL+" + x y 128 - - ? ?",chroma="process")
Slimit>=0 ? mt_lutxy(last,sharpdiff,"y 128 "+SLIM+" + > x "+SLIM+" - y 128 "+SLIM+" - < x "+SLIM+" + x y 128 - - ? ?",chroma="copy first")
\ : mt_lutxy(last,sharpdiff,"y 128 == x x y 128 - abs 1 "+SlIM+" / ^ y 128 - y 128 - abs / * - ?",chroma="copy first")
return( last )
}
# ======= Modified sharpening function =======
function sharpen2(clip clp, float strength, int power, float zp, float lodmp, float hidmp, int rgmode)
{
STR = string( strength )
PWR = string( 1.0/float(power) )
ZRP = string( ZP )
DMP = string( lodmp )
HDMP = (hidmp==0) ? "1" : "1 x y - abs "+string(hidmp)+" / 4 ^ +"
mt_lutxy( clp, clp.RemoveGrain(rgmode,-1,-1), \
"x y == x x x y - abs "+ZRP+" / "+PWR+" ^ "+ZRP+" * "+STR+" * x y - 2 ^ x y - 2 ^ "+DMP+" + / * x y - x y - abs / * "+HDMP+" / + ?",chroma="copy first")
return( last )
}
# ======= Soothe() function to stabilze sharpening =======
function SootheSS(clip sharp, clip orig, int "sootheT", int "sootheS")
{
sootheT = default(sootheT, 25 )
sootheS = default(sootheS, 0 )
sootheT = (sootheT > 100) ? 100 : (sootheT < -100) ? -100 : sootheT
sootheS = (sootheS > 100) ? 100 : (sootheS < 0) ? 0 : sootheS
ST = string( 100 - abs(sootheT))
SSPT = string( 100 - abs(sootheS))
mt_makediff(orig,sharp)
(sootheS==0) ? last
\ : mt_lutxy( last, last.removegrain(20,-1,-1),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+SSPT+" * 128 + x 128 - abs y 128 - abs > x "+SSPT+" * y 100 "+SSPT+" - * + 100 / x ? ?", chroma="ignore")
(sootheT==0) ? last
\ : mt_lutxy( last, last.temporalsoften(1,255,0,32,2),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+ST+" * 128 + x 128 - abs y 128 - abs > x "+ST+" * y 100 "+ST+" - * + 100 / x ? ?", chroma="ignore")
(sootheT > -1) ? last
\ : mt_lutxy( last, last.temporalsoften(1,255,0,32,2),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+ST+" * 128 + x 128 - abs y 128 - abs > x "+ST+" * y 100 "+ST+" - * + 100 / x ? ?",chroma="ignore")
mt_makediff(orig,last)
# mergechroma(sharp) # not needed in SeeSaw
return( last )
}
# ======= MOD4-and-atleast-16 helper function =======
function m4(float x) {x<16?16:int(round(x/4.0)*4)}
- The problem. In some DVD's, I get forced subtitles.
To fix this, I set up blur and nr as you see above. Not using anything, set to zero. This fixes most dvd's with the forced subtitle problem.
I can't reproduce it though, but when the problem did happen before, I wasn't using the deinterlace or blur and nr tabs.
I'm posting this to show a differetnt problem.
Using the deinterlace tab, above avisynth and resize tabs.
On the movie "Blade 2", and "Equilibrium", the Menu's are blank dark pages, but I can hear the music.
Unchecking the deinterlace tab, and reloading the page fixes the problem and I can see the menu fine.
I know Leak tweaked the video codec, and so I'm hoping he can fix this too.
The movies "Blade 2", and "Equilibrium", are the NTSC Standard definition versions. Played on Vista Premium.
I found that messing with the output colorspace can cause forced subtitles to appear, using YUY2, or IYUV instead of YV12 might let you see the forced subtitles bug.