x264はH.264形式の動画ファイルのエンコーダプログラムの一つで、無償配布されています。
長い間、x264は「インターレース保持エンコードに対応しない」ことが開発者のポリシーとしてうたわれていました。
このため、30fps映像か、テレシネ解除が可能な場合はx264でエンコード、それ以外はxvidでエンコード、と使い分けが必要でした。
昨年末頃からx264でインターレース保持モードが実装され始めましたが、trellis符号化と併用できないなどの制約がある上、無償の対応デコーダが存在しない状況だったため、実用性に乏しく、手を出せませんでした。
今年に入って、Charlieが使う機能はほぼ全て対応されたようなので(8月前半の段階ではマクロブロック単位のQP変更 --aq-*を指定するとffdshowで正しく再生できない。これは痛い)現在ではインターレース画像もx264でエンコードしています。
...
mkvmergeで結合する時点では何も文句を言わないのですが、ffdshowで再生すると結合部分で映像が止まったり、プレーヤが落ちたりします。 こういう場合はプログレッシブ部分も--interlacedでエンコードするしかないようです。
プログレッシブだと縦も横も16の倍数でいいようですが、インターレースの時は32の倍数です。32の倍数でないとffdshowで再生した時に灰色の画面になったままプレーヤが無反応になったりします。
x264は通常、画面全体で同じQP(Quantization Parameter; 量子化パラメータ)が使われます。
これだと、全体がのっぺりとしているのに局所的にエッジの立った領域がある場合、例えば夜空に小さな星が輝いている場合などに星の周囲にブロックが目立つことがあります。
(黒浮きのする液晶だと気になったりします)
そんな時は、
--aq-strength=0.8 --aq-sensitivity=15のように指定すると、暗い領域のQPを小さくしてブロックノイズを抑制する機能が働きます。
▼インターレース画像のエンコードパラメータ
--interlaced --direct none --thread-input -i 2 --crf 21 -b 2 --b-pyramid -r 2 --qpstep 8 --ratetol 80 --qcomp 0.8 -A all --me umh -m 6 --b-rdo --mixed-refs -8 -t 2 --no-fast-pskip --no-dct-decimate --sar 10:11 --progress -f 0:0 -w --bime --cqm jvt
⇒ 改良した設定
多くのドラマやバラエティがこれに該当します。アニメでも、フィルム撮りで残像テレシネがある場合はこちらを使っています。
▼プログレッシブ画像のエンコードパラメータ
--thread-input -i 2 --crf 21 -b 2 --b-pyramid -r 2 --qpstep 8 --ratetol 80 --qcomp 0.8 -A all --me umh -m 6 --b-rdo --mixed-refs -8 -t 2 --no-fast-pskip --no-dct-decimate --sar 10:11 --progress -f 0:0 -w --bime --aq-strength=0.8 --aq-sensitivity=12 --cqm jvt
⇒ 改良した設定
デジタルアニメだと、--crf 19 --f -1:-1くらいでエンコしています。
フィルム撮りのアニメはリマスタリングでもない限り、粒状感が強く、撮影時の微妙な上下動や、シーン結合部分での接着剤の影など圧縮を妨げる要素が沢山含まれているため、
自然画と同じパラメータを使って同程度のビットレートに抑えています。
関連記事
外部リンク
Trackback URL (right click and copy shortcut/link location)