YCoCg

YCoCgカラーモデルは、関連付けられたRGBカラースペースをルマ値(Yとして示す)とクロミナンスグリーン(Cg)およびクロミナンスオレンジ(Co)と呼ばれる2つのクロマ値に単純に変換して形成される色空間です。 H.264 / MPEG-4 AVC、HEVC、JPEG XR、Diracなどのビデオおよび画像圧縮のデザインでは、計算が簡単で、変換コーディングのゲインが高く、RGBとの間で無損失に変換できるため、サポートされています他のカラーモデルで必要とされるビット数より少ないビット数で処理できます。

プロパティ
YCoCgカラーモデルがYCbCrカラーモデルよりも優れている点は、より単純で高速な計算、圧縮性能を向上させるためのカラープレーンの無相関化、正確には可逆の可逆性です。

RGBカラーモデルによる変換
YCoCgカラーモデルの3つの値は、RGBカラーモデルの3つのカラー値から次のように計算されます。


YCbCrのような “YCC”カラーモデルでは典型的であるように、Yの値は0から1までの範囲にあり、CgおよびCoは-0.5から0.5の範囲にある。 例えば、純粋な赤はRGBシステムでは(1,0,0)と、YCgCoシステムでは(1/4、 – 1 / 4,1 / 2 )と表されます。しかし、変換行列の係数単純な2進数であるため、他のYCC変換よりも計算が容易です。 ビット深度nのRGB信号の場合、得られた信号はnビットに丸められるか、この形式でデータを処理するときにn + 2ビットになります(ただし、n + 1ビットはCoで十分です)。

逆行列は、YCoCgカラーモデルからRGBカラーモデルに変換されます。


逆変換を実行するには、実数値の係数を使用せずに、2つの加算と2つの減算のみが必要です。

tmp = Y-Cg;
R = tmp + Co;
G = Y + Cg;
B = tmp-Co;

リフティングベースのYCoCg-Rバリエーション
YCoCg-Rと呼ばれることもある(「-R」は可逆性を指す)変換のスケーリングされたバージョンは、ビット深度を減らして効率的に実装できます。 スケーリングされたバージョンは、3つのカラーコンポーネントのビット深度を最小限に抑えながら、リフティングスキームを使用して正確に反転可能にします。 ビット深度nのRGB信号の場合、YCoCg-Rを使用する場合のY信号のビット深度はnになり、通常のYCoCgとは対照的に、CoおよびCgのビット深度はn + 2になりますCoの場合はYとCg、n + 1ビット

ここで、Yの可能な値は[0,1]のままであるが、CoおよびCgの可能な値は[-1、1]にある。

RGBからYCoCg-Rへの変換は次のようになります。

Co = R-Bである。
tmp = B + Co / 2;
Cg = G-tmp;
Y = tmp + Cg / 2;
YCoCg-RからRGBへの変換は次のようになります。

tmp = Y-Cg / 2;
G = Cg + tmp;
B = tmp-Co / 2;
R = B + Co;