YUV 컬러 시스템

YUV는 일반적으로 컬러 이미지 파이프 라인의 일부로 사용되는 컬러 인코딩 시스템입니다. 이는 인간의 인식을 고려한 컬러 이미지 또는 비디오를 인코딩하여 크로 미 넌스 구성 요소의 대역폭을 줄임으로써 전송 오류 또는 압축 아티팩트가 일반적으로 “직접”RGB 표현을 사용하는 것보다 인간 인식에 의해보다 효율적으로 마스킹되도록합니다. 다른 컬러 인코딩은 비슷한 속성을 가지고 있으며 Y’UV의 속성을 구현하거나 조사하는 주된 이유는 특정 Y’UV 표준을 준수하는 아날로그 또는 디지털 TV 또는 사진 장비와 인터페이스하기위한 것입니다.

용어 Y’UV, YUV, YCbCr, YPbPr 등의 범위는 때때로 모호하고 중복됩니다. 역사적으로, YUV 및 Y’UV는 텔레비전 시스템에서 컬러 정보의 특정 아날로그 인코딩에 사용되고 YCbCr은 MPEG 및 JPEG와 같은 비디오 및 스틸 이미지 압축 및 전송에 적합한 컬러 정보의 디지털 인코딩에 사용되었습니다. 오늘날 YUV는 YCbCr을 사용하여 인코딩 된 파일 형식을 설명하기 위해 컴퓨터 업계에서 일반적으로 사용됩니다.

Y’UV 모델은 하나의 휘도 (Y ‘) 및 2 개의 색차 (UV) 성분으로 색 공간을 정의합니다. Y’UV 컬러 모델은 PAL 합성 컬러 비디오 (PAL-N 제외) 표준에 사용됩니다. 이전의 흑백 시스템은 루마 (Y ‘) 정보 만 사용했습니다. 컬러 정보 (U 및 V)는 서브 캐리어를 통해 개별적으로 추가되어, 흑백 수신기는 여전히 수신기의 원시 흑백 포맷으로 컬러 화상 전송을 수신하고 디스플레이 할 수있게된다.

Y ‘는 휘도 성분 (밝기)을 나타내고 U 및 V는 색차 성분 (색)을 나타냅니다. 휘도는 Y로 표시되고 luma는 Y ‘로 표시됩니다. – 프라임 기호 (‘)는 감마 압축을 나타내며 “휘도”는 물리적 인 선형 공간 밝기를 의미하고 “루마”는 (비선형) 지각적인 밝기입니다.

아날로그 컴포넌트 비디오에 사용 된 YPbPr 컬러 모델과 디지털 비디오에 사용되는 디지털 버전 YCbCr은 다소 차이가 있으며 YUUV라고도합니다. (CB / PB 및 CR / PR은 청색 – 황색 및 적색 – 시안 축상의 회색으로부터의 편차이고, U 및 V는 각각 청색 – 휘도 및 적색 – 휘도 차이이다.) 아날로그 NTSC 텔레비전에서 사용되는 Y’IQ 색 공간 방송 시스템은 좀 더 복잡한 방식으로 관련되어있다. 아날로그 SECAM 및 PAL-N 텔레비전 방송 시스템에 사용되는 YDbDr 색 공간 또한 관련되어 있습니다.
어원학에 관해서는 Y, Y ‘, U, V는 약어가 아닙니다. 휘도에 문자 Y를 사용하는 것은 XYZ 기본 색의 선택으로 거슬러 올라갈 수 있습니다. 이것은 휘도의 지각 적으로 일정한 상관 관계를 근사화하는 luma (Y ‘)에서 같은 문자의 사용에 자연스럽게 적합합니다. 마찬가지로 U 및 V는 U 및 V 축을 x 및 y 색도 공간과 같은 다른 공간의 것과 구별하기 위해 선택되었습니다. 아래의 방정식을 보거나 수학의 역사적 발전을 비교하십시오.

역사
Y’UV는 엔지니어가 컬러 텔레비전을 흑백 인프라로 원할 때 발명되었습니다. 컬러를 추가 할 수있는 흑백 (B & W) TV와 호환되는 신호 전송 방법이 필요했습니다. 루마 성분은 이미 흑백 신호로 존재했습니다. 그들은 솔루션에 UV 신호를 추가했습니다.

