twitter ■お問い合わせ当サイトへのリンクサイト仕様

現在位置 > LostTechnology > Movie > 音声のノイズを除去する

XviDの設定

MPEG4系のCODECであるXviDの設定の仕方を説明します。あくまでもDivXやXviDはMPEG-4ビジュアルのデータをAVIファイルなどで扱えるだけであり、MPEG-4システムでMP4ファイルを直接作成できるわけではありません。

バイナリはKoepi's (Windows版CODEC)のを用いて設定画面の画像を用意しました。XviD 1.0.1から使う設定を見直したので紹介記事中のサンプル設定が多少変化しています。

XviDはソースコードで公開されているため、実際に使うにはコンパイル済みのBinaryファイルが必要となります。コンパイル済みのBinaryダウンロードはこちらです。

XviD Configuration

Profile@Level
MPEG-4ビジュアル部に使う仕様を選択します。大まかにSimple/ARTS(Advanced Real Time Simple)/AS(Advanced Simple)の3種類からの選択です。各仕様にはレベルがあり、解像度などに制限があるので注意しましょう。Simpleは携帯電話向け(3GPP)、ARTSはリアルタイム通信向けといった用途に使われています。PC向けの動画であればXviDの機能の多くを利用可能なAS(@L5)を選択したほうがよいかもしれません。ちなみに、"unrestricted"はXviDの能力を最大限に引き出すモードです。これを使った場合は、再生にはDivXなどを使わずにXviDを使う必要が出てくるかもしれません。
DivX 5.x.xはAS@L5です。XviDで圧縮してFourCCを変更する場合にはご注意を。
Encoding type
通常は"Single pass"です。どうしてもこのサイズ内で最高の画質というのを求めなければならない場合だけ"Twopass"とします。2passは1回目の処理時("Twopass - 1st pass")に動きの大小を記録し、2回目の処理("Twopass - 2nd pass")で動きの大小から割り当てデータ量を計算するので、非常に時間がかかります。膨大な時間がかかるので積極的にお奨めはしません。2pass時はTargetがSizeかBitrateか選択できます。普通はサイズのほうを選んだほうがそのまま最終出力サイズとなるので楽でしょう。ただし、サイズ指定はkbytesであることに注意が必要です。
CD-Rに保存するために"Twopass"というのであれば、必要な時間とかを考えると安くなってきたDVD-Rドライブを素直に購入したほうが結果的に幸せだと思います。"Single pass"で時間が節約できて画質も安定する(良くなる)ので。
Target quantizer/Target bitrate
画質が決まる重要な部分です。quantizerは一定の品質で圧縮するモードで映像の破綻がまずなくなります。bitrateは時間あたりのデータ量が一定になるように圧縮するモードです。通常は画質が一定になるようにしたほうがよいでしょう。
ただし、MPEG-4対応のポータブルプレーヤーなどで再生するのが目的であれば、おそらく再生可能なビットレートに制約があります。説明書か公式サイトで仕様が公開されていると思うので、そのビットレートに収まるようにbitrateのほうで指定しての圧縮が必要です。音声部込みのビットレート制約か、音声別でよいのかに注意してください。
Add, Remove, Zone Options
XviDではフレーム指定で圧縮の設定を変更できるようになっています。映画など、長いスタッフロールが入る場合にはスタッフロール部は圧縮設定を変更してデータの節約をすることが可能です。通常は特にいじらなくても大丈夫でしょう。例えばOP部分をQuantizer:2.5、本編はQuantizer:3.5などのように設定可能です。

Profile@Level内

LebelとAspect Ratioは特にいじる必要はありません。いじるとすればProfile内の項目でしょう。

Zone Options

特定の部分だけ画質を上げたいとか、画質を犠牲にしてもサイズを小さくしたいという場合に使用する機能です。指定した範囲だけ別個の設定で圧縮を行なうことが可能になります。また、Begin with keyframeにチェックを付けると、指定したフレームを強制的にI-VOPにすることができるので、P-VOP/B-VOPだとノイズが出てしまうシーンに使うという手段もあり。

