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일에 확인함.
- ↑ 가 나 다 엔리케 말바르와 게리 설리번, "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월.
- ↑ 가 나 “YCoCg: A Color Space with RGB Reversibility”. University of Texas at Arlington. 2010년 7월 2일에 원본 문서 (ppt)에서 보존된 문서. 2010년 5월 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월.
- ↑ 가 나 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." 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.
- ↑ 산 리우; 샤오중 쉬; 샤오민 레이; 케빈 주 (September 2015). “Overview of HEVC extensions on screen content coding”. 8쪽.
- CS1 - 영어 인용 (en)
- 웹아카이브 틀 웨이백 링크
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- 색 공간