YCbCr
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
YCbCr은 디지털 영상 및 비디오에서 사용되는 색 공간으로, RGB 색상 신호를 저장 및 전송하는 데 효율적인 방식으로 변환한다. YCbCr은 루마 신호(Y')와 두 개의 크로마 성분(Cb, Cr)으로 구성되며, 크로마 서브샘플링을 통해 대역폭을 줄여 압축 효율을 높인다. YCbCr은 YUV, YPbPr 등과 혼용되기도 하며, ITU-R BT.601, BT.709, BT.2020, SMPTE 240M, JPEG 등 다양한 표준에 따라 변환 공식이 정의된다. 디지털 영상 압축 및 방송 시스템 등 다양한 분야에서 활용된다.
더 읽어볼만한 페이지
YCbCr | |
---|---|
색 공간 정보 | |
종류 | 디지털 색 공간 계열 |
용도 | 비디오 및 이미지 압축 전송 저장 |
구성 요소 | |
Y | 휘도 (밝기) 성분 |
Cb | 청색-차 성분 (색차) |
Cr | 적색-차 성분 (색차) |
설명 | |
Y 성분 | 흑백 텔레비전에서도 사용 가능 |
Cr과 Cb 성분 | 색상 정보 전달 |
활용 | |
비디오 시스템 | PAL SECAM NTSC |
관련 표준 | ITU-R BT.601 ITU-R BT.709 ITU-R BT.2020 |
변환 | |
RGB와의 변환 | RGB 신호에서 계산 가능 |
변환 방정식 | 표준에 따라 다양한 변환 방정식 존재 |
하위 종류 | |
예시 | YCgCo ICtCp |
2. YCbCr 색 공간의 원리 및 변환
YCbCr 색 공간은 RGB 색 공간을 기반으로 하며, 밝기 정보와 색차 정보를 분리하여 저장하고 처리하는 방식이다. 음극선관(CRT) 디스플레이는 빨강, 녹색, 파랑 전압 신호로 구동되지만, 이러한 RGB 신호는 저장 및 전송에 효율적이지 않은데, 이는 상당한 중복성을 가지고 있기 때문이다.
YCbCr 및 Y′CbCr은 색상 처리 및 지각적 균일성에 대한 실용적인 근사치이며, 빨강, 녹색, 파랑에 해당하는 기본 색상을 지각적으로 의미 있는 정보로 처리한다. 이를 통해 이미지/비디오 처리, 전송 및 저장이 지각적으로 의미 있는 방식으로 수행될 수 있다. Y′CbCr은 루마 신호(Y′)와 두 개의 크로마 성분(CB 및 CR)을 분리한다. 루마 신호는 고해상도로 저장하거나 높은 대역폭으로 전송할 수 있으며, 크로마 성분은 대역폭 감소, 서브샘플링, 압축 등을 통해 시스템 효율성을 개선할 수 있다.
인간은 흑백 정보에 더 민감하기 때문에, "색상"에 비해 "흑백"에 할당되는 대역폭이나 해상도를 줄이는 크로마 서브샘플링을 적용하기도 한다.
2. 1. RGB와의 관계
YCbCr 신호는 감마 보정된 RGB 소스에서 생성되며, 세 가지 상수 KR, KG, KB를 사용하여 다음과 같이 계산된다.:
여기서 KR, KG, KB는 RGB 색 공간 정의에서 파생되며, 을 만족해야 한다. 이 변환은 "색상 행렬"이라고 불리는 행렬 연산으로 표현할 수 있다.
:
역변환은 다음과 같다.
:
여기서 R', G', B'는 감마 보정이 적용된 값으로, 0(검정)에서 1(흰색) 사이의 범위를 가진다. 결과적인 루마(Y) 값은 0에서 1 사이, 크로마(PB 및 PR) 값은 -0.5에서 +0.5 사이의 범위를 가진다.

2. 2. YPbPr과의 관계
YCbCr은 때때로 '''YCC'''로 축약되기도 한다.일반적으로 Y′CbCr, YCbCr, YPbPr 및 YUV 용어는 상호 교환적으로 사용되어 혼란을 야기하기도 한다. 주요 차이점은 YPbPr은 아날로그 비디오 이미지에 사용되고 YCbCr은 디지털 이미지에 사용된다는 것이다. YUV로 변환할 때 Umax 및 Vmax에 대한 서로 다른 스케일링 값(YCbCr에서 둘 다 )을 갖는다는 점과, Y′CbCr과 YCbCr은 감마 보정 여부에 따라 다르다는 점 또한 차이점이다.
아래 방정식은 이러한 형식 간의 일반적인 원칙과 일반적인 차이점을 더 잘 보여준다.[1]
2. 3. 변환 공식
YCbCr 신호는 (디지털 형식으로 만들기 위해 스케일링 및 오프셋을 적용하기 전) YPbPr이라고 하며, 감마 보정된 RGB (빨강, 녹색, 파랑) 소스로부터 세 개의 상수 KR, KG, KB를 사용하여 다음과 같이 만들어진다.:
여기서 KR, KG, KB는 보통 해당 RGB 공간의 정의에서 유도되며, 을 만족해야 한다. 이와 동등한 행렬 연산은 "색상 행렬"이라고도 한다.
:
역행렬은 다음과 같다.
:
여기서 작은따옴표(′)는 감마 보정이 사용됨을 의미한다. R′, G′, B′는 명목상 0(최소 강도, 예: 검정)에서 1(최대 강도, 예: 흰색)까지의 값을 가진다. 결과 Y(루마) 값은 명목상 0에서 1까지, PB 및 PR (크로마) 값은 명목상 -0.5에서 +0.5까지의 범위를 가진다.
디지털 형태로 신호를 표현할 때, 결과는 스케일링, 반올림되고, 오프셋이 추가된다. 예를 들어 MPEG-2[2]에서 Y′ 구성 요소에 적용되는 스케일링 및 오프셋은 8비트 표현에서 검은색은 16, 흰색은 235 값을 갖도록 한다. CB 및 CR의 8비트 디지털 버전은 16에서 240까지의 범위로 스케일링된다.
RGB 색 공간에서 YCbCr 색 공간으로 변환하는 공식은 여러 표준에 따라 다양하게 존재한다. 주요 표준으로는 다음이 있다.
- ITU-R BT.601
- ITU-R BT.709
- ITU-R BT.2020
- SMPTE 240M
- JPEG
2. 3. 1. ITU-R BT.601 변환
ITU-R BT.601(구 CCIR 601) 표준에서 정의된 Y′CbCr 형식은 디지털 컴포넌트 비디오와 함께 사용하기 위해 해당 RGB 색 공간(ITU-R BT.470-6 시스템 M 기본 색상)에서 파생된다.:
위의 상수와 공식을 통해 ITU-R BT.601에 대해 다음을 도출할 수 있다.
아날로그 R'G'B'에서 아날로그 YPbPr은 다음과 같이 파생된다.
:
디지털 Y′CbCr(샘플당 8비트)은 다음과 같이 아날로그 R'G'B'에서 파생된다.
:
또는 간단히 성분별로 표현하면 다음과 같다.
:
결과 신호는 Y′의 경우 16에서 235까지이며(Cb 및 Cr은 16에서 240까지), 0에서 15까지의 값을 "풋룸", 236에서 255까지의 값을 "헤드룸"이라고 한다. Y 및 Cb, Cr에 대해 다른 동일한 정량화 범위도 BT.2020 및 BT.709에 적용된다.
또는 디지털 Y′CbCr은 다음과 같은 방정식에 따라 디지털 R'dG'dB'd(샘플당 8비트, 각 구성 요소는 검은색을 나타내는 0과 흰색을 나타내는 255를 사용하여 전체 범위를 사용)에서 파생될 수 있다.
:
아래 공식에서 스케일링 팩터는 로 곱해진다. 이렇게 하면 분모에 256 값이 허용되며, 이는 단일 비트 시프트로 계산할 수 있다.
:
R'd G'd B'd 디지털 소스에 풋룸 및 헤드룸이 포함된 경우, 풋룸 오프셋 16을 먼저 각 신호에서 빼야 하며, 의 스케일 팩터를 방정식에 포함해야 한다.
역변환은 다음과 같다.
:
반올림 없이(ITU-R BT.601 권고안에서 직접 가져온 값 사용) 역변환은 다음과 같다.
:
이러한 형태의 Y′CbCr은 주로 이전 CRT의 형광체 방출 특성에 맞는 RGB 모델을 사용하므로 오래된 표준 화질 텔레비전 시스템에 사용된다.
2. 3. 2. ITU-R BT.709 변환
Y′CbCr의 다른 형태는 주로 HDTV 사용을 위해 ITU-R BT.709 표준에 지정되어 있다. 새로운 형태는 sRGB와 같이 일부 컴퓨터 디스플레이 지향 응용 프로그램에서도 사용된다(sRGB 형태의 YCbCr에 사용되는 매트릭스인 sYCC는 여전히 BT.601이다). 이 경우, KB와 KR의 값은 다르지만, 이를 사용하는 공식은 동일하다. ITU-R BT.709의 경우, 상수는 다음과 같다.
:KB = 0.0722
:KR = 0.2126
:(KG = 1 - KB - KR = 0.7152)
이 형태의 Y′CbCr은 새로운 CRT와 다른 현대적 디스플레이 장비의 형광체 방출 특성에 더 잘 맞는 RGB 모델을 기반으로 한다.
BT.709의 변환 행렬은 다음과 같다.
:
:
R', G', B' 신호의 정의 또한 BT.709와 BT.601 간에 다르며, 사용 중인 TV 시스템의 유형(PAL 및 SECAM과 같은 625 라인 또는 NTSC와 같은 525 라인)에 따라 BT.601 내에서도 다르며, 다른 사양에서도 추가로 다르다. 다른 설계에서는 R, G 및 B 색도 좌표의 정의, 기준 백색점, 지원되는 색상 영역 범위, R, G 및 B에서 R', G' 및 B'를 파생하기 위한 정확한 감마 사전 보정 기능, 그리고 R'G'B'에서 Y′CbCr로 변환하는 동안 적용할 스케일링 및 오프셋에 차이가 있다. 따라서 한 형태에서 다른 형태로 Y′CbCr을 제대로 변환하는 것은 단순히 한 행렬을 반전시키고 다른 행렬을 적용하는 문제가 아니다. 사실, Y′CbCr이 이상적으로 설계되었을 때, KB 및 KR의 값은 RGB 색상 기본 신호의 정확한 사양에서 파생되어 휘도(Y′) 신호가 감마 조정된 휘도 측정값(일반적으로 인간 시각 시스템의 색상 자극에 대한 CIE 1931 측정값을 기반으로 함)에 가능한 한 가깝게 대응한다.[4]
2. 3. 3. ITU-R BT.2020 변환
ITU-R BT.2020 표준은 BT.709와 동일한 감마 함수를 사용하며, 비-상수 휘도(Non-constant luminance, NCL) Y'CbCr과 상수 휘도(Constant luminance, CL) Y'cCbcCrc를 정의한다.[5]두 경우 모두 기본 색상에서 파생된 계수는 다음과 같다.
KB | KR | KG |
---|---|---|
0.0593 | 0.2627 | 0.6780 |
- NCL의 정의: ; ;
- NCL 디코딩 행렬 (소수점 14자리):
:
행렬의 작은 값은 반올림되지 않은 정확한 값이다. 정밀도가 제한된 시스템(예: 8비트 또는 10비트)에서는 소수점 이하 6자리 등 낮은 정밀도의 행렬을 사용할 수 있다.[6]
- CL (YcCbcCrc) 정의:
- (선형 RGB에서 계산된 실제 휘도에 적용된 감마 함수)
- 인 경우 , 그렇지 않으면 . (와 는 색상 영역에 해당하는 의 이론적 최소 및 최대값, 반올림된 "실용적인" 값은 , )
- 인 경우 , 그렇지 않으면 . (과 은 이론적 한계, 반올림된 값은 , )
CL 함수는 휘도 보존이 가장 중요한 경우나 "전송을 위해 향상된 코딩 효율성을 기대하는 경우"에 사용할 수 있다. ITU-R 보고서 BT.2246에 따르면 CL은 압축 효율성과 휘도 보존을 개선했지만, NCL은 HDTV YCbCr에서 색상 혼합 및 기타 제작 관행을 처리한 직원이 더 익숙할 것이라고 명시한다.[5][7]
BT.2020은 PQ와 HDR을 정의하지 않으며, 이는 BT.2100과 SMPTE ST 2084에서 더 자세히 정의된다. BT.2100은 "거의 상수 휘도"인 ICTCP의 사용을 도입할 것이다.[8]
2. 3. 4. SMPTE 240M 변환
SMPTE 240M 표준(MUSE 아날로그 HD 텔레비전 시스템에서 사용됨)은 다음 계수를 사용하여 YCC를 정의한다.[1]:
:
이 계수는 240M 표준에 사용된 SMPTE 170M 기본 색상과 백색점에서 파생된다.[1]
2. 3. 5. JPEG 변환
JPEG의 JFIF 사용은 수정된 Rec. 601 Y′CbCr을 지원하며, 여기서 Y′, CB 및 CR은 [0...255]의 전체 8비트 범위를 갖는다.[9] 다음은 정밀도 여섯 자리로 표현된 변환 방정식이다. (이상적인 방정식은 ITU-T T.871을 참조).[10]다음 공식에서 각 입력(R, G, B)의 범위도 [0...255]의 전체 8비트 범위이다.
:Y′ = 0 + (0.299 × R′D) + (0.587 × G′D) + (0.114 × B′D)
:CB = 128 − (0.168736 × R′D) − (0.331264 × G′D) + (0.5 × B′D)
:CR = 128 + (0.5 × R′D) − (0.418688 × G′D) − (0.081312 × B′D)
위를 통해 변환된 값은 다음을 통해 다시 되돌릴 수 있다.
:R′D = Y′ + 1.402 × (CR−128)
:G′D = Y′ − 0.344136 × (CB−128) − 0.714136 × (CR−128)
:B′D = Y′ + 1.772 × (CB−128)
위의 변환은 입력이 sRGB로 주어질 때 sYCC와 동일하며, IEC 61966-2-1:1999/Amd1:2003은 소수점 4자리만 제공한다는 점이 다르다.
3. YCbCr 색 공간의 활용
MPEG-2[2] 같은 표준에서는 8비트 표현을 사용할 때 Y′ 구성 요소에 대해 검은색은 16, 흰색은 235 값을 갖도록 스케일링 및 오프셋을 적용한다. CB 및 CR은 16에서 240까지의 범위로 스케일링된다. YCbCr 공간에서 색상 처리 시 (235-16)/(240-16) = 219/224의 분수로 다시 스케일링해야 하는 경우가 있는데, 이는 후속 처리가 더 높은 비트 심도에서 수행되지 않으면 양자화 왜곡을 유발할 수 있다.
이러한 스케일링은 처리 중 "오버슛"과 "언더슛"을 허용하여 클리핑을 방지한다. 또한 "헤드룸"과 "투룸"[3]은 xvYCC에서 지정한 대로 공칭 색상 색영역을 확장하는 데 사용될 수 있다.
값 235는 최대 (255 - 235) / (235 - 16) = 9.1%의 오버슛을 허용하는데, 이는 이론적 최대 오버슛 (깁스 현상)인 약 8.9%보다 약간 크다. 투룸은 16 / 219 = 7.3% 오버슛만 허용하여 이론적 최대 오버슛보다 작다. HDMI에서는 값 0과 255가 예약되어 있어 실제 사용 가능한 공간은 더 적다.
3. 1. 디지털 영상 및 비디오 압축
YCbCr 색 공간은 밝기 정보(Y)와 색차 정보(Cb, Cr)를 분리하여 영상 및 비디오 압축에 효율적으로 사용된다. 인간의 시각 시스템이 색차 정보보다 밝기 정보에 더 민감하다는 점을 이용하여, 색차 정보의 해상도를 낮추는 크로마 서브샘플링 기법을 적용한다. 이를 통해 화질 저하를 최소화하면서 압축률을 크게 높일 수 있다.[13]디지털 구현에서 RGB → Y′UV 변환은 대부분 정수 연산을 사용하며, 특히 고정 소수점 근사를 사용한다. 이는 계산 속도를 향상시키기 위한 절충안으로, 마지막 이진 숫자 정도의 정밀도 손실이 발생할 수 있다.
Y′ 값은 일반적으로 [16, 235] 범위(스튜디오 스윙 또는 "TV 레벨")로 조정되며, U 및 V 값은 128을 더해 항상 양수가 되도록 한다. 이러한 범위는 비디오 편집 및 제작 과정에서 중요하다.[13]
RGB 파일은 픽셀당 8, 12, 16 또는 24비트로 인코딩될 수 있다. 픽셀당 24비트인 RGB888의 표준 바이트 형식은 `r0, g0, b0, r1, g1, b1, ...`이다.
YCbCr 패킹 픽셀 형식은 "YUV"라고도 불리며, 픽셀당 12, 16 또는 24비트로 인코딩될 수 있다. 서브샘플링에 따라 4:4:4, 4:2:2, 4:2:0 등으로 나뉜다. 실제 파일 형식에서는 4:2:0이 가장 일반적이며, 데이터가 더 축소되고 파일 확장자는 ".YUV"이다.[15][16]
- 4:4:4: 픽셀 그룹화가 수행되지 않으며, 각 채널에 할당된 비트 수와 배열에 따라 달라진다.
- 4:2:2: 2개의 픽셀을 수평으로 그룹화한다. YUY2 ( `y0, u, y1, v` )와 UYVY ( `u, y0, v, y1` ) 두 가지 배열이 있다.
- 4:1:1: 거의 사용되지 않으며, 픽셀은 가로 4개 그룹으로 구성된다.[16]
- 4:2:0: 매우 흔하게 사용되며, IMC2, IMC4, YV12, NV12 등의 형식이 있다. 이들은 모두 "평면" 형식을 사용하여 Y, U, V 값이 섞이지 않고 함께 그룹화된다. 픽셀당 12비트를 사용한다.[16]
- IMC2: 전체 이미지를 Y로 배치한 후, 각 크로마 라인을 V0 ... Vn, U0 ... Un 순서로 배열한다.
- IMC4: IMC2와 유사하지만 U0 ... Un, V0 ... Vn 순서로 배열된다.
- I420: 전체 Y 이미지를 먼저 기록한 다음 U 이미지, V 이미지를 기록한다.
참조
[1]
웹사이트
Full Non-Branded Delivery Specification v9.2
https://partnerhelp.[...]
2022-09-24
[2]
문서
e.g. the [[MPEG-2]] specification, ITU-T [[H.262]] 2000 E pg. 44
[3]
웹사이트
MFNominalRange (mfobjects.h) - Win32 apps
https://docs.microso[...]
2020-11-10
[4]
서적
Digital Video and HDTV
Morgan Kaufmann
[5]
뉴스
BT.2020 : Parameter values for ultra-high definition television systems for production and international programme exchange
https://www.itu.int/[...]
International Telecommunication Union
2014-09-08
[6]
웹사이트
ITU-T H Suppl. 18
https://www.itu.int/[...]
2017-10
[7]
웹사이트
BT.2246-8 (03/2023) The present state of ultra-high definition television
https://www.itu.int/[...]
[8]
웹사이트
Subsampling in ICtCp vs YCbCr
https://www.dolby.co[...]
Dolby Laboratories, Inc.
[9]
문서
JPEG File Interchange Format Version 1.02
http://www.w3.org/Gr[...]
[10]
간행물
T.871: Information technology – Digital compression and coding of continuous-tone still images: JPEG File Interchange Format (JFIF)
http://www.itu.int/r[...]
ITU-T
2016-07-25
[11]
문서
See libjpeg-turbo documentation for: [https://github.com/libjpeg-turbo/libjpeg-turbo/blob/6b9e3b04008165260a13f77cf235170438d5adf8/java/org/libjpegturbo/turbojpeg/TJ.java#L402 CS_YCCK] 'YCCK (AKA "YCbCrK") is not an absolute colorspace but rather a mathematical transformation of CMYK designed solely for storage and transmission', [https://github.com/libjpeg-turbo/libjpeg-turbo/blob/6b9e3b04008165260a13f77cf235170438d5adf8/jccolor.c#L396 cmyk_ycck_convert()]; see
[12]
웹사이트
EBU Tech 3237 Supplement 1
https://tech.ebu.ch/[...]
2021-04-15
[13]
서적
Video Demystified
https://archive.org/[...]
HighText Publications
[14]
웹사이트
Use libjpeg-turbo for YUV->RGB conversion in jpeg encoder · google/skia@c7d01d3
https://github.com/g[...]
[15]
문서
msdn.microsoft.com, YUV Video Subtypes
http://msdn.microsof[...]
[16]
문서
msdn.microsoft.com, Recommended 8-Bit YUV Formats for Video Rendering
http://msdn.microsof[...]
[17]
웹사이트
2.7.1.1. Packed YUV formats — The Linux Kernel documentation
https://docs.kernel.[...]
[18]
웹사이트
VideoLAN Wiki: YUV
https://wiki.videola[...]
[19]
문서
fourcc.com YUV pixel formas
https://fourcc.org/y[...]
[20]
웹사이트
2.7.1.2. Planar YUV formats — The Linux Kernel documentation
https://docs.kernel.[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com