YCBCR色空間

YCbCr、 Y’CbCrまたはYPb / CbPr / Crは 、 YC B C RまたはY’C B C Rとも呼ばれ、ビデオおよびデジタル写真のカラー画像パイプラインの一部として使用される色空間のファミリですシステム。 Y ‘は輝度成分であり、CBおよびCRは青差および赤差差成分である。 Y ‘(素数付き)は輝度であるYと区別され、ガンマ補正されたRGB原色に基づいて光強度が非線形に符号化されることを意味する。

Y’CbCr色空間は、関連するRGB色空間からの数学的座標変換によって定義される。 基礎をなすRGB色空間が絶対色である場合、Y’CbCr色空間も絶対色空間である。 逆に、RGB空間があまり定義されていない場合、Y’CbCrも同様です。

根拠
陰極線管ディスプレイは、赤色、緑色、および青色の電圧信号によって駆動されるが、これらのRGB信号は、冗長性が非常に大きいため、記憶および伝送の表現としては効率的ではない。

YCbCrおよびY’CbCrは、赤、緑および青におおよそ対応する原色が知覚的に有意義な情報に処理される色処理および知覚的均一性への実際的な近似である。 これを行うことにより、後続の画像/ビデオ処理、伝送および記憶が操作を行い、知覚的に意味のある方法でエラーを導入することができる。 Y’CbCrは、高解像度で格納することができる輝度信号(Y ‘)または高帯域幅で伝送することができる輝度信号(Y’)と、帯域幅を減らしたり、サブサンプリングしたり、圧縮したりすることができる2つのクロマ成分(CBおよびCR)改善されたシステム効率のために別々に処理される。

1つの実際的な例は、人間が白黒情報に対してより敏感であるため(「画像例」を参照)、「白黒」と比較して「カラー」に割り当てられた帯域幅または解像度を減少させることである。 これはクロマサブサンプリングと呼ばれます。

YCbCr
YCbCrはYCCと省略されることがあります。 Y’CbCrは、アナログコンポーネントビデオに使用される場合、YPbPrと呼ばれることが多いが、Y’CbCrという用語は、プライムの有無にかかわらず、両方のシステムで共通に使用される。

Y’CbCrはしばしばYUV色空間と混同され、一般にYCbCrとYUVという用語は互換的に使用され、混乱を招く。 主な違いは、YUVはアナログでYCbCrはデジタルであることです。

Y’CbCr信号は、YPbPrと呼ばれ、3つの定義された定数KR、KG、およびKBを使用して、対応するガンマ補正されたRGB(赤、緑および青)ソースから作成されます(スケーリングおよびオフセットの前に信号をデジタル形式にします)次のように:


R 、K G 、K Bは、通常、対応するRGB空間の定義から導出され、  。 (同等の行列操作は、しばしば「カラーマトリックス」と呼ばれます。)

ここで、素数記号はガンマ補正が使用されていることを意味し、 したがって、R ‘、G’およびB ‘は公称0から1の範囲であり、0は最小の強度(例えば、カラーブラックの表示用)および1(例えば、カラーホワイトの表示用)である。 結果として得られるルマ(Y)値は0から1までの公称範囲を有し、彩度(PBおよびPR)値は公称範囲-0.5から+0.5を有する。 逆変換処理は、上記の式を反転することによって容易に導き出すことができる。

デジタル形式で信号を表現する場合、結果はスケーリングされ、丸められ、通常はオフセットが加算されます。 例えば、仕様(例えば、MPEG-2)ごとにY ‘成分に適用されるスケーリングおよびオフセットは、8ビット表現を使用する場合には黒に対して16の値を、白に対して235の値をもたらす。 標準では、8ビットのデジタル化されたバージョンのCBとCRが16〜240の異なる範囲にスケールされています。したがって、カラーマトリックス処理を行うときには(235-16)/(240-16)= 219 /またはYCbCr空間で処理することによって、後続の処理がより高いビット深度を使用して実行されないときに量子化歪みを生じる。

入力データの公称範囲の表現に望ましいと思われるよりも小さいデジタル値範囲を使用するスケーリングは、望ましくないクリッピングを必要とせずに、処理中にある程度の「オーバーシュート」および「アンダーシュート」を可能にする。 この「ヘッドルーム」と「トゥールーム」は、xvYCCで指定された公称色域の拡張にも使用できます。

値235は255-235 = 20、または20 /(235-16)= 9.1%の黒から白への最大オーバーシュートに対応し、理論上の最大オーバーシュート(ギブス現象)の約8.9%最大ステップ。 トールームは小さく、わずか16/219 = 7.3%のオーバーシュートしかできず、理論上の最大オーバーシュート8.9%未満です。

