動画エンコードのページ

最終更新日 2004/11/04
殴り書きで汚くて申し訳ない
ブラウザの検索機能を使って、目的の語句を探してください。
page size = Mbyte




関連ページ DivX5.11ページ DivX5.2ページ DivX5.2.1ページ 実際にエンコしてみようページ


動画ページDivX511の検索して飛んでくる方が多く、動画ページの内容では多分飛んできた意味が無いでしょうから、こちらのエンコードページを作ってみました。
nPASSエンコードのやり方の方はこちら。=>nPASSのやり方

まずあらまし。
DivXというのは、DivXNetworksが作っているフリー(物によっては有料)の動画エンコードソフトです。
ZIPファイルが ZIP形式で圧縮されているのと同じで DivX動画は DivXにて圧縮されています。
ZIP圧縮されているファイルは解凍ソフトで解凍しないと中身が見れません。
それと同じで、DivX動画は DivX(形式)にて圧縮されていますから、再生する時には、動画ファイルを 1フレームごとの絵に戻しながら再生しなければ再生できません。
この DivX形式に圧縮された映像を 1フレームごとの映像に戻すことをデコード(decode)。

逆に、DivX形式へ圧縮しながら DivXのファイルを作るのが DivXエンコード。
エンコード(encode) = 元の映像より、そのコーデックで圧縮した形式の動画へ変更すること。
mp3のファイルを作るときにも mp3エンコードなどと言います。


上記リンクより DivXのエンコーダーを Downloadして組み込むと、AviUtlなどの動画編集作成ツールより呼び出し DivXの動画を作れるようになります。
又 DivXプレーヤー(デコーダー)も同時に組み込まれますので、DivXで圧縮された映像の再生が可能になります。

AviUtlなどのエンコードツールと DivXエンコーダーの関係は、Lhmeltなどの圧縮ツールと、LHA.DLLなどとの関係に似ていますね。

上記DivXNetworksのリンク先には、
Bフレーム圧縮が使えないが完全無料版の物。Standard DivX Codec(FREE)
Bフレーム圧縮も出来るが、無料と引き替えに広告が組み込まれている DivX Pro Ad Supportedバージョン。
Bフレーム圧縮も出来広告も入ってないが、有料のバージョン。DivX Pro
の 3種類があります。
Bフレーム圧縮、動きが激しいと再生時にコマ飛びのような状態になってしまう事が私の所では起きていて使わないことの方が多いので、完全無料版で良いんじゃないか?と個人的には思います。

Bフレームとは
通常の DivX動画は、PC画面上で再生される場合が多いので、インタレース解除(注1)された 1秒間が 29.97枚のフレームで構成された映像がほとんどです。
この 1フレームそれぞれが 1枚の映像として記録されると、1秒間に 29.97枚の画像で 1秒間の映像となります。しかしこれでは容量がかさんでしまう為 Iフレーム、Pフレーム、Bフレームという時間軸の圧縮方法によって、それぞれのフレームが圧縮されています。
MPEG1、MPEG2のファイルも同じように I,P,Bのフレーム圧縮によって映像が圧縮されています。
Iフレーム -- それだけで 1枚の画像として読み込める独立したフレーム。KEYフレーム(キーフレーム)とも呼ばれる。MPEG2では GOPという呼び方をするが、GOPの区切りとなっている。
Pフレーム -- Iフレームよりの映像の差だけが記録されているファイル。Iフレームの映像と Pフレームの差分情報を足し算し Pフレームが元の映像に再現される。
Bフレーム -- 前後の Pフレームの映像を元に、更に相対差分により構成されているフレーム。Iフレームから見ると 2段階目の差分にて成り立っている。
通常の DVDなどの MPEG2ファイル IPBBPBBPBBPBBPBB IPBBPBBPBBPBBPBB IPBBPBBPBBPBBPBB IPBBPBBPBBPBBPBB
DivX Free版のファイル IPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 以降次の Iフレームまで Pフレームが続く
DivX Pro版のファイル IPBPBPBPBPBPBPBPBPBPBPBPBPBPBPBPBPBPBPBPB 以降次の Iフレームまで Pと Bフレームが交互に続く

MPEG2のファイルは DVDの規格で 1GOP(Iフレームから次の Iフレームまでのフレーム数が) 18まで。と言う決まりがある為、通常は上のように Iフレーム、次に PBBが 5回続く組み合わせが多いようです。
DivXの場合、デフォルトの設定では Max Keyframe interval 300に設定されていますから、Iフレームの後、Pフレームが 299枚続く映像となります。(当然 Scene change thresholdに引っかかる映像の違いが出た場合は、そこで Iフレームとなる)。
この Iフレームからの相対比較された映像圧縮のフレームが多いので DivXは容量小さい映像が出来上がると言われています。

