あやや
AYaYa
なるほどフィールド分離してからカラーノイズ除去って感じなのかな?他のカラーノイズ除去プラグインでも試してみる価値はあるかも。
でも名前が名前だけに紹介するかどうか悩むところ(笑)
2009-03-16 追記: Avisynthを絶賛ιょぅょ Part15 にあります。
DeRainbow(by sh0dan)
クロスカラー除去なら、こういうのもありますよ。
function DeRainbow(clip org, int "thresh") { assert(org.isYV12(),"DeRainbow() requires YV12 input!") thresh = default(thresh, 10) org_u = utoy(org) org_v = vtoy(org) msharpen(org, threshold = thresh, mask=true) reduceby2() greyscale() uv = blur(1.5).levels(0,2.0,255,0,255, coring=false).blur(1.5).blur(1.5).levels(50,2.0,255,0,255, coring=false) filtered_u = org_u.mipsmooth(spatial=255, temporal=255, scenechange=3, show=false, method="strong", scalefactor=0.5) filtered_v = org_v.mipsmooth(spatial=255, temporal=255, scenechange=3, show=false, method="strong", scalefactor=0.5) u_final = MaskedMerge(org_u, filtered_u, uv) v_final = MaskedMerge(org_v, filtered_v, uv) return ytouv(u_final, v_final, org) }
↓はYUY2版(といっても内部でYV12に変換している模様)。
# YUY2 function DeRainbowYUY2(clip org, int "thresh") { assert(org.isyuy2(),"DeRainbowYUY2() requires YUY2 input!") thresh = default(thresh, 10) org_yv12 = org.converttoyv12() org_u = utoy(org).converttoyv12() org_v = vtoy(org).converttoyv12() msharpen(org_yv12, threshold = thresh, mask=true) bilinearresize(last.width/2, last.height) greyscale() uv = blur(1.5).levels(0,2.0,255,0,255, coring=false).blur(1.5).blur(1.5).levels(50,2.0,255,0,255, coring=false) filtered_u = org_u.mipsmooth(spatial=255, temporal=255, scenechange=3, show=false, method="superstrong", scalefactor=0.5) filtered_v = org_v.mipsmooth(spatial=255, temporal=255, scenechange=3, show=false, method="superstrong", scalefactor=0.5) u_final = MaskedMerge(org_u, filtered_u, uv).converttoyuy2() v_final = MaskedMerge(org_v, filtered_v, uv).converttoyuy2() return ytouv(u_final, v_final, org) }
使い方は、
DeRainbow(10) #MSharpenのしきい値
みたいな感じらしいです。
使ったことはないので効果のほどは不明です。
MSharpen,MipSmooth,MaskToolsを利用。
基本的にYV12。
他にはmfRainbowとかもクロスカラー除去なのかな?
http://mf.creations.nl/avs/
※Function includesから。