H.264動画では、暗部や青色部分のブロック感(もやもやざわざわ動いている感じ)が気になるというのは、昔から知られていて、
x264 HAQ (Haali Adaptive Quantization parameter)のような対策が打ち出されているわけですが、そもそもどうしてざわざわしてしまうのでしょう。実はQPを変えるだけでは対策になってないかもしれない、そう思っていろいろ調べてみました。
そのものずばりの情報は得られなかったので、とりあえず推測を幾つか挙げてみます。
...
これは、青がもやもやしやすい理由の推測です。
たとえばまるも製作所にITU-R BT.601の式があって、
Y=0.299×R+0.587×G+0.114×B
となっています。8ビット精度でRGB表現によるB=255 (一番青い?青)の色はYUV表現での輝度Y=29に相当し、G=255は輝度Y=150に相当します。 青色領域の輝度情報は0~29の範囲でしか値をとらないので、量子化の過程で削られやすいと考えられるわけです。
しかし反論も考えられます。
「それは低輝度の領域がブロック化しやすい理由であって、青だけがもやもやする理由にならないのでは?」
確かにそうですね。そこで別の理由も合わせて考えてみました。
人間の視神経には、
色を見分けるけれども輝度の違いに鈍感な錐体細胞と、
色は分からないけれども輝度の違いに敏感な
桿体細胞があって、
暗い時には桿体細胞が優位になるそうです。
桿体細胞は赤っぽい光を感じることができないので(Wikipediaの桿体細胞の解説のグラフを参照)、同じ薄暗さの赤と青では、赤は黒く潰れしてしまって気にならない可能性があります。
プルキンエ現象というそうです。
以上をまとめると、
という仮説ができあがります。
QPを調整してブロックのざわざわ感を抑える、っていうのは 方針としては間違ってはいないのでしょうが、 設定が非常に難しいと思います。
というのも、今のHAQ, VAQではQPを変更する領域を判定する基準がこなれていないので、効果が出なかったり、最悪の場合、QPを下げてほしいところを上げてしまったりするからです。
また、動画エンコの本質は、
画質を維持しつつファイルサイズを小さくすることなので、
HAQの「画質を維持するためにファイルサイズを大きくする」というのは
困る人も多いと思います。
AQはこれからノウハウが蓄積されてくる技術だと思います。
現段階で効果が出ないソースは、AQの改良を待てなければ
別の方法で対処するしかないです。
とはいっても、手間、ビットレート、画質、のうちどれかが犠牲になるわけですが。
--zones
を使って必要な個所だけ手動で強制的にQPを下げれば、確実にざわざわ感を抑えられます。--zones
を併用するんでしょうね。あと、ソースがアナログ素材(アナログキャプチャだけでなく、フィルム素材の映画も含む)の場合は、時間方向のノイズフィルタをかけるのが効果的です。 ただし暗部で残像が出やすくなるので、パラメータをよく調整することが肝心となります。
Trackback URL (right click and copy shortcut/link location)