MPEG系の動画ソースのブロックノイズを低減します。具体的には、 8×8のブロック状にのっぺりとした領域を検出して、その中での輝度・色の変化を平均化します。
使用方法、サンプルは以下。
...
弱く←ぼかし→強く閾値が大きいほど、対象ピクセルとの輝度の違いに鈍感になり、結果としてサンプリング領域が広がり、平均化されやすくなります。ブロック感の抑制効果が大きくなります。
少なく←ぼかし→広く
正確 (0) ←ぼかし方→ 速い (1, 2)0は、対象ピクセルの上下左右斜めの8方向の最大8ピクセル先までの加重平均です。
以下のグラフは、本プラグインによってビットレートが削減される様子を示しています。本プラグインの目的は、ブロックノイズ低減による視覚的品位の改善であり、ソースコード生成時にビットレートを抑えた結果として生じているブロックノイズを低減するために、下手をするとビットレートが膨れてしまう可能性もありましたが、実験ではいずれもビットレートを更に削減する方向に働いていました。
「標準」はプラグインを使用しない場合のx264エンコード(基準)です。
「輝度変化量による選択」は高域情報の有無を無視して、輝度変化の大小だけに依存して平均化した場合(比較実験)、
「DCTによる選択」が現在の実装で閾値「100」強度「30」とした場合です。
エンコード速度は半減してしまいました。プラグイン未使用時は片方のコアだけで処理していたものが、2つのコアを使うようになったため処理の量は2倍以上です。Charlieが勉強不足で、SSE等を効率よく活用するためのノウハウを持っていませんので、今はこれが精一杯。
以下、機動戦士ガンダム00 (2008-10-19 TBSにて放送) のオープニングより引用。
まずは本プラグインのデブロッキング効果で品位が改善される例です。
炎、爆発、閃光、クロスフェードなどで発生するブロックノイズを抑制しています。
ただし、x264 (H.264) がエンコード時にデブロッキングを行うため、本プラグインを使用しない場合でもある程度のブロック感の抑制が行われていることが判りました。静止画でなら「標準」と「DCTによる選択」の違いが感じられても、動画として見た場合は知覚できないかもしれません。
次に、単純なぼかしフィルタと比べて、輪郭などが保持されている例です。
使用方法の説明でも述べていますが、輪郭線のない、雲や水面の中の濃淡表現はディテールが失われる傾向にあります。ただし、今回の実験で用いたエンコード条件では、本処理よりもエンコードの影響による劣化の方が支配的でしたので、実用性は十分確保できていると言えるでしょう。
本プラグインと類似した用途のプラグインが幾つかありますが、
それぞれ特徴が異なります。
ウェーブレットを使ったNRフィルタの色むら低減機能は、HD用のプラグインからは除外されてしまいました。
通常の2Dノイズフィルタでは、平均化の範囲が比較的狭いので高速ですが格子感を十分抑えることができない場合があります。
ffdshowなどのデコード系が持っているリアルタイム用のデブロッキングフィルタとの比較はしてみたかったのですが、時間切れです。
ブロックノイズがひどいフレームだけ、「マークのみ」でフィルタを有効にするのが一般的な使い方になると思います。
なお、
低ビットレートにエンコする時はこのプラグインの意味が無いです。ソースをデブロックしてもエンコ時にブロックノイズが乗りますから。
結局、
視覚上の効果が大きくない(H.264でエンコする時点でデブロックが効いている、ブロックノイズが著しいのは動きの激しいフレームなのであまり気にならない)ので、静止・スロー再生でじっくり見たいとか、動体視力が高いとか、そういう条件でしか利用価値がないかも。
Trackback URL (right click and copy shortcut/link location)