U 및 V는 색차 신호이기 때문에 직선의 R 및 B 신호보다 색차의 UV 표현이 선택되었습니다. 즉, U 및 V 신호는 텔레비전에 밝기를 변경하지 않고 특정 픽셀의 색상을 이동 시키도록 지시합니다. 또는 U 및 V 신호는 모니터가 한 색을 다른 색의 비용보다 더 밝게 만들고 어는 정도만큼 이동 시키도록 지시합니다. U 및 V 값이 높을수록 (또는 음수 일 때 더 낮아짐) 픽셀이 더 포화 상태 (색상이 다양 함)가됩니다. U와 V 값이 0에 가까울수록 빨강, 녹색 및 파랑 불빛이 더 똑같이 밝아 져서 회색 픽셀을 생성한다는 의미의 색이 조금씩 이동합니다. 이것은 색상 차이 신호를 사용하는 이점입니다. 즉, 색상에 빨간색이 얼마나 많은지 알려주지 않고 녹색 또는 파란색보다 더 많이 빨간색으로 표시합니다. 이것은 U 및 V 신호가 0이거나 없을 때 그레이 스케일 이미지 만 표시한다는 것을 의미합니다. R과 B가 사용 되었다면 흑백 장면에서도 0이 아닌 값을 가지게되어 3 개의 데이터 운반 신호가 모두 필요합니다. 오래된 흑백 TV 신호에는 U 및 V 신호가 없었기 때문에 컬러 TV 초기에는 B & W TV로 표시하기 때문에 이것은 초기 컬러 TV에서 중요했습니다. 또한 흑백 수신기는 Y ‘신호를 받아 U 및 V 색상 신호를 무시할 수 있으므로 기존의 모든 흑백 장비, 입력 및 출력과 Y’UV의 역 호환이 가능합니다. 컬러 TV 표준이 색차 신호를 사용하지 않는다면 컬러 TV가 흑백 방송에서 재미있는 색상을 만들거나 흑백 신호를 색상으로 변환하는 추가 회로가 필요하다는 것을 의미 할 수 있습니다. 사용 가능한 추가 대역폭이 없었기 때문에 색차 채널에 더 좁은 대역폭을 할당해야했습니다. 휘도 정보 중 일부가 색차 채널을 통해 도착한 경우 (차동 UV 신호 대신 RB 신호가 사용 된 것처럼) B & W 해상도가 손상되었을 수 있습니다.

RGB와의 변환

BT.601을 가진 SDTV
Y’UV 신호는 일반적으로 RGB (적색, 녹색 및 청색) 소스로 생성됩니다. 가중치가있는 R, G 및 B 값은 합쳐져 전체 밝기 또는 휘도의 측정치 인 Y ‘를 산출합니다. U와 V는 Y ‘와 B와 R 값 사이의 스케일 된 차이로 계산됩니다.

BT.601은 다음 상수를 정의합니다.

Y’UV는 다음과 같이 RGB로부터 계산됩니다.

Y ‘, U 및 V의 결과 범위는 [0, 1], [-Umax, Umax] 및 [-Vmax, Vmax]입니다.

위의 변환을 반전하면 Y’UV가 RGB로 변환됩니다.

동등하게, 상수에 값을 대입하고 행렬로 표현하면 BT.601에 대한 이러한 공식을 얻을 수 있습니다.

BT.709가있는 HDTV
HDTV의 경우 ATSC는 SDTV 시스템에서 이전에 선택한 값과 비교하여 WR 및 WB의 기본 값을 변경하기로 결정했습니다. HDTV의 경우이 값은 Rec. 709.이 결정은 Y’UV↔RGB 변환에 대한 행렬에 더 영향을 미치므로 멤버 값도 약간 다릅니다. 결과적으로 SDTV 및 HDTV에는 일반적으로 RGB 트리플에 대해 가능한 두 가지 Y’UV 표현이 있습니다. SDTV-Y’UV 및 HDTV-Y’UV입니다. 즉, SDTV와 HDTV를 직접 변환 할 때 luma (Y ‘) 정보는 거의 같지만 크로마 (U & V) 채널 정보는 변환해야합니다. 여전히 CIE 1931 색 공간의 범위를 벗어나지 않았습니다. 709 색 공간은 Rec. 601 및 커버 35.9 %. Rec.가있는이 UHDTV와는 대조적으로 2020은 훨씬 더 넓은 영역을 다루고 있으며, YUV / Y’UV를위한 고유의 행렬 세트를 볼 수 있습니다.

