TMPGEncの過去ログ等から有用そうな情報をピックアップ。私が適当に解釈してその結果を私の言葉でまとめてあるため、 内容が間違っている可能性があります。 古い情報を元にしているため、現状とはそぐわない可能性もあります。私はほとんど確認していません。 途中(1999.9-2000.7頃?)のログがないため、β11〜β12初期頃の情報は入っていません。 なお、過去ログは次の場所より得ています。 過去ログ大元 http://www.koubou.org/hori/ 各ログへ直リンク http://www.moemoe.gr.jp/cgi/bbs/freebbs.cgi?file=TMPGEnc http://cgi2.bekkoame.ne.jp/cgi-bin/user/u49357/freebbs.cgi?file=TMPGEnc http://www.koubou.org/hori/TMPGEncBBSlog3.html http://www.koubou.org/hori/TMPGEncBBSlog2.html http://www.koubou.org/hori/TMPGEncBBSlog.html 停止中掲示板(2000.12-2001.12;ただし2001.11分はない;なぜか英語板は活動中) http://www.tmpgenc.com/cgi-bin/bbs/board.cgi?board=tmpgenc 現行掲示板 http://www.tmpgenc.net/cgi-bin/bbs/board.cgi?board=tmpgenc 1.画質 MPEG-1, MPEG-2非インターレースでは以下のようになっています 低画質:  周囲 10x10 ピクセルぐらいの範囲で検索します。 標準画質:  周囲 8x8 ピクセルを高精度で検索し、また周囲 64x64 ピクセルを低精度で高速検索します。 高画質:  周囲 16x16 ピクセルを高精度で検索し、また周囲 64x64 ピクセルを低精度で高速検索します。 最高画質:  検索範囲は高画質と同じですが、色空間にRGBを使って検索します。このため輝度も"色"も一致した ところのみ動き検出にヒットします。(他のモードはYCbCr色空間のYチャンネルのみを使うので輝度しかチェックされない) 動き予測検索:  MPEG-1の場合、速さは低画質と普通の中間、画質は低画質相当。 2.フィルタの実行順序 24fps 化 ゴースト除去 ノイズ除去 エッジ強調 色調補正 インターレス解除 シーンチェンジ検出 クリッピング 拡大縮小 エンコード の順。 縮小した後にエッジ強調をかけたいときなどは、いったんプロジェクトファイルに保存し、 そのプロジェクトファイルを映像ソースに指定することにより可能。ソースに指定するときには 参照ボタンを使う。ドラック&ドロップだとプロジェクトを開かれてしまうので注意。 3.音の正規化 元データの最大音量を、100%中の何パーセントとして出力するかを決める。80にすると元データの 最大音量部分でも出力データでは80%の音量となり、それ以上の音量の部分はないことになる。 音声加工のウインドウでは正規化後の音量が元の音量と比べてどれくらいの大きさになるかが 表示される。120%だったときには、エンコード時に1.2倍の処理が行われることを示している。 4.MPEGツールの結合 結合では映像の挿入は行わないため、音声が長い場合には次につないだものの音ずれが発生する。 逆に映像が長いときにはその部分に無音が挿入され、次の音ずれは発生しない。 5.YUV4:1:1について YUV4:1:1の映像ソースをMPEG(YUV4:2:0)に変換すると、赤い部分などでブロックノイズが目立つ ようになる。RGB形式でキャプチャしたほうがよい。 6.アスペクト比、最大化で黒帯が出る、画面がつぶれる 結構わかりづらい。 これを決定する設定は次の5個所がある。 ソースのアスペクト比 ソースの画素数 出力のアスペクト比率 出力のサイズ 画像配置方法 アスペクト比に関しては、 1:1 1ピクセルのアスペクト比をあらわしている 4:3 画面のアスペクト比をあらわしている の2種類があり、混乱の元である。 PCの画面は1024*768等では4:3の画面で、ドットアスペクト比は1(正方画素)である。 VCDのとき、 352*240(ドットアスペクト比1.095)のMPEG-1で作る。これをPC画面で見るときにドット対応させると横長になる。 (メディアプレイヤーの窓モード) メディアプレイヤーでフルスクリーンにしたときにはMPEG-1内のアスペクト比を参照して(?)適切なアスペクト比で表示してくれる。 このときVCDのMPEG-1の場合には左右に黒い部分が少しできる。 ※4:3 552 line(NTSC)のドットアスペクト比は1.095、これを352*240を正方画素に戻すときに352/1.095=321.461...にな り、横に隙間ができる。これでアスペクト比は正しい。 また1280*1024等の4:3でないスクリーンの時には上下に黒い部分ができて上下につぶれたようになる。本来ならモニターを5:4のサ イズに調整すべき。(メディアプレイヤーは正方画素であることを期待して表示している) WinDVD等ではMPEG-1は窓時にはアスペクト比が適切になるように表示し、フルスクリーン時には画面いっぱいまで(アスペクト比 を無視して)表示する。 MPEG-2ではアスペクト比はピクセル単位ではなく画面比率で指定する(4:3とか16:9とか)のでメディアプレイヤーのフルスクリーン時 には4:3ソースでは隙間ができない。 720*480ソース(4:3)は実際に使われるのは704*480で、これが4:3になることを期待している。 よって704*480にクリップしてから352*240に落とすと、メディアプレイヤーのフルスクリーンでアスペクト比が 正しく表示されるようになる。 設定のビデオでのアスペクト比率は、ビデオストリーム中のピクセルのアスペクト比を指定するために使われる。 1:1は正方画素、4:3 525line(NTSC)は1.095となる。 この設定が正しくないとメディアプレイヤーのフルスクリーン時に正しく表示されない。 ・画像の配置 中央に表示  ソースのドットそのままに、上下左右を等量切り取る。あるいは等量の黒帯を入れる。 中央に表示(アスペクト保持)  ソースの上下か左右かのドットそのままにし、アスペクト比が正しくなるように左右か上下かを拡大・縮小して はみ出た部分を切り取る。あるいは余った部分を黒帯にする。 画面全体に表示  ソース全体が収まるように、上下と左右をそれぞれ隙間がないように拡大・縮小する。 画面全体に表示(アスペクト保持)  ソース全体が収まるように、上下と左右の比率を等しく拡大・縮小する。比率が変わるときには左右か上下かに黒帯が入る。 隙間なし  上下か左右かの足りないほうを隙間がなくなるまで拡大・縮小し、他方を同率で拡大縮小する。よって他方では元ソースの端が切れることになる。 7.一時ディレクトリ 可変ビットレート時には結構テンポラリドライブを使用する。 圧縮しているときに「ストリームへの書き込みエラー」が発生する場合には、 テンポラリドライブやMPEG ファイルの出力先ドライブの容量をチェックする。 8.デュアルプロセッサ対応 現在、フィルタリング部と MPEG エンコードの一部がマルチスレッド対応になっていると言っている。 動き検索などでは並列処理されているが、ノイズ除去などはされていない(のか?) 倍速を狙うのなら、TMPGEncを2つ立ち上げて別のエンコードを実行させている方がいい。 9.すべてのフレームにフィルタリングを施す(まだあるのか?) オンにするとフィルタリング後にフレームレート変換を行う。 10.異常なブロックノイズが出る、または再生時にフリーズ VBVバッファを増やしてみる。または自動設定。 11.VFW、DirectShow 通常は 外部フィルタ(VFAPI経由) DirectShow Video For Windows の順に画像取り出しを試みる。ソースによってはDirectShowやVFWを上にする必要があるかもしれない。 メニューの設定->環境設定->VFAPIプラグインの設定。 12.拡大縮小 拡大は直線補完、縮小は平均補完。そのため縮小はちょっとぼけちゃっている。 13.24fps化(フレームレート変換) 上にはフィールド単位の画面、下にはフィルタを施した拡大画面が表示されている。 14.インターレース解除 偶数あるいは奇数を選ぶと、縦の解像度(情報量)が半分になる。(ライン補完される?) 二重化は奇数ラインと偶数ラインを合成するが、モーションブラーがかかったようになる。 偶数・奇数は59.94フレーム化する。 15.I,P,Bフレーム挿入 次のように変化する。私は規則をはっきり言えるほど理解していない。 IBBPBBPのとき 3番目にI挿入 → IPIBBPBBP 3番目にP挿入 → IBPBBPBBP 3番目にB挿入 → IBBBPBBP 6番目にP挿入 → IBBPBPBBPBBP 6番目にB挿入 → IBBPBBBPBBP 16.コマンドライン TMPGEnc プロジェクト名 -encode -close 17.色調カスタム補正 YUV 4:1:1入力時にはYに対してU,Vが少ないため、白っぽくなってしまう。 YUVコントラスト設定でUとVを127位にし、YUV明るさでYを10位にするとオリジナルに近い感じになる。 18.MPEGツールのカット機能 最初がGOP単位、最後が0.1 sec.単位。 19.Multiplex buffer underflow! packet:xxxxxエラー ビットレートが低すぎる VBVバッファが小さすぎる 別のエンコーダで作ったMPEGを多重化しようとした 20.フレームの相対画質を指定する 相対画質の変更は指定したフレームが存在するGOP内での画質の上下が変わる。 値が大きいと画質がよくなるが、GOP内の他のフレームの画質が落ちる。 指定していないものは1(標準)になる。 21.システムストリームの形式 MPEG-2 SuperVideoCD (VBR)だけはビデオストリームにSVCD用の情報が入る。 他は形式を指定するのみでストリームに違いはない。 MPEG-1 Video-CD(規格外)は、合計ビットレートがVCD規格外のものを作りたいときに使う。 22.YCbCr値の再スケール カスタム色調補正で、種類にYUVを、方法にYCbCr値範囲補正を選んで、すべてのパラメータを 255にすると、Y値の範囲が16-235から0-255に伸張される。 23.システムストリーム形式 MPEG-1 Video-CDでは、VCDのビットレートになるように足りないときにはつめものを入れる。 MPEG-1 システム(自動)は、そのような処理は行われない。 ※VBRで最低ビットレートを指定したときにも、同様につめものが入ることがある。 24.キャプチャしたものをエンコードすると音がずれる(音が遅れる) キャプチャ時にこま落ちが発生していると、こうなる。TMPGEncでは落ちたこまは飛ばして(つめて)エンコードするため、 落ちた分だけ映像の方が短くなる。 簡単には直せない。落ちた部分で前後のフレームをコピーすればいいのだが、そのような処理はTMPGEncにはない。 (というか、TMPGEncではどこが落ちたのかの判定ができない) 25.YUVデータをCCIR601でなくBasicYCbCrで出力する 例えば元ソースのcodecでITU-R BT.601準拠にしておいた場合、チェックするとYC伸張なし、OFFにするとYC圧縮されてデコードするようになる。 元ソースの左右の黒い部分が16:16:16辺りならYC伸張せずにデコードされていて、0:0:0辺りならYC伸張されていると判断できる。 MPEG上のYCbCrデータはCCIR601にする必要がある。元々のソースが既にCCIR601形式(YC伸張なし)の時にはBasicYCbCr で出力(チェックする)し、BasicYCbCrで出してくる(YC伸張されている)ときにはCCIR601にすべき(チェックなし−デフォルト)。 ※AviUtlで「クリップボードに出力イメージをコピー」したものをペイントに貼り付けて、RGB値をチェックする。 25.5 CCIR-601逆スケール 16-235を0-255に変換する。 26.ソースファイルの部分にmux://E:\Movie\0001.mpg 再圧縮せずに結合させるのに使う。 27.エンコードを分散処理させる サーバ側 TMPGEnc.exe /mode:server クライアント TMPGEnc.exe /mode:client:192.168.1.1 28.量子化行列変更 途中でIフレームの量子化行列を変更した場合、以降変更するまで変更した行列となる。1GOPのみやグループが 切り替わるまでではない。 29.GOPの切り替え 全フレームを強制ピクチャタイプ指定した場合などには、TMPGEncはメモリを使いすぎたと判断したときなどにGOPを適宜区切る。 またIピクチャのたびにGOPを区切っている。 30.AVI出力 シーンチェンジ検出をONにして、Iピクチャが指定されたフレームをキーフレームにするチェックを入れると、 AVI出力時にもシーンチェンジでキーフレームになる。 31.24fps化のキャッシュ インストールディレクトリのcacheフォルダ下にできる。 再24fps化が必要になったときに再計算が少なくすむようになっている。 32.TMPGEncを完全削除したい インストール(展開)したディレクトリを消す。 ショートカットなどを作っていたのならそれも消す。 次のレジストリを消す。(都合により伏せる。) HKEY_CURRENT_USER\SOFTWARE\VFPluginのTMPGEncの項目 ....\{...}\ ※レジストリで変なものを消してしまうとWindowsの動作がおかしくなることがあるので注意。 AVI出力時に有効なのは、「ビデオ詳細」の全項目、「ビデオ」のサイズとフレームレート、「オーディオ」のサンプリング周波数とチャンネルモード、くらい TMPGEncには704x480の範囲に対してフレームアスペクト比を適用する  @4:3 525 line (NTSC,704x480)  A16:9 Display と、720x480のフルサイズに対してフレームアスペクト比を適用する  B4:3 525line(NTSC)  C16:9 525 line (NTSC) という各ソースアスペクト比設定があります。