RGB和YUVRGB和YUV都是色彩空间,用于表示颜色,两者可以相互转化。YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL)。YUV主要用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的带宽(RGB要求三个独立的视频信号同时传输)。其中Y表示明亮度(Luminance或Luma),也就是灰阶值;是个基带信号。而U和V表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。U和V不是基带信号,它俩是被正交调制了的。亮度是通过RGB输入信号来创建的,方法是将RGB信号的特定部分叠加到一起。色度则定义了颜色的两个方面-色调与饱和度,分别用Cr和CB来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而CB反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。。通过运算,YUV三分量可以还原出R(红),G(绿),B(兰)。一、和rgb之间换算公式的差异yuv--rgbY''=0.299*R''+0.587*G''+0.114*B''U''=-0.147*R''-0.289*G''+0.436*B''=0.492*(B''-Y'')V''=0.615*R''-0.515*G''-0.100*B''=0.877*(R''-Y'')R''=Y''+1.140*V''G''=Y''-0.394*U''-0.581*V''B''=Y''+2.032*U''yCbCr--rgbY’=0.257*R''+0.504*G''+0.098*B''+16Cb''=-0.148*R''-0.291*G''+0.439*B''+128Cr''=0.439*R''-0.368*G''-0.071*B''+128R''=1.164*(Y’-16)+1.596*(Cr''-128)G''=1.164*(Y’-16)-0.813*(Cr''-128)-0.392*(Cb''-128)B''=1.164*(Y’-16)+2.017*(Cb''-128)Note:上面各个符号都带了一撇,表示该符号在原值基础上进行了伽玛校正。所谓伽玛校正就是对图像的伽玛曲线进行编辑,以对图像进行非线性色调编辑的方法,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果。计算机绘图领域惯以此屏幕输出电压与对应亮度的转换关系曲线,称为伽玛曲线(GammaCurve)。以传统CRT(CathodeRayTube)屏幕的特性而言,该曲线通常是一个乘幂函数,Y=(X+e)γ,其中,Y为亮度、X为输出电压、e为补偿系数、乘幂值(γ)为伽玛值,改变乘幂值(γ)的大小,就能改变CRT的伽玛曲线。典型的Gamma值是0.45,它会使CRT的影像亮度呈现线性。使用CRT的电视机等显示器屏幕,由于对于输入信号的发光灰度,不是线性函数,而是指数函数,因此必需校正。二、来源上的差异yuv色彩模型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。第一个公式是YUV转换RGB(范围0-255)时用的,第二个公式是用在YUV(601)也成为YCbCr转换RGB(范围0-255)时用的。1.Y=0.299R+0.587G+0.114BU=-0.147R-0.289G+0.436BV=0.615R-0.515G-0.100BR=Y+1.14VG=Y-0.39U-0.58VB=Y+2.03U2.B=1.164*(Y-16)+2.018*(U-128)G=1.164*(Y-16)-0.38*(U-128)-0.813*(V-128)R=1.164*(Y-16)+1.159*(V-128)YUV与RGB之间的变换颜色空间是一个三维坐标系统,每一种颜色由一个点表示。在RGB颜色空间中,红,绿,蓝是基本元素。RGB格式是显示器通常使用的格式。在YUV空间中,每一个颜色有一个亮度信号Y,和两个色度信号U和V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变。YUV格式通常用于PAL制,即欧洲的电视传输标准,而且缺省情况下是图像和视频压缩的标准。大多数的计算机图形工作者熟悉RGB,而大多数的具有图像背景的则熟悉YUV。RGB可以认为是三个分别表示红,绿,蓝颜色的灰度图像。把它们组合在一起就可以产生各种各样的颜色。YUV使用RGB的信息,但它从全彩色图像中产生一个黑白图像,然后提取出三个主要的颜色变成两个额外的信号来描述颜色。把这三个信号组合回来就可以产生一个全彩色图像。那么YUV是怎么产生的呢?当时,工程师们需要找到一种办法来使彩色电视广播可以兼容黑白电视。他们使用的彩色信号也需要保全带宽因为RGB数据不能适合信号空间的限制。通过合并颜色信息,YUV使用比RGB更小的带宽,并且与黑白电视兼容。YUV使用红,绿,蓝的点阵组合来减少信号中的信息量。Y通道描述Luma信号,它与亮度信号有一点点不同,值的范围介于亮和暗之间。Luma是黑白电视可以看到的信号。U(Cb)和V(Cr)通道从红(U)和蓝(V)中提取亮度值来减少颜色信息量。这些值可以从新组合来决定红,绿和蓝的混合信号。一些对YUV的较深的研究揭示了当从视频图像中提取时,为什么蓝色总是看起来不很舒服的两个原因。U通道的范围是从红到黄,V通道的范围是从蓝到黄。因为黄色其实是红和绿,红色基本上被传输三次,绿色是两次而蓝色只有一次。重建亮度部份揭示了另外一个原因,蓝色通道只有11%的亮度。Luma=30%红+59%绿+11%蓝YUV和RGB的转换VGA卡通过设置红,蓝,绿三色的强度来显示颜色。这三种颜色形成笛卡尔坐标系统的轴线。任何一种颜色都是这个颜色空间的一点。你不需要使用这个坐标来定义颜色空间的一点。一个灰度图像只使用颜色空间中那些有着相同红,蓝,绿强度的点。我们可以作一个坐标,其中红,蓝,绿是相等的。这个坐标叫做亮度坐标。我们还可以通过从亮度中提取红和蓝部份作两个新的坐标。新的坐标是红和蓝的色度值,用于添加颜色到图像中。亮度坐标标识为Y,蓝的色度坐标标识为U,红的色度坐标标识为V。我们建立的这三个新坐标形成了JPEG图像中使用的三个部份。以下的公式用于在这两个坐标系统之间互相转换。Y=0.299R+0.587G+0.114BU=-0.1687R-0.3313G+0.5B+128V=0.5R-0.4187G-0.0813B+128R=Y+1.402(V-128)G=Y-0.34414(U-128)-0.71414(V-128)B=Y+1.772(U-128)需要注意的是我们只使用RGB颜色空间中三个坐标都为正的象限。当我们从YUV转换到RGB时,我们必须确保坐标不是负数而且它们没有超过允许的最大值。那么为什么我们要使用YUV颜色空间呢?那时因为人的眼睛对亮度的敏感高于对色度的敏感。通常JPEG在进行其它任何压缩前会丢掉3/4的色度信息。这可以减少图像所要存储信息的1/2。如果三个部份全部存储的话,4pixels就需要3x4=12个值。如果两个部份的3/4的信息可以丢掉不要的话,我们就只需要1x4+2x1=6个值。YUV图象存储机制:Y:U:V=8:4:4Y:占用1个字节(8bit)U,V:每2个象素占用1个字节(8bit),及每个象素占4bitY:U:V=8:2:2Y:占用1个字节(8bit)U,V:每4个象素占用1个字节(8bit),及每个象素占2bit用解码器对该文件(clock.mpg)解压后产生的YUV目标码文件的说明:Y文件的长度为:84,480BYTEU,V文件的长度分别为:21,120BYTE84480/21120=4对该组YUV文件可得出结论:Y:U:V=8:2:2RGB图象存储机制:R:表示红色信息,占用1个字节(8bit)G:表示绿色信息,占用1个字节(8bit)B:表示蓝色信息,占用1个字节(8bit)R:G:B=8:8:8YUV与RGB图象之间的变换关系:Y=0.2990R+0.5870G+0.1140BU=-0.1687R-0.3313G+0.5000B+128V=0.5000R-0.4187G-0.0813B+128反变换关系:R=1.0Y+0+1.402(V-128)G=1.0Y-0.34413(U-128)-0.71414(V-128)B=1.0Y+1.772(U-128)+0另一种变换关系:Y=(R+2G+B)/4U=R-GV=B-G反变换:G=Y-(U+V)/4R=U+GB=V+G说明:式中表示=W的最大整数类似文章中的转换公式:Y=0.299R+0.587G+0.114BU=-0.1687R-0.3313G+0.5B+128V=0.5R-0.4187G-0.0813B+128R=Y+1.402(V-128)G=Y-0.34414(U-128)-0.71414(V-128)B=Y+1.772(U-128)YUV的颜色空间和RGB的颜色空间范围有些差异,而且YUV色系的颜色不是线性变化的,实际处理上有很多麻烦的地方。对于很大的图或者视频流用上面的转换公式速度会很慢,我没有分析过解霸,但是他曾经说过每个bit是2个时钟周期,我想他利用的一定是查表法,不然当年的486下不可能那么流畅。由于在Y文件中,一个象素占一个BYTE,所以一帧数据应该是:352*240=84480BYTE在U,V文件中,每四个象素占一个BYTE,所以一帧数据的长度因该是:352*240/4=21120BYTERGB、Lab、YUV、HSI、HSV等颜色空间的区别1、RGB颜色空间RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器都使用R、G、B数值来驱动R、G、B电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同的色彩显示结果。显示器和扫描仪使用的RGB空间与CIE1931RGB真实三原色表色系统空间是不同的,后者是与设备无关的颜色空间。btw:Photoshop的色彩选取器(ColorPicker)。可以显示HSB、RGB、LAB和CMYK色彩空间的每一种颜色的色彩值。2、Lab颜色空间Lab颜色空间是由CIE(国际照明委员会)制定的一种色彩模式。自然界中任何一点色都可以在Lab空间中表达出来,它的色彩空间比RGB空间还要大。另外,这种模式是以数字化方式来描述人的视觉感应,与设备无关,所以它弥补了RGB和CMYK模式必须依赖于设备色彩特性的不足。由于Lab的色彩空间要比RGB模式和CMYK模式的色彩空间大。这就意味着RGB以及CMYK所能描述的色彩信息在Lab空间中都能得以影射。Lab空间取坐标Lab,其中L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色,负端代表兰色(a,b)有L=116f(y)-16,a=500[f(x/0.982)-f(y)],b=200[f(y)-f(z/1.183)];其中:f(x)=7.787x+0.138,x0.008856;f(x)=(x)1/3,x0.008856。3、YUV颜色空间在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD(点耦合器件)摄像机,它把摄得的彩色图像信号,经分色、分别放大校正得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y、B-Y,最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这就是我们常用的YUV色彩空间。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图就是黑白灰度图。彩色电视采用