YCgCo
YCoCg 색 모델은 YCgCo 색 모델로도 알려져 있으며, 관련 RGB 색 공간을 루마 값(Y로 표시)과 크로미넌스 그린(Cg), 크로미넌스 오렌지(Co)라는 두 가지 크로마 값으로 간단하게 변환하여 형성된 색 공간이다. 이 색 모델은 H.264/MPEG-4 AVC, HEVC, VVC, JPEG XR, 디랙과 같은 비디오 및 이미지 압축 설계에서 지원된다.[1] 계산이 간단하고, 변환 코딩 이득이 좋으며, 다른 색 모델보다 적은 비트로 RGB와 손실 없이 상호 변환될 수 있다. 더욱 낮은 비트 깊이를 가진 가역적 스케일링 버전인 YCoCg-R은 이들 설계 대부분에서 지원되며 디스플레이 스트림 압축(Display Stream Compression)에서도 사용된다. Y와 크로미넌스 값의 가변 비트 깊이를 포함하는 보다 완전한 정의는 ITU-T H.273에 명시되어 있다.

역사 및 명칭
[편집]초기 문서(2003년경)에서는 이 색 모델을 YCoCg라고 불렀다.[2][3] 이 모델은 YCbCr 색 모델을 주로 사용하도록 설계된 H.264/AVC(두 번째 에디션 전문 확장 프로젝트[4])에서 처음으로 국제 표준으로 채택되었다. 채택 당시 Co 구성 요소가 빨간색으로의 편차를 나타내어 Cb보다 Cr에 더 가깝다는 점이 언급되었고, 이에 따라 표준에서 신호 할당 및 명칭이 변경되어 YCgCo라는 대체 이름이 생겨났다 (YCgCo는 ITU-T H.273에서 사용된다).
속성
[편집]YCoCg 색 모델이 YCbCr 색 모델에 비해 가지는 장점은 더 간단하고 빠른 계산, 압축 성능 향상을 위한 더 나은 비상관화, 그리고 완벽하게 손실 없는 역변환 가능성이다.[5][6]
RGB 색 모델과의 변환
[편집]YCoCg 색 모델의 세 값은 RGB 색 모델의 세 색상 값으로부터 다음과 같이 계산된다.[2]
Y 값은 0에서 1 사이의 범위를 가지며, Co 및 Cg는 YCbCr과 같은 "YCC" 색 모델에서 일반적인 것처럼 -0.5에서 0.5 사이의 범위를 가진다. 예를 들어, 순수한 빨간색은 RGB 시스템에서 (1, 0, 0)으로, YCoCg 시스템에서는 (1/4, 1/2, -1/4)로 표현된다.[5][6] 그러나 변환 행렬의 계수가 단순한 이진 분수이므로 다른 YCC 변환보다 계산하기 쉽다. 비트 깊이 n인 RGB 신호의 경우, 결과 신호는 n 비트로 반올림되거나, 이 형식으로 데이터를 처리할 때 일반적으로 n+2 비트가 된다 (Co의 경우 n+1 비트로도 충분하지만).
역행렬은 YCoCg 색 모델에서 RGB 색 모델로 다시 변환한다:
역변환을 수행하기 위해서는 다음 C 코드와 같이 구현하면 정수 계수를 사용하여 두 번의 덧셈과 두 번의 뺄셈만으로 충분하다:
tmp = Y - Cg;
R = tmp + Co;
G = Y + Cg;
B = tmp - Co;
리프팅 기반 YCoCg-R 변형
[편집]때때로 YCoCg-R(여기서 "-R"은 가역성을 의미한다)[7]이라고 불리는 변환의 스케일링 버전은 감소된 비트 깊이로 효율적으로 구현될 수 있다. 스케일링 버전은 리프팅 스킴을 사용하여 세 가지 색상 구성 요소의 비트 깊이를 최소화하면서 정확히 가역적으로 만든다. 비트 깊이가 n인 RGB 신호의 경우, YCoCg-R을 사용할 때 Y 신호의 비트 깊이는 n이 되고 Co와 Cg의 비트 깊이는 n+1이 된다. 이는 일반적인 YCoCg가 Y와 Cg에 n+2 비트, Co에 n+1 비트를 필요로 하는 것과 대조된다.[8]
여기서 Y의 가능한 값은 여전히 [0, 1] 범위이며, Co와 Cg의 가능한 값은 이제 [-1, 1] 범위이다.
RGB에서 YCoCg-R로의 변환은 다음과 같다:
Co = R - B;
tmp = B + Co/2;
Cg = G - tmp;
Y = tmp + Cg/2;
YCoCg-R에서 RGB로의 변환은 다음과 같다:
tmp = Y - Cg/2;
G = Cg + tmp;
B = tmp - Co/2;
R = B + Co;
(모든 나눗셈은 C 언어에서처럼 절단된다. 순방향 변환은 YCoCg의 유사한 구현을 생성하도록 조정될 수 있다.)
모듈러 연산을 사용하여 세 가지 요소를 3n 비트로 묶는 것도 가능하다.[9] 그러나 랩어라운드에서 발생하는 불연속성은 후속 압축 단계에 혼란을 줄 수 있다.[10][11]
효율성 이득
[편집]HEVC (H.265) 표준의 화면 콘텐츠 코딩 (SCC) 확장과 VVC (H.266) 표준에는 잔여 코딩 프로세스 내에서 적응형 색상 변환이 포함되어 있으며, 이는 RGB 비디오의 코딩을 YCoCg-R 도메인으로 전환하는 것과 일치한다. HEVC-SCC에서 RGB 비디오를 인코딩하기 위해 YCoCg 색 공간을 사용한 결과 손실 비디오의 경우 큰(~20%) 코딩 이득을 얻었지만, YCoCg-R을 사용하여 비디오를 손실 없이 인코딩할 때는 최소한의 이득을 보였다.[12]
가역 변형은 4.21 dB의 코딩 이득을 제공하며, 이는 BT.470 색상 행렬의 3.54 dB 및 JPEG 2000 가역 색상 변환의 3.98 dB와 비교된다.[8][2]
문헌
[편집]- P. Agawane 및 K. R. 라오 (텍사스 대학교 알링턴 멀티미디어 처리 연구소), "Implementation and evaluation of residual color transform for 4:4:4 lossless RGB coding 보관됨 2010-07-04 - 웨이백 머신". 인도 하이데라바드, 국제 통신 공학 최신 기술 회의, 2008년 12월.
각주
[편집]- ↑ “Dirac Specification” (PDF). BBC. 136쪽. 2015년 5월 3일에 원본 문서 (pdf)에서 보존된 문서. 2010년 5월 4일에 확인함.
- 1 2 3 엔리케 말바르와 게리 설리번, "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월.
- ↑ 김우식, 드미트리 비리노프, 조대성, 김현문 (삼성 AIT 멀티미디어 연구소), "Enhancements to RGB coding in H.264/MPEG-4 AVC FRExt". Video Coding Experts Group 문서 VCEG-Z16, 26차 VCEG 회의: 대한민국 부산, 2005년 4월.
- 1 2 “YCoCg: A Color Space with RGB Reversibility”. University of Texas at Arlington. 2010년 7월 2일에 원본 문서 (ppt)에서 보존된 문서. 2010년 5월 2일에 확인함.
- 1 2 야이르 모세. “H.264 Amendment: Fidelity Range Extensions” (PDF). Signal and Image processing Lab (SIPL), Technion Israel Institute of Technology. 15쪽. 2014년 10월 6일에 원본 문서 (pdf)에서 보존된 문서. 2010년 5월 2일에 확인함.
- ↑ 엔리케 말바르와 게리 설리번, "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월.
- 1 2 Malvar, Henrique S.; Sullivan, Gary J.; Srinivasan, Sridhar (2008년 8월 28일). 《Lifting-based reversible color transformations for image compression》 (PDF). Optical Engineering + Applications, 2008. 707307쪽. doi:10.1117/12.797091.
- ↑ Cary, David. “Lossless RGB to Y'CbCr transformation” (영어). 《Stack Overflow》.
- ↑ 틸로 스트루츠, "Multiplierless Reversible Colour Transforms and their Automatic Selection for Image Data Compression 보관됨 2016-02-06 - 웨이백 머신." 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 보관됨 2016-02-06 - 웨이백 머신." IEEE Signal Processing Letters, Vol. 22, No. 9, pp. 1269–1273, September 2015.
- ↑ 산 리우; 샤오중 쉬; 샤오민 레이; 케빈 주 (September 2015). “Overview of HEVC extensions on screen content coding”. 8쪽.