2016年3月16日水曜日

RemoveGrain mode5~mode12

今回はmode5からmode12までです。

・mode5~mode9
mode1~mode4ではCの近傍の8点N1~N8のうちのどれか2点を選んでclampしていましたが、mode5~mode9ではこの2点をCを通る直線上に限定するようになっています。
つまり、2点(a,b)の組み合わせが(N1,N8)、(N2,N7)、(N3,N6)、(N4,N5)のいずれかに限定されるということです。
mode3やmode4では組み合わせを限定していなかったため、細い直線やその終端が壊れやすかったのが、組み合わせを直線状に限定することで壊れにくくなっています。

具体的な処理内容については言葉で説明するのは非常に難しいため、もうソースコードを読んでもらうしかありません。
よって、ここでは傾向だけを説明します。

ノイズの取れ具合はmode5 < mode6 < mode7 < mode8 < mode9 とmodeが上がるほど強力になりますが、その分映像に与える悪影響(エッジの角が丸まったり、ボケたり)も大きくなります。

そして処理スピードは mode2 > mode9 > mode5 > mode7 > mode6 = mode8 です。

一般に細い線を壊さない処理というものは、YUV4:2:0な映像の色差にフィルタをかける場合に効果を発揮します。(なんせ色差は輝度の4分の1しかありませんから)
よって5~9はmodeU、modeVで指定することがほとんどでしょう。

・mode10
mode10はclampを行わず、N1~N8のうち最も近い値(C-Nxの絶対値が最も低いもの)にCを置き換えたものを出力します。
一見簡単に思えますが、実はこの処理はmode1~mode9のどれよりも比較の回数が増えるため、処理スピードはmode6 > mode10です。
しかもノイズの取れ具合はmode1と同程度と、もはや何のためにあるのかよくわかりません。

これが効果的な映像とは果たして…?

・mode11/mode12
mode11とmode12は3x3のconvolution filterです。
使用するカーネルは[1, 2, 1, 2, 4, 2, 1, 2, 1]で、これは内蔵フィルタのBlur(1.0)に相当しますがより速くて正確です。
オリジナルのほうのドキュメントの該当部分を読んでみると(処理内容があらかじめ理解できているとドキュメントも理解できるようになりました…なんという本末転倒…)
「mode12はmode11よりもさらに速いよ」ってなことが書かれていますが、tp7氏はどちらも同じ処理にしてしまっています。
そりゃ出力が同じなら、速い方しか要らんよね…なんで遅い方をわざわざ残してたんでしょ?

目次:
RemoveGrain解説 導入
RemoveGrainの基本事項
RemoveGrain mode1~mode4
RemoveGrain mode5~mode12
RemoveGrain mode13~mode16
RemoveGrain mode17~mode22
RmoveGrain mode23/mode24 及び総評
Repair
Clense
Clense 応用

0 件のコメント:

コメントを投稿