先の記事で取り上げた「分散に基づく量子化パラメータの適応型決定(VAQ)」のご利益をおさらい。
...
AQの目的は、これに尽きる。ファイルサイズを変えなくてよいなら品質は向上する。百聞は一見に如かずなのでサンプル。
効果が顕著なのは、YouTubeやニコニコ動画、iPodやPSPなどビットレートが低めのターゲットの場合。絵的には、平行移動しかしない背景と、形状が変わる細かい線の多い前景の組み合わせに効果的…ということは、サッカーのフィールド全体とか、アニメとか、アナウンサーの横にスーパーインポーズされた動画が映っているニュースとか。
x264以外のMPEG系エンコーダにもAQが実装されているが、x264 Sharktooth版のは特にこの問題への対策をしている。
⇒ 星空を含む場合は--aq-*を使うとよい
元動画がノイジーなアナログキャプチャでも、きれいなデジタルストリームでも、この効果は有効。
Leben ist vorbei \(^o^)/で実験結果が次のようにまとめられているが、残念ながら効果の程度がよく分からない。
- 画質: 目に見えない範囲で僅かに低下
- 圧縮率: 良くなっている
そこでSharktooth版も含めて実験を再現してみたところ、Sharktooth版とそれ以外のAQは全然効き方が違うことが分かった。
ビルド | パラメータ | 平均QP | ビットレート (kb/s) | PSNR(Y/U/V) |
---|---|---|---|---|
0.56.667 (Sharktooh) | CRF19, AQ off | 16.00 | 151.14 | 64.808, 62.301, 61.652 |
CRF21, AQ off | 18.00 | 162.27 | 64.137, 60.831, 61.571 | |
CRF22, AQ off | 19.00 | 147.69 | 62.502, 62.105, 63.823 | |
CRF19, AQ str=0.3, sens=22 | 16.00 | 166.68 | 65.491, 62.572, 62.33 | |
CRF19, AQ str=0.6, sens=22 | 16.00 | 172.44 | 65.857, 62.572, 62.245 | |
CRF22, AQ str=0.3, sens=22 | 19.00 | 158.63 | 63.077, 62.127, 64.415 | |
CRF19, AQ str=0.3, sens=0 | 16.00 | 185.09 | 66.084, 62.775, 62.397 | |
0.58.777M 02e6102 (VAQ2.0) | CRF19, AQ mode=2, mtr=0, str=0.6 | 17.84 | 172.24 | 64.366, 62.480, 61.691 |
CRF19, AQ mode=2, mtr=3, str=0.6 | 16.90 | 164.00 | 66.493 , 60.920, 61.803 |
Sharktooth版のAQは暗い色と別の色との境界でしかQPが変わっていない。 それに対して、Dark Shikari版は色領域ごとにQPが違っている。 また、VAQ1.0相当のmetric=0では輝度の高い白と右隣の輝度の低い紫に小さなQPが割り当てられているのに対してmetric=3では逆に大きなQPが割り当てられている。
Sharktooth版のAQは暗部のブロック歪の対策に重点を置いていていて、そのことがよく表れた結果だが、Dark Shikari版のメリットをはっきり示すには別のサンプルが必要だ、というのが現時点でのまとめ。
なお、MPlayer and MEncoder on MacOSXの解説の通り、x264が表示するSSIMは高速近似計算であって0.01程度の違いは誤差に埋もれてしまう恐れがあるため、 これを使っての比較は困難だ。 この問題は、VAQ2.0のDark Shikari氏も「最良の判断はあなたの目で見ることだ」と言及している。
最後にビットレートとY PSNRのグラフを示す。Sharktooth版で--aq-sensitivity=22とか指定する必要があったのが、VAQでは自動的に適度な閾値になっていることと、VAQ 1.0と2.0では2.0の方が同じビットレートで画質が良い(かも)ということが分かる。
でも、線が左上にいくほど性能が良いという理論通りなら、AQ offが一番高性能になってしまうので、もっと現実的な動画の特徴を持ったサンプルを使った上で、一個の数値尺度ではなくスナップショットを目で確かめることが必要なようだ。
関連記事
Trackback URL (right click and copy shortcut/link location)