H.264はそれはとても強いものですよ

H.264にやっと手が出せました。
まずH.264の基本ですけど16×16のマクロブロックを基本として4pxを単位とするサブマクロブロックに分割して考えます。
これがブロックノイズが発生する理由なのはどのコーデックでも同じで、特に新しい考えでもありません。
しかし、映像のサイズは16で割り切れるのが基本です。
そうでないならば8で割り切れろ、せめて4で割り切れろ。
ということです。じゃないとマゼンタのバーが入ったりします。
思ったとおりに計算できないのですよ。
で、現在16:9の映像ではVGAとほぼ同じ画素数のある704×396が多く使われています。
これ自体は4で割り切れるだけですが、特にH.264で問題は聞きません。
これの4分の1である352×198は4では割り切れません。
そこでいろいろ考えたのですがQVGAの1.08倍の画素数になりますが384×216ですね。
確かに4で割り切れる。8でも一応割り切れるな。まぁでもいいんです。
これでffmpegにかけてみよう。
-bitexact -vcodec h264 -coder 1 -bufsize 128 -s 384×216 -r 14.985 -qscale 25 -g 250 -sc_threshold 8000 -mbd 2 -qpel -qns -trell -acodec aac -ac 2 -ar 32000 -ab 32 -f mp4
アンダーラインは高画質向けの追加。しかし、H.264がそもそも重い方式なのでちょっと重くなっても気づかんかと…
H.264のQuantizerは0〜51と言う。まぁ一般的なのは20〜25のあたり。
特に軽くしたい人には30程度まで人気はあるがね。
ここでは25にしました。画面サイズが小さい分もあるので思ったより軽くできました。
なおAudioは32kbps*2にしました。すなわち64kbpsです。
しかしベタな組み合わせですね。AVCとAACですよ。Advanced Video CodingとAdvanced Audio Codingですよ。
コンテナもMP4コンテナなのでベタすぎますよ。
しかしこの結論にたどり着くまではいろいろありましたからね。
なお、変換速度・画質などから評価するとH.264>XviD>WMV9≫MPEG2ですね。
正直XviDとWMV9は好みの問題です。WMV9はベタが強くなりすぎてシャープが減る。
XviDはベタが汚い。とんでもなくブロックノイズ。
あえて速度は不問とします。これはどうもWMVの変換速度を速くすればいい勝負らしく、画質もそんなに変わらないらしい。
H.264はシャープさはXviD同様です。ただブロックノイズが少ない。
さすが次世代のコーデックだけあるわ。
まぁ多少圧縮が高いのでそれゆえに少々ベタが汚いですけれど、
しかしXviDとは比べ物になりません。ものすごく美しいです。
ブロックノイズも小さいですしね。これはサブマクロブロックのおかげですね。
ちなみにWMVにも勝ってます。あれは色が安っぽくなってます。
確かにブロックノイズじゃないんだけどね。境界がぼけたりしてるんでね。
多分この線で確定ですね。何個かエンコード試してみます。
これほど気持ちいいのは初めてです。
ところでエンコード時間ですが10分でした。いつもが8分なのでいい感じです。
これだけオプションつけてこれですからそんなに不安ではありませんね。
WMVより速いってWMVの標準ひどすぎ…
しかし、Athlon64にする改造のときの大義名分である、
動画エンコードをたくさんできるようにしようというのは十分達成してるね。
電話用エンコードだけでも十分だけど、こういう風にできるとはね。