# _______________________________________________________ # # UberSmooth(R) | So slow that it needs a copyright sign # _______________________________________________________ # # Another absurd outrage by Soulhunter... \m\ ^_^ /m/ # _______________________________________________________ # # # Requirements: # # AviSynth v.2.5 (tested with v.2.55) # FFT3dFilter v.1.8.5 (or higher) # MaskTools v.1.5.8 (or higher) # Deen v.1 beta2 (or higher) # 100GHz CPU... ;P # # # Usage examples: # # UberSmooth(DeGRainL=2,DeGrainC=1,FFT3DOnly=True) # UberSmoothReverse(Preset="AnimeMQ",Debug=True) # UberSmooth(2,2,3,3,25,ReducedRinging=True) # UberSmooth(2,2,3,3,25,ReducedBanding=True) # UberSmooth(3,2,3,2,30,ToonMode=True) # UberSmooth(3,3,3,3,25,Weight=0.5) # UberSmooth(ProcessChoma=False) # UberSmooth(Preset="MovieLQ") # # # Some hints: # # The weight parameter controls how strong the filtering is applied on the source! # To disable the warning messages simply set NoWarnings=True! # Make use of the debug option to tweak your settings! # There are some "easter-eggs" in UberSmooth! # Happy searching... ^^ # # Function UberSmooth(Clip Clp,Float"DeGrainL",Float"DeGrainC",Int"DeNoiseL",Int"DeNoiseC",Int"Temp" \ ,String"Preset",Float"Weight",Bool"ProcessChoma",Bool"FFT3DOnly",Bool"ToonMode" \ ,Bool"ReducedRinging",Bool"ReducedBanding",Bool"Debug",Bool"NoWarnings") { # Defaults OX = Clp.Width OY = Clp.Height DeGrainL = Default(DeGrainL,0) DeGrainC = Default(DeGrainC,0) DeNoiseL = Default(DeNoiseL,0) DeNoiseC = Default(DeNoiseC,0) Temp = Default(Temp,25) Preset = Default(Preset,"Default") Weight = Default(Weight, 1) ProcessChoma = Default(ProcessChoma,True) FFT3DOnly = Default(FFT3DOnly,False) ToonMode = Default(ToonMode,False) ReducedRinging = Default(ReducedRinging,False) ReducedBanding = Default(ReducedBanding,True) Debug = Default(Debug,False) NoWarnings = Default(NoWarnings,False) BlackBox = BlankClip(Width=720,Height=576,Length=1440) # Presets DeGrainL = (Preset == "Default") ? DeGrainL : DeGrainL DeGrainC = (Preset == "Default") ? DeGrainC : DeGrainC DeNoiseL = (Preset == "Default") ? DeNoiseL : DeNoiseL DeNoiseC = (Preset == "Default") ? DeNoiseC : DeNoiseC ToonMode = (Preset == "Default") ? ToonMode : ToonMode Temp = (Preset == "Default") ? Temp : Temp DeGrainL = (Preset == "AnimeLQ") ? 3.0 : DeGrainL DeGrainC = (Preset == "AnimeLQ") ? 2.0 : DeGrainC DeNoiseL = (Preset == "AnimeLQ") ? 5 : DeNoiseL DeNoiseC = (Preset == "AnimeLQ") ? 3 : DeNoiseC ToonMode = (Preset == "AnimeLQ") ? True : ToonMode Temp = (Preset == "AnimeLQ") ? 50 : Temp DeGrainL = (Preset == "AnimeMQ") ? 2.0 : DeGrainL DeGrainC = (Preset == "AnimeMQ") ? 1.0 : DeGrainC DeNoiseL = (Preset == "AnimeMQ") ? 3 : DeNoiseL DeNoiseC = (Preset == "AnimeMQ") ? 2 : DeNoiseC ToonMode = (Preset == "AnimeMQ") ? True : ToonMode Temp = (Preset == "AnimeMQ") ? 25 : Temp DeGrainL = (Preset == "AnimeHQ") ? 1.0 : DeGrainL DeGrainC = (Preset == "AnimeHQ") ? 1.0 : DeGrainC DeNoiseL = (Preset == "AnimeHQ") ? 2 : DeNoiseL DeNoiseC = (Preset == "AnimeHQ") ? 1 : DeNoiseC ToonMode = (Preset == "AnimeHQ") ? True : ToonMode Temp = (Preset == "AnimeHQ") ? 25 : Temp DeGrainL = (Preset == "MovieLQ") ? 3.0 : DeGrainL DeGrainC = (Preset == "MovieLQ") ? 2.0 : DeGrainC DeNoiseL = (Preset == "MovieLQ") ? 3 : DeNoiseL DeNoiseC = (Preset == "MovieLQ") ? 2 : DeNoiseC ToonMode = (Preset == "MovieLQ") ? False : ToonMode Temp = (Preset == "MovieLQ") ? 25 : Temp DeGrainL = (Preset == "MovieMQ") ? 2.0 : DeGrainL DeGrainC = (Preset == "MovieMQ") ? 1.0 : DeGrainC DeNoiseL = (Preset == "MovieMQ") ? 2 : DeNoiseL DeNoiseC = (Preset == "MovieMQ") ? 1 : DeNoiseC ToonMode = (Preset == "MovieMQ") ? False : ToonMode Temp = (Preset == "MovieMQ") ? 25 : Temp DeGrainL = (Preset == "MovieHQ") ? 1.0 : DeGrainL DeGrainC = (Preset == "MovieHQ") ? 1.0 : DeGrainC DeNoiseL = (Preset == "MovieHQ") ? 1 : DeNoiseL DeNoiseC = (Preset == "MovieHQ") ? 1 : DeNoiseC ToonMode = (Preset == "MovieHQ") ? False : ToonMode Temp = (Preset == "MovieHQ") ? 25 : Temp DeGrainL = (Preset == "Who cares about details? I want compressibility!") ? 9 : DeGrainL DeGrainC = (Preset == "Who cares about details? I want compressibility!") ? 9 : DeGrainC DeNoiseL = (Preset == "Who cares about details? I want compressibility!") ? 9 : DeNoiseL DeNoiseC = (Preset == "Who cares about details? I want compressibility!") ? 9 : DeNoiseC Temp = (Preset == "Who cares about details? I want compressibility!") ? 50 : Temp # Warning messages ResolutionCheck1 = OX <704 ? Clp.Subtitle(Size=16, \ "Warning: If your source is a DVD, better use UberSmooth before downsizing!") : Clp ResolutionCheck2 = OX <704 ? Clp.Subtitle(Size=16,Y=32, \ "Warning: If your source is a DVD, better use UberSmooth before downsizing!") : Clp ResolutionCheck3 = Frac(Float(OX)/16) == 0.0 ? ResolutionCheck1 : ResolutionCheck2 Clp = NoWarnings ? Clp : ResolutionCheck3 ResolutionCheck4 = Frac(Float(OX)/16) == 0.0 ? Clp : Clp.Subtitle(Size=16, \ "Warning: Your resolution is not mod 16!") Clp = NoWarnings ? Clp : ResolutionCheck4 ResolutionCheck5 = Frac(Float(OY)/16) == 0.0 ? Clp : Clp.Subtitle(Size=16, \ "Warning: Your resolution is not mod 16!") Clp = NoWarnings ? Clp : ResolutionCheck5 # Filtering Clp = Clp.isYV12() ? Clp : Clp.ConvertToYV12() Clp = (Preset == "Blur it to death!") ? Clp.BilinearResize(128,128) \ .Blur(1.58,1.58).BilinearResize(OX,OY) : Clp DeGrainedLumA = ReducedRinging ? Clp \ .FFT3dFilter(Sigma=DeGrainL/1.3333,BT=3,OW=8,OH=8,BW=16,BH=16,Plane=0) \ : Clp.FFT3dFilter(Sigma=DeGrainL,BT=3,OW=16,OH=16,BW=32,BH=32,Plane=0) DeGrainedChrA1 = ProcessChoma ? DeGrainedLumA \ .FFT3dFilter(Sigma=DeGrainC,BT=3,OW=16,OH=16,BW=32,BH=32,Plane=3) : DeGrainedLumA DeGrainedChrA2 = ProcessChoma ? DeGrainedLumA \ .FFT3dFilter(Sigma=DeGrainC,BT=3,OW=8,OH=8,BW=16,BH=16,Plane=3) : DeGrainedLumA DeGrainedA = ReducedRinging ? DeGrainedChrA2 : DeGrainedChrA1 DeGrainedLumB = ReducedRinging ? Clp \ .FFT3dFilter(Sigma=DeGrainL/1.33,BT=3,OW=12,OH=12,BW=24,BH=24,Plane=0) \ : Clp.FFT3dFilter(Sigma=DeGrainL,BT=4,OW=21,OH=21,BW=49,BH=49,Plane=0) DeGrainedChrB1 = ProcessChoma ? DeGrainedLumB \ .FFT3dFilter(Sigma=DeGrainC/1.333,BT=4,OW=21,OH=21,BW=49,BH=49,Plane=3) : DeGrainedLumB DeGrainedChrB2 = ProcessChoma ? DeGrainedLumB \ .FFT3dFilter(Sigma=DeGrainC/1.333,BT=4,OW=21,OH=21,BW=49,BH=49,Plane=3) : DeGrainedLumB DeGrainedB = ReducedRinging ? DeGrainedChrB2 : DeGrainedChrB1 DeGrained = MergeLuma(DeGrainedA,DeGrainedB,0.5) DeGrained = ProcessChoma ? MergeChroma(DeGrainedA,DeGrainedB,0.5) : MergeChroma(DeGrained,Clp) DeNoisedT1 = DeGrained.Deen("a3d",4,DeNoiseL,DeNoiseC,Temp) DeNoisedT2 = DeGrained.Deen("a3d",3,DeNoiseL,DeNoiseC,Temp+5) DeNoisedT1 = ReducedRinging ? DeGrained.Deen("a3d",4,DeNoiseL+1,DeNoiseC+1,Temp) : DeNoisedT1 DeNoisedT2 = ReducedRinging ? DeGrained.Deen("a3d",3,DeNoiseL+1,DeNoiseC+1,Temp+5) : DeNoisedT2 DeNoisedN1 = DeGrained.Deen("c3d",1,DeNoiseL,DeNoiseC,Temp) DeNoisedN2 = DeGrained.Deen("c3d",0,DeNoiseL,DeNoiseC,Temp+5) DeNoisedN1 = ReducedRinging ? DeGrained.Deen("c3d",1,DeNoiseL+1,DeNoiseC+1,Temp) : DeNoisedN1 DeNoisedN2 = ReducedRinging ? DeGrained.Deen("c3d",0,DeNoiseL+1,DeNoiseC+1,Temp+5) : DeNoisedN2 DeNoisedA = ToonMode ? DeNoisedT1 : DeNoisedN1 DeNoisedB = ToonMode ? DeNoisedT2 : DeNoisedN2 DeNoisedA = FFT3DOnly ? DeGrained : DeNoisedA DeNoisedB = FFT3DOnly ? DeGrained : DeNoisedB Denoised = MergeLuma(DeNoisedA,DeNoisedB,0.5) Denoised = ProcessChoma ? MergeChroma(DeNoisedA,DeNoisedB,0.5) : MergeChroma(DeNoised,Clp) Filtered = FFT3DOnly ? DeGrained : Denoised Filtered = ReducedBanding ? \ yv12lutxy(Filtered,Clp,"x 48 < x 2 + y < x 2 + x 2 - y > x 2 - y ? ? x \ 64 < x 1 + y < x 1 + x 1 - y > x 1 - y ? ? x ? ?",U=2,V=2) \ : Filtered Power = MergeLuma(Clp,Filtered,Weight) Power = ProcessChoma ? MergeChroma(Power,Filtered,Weight) : Power Final = ProcessChoma ? Power : Power.MergeChroma(Clp) # Debug option DebugOriginal = Clp.Crop(OX/2,0,OX/2,OY).Subtitle("Original") DebugFiltered = Final.Crop(0,0,OX/2,OY).Subtitle("Filtered") DebugView = StackHorizontal(DebugFiltered,DebugOriginal) Final = Debug ? DebugView : Final # Quotes Final = (Preset == "Quote1") ? BlackBox.Subtitle(X=084,Y=256,Text_Color=$FFFFFF \ ,"The nice thing about denoisers is that there are so many to choose from...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "Quote2") ? BlackBox.Subtitle(X=116,Y=256,Text_Color=$FFFFFF \ ,"Nothing is as far away as the end of a encode with UberSmooth...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "Quote3") ? BlackBox.Subtitle(X=212,Y=256,Text_Color=$FFFFFF \ ,"Noise is the enemy of compressibility...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "Quote4") ? BlackBox.Subtitle(X=244,Y=256,Text_Color=$FFFFFF \ ,"Never mistake noise for detail...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "Quote5") ? BlackBox.Subtitle(X=244,Y=256,Text_Color=$FFFFFF \ ,"Insert new videotic quote here...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "MatrixQuote") ? BlackBox \ .Subtitle(Font="Courier New",X=42,Y=256,Size=16,Text_Color=$1EFF00 \ ,"Everything that has a beginning has a end, even a encode with UberSmooth...") \ .ConvertToYV12().FadeIn(25) : Final Final = (Preset == "LoveQuote") ? BlackBox.Subtitle(X=20,Y=256,Size=16,Text_Color=$FF2080 \ ,"Honey, your 0000FF eyes are overwhelming and ya skin is even smoother than UberSmooth(9,9,9,9,50)") \ .ConvertToYV12().FadeIn(25) : Final # Credits Final = (Preset == "Credits") ? BlackBox \ .Subtitle(size=34,x=271,y=25,Text_Color=$FFFFFF,"UberSmooth") \ .Subtitle(x=177,y=69,Text_Color=$FFFFFF,"ANOTHER ABSURD OUTRAGE BY SOULHUNTER") \ .Subtitle(x=167,y=77,Text_Color=$FFFFFF,"____________________________________________") \ .Subtitle(size=16,x=283,y=141,Text_Color=$FFFFFF,"FOR MORE INFO VISIT:") \ .Subtitle(x=277,y=145,Text_Color=$FFFFFF,"___________________") \ .Subtitle(size=16,x=283,y=179,Text_Color=$FFFFFF,"http://forum.doom9.org") \ .Subtitle(size=16,x=281,y=209,Text_Color=$FFFFFF,"http://www.avisynth.org") \ .Subtitle(size=16,x=271,y=239,Text_Color=$FFFFFF,"http://mf.onthanet.nl/forum") \ .Subtitle(size=16,x=273,y=269,Text_Color=$FFFFFF,"irc://irc.rizon.net/encoders") \ .Subtitle(size=16,x=238,y=299,Text_Color=$FFFFFF,"irc://irc.enterthegame.com/mf-sensei") \ .Subtitle(size=16,x=286,y=363,Text_Color=$FFFFFF,"SPECIAL THANKS TO:") \ .Subtitle(x=281,y=367,Text_Color=$FFFFFF,"__________________") \ .Subtitle(size=16,x=351,y=401,Text_Color=$FFFFFF,"mf") \ .Subtitle(size=16,x=341,y=431,Text_Color=$FFFFFF,"Didče") \ .Subtitle(size=16,x=344,y=461,Text_Color=$FFFFFF,"Fizik") \ .Subtitle(size=16,x=334,y=491,Text_Color=$FFFFFF,"MarcFD") \ .Subtitle(size=16,x=338,y=521,Text_Color=$FFFFFF,"Manao") \ .ConverttoYV12().Blur(0.1,0.1).FadeIn(25) : Final # Logo LFullFrame = BlankClip(Width=720,Height=576,Color=$FFFFFF) LTop = BlankClip(Width=800,Height=260,Color=$FFFFFF) LBottom = BlankClip(Width=800,Height=260,Color=$FFFFFF) LBlockMidLR = BlankClip(Width=130,Height=080,Color=$FFFFFF) LBlockMidWhite = BlankClip(Width=060,Height=080,Color=$FFFFFF) LBlockMidBlack = BlankClip(Width=060,Height=080,Color=$000000) LMid1 = StackHorizontal(LBlockMidLR,LBlockMidBlack) LMid2 = StackHorizontal(LMid1,LBlockMidWhite) LMid3 = StackHorizontal(LMid2,LBlockMidBlack) LMid4 = StackHorizontal(LMid3,LBlockMidWhite) LMid5 = StackHorizontal(LMid4,LBlockMidBlack) LMid6 = StackHorizontal(LMid5,LBlockMidWhite) LMid7 = StackHorizontal(LMid6,LBlockMidBlack) LMid8 = StackHorizontal(LMid7,LBlockMidWhite) LMid9 = StackHorizontal(LMid8,LBlockMidBlack) LMidFull = StackHorizontal(LMid9,LBlockMidLR) LFull1 = StackVertical(LTop,LMidFull,LBottom) LFull2C = LFull1.Crop(16,8,784,592) LBlockBottomW = BlankClip(Width=784,Height=008,Color=$FFFFFF) LBlockSiedeW = BlankClip(Width=008,Height=600,Color=$FFFFFF) LFull2F = StackVertical(LFull2C,LBlockBottomW) LFull2 = StackHorizontal(LFull2F,LBlockSiedeW) LBlended = Overlay(LFull2,LFull1,Opacity=0.5) LLTop = BlankClip(Width=800,Height=240,Color=$FFFFFF) LLBottom = BlankClip(width=800,Height=250,Color=$FFFFFF) LLineBlackTop = BlankClip(Width=653,Height=002,Color=$000000) LLineWhiteTop = BlankClip(Width=147,Height=002,Color=$FFFFFF) LLineTop = StackHorizontal(LLineBlackTop,LLineWhiteTop) LLBlockMid = Blankclip(Width=800,Height=106,Color=$FFFFFF) LLineWBottom = Blankclip(Width=129,Height=002,Color=$FFFFFF) LLineBBottom = Blankclip(Width=671,Height=002,Color=$000000) LLineBottom = StackHorizontal(LLineWBottom,LLineBBottom) LFullLines = StackVertical(LLTop,LLineTop,LLBlockMid,LLineBottom,LLBottom) BlocksLines = Overlay(LBlended,LFullLines,Mode="Darken") BlocksLinesText = BlocksLines \ .Subtitle(X=132,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"U") \ .Subtitle(X=191,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=62,"B") \ .Subtitle(X=252,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"E") \ .Subtitle(X=311,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=62,"R") \ .Subtitle(X=374,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"S") \ .Subtitle(X=430,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=60,"M") \ .Subtitle(X=490,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"O") \ .Subtitle(X=551,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=60,"O") \ .Subtitle(X=614,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"T") \ .Subtitle(X=671,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=62,"H") LogoText = BlocksLinesText.Crop(32,0,760,600).BilinearResize(512,384) AddLeft = BlankClip(Width=104,Height=384,Color=$FCFCFC) AddTop = BlankClip(Width=616,Height=096,Color=$FCFCFC) AddRight = BlankClip(Width=104,Height=480,Color=$FCFCFC) AddBottom = BlankClip(Width=720,Height=096,Color=$FCFCFC) PlusLeft = StackHorizontal(AddLeft,LogoText) PlusTop = StackVertical(AddTop,PlusLeft) PlusRight = StackHorizontal(PlusTop,AddRight) PlusBottom = StackVertical(PlusRight,AddBottom) UberSmoothLogo = PlusBottom.ConvertToYV12().Levels(0,1,245,0,255) Final = (Preset == "Logo") ? UberSmoothLogo : Final # Result Return(Final) } # Reverse ordered filtering Function UberSmoothReverse(Clip Clp,Float"DeGrainL",Float"DeGrainC",Int"DeNoiseL",Int"DeNoiseC",Int"Temp" \ ,Float"Weight",String"Preset",Bool"ProcessChoma",Bool"FFT3DOnly",Bool"ToonMode" \ ,Bool"ReducedRinging",Bool"ReducedBanding",Bool"Debug",Bool"NoWarnings") { # Defaults OX = Clp.Width OY = Clp.Height DeGrainL = Default(DeGrainL,0) DeGrainC = Default(DeGrainC,0) DeNoiseL = Default(DeNoiseL,0) DeNoiseC = Default(DeNoiseC,0) Temp = Default(Temp,25) Weight = Default(Weight, 1) Preset = Default(Preset,"Default") ProcessChoma = Default(ProcessChoma,True) FFT3DOnly = Default(FFT3DOnly,False) ToonMode = Default(ToonMode,False) ReducedRinging = Default(ReducedRinging,False) ReducedBanding = Default(ReducedBanding,True) Debug = Default(Debug,False) NoWarnings = Default(NoWarnings,False) BlackBox = BlankClip(Width=720,Height=576,Length=1440) # Presets DeGrainL = (Preset == "Default") ? DeGrainL : DeGrainL DeGrainC = (Preset == "Default") ? DeGrainC : DeGrainC DeNoiseL = (Preset == "Default") ? DeNoiseL : DeNoiseL DeNoiseC = (Preset == "Default") ? DeNoiseC : DeNoiseC ToonMode = (Preset == "Default") ? ToonMode : ToonMode Temp = (Preset == "Default") ? Temp : Temp DeGrainL = (Preset == "AnimeLQ") ? 3.0 : DeGrainL DeGrainC = (Preset == "AnimeLQ") ? 2.0 : DeGrainC DeNoiseL = (Preset == "AnimeLQ") ? 5 : DeNoiseL DeNoiseC = (Preset == "AnimeLQ") ? 3 : DeNoiseC ToonMode = (Preset == "AnimeLQ") ? True : ToonMode Temp = (Preset == "AnimeLQ") ? 50 : Temp DeGrainL = (Preset == "AnimeMQ") ? 2.0 : DeGrainL DeGrainC = (Preset == "AnimeMQ") ? 1.0 : DeGrainC DeNoiseL = (Preset == "AnimeMQ") ? 3 : DeNoiseL DeNoiseC = (Preset == "AnimeMQ") ? 2 : DeNoiseC ToonMode = (Preset == "AnimeMQ") ? True : ToonMode Temp = (Preset == "AnimeMQ") ? 25 : Temp DeGrainL = (Preset == "AnimeHQ") ? 1.0 : DeGrainL DeGrainC = (Preset == "AnimeHQ") ? 1.0 : DeGrainC DeNoiseL = (Preset == "AnimeHQ") ? 2 : DeNoiseL DeNoiseC = (Preset == "AnimeHQ") ? 1 : DeNoiseC ToonMode = (Preset == "AnimeHQ") ? True : ToonMode Temp = (Preset == "AnimeHQ") ? 25 : Temp DeGrainL = (Preset == "MovieLQ") ? 5.0 : DeGrainL DeGrainC = (Preset == "MovieLQ") ? 3.0 : DeGrainC DeNoiseL = (Preset == "MovieLQ") ? 3 : DeNoiseL DeNoiseC = (Preset == "MovieLQ") ? 2 : DeNoiseC ToonMode = (Preset == "MovieLQ") ? False : ToonMode Temp = (Preset == "MovieLQ") ? 15 : Temp DeGrainL = (Preset == "MovieMQ") ? 3.0 : DeGrainL DeGrainC = (Preset == "MovieMQ") ? 1.0 : DeGrainC DeNoiseL = (Preset == "MovieMQ") ? 2 : DeNoiseL DeNoiseC = (Preset == "MovieMQ") ? 1 : DeNoiseC ToonMode = (Preset == "MovieMQ") ? False : ToonMode Temp = (Preset == "MovieMQ") ? 15 : Temp DeGrainL = (Preset == "MovieHQ") ? 2.0 : DeGrainL DeGrainC = (Preset == "MovieHQ") ? 1.0 : DeGrainC DeNoiseL = (Preset == "MovieHQ") ? 1 : DeNoiseL DeNoiseC = (Preset == "MovieHQ") ? 1 : DeNoiseC ToonMode = (Preset == "MovieHQ") ? False : ToonMode Temp = (Preset == "MovieHQ") ? 25 : Temp DeGrainL = (Preset == "Who cares about details? I want compressibility!") ? 9 : DeGrainL DeGrainC = (Preset == "Who cares about details? I want compressibility!") ? 9 : DeGrainC DeNoiseL = (Preset == "Who cares about details? I want compressibility!") ? 9 : DeNoiseL DeNoiseC = (Preset == "Who cares about details? I want compressibility!") ? 9 : DeNoiseC Temp = (Preset == "Who cares about details? I want compressibility!") ? 50 : Temp # Warning messages ResolutionCheck1 = OX <704 ? Clp.Subtitle(Size=16, \ "Warning: If your source is a DVD, better use UberSmooth before downsizing!") : Clp ResolutionCheck2 = OX <704 ? Clp.Subtitle(Size=16,Y=32, \ "Warning: If your source is a DVD, better use UberSmooth before downsizing!") : Clp ResolutionCheck3 = Frac(Float(OX)/16) == 0.0 ? ResolutionCheck1 : ResolutionCheck2 Clp = NoWarnings ? Clp : ResolutionCheck3 ResolutionCheck4 = Frac(Float(OX)/16) == 0.0 ? Clp : Clp.Subtitle(Size=16, \ "Warning: Your resolution is not mod 16!") Clp = NoWarnings ? Clp : ResolutionCheck4 ResolutionCheck5 = Frac(Float(OY)/16) == 0.0 ? Clp : Clp.Subtitle(Size=16, \ "Warning: Your resolution is not mod 16!") Clp = NoWarnings ? Clp : ResolutionCheck5 # Filtering Clp = Clp.isYV12() ? Clp : Clp.ConvertToYV12() Clp = (Preset == "Blur it to death!") ? Clp.BilinearResize(128,128) \ .Blur(1.58,1.58).BilinearResize(OX,OY) : Clp DeNoisedA = Clp.Deen("c3d",1,DeNoiseL,DeNoiseC,Temp) DeNoisedB = Clp.Deen("c3d",0,DeNoiseL,DeNoiseC,Temp+5) DeNoisedA = ReducedRinging ? Clp.Deen("c3d",1,DeNoiseL+1,DeNoiseC+1,Temp) : DeNoisedA DeNoisedB = ReducedRinging ? Clp.Deen("c3d",0,DeNoiseL+1,DeNoiseC+1,Temp+5) : DeNoisedB DeNoisedT1 = Clp.Deen("a3d",3,DeNoiseL,DeNoiseC,Temp) DeNoisedT2 = Clp.Deen("a3d",4,DeNoiseL,DeNoiseC,Temp+5) DeNoisedT1 = ReducedRinging ? Clp.Deen("a3d",3,DeNoiseL+1,DeNoiseC+1,Temp) : DeNoisedT1 DeNoisedT2 = ReducedRinging ? Clp.Deen("a3d",4,DeNoiseL+1,DeNoiseC+1,Temp+5) : DeNoisedT2 DenoisedC = MergeLuma(DeNoisedA,DeNoisedB,0.5) Denoised = ProcessChoma ? MergeChroma(DeNoisedA,DeNoisedB,0.5) : MergeChroma(DeNoisedC,Clp) Denoised = FFT3DOnly ? Clp : DenoisedC DeGrainedLumA = ReducedRinging ? Denoised \ .FFT3dFilter(Sigma=DeGrainL/1.333,BT=3,OW=8,OH=8,BW=16,BH=16,Plane=0) \ : Denoised.FFT3dFilter(Sigma=DeGrainL,BT=3,OW=16,OH=16,BW=32,BH=32,Plane=0) DeGrainedChrA1 = ProcessChoma ? DeGrainedLumA \ .FFT3dFilter(Sigma=DeGrainC,BT=3,OW=16,OH=16,BW=32,BH=32,Plane=3) : DeGrainedLumA DeGrainedChrA2 = ProcessChoma ? DeGrainedLumA \ .FFT3dFilter(Sigma=DeGrainC,BT=3,OW=8,OH=8,BW=16,BH=16,Plane=3) : DeGrainedLumA DeGrainedA = ReducedRinging ? DeGrainedChrA2 : DeGrainedChrA1 DeGrainedLumB = ReducedRinging ? Denoised \ .FFT3dFilter(Sigma=DeGrainL/1.333,BT=3,OW=12,OH=12,BW=24,BH=24,Plane=0) \ : Denoised.FFT3dFilter(Sigma=DeGrainL,BT=4,OW=21,OH=21,BW=49,BH=49,Plane=0) DeGrainedChrB1 = ProcessChoma ? DeGrainedLumB \ .FFT3dFilter(Sigma=DeGrainC,BT=4,OW=21,OH=21,BW=49,BH=49,Plane=3) : DeGrainedLumB DeGrainedChrB2 = ProcessChoma ? DeGrainedLumB \ .FFT3dFilter(Sigma=DeGrainC,BT=4,OW=21,OH=21,BW=49,BH=49,Plane=3) : DeGrainedLumB DeGrainedB = ReducedRinging ? DeGrainedChrB2 : DeGrainedChrB1 Filtered = MergeLuma(DeGrainedA,DeGrainedB,0.5) Filtered = ProcessChoma ? MergeChroma(DeGrainedA,DeGrainedB,0.5) : MergeChroma(Filtered,Clp) Filtered = ReducedBanding ? \ yv12lutxy(Filtered,Clp,"x 48 < x 2 + y < x 2 + x 2 - y > x 2 - y ? ? x \ 64 < x 1 + y < x 1 + x 1 - y > x 1 - y ? ? x ? ?",U=2,V=2) \ : Filtered Power = MergeLuma(Clp,Filtered,Weight) Power = ProcessChoma ? MergeChroma(Power,Filtered,Weight) : Power Final = ProcessChoma ? Power : Power.MergeChroma(Clp) # Debug option DebugOriginal = Clp.Crop(OX/2,0,OX/2,OY).Subtitle("Original") DebugFiltered = Final.Crop(0,0,OX/2,OY).Subtitle("Filtered") DebugView = StackHorizontal(DebugFiltered,DebugOriginal) Final = Debug ? DebugView : Final # Quotes Final = (Preset == "Quote1") ? BlackBox.Subtitle(X=084,Y=256,Text_Color=$FFFFFF \ ,"The nice thing about denoisers is that there are so many to choose from...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "Quote2") ? BlackBox.Subtitle(X=116,Y=256,Text_Color=$FFFFFF \ ,"Nothing is as far away as the end of a encode with UberSmooth...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "Quote3") ? BlackBox.Subtitle(X=212,Y=256,Text_Color=$FFFFFF \ ,"Noise is the enemy of compressibility...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "Quote4") ? BlackBox.Subtitle(X=244,Y=256,Text_Color=$FFFFFF \ ,"Never mistake noise for detail...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "Quote5") ? BlackBox.Subtitle(X=244,Y=256,Text_Color=$FFFFFF \ ,"Insert new videotic quote here...") \ .Blur(0.1,0.1).ConvertToYV12().FadeIn(50) : Final Final = (Preset == "MatrixQuote") ? BlackBox \ .Subtitle(Font="Courier New",X=42,Y=256,Size=16,Text_Color=$1EFF00 \ ,"Everything that has a beginning has a end, even a encode with UberSmooth...") \ .ConvertToYV12().FadeIn(25) : Final Final = (Preset == "LoveQuote") ? BlackBox.Subtitle(X=20,Y=256,Size=16,Text_Color=$FF2080 \ ,"Honey, your 0000FF eyes are overwhelming and ya skin is even smoother than UberSmooth(9,9,9,9,50)") \ .ConvertToYV12().FadeIn(25) : Final # Credits Final = (Preset == "Credits") ? BlackBox \ .Subtitle(size=34,x=271,y=25,Text_Color=$FFFFFF,"UberSmooth") \ .Subtitle(x=177,y=69,Text_Color=$FFFFFF,"ANOTHER ABSURD OUTRAGE BY SOULHUNTER") \ .Subtitle(x=167,y=77,Text_Color=$FFFFFF,"____________________________________________") \ .Subtitle(size=16,x=283,y=141,Text_Color=$FFFFFF,"FOR MORE INFO VISIT:") \ .Subtitle(x=277,y=145,Text_Color=$FFFFFF,"___________________") \ .Subtitle(size=16,x=283,y=179,Text_Color=$FFFFFF,"http://forum.doom9.org") \ .Subtitle(size=16,x=281,y=209,Text_Color=$FFFFFF,"http://www.avisynth.org") \ .Subtitle(size=16,x=271,y=239,Text_Color=$FFFFFF,"http://mf.onthanet.nl/forum") \ .Subtitle(size=16,x=273,y=269,Text_Color=$FFFFFF,"irc://irc.rizon.net/encoders") \ .Subtitle(size=16,x=238,y=299,Text_Color=$FFFFFF,"irc://irc.enterthegame.com/mf-sensei") \ .Subtitle(size=16,x=286,y=363,Text_Color=$FFFFFF,"SPECIAL THANKS TO:") \ .Subtitle(x=281,y=367,Text_Color=$FFFFFF,"__________________") \ .Subtitle(size=16,x=351,y=401,Text_Color=$FFFFFF,"mf") \ .Subtitle(size=16,x=341,y=431,Text_Color=$FFFFFF,"Didče") \ .Subtitle(size=16,x=344,y=461,Text_Color=$FFFFFF,"Fizik") \ .Subtitle(size=16,x=334,y=491,Text_Color=$FFFFFF,"MarcFD") \ .Subtitle(size=16,x=338,y=521,Text_Color=$FFFFFF,"Manao") \ .ConverttoYV12().Blur(0.1,0.1).FadeIn(25) : Final # Logo LFullFrame = BlankClip(Width=720,Height=576,Color=$FFFFFF) LTop = BlankClip(Width=800,Height=260,Color=$FFFFFF) LBottom = BlankClip(Width=800,Height=260,Color=$FFFFFF) LBlockMidLR = BlankClip(Width=130,Height=080,Color=$FFFFFF) LBlockMidWhite = BlankClip(Width=060,Height=080,Color=$FFFFFF) LBlockMidBlack = BlankClip(Width=060,Height=080,Color=$000000) LMid1 = StackHorizontal(LBlockMidLR,LBlockMidBlack) LMid2 = StackHorizontal(LMid1,LBlockMidWhite) LMid3 = StackHorizontal(LMid2,LBlockMidBlack) LMid4 = StackHorizontal(LMid3,LBlockMidWhite) LMid5 = StackHorizontal(LMid4,LBlockMidBlack) LMid6 = StackHorizontal(LMid5,LBlockMidWhite) LMid7 = StackHorizontal(LMid6,LBlockMidBlack) LMid8 = StackHorizontal(LMid7,LBlockMidWhite) LMid9 = StackHorizontal(LMid8,LBlockMidBlack) LMidFull = StackHorizontal(LMid9,LBlockMidLR) LFull1 = StackVertical(LTop,LMidFull,LBottom) LFull2C = LFull1.Crop(16,8,784,592) LBlockBottomW = BlankClip(Width=784,Height=008,Color=$FFFFFF) LBlockSiedeW = BlankClip(Width=008,Height=600,Color=$FFFFFF) LFull2F = StackVertical(LFull2C,LBlockBottomW) LFull2 = StackHorizontal(LFull2F,LBlockSiedeW) LBlended = Overlay(LFull2,LFull1,Opacity=0.5) LLTop = BlankClip(Width=800,Height=240,Color=$FFFFFF) LLBottom = BlankClip(width=800,Height=250,Color=$FFFFFF) LLineBlackTop = BlankClip(Width=653,Height=002,Color=$000000) LLineWhiteTop = BlankClip(Width=147,Height=002,Color=$FFFFFF) LLineTop = StackHorizontal(LLineBlackTop,LLineWhiteTop) LLBlockMid = Blankclip(Width=800,Height=106,Color=$FFFFFF) LLineWBottom = Blankclip(Width=129,Height=002,Color=$FFFFFF) LLineBBottom = Blankclip(Width=671,Height=002,Color=$000000) LLineBottom = StackHorizontal(LLineWBottom,LLineBBottom) LFullLines = StackVertical(LLTop,LLineTop,LLBlockMid,LLineBottom,LLBottom) BlocksLines = Overlay(LBlended,LFullLines,Mode="Darken") BlocksLinesText = BlocksLines \ .Subtitle(X=132,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"U") \ .Subtitle(X=191,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=62,"B") \ .Subtitle(X=252,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"E") \ .Subtitle(X=311,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=62,"R") \ .Subtitle(X=374,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"S") \ .Subtitle(X=430,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=60,"M") \ .Subtitle(X=490,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"O") \ .Subtitle(X=551,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=60,"O") \ .Subtitle(X=614,Y=265,Text_Color=$FFFFFF,Halo_Color=$0F0F0F,Size=64,"T") \ .Subtitle(X=671,Y=265,Text_Color=$EFEFEF,Halo_Color=$B0B0B0,Size=62,"H") LogoText = BlocksLinesText.Crop(32,0,760,600).BilinearResize(512,384) AddLeft = BlankClip(Width=104,Height=384,Color=$FCFCFC) AddTop = BlankClip(Width=616,Height=096,Color=$FCFCFC) AddRight = BlankClip(Width=104,Height=480,Color=$FCFCFC) AddBottom = BlankClip(Width=720,Height=096,Color=$FCFCFC) PlusLeft = StackHorizontal(AddLeft,LogoText) PlusTop = StackVertical(AddTop,PlusLeft) PlusRight = StackHorizontal(PlusTop,AddRight) PlusBottom = StackVertical(PlusRight,AddBottom) UberSmoothLogo = PlusBottom.ConvertToYV12().Levels(0,1,245,0,255) Final = (Preset == "Logo") ? UberSmoothLogo : Final # Result Return(Final) } # To be continued... # THE END