YCbCr
https://gyazo.com/d40e16d3a82ad31411cbd21a5c5e00ce
YCbCr, Y'CbCrは、輝度信号1つ・色差信号2つで表現される色空間 輝度に対して色相の知覚的な重要度がそこまで高くないことから、 色差信号を輝度信号から切り出して、情報量をある程度落とすような使い方がよくされる $ Y'と表記されるとき、それはガンマ補正がかけられた輝度信号であることを示す 物理的にリニアな相対輝度を表す$ Yと区別して表現されるため、混同に注意 Y'UV
変換
code:latex
\begin{bmatrix} Y' \\ U \\ V \end{bmatrix} = \begin{bmatrix} 0.299 & 0.587 & 0.114 \\ -0.14713 & -0.28886 & 0.436 \\ 0.615 & -0.51499 & -0.10001 \end{bmatrix} \begin{bmatrix} R' \\ G' \\ B' \end{bmatrix}
code:latex
\begin{bmatrix} R' \\ G' \\ B' \end{bmatrix} = \begin{bmatrix} 1.0 & 0.0 & 1.13983 \\ 1.0 & -0.39465 & -0.58060 \\ 1.0 & 2.03211 & 0.0 \end{bmatrix} \begin{bmatrix} Y' \\ U \\ V \end{bmatrix}
Cbが青・Crが赤を表す
Cb・Crの値域は [-0.5, 0.5] となる
変換
code:latex
\begin{bmatrix} Y' \\ Cb \\ Cr \end{bmatrix} = \begin{bmatrix} 0.2126 & 0.7152 & 0.0722 \\ -0.114572 & -0.385428 & 0.5 \\ 0.5 & -0.454153 & -0.045847 \end{bmatrix} \begin{bmatrix} R' \\ G' \\ B' \end{bmatrix}
code:latex
\begin{bmatrix} R' \\ G' \\ B' \end{bmatrix} = \begin{bmatrix} 1.0 & 0.0 & 1.5748 \\ 1.0 & -0.187324 & -0.468124 \\ 1.0 & 1.8556 & 0.0 \end{bmatrix} \begin{bmatrix} Y' \\ Cb \\ Cr \end{bmatrix}
GLSL
code:glsl
const mat3 RGB2YCBCR = mat3(
0.2126, -0.114572, 0.5,
0.7152, -0.385428, -0.454153,
0.0722, 0.5, -0.045847
);
const mat3 YCBCR2RGB = mat3(
1.0, 1.0, 1.0,
0.0, -0.187324, 1.8556,
1.5748, -0.468124, 0.0
);