ちなみに、私はキャプチャボードにカノープスの MTV2200SXというのを使っていますが、これでソフトウェアキャプチャする為に追加で買ったXPACK2と言うドライバーの中に DivX5.09の正規版がバンドルされていたので、これを DivX511へバージョンアップして使っています。

注1 インタレース解除
テレビ番組、DVDの映画など、TVで見る為の映像は、ほとんど全ての映像がインタレース映像です。
インタレース映像とは、飛び越し走査と言われる、1本ずつ飛び越して 2回画面を描写すると 1画面が全て出来上がる画面の書き方を言います。
通常テレビを見ている時には、このインタレース映像で普通に綺麗で滑らかに見る事が出来ます。
では、なぜみんなインタレース解除、インタレ解除、インタレ解除・・・と言うのか?
インタレース映像で普通に綺麗にテレビ見れているではないか?と疑問に思いませんか?

多くのパソコンが、インタレース映像を綺麗に表示できないんです。
ですから、PC上で再生する目的で作る映像は、インタレース解除する必要があるのです。
と言う事は、PCでエンコするけど再生は家電 DVDプレーヤー使って TVで見る。
なんて時には、インタレースを解除をする必要はありません。と言うか、インタレース解除など絶対してはなりません。
動きがカクカクになって、とても見れた物ではありません。
と言う事で、MPEG2エンコードしてお楽しみ DVDを作ろう!。なんて時には、インタレース解除はしないようにしましょう。

しかし、DivXに関しては、インタレースエンコードの機能が備わってはいるけど、DivXのインタレース映像を綺麗に表示できる再生機器があるのかなぁ。DivXの場合には、何がなんでもインタレース解除をした方が良いのかも知れません。


DivXを作るのに必要なソフト
フリーの無料ソフトで作るには以下の物を Downloadして下さい。
DVD2AVI MPEG2を AviUtlへ読み込ませる前段階の処理をするのに必要。本家、亜種など沢山バージョンが存在し、それぞれに特徴あります。と言うことで、最新バージョンが最高とは言えないようです。
AviUtl MPEG2を各種フィルターかけながら DivXへエンコードするのに必要。
DivX511 DivXへエンコードするのに必要。ver5.11でなくとも良いです。完全無料版は、リンク先のStandard DivX Codec(FREE)と書かれた物です。(注1)
gogoのコーダ DivX動画は、音声を MP3で圧縮するのが今のところ一般的で、再生するのも楽ですから、MP3エンコーダーも用意します。午後のコーダでなく LAMEなどでも構いません。
MP2WAV32x MPEG2ファイルは音声に MP2を使っている物が多く、MP2ではそのまま MP3エンコーダーが読み込んでくれないので、WAVEファイルへ変換するために必要です。

その他、動画関係に必要なリンク先は、ICZの剣さんのページが詳しいです。いつも参考にさせてもらってます。

以上が、MP2音声の MPEG2ファイルから DivX511+MP3音声の動画へ変換するのに必要なソフトです。
色々組み込まなければなりませんが、動画を作るのはまあどれもこんなもんです。どれかひとつのソフトでやろうなんて無理です。
その他の形式から変換するには別のソフトが必要な場合もあるし、他のソフトでも同様の物が作れます。早かったり、綺麗だったり、機能豊富だったり、それぞれ特徴があります。
私が使っているソフトは上記で紹介したソフトなだけですから、それぞれ御自分で好みの物を見付けて使っていきましょう。

それではまずこの動画を Downloadして下さい。=> MPEG2(撮影待ち、しばらくお待ち下さい)

DivXエンコーダー設定画面の説明


codec properties general tab

Performance / Quality DivXエンコードするとき、どのぐらい細かく映像の解析を行うかを選ぶ。
Fastest,Standard,Slow,Slowestが選べる。Fastestが一番早いが大雑把な解析で出来上がる映像汚い。
Fastest - 映像汚くとも容量大きくなっても良いから早く作りたいときのみ選ぶ。
Standard - DivX5.0xの Slowestに相当。
Slow,Slowest - DivX5.1xより Slow,Slowestは今までのとは異なる解析方法となった(らしい)。DivX5.05の Slowestよりも出来上がる物は満足できる物だが、速度は相当遅い。どのぐらい遅いかというと、アスロン2500+とかの 2004年現在で普通のパソコンを利用しても、1時間の映像を Slowestにてエンコードすると 24時間かかったりします。

