文章目录
- 1. YUV 颜色空间
- 2. YUV 的存储格式
- 2.1 YUV 4:4:4
- 2.2 YUV 4:2:2
- 2.3 YUV 4:2:0
- 2.4 YUV 4:1:1
- 2.5 YUV 4:0:0
- 3. YUV 的存储排列方式
- 3.1 Planar 存储(平面模式)
- 3.2 Packed 存储(打包模式)
- 3.3 Semi-Planar 存储(半平面模式)
- 4. YUV 与 RGB 互相转换
- 4.1 RGB 转 YUV
- 4.2 YUV 转 RGB
- 5. YUV 格式的应用
- 6. 总结
YUV 是一种常见的视频颜色编码格式,主要用于视频压缩、传输和显示。YUV 颜色空间将颜色信息拆分为亮度(Y)和色度(U、V)分量,以适应人眼对亮度更敏感的特点,提高压缩效率。
1. YUV 颜色空间
YUV 颜色空间来源于模拟电视信号,后来应用于数字视频。它的三个分量分别是:
- Y(Luminance,亮度):表示图像的灰度信息,相当于黑白电视信号,决定画面亮暗。
- U(Chrominance-blue,蓝色色度):表示蓝色和亮度的差值,用于编码颜色信息。
- V(Chrominance-red,红色色度):表示红色和亮度的差值,也用于颜色信息。
YUV 的主要特点是可以进行色度子采样(Chroma Subsampling),减少色度信息的存储量,同时保持较高的图像质量。
2. YUV 的存储格式
YUV 数据存储方式取决于采样方式,最常见的格式有:
- YUV 4:4:4
- YUV 4:2:2
- YUV 4:2:0
- YUV 4:1:1
- YUV 4:0:0
2.1 YUV 4:4:4
每个像素点都有完整的 Y、U、V 数据。
- 存储方式:
Y1 U1 V1 Y2 U2 V2 Y3 U3 V3 Y4 U4 V4
- 优点:最高质量,无色度损失。
- 缺点:数据量最大,存储和传输开销大。
- 应用:专业视频编辑、无损存储等。
2.2 YUV 4:2:2
每 2 个像素共享 1 个 U/V 值,即水平方向色度信息减少一半。
- 存储方式:
Y1 U1 Y2 V1 Y3 U2 Y4 V2 Y5 U3 Y6 V3 Y7 U4 Y8 V4
- 数据量:相比 YUV 4:4:4 约减少 1/3。
- 应用:电视广播、高清摄像机。
2.3 YUV 4:2:0
每 2×2 像素共享 1 个 U/V 值,即水平、垂直方向都减少一半。
- 存储方式:
Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 U1 U2 V1 V2
- 数据量:相比 YUV 4:4:4 约减少 50%。
- 应用:H.264 编码、MP4 视频格式、DVD 视频等。
2.4 YUV 4:1:1
每 4 个像素共享 1 个 U/V 值,即水平方向减少 75% 的色度信息。
- 存储方式:
Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 U1 U2 V1 V2
- 应用:低码率视频传输,如视频会议等。
2.5 YUV 4:0:0
仅有亮度信息(Y),没有色度信息。
- 应用:灰度图像(黑白视频)。
3. YUV 的存储排列方式
YUV 数据的排列方式可以分为**平面(Planar)、打包(Packed)、交错(Interleaved)**存储。
3.1 Planar 存储(平面模式)
- 各个分量单独存储在不同的区域。
- YUV 4:2:0 Planar 存储示例:
YYYYYYYYYYYYYYYY (Y 分量) UUUUUU (U 分量) VVVVVV (V 分量)
- 格式示例:
- I420(YUV420p):Y 先存,U 后存,V 再存。
- YV12:Y 先存,V 后存,U 再存。
3.2 Packed 存储(打包模式)
- YUV 分量交错存储在一起,每个像素的 Y、U、V 依次排列。
- YUV 4:2:2 Packed 存储示例:
Y1 U1 Y2 V1 Y3 U2 Y4 V2
- 格式示例:
- UYVY:U/Y/V/Y 交替存储。
- YUYV:Y/U/Y/V 交替存储。
3.3 Semi-Planar 存储(半平面模式)
- Y 单独存储,U 和 V 交错存储在一起。
- YUV 4:2:0 Semi-Planar 存储示例:
YYYYYYYYYYYYYYYY (Y 分量) UVUVUVUVUVUV (UV 交错)
- 格式示例:
- NV12:Y 先存,UV 交错存储(U 在前)。
- NV21:Y 先存,VU 交错存储(V 在前)。
4. YUV 与 RGB 互相转换
YUV 与 RGB 之间可以通过数学公式进行转换:
4.1 RGB 转 YUV
[
Y = 0.299R + 0.587G + 0.114B
]
[
U = (B - Y) \times 0.565
]
[
V = (R - Y) \times 0.713
]
4.2 YUV 转 RGB
[
R = Y + 1.403V
]
[
G = Y - 0.344U - 0.714V
]
[
B = Y + 1.770U
]
5. YUV 格式的应用
格式 | 存储方式 | 适用场景 |
---|---|---|
YUV 4:4:4 | Planar 或 Packed | 无损压缩、专业视频 |
YUV 4:2:2 | Packed(如 YUYV) | 广播、高清摄像 |
YUV 4:2:0 | Planar(I420、NV12) | 视频压缩、H.264 |
YUV 4:1:1 | Planar | 低码率视频 |
YUV 4:0:0 | Planar | 黑白图像 |
6. 总结
- YUV 主要用于视频压缩,因为人眼对亮度更敏感,色度数据可以被压缩。
- 不同的 YUV 采样格式(4:4:4、4:2:2、4:2:0) 主要是为了在画质与数据量之间取舍。
- 存储方式(Planar、Packed、Semi-Planar) 决定了数据存放的结构。
- YUV 需要转换为 RGB 才能显示在普通屏幕上。
如果你有更具体的应用场景,比如在 硬件 或 编解码 方向上的问题,可以进一步探讨! 😊