您的位置:首页 > 其它

颜色空间笔记

2016-07-15 15:46 148 查看
http://blog.csdn.net/lg1259156776/article/details/48317339 http://www.zhihu.com/question/19697338




YCbCr

YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到的图像质量的变化。主要的子采样格式有 YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。

4:2:0表示每4个像素有4个亮度分量,2个色度分量 (YYYYCbCr),仅采样奇数扫描线,是便携式视频设备(MPEG-4)以及电视会议(H.263)最常用格式;4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),是DVD、数字电视、HDTV 以及其它消费类视频设备的最常用格式;4:4:4表示全像素点阵(YYYYCbCrCbCrCbCrCbCr),用于高质量视频应用、演播室以及专业视频产品。
采样格式

主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr 4:1:1 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值),每 2x2 个点保存一个 Cr 和Cb 值,图像在肉眼中的感觉不会起太大的变化。所以,原来用 RGB(R,G,B 都是 8bit unsigned) 模型,每个点需要 8x3=24 bits(如下图第一个图). 而仅需要 8+(8/4)+(8/4)=12bits,平均每个点占12bits。这样就把图像的数据压缩了一半。

上边仅给出了理论上的示例,在实际数据存储中是有可能是不同的,下面给出几种具体的存储形式:


YUV 4:4:4

YUV三个信道的抽样率相同,因此在生成的图像里,每个象素的三个分量信息完整(每个分量通常8比特),经过8比特量化之后,未经压缩的每个像素占用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


YUV 4:2:2

每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。

下面的四个像素为: [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]


YUV 4:1:1

4:1:1的色度抽样,是在水平方向上对色度进行4:1抽样。对于低端用户和消费类产品这仍然是可以接受的。对非压缩的8比特量化的视频来说,每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存

下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

存放的码流为: Y0 U0 Y1 Y2 V2 Y3

映射出像素点为:[Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2]


YUV4:2:0

4:2:0并不意味着只有Y,Cb而没有Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1,所以可以说色度的抽样率是4:1。对非压缩的8比特量化的视频来说,每个由2x2个2行2列相邻的像素组成的宏像素需要占用6字节内存。

下面八个像素为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

[Y5 U5 V5] [Y6 U6 V6] [Y7U7 V7] [Y8 U8 V8]

存放的码流为:Y0 U0 Y1 Y2 U2 Y3

Y5 V5 Y6 Y7 V7 Y8

映射出的像素点为:[Y0 U0 V5] [Y1 U0 V5] [Y2 U2 V7] [Y3 U2 V7]

[Y5 U0 V5] [Y6 U0 V5] [Y7U2 V7] [Y8 U2 V7]



颜色匹配

通过改变参加混色各颜色的量,使混合色与指定颜色达到视觉上相同的过程,称做颜色匹配。

对于饱和度很高的颜色,例如某些光谱色,常常不能用红、绿、兰三种颜色直接混合得到。为了匹配,需把某种颜色转加到被匹配颜色一方,然后用另二种颜色混合与降低了饱和度的颜色进行匹配。

二、颜色方程式

颜色匹配可以用数学方法表示。R量的红颜色(R)、G量的绿颜色(G)和B量的兰颜色(B)混合,正好与颜色(C)相匹配,这一事实可用方程表示为

(C)=R(R)+G(G)+B(B)

不能直接匹配,需把某种颜色加到被匹配颜色一方的情况,例如用红(R)、绿(G)、兰(B)匹配光谱黄色,需把兰色(B)加到黄色(C)一边再进行匹配。此时,颜色方程可写成

                                                                         (C)+B(B)=R(R)+G(G)

移项得
                                                                                 (C)=R(R)+G(G)-B(B)

三、颜色匹配实验的结论

从大量的颜色匹配实验中,可以得到如下的结论:

1、红、绿、兰三种颜色以不同的量值(有的可能为负值)相混合,可以匹配任何颜色。

2、红、绿、兰不是唯一的能匹配所有颜色的三种颜色。三种颜色,只要其中的每一种都不能用其它两种混合产生出来,就可以用它们匹配所有的颜色。


转自 http://blog.csdn.net/lg1259156776/


什么是颜色

