# HybridFuPP 0.97a by FuPP Function HybridFuPP(clip input, int "width", int "height", bool "Fast", bool "Dering", bool "Deblock", int "MP_Mode", \ int "EM_Mode", int "DB_Q", int "DB_Off_a" , int "DB_Off_b", int "M_Thr", int "M_SCD", int "E_Thr", \ int "D_Thr", int "B_Thr", int "Resizer", int "S_Str", int "T_Str", int "S_Radius", float "S_Dist", \ int "C_Str", int "M_Str", int "E_Str_X", int "E_Str_Y", int "E_Str_B", int "LP_Str", int "DR_Str" , \ int "DR_Radius", string "show", string "N1", string "N2", string "M", string "E1", string "E2" , \ string "LP", string "DR", string "Preset", bool "Skin", int "Sp_Str", bool "ARAdjust", int "Skin_Type") { width = Default(width , width(input)) height = Default(height, height(input)) Preset = Default(Preset, "high") Show = Default(Show , "") preset_num = -1 preset_num = Preset == "medium" ? 0 : preset_num preset_num = Preset == "high" ? 1 : preset_num preset_num = Preset == "very high" ? 2 : preset_num preset_num = Preset == "low" ? 3 : preset_num preset_num = Preset == "very low" ? 4 : preset_num preset_num = Preset == "anime1" ? 5 : preset_num preset_num = Preset == "anime2" ? 6 : preset_num preset_num = Preset == "HybridQ" ? 7 : preset_num Assert(preset_num >=0 ? true : false, chr(10) + "This preset does not exist !" + chr(10)) _Resizer = Select(preset_num, 3 , 4 , 5 , 2 , 0 , 2 , 0 , 3 ) _Fast = Select(preset_num, true , true , true , true , true , true , true , true ) _S_Str = Select(preset_num, 10 , 5 , 7 , 12 , 12 , 7 , 20 , 12 ) _S_Radius = Select(preset_num, 1 , 1 , 1 , 1 , 1 , 1 , 2 , 1 ) _S_Dist = Select(preset_num, 0.1 , 0.1 , 0.1 , 0.1 , 0.1 , 0.1 , 0.1 , 0.1 ) _T_Str = Select(preset_num, 3 , 3 , 2 , 5 , 5 , 6 , 15 , 5 ) _C_Str = Select(preset_num, 14 , 14 , 14 , 14 , 14 , 15 , 15 , 14 ) _MP_Mode = Select(preset_num, 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ) _M_Thr = Select(preset_num, 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 ) _M_SCD = Select(preset_num, 260 , 260 , 260 , 260 , 260 , 260 , 260 , 260 ) _M_Str = Select(preset_num, 120 , 120 , 80 , 120 , 120 , 0 , 60 , 120 ) _EM_Mode = Select(preset_num, 1 , 1 , 1 , 1 , 1 , 3 , 3 , 3 ) _E_Thr = Select(preset_num, 12 , 10 , 10 , 14 , 14 , 8 , 6 , 14 ) _E_Str_X = Select(preset_num, 0 , 0 , 0 , 0 , 0 , 46 , 46 , 1 ) _E_Str_Y = Select(preset_num, 0 , 0 , 0 , 0 , 0 , 46 , 46 , 0 ) _E_Str_B = Select(preset_num, 0 , 0 , 0 , 0 , 0 , -2 , -2 , 0 ) _Dering = Select(preset_num, false, false, false, false, false, true , false, false) _DR_Radius = Select(preset_num, 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) _DR_Str = Select(preset_num, 30 , 30 , 30 , 30 , 30 , 60 , 60 , 30 ) _D_Thr = Select(preset_num, 35 , 32 , 31 , 37 , 39 , 30 , 30 , 30 ) _B_Thr = Select(preset_num, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) _LP_Str = Select(preset_num, 30 , 30 , 30 , 30 , 30 , 40 , 40 , 30 ) _Deblock = Select(preset_num, false, false, false, false, false, false, false, false) _DB_Q = Select(preset_num, 25 , 25 , 25 , 25 , 25 , 25 , 25 , 25 ) _DB_Off_a = Select(preset_num, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) _DB_Off_b = Select(preset_num, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) _Skin = Select(preset_num, false, false, false, false, false, false, false, true ) _SP_str = Select(preset_num, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 ) _ARAdjust = Select(preset_num, false, false, false, false, false, false, false, true ) _Skin_Type = Select(preset_num, 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) Resizer = Default(Resizer, _Resizer) Fast = Default(Fast, _Fast) S_Str = Default(S_Str, _S_Str) S_Radius = Default(S_Radius, _S_Radius) S_Dist = Default(S_Dist, _S_Dist) T_Str = Default(T_Str, _T_Str) C_Str = Default(C_Str, _C_Str) MP_Mode = Default(MP_Mode, _MP_Mode) M_Thr = Default(M_Thr, _M_Thr) M_SCD = Default(M_SCD, _M_SCD) M_Str = Default(M_Str, _M_Str) D_Thr = Default(D_Thr, _D_Thr) B_Thr = Default(B_Thr, _B_Thr) LP_Str = Default(LP_Str, _LP_Str) Deblock = Default(Deblock, _Deblock) DB_Q = Default(DB_Q, _DB_Q) DB_Off_a = Default(DB_Off_a, _DB_Off_a) DB_Off_b = Default(DB_Off_b, _DB_Off_b) EM_Mode = Default(EM_Mode, _EM_Mode) E_Thr = Default(E_Thr, _E_Thr) E_Str_X = Default(E_Str_X, _E_Str_X) E_Str_Y = Default(E_Str_Y, _E_Str_Y) E_Str_B = Default(E_Str_B, _E_Str_B) Dering = Default(Dering, _Dering) DR_Str = Default(DR_Str, _DR_Str) DR_Radius = Default(DR_Radius, _DR_Radius) Skin = Default(Skin, _Skin) Skin_Type = Default(Skin_Type, _Skin_Type) SP_Str = Default(SP_Str, _SP_Str) ARAdjust = Default(ARAdjust, _ARAdjust) mod_preset = False current = string(fast) + \ string(dering) + \ string(MP_Mode) + \ string(EM_Mode) + \ string(M_Thr) + \ string(M_Scd) + \ string(D_Thr) + \ string(B_Thr) + \ string(E_Thr) + \ string(Resizer) + \ string(S_Str) + \ string(T_Str) + \ string(S_Radius) + \ string(S_Dist) + \ string(M_Str) + \ string(LP_Str) + \ string(DR_Str) + \ string(DR_Radius) + \ string(E_Str_X) + \ string(E_Str_Y) + \ string(E_Str_B) + \ string(C_Str) + \ string(Deblock) + \ string(DB_Q) + \ string(DB_Off_a) + \ string(DB_Off_b) + \ string(Skin) + \ string(SP_Str) + \ string(Skin_Type) + \ string(ARAdjust) _defaults = string(_fast) + \ string(_dering) + \ string(_EM_Mode) + \ string(_MP_Mode) + \ string(_M_Thr) + \ string(_M_Scd) + \ string(_D_Thr) + \ string(_B_Thr) + \ string(_E_Thr) + \ string(_Resizer) + \ string(_S_Str) + \ string(_T_Str) + \ string(_S_Radius) + \ string(_S_Dist) + \ string(_M_Str) + \ string(_LP_Str) + \ string(_DR_Str) + \ string(_DR_Radius) + \ string(_E_Str_X) + \ string(_E_Str_Y) + \ string(_E_Str_B) + \ string(_C_Str) + \ string(_Deblock) + \ string(_DB_Q) + \ string(_DB_Off_a) + \ string(_DB_Off_b) + \ string(_Skin) + \ string(_SP_Str) + \ string(_Skin_Type) + \ string(_ARAdjust) mod_preset = current != _defaults ? True : mod_preset Def_N1 = "" Def_N2 = """Deen("a3d", S_Radius, S_Str, 3*C_Str, T_Str, C_Str, S_Dist, 9)""" #Def_E1 = "UnFilter(E_Str_X, E_Str_Y)" Def_E1 = "sharpen(0.2).Addgrain(7,0,0)" Def_E2 = "ColorYUV(off_Y = E_Str_B)" Def_M = """Deen("a2d", 1, M_Str , 0, 0, 0, 0, 0)""" Def_LP = """Deen("a2d", 2, LP_Str , 0, 0, 0, 0, 0)""" Def_DR = """Deen("a2d", 2, DR_Str , 0, 0, 0, 0, 0)""" N1 = Default(N1, Def_N1) N2 = Default(N2, Def_N2) E1 = Default(E1, Def_E1) E2 = Default(E2, Def_E2) M = Default(M , Def_M ) LP = Default(LP, Def_LP) DR = Default(DR, Def_DR) D_process = (LP == "" || LP_Str == 0 || D_Thr == 0) ? false : true B_process = (LP == "" || LP_Str == 0 || B_Thr == 0) ? false : true E_process = (E1 == "" && E2 == "") || (E_Str_X == 0 && E_Str_Y == 0 && E_Str_B == 0) ? false : true M_process = (M == "" || M_Str == 0 || M_Thr == 0) ? false : true Assert(isyv12(input) == true, chr(10) + "This is not an YV12 clip ! Please convert color space to YV12 before using" \ + " HybridFuPP" + chr(10)) Assert((Width(input)%4 != 0 || Height(input)%4 != 0) == false, chr(10) + "Width and height (source) must be dividable by 4 " \ + "if you want to use HybridFuPP ! Please Crop if " \ + "needed !" + chr(10)) Assert(((Width(input)%8 != 0 || Height(input)%8 != 0) && Deblock) == false, chr(10) + "Width and height (source) must be " \ + "dividable by 8 if you want to use " \ + "deblocking ! Please Crop if needed !" \ + chr(10)) Bl_Size = 0 Bl_Size = (Width%8 == 0 && Height%8 == 0) ? 8 : Bl_Size Bl_Size = (Width%16 == 0 && Height%16 == 0) ? 16 : Bl_Size Bl_Size = (M_Process || findstr(Ucase(show),"M") != 0) ? Bl_Size : 1 Assert(Bl_Size != 0, chr(10) + "Width and height (destination) must be dividable by 8 if you want to show motion or use " \ + "motion processing" + chr(10)) _input = Deblock ? input.Deblock(DB_Q, DB_Off_A, DB_Off_B) : input Static = Eval("_input." + (N1 !="" ? N1 + "." : N1) + "Resizer(width, height, Resizer)" + (N2 !="" ? "." + N2 : N2)) clip = Fast ? Static : _input.Resizer(width, height, Resizer) bilinear = _input.Resizer(width, height,0) D = (show != "" || D_process) ? DM(clip, D_Thr) : NOP() B = (show != "" || B_process) ? BM(clip, B_Thr) : NOP() LM = NOP() LM = (D_process && B_process == false) ? D : LM LM = (B_process && D_process == false) ? B : LM LM = (B_process && D_process) ? mt_Logic(D, B, "or") : LM EM = (show != "" || E_process || Dering) ? EM(clip, EM_Mode, E_thr) : NOP() MM = (show != "" || (M_process && MP_Mode == 2)) ? MM(clip, M_Thr, M_SCD, Bl_Size) : NOP() RM = (show != "" || Dering) ? DR_Radius(EM,DR_Radius,0) : NOP() SM = (show != "" || Skin) ? (E_process ? mt_logic(EM,SM(clip, Skin_Type),"andn") : SM(clip, Skin_Type)) : NOP() BA = (show != "" || ARAdjust) ? BA(input).pointresize(width,height) : NOP() Luma = (B_process || D_process) ? Eval("bilinear." + LP) : NOP() Edges = E_process ? Eval("Clip." + (E1 !="" ? E1 + "." : E1) + "Resizer(width, height, Resizer)" \ + (E2 !="" ? "." + E2 : E2)) : NOP() DeRinging = Dering ? Eval("Clip." + DR) : NOP() Motion = (M_process && MP_Mode == 2) ? Eval("bilinear." + M ) : NOP() Final = ARAdjust ? mt_Merge(Static, bilinear, BA) : Static Final = (B_process || D_process) ? mt_Merge(Final, Luma, LM) : Final Final = Dering ? mt_Merge(Final, DeRinging, RM) : Final Final = Skin ? mt_Merge(Final, _input.Resizer(width, height, 5).sharpen(Sp_Str*0.2). \ addgrain(SP_str,0,0), SM) : Final Final = E_process ? mt_Merge(Final, Edges, EM) : Final Final = (M_process && MP_Mode == 2) ? mt_Merge(Final, Motion, MM) : \ (M_process && MP_Mode == 1) ? MDenoise(Final, M_Thr, M_SCD, Bl_Size) : Final return (show == "") ? Final : Show(Final, EM, MM, RM, D, B, SM, BA, show, width, height, Fast, Dering, Deblock, MP_Mode, EM_Mode, \ DB_Q, DB_Off_a, DB_Off_b, M_Thr, M_SCD, E_Thr, D_Thr, B_Thr, Resizer, S_Str, T_Str , \ S_Radius, S_Dist, M_Str, E_Str_X, E_Str_Y, E_Str_B, LP_Str, DR_Str, DR_Radius, C_Str , \ Preset, mod_preset, Skin, Sp_Str, ARAdjust, Skin_Type) } Function hex(n) { a = floor(n/16) b = n-a*16 return (a >= 10 ? chr(55 + a) : string(a)) + (b >= 10 ? chr(55 + b) : string(b)) } Function EM(clip i, int mode, int e_th) { e_mask = mode == 1 ? i.coloryuv(gain_y=50).Msharpen(threshold=e_th,mask=true,highq=true).mt_inpand().mt_inpand() : \ mode == 2 ? i.coloryuv(cont_y=150).Deen("a3d", 2, 30, 0, 0, 0, 0, 0).Msharpen(threshold=e_th,mask=true,highq=true).mt_inpand().mt_inpand() : \ mode == 3 ? mt_makediff(i.blur(1.58).blur(1.58),i).mt_binarize(threshold=135).mt_inflate() : \ mode == 4 ? mt_logic(i.mt_binarize(105,upper=true).mt_expand(),i.mt_binarize(110,upper=false).mt_expand(),"and").mt_deflate() : NOP() return e_mask } Function RM(clip i, dr_rad) { return mt_logic(i,i.DR_Radius(DR_rad,1),"xor").mt_binarize(upper=false) } Function DR_Radius(clip i, int dr_rad, int count) { return count > dr_rad ? i : DR_Radius(i.mt_expand(), dr_rad, count+1) } Function MM(clip i, int m_th, int scd, int bl_sz) { return mt_Binarize(i.MVMask(MVAnalyse(i, isb=false, lambda=1000, blksize=bl_sz), ml=m_th, Gamma=50, ThSCD1=scd, thSCD2=135), \ Upper=False, Threshold=30) } Function DM(clip i, int d_th) { return mt_Binarize(i, threshold = d_th, upper=true).mt_deflate() } Function BM(clip i, int b_th) { return mt_Binarize(i, threshold = b_th, upper = false).mt_inpand() } Function BA(clip i) { return subtract(i,i.unfilter(-255,-255)).mt_expand().mt_binarize(upper=true,127) } Function SM(clip i, int sk_type) { global aa1 = warmskin(i) global aa2 = warmskin2(i) global aa3 = coldskin(i) global aac = i global Y = conditionalfilter(i,aa1,aa2,"averageluma(aa1)",">","averageluma(aa2)") return scriptclip(i, """(averageluma() < 76 && AverageChromaU() > 132) ? aa3 : Y """) } Function ColdSkin(clip i) { #Nuit yy = i.mt_lut("x 60 <= x 140 >= | 0 255 ?") #65 110 uu1 = i.utoy().mt_lut("x 125 <= x 150 >= | 0 255 ?") #130 150 vv1 = i.vtoy().mt_lut("x 95 <= x 140 >= | 0 255 ?") #95 130 uu2 = i.utoy().mt_lut("x 80 <= x 115 >= | 0 255 ?") #130 150 vv2 = i.vtoy().mt_lut("x 146 <= x 162 >= | 0 255 ?") #95 130 uv1 = mt_logic(uu1,vv1,"and") uv2 = mt_logic(uu2,vv2,"and") uv = mt_logic(uv1,uv2,"or").pointresize(width(i),height(i)) yuv = mt_logic(uv,yy,"and") return yuv } Function warmSkin(clip i) { #Jour Chaud yy = i.mt_lut("x 68 <= x 160 >= | 0 255 ?") #60 150 uu = i.utoy().mt_lut("x 100 <= x 125 >= | 0 255 ?") vv = i.vtoy().mt_lut("x 141 <= x 171 >= | 0 255 ?") #141 uv = mt_logic(uu,vv,"and").pointresize(width(i),height(i)) yuv = mt_logic(uv,yy,"and") # 70 155 92 136 140 172 return yuv } Function warmSkin2(clip i) { #Jour Froid yy = i.mt_lut("x 90 <= x 130 >= | 0 255 ?") #160 uu = i.utoy().mt_lut("x 96 <= x 128 >= | 0 255 ?") vv = i.vtoy().mt_lut("x 134 <= x 152 >= | 0 255 ?") #130 uv = mt_logic(uu,vv,"and").pointresize(width(i),height(i)) yuv = mt_logic(uv,yy,"and") # 70 155 92 136 140 172 return yuv } Function MDenoise(clip i, int m_th, int scd, int bl_sz) { b1 = i.MVAnalyse(isb = true, blksize = bl_sz, lambda = 1000, delta = 1) f1 = i.MVAnalyse(isb = false, blksize = bl_sz, lambda = 1000, delta = 1) return i.MVDenoise(b1, f1, tht = m_th, thsad = scd) } Function Resizer(clip i, int w, int h, int t) { return (t == 0) ? BilinearResize(i, w, h) : \ (t == 1) ? BicubicResize( i, w, h, 0.333, 0.333) : \ (t == 2) ? BicubicResize( i, w, h, 0.2 , 0.4 ) : \ (t == 3) ? BicubicResize( i, w, h, 0 , 0.5 ) : \ (t == 4) ? BicubicResize( i, w, h, 0 , 0.6 ) : \ (t == 5) ? LanczosResize( i, w, h) : \ (t == 6) ? Spline36Resize(i, w, h) : Nop() } Function Show(clip i, clip em, clip mm, clip rm, clip dm, clip bm, clip sm, clip ba, string sh, int w, int h, bool Fast, bool Dering, \ bool deblock, int MP_Mode, int EM_Mode, int DB_Q, int DB_Off_a, int DB_Off_b,int M_Thr, int M_SCD, int E_Thr, \ int D_Thr, int B_Thr, int Resizer, int S_Str, int T_Str, int S_Radius, float S_Dist, int M_Str, int E_Str_X , \ int E_Str_Y, int E_Str_B, int LP_Str, int DR_Str, int DR_Radius, int C_Str, string Preset, bool mod_preset, bool Skin, \ int Sp_Str, bool ARAdjust, int Skin_Type) { MM_Blank = BlankClip(1, w, h, color=$FFFF0F, pixel_type="yv12") DM_Blank = BlankClip(1, w, h, color=$FFF0, pixel_type="yv12") BM_Blank = BlankClip(1, w, h, color=$FF0A, pixel_type="yv12") EM_Blank = BlankClip(1, w, h, color=$FF0808, pixel_type="yv12") RM_Blank = BlankClip(1, w, h, color=$FFBF0A, pixel_type="yv12") SM_Blank = BlankClip(1, w, h, color=$FF00FF, pixel_type="yv12") AM_Blank = BlankClip(1, w, h, color=$0000FF, pixel_type="yv12") EShow = FindStr(UCase(sh),"E") MShow = FindStr(UCase(sh),"M") RShow = FindStr(UCase(sh),"R") DShow = FindStr(UCase(sh),"D") BShow = FindStr(UCase(sh),"B") PShow = FindStr(UCase(sh),"P") SShow = FindStr(UCase(sh),"S") AShow = FindStr(UCase(sh),"A") mod = mod_preset ? "(mod)" : "" i = EShow != 0 ? Overlay(i, EM_Blank, Mask=em, mode="chroma", opacity=0.6) : i i = MShow != 0 ? Overlay(i, MM_Blank, Mask=mm, mode="blend" , opacity=0.3) : i i = RShow != 0 ? Overlay(i, RM_Blank, Mask=rm, mode="blend" , opacity=0.7) : i i = DShow != 0 ? Overlay(i, DM_Blank, Mask=mt_Logic(dm, dm.mt_Inpand(), "xor"), Mode="blend", Opacity=1) : i i = BShow != 0 ? Overlay(i, BM_Blank, Mask=mt_Logic(bm, bm.mt_Inpand(), "xor"), Mode="blend", Opacity=1) : i i = SShow != 0 ? Overlay(i, SM_Blank, Mask=sm, Mode="blend", Opacity=0.2) : i i = AShow != 0 ? Overlay(i, AM_Blank, Mask=ba, Mode="blend", Opacity=0.3) : i i = EShow != 0 ? i.SubTitle("Edges" , text_color=$FF0808, size=14, x=1, y=h-68) : i i = MShow != 0 ? i.SubTitle("Motion", text_color=$FFFF0F, size=14, x=1, y=h-56) : i i = RShow != 0 ? i.SubTitle("DeRinging", text_color=$FFBF0A, size=14, x=1, y=h-44) : i i = DShow != 0 ? i.SubTitle("Dark areas", text_color=$FFF0, size=14, x=1, y=h-32) : i i = BShow != 0 ? i.SubTitle("Bright areas", text_color=$FF0A, size=14, x=1, y=h-20) : i i = PShow != 0 ? i.SubTitle("General Parameters" , text_color=$FFFFFF,size=14,x=1,y=12 ) : i i = PShow != 0 ? i.SubTitle("Preset = " + string(Preset)+mod,text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=24 ) : i i = PShow != 0 ? i.SubTitle("Resizer = " + string(Resizer), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=36 ) : i i = PShow != 0 ? i.SubTitle("Fast = " + string(fast), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=48 ) : i i = PShow != 0 ? i.SubTitle("Denoising N2 (no motion)" , text_color=$FFFFFF,size=14,x=1,y=64 ) : i i = PShow != 0 ? i.SubTitle("S_Str = " + string(S_Str), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=76 ) : i i = PShow != 0 ? i.SubTitle("T_Str = " + string(T_Str), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=88 ) : i i = PShow != 0 ? i.SubTitle("S_Radius = " + string(S_Radius), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=100 ) : i i = PShow != 0 ? i.SubTitle("S_Dist = " + string(S_Dist), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=112 ) : i i = PShow != 0 ? i.SubTitle("C_Str = " + string(C_Str), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=124 ) : i i = PShow != 0 ? i.SubTitle("Denoising M (motion)" , text_color=$FFFFFF,size=14,x=1,y=140 ) : i i = PShow != 0 ? i.SubTitle("MP_Mode = " + string(MP_Mode), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=152 ) : i i = PShow != 0 ? i.SubTitle("M_Thr = " + string(M_Thr), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=164 ) : i i = PShow != 0 ? i.SubTitle("M_SCD = " + string(M_SCD), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=176 ) : i i = PShow != 0 ? i.SubTitle("M_Str = " + string(M_Str), text_color=$FFFFFF,font="COURIER NEW",size=14,x=1,y=188 ) : i i = PShow != 0 ? i.SubTitle("Luma processing LP" , text_color=$FFFFFF,size=14,x=172,y=12) : i i = PShow != 0 ? i.SubTitle("D_Thr = " + string(D_Thr), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=24 ) : i i = PShow != 0 ? i.SubTitle("B_Thr = " + string(B_Thr), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=36 ) : i i = PShow != 0 ? i.SubTitle("LP_Str = " + string(LP_Str), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=48 ) : i i = PShow != 0 ? i.SubTitle("Deblocking" , text_color=$FFFFFF,size=14,x=172,y=64) : i i = PShow != 0 ? i.SubTitle("Deblock = " + string(Deblock), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=76 ) : i i = PShow != 0 ? i.SubTitle("DB_Q = " + string(DB_Q), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=88 ) : i i = PShow != 0 ? i.SubTitle("DB_Off_a = " + string(DB_Off_a), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=100) : i i = PShow != 0 ? i.SubTitle("DB_Off_b = " + string(DB_Off_b), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=112) : i i = PShow != 0 ? i.SubTitle("Edges E1+E2 / Dering DR" , text_color=$FFFFFF,size=14,x=172,y=128) : i i = PShow != 0 ? i.SubTitle("EM_Mode = " + string(EM_Mode), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=140) : i i = PShow != 0 ? i.SubTitle("E_Thr = " + string(E_Thr), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=152) : i i = PShow != 0 ? i.SubTitle("E_Str_X = " + string(E_Str_X), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=164) : i i = PShow != 0 ? i.SubTitle("E_Str_Y = " + string(E_Str_Y), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=176) : i i = PShow != 0 ? i.SubTitle("E_Str_B = " + string(E_Str_B), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=188) : i i = PShow != 0 ? i.SubTitle("Dering = " + string(Dering), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=204) : i i = PShow != 0 ? i.SubTitle("DR_Str = " + string(DR_Str), text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=216) : i i = PShow != 0 ? i.SubTitle("DR_Radius = " + string(DR_Radius),text_color=$FFFFFF,font="COURIER NEW",size=14,x=172,y=228) : i return i }