BT.709는 다음과 같은 가중치를 정의합니다.

BT.709의 변환 행렬 및 공식은 다음과 같습니다.

노트
Y ‘(행렬의 맨 위 행)을 계산하는 데 사용 된 가중치는 Y’IQ 색 공간에서 사용 된 가중치와 동일합니다.

빨강, 녹색 및 파랑의 동일한 값 (즉, 회색 레벨)은 U 및 V에 대해 0을 산출합니다. 검은 색 RGB = (0, 0, 0)은 YUV = (0, 0, 0)을 산출합니다. 흰색, RGB = (1, 1, 1)은 YUV = (1, 0, 0)을 산출합니다.
이러한 공식은 전통적으로 아날로그 TV 및 장비에 사용됩니다. HDTV 및 디지털 비디오 카메라와 같은 디지털 장비는 Y’CbCr을 사용합니다.

수치 근사법
고속 SIMD 부동 소수점 프로세서를 개발하기 전에 RGB → Y’UV의 대부분의 디지털 구현은 정수 수학, 특히 고정 소수점 근사를 사용했습니다. 근사는 사용 된 숫자 (입력 데이터, 출력 데이터 및 상수 값)의 정밀도가 제한된다는 것을 의미하므로 일반적으로 마지막 2 진수에 대한 정밀도 손실은 일반적으로이 옵션을 사용하는 사람이 누구 에게든 받아들입니다. 향상된 계산 속도.

다음 예제에서 연산자 ”  “는 b의 2 진수 자리에 의한 오른쪽 시프트를 나타냅니다. 설명을 위해 변수는 두 개의 접미사를 사용합니다.”u “는 부호없는 최종 표현에 사용되고”t “는 축소 된 중간 값에 사용됩니다. BT.701 또는 다른 유사한 표준을 따르는 데이터에 대해 허용 가능한 일치를하는 값을 사용하여 기능적으로 동등한 연산을 수행하는 데에도 동일한 원칙을 사용할 수 있습니다.

Y ‘값은 일반적으로 [0, 255]의 전체 범위를 사용하지 않고 [스튜디오 스윙 또는 TV 레벨이라고하는] [16, 235] 범위로 이동 및 크기 조정됩니다 (풀 스윙 또는 “PC 레벨 “). 이러한 관행은 필터링으로 인한 신호 오버 슛 ( “울림”)을 수용하기 위해 SMPTE-125M에서 표준화되었습니다. 235 값은 255-235 = 20 또는 20 / (235-16) = 9.1 %의 최대 흑백 오버 슈트를 수용합니다. 이는 이론적 인 최대 오버 슛 (깁스 현상)의 약 8.9 %보다 약간 큽니다. 최대 단계. 발가락 방은 더 작아서 단지 16/219 = 7.3 %의 오버 슛을 허용하며 이론적 인 최대 오버 슈트 인 8.9 %보다 적습니다. 이것이 16을 Y ‘에 추가 한 이유와 기본 변환의 Y’계수가 255 대신 220으로 합쳐지는 이유입니다. 양수 또는 음수 일 수있는 U 및 V 값을 128과 합하여 항상 양수로 만들어 U와 V의 스튜디오 범위는 16-240입니다 (이 범위는 비디오 편집 및 제작에서 중요합니다. 잘못된 범위를 사용하면 검정색과 흰색이 잘리는 이미지 또는 저 대비 이미지가 생성되기 때문입니다).

BT.601을위한 스튜디오 스윙
SDTV / BT.601 용 Y’UV의 전통적인 “스튜디오 스윙”8 비트 표현을 얻으려면 다음 작업을 사용할 수 있습니다.