Advanced Options...

圧縮における重要な設定項目です。"Maximum I-frame interval"はI-frameを最大何フレームごとに入れるかの指定。I-frameはプレーヤーがシーク時に参照するので、頻繁にシークしたいデータを作る場合は小さな値にしたほうが便利でしょう。ただし、その場合はファイルサイズが若干大きくなります。

DivX 5.xで再生したい場合

従来はXviDのデータをDivXのCODECで再生するには、FourCCを"XVID"から"DIVX"や"DX50"として対処するのが一般的でした(Advanced Options内のDebugから変更可能)。

しかし、DivX 5.1.xからは、FourCCがXVIDのままでも再生ができるようになっています。「Standard DivX Codec(FREE)」をダウンロードしてインストールしておけばOKです。スタートメニューのDivX≫DivX CODEC≫Decoder Configuration Utilityから設定画面を開き、"Quality Settings"にある"Support Generic Mpeg-4"にチェックを付ける必要がありますが、最初から有効になっているので問題はありません。初期状態だと再生時にDivXのLogoが表示されるので、"Disable Logo"にチェックを付けるのをお忘れなく。

ただし、DivX 5.1.1のデコーダーでは、XviDのPacked bitstreamをOnにしたデータはカクついて正常に再生できないようです。DivX 5.2では対応済み。個人的にはDivXで再生するのはあまりお薦めしません。

I-VOP, P-VOP, B-VOP

MPEG4で使われているIPBの各VOP(MPEG-1/2のframeに相当する)の説明です。MPEG4の仕組みを詳しく知りたい人はPioneerの技術解説をご覧ください。

I-VOP(I-frame)
基準となるフレームでそのまま圧縮されます。もっとも高画質。
P-VOP(P-frame)
フレームを順方向に差分や動き補償などで予測して圧縮されるフレーム。
B-VOP(B-frame)
過去と未来の双方から予測して圧縮されるフレーム。圧縮効率を高めるためのもので画質は悪くなります。XviDでは、B-VOPのQuantizerは基準となるQuantizer*Quantizer ratio+Quantizer offsetで決まります。つまり、Quantizerが変化しないようにQuantizer ratioとQuantizer offsetを設定しない限り確実に画質は劣化するわけですが、それが人の目でわかるかどうかは圧縮するソースと設定次第なのでケースバイケース。普通の人は神経質に見比べるCODECの画質比較時ぐらいしか気にならない程度でしょう。MPEG系は不可逆圧縮なので、B-VOPは同じQuantizer値にしてもI/P-VOPに比べて少々画質が落ちることは覚悟しなければなりません。まあ、そこまで気にするような人はいないと思いますけれど。
基準となるQuantizerが3.45でQuantizer ratioが2.00の場合、I/P-VOPが3か4、B-VOPは7~9になります。Quantizer ratioが1.50ならB-VOPは5~7となり、Quantizer ratioの設定はかなり大きく影響するわけです。ソースにもよりますが、Quantizer ratioが2.00あたりまでなら静止させない限り気付かない程度(動きの激しい映像は除く)。ファイルサイズを小さくしたいなら2.00を、ファイルサイズは小さくしなくてもよいなら初期値の1.50でよいでしょう。Quantizer ratio:1.50と比べて、VGAサイズ24分で20~25MBほどファイルサイズを節約できるようです。
CPUによる設定変更
Advanced Options内のDebugでCPU命令の指定ができます。初期値は自動で、使える命令はすべて使うようになっているのですが、Pentium 4ベースのCPU以外(Pentium MやAMDのCPUなど)であればSSE2をオフにしたほうが処理がやや早く終わるので、ユーザー指定で明示的にSSE2のチェックを解除したほうがよさそうです。