Wiki是这样说的:颜色或色彩是通过眼、脑和我们的生活经验所产生的一种对光的视觉效应。嗯,简单点说,颜色就是人对光的一种感觉,由大脑产生的一种感觉。感觉是一个很主观的东西,你怎么确定你看到的红色和我看到的是一样的呢?这个视频解释的很不错。我们需要先假设正常人对于同一种光产生的感觉基本是一致的,讨论才能继续下去。

人的视网膜上布满了感光细胞,当有光线传入人眼时,这些细胞就会将刺激转化为视神经的电信号,最终在大脑得到解释。视网膜上有两类感光细胞:视锥细胞和视杆细胞。

视锥细胞大都集中在视网膜的中央,每个视网膜大概有700万个左右。每个视锥细胞包含有一种感光色素,分别对红、绿、蓝三种光敏感。这类细胞能在较明亮的环境中提供辨别颜色和形成精细视觉的功能。

视杆细胞分散分布在视网膜上,每个视网膜大概有1亿个以上。这类细胞对光线更为敏感(敏感程度是视锥细胞的100多倍),一个光子就足以激发它的活动。视杆细胞不能感受颜色、分辨精细的空间,但在较弱的光线下可以提供对环境的分辨能力(比如夜里看到物体的黑白轮廓)。

当一束光线进入人眼后,视细胞会产生4个不同强度的信号:三种视锥细胞的信号(红绿蓝)和视感细胞的信号。这其中,只有视锥细胞产生的信号能转化为颜色的感觉。三种视锥细胞(S、M和L类型)对波长长度不同的光线会有不同的反应,每种细胞对某一段波长的光会更加敏感,如下图。这些信号的组合就是人眼能分辨的颜色总和。 





这里有一个重要的理论:我们可以用3种精心选择的单色光来刺激视锥细胞,模拟出人眼所能感知的几乎所有的颜色(例如红绿光的混合光,和单色黄光,刺激视锥细胞产生的视神经信号是等效的),这就是三色加法模型。所以说”三原色”的原理是由生理因素造成的。


颜色的数字化

根据上面的理论,只需要选定三原色,并且对三原色进行量化,那就可以将人的颜色知觉量化为数字信号了。三色加法模型中,如果某一种颜色(C),和另外一种三色混合色,给人的感觉相同时,这三种颜色的份量就称为该颜色(C)的三色刺激值。对于如何选定三原色、如何量化、如何确定刺激值等问题,国际上有一套标准——CIE标准色度学系统。

CIE(国际照明委员会)是位于欧洲的一个国际学术研究机构,1931年,CIE在会议上根据之前的实验成果提出了一个标准——CIE1931-RGB标准色度系统。

CIE1931-RGB系统选择了700nm(R) 546.1nm(G) 435.8nm(B) 三种波长的单色光作为三原色。之所以选这三种颜色是因为比较容易精确地产生出来(汞弧光谱滤波产生,色度稳定准确)。



从上图可以看到,三个颜色的刺激值R、G、B如何构成某一种颜色:例如580nm左右(红绿线交叉点)的黄色光,可以用1:1(经过亮度换算..)的红绿两种原色混合来模拟. 

如果要根据三个刺激值R、G、B来表现可视颜色,绘制的可视图形需要是三维的。为了能在二维平面上表现颜色空间,这里需要做一些转换。颜色的概念可以分为两部分:亮度(光的振幅,即明暗程度)、色度(光的波长组合,即具体某种颜色)。我们将光的亮度(Y)变量分离出来,之后用比例来表示三色刺激值: 

r=RR+G+Bg=GR+G+Bb=BR+G+B

这样就能得出r+g+b=1。由此可见,色度坐标r、g、b中只有两个变量是独立的。这样我们就把刺激值R、G、B转换成r、g、Y(亮度)三个值,把r、g两个值绘制到二维空间得到的图就是色域图。 



上图中,马蹄形曲线就表示单色的光谱(即光谱轨迹)。例如540nm的单色光,可以看到由r=0、g=1、b=(1-r-g)=0三个原色的分量组成。再例如380-540nm波段的单色光,由于颜色匹配实验结果中红色存在负值的原因,该段色域落在了r轴的负区间内。自然界中,人眼可分辨的颜色,都落在光谱曲线包围的范围内。

