コーデックの特性
 
非圧縮8bit 4:2:2コーデックのRGB→YUV変換
まずは、「非圧縮8bit 4:2:2」コーデックのRGB→YUV変換の仕組みについて、詳しく解説しましょう。
オリジナルイメージの4 × 2のピクセルパターンは

result444

でした。これをYUV4:4:4(間違いではありません。ここでは4:4:4です)に変換すると、各YUVチャンネルは以下のようになります。(※下図には、説明のためにA1/2/3/4、B1/2/3/4のピクセルインデックス番号が付いています。)



「非圧縮8bit 4:2:2」コーデックは「YUV4:2:2」なので、UV成分はY成分の半分のレゾリューションしか持てません。このコーデックは、縦に奇数目のラインにあるピクセルのUV情報だけをサンプリングして、UV成分を空間的に間引きします。



縦に奇数目のラインにあるピクセルのUV情報は、縦に偶数目のラインにあるピクセルのUV情報として転用されるので、結果、各YUVチャンネルは



となり、最終的に



となります。
縦に奇数目のラインにあるピクセル(A1/A3/B1/B3)は忠実に再現されますが、横に偶数目のラインにあるピクセル(A2/A4/B2/B4)のカラーは、オリジナルとまるで異なります。不理屈に思えるかも知れませんが、これがYUVのUV成分間引きによる、色情報欠損の実態です。


Photo JPEG 75%コーデック、DVCPRO 50コーデックのRGB→YUV変換
「Photo JPEG 75%」コーデック、「DVCPRO 50」コーデックは、「非圧縮8bit 4:2:2」コーデックと同じ、YUV4:2:2カラーサンプリング方式を採用しています。しかし、同じYUV4:2:2であるのに、「非圧縮8bit 4:2:2」コーデックによるエンコード結果と、「Photo JPEG 75%」「DVCPRO 50」コーデックによるエンコード結果は大きく異なっています。これはなぜでしょう?

UV成分の空間的間引きの手段として、「非圧縮8bit 4:2:2」コーデックが縦に奇数目のラインにあるピクセルのUV情報だけをサンプリングするのに対し、この2つのコーデックは、隣り合うピクセルのUV情報を平均化します。この手法は、「クロマインターポレーション」(クロマフィルタリングとも言う)と呼ばれます。



エンコード結果は



となります。
先の「非圧縮8bit 4:2:2」のケースでは、横に偶数目のラインにあるピクセル(A2/A4/B2/B4)のカラーがオリジナルとまるで異なりましたが、このケースでは、縦に奇数目のラインにあるピクセル(A1/A3/B1/B3)の再現性が犠牲になる代わりに、横に偶数目のラインにあるピクセル(A2/A4/B2/B4)の再現性が高まっています。非圧縮8bit 4:2:2のB2ピクセルでオリジナルイメージの緑が青に変化する現象、B4ピクセルで赤色が完全に欠損する現象と比べると、これらクロマインターポレーション処理を含むコーデックでは、完全ではなくてもオリジナルカラーが反映されやすくなっているのが分かります。今回の実験で使用している、ピクセルカラーが1つずつ極端に異なるイメージをソースとした結果は、あまり良いものに見えないかも知れませんが、元のソースが自然画の場合、クロマインターポレーションを行った方が、見た目に良い結果を出すことが多くあります。

「非圧縮8/10bit 4:2:2」互換を謳うサードパーティ製コーデックがいくつか存在しますが、それらの中には、このクロマインターポレーション処理を行うものがあります。「YUV4:2:2」で、かつ「非圧縮」という条件が同じでも、RGB->YUV変換に伴うクロマインターポレーション処理の有無が影響して、エンコード結果に違いが出る可能性があることを知っておくと良いでしょう。


DV/DVCPROコーデックのRGB→YUV変換
このコーデックは、「YUV4:1:1」なので、UV成分はY成分の1/4のレゾリューションしか持てません。また、このコーデックは、クロマインターポレーション処理を行います。



従って、エンコード結果は



となります。RGBソースの赤や緑、青といった色が消失し、とうとうモノクロームになってしまいます。(繰り返しになりますが、これは最悪のケースです。)

「DV/DVCPRO」コーデックは、今日のDV(デジタルビデオ)編集手法隆盛の礎を築いた素晴らしいテクノロジーであることは疑いはありませんが、一方で、このコーデックは、YUV4:1:1というUV情報の著しい欠損が生ずるカラーサンプリング方式であるが故、特にRGBソースを多用する制作環境には元来不向きなものです。

前回の記事にも記載したとおり、YUVは、いかに色彩情報を省略したことがバレにくいカラーモデルであるとはいえ、それは1秒間に数十コマの絵が連続的に流れる動画であることも前提にした話であって、今回の実験のように、RGBネイティブのイメージと、それをYUVエンコードした後のイメージを静止状態で見比べれば、その差は歴然、目で見て分かる違いが生じます。特にUV成分の間引き率の高いDV/DVCPROコーデックでは、その傾向が顕著となります。
Pro/Film&Video

コーデックの特性
1: QuickTimeコーデック
2: RGBソースをYUVコーデックでエンコードする時の特性
3: 各種コーデックによるRGB→YUV変換