-
RGB颜色编码概念
RGB三个字母分别代表了红(Red)、绿(Green)、蓝(Blue)、三种颜色,这三种颜色被称为三原色,通过将这三个颜色以不同的比例相加,得到各种不同的颜色。
在图像显示中,一张1080 X 1280大小的图片就有1080 X 1280个像素点,其中每一个像素点都采用用RGB编码方法,将RGB分别取不同的值,就会展示不同的颜色,最后形成一整有颜色的图片RGB图像中,每个像素点都有红、绿、蓝三个原色,其中每种原色都占用8bit,也就是一个字节,那么一个像素点也就占用了24bit,也就是3字节。所以一张1080 x 1280大小的图片,就占用了1080 x 1280 x 3 /1024/1024=3.95MB存储空间
-
YUV颜色编码概念
YUV 颜⾊编码采⽤的是明亮度和⾊度来指定像素的颜⾊。其中,Y 表示明亮度 (Luminance、Luma),⽽ U 和 V 表示⾊度(Chrominance、Chroma)。⽽⾊度⼜定义了颜⾊的两个⽅⾯:⾊调和饱和度
和RGB表示图像类似,每个像素点都包含Y、U、V分量。但是它的Y和UV分量是可以分离的,如果没有UV分量⼀样可以显示完整的图像,只不过是⿊⽩的.
对于YUV图像来说,并不是每个像素点都需要包含了Y、U、V三个分量,根据不同的采样格式,可以每个Y分量都对应⾃⼰的UV分量,也可以⼏个Y分量共⽤UV分量。
-
YUV采样格式
-
YUV4:4:4
YUV 4:4:4 采样,意味着 Y、U、V 三个分量的采样⽐例相同,因此在⽣成的图像⾥,每个像素的三个分量信息完整,都是 8 bit,也就 是⼀个字节。(这种采样格式并没有节省单个像素点的空间,所以不推荐使用可以直接使用RGB编码格式了) -
YUV4:2:2
-
YUV4:2:0
-
-
RGB-YUV颜色编码转换
对于图像显示器来说,它是通过RGB模型来显示图像的,⽽在传输图像数据时⼜是使⽤YUV模型,这是因为YUV模型可以节省带宽。因此就需要采集图像时将RGB模型转换到YUV模型,显示时再将YUV模型转换为RGB模型
RGB 到 YUV 的转换,就是将图像所有像素点的 R、G、B 分量转换到 Y、U、V 分量。
Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.147 * R - 0.289 * G + 0.436 * B
V = 0.615 * R - 0.515 * G - 0.100 * B
R = Y + 1.14 * V
G = Y - 0.39 * U - 0.58 * V
B = Y + 2.03 * U
-
总结(为什么要用YUV颜色编码)
就是应为YUV可以采用不同的采样格式从而达到节省存储空间的效果,所以使用YUV编码比RGB编码更好,但是计算机又只识别RGB颜色编码,所以使用YUV颜色编码的时候需要有一个颜色编码转换的过程