CIE1931-RGB标准是根据实验结果制定的,出现的负值在计算和转换时非常不便。CIE假定人对色彩的感知是线性的,因此对上面的r-g色域图进行了线性变换,将可见光色域变换到正数区域内。CIE在CIE1931-RGB色域中选择了一个三角形,该三角形覆盖了所有可见色域,之后将该三角形进行如下的线性变换,将可见色域变换到(0,0)(0,1)(1,0)的正数区域内。即假想出三原色X、Y、Z,它们不存在于自然界中,但更方便计算。 

⎡⎣⎢XYZ⎤⎦⎥=1b21⎡⎣⎢b11b21b31b12b22b32b13b23b33⎤⎦⎥⎡⎣⎢RGB⎤⎦⎥=10.17697⎡⎣⎢0.490.176970.000.310.812400.010.200.010630.99⎤⎦⎥⎡⎣⎢RGB⎤⎦⎥

得到的结果就是下图: 



注意这里的颜色只是示意,事实上没有设备能完全还上面所有的自然色域

这个图有些有意思的性质:

该色度图所示意的颜色包含了一般人可见的所有颜色,即人类视觉的色域。色域的马蹄形弧线边界对应自然界中的单色光。色域下方直线的边界只能由多种单色光混合成。 

在该图中任意选定两点,两点间直线上的颜色可由这两点的颜色混合成。给定三个点,三点构成的三角形内颜色可由这三个点颜色混合成。 

给定三个真实光源,混合得出的色域只能是三角形(例如液晶显示器的评测结果),绝对不可能完全覆盖人类视觉色域。 

这就是CIE1931-XYZ标准色度学系统。该系统是国际上色度计算、颜色测量和颜色表征的统一标准,是几乎所有测色仪器的设计与制造依据。

链接:http://www.zhihu.com/question/19697338/answer/23263592
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

为什么三原色不能表示所有颜色,这个得从三刺激理论说起:

可见光的波长范围大致在390nm到700nm之间,但人类只能在几nm这个尺度上感受到这些光的区别,也就是说,对于纯色光(只含一种波长的光),人类大概只能识别100种。基于此,有人提出了人眼中有100种感受不同波长光的光感受体,也有人认为有6到7种不同的光感受体。但最被认可的是Thomas Young、Hermann von Helmholtz的三刺激理论。三刺激理论认为,人眼中含有三种不同的光感受体。这种猜想后来被证实,确实存在三种不同的视锥细胞,分别能够感应红、绿、蓝三种光的刺激。下图是三种细胞对不同波长光的响应曲线,分别在420nm、534nm、564nm达到高峰,注意,这三种波长的光并不能真正对应到蓝、绿、红色,所以,严格的说,这三种受体分别应该称为长波、中波、短波光感受体。



下图描述了经典的颜色匹配实验,左侧是白板,在上方发射单一波长的纯色光,下方可以发射三种不同波长的光,并可以调整它们的强度,人眼透过狭缝去观察上下两块板的颜色是否相同。



这三种色光通常是700
nm(红色)、546.1 nm(绿色)和435.8 nm(蓝色)三种光,如果我们把可见的单色光都用三色光匹配出来,就可以得到下图:



注意,在一段波长范围内,红色光的刺激值出现了负值。这是由于无论如何调整三色光,都无法匹配过于饱和的单色光,只好将红色光与待匹配的单色光混合(也就是将红色光的发光器转移到上方),以降低其饱和度。

R、G、B是色彩匹配函数





的值,按如下公式定义r、g、b,



很显然,r + g + b = 1,如果我们知道r、g、b中任意两个的值,就可以确定第三个变量的值。将色彩匹配函数曲线在rg坐标系中画出,就得到rg色度图:



由于r、g会出现负值,为了方便计算,CIE引入了XYZ空间,令



就得到X、Y、Z的颜色匹配曲线,



如果我们定义x、y为:


将x、y的值在xy坐标系中画出就得到xy色度图,



上图中红、绿、蓝点分别表示三原色,连接这三点得出的三角形即为由三原色混合所得颜色的范围,三角形外的颜色均不能由三原色混合产生。而普通显示器因为技术原因,并不能发出纯正的单色光,故而所围成的三角形更小,显示的颜色更少。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: