YCgCo

**YCoCg** 색 모델은 **YCgCo** 색 모델로도 알려져 있으며, 관련 RGB 색 공간을 루마 값(Y로 표시)과 크로미넌스 그린(Cg), 크로미넌스 오렌지(Co)라는 두 가지 크로마 값으로 간단하게 변환하여 형성된 색 공간이다. 이 색 모델은 H.264/MPEG-4 AVC, HEVC, VVC, JPEG XR, 디랙과 같은 비디오 및 이미지 압축 설계에서 지원된다. 계산이 간단하고, 변환 코딩 이득이 좋으며, 다른 색 모델보다 적은 비트로 RGB와 손실 없이 상호 변환될 수 있다. 더욱 낮은 비트 깊이를 가진 가역적 스케일링 버전인 **YCoCg-R**은 이들 설계 대부분에서 지원되며 디스플레이 스트림 압축(Display Stream Compression)에서도 사용된다. Y와 크로미넌스 값의 가변 비트 깊이를 포함하는 보다 완전한 정의는 ITU-T H.273에 명시되어 있다. 위의 원본 이미지와 개별 구성 요소 Y, 크로미넌스 그린 Cg, 크로미넌스 오렌지 Co의 표현.
# 역사 및 명칭
초기 문서(2003년경)에서는 이 색 모델을 YCoCg라고 불렀다.엔리케 말바르와 게리 설리번, "Transform, Scaling & Color Space Impact of Professional Extensions". Moving Picture Experts Group 및 Video Coding Experts Group 문서 JVT-H031, JVT 8차 회의, 제네바, 2003년 5월.선스쥔, "Residual Color Transform Using YCoCg-R". Moving Picture Experts Group 및 Video Coding Experts Group 문서 JVT-L014, 12차 JVT 회의: 레드먼드, 워싱턴주, 미국, 2004년 7월. 이 모델은 YCbCr 색 모델을 주로 사용하도록 설계된 H.264/AVC(두 번째 에디션 전문 확장 프로젝트김우식, 드미트리 비리노프, 조대성, 김현문 (삼성 AIT 멀티미디어 연구소), "Enhancements to RGB coding in H.264/MPEG-4 AVC FRExt". Video Coding Experts Group 문서 VCEG-Z16, 26차 VCEG 회의: 대한민국 부산, 2005년 4월.)에서 처음으로 국제 표준으로 채택되었다. 채택 당시 Co 구성 요소가 빨간색으로의 편차를 나타내어 Cb보다 Cr에 더 가깝다는 점이 언급되었고, 이에 따라 표준에서 신호 할당 및 명칭이 변경되어 YCgCo라는 대체 이름이 생겨났다 (YCgCo는 ITU-T H.273에서 사용된다).
# 속성
YCoCg 색 모델이 YCbCr 색 모델에 비해 가지는 장점은 더 간단하고 빠른 계산, 압축 성능 향상을 위한 더 나은 비상관화, 그리고 완벽하게 손실 없는 역변환 가능성이다.
# RGB 색 모델과의 변환
YCoCg 색 모델의 세 값은 RGB 색 모델의 세 색상 값으로부터 다음과 같이 계산된다. \begin{bmatrix} Y \\\ Co \\\ Cg \end{bmatrix} = \begin{bmatrix} \frac{1}{4} & \frac{1}{2} & \frac{1}{4} \\\ \frac{1}{2} & 0 & -\frac{1}{2} \\\ -\frac{1}{4} & \frac{1}{2} & -\frac{1}{4}\end{bmatrix} \cdot \begin{bmatrix} R \\\ G \\\ B \end{bmatrix} Y 값은 0에서 1 사이의 범위를 가지며, Co 및 Cg는 YCbCr과 같은 "YCC" 색 모델에서 일반적인 것처럼 -0.5에서 0.5 사이의 범위를 가진다. 예를 들어, 순수한 빨간색은 RGB 시스템에서 (1, 0, 0)으로, YCoCg 시스템에서는 (4, 2, -4)로 표현된다. 그러나 변환 행렬의 계수가 단순한 이진 분수이므로 다른 YCC 변환보다 계산하기 쉽다. 비트 깊이 n인 RGB 신호의 경우, 결과 신호는 n 비트로 반올림되거나, 이 형식으로 데이터를 처리할 때 일반적으로 n+2 비트가 된다 (Co의 경우 n+1 비트로도 충분하지만). 역행렬은 YCoCg 색 모델에서 RGB 색 모델로 다시 변환한다: \begin{bmatrix} R \\\ G \\\ B \end{bmatrix} = \begin{bmatrix} 1 & 1 & -1 \\\ 1 & 0 & 1 \\\ 1 & -1 & -1\end{bmatrix} \cdot \begin{bmatrix} Y \\\ Co \\\ Cg \end{bmatrix} 역변환을 수행하기 위해서는 다음 C 코드와 같이 구현하면 정수 계수를 사용하여 두 번의 덧셈과 두 번의 뺄셈만으로 충분하다: tmp = Y - Cg; R = tmp + Co; G = Y + Cg; B = tmp - Co;
# 리프팅 기반 YCoCg-R 변형
때때로 YCoCg-R(여기서 "-R"은 가역성을 의미한다)엔리케 말바르와 게리 설리번, "YCoCg-R: A color space with RGB reversibility and low dynamic range". Moving Picture Experts Group 및 Video Coding Experts Group 문서 JVT-I014, JVT PExt Ad Hoc 그룹 회의: 노르웨이 트론헤임, 2003년 7월.이라고 불리는 변환의 스케일링 버전은 감소된 비트 깊이로 효율적으로 구현될 수 있다. 스케일링 버전은 리프팅 스킴을 사용하여 세 가지 색상 구성 요소의 비트 깊이를 최소화하면서 정확히 가역적으로 만든다. 비트 깊이가 n인 RGB 신호의 경우, YCoCg-R을 사용할 때 Y 신호의 비트 깊이는 n이 되고 Co와 Cg의 비트 깊이는 n+1이 된다. 이는 일반적인 YCoCg가 Y와 Cg에 n+2 비트, Co에 n+1 비트를 필요로 하는 것과 대조된다.conference = Optical Engineering + Applications, 2008 여기서 Y의 가능한 값은 여전히 [0, 1] 범위이며, Co와 Cg의 가능한 값은 이제 [-1, 1] 범위이다. RGB에서 YCoCg-R로의 변환은 다음과 같다: 2= \begin{bmatrix} Y \\\ Co \\\ Cg \end{bmatrix}_R = \begin{bmatrix} \frac{1}{4} & \frac{1}{2} & \frac{1}{4} \\\ 1 & 0 & -1 \\\ -\frac{1}{2} & 1 & -\frac{1}{2}\end{bmatrix} \cdot \begin{bmatrix} R \\\ G \\\ B \end{bmatrix} YCoCg-R에서 RGB로의 변환은 다음과 같다: 2= \begin{bmatrix} R \\\ G \\\ B \end{bmatrix} = \begin{bmatrix} 1 & \frac{1}{2} & -\frac{1}{2} \\\ 1 & 0 & \frac{1}{2} \\\ 1 & -\frac{1}{2} & -\frac{1}{2}\end{bmatrix} \cdot \begin{bmatrix} Y \\\ Co \\\ Cg \end{bmatrix}_R (모든 나눗셈은 C 언어에서처럼 절단된다. 순방향 변환은 YCoCg의 유사한 구현을 생성하도록 조정될 수 있다.) 모듈러 연산을 사용하여 세 가지 요소를 3n 비트로 묶는 것도 가능하다.language=en 그러나 랩어라운드에서 발생하는 불연속성은 후속 압축 단계에 혼란을 줄 수 있다.틸로 스트루츠, "Multiplierless Reversible Colour Transforms and their Automatic Selection for Image Data Compression." IEEE Transactions on Circuits and Systems for Video Technology, Vol. 23, No. 7, pp. 1249–1259, July 2013.틸로 스트루츠 및 알렉산더 라이프니츠, "Reversible Colour Spaces without Increased Bit Depth and Their Adaptive Selection." IEEE Signal Processing Letters, Vol. 22, No. 9, pp. 1269–1273, September 2015.
# 효율성 이득
HEVC (H.265) 표준의 화면 콘텐츠 코딩 (SCC) 확장과 VVC (H.266) 표준에는 잔여 코딩 프로세스 내에서 적응형 색상 변환이 포함되어 있으며, 이는 RGB 비디오의 코딩을 YCoCg-R 도메인으로 전환하는 것과 일치한다. HEVC-SCC에서 RGB 비디오를 인코딩하기 위해 YCoCg 색 공간을 사용한 결과 손실 비디오의 경우 큰(~20%) 코딩 이득을 얻었지만, YCoCg-R을 사용하여 비디오를 손실 없이 인코딩할 때는 최소한의 이득을 보였다.date=September 2015 가역 변형은 4.21 dB의 코딩 이득을 제공하며, 이는 BT.470 색상 행렬의 3.54 dB 및 JPEG 2000 가역 색상 변환의 3.98 dB와 비교된다.
# 문헌
* P. Agawane 및 K. R. 라오 (텍사스 대학교 알링턴 멀티미디어 처리 연구소), "Implementation and evaluation of residual color transform for 4:4:4 lossless RGB coding url=https://web.archive.org/web/20100704085151/http://www-ee.uta.edu/dip/Research_Files/MPL/Research/RecentResearch/Pooja.ppt". 인도 하이데라바드, 국제 통신 공학 최신 기술 회의, 2008년 12월.