색상 정보 **U**와 **V**는 **YUV 색 공간**에서 색상 정보를 분리하여 저장하는 두 가지 구성 요소입니다. 이를 이해하기 위해서는 먼저 **YUV 색 공간**이 무엇인지, 그리고 **U**와 **V**가 각각 어떤 역할을 하는지 살펴보는 것이 중요합니다. 또한, **수평**과 **수직**의 개념도 색상 정보를 압축하는 방식에서 어떻게 적용되는지를 이해해야 합니다.
### 1. **YUV 색 공간**
**YUV**는 **Y(밝기)** 와 **U, V(색차)** 로 나뉘는 색상 표현 방식입니다. RGB는 색을 직접 표현하는 방식인 반면, **YUV**는 색상 정보를 **밝기 정보**와 **색상 정보**로 나누어서 효율적으로 저장할 수 있는 구조입니다.
#### 1.1 **Y**: 밝기(Luminance) 정보
- **Y**는 영상의 **밝기 정보**를 나타냅니다. 이는 이미지의 **흑백 정보**로, 밝거나 어두운 정도를 나타냅니다. 인간의 눈은 **밝기** 정보에 매우 민감하기 때문에, Y 정보는 **모든 픽셀에서 손실 없이 저장**됩니다.
#### 1.2 **U와 V**: 색차(Chrominance) 정보
- **U**와 **V**는 각각 **색상 정보**를 나타내며, 색의 채도(색의 진함 정도)와 관련됩니다. U와 V는 실제 색 자체를 나타내기보다는, **밝기와의 차이**를 표현합니다.
- **U**는 **파랑(B)** 성분에서 **밝기 정보(Y)** 를 뺀 값입니다. 즉, **YUV**에서 **U**는 **파랑-밝기 차이**를 나타냅니다.
- **V**는 **빨강(R)** 성분에서 **밝기 정보(Y)** 를 뺀 값입니다. 즉, **V**는 **빨강-밝기 차이**를 나타냅니다.
이러한 방식으로 색상 정보(U, V)를 **밝기(Y)** 와 분리하여 저장하면, 색상 정보를 줄이더라도 사람이 시각적으로 크게 차이를 느끼지 않기 때문에 데이터 압축에 용이합니다.
### 2. **U와 V의 역할**
- **U (Chrominance Blue)**: 파란색 성분을 나타내며, **파랑과 밝기 간의 차이**를 나타냅니다. U는 **파랑-밝기 차이**에 대한 정보를 저장합니다.
- **V (Chrominance Red)**: 빨간색 성분을 나타내며, **빨강과 밝기 간의 차이**를 나타냅니다. V는 **빨강-밝기 차이**에 대한 정보를 저장합니다.
이 방식으로 **파랑(U)**과 **빨강(V)** 성분을 따로 저장하고, 나머지 **녹색(G)** 성분은 YUV에서 자연스럽게 유추됩니다. 이는 **YUV 색 공간**이 RGB에 비해 색상 정보를 더 효율적으로 압축할 수 있는 이유 중 하나입니다.
### 3. **샘플링에서 수평과 수직의 개념**
**수평**과 **수직**은 색차 서브샘플링(Chroma Subsampling) 방식에서 색상 정보(U, V)를 어떻게 줄이는지를 설명하는 데 중요한 개념입니다.
#### 3.1 **수평 방향 샘플링**
- **수평** 샘플링은 **가로 방향**에서 색상 정보를 줄이는 것을 의미합니다. 예를 들어, **4:2:2**는 **수평 방향으로 색상 정보(U, V)가 절반**으로 줄어든다는 뜻입니다.
- **4:2:2**에서 수평으로 4개의 픽셀이 있을 때, **U와 V 정보는 2픽셀마다 한 번만 저장**됩니다. 즉, 색상 정보는 2픽셀마다 공유되며, 수평 방향으로는 **절반의 색상 정보**만 샘플링됩니다.
#### 3.2 **수직 방향 샘플링**
- **수직** 샘플링은 **세로 방향**에서 색상 정보를 줄이는 것을 의미합니다. **4:2:0**에서 **수직 방향에서도 색상 정보(U, V)가 절반**으로 줄어듭니다.
- **4:2:0**에서 수평으로는 **2픽셀마다 색상 정보가 저장**되고, 수직으로는 **한 줄마다 색상 정보가 샘플링되지 않습니다**. 즉, 한 줄에서 샘플링된 색상 정보가 바로 아래 줄의 픽셀에도 그대로 사용됩니다.
#### 3.3 예시로 이해하기: 4:2:0 샘플링
```
YUV 4:2:0 샘플링에서는 2x2 픽셀 블록에서 다음과 같이 샘플링됩니다:
픽셀 1: Y1 U1 V1
픽셀 2: Y2 U1 V1 (U, V 공유)
픽셀 3: Y3 U1 V1 (수직으로도 U, V 공유)
픽셀 4: Y4 U1 V1 (U, V 공유)
```
여기서 **U1, V1**은 픽셀 1부터 픽셀 4까지 모두 동일하게 공유되며, **색상 정보(U, V)가 수직, 수평으로 절반으로 줄어듭니다**. 하지만 **밝기 정보(Y)**는 각각의 픽셀마다 저장되어, 인간의 눈이 민감한 밝기 정보는 손실되지 않습니다.
### 4. **수평과 수직 개념 정리**
- **수평 샘플링**: **가로 방향**에서 색상 정보가 어떻게 줄어드는지 설명합니다. 예를 들어, **4:2:2**는 수평으로 2픽셀마다 색상 정보가 줄어듭니다.
- **수직 샘플링**: **세로 방향**에서 색상 정보가 어떻게 줄어드는지 설명합니다. **4:2:0**은 수직 방향에서도 색상 정보가 줄어들어, 한 줄에서 색상 정보가 공유됩니다.
### 5. **왜 색상 정보를 줄이는가?**
- **인간의 눈은 색상 정보보다 밝기 정보에 훨씬 더 민감**하기 때문에, 색상 정보를 줄이더라도 시각적인 차이가 크게 느껴지지 않습니다. 이를 이용해, 색상 정보를 줄이고 압축하면서도 영상의 화질을 크게 손상시키지 않으려는 방식이 바로 색차 서브샘플링입니다.
- 따라서 **밝기 정보(Y)** 는 모든 픽셀에서 **정밀하게 샘플링**되고, **색상 정보(U, V)** 는 수평과 수직으로 일부만 샘플링되어 효율적으로 데이터를 줄입니다.
---
### 결론
- **U**는 **파랑-밝기 차이**를 나타내는 색상 정보이며, **V**는 **빨강-밝기 차이**를 나타내는 색상 정보입니다.
- **수평 샘플링**은 색상 정보를 **가로 방향**에서 줄이는 방식이고, **수직 샘플링**은 색상 정보를 **세로 방향**에서도 줄이는 방식입니다.
- **4:2:0** 샘플링은 색상 정보(U, V)를 수평과 수직으로 모두 절반씩 줄이면서, 파일 크기를 효율적으로 압축합니다. **4:4:4**는 색상 정보를 전혀 줄이지 않아 최고 품질을 유지하는 방식입니다.
이 방식은 영상 데이터의 크기를 줄이면서도, 인간의 눈이 인식할 수 있는 품질을 최대한 유지하기 위한 최적화 기법입니다.