为了方便记录,以下名词等价:
1、色彩空间==颜色空间==色域==表示颜色的模型或方法
2、采样方式==(图像)信息元素的记录方式==数据结构中信息的记录方式
一、像素到底是什么? 像素是用来描述图像信息元素的数据结构
如果把一张图片看成是一堆信息元素的集合,那么为了描述一张图片,我们要先建模,用一个数据结构来表示信息元素。从而,建模后图像就成了一堆数据结构(结构体)的集合,现在给这种数据结构起个名字就叫像素;所以像素不是一个具体的物理量,它仅仅是一个抽象的数据结构。
二、在像素这种数据结构中可以记录颜色信息(因为图像就是由不同颜色组成的),如果用RGB颜色空间来表示颜色,那么一个像素又要分成 红、绿、蓝 3个子像素(或者叫3个分量)。如果用YUV这种颜色空间来表示颜色,又可以分成 Y(亮度--luminance)、UV(色度也叫色差,色度又被分成两个独立信号存储,U (Cb--蓝色,其值==Cb-Y)、 V(Cr --红色,其值==Cr --Y))。
1、在这里有必要解释下YUV了,如果说RGB是通过3原色的组合来表示颜色那么YUV是如何表示颜色的呢?答案是---通过亮度和色差来表示(亮度是黑--白信号,色度是色彩信号)
科学发现,人们对亮度的敏感程度要强于对色度的敏感程度。所以基于这个原理,我们在存储像素的时候,就多存储亮度,少存储色度从而减少存储空间。
YUV 有3中采样方式 YUV444,YUV422,YUV420
如果用手画这3中采样方式,可以是Y用方括号表示,UV看成一个整体,画成在Y里面的一个圈。所以eg444,就画4个方框(Y)再在每个方框里面画一个圈
(1) YUV444 记录4个亮度就要分别再记录4个U和4个V
图中,背景(黑白相间的那个)表示亮度,画画绿绿的那个表示色度
这种存储方式,主要是为了保证画面的质量(防止在处理过程中画质降低)。
(2)YUV422 ,两个亮度共享一个色度
大多数人分辨不出444和422的区别。
同样,采集4个像素,他们数据结构中的3个分量分别是:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
根据相邻2个像素共享一个UV色度对的原则,存放的码流是:Y0 U0 Y1 V1 Y2 U2 Y3 V3
对码流再映射(重新构造像素),得到的像素是:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]
(3)YUV411 , 原谅找不到他的图片,但其实很简单,411 和 420 可以联想记忆,
420 是2*2 个像素公用一个UV ,而411 是 水平方向上连续4个像素公用一个UV
对于4个像素 [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
411 采用“夹三明治法”,两个亮度Y之间夹一个色度(U或V),U,V交替采集、先U后V,4个Y共用一个UV
所以存放码流是: Y0 U0 Y1 Y2 V2 Y3
再映射后:[Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2]
(4)YUV420
注意,虽然Y、U、V的比是420,表面上看好像应该是4个Y,2个U和0个V,既V一个都不取,但事实上完全不是这个样子。
它实际指得是对每行扫描线来说,只取一种色度分量(先U后V),且色度分量和亮度的比例是2:1,既遂平方向上2个Y共用一个U或V。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推
扫描线:
采集8个像素,
//-----------------------------------------------------------------
好了,YUV的格式就差不多讲到这里,另外还有一点,将YUV数据显示出来(由软件或硬件处理)是需要将数据进一步处理的--既格式包装
YUV的格式包装有两种方式:a、packed format 打包格式 b、planar format 平面格式
a、packed format ,表示将Y和UV封装在一起打成一个包,具体实现就是存放在一个数组中。YUY2就是打包格式,它的YUV比是422
b、planar format ,表示将Y、U、V 分别封装打包,形成3个plane(平面),具体实现就是分别存在3个数组中。YV12是平面格式,它的YUV比是420
2、比较不同色彩空间(只有通过比较才会知道为什么要有这么多的色彩表示方式)
(1)RGB,RGB色彩空间是面向硬件的,一般设备采集到的像素中的颜色信息就是通过分成R、G、B来保存的。RGB 图像占的存储空间大,所以它适合显示系统,不适合图像处理。
另外,RGB颜色由于是对真实食物的直接采样,所以图像会受到光照、阴影等因素影响,同时RGB空间,色度(红绿蓝)要受亮度的影响,如果亮度改变,色度都会改变;
还有,RGP图像的传输需要同时3个信道分别来传输R\G\B3个信号,这样才能在另一端呈像
(2)YUV,在这种格式中,Y\U\V是分别编码和存储的,所以可以使用分时的方法在一个信道上传输,这也是YUV最重要的特性。;、
三、