【AviUtl】RGB・YUV動画の色を劣化させないコーデックの設定

AviUtlで、RGB・YUVな動画を読み込んで、

色を出来るだけ劣化させずに出力する設定方法などについてのメモ書きです。

スポンサーリンク

AviUtlの読み込み時の変換(挙動)

AviUtlでAVIファイルを読み込む際、

メニューの「ファイル」→「環境設定」→「コーデック設定」の色空間設定に従って読み込みます。(入力プラグインは「AVI/AVI2 File Reader」もしくは「AVI File Reader」)

コーデック設定1
  • YUY2で展開する
    →読み込んだ動画をYUY2で展開する。(YUY2で展開出来ない時はRGBで展開する)
  • YUY2で圧縮する
    →読み込んだ動画をYUY2で圧縮する。(YUY2で圧縮出来ない時はRGBで圧縮する) 
  • 圧縮の設定を保持する
    →編集を終了しても圧縮の設定を保持する。(codecによっては保持すると動作がおかしくなるかも・・?)

「YUY2で展開する」にチェックを入れていても、RGB動画を読み込んだ場合はRGBとして展開されます。

なので、RGB動画を読み込む場合にはチェックを気にする必要はありません

内部のフロー

RGBソースな場合

RGB動画を読み込んで、無劣化で編集する場合の流れ以下の様な感じになります。

rgb_murekka

「YC48」というのはAviUtl内部で使用されている色空間のことで、YUY2・RGBとそれぞれ可逆変換できます。

「コーデックの設定」は、先述したようにRGB動画の場合は、チェックがどうであれRGBとして読み込まれるので関係ありません。

「色変換(入力)」と「色変換(出力)」は、そもそもRGB→RGBで変換自体が行われないので関係ありません。

AviUtlのプレビューウィンドウには、内部のフィルタ処理後のYC48が、Bt601を用いてYC圧縮されるらしいです。

YUVソースな場合

YUV動画を読み込む場合には以下の様な流れになります。

yuv_nagare

「コーデックの設定」で「YUY2で展開する」にチェックが入っていると、YUY2として展開されます。(チェックが入ってなかったらRGBとして読み込んでしまうので、RGB→YUV→RGBみたいになるので色が劣化します)

また、YUY2として展開する際は、「色変換(入力)」の設定が用いられます。(Bt.601など)

x264guiExの場合は、YUY2→YU12という変換が必ず入るので色が劣化します。

読み込む際の注意点

RGBソースな場合

先述したように、RGB動画の場合は、「コーデック設定」などAviUtlの設定に関わらず、どのような場合でもRGBとして読み込まれます。

ただ、RGBのままエンコードしたい場合(例えば「未圧縮」など)には、「コーデック設定」の「YUY2で圧縮する」のチェックを外さないと内部データがYUY2に劣化してしまうので注意します。(RGB→YC48→YUY2→RGB)

RGBのまま無劣化編集したい際には、「YUY2で圧縮する」のチェックを外すの必須ということです。

2016-01-29_19h57_58

 

また、色を劣化させずに無劣化で編集したい場合には、フィルタ類は全てOFFにする必要があります。

2016-01-30_10h49_00

YUVソースな場合

YUVな動画を読み込む場合には、RGBとは逆に、「コーデック設定」のYUY2関係のチェックを全て付ける必要があります。

つけていないと、YUY→RGB→YC48→RGBみたいに劣化してしまいます。

コーデック設定1

今読み込んでる動画の色空間の確認方法

今読み込んでいる動画がどの色空間で読み込まれているかは、「その他」→「ファイル情報」から確認できます。

yuy2_frgb_f
▲YUY2として読み込まれている場合▲RGBとして読み込まれている場合

ここで「RGB」と書かれていたらRGBで読み込まれているということですし、YUY2と書かれていたらYUY2で読み込まれているということです。

※拡張編集から読み込んだ場合(拡張編集 File Reader)は、「YC48」と表示されてしまうので、「動画を読み込んだ際にどの色空間で展開されるか」が知りたい場合には、一旦AviUtl本体から動画を読み込めば確認できます。
yc48

UtVideoコーデックだけは特殊

UtVideoコーデックの場合は、RGB・YUVとそれぞれ色空間によってFourCCが分けられているので、「コーデックの設定」は意識する必要はありません。

例えば、RGBA・RGBには「YUY2で展開する」にチェックが入っていますが、これらは元々、YUY2での出力(デコード)はできない仕様になってるので、チェックの有無は関係ありません。(「YUY2で圧縮する」のチェックがグレーアウトしてるのは、 YUY2での入力ができない仕様だから)

なので、UtVideoソースな動画を使用して動画を出力する場合は、「コーデックの設定」については何も考えなくてOKです。

2016-01-29_19h46_36
※UtVideoの色空間の入出力形式については作者のブログにてまとめられています(或るプログラマの一生 » [UtVideo] 対応入出力フォーマット

具体的にどれだけ色が劣化するかサンプル

2chの「映像可逆圧縮総合スレ Part3」にて、

金の髭氏が「色を変換した際にどれだけ色が劣化するか」の分かり易いサンプル画像をアップされていたので、ここで転載します。

RGBをYUVでエンコードすると可逆じゃないよ (1)

▲RGB24からそれぞれUtVideoの「ULY2」「ULY0」にエンコしてどれだけ劣化したか示した画像

上下の違いは「コーデックの設定」の「YUY2圧縮する」がON(上)かOFF(下)かという点です。

  • 左上:「YUY2で圧縮する」ON、色空間 YUV422
    • RGB→YC48→YUY2ULY2(YUV422)
  • 左下:「YUY2で圧縮する」OFF、色空間 YUV422
    • RGB→YC48RGBULY2(YUV422)
  • 右上:「YUY2で圧縮する」ON、色空間 YUV420
    • RGB→YC48→YUY2ULY2(YUV420)
  • 右下:「YUY2で圧縮する」OFF、色空間 YUV420
    • RGB→YC48RGB→ULY2(YUV420)

※黄色部分で色が劣化します

 

RGB→ULY2(YUV422)の変換なんかは特に色の劣化が激しいので、

ダウンサンプリングフィルタなどを使用する事が色劣化をマシに出来ます。

 

 

このページの情報は以上です。

 

関連ストレート変換とYC伸長の違い【RGB・YUV】

関連【AviUtl】色変換の設定について【BT.601とBT.709】

コメント

タイトルとURLをコピーしました