以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。
参考内容
(1)YUV和RGB的相互转换实验_Geek.Fan的博客-CSDN博客
(2) 工作中用到的一些基础知识
(3)YUV422 YUV420 Planar \ Semi-Planar \ Interleaved格式详解
(4)YUV 和 YCbCr 的差别 - 胡永光 - 博客园
一、颜色的学问
(1)颜色的本质是光的波长,但是因为有人去看才有了颜色这个概念。
(2)颜色的三个关键:亮度(亮暗程度)、色度(什么颜色)、饱和度(厚重浅薄感)。
(3)可以用“ 色彩空间 ”(RGB、YUV等)这个概念,数字化地表示一种颜色。
二、图像采集过程
(1)图像采集过程:光照在成像物体被反射>>镜头汇聚>>Sensor光电转换>>ADC为rawRGB。
(2)sensor上的每个像素硬件单元(或者说光电转换器)只能采集特定颜色的光的强度,因此每个像素只能为R或G或B。这些由sensor像素硬件单元得到的原始数据,就是rawRGB。
(3)将rawRGB进行转换(比如附近加权)得到我们熟知的RGB(每个像素点由RGB组成)。
(4)图像显示的要素:分辨率(一共多少像素)、pitch(像素与像素之间的距离)、观看距离。如果是视频,还需要考虑帧率。
(5)图像的表达、压缩、修整等相关技术,就发生在rawRGB以后的各个环节。
三、RGB方式表示颜色
1、RGB格式
RGB格式有以下:RGB555、RGB565、RGB888(或者叫RGB24,即真彩色)、ARGB(或者叫RGB32,其中A表示透明度)等。其中RGB后面的数字表示分别用多少bit来表示R、G、B这三个分量(或者说通道)的亮度。
比如RGB565,使用16bit来表示一个像素,其中用5bit表示R分量,用6bit表示G分量,用5bit表示B分量。程序中使用一个字(两个字节)来操作RGB565格式的一个像素,各个bit的含义如下。
[高字节] R R R R R G G G G G G B B B B B [低字节]
我们通过使用屏蔽字和移位操作,可以得到RGB各分量的值。
2、RGB的本质
将色度分解为R、G、B三个分量,然后记录下各个分量的亮度。
如果采用RGB888格式,则每个分量有256阶亮度。当三个分量的亮度相同时,会得到灰色调(三个分量的亮度值都为0时是黑色,都为255时是白色,黑色与白色之间的就是灰色),此时的亮度也叫灰度值。
3、RGB的优势与劣势
(1)广泛应用于数字化的、彩色的显示器、计算机编程如opencv等领域。
(2)与传统灰度图(只有亮度信息)的兼容性不好,表达颜色的效率不高(即占用内存大)。
四、YUV方式表示颜色
1、YUV的简介
YUV也是一种色彩空间,其中Y表示亮度,U和V表示色度。只有Y就是黑白图像,再加上UV就是彩色图像了,因此兼容彩色系统和传统黑白系统。
2、YUV和RGB的对比
两者都是用来表达颜色的数学方法,但对颜色的描述思路和方法不同。RGB将一个颜色拆解为3个色度的亮度组合,YUV将一个颜色分解为2个色度与1个亮度的组合。RGB和YUV之间可以用数学方法互相换算,具体方法见参考内容(1),是一个典型的浮点运算过程。
3、YUV和YCbCr的对比
两者基本一样,具体介绍见参考内容(4)。
4、YUV的格式分类
YUV格式分为packed和planar两种,具体介绍见参考内容(2)。
假如有四个像素,每个像素都有一个YUV,即Y0U0V0、Y1U1V1、Y2U2V2、Y3U3V3。
对于packed,这四个像素的数据是这样编排的:[Y0,U0,V0]、[Y1,U1,V1]、[Y2,U2,V2]、[Y3,U3,V3]。即将YUV分量存放在同一个数组中。
对于planar,这四个像素的数据是这样编排的:[Y0,Y1,Y2,Y3]、[U0,U1,U2,U3]、[V0,V1,V2,V3]。即使用三个数组分开存放YUV三个分量,就像是一个三维平面一样。
对于semi planar,这四个像素的数据是这样编排的:[Y0,Y1,Y2,Y3]、[U0,V0]、[U1,V1]、[U2,V2]、[U3,V3]。
这两种格式各有优势。比如只想获取一部分图像的信息,那么packed格式的就比planar格式好,因为可以直接读取packed格式的部分数组,而plannar需要读取全部数组中。比如只想调亮画面,那么plannar就比packed好,因为直接修改plannar的亮度数组就好。
5、YUV相关的概念
下面是与YUV相关的概念,具体介绍参考内容(2)(3)。
YUYV(2个Y1个U1个V,应该就是YUV422?)
YUV422(即2*2像素点,共有4个Y、2个U和2个V。)
YUV420(其实叫YUV411更合适,2*2像素点,共有4个Y、1个U和1个V。)
YUV422 planar(即YUV422P)
YUV420 Planar(即YUV420P)
YUV422 semi planar(即YUV422SP)
YUV420 semi Planar(即YUV420SP)