사진, 영상 쪽에서 자주 보이는 4:2:0, 4:2:2 같은 숫자들의 정체. 그런데 숫자 3개 적어두고 그게 뭔지 설명 안하는 경우가 많은거 같음.
밝기와 색차를 이용한 색 표현 #
RGB가 색을 Red, Green, Blue 각각 값으로 표시하는 방식이라면 색차를 이용하는 방식은 휘도와 두개의 색차정보를 이용해 나타내는 방식이다.
보통 YCbCr 처럼 Y:휘도 Cb: 파란색 색차 Cr: 빨간색 색차 로 색을 표현하는 방식을 사용하는데 빛의 삼원색 중 남은 하나인 초록색은 Y값과 Cb, Cr을 통해 구하는 방식이다.
용어 설명이 좀 애매하기도 하고 하고싶은 말이 더 있긴 하지만 일단 여기까지.
크로마 서브샘플링 #
사람의 시각이 밝기 변화에 민감하고 그에 비해 색의 차이는 둔감하게 반응한다는 점을 이용해서 밝기의 정보는 그대로 두고 색의 정보량만 줄이면 이미지 용량을 줄이면서 사람이 체감하는 차이는 별로 차이나지 않게 할 수 있다.
여기서 이미지를 압축할 때 이미지의 일부 부분의 색차 정보만 추출해서 색차 정보량을 줄이는 것을 크로마 서브샘플링이라고 한다.
YCbCr에서 Y는 그대로 두고 Cb와 Cr의 정보량만 줄이는 것이다.
4 : * : * 식 크로마 서브샘플링 표기 #
4x2 배열의 8개의 픽셀 중에서 어떤 색차 정보를 남길지 표기하는 방식이다. 두번째 숫자와 세번째 숫자는 각각 1행과 2행의 픽셀 중 색차 정보를 가져올 픽셀의 개수를 의미한다. 읽는건 대충 사둘둘 사둘공 이렇게 부르는 것 같다.
어디까지나 기초적인 설명을 위한 예시로 실제 압축 과정에서는 표본을 뽑는 법이나 해상도를 줄이는 방식 같은게 다를 수 있다. 해상도를 저런 식으로 줄이면 생길 수 있는 대표적인 문제가 궁금하다면 안티에일리어싱이 뭔지 찾아보자.
- 원본(4:4:4)
| 행/열 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 1 | a | b | c | d |
| 2 | e | f | g | h |
원본의 8개의 픽셀을 저렇게 a~h 라고 부를 것이다.
각 픽셀 1개의 Y, Cb, Cr의 크기를 1이라고 하면 저 8개 픽셀의 데이터의 크기는 24(Y:8 + Cb:8 + Cr:8)가 될 것이다.
- 4:2:2
| 행/열 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 1 | a | a | c | c |
| 2 | e | e | g | g |
1행에서 2개 2행에서 2개의 색차 신호를 뽑는다.
표에서는 a, c , e, g 의 색차 정보를 남기고 b, d, f, h는 각각 a, c , e, g 의 정보를 가져오는데 픽셀들을 2x1로 묶어서 그중 1개의 정보만 남기고 정보가 없는 나머지 픽셀 1개는 은 정보를 남긴쪽을 가져와서 쓴다고 볼 수있다.
세로 해상도는 그대로이고 가로해상도는 절반 크기로 데이터의 크기는 (Y:8 + Cb:4 + Cr:4) 16으로 원본의 2/3 크기다.
- 4:2:0
| 행/열 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 1 | a | a | c | c |
| 2 | a | a | c | c |
1행에서 2개의 색차 신호를 뽑고 2행에서는 뽑지 않는다
표에서는 a, c 의 색차 정보를 남기고 bef dgh는 각각 a,c의 정보를 가져오는데 픽셀들을 2x2 배열로 묶어서 그중 하나만 남기고 나머지 3개의 픽셀은 정보를 남긴 쪽의 값을 가져와서 쓴다고 볼 수 있다.
세로해상도 가로해상도 모두 절반 크기로 데이터의 크기는 (Y:8 + Cb:2 + Cr:2) 16으로 원본의 2/3 크기다.
나머지 예시
- 4:1:1
행/열 1 2 3 4 1 a a a a 2 e e e e
참고하면 좋은 것 #
사람 시각에 관한쪽으로 궁금하다면 원추세포와 간상세포를 찾아보자.
https://news.samsungdisplay.com/31617
용어 정리가 잘 안된 것도 그렇고 생각보다 인터넷에 크로마 서브샘플링을 다루는 공식 문서 같은게 잘 안나온다.
http://www.ktword.co.kr/test/view/view.php?no=3625
https://www.red.com/red-101/video-chroma-subsampling
https://ko.wikipedia.org/wiki/%ED%81%AC%EB%A1%9C%EB%A7%88_%EC%84%9C%EB%B8%8C%EC%83%98%ED%94%8C%EB%A7%81
https://en.wikipedia.org/wiki/YCbCr
https://www.dexonusa.com/wp-content/uploads/2019/12/Chroma-Subsampling-dexonusa-A2.pdf
https://poynton.ca/PDFs/Chroma_subsampling_notation.pdf