ビデオエンコード(色空間)の話


 久しぶりにビデオエンコードにはまっている。手持ちのLDをDVD化しようというわけだ。しかしPCのエンコードの世界は奥が深いというか、いろんなことを知ってないと話にならないというか...しかもちゃんとまとまったページってのもほとんどないし。そんな中一応わかったことをまとめていく。一番の問題だと思われる色空間の話が中心である。
 アスペクト比とフィールドオーダーと合わせて3大難関と言われるが、720x480のトップフィールド先でキャプチャして、そのままエンコードすればDVDでは問題ないのでここでは触れない。

 ここではMonsterTV2(1.4.0.0)を使ってふぬああ(2.5.6.3)でhuffyuv(2.1.1)のAVIキャプチャして、aviutl(0.99)で編集して、TMPGEnc(2.5x)でエンコードするという方法を取っている。

 注:2004年1月までの話は参考になりません。2月以降を参照してください。


注:スケール変換を理解するためには、次のことを知っておく必要があります。
 どこでどのようにRGB-YUVの変換が行われているのかを考えていけば、判断できるでしょう。
  1. 普通PCでは、RGBはフルスケールで、YUVはCCIR-601に従って縮小したデータとして扱うことが多い。よってこのRGB-YUV間の変換においてスケール変換が行われる。
  2. CODECでは入出力のフォーマットが複数選べる。RGB、YUVなど。
  3. コーデックを使うアプリではフォーマットを指定して呼び出せる。
  4. PCでGDI画面に表示するときにはフルスケールのRGBで行われる。
  5. PCでビデオオーバレイを使うとYUV出力となる。

  しかしコーデックやビデオボードによってはスケール変換しないものがあります。
Canopus DV Codec、huffyuvS、PIC MJPEGなどはコーデックでのRGB-YUV変換でスケール変更しない。
nVidiaビデオボードなどはビデオオーバレイ(YUV)から画面に出すとき(RGB)にデフォルトではスケール変換しない。
SAA7130HLビデオキャプチャチップはYUVキャプチャ→RGBデータでスケール変換しない。
DVD2AVIやMPEG-2 VIDEO VFAPI Plug-Inなどでストレート変換を行った場合。
TMPGEncでBasic YCbCrをチェックした場合。


・2004年2月14日

 1月に書いた内容を見直し、おかしいところを書き直しておく。

・2004年2月13日

・2004年2月10日

・2004年2月8日

#aviutlでは展開(読み込み)や圧縮(保存)のときにYUY2とRGBとが選択できると教えてくれた方、ありがとうございます。またYUY2で色情報が損なわれていると問題があると言ってくれた方もありがとうございます。この方たちのsuggestionがなかったら、「民生用キャプチャなんてこんなものだ」と誤解したまま使っていたと思います。

この先は勘違いしていた時代のものです。よくある勘違いのようなので、そのまま残しておきます。

・2004年1月24日

・2004年1月23日

・2004年1月22日

・2004年1月21日

・2004年1月19日

#aviutlでは展開(読み込み)や圧縮(保存)のときにYUY2とRGBとが選択できると教えてくれた方、ありがとうございます。またYUY2で色情報が損なわれていると問題があると言ってくれた方もありがとうございます。この方たちのsuggestionがなかったら、「民生用キャプチャなんてこんなものだ」と誤解したまま使っていたと思います。

http://www10.plala.or.jp/p205tb16/colorspace.html

坂井瑞穂