Variable bitrate mode エンコード方法を選ぶ。Select Profile Wizardにて Disable Profileにしておかないと選択できない。
1-pass - 平均が Encoding bitrateで選んだ bit rateとなるようエンコードする。出来上がりのファイルサイズはエンコードする前にある程度決められるが、どんな画質の物が出来るかは映像次第。私はほとんど使いません。
1-pass quality-based - Quantizerにて選んだ画質になるよう bit rateを自動で割り振る。出来上がりの画質は指定した物が出来上がるが、映像によって出来上がりサイズに大きな差が出る。
綺麗に残したい物 95%(2.5)
通常 90%(4.0)
汚くて良い物は 70%(10.0)
程度でエンコードしてます。私はほぼ 99%この 1pass QBでエンコードしています。
この quality basedの数値は、どの程度圧縮して映像情報を削るかの JPEG圧縮に用いられる数字に相当するんだと思います。
Multipass,1st pass - 2pass以上のエンコードを行う場合は映像解析が必要だが、その映像解析のみを行わせるモード。
Multipass,nth pass - 1st passで映像解析を行った情報を元に、Encoding bitrateで指定した平均レートとなるよう bitrateを割り振りながらエンコードを行う。ぴったりなサイズの物を作るときに使う物(だと思う)。
nth passで何度も何度もやると、どんどん出来上がりが綺麗になると言う人もいるが、私はそう思わない。出来上がりが同じサイズなら QBでも 2passでも、見た目変わらない物が出来上がると思う。
Max bitrate - エンコーダーが勝手に割り振る bitrateの内 Max bitrateの上限をどのぐらいにするかを決める。デフォルトは平均の 10倍の値。
Encoding bitrate - 1pass,npass時の平均ビットレートを指定する。どうぞ好きな値を指定して下さい。値が小さいと出来上がりのサイズも小さいが、映像は当然汚い。綺麗にしたいからとレートを上げ過ぎると DivX圧縮する意味が無くなる。映像のビットレートを高くするのなら DivX圧縮せず MPEG2の方が、のちのち DVDに焼きたい、などの時に融通がきく。MPEG2で行くか、DivXへ圧縮するかは 2〜2.5Mbpsぐらいに境界線があると思います。DivXで 3Mbps必要なファイルは MPEG2でエンコードが良いと思います。
Bitrate modulation - Multipass nth pass時のみ選択できる。VBRの動きの激しさを選ぶんだと思います。良く分かりません。ちなみに DivX5.2にて、logの書き出しを行って frameごとの bitrate割り振りを確認してみましたが、Low motion / Hi motionを変えてエンコードを行っても、出来上がる物に全く変化はありませんでした。Bフレームかな?と思って Bフレーム有り無しでの確認もしましたが変化無し。確認方法が悪いのか、変わらない物なのか・・・?
Multipass encoding files - 1pass QB,Multipassの時に選択できる。エンコードするファイルと出力先以外の HDDへ出力するように指定すると多少早くなるかも?



codec properties video tab

Psychovisual Enhancements - 映像の暗い目立たない部分の情報はしょり方を選択する。選択しないのが良いと思う。
Enable Crop - 映像の上下左右、黒とかノイズとかが入っている場合、その部分をカット(クロップ,クリップ)する。通常エンコーダーでやらず AviUtlなどにやらせる。
Enable Resize - 出来上がりの画面サイズを変えたいときに指定する。4:3の通常のテレビ映像は 640x480。16:9の WIDE TV映像は 640x360などにする。が、これも通常エンコーダーでやらず AviUtlなどにやらせる。
Pre Processing Source - ノイズ除去の指定。これも AviUtlなどにやらせる仕事だと思うなぁ。使ったことありません。
Scene change threshold - IPPPPPPPPと続く DivXの映像フレームで、どのぐらい映像に変化があったら Iフレームにするかの指定。デフォルト 50%。少しの変化で Iフレームにしたいときは 30%程度にすると良い。ゆっくりスクロールするような映像で黒いモヤモヤが出るとき、この値を小さくすると Iフレームが入りやすくなり、モヤモヤ出にくくなる。その反面圧縮の効いていない Iフレームが頻繁に入るようになるので出来上がりのサイズは大きくなる。
Max Keyframe interval - 上記 thresholdで引っかからずとも、必ず Iフレームにするのを何フレームに 1度入れるかの指定。デフォルト 300フレーム(10秒に 1回)
Source Interlace - 元映像から DivXエンコードするとき、ノンインタレース(プログレッシブ)/インターレース/インタレース解除しながらの指定をする。
Encode as progressive - インタレース解除された、飛び越し走査でない映像をノンインタレース(プログレッシブ)エンコードする。
Encode as interlaced - インタレース映像をインタレース映像のままエンコード。
Deinterlace all frames - インタレース映像を、インタレース解除しながらノンインタレース(プログレッシブ)エンコードする。
注:インタレース解除は、通常 AviUtlなどにやらせる仕事です。
Top field first - インタレース解除するとき奇数走査と偶数走査のどちらが先に画面を描写しているかを指定する。これ間違うと、カクカク映像が出来上がります。



Settings画面