1. 8 비트 RGB에서 16 비트 값으로의 기본 변환 (Y ‘: 부호없는, U / V : 부호있는 행렬 값은 나중에 원하는 Y'[16..235] 범위와 U / V 범위 [16..240]에 도달) :

2. 반올림 ( “+128”)을 사용하여 8 비트로 축소 ( “>> 8”)합니다 (Y ‘: 서명되지 않음, U / V : 서명 됨) :

3. 음수 값을 제거하기 위해 값에 오프셋을 추가하십시오 (모든 결과는 8 비트 부호 없음).

BT.601 풀 스윙
SDTV / BT.601에서 Y’UV의 “풀 스윙”8 비트 표현을 얻으려면 다음 작업을 사용할 수 있습니다.

1. 8 비트 RGB에서 16 비트 값으로 기본 변환 (Y ‘: 부호 없음, U / V : 부호있는, 각 [0..255]의 나중에 원하는 Y’UV 범위에 도달하도록 행렬 값이 반올림 됨) 오버플로가 발생할 수 없음).

2. 반올림 ( “+128”)을 사용하여 8 비트 값으로 축소 ( “>> 8”)합니다 (Y ‘: 부호없는, U / V : 부호 있음).

3. 음수 값을 제거하기 위해 값에 오프셋을 추가하십시오 (모든 결과는 8 비트 부호 없음).

일반적으로 휘도 / 색차 시스템

Y’UV 및 그 친척 Y’IQ 및 YDbDr과 같은 루마 / 크로마 시스템의 주요 이점은 흑백 아날로그 TV와 호환이 가능하다는 것입니다 (주로 Georges Valensi의 작업으로 인해). Y ‘채널은 흑백 카메라로 기록 된 모든 데이터를 저장하므로 오래된 흑백 디스플레이의 수신에 적합한 신호를 생성합니다. 이 경우 U와 V는 단순히 버려집니다. 색상을 표시하면 세 개의 채널이 모두 사용되고 원본 RGB 정보가 디코딩 될 수 있습니다.

Y’UV의 또 다른 이점은 대역폭을 줄이기 위해 일부 정보를 삭제할 수 있다는 것입니다. 인간의 눈은 색에 대한 공간 감도가 거의 없습니다. 휘도 채널의 밝기 정보의 정확도는 다른 두 가지보다 더 세부적인 이미지 세부 사항에 훨씬 더 많은 영향을줍니다. NTSC 및 PAL과 같은 표준에서 이러한 인간의 단점을 이해하면 색차 채널의 대역폭이 크게 줄어 듭니다. (대역폭은 시간 영역에 있지만 이미지를 스캔하면 공간 영역으로 변환됩니다.)

따라서, 결과적인 U 및 V 신호는 실질적으로 “압축”될 수있다. NTSC (Y’IQ) 및 PAL 시스템에서 색차 신호는 휘도보다 신호 대역폭이 상당히 좁습니다. NTSC의 초기 버전은 동일한 이미지 영역에서 특정 색상을 신속하게 번갈아 가며 인간의 눈에 서로 겹쳐 보일 수있게하는 반면 현대의 모든 아날로그 및 대부분의 디지털 비디오 표준은 축소 된 해상도로 사진의 색상 정보를 기록하여 크로마 하위 샘플링을 사용합니다. 밝기 정보에 비해 수평 해상도의 절반 만 유지됩니다 (4 : 2 : 2 크로마 하위 샘플링이라고 함). 종종 수직 해상도도 절반으로 줄어 듭니다 (4 : 2 : 0 제공). 4 : 1 : 1의 크로마 서브 샘플링을 사용하는 가장 초기의 컬러 NTSC 표준 (가로 해상도는 4 배, 세로 해상도는 4 등분)을 사용하여 4 : x : x 표준이 채택되었습니다. 밝기 해상도와 비교해 4 분의 1 정도의 컬러 해상도. 오늘날, 비 압축 신호를 처리하는 고급 장비 만이 밝기 및 색상 정보 모두에 대해 동일한 해상도로 4 : 4 : 4의 채도 서브 샘플링을 사용합니다.

