图像处理基础


编码

RGB

RGB代表红绿蓝三种颜色,每种颜色分别用8bit来表示,一个像素点占用24个bit即3个字节。

对于一张1280*720的图片,说明它有1280×720个像素点,存储需要1280×720×3个bit,即2.63MB存储空间。

RGB565:每个像素用16bit表示,RGB分别使用5位、6位、5位

RGB555:每个像素用16bit表示,RGB各用5位,余1位不用

RGB24:每个像素用24位,RGB各8位

RGB32:每个像素用32位,RGB各8位,余8位不用

ARGB32:每个像素用32位,RGB各8位,余8位表示alpha通道值

YUV

YUV采用明亮度和色度来指定像素的颜色。

Y表示亮度,对于一张图像来说单独的Y分量即可表示,但显示出来是黑白的。

UV分量代表色度,色度又细分为色调和饱和度。

对于YUV图像来说并不是每个像素点都需要包含YUV三个分量,按照不同的采样格式,Y与UV之间存在不同的比例关系。

格式转换

对图像进行各种算法操作时都使用YUV格式,如果不涉及颜色甚至可以只对Y分量进行处理。在实际显示时要转为RGB通过显示器来进行显示。

采样分类

4:4:4采样

YUV444指Y、U、V三个分量比例相同,每个像素的三个元素包含完整信息,每个像素存储占用3个字节。

采样举例

图像像素:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
采样码流:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
最后映射出的像素点:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

占用内存和RGB表示方法一致,不节省资源

4:2:2采样

YUV422指Y和UV按照2:1比例采样。每两个Y分量公用一个U分量和一个V分量,一个YUV占(8+4+4=16bits)2个字节

采样举例

图像像素:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
采样码流:Y0 U0  Y1  V1 Y2 U2  Y3  V3
最后映射出的像素点:[Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]

Y0和Y1之间存在U和V分量的共用,减少了1个字节的空间占用

4:2:0采样

每四个Y分量共用一个U分量和一个V分量,一个YUV占(8+2+2=12bits)1.5个字节

采样举例

图像像素:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
		[Y4 U4 V4]、[Y5 U5 V5]、[Y6 U6 V6]、[Y7 U7 V7]
采样码流:Y0 U0 Y1 Y2 U2 Y3 Y4 V4 Y5 Y6 V6 Y7
最后映射出的像素点:[Y0 U0 V4]、[Y1 U0 V4]、[Y2 U2 V6]、[Y3 U2 V6]
				 [Y4 U0 V4]、[Y5 U0 V4]、[Y6 U2 V6]、[Y7 U2 V6]

Y0 Y1 Y2 Y3
? U0 U2
? V4 V6
Y4 Y5 Y6 Y7

示意图如上,也就是说至少需要扫描两行才能获得完整UV分量。

四个Y分量共用一套UV分量,原本存储8个像素需要24字节,现在只需要12字节,节省一半存储空间。

存储格式

两种存储格式

  • planar平面格式:连续存储所有像素点的Y分量,再存储U分量,最后存储V分量
  • packed打包模式:YUV分量连续交替存储

基于4:2:2采样的存储格式

YUYV

Y0和Y1共用U0V0分量,Y2和Y3共用U2V2分量

Y0 U0 Y1 V0 Y2 U2 Y3 V2

UYVY

Y0和Y1共用U0V0分量,Y2和Y3共用U2V2分量

U0 Y0 V0 Y1 U2 Y2 V2 Y3

类似还有YVYU/VYUY等格式

YUV 422P

采用平面格式存储。连续存储所有像素点的Y分量,再存储U分量,最后存储V分量。

基于4:2:0采样的存储格式

YUV 420P

按照UV顺序的不同又分为YU12和YV12,上图为YU12

YUV 420SP

NV12常用于IOS系统,先Y分量再UV分量

Y Y Y Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
U V U V
U V U V

NV21常用于安卓系统,先Y分量再VU分量。

Y Y Y Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
V U V U
V U V U

参考

1、https://blog.csdn.net/qq_41554005/article/details/100147657?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164627681416780265468557%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164627681416780265468557&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_ran