Manual CLI - 全ての設定画面を一気に設定したいときのオプションの羅列が書かれた部分。
ちなみに私が良く使っている、1passQB,slowest,Bフレーム無し、その他の設定全てDisableというのは以下の設定です。
-b1q 4.0 -psy 0 -key 300 -sc 50 -pq 192 -profile 0 -nf
Do not prompt with errors and warnings - エラーを表示するかの指定。よく知りません。私は×付けています。
Disable the feedback window - ×を付けないとエンコード時に解析画面が表示されます。解析画面、猿が手を上げた場面なんですが、手の所にベクトルがたくさん出て、映像に変化があったのが表示されています。表示させるとへーこんな解析しながらエンコしてるんだ!、って見ていておもしろいのですが、とても激遅になるので通常×を付ける。



Profile Settingsの 1ページ目
Generalタブの Select Profile Wizardを押すと表示される。

Disable profiles - 自分の好きな設定でやりたいときは×を付ける。



Profile Settingsの 2ページ目

Use Quarter Pixel - 1/4の動き検出を行うとかなんとか、良く分かりません。ただし、これに×を付けると再生できなくなる環境が多い様なんで、×を付けないでエンコードする。
Use GMC - Global motion compensationの略。ズーム、スパンなど良くある動きを最適化する?。但し、これも×を付けると再生に難が出る環境多いので、通常×付けない。
Use Bidirectional Encoding - Bフレーム圧縮を使うかどうかの指定。完全フリー版は設定が無い。IPBのフレームの内 Bフレームも使って圧縮するようになるので、使わない場合と比べ同画質でサイズが小さくなるが、再生環境によるのかもしれないけど、動きが激しいと飛んだような映像になるので、私は使ってません。

Video resolutionと Video frame rate - Profileモードにしたとき有効となる。作りたい映像の画面サイズとフレームレートを入力するんだと思います。



nPassエンコードのやり方

私の使っているのは AviUtlなので AviUtlで nPassエンコードする方法で説明します。

(1) AviUtlへ映像ファイルを読み込ます。
(2) 設定=>圧縮の設定=>ビデオ圧縮の設定=>DivX=>設定を選ぶ
(3) Variable bitrate modeの Multipass, 1st passを選ぶ
(4) Encoding bitrateに所望の平均レートを選ぶ
(5) Multipass encoding filesの logファイルに好きなファイル名を入力。これに nPassに必要な映像情報が記録される。
(6) Performance / Qualitiに STDを選んだ時は binファイルも書き込んだ方が良い?のかも。不明
(7) OKで DivXの設定を抜ける。もう一度 OKで映像の設定を抜ける。
(8) ファイル =>AVI出力 =>ファイル名を入力して保存。数時間待つ。すると 1pass目が実行され log,avi,binファイルが出来上がる。必要なのは logファイルのみ。
(9) 設定=>圧縮の設定=>ビデオ圧縮の設定=>DivX=>設定を選ぶ
(10) Variable bitrate modeの Multipass, nth passを選ぶ
(11) 2passの時は Update log file×は消しておいた方が良い?
(12) Max bitrate,Encoding bitrate,Bitrate modulationを好きな設定にして OKを押す。((4)に合わせた方が良い?)
(13) ファイル =>AVI出力 =>ファイル名を入力して保存。数時間待つ。すると 2pass目が実行され logファイルに書かれた映像の変化情報を元に、最適にレートが割り振られた aviファイルが出来上がる。(8)で作られた aviファイルは不要なので、同じファイルへ上書きしてしまって良い。

要は、1pass目で擬似的にエンコードを行わせて logファイルへ映像の変化度合い情報を記録。(どこがレート必要で、どこら辺はレート不要とかの情報)
その logファイル通りに映像レートを割り振って 2pass目で DivXの aviを出力します。
1pass目で映像の変化度合い情報を記録するので、レートが必要な所へレートを割り振り、不要な所はレートを下げ、なおかつ出来上がりは平均ビットレートに合わせる。って事を行えます。

しかし、上の方でも書きましたが、出来上がりサイズをぴったりにしたいのでなければ、nPassエンコードは不要と思います。
なにせ、出来上がりのファイルサイズは自分の思う通りに出来上がるけど、出来上がりの映像の綺麗さは、出来上がってみないと分からないんですから。
それだったら半分の時間で済む、出来上がりのサイズは不明なれど、映像の綺麗さを指定して作る 1Pass-QBエンコードで十分です。(と思う)

注:
nPassやらせる時の 1pass目で、2passと同じようにノイズ除去など、本番と同じ処理内容をやらせた方が良い。
それとも、1pass目は映像解析のみなんだから、NOISE除去などの時間のかかる処理はやらずとも、映像だけをガーっと流して解析させれば良い。
どちらが良いのか、私も良く分かっていません。



155091
戻る?