切り替えたものを比較してみた。有効にしたものが良い結果となっている。こんなことが発生するのか。それを説明する前に、コーデックとしてのインタレース対応とは何かということを説明しておく。インタレースコンテンツには縞がある。時間が異なるため、フィールド毎に違う絵が存在することとなり、組み合わせて見れば縞が見えてしまう。圧縮しようとすると、圧縮効率が非常に悪くなってしまう。そこで、縞があることを前提に、特別な処理を加えることで縞があっても圧縮効率が落ちないようにしようというのがコーデックでのインタレース対応だ。レンダラーにインタレースフラグが通知されて、レンダラーレベルのインタレース解除が行われて縞が出なくなるというのはあくまでもオマケ的な効果で、本来のコーデックのインタレース対応の目的じゃない。縞を奇麗に残すためにどーしてるのか。分けて、一つずつ圧縮していく。二つに分けて圧縮する。二つに分けて圧縮する。一部を拡大したものだ。左側はトップ/ボトムで分けるフィールドモードが適切で、右側は上/下で分けるフレームモードが適切な例になる。性能が良いとかいう結果になってしまうわけなのだ。仕様を非難する気にはなれない。適応的にしてくれと言う人は少ないのじゃないかなーと思う。実際私も過去に「インタレースなんてこの世から消えてなくなってしまえ」と呪詛を放った記憶があるし。平坦な場所にノイズが乗ることがあるのを防ぐために追加されたオプションということになっている。実際にはどんなノイズが出るのか知らない人も多いと思うので実例を。「指定して」エンコードしたものになっている。この動画を再生すると、左側でのみ、枝の一部が背景の空に残ってしまっているのが確認できると思う。以外のオプションについては以下を指定している。判定できる場合は他のモードを調べずに処理を省く」というものがある。持っていれば残らなかったはずの一部だけ差し掛かっている物体が延々引きずるように動画内に残ってしまうことがある。判定できても、一応動き検索を行う」という処理にエンコーダの挙動を変更させるためのオプションだ。速度はそれほど遅くならないので、常に指定した方が良いと思う。極端に小さな数字を設定した量子化行列には意味がない。次の二つの設定は、量子化処理だけを見れば同じ結果をもたらす。数値を倍に増やしたものだ。この設定が同じ量子化結果をもたらすことを順を追って説明していく。簡略化したコードサンプルで示すと次の形になる。入出力について説明しておく。オプション等で指定できる量子化行列。パラメータでおなじみの品質値。いう一見意味不明のテーブルがあるけれども、それ以外はシンプルでそんなに難しくない処理のはず。