YCbCrを定める方程式は、名目上のRGBカラーキューブ全体を回転させ、(より大きい)YCbCrカラーキューブに収まるように形成されるため、YCbCrカラーキューブ内の対応するRGBドメインでは表現できない点がいくつか存在する(少なくとも公称RGB範囲内にはない)。 これは、YCbCr信号を正しく解釈して表示する方法を決定する際にいくつかの困難を引き起こします。 これらの範囲外のYCbCr値は、BT.709ガマット外の色をエンコードするためにxvYCCによって使用されます。

RGBからYCbCrへの変換

ITU-R BT.601変換
デジタルコンポーネントビデオで使用するITU-R BT.601(以前のCCIR 601)規格の標準画質テレビ用に定義されたY’CbCrの形式は、対応するRGB空間から次のように導出されます。


上の定数と公式から、ITU-R BT.601では次のことが導かれます。

アナログR’G’B ‘からのアナログYPbPrは以下のようにして得られる:


デジタルY’CbCr(サンプルあたり8ビット)は、以下のようにアナログR’G’B ‘から得られます。


または単にコンポーネントごとに


得られる信号は、Y ‘(CbおよびCrの範囲は16〜240)に対して16〜235の範囲である。 0〜15の値はフットルームと呼ばれ、236〜255の値はヘッドルームと呼ばれます。

あるいは、デジタルY’CbCrは、以下の式に従ってデジタルR’dG’dB’d(1サンプルにつき8ビット、黒は0、黒は255)


上記の式では、スケーリング係数には  。 これにより分母の値256が可能になります。分母は1つのビットシフトで計算できます。

R’dG’dB’dデジタルソースがフットルームおよびヘッドルームを含む場合、フットルームオフセット16は各信号から最初に減算される必要があり、  方程式に含める必要があります。

逆変換は次のとおりです。


丸めのない逆変換(ITU-R BT.601推奨からの直接的な値を使用)は次のとおりです。


この形式のY’CbCrは、旧式のCRTの蛍光体放出特性に適合するRGBモデルを使用するため、旧式の標準精細度テレビジョンシステムで主に使用されます。

ITU-R BT.709変換
ITU-R BT.709標準では、主にHDTV用に異なる形式のY’CbCrが指定されています。 新しい形式は、コンピュータディスプレイ向けのアプリケーションでも使用されています。 この場合、KbとKrの値は異なりますが、それらを使用する式は同じです。 ITU-R BT.709の定数は次のとおりです。


この形式のY’CbCrは、より新しいCRTおよび他の近代的なディスプレイ装置の蛍光体放出特性により密接に適合するRGBモデルに基づいている。

R ‘、G’、B ‘信号の定義もBT.709とBT.601で異なり、使用されているテレビシステムのタイプ(PALとSECAMのように625ラインまたはNTSCのように525行)、他の仕様ではさらに異なります。 異なる設計では、R、G、およびB色度座標の定義、基準白色点、サポートされる色域範囲、RからR ‘、G’およびB ‘を導出するための正確なガンマ事前補償関数、 G、B、およびR’G’B ‘からY’CbCrへの変換中に適用されるスケーリングおよびオフセットに適用されます。 したがって、Y’CbCrをある形式から他の形式に適切に変換することは、1つの行列を反転してもう一方の行列を適用することだけではありません。 事実、Y’CbCrが理想的に設計されている場合、KB及びKRの値は、RGBカラー主信号の正確な仕様から導かれ、輝度(Y ‘)信号はガンマ調整された測定値(典型的には、色覚刺激に対する人間の視覚系の応答のCIE 1931測定値に基づく)。

ITU-R BT.2020変換
ITU-R BT.2020規格は、ガンマ補正されたY’CbCrと、YcCbcCrcと呼ばれるYCbCrの線形符号化バージョンの両方を定義している。 最優先事項が輝度情報の最も正確な保持である場合、YcCbcCrcを使用することができる。 YcCbcCrcの場合、係数は次のとおりです。


JPEG変換
JPEGのJFIF使用は、Y’CbCrをサポートします。ここで、Y ‘、CBおよびCRは、[0 … 255]の全8ビット範囲を持ちます。 以下は、精度の小数点以下6桁で表される変換式です。 (理想的な式については、ITU-T T.871を参照してください。)次の式では、各入力(R、G、B)の範囲も[0 … 255]の8ビットの完全な範囲です。


帰ってきた:

Y = 0.5のCbCr平面

Y = 0.5

注:Y = 0のとき、R、G、Bはすべてゼロでなければならないため、CbとCrはゼロにしかなりません。 同様に、Y = 1の場合、R、G、Bはすべて1でなければならないため、CbとCrはゼロにしかなりません。

R、G、Bとは異なり、Y、Cb、Crの値は独立していません。 YCbCr値を任意に選択することにより、ガマットから外れている、すなわち1.0より大きい、または0.0より小さいRGB値のうちの1つ以上につながる可能性がある。