在看Taro大在2012年写的MaskTools入門教程https://www.nmm-hd.org/newbbs/viewtopic.php?f=7&t=770
时看到这样一段话:
“畫面複雜度(complexity)是圖像處理裡非常重要的一個屬性,高複雜度的區域與低複雜度的區域往往需要不同的處理,譬如由於最後一次壓制過程導致的banding,往往只出現在畫面的低複雜度區域,而不出現在高複雜度區域,因此用一個mask來限定deband的範圍不包括高複雜度區域可以較好地保護這種區域的細節。Complexity mask的實現算法相對來說比較複雜,通常配合DCT計算AC/DC variance得到的結果比較好,而靠masktools做的話效果可能並不算理想。而且因為這個實現過程需要有較大的鄰域範圍,而masktools當鄰域範圍增大時處理速度會下降地比較厲害,而不用較大的範圍得到的結果可能不夠理想。不管怎樣,我們先來用一個試驗:[syntax lang="avisynth"]
dif_med = mt_makediff(mt_luts(last, "med", pixels=mt_circle(3), expr="y"))
c_mask = mt_lutsx(dif_med, dif_med, dif_med, "std", pixels=mt_circle(3), expr="y 2 ^")
\ .mt_expand.mt_inflate(chroma="128") # 為了後面截圖用了chroma="128",實際使用可以去掉[/syntax]
這是一個很簡單的模擬方式,先取鄰域內的中值,然後用mt_makediff來求得像素與鄰域中值之差。在複雜度較高、細節豐富的區域鄰域中值和中心像素點間的差值在鄰域內的標準差較高(好拗口…),因此衡量這個標準差可以模擬出一個複雜度mask”
在处理老DVD时也遇到了前文提到的这种问题,就是低复杂度暗场有大范围严重的banding,希望能够有一个mask把这部分区域分离出来,在vs里的fuction里没有找到luts对应的滤镜,而调用avs运行又非常慢,在mmd搜索了很多次没有再找到类似的讨论话题,把avs和vs官网的滤镜都寻找了一遍,也没有找到具有这样功能的滤镜,然后就放弃了尝试。
后来无意中又看到2014年的一个讨论帖有写到:
“mask高頻對低頻時域降噪試試,aq稍微高一點呢? ”
“mask配合mdegrain开土炮的话,frequency-based不行,很多情况是烂噪点仅在黑衣,而背景如墙壁等同为低频。
luma-bias也不行,人物面部阴影处(如眼眶、鼻翼)的噪点轻易被抹,面相失了立体感。
vaq有调试。haq同。”
又一次激起了我的希望,所以想请教一下这个“mask高頻”是如何做到的?
由于帖子年代久远,里面的大神都神隐许久了,没有办法得到回复,所以来这里请教一下大家。
时看到这样一段话:
“畫面複雜度(complexity)是圖像處理裡非常重要的一個屬性,高複雜度的區域與低複雜度的區域往往需要不同的處理,譬如由於最後一次壓制過程導致的banding,往往只出現在畫面的低複雜度區域,而不出現在高複雜度區域,因此用一個mask來限定deband的範圍不包括高複雜度區域可以較好地保護這種區域的細節。Complexity mask的實現算法相對來說比較複雜,通常配合DCT計算AC/DC variance得到的結果比較好,而靠masktools做的話效果可能並不算理想。而且因為這個實現過程需要有較大的鄰域範圍,而masktools當鄰域範圍增大時處理速度會下降地比較厲害,而不用較大的範圍得到的結果可能不夠理想。不管怎樣,我們先來用一個試驗:[syntax lang="avisynth"]
dif_med = mt_makediff(mt_luts(last, "med", pixels=mt_circle(3), expr="y"))
c_mask = mt_lutsx(dif_med, dif_med, dif_med, "std", pixels=mt_circle(3), expr="y 2 ^")
\ .mt_expand.mt_inflate(chroma="128") # 為了後面截圖用了chroma="128",實際使用可以去掉[/syntax]
這是一個很簡單的模擬方式,先取鄰域內的中值,然後用mt_makediff來求得像素與鄰域中值之差。在複雜度較高、細節豐富的區域鄰域中值和中心像素點間的差值在鄰域內的標準差較高(好拗口…),因此衡量這個標準差可以模擬出一個複雜度mask”
在处理老DVD时也遇到了前文提到的这种问题,就是低复杂度暗场有大范围严重的banding,希望能够有一个mask把这部分区域分离出来,在vs里的fuction里没有找到luts对应的滤镜,而调用avs运行又非常慢,在mmd搜索了很多次没有再找到类似的讨论话题,把avs和vs官网的滤镜都寻找了一遍,也没有找到具有这样功能的滤镜,然后就放弃了尝试。
后来无意中又看到2014年的一个讨论帖有写到:
“mask高頻對低頻時域降噪試試,aq稍微高一點呢? ”
“mask配合mdegrain开土炮的话,frequency-based不行,很多情况是烂噪点仅在黑衣,而背景如墙壁等同为低频。
luma-bias也不行,人物面部阴影处(如眼眶、鼻翼)的噪点轻易被抹,面相失了立体感。
vaq有调试。haq同。”
又一次激起了我的希望,所以想请教一下这个“mask高頻”是如何做到的?
由于帖子年代久远,里面的大神都神隐许久了,没有办法得到回复,所以来这里请教一下大家。