2008/11/03

パーマリンク 23:53:57, 著者: Charlie

ソースのデブロック プラグイン for Aviutl

  • ソースのデブロック プラグイン for Aviutl Lv.1 Exp.3

効果

MPEG系の動画ソースのブロックノイズを低減します。具体的には、 8×8のブロック状にのっぺりとした領域を検出して、その中での輝度・色の変化を平均化します。

使用方法、サンプルは以下。

...

使い方

閾値
平均値を得るサンプリングの領域境界と判断する閾値を指定します。
弱く←ぼかし→強く
閾値が大きいほど、対象ピクセルとの輝度の違いに鈍感になり、結果としてサンプリング領域が広がり、平均化されやすくなります。ブロック感の抑制効果が大きくなります。
細かなグレインノイズや雲・水面の立体感を残したい場合は閾値を小さくします。(とは言っても、動画をエンコードする際の潰れを抑えることはできません)
強度
強度を強めると、高域の情報を無視して平均化をします。これによりぼやけ感やリンギングが感じられることがあります。30くらいが適当でしょう。
少なく←ぼかし→広く
mode
平均値を得るサンプリングの方向を指定します。
正確 (0) ←ぼかし方→ 速い (1, 2)
0は、対象ピクセルの上下左右斜めの8方向の最大8ピクセル先までの加重平均です。
1は、上下左右4方向、
2は、斜め4方向です。mode 0に比べて1, 2は処理時間を短縮できますが、1はブロックのエッジ感がやや強く残ってしまいます。
マークのみ
「mark」フラグのついたフレームにだけデブロック処理を行います。
高域確認
ソースの状態確認用です。 明るいピクセルほど、強度を引き上げないとデブロックの対象になりません。

性能評価

以下のグラフは、本プラグインによってビットレートが削減される様子を示しています。本プラグインの目的は、ブロックノイズ低減による視覚的品位の改善であり、ソースコード生成時にビットレートを抑えた結果として生じているブロックノイズを低減するために、下手をするとビットレートが膨れてしまう可能性もありましたが、実験ではいずれもビットレートを更に削減する方向に働いていました。

「標準」はプラグインを使用しない場合のx264エンコード(基準)です。
「輝度変化量による選択」は高域情報の有無を無視して、輝度変化の大小だけに依存して平均化した場合(比較実験)、
「DCTによる選択」が現在の実装で閾値「100」強度「30」とした場合です。

▲ 機動戦士ガンダム00 (2008-10-19 TBSにて放送) のオープニングをx264でエンコードした場合のビットレート比較。

エンコード速度は半減してしまいました。プラグイン未使用時は片方のコアだけで処理していたものが、2つのコアを使うようになったため処理の量は2倍以上です。Charlieが勉強不足で、SSE等を効率よく活用するためのノウハウを持っていませんので、今はこれが精一杯。

▲ 機動戦士ガンダム00 (2008-10-19 TBSにて放送) のオープニングをx264でエンコードした場合の速度比較。エンコード環境のCPUはIntel E8200 (Core 2 Duo)。

サンプル

以下、機動戦士ガンダム00 (2008-10-19 TBSにて放送) のオープニングより引用。

まずは本プラグインのデブロッキング効果で品位が改善される例です。
炎、爆発、閃光、クロスフェードなどで発生するブロックノイズを抑制しています。

▲ 標準
▲ 輝度変化量による選択
▲ DCTによる選択
▲ 元画像

ただし、x264 (H.264) がエンコード時にデブロッキングを行うため、本プラグインを使用しない場合でもある程度のブロック感の抑制が行われていることが判りました。静止画でなら「標準」と「DCTによる選択」の違いが感じられても、動画として見た場合は知覚できないかもしれません。

次に、単純なぼかしフィルタと比べて、輪郭などが保持されている例です。

▲ 標準
▲ 輝度変化量による選択
▲ DCTによる選択
▲ 元画像

使用方法の説明でも述べていますが、輪郭線のない、雲や水面の中の濃淡表現はディテールが失われる傾向にあります。ただし、今回の実験で用いたエンコード条件では、本処理よりもエンコードの影響による劣化の方が支配的でしたので、実用性は十分確保できていると言えるでしょう。

類似プラグインとの比較

本プラグインと類似した用途のプラグインが幾つかありますが、 それぞれ特徴が異なります。
ウェーブレットを使ったNRフィルタの色むら低減機能は、HD用のプラグインからは除外されてしまいました。 通常の2Dノイズフィルタでは、平均化の範囲が比較的狭いので高速ですが格子感を十分抑えることができない場合があります。
ffdshowなどのデコード系が持っているリアルタイム用のデブロッキングフィルタとの比較はしてみたかったのですが、時間切れです。

結論

ブロックノイズがひどいフレームだけ、「マークのみ」でフィルタを有効にするのが一般的な使い方になると思います。
なお、 低ビットレートにエンコする時はこのプラグインの意味が無いです。ソースをデブロックしてもエンコ時にブロックノイズが乗りますから。
結局、 視覚上の効果が大きくない(H.264でエンコする時点でデブロックが効いている、ブロックノイズが著しいのは動きの激しいフレームなのであまり気にならない)ので、静止・スロー再生でじっくり見たいとか、動体視力が高いとか、そういう条件でしか利用価値がないかも。

特記事項

  • 無保証です。
  • まるも製作所のDCT-iDCTプラグインのソースコードを利用しています。
  • SSE2が利用可能なプロセッサ向けに最適化するオプションを付けています(SSE2が使われているかどうかは確認していません)。
カテゴリ: DTV
パーマリンクパーマリンク

この記事へのトラックバック アドレス

Trackback URL (right click and copy shortcut/link location)

フィードバックはまだありません...

コメントを残す


Your email address will not be revealed on this site.
(改行が自動で <br /> になります)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)
4月 2024
 << <   > >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

リンク

最近の記事

アーカイブ

検索

XMLフィード

blogtool