YCbCr

YCbCr 색공간의 시각화
YCbCr은 영상 시스템에서 사용되는 색공간의 일종이다. Y는 휘도 성분이며 Cb 와 Cr 은 색차 성분이다. YCbCr 은 가끔 YCC라고 줄여 부르기도 한다. YCbCr 은 절대 색공간 이 아니며 RGB 정보를 인코딩하는 방식의 하나로, 실제로 보이는 이미지의 색은 신호를 디스플레이 하기 위해 사용된 원본 RGB 정보에 의존한다. 따라서 YCbCr 로 표현된 값은 표준 RGB 색상이 사용된 경우거나, 색상을 변환하기 위해 사용할 ICC 프로파일을 첨부한 경우에만 예측할 수 있다.
(신호를 디지털 형식으로 변경하기 위해 스케일링과 오프셋 조정 단계를 거치기 이전의) YCbCr 신호는 YPbPr 이라고 하며, 이것은 감마 보정된 RGB 원본 영상에서 Kb 와 Kr이라는 두가지 상수를 이용하여 다음과 같은 공식을 통해 얻을 수 있다:
YPbPr (analog version of YCbCr) from R'G'B'
====================================================
{\begin{aligned}Y'&=K_{R}\cdot R'+K_{G}\cdot G'+K_{B}\cdot B'\\P_{B}&={\frac {1}{2}}\cdot {\frac {B'-Y'}{1-K_{B}}}\\P_{R}&={\frac {1}{2}}\cdot {\frac {R'-Y'}{1-K_{R}}}\end{aligned}}
....................................................
R', G', B' in [0; 1]
Y' in [0; 1]
Pb in [-0.5; 0.5]
Pr in [-0.5; 0.5]
Kb 와 Kr 은 일반적으로 해당 RGB 공간의 정의에서 도출된다. 위에서 프라임 (') 기호는 감마 보정되었음을 의미한다; 즉 R', G', B'는 0 과 1 사이의 값을 가지며 0 은 최솟값(즉, 영상에서는 검은색)을 1 은 최댓값(영상에서는 흰색)을 의미한다. 결과 휘도값(Y)의 범위는 0부터 1 사이이며, 색차값(Cb 와 Cr)은 -0.5에서 +0.5 사이의 값을 가진다. 이에 대한 역변환 과정은 위의 공식에서 바로 도출할 수 있다.
신호를 디지털 형식으로 표현할 때 결과값은 스케일링되고 반올림되며 일반적으로 오프셋이 추가된다. 예를 들어, 스케일링과 오프셋을 적용한 Y' 컴포넌트의 결과값은 8 비트 형식을 사용할 때 검은색이 16, 흰색이 235가 된다.
디지털 표준 텔레비전에 사용되는 YCbCr 형식은 ITU-R BT.601 (이전에는 CCIR 601 이라 불리었음) 표준에 정의되어 있으며 RGB 공간에서 다음과 같은 계수를 사용하여 디지털 컴포넌트 비디오 형식으로 변환한다:
Kb = 0.114
Kr = 0.299
위의 상수값과 공식을 통해 ITU-R BT.601 은 다음과 같이 표기할 수 있다: 먼저 아날로그 YPbPr:
YPbPr (ITU-R BT.601)
========================================================
Y' =     + 0.299    * R' + 0.587    * G' + 0.114    * B'
Pb =     - 0.168736 * R' - 0.331264 * G' + 0.5      * B'
Pr =     + 0.5      * R' - 0.418688 * G' - 0.081312 * B'
........................................................
R', G', B' in [0; 1]
Y' in [0; 1]
Pb in [-0.5; 0.5]
Pr in [-0.5; 0.5]
다음엔 YCbCr 로 디지털화한다:
YCbCr (601) from R'G'B'
========================================================
Y' = 16  +  65.481  * R' + 128.553  * G' +  24.966  * B'
Cb = 128 -  37.797  * R' -  74.203  * G' + 112.0    * B'
Cr = 128 + 112.0    * R' -  93.786  * G' -  18.214  * B'
........................................................
R', G', B' in [0; 1]
Y'               in {16, 17, ..., 235}
   with footroom in {1, 2, ..., 15}
        headroom in {236, 237, ..., 254}
        sync.    in {0, 255}
Cb, Cr           in {16, 17, ..., 240}
만약 R', G', B' 가 8 비트의 디지털값으로 주어진다면:
YCbCr (601) from "digital 8-bit R'G'B'  "
========================================================================
Y' = 16  + 1/256 * (   65.738  * R'd +  129.057  * G'd +  25.064  * B'd)
Cb = 128 + 1/256 * ( - 37.945  * R'd -   74.494  * G'd + 112.439  * B'd)
Cr = 128 + 1/256 * (  112.439  * R'd -   94.154  * G'd -  18.285  * B'd)
........................................................................
R'd, G'd, B'd in {0, 1, 2, ..., 255}
Y'               in {16, 17, ..., 235}
   with footroom in {1, 2, ..., 15}
        headroom in {236, 237, ..., 254}
        sync.    in {0, 255}
Cb, Cr           in {16, 17, ..., 240}
이 YCbCr 형식은 주로 예전의 디지털 표준 텔레비전 시스템을 위해 사용된 것이며, 예전 CRT의 형광체 발산 특성에 맞는 RGB 모델을 사용한다.
또 다른 형식의 YCbCr 은 ITU-R BT.709 표준에서 정의되었으며 주로 디지털 고선명 텔레비전에서 사용되고 있다. 새 형식은 몇가지 컴퓨터 디스플레이용 응용 프로그램에서도 사용되고 있다. 이 경우, Kb 와 Kr 의 값은 다르지만 공식은 동일하다. ITU-R BT.709에서 정의한 상수의 값은 다음과 같다:
Kb = 0.0722
Kr = 0.2126
이 형식의 YCbCr 은 새로운 CRT 와 LCD, PDP와 같은 다른 최신 디스플레이 장치의 형광체 발산 특성에 더 잘 맞는 RGB 모델을 기반으로 한다. BT.601 과 BT.709에서 정의한 R', G', B' 신호의 값이 다르다는 것을 참고하라.