版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

GrainEvaluate - 衡量每幀噪點強度的小腳本

Download: GrainEvaluate.avsi

參數
file [string, default="GrainEvaluateFile.txt"]
輸出的文件名
YUV [bool, default Y=true, U=false, V=U]
是否檢測Y/U/V平面

直接掛上,然後跑一遍腳本就行了,輸出的文件裡包含每一幀的grain強度,例如(按默認沒開UV,如果加上U=true的話則還包含UV的數據):

代码: 全选

......
frame 1740; Y grain strength = 0.231630
frame 1741; Y grain strength = 0.232441
frame 1742; Y grain strength = 0.236746
frame 1743; Y grain strength = 0.227266
frame 1744; Y grain strength = 0.232714
frame 1745; Y grain strength = 0.224304
frame 1746; Y grain strength = 0.230653
frame 1747; Y grain strength = 0.232147
frame 1748; Y grain strength = 0.229529
frame 1749; Y grain strength = 0.223949
frame 1750; Y grain strength = 1.285356
frame 1751; Y grain strength = 1.362018
frame 1752; Y grain strength = 1.360037
frame 1753; Y grain strength = 1.387078
frame 1754; Y grain strength = 1.130997
frame 1755; Y grain strength = 1.239628
frame 1756; Y grain strength = 1.225395
frame 1757; Y grain strength = 1.305777
frame 1758; Y grain strength = 1.227744
frame 1759; Y grain strength = 1.311756
frame 1760; Y grain strength = 1.252549
frame 1761; Y grain strength = 1.324252
frame 1762; Y grain strength = 1.267346
......
很明顯的一個輕噪點的scene後面接了一個重噪點的scene

反正速度很快,按默認只檢測Y的話1920x1080跑出個六七十fps不成問題(僅使用單核,不過一般來說可能比解碼的速度還快,所以倒是源濾鏡反而是瓶頸)。整個掛上先跑一遍,輸出個文件之後按裡面的數值做scene filter也比較方便,至少幀定位比較簡單了…如果正好也需要跑tfm的1st pass的話掛上也可以順便看看噪點情況…

也可以拿來衡量降噪強度,譬如:
[syntax lang="avisynth"]MP_Pipeline("""
DGSource("input.dgi")
GrainEvaluate("before_NR.log")
### ###
MCTD
GrainEvaluate("after_NR.log")
""")[/syntax]
然後對比一下輸出的兩個文件,降噪的程度就一目了然了

不影響輸出的clip,速度也夠快,所以直接在壓的時候順便加上這句跑一下,之後QC時拿去參考也可以…
上次由 06_taro 在 2012-07-17 18:16,总共编辑 2 次。
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
jdtrue
帖子: 8
注册时间: 2012-05-27 20:18

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

thanks 感覺總有一天會需要用到這個腳本
雖然區段降噪好像寫起來有點累:p

另外請問這裡的grain強度有沒有一個range?
例如說多高算是強?或是有沒有一個大概的定量計算公式?
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

基本上Y如果是0.2~0.4算是比较弱的噪点,0.4~0.7算是中等,0.7~1.2左右算略强的,1.2~2.0甚至3.0应该算重噪点了

个人数据,目前测试有限,这个衡量的稳定性基本没问题,不过具体强度范围还需要更多的测试。反正分界很明显,自己根据实际跑出来的结果总结吧…

区段降噪的话我试过用这个脚本先出一个grain evaluate file,然後根据里面的噪点分布情况出一个conditional file,有比较合适的文本编辑工具的话基本上是瞬间可以搞定的,然後在接头的帧稍微检查一下就行了。脚本跑出grain evaluate file之后的操作基本上一集两三分钟就可以搞定,应该是比每一帧看过去做scene filter快多了…

其实不仅仅是区段降噪,还可以用于x264里zones的参考…个人觉得x264里最需要zones的就是干净片源里偶尔出现的重噪点区域,需要的参数和其他部分相差非常大…
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
yabbay
帖子: 62
注册时间: 2012-05-31 10:39
来自: Tokyo

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

个人感觉有极个别动画需要保留重噪点场景 比如UN-GO的第一集后面的推理回想片段 明显是制作方故意加了重噪点
为了在压x264中保留这个噪点反而需要zones来指定保护
          .∧__,,∧
         ( ´・ω・`) ブルブル
          (つまくら) アリと明日(ant and tomorrow)
          `u―u´ レッツ・エッグ・ペイン(Let`s egg pain)
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

yabbay 写了:个人感觉有极个别动画需要保留重噪点场景 比如UN-GO的第一集后面的推理回想片段 明显是制作方故意加了重噪点
为了在压x264中保留这个噪点反而需要zones来指定保护
本来就是全片高强度噪点导致编码后码率乱彪时需要降噪,抑或是原盘由于欠码等原因导致噪点变成block时需要降噪。
如果只是局部镜头高强度噪点并且没有什么明显的artifacts的话并不需要做什么处理。但在x264里对这段我是单独增加crf提高psy-RD的,不然码率彪到40Mbps以上没啥意义而且播放时还耗费资源。
liuzihao
帖子: 10
注册时间: 2011-08-30 13:08

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

我试了试。。不过貌似不能同时输出3-4个对比?
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

可以,不過因為使用了global變量,需要將多個runtime分開,例如用MP_Pipeline的多block來實現,已修正範例。
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
liuzihao
帖子: 10
注册时间: 2011-08-30 13:08

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

顺便在问下。。能不能输出两个滤镜叠加效果的强度。。
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

不懂什麼意思…
如果是說
GrainEvaluate("1.log")
### ###
filter1()
filter2()
filter3()
GrainEvaluate("2.log")
這樣的話,對GrainEvaluate來說它根本不知道你用了幾個濾鏡,中間插七八十個濾鏡它也當成一個來計算,它處理的clip對象只有一個,不受前後操作的影響…譬如上面那個MCTD裡默認都有一大堆濾鏡了,但是你用的時候就把它當作一個黑盒子,裡面到底幹了什麼事根本就不需要知道…
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
海波湛蓝
帖子: 68
注册时间: 2011-02-24 21:39

Re: GrainEvaluate - 衡量每幀噪點強度的小腳本

06_taro 写了:基本上Y如果是0.2~0.4算是比较弱的噪点,0.4~0.7算是中等,0.7~1.2左右算略强的,1.2~2.0甚至3.0应该算重噪点了

个人数据,目前测试有限,这个衡量的稳定性基本没问题,不过具体强度范围还需要更多的测试。反正分界很明显,自己根据实际跑出来的结果总结吧…

区段降噪的话我试过用这个脚本先出一个grain evaluate file,然後根据里面的噪点分布情况出一个conditional file,有比较合适的文本编辑工具的话基本上是瞬间可以搞定的,然後在接头的帧稍微检查一下就行了。脚本跑出grain evaluate file之后的操作基本上一集两三分钟就可以搞定,应该是比每一帧看过去做scene filter快多了…

其实不仅仅是区段降噪,还可以用于x264里zones的参考…个人觉得x264里最需要zones的就是干净片源里偶尔出现的重噪点区域,需要的参数和其他部分相差非常大…

关于
“grain evaluate file,然後根据里面的噪点分布情况出一个conditional file”
以及
“用于x264里zones的参考”
可以麻烦哪位菊苣可以写个教学吗?

回到 “AviSynth”