YUV 和 RGB 是两种不同的颜色空间,广泛用于图像和视频处理中。它们的主要区别如下:
一、RGB
表示方式:使用红、绿、蓝三种颜色的强度值来表示颜色。每种颜色的值通常在 0-255(8-bit)范围内。色彩直观,但不利于压缩和处理。
二、YUV
表示方式:分为亮度(Y)和两个色度分量(U 和 V)。Y:亮度分量,表示像素的明暗。U 和 V:色度分量,表示颜色的偏差(蓝色-亮度、红色-亮度)。亮度和色度分离有利于视频压缩和带宽优化。主要得益于人眼对亮度的高敏感性。
三、 用途
RGB:适合显示设备(如显示器、LED 屏幕),因为这些设备直接依赖红、绿、蓝的三基色。
YUV:适合视频存储和传输(如视频压缩、广播电视),因为它可以在保留亮度的同时降低色度的分辨率,从而减少数据量。
四、 数据结构
RGB:每个像素包含 R、G、B 三个分量,常见格式有:
RGB24(每个分量 8-bit,总计 24-bit)。
RGBA32(加一个 8-bit 的 Alpha 通道)。
YUV:常见采样方式(用于压缩和优化):
4:4:4:Y、U、V 每像素都有独立值(未压缩)。
4:2:2:每 2 像素共用一个 U 和 V 值。
4:2:0:每 4 像素共用一个 U 和 V 值,进一步压缩。
五、压缩比
以19201080分辨率的帧为例:
RGB888:每个像素使用24bit(8bit3通道)。数据量为 1920108024=49766400bits,约等于5.96Mb.
YUV420:每个像素有一个Y分量,每四个像素共用一个U分量和V分量,因此单像素数据量为8+2+2=12bit。整体数据量为1920108012=24883200bits,约等于2.98Mb.
六、总结
YUV420的数据量比RGB888少了一半。同理可以计算RGB565与YUV420的数据量比为4/3。YUV的数据量更小主要是通过对色度分量的下采样实现的,其Y分量保持原采样。