I 및 Q 축은 인간의 시력에 필요한 대역폭에 따라 선택되었으며, 한 축은 가장 많은 대역폭을 필요로하고, 다른 축은 (최소 90도에서 우연히) 최소값을 필요로합니다. 그러나 실제 I 및 Q 복조는 비교적 복잡하여 두 개의 아날로그 지연 회선이 필요했으며 NTSC 리시버는 거의 사용하지 않았습니다.
그러나이 색 공간 변환은 손실이 많습니다. 아날로그 장비 (디지털 신호를 전송하는 RCA 커넥터 포함, 루마에서 크로마 전송 와이어로의 크로스 토크에서 특히나 그 반대의 경우도 마찬가지 임)는 아날로그 합성 비디오입니다. YUV, YIQ 또는 CVBS). 또한 NTSC 및 PAL은 고 대역폭 크로마 및 루마 신호가 흑백 TV 장비와의 역 호환성을 유지하기 위해 서로 섞여서 도트 크롤 및 크로스 컬러 아티팩트를 발생시키는 방식으로 색상 신호를 인코딩했습니다. NTSC 표준이 1950 년대에 만들어 졌을 때 이미지의 품질이 제한된 대역폭 신호가 아닌 모니터 장비에 의해 제한 되었기 때문에 이것은 실제 관심사가 아니 었습니다. 그러나 오늘날의 현대 TV는 이러한 손실 신호에 포함 된 것보다 많은 정보를 표시 할 수 있습니다. 새로운 디스플레이 기술의 역량을 유지하기 위해 SCART (1977) 및 S-Video (1987) 커넥터와 같은 이미지를 전송하는 동안 Y’UV 신호를 더 많이 보존하려는 시도가 1970 년대 후반부터있었습니다.

Y’UV 대신 Y’CbCr이 MPEG-2와 같은 (디지털) 일반 비디오 압축 알고리즘의 표준 형식으로 사용되었습니다. 디지털 TV와 DVD는 압축 된 비디오 스트림을 MPEG-2 형식으로 보존합니다.이 형식은 확립 된 채도 서브 샘플링 프로세스를 유지하면서도 전체 Y’CbCr 색 공간을 사용합니다. 전문적인 CCIR 601 디지털 비디오 포맷은 또한 이전의 아날로그 비디오 표준과의 호환성을 위해 4 : 2 : 2의 공통 크로마 서브 샘플링 속도로 Y’CbCr을 사용합니다. 이 스트림은 필요한 모든 출력 형식으로 쉽게 혼합 될 수 있습니다.
Y’UV는 절대 색 공간이 아닙니다. 이것은 RGB 정보를 인코딩하는 방법이며 실제 표시되는 색은 신호를 표시하는 데 사용되는 실제 RGB 색소에 따라 다릅니다. 따라서 Y’UV로 표현 된 값은 표준 RGB 색소가 사용되는 경우에만 예측 가능합니다 (즉, 기본 색도의 고정 된 세트 또는 적색, 녹색 및 파란색의 특정 세트).

또한 RGB (BT.601이든 Rec.709이든)의 색상과 밝기의 범위 (색상 영역으로 알려짐)는 Y’UV가 허용하는 색상 및 밝기의 범위보다 훨씬 작습니다. 위의 수식을 사용하면 0 % 미만의 값 또는 범위의 100 %를 훨씬 초과하는 값 (예 : Y’CbCr)을 RGB로 변환 할 수 있으므로 Y’UV (또는 Y’CbCr)에서 RGB로 변환 할 때 매우 중요 할 수 있습니다. TV 및 HD 컨텐츠의 표준 16-235 루마 범위 (및 16-240 크로마 범위)를 벗어나거나 PC의 표준 정의를위한 0-255 범위를 벗어납니다. 이 값을 처리하지 않으면 영향을받는 채널의 유효한 범위로 “제한”(즉, 제한)됩니다. 이렇게하면 색상의 색조가 바뀌므로 매우 바람직하지 않습니다. 따라서 RGB 색상 영역에 속하도록 불쾌한 색상의 채도를 낮추는 것이 더 좋습니다. 마찬가지로 특정 비트 심도의 RGB가 동일한 비트 심도의 YUV로 변환되면 여러 RGB 색상이 동일한 Y’UV 색상이되어 정보가 손실 될 수 있습니다.

Y’CbCr과의 관계
Y’UV는 종종 YCbCr의 용어로 사용됩니다. 그러나, 그들은 다른 스케일 인자와 완전히 다른 포맷이다.

그럼에도 불구하고, 표준 경우에 그들 사이의 관계는 간단합니다. 특히 Y 채널은 둘 다 동일하며 Cb와 U는 모두 (BY)에 비례하며 Cr과 V는 모두 (RY)에 비례합니다.