圧縮率と画質実験(失敗)
|
|
動画ファイルをHDDやCD-Rに多く保存するためには、動画を圧縮する必要があります。
画質が良くても、圧縮率が低ければHDDがすぐに満タンになってしまいます。
そこで、画質を最大限に保ちながら圧縮率を高めるコーデックを調査してみました。
まず、前回の「コーデック別画質実験」のデータにより、
DivX5.11、WMV9VCM、XviD、VP6の4強コーデックを利用することにします。
この4つの中で、「高圧縮で画質効率が最大のもの」は何なのかを今度はファイルサイズを同じにして、
できるだけ公平に審査しようと考えました。
前回の実験の結果より学んだ事を羅列しますと
・DivX5.11のVFWデコードにはバグがありました
・WMV9VCMやXviDの最高画質は高ビットレートだったので今回は不利かもしれないです
・VP6の1-passは最初から高圧縮でした。また、再生が粉っぽいのでvp6dec.axを入れ替えました。
という3つを念頭において、実験の不備を埋めるようにします。
|
|
実験に使うソースは、前回と同じ10秒(30fps、300フレーム)の未圧縮AVIです。
今回は前回と違い、MS-MPEG4は除外しました。(ベリベリノイズとm4c誤作動、2-passが無いため)
設定は「ビットレート」を全てのファイルで一定にする必要があるので、2-passを使用します。
また、比較するビットレートは、4種類のコーデックのファイルサイズが揃うように微調整を
繰り返して決定します。よって1000kbpsなど「区切りの良い」ビットレートでの結果は得られません。
250kbps(超高圧縮、音声並み)、500kbps(高圧縮)、1000kbps(標準)、2000kbps(低圧縮)の4種類で
とりあえず実験することにします。なお、クロップの解像度変更機能は使いません。
ただし、低圧縮に有利な設定(DivX5.11のPsychovisual EnhancementsのSlowを利用するなど)を行って、
できるだけコーデックの全ての力を出し切れるようにしようと思います。
|
|
問題点その1
私が作った10秒のサンプルでは、「VBRの性能が良いコーデックが有利」になるように設計されています。
これは、「アニメや映画」で特に重要です。アニメはオープニングや見せ場などは、
原画枚数が多くビットレートを必要としますが、静止画のような動きがほとんどない場所もあります。
映画では、アクションシーンは動きが激しく会話シーンは固定カメラといったようなメリハリと同様に、
ビットレートを割り振る必要があるからです。
コーデックはそれぞれ、VBRのアルゴリズムが違います。
私は経験に基き、コーデックが苦手と思われる動画を作りました。(ほとんど静止画で一部だけですが)
|
|
問題点その2
低ビットレートに設定しても、設定(命令)に従わないコーデックが続出しました。
250kbpsの超高圧縮にしてみたいのですが、2-passで250kbpsを指定した場合次のようになりました。
DivX5.11 → 1,166,898バイト(約934kbps) サンプルダウンロード(2001/01/23バージョン)
WMV9VCM → 763,396バイト(約611kbps) サンプルダウンロード(2001/01/23バージョン)
XviD-1.0 → 1,334,798バイト(約1068kbps) サンプルダウンロード(2001/02/12バージョン)
VP6 → 643,134バイト(約515kbps)(ビットレート指定無し、2-passBEST) サンプルダウンロード(2001/01/23バージョン)
ただし、これから想像できることは「WMV9VCMとVP6」は低ビットレート設定に強いということです。
DivX5.11とXviDは「低ビットレートで破綻」するためにあるクオリティ以下には設定できない、
親切なコーデックであるといえます。
ただ、これらのファイルを実際見てみると、次のような事がいえます。
・VP6はビットレートが低いにもかかわらず他のコーデックより人間が見て綺麗である。
・WMV9VCMも他のコーデックより綺麗である。
・DivX5.11は非常に低ビットレートに弱い、画質が悪い(VBR性能も悪い)。
・XviDは「高ビットレート用設定」と「低ビットレート用設定」が存在するので、設定依存型である。
ということです。画質以前の問題が浮上し、公平な比較実験を行う予定でしたが無理のようです。
解決方法がありました。
VP6のビットレート設定を行うことができると教えていただきました。
XviDの「ログファイルの設定」や「ファイルサイズ指定」により、レートコントロールが優れていることが、
わかりました。
問題はDivXとWMV9VCMです。
|
|
問題点その3
DivX5.11には、「Bフレーム」という「圧縮率は高いが画質が悪い」フレームが存在します。
XviDも同様です。これらのフレームを含む場合、他のコーデックより設定を上手にする必要があります。
XviDにはその対処法がありますが、DivX5.11にはそのような設定方法が通常ありません。
今回の映像ソースでは、他のコーデックより「不利」であることは間違えありません。
その不利さを示す例として、セッション3の「複雑な映像(写真)」のところで、
「脈動」や「シーン切り替えの遅さ」が現れています。サンプルをご確認ください。
|
|
問題点その4
DivX5.11には、今回使用するソースのセッション1「ボールが移動するアニメ」
セッション2「シーンチェンジのブロックアニメ」の2つで顕著にバグが検出されています。
ただし、低ビットレートの時にはそのバグが見当たりません。
DirectShowFilterDecodeにより、問題は解決しました。VFW読み込みバグでした。
よって、公平な設定方法や映像処理手段を用いてもDivX5.11は、他のコーデックより劣っている事になります。
|
|
問題点その5
WMV9VCMは、設定をしっかりしても今回のソースでは、2種類の動画しかできませんでした。
一つは、低圧縮の「611kbps」もう一つは「3000kbps版」です。どうやら時間の短いソースでは、
VBRアルゴリズムが2つしかないようです。「1500kbps版」のWMV9VCM映像を作りたいとしても、
作る事が出来ません。これは、10秒の動画はうまく2-pass処理できないことにも原因がありますが、
今回の実験を成功させるには大きな壁となります。
DivXもレートコントロールが弱いようです。
|
|
問題点その6
VP6は、ビットレートを設定する事が出来ません。
よって、他のコーデックとビットレートを並べようとしても超低圧縮になり、
他のコーデックを寄せ付けません。本来なら非常に良い事なのですが、実験になりません。
「フロントエンド側(VirtualDubMod)でビットレートを指定する」ことを教わり、解決しました。
|
|
結論
意地で同じソースで実験してみます。かなり複雑な結論になるようなので、お時間を下さい。
|
|
もどる
|
|
Internet Explorer5以上、横解像度800以上でのの閲覧を推奨します
jumper
|