Navigation Log - なびろぐ -
2003/10/08

...X680x0 spirit inside...

この日記はGNSで生成しています。
この日記の画像はOPTPiX webDesigner Ver.4で生成しています。

hauN
Go amazon.co.jp

■ご注文リストから■ [一覧]
■Amazonギフト券■ [購入]
P/ECE HAND BOOK〈Vol.2〉 [本]
P/ECE HAND...
Amazonほしい物リスト


2003/10/08 (水)

RGB24とYUY2(YUV422)

_ AviUtlとTMPGEncでのDivX出力したファイルサイズに差が出る。AviUtlの[ファイル]-[環境設定]-[コーデック設定]で、DivXの[YUY2で圧縮する]をON/OFFして比べるとわかる。デフォルトはONのはず。

_ このオプションがONのときは、AviUtlはDivXエンコーダにYUY2(YUV422)形式で映像を送る(OFFのときはRGB24で送る模様)。YUY2(YUV422)は隣り合った2ピクセルを合計32bitで表現する形式であり、RGB24に比べると情報量は2/3になる。この削減された情報の分だけ、DivXエンコード後のサイズが小さくなるというわけ*1。ちなみにTMPGEncはRGB24でしか出力を行わない模様。

*1: もちろん、符号圧縮や動き圧縮の分があるので、DivXエンコード結果そのものが2/3になるわけではない。DivXに入力される映像の情報量が2/3になるということ。

_ 以上をもっとわかりやすく確認する方法として、HuffYUVでエンコードしてみる手がある。AviUtlでHuffYUV出力の際に、上記のコーデック設定をON/OFFしてみることで、劇的にサイズが変化するのがわかるはず。これは、HuffYUVの動作が以下のようになっているから。

[YUY2で圧縮する] = OFF
  1. AviUtlがRGB24で出力
  2. HuffYUVへRGB24で入力
  3. HuffYUVが2.をYUV444(1ピクセルを24bitで表現するYUV形式)に変換
  4. 3.をHuffman圧縮
[YUY2で圧縮する] = ON
  1. AviUtlがRGB24をYUY2(YUV422)(2ピクセルを32bitで表現するYUV形式)に変換
  2. AviUtlが1.を出力
  3. HuffYUVへYUY2(YUV422)で入力
  4. 3.をHuffman圧縮

_ つまり、「[YUY2で圧縮する]をONにする」ということは、「RGB24からYUY2(YUV422)に減色した結果をエンコーダに流す」と考えていい*2。だから、サイズが小さくなるんですな。もちろん、小さくなった分の結果は画質に現れる・・・端的に言うと劣化している・・・実際はそれほど気にならないけど・・・ことはお忘れなきよう。

*2: AviUtlに入力された映像のピクセル形式がYUY2(YUV422)だった場合は、上記のようにはならない。ただし、今回の話においては「TMPGEncの結果をAviUtlに入力する」=「映像のピクセル形式は常にRGB24」である。


[URL] [View Log()] [Trackback]
Name: Comment:



メールはこちらへ...[後藤浩昭 / Hiroaki GOTO / GORRY / gorry@hauN.org]

「表紙へ戻る」
「会議室」 「最新版」 「なびろぐindex」 「GNSソースを読む」