速度 × サイズ

x264を使っていると暗部にブロックができる。
そのブロックは、本来の映像にグラデーションの変化があったり、ノイズによってグラデーションに変化が出たりすることによって踊りだすようです。

まぁブロック化は仕方がないとして、なるべく不自然にちらつかないようにしたいところ。
今日はそのちらつきができるだけなくなるようにフィルタをかけようとカラーバーをエンコードしてみた。

・3DNR2(default)のみ
・3DNR2+x264内部のNR値1000
・いつも通りの<時間軸閾値24+3DNR2(def)+ノイズ除去閾値16>→中間→<時間軸8ノイズ4>
・いつも通りから、3DNR2と時間軸の順番を逆に
・いつも通りから、3DNR2を時間軸とノイズ除去の後に
・いつも通りから、ノイズ除去フィルタをカット
・いつも通りから、時間軸フィルタをカット
・いつも通りの3DNR2の値W3DYを20に、W3DCを15にあげる

とかいろいろ試した結果!
Wavelet3DNR2は、ノイズ除去(時間軸)→フィルタノイズ除去フィルタのどこに入れても変わらない。
見た目だと、いつも通りの時間軸→3DNR2→ノイズ除去の順番がちらつきが抑えられているように見えた。
ファイルサイズだと、3DNR2は最後にした方がより圧縮できるみたい。(1000フレームで520KBと540KBぐらいの差)

ここまでは、アナログカラーバー。


デジタルでは、
色調歪手動斜交直線変換補正というフィルタを使う順番を調べてみた。

歪+(時10、3DNR2、ノ5)→中間→(時5)→エンコード

(時10、3DNR2、ノ5)→中間→歪+(時5)→エンコード

比べた結果:
後者の方が、速度は2倍近く速く・サイズも若干小さくなった(850KBと800KB程度)
見た目のちらつきも後者のほうが抑えられている感じ。

あと映像サイズが720*480でだったので、ためしに拡大して854*480(16:9のアスペクト比を保つため)にしてみたところ、ファイルサイズは30KBしか増えなかった。
静止画なので実際の映像とは違うけど、デジタル録画は854*480の一回り大きいサイズで保存できるかもしれない!

——
圧縮技術には、ブロック化が必要なんだろうね。
これは当たり前だとおもっている人も多いと思うけど、僕はつい最近やっとわかった!

人間の目で見て目立たないところをブロック化することによって、圧縮率を高めているんだって先週の土曜日の「サイエンスZERO(N教)」でやってた。
(髑髏君必見。真鍋かをりが出演しt)

後は、使う人がいかにエンコーダの特性をうまく利用するかなんだろうね。
ほぼデフォルトで使ってる僕はまだまだっていう

圧縮してほしくないところは、フィルタで強調してやるとかすればいいのかね。(暗部の輪郭を強調するとかか)

動画遊びはまだまだ終わらない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です