COLORSPACESTrainingProgramHans12目录:RGB颜色空间YUV颜色空间YIQ颜色空间YCbCr颜色空间PhotoYCC颜色空间HIS、HLS和HSV颜色空间色度图其它颜色空间伽玛校正颜色空间是一系列颜色的数学表现形式。三种最流行的颜色模型是RGB(用于计算机图形);YIQ,YUV或YCbCr(用于视频系统)和CMYK(用于彩色打印)。但是,这三种颜色没有一种和我们直觉概念上的色调,饱和度,亮度有直接的联系。这就使我们暂时去追寻其它的模型,如HIS和HSV,它们能简化编程,处理和终端用户操作。所有的颜色空间都能由照相机身扫描仪等仪器所提供的RGB信息得到RGB颜色空间3RGB颜色空间4在计算机图形中广泛使用红,绿和蓝(RGB)颜色空间。红,绿,蓝是三种主要的相加色(不同的颜色加在一起形成所需的颜色)。用一个三维笛卡尔坐标系统(图1.1)来表示。图中所示的立方体对角线(到三基色的距离相等)代表了不同的灰阶。表1.1包含100%幅度,100%饱和度彩条信号(一种常用测试信号)的RGB值。表1.1100%RGB彩条信号图1.1RGB颜色立方体黄色青色红紫色RGB颜色空间5RGB颜色空间在计算机图形中使用最为普遍,因为彩色显示器使用RGB来产生所需的颜色。所以,选用RGB颜色空间简化了系统的构建和设计。而且,由于RGB颜色空间使用了好几年,所以可以利用大部分现有的软件程序模块。然而,RGB颜色空间在处理现实图像时,它的效率并不是很高。要产生RGB颜色立方体内的任意颜色,所有的RGB三基色都必须有相同的带宽。这就直接导致了每个RGB基色需要像素深度(Pixeldepth)和显示分辨力都相同的帧存储器。而且,在RGB颜色空间内处理一幅图像通常也不是最有效的方式。举个例子,我们要改变一个像素点的亮度或色度,我们必须从帧缓冲器中读出所有的RGB颜色值,然后计算亮度或色度,然后对它们进行相应的更改,计算出新的RGB值,写回帧缓冲器。如果系统访问的是直接以亮度和色度存储的图像,一些处理步骤就会更快了。由于这些以及其它的原因,很多视频标准使用亮度和两个色差信号。其中最为普遍的是YUV,YIQ,和YCbCr颜色空间。尽管它们彼此关联,但还是有一些区别的。YUV颜色空间6YUV颜色空间7YUV颜色空间在PAL(PhaseAlternationLine),NTSC(NationalTelevisionSystemCommittee)和SECAM(SequentielCouleurAvecMémoireorSequentialColorwithMemory)复合颜色视频标准中使用。黑白电视系统只使用亮度信号(Y);色度信号(U,V)以一种特殊的方式加入亮度信号,这样,黑白电视接收机能够显示正常的黑白图像而彩色电视接收机能够对对附加的色度信号进行解码从而显示彩色图像。伽马校正后的RGB(用R'G'B'表示)和YUV的转换方程式为:Y=0.299R′+0.587G′+0.114B′U=–0.147R′–0.289G′+0.436B′=0.492(B′–Y)V=0.615R′–0.515G′–0.100B′=0.877(R′–Y)R′=Y+1.140VG′=Y–0.395U–0.581VB′=Y+2.032UYUV颜色空间8对于范围为0-255的数字R‘G’B‘,Y的范围为0-255,U为0到±112,V为0到±157。我们经常对这些方程式进行缩放,使之在现实中的NTSC或PAL数字编解码器中更容易实现。注意,对于8比特的YUV和R‘G’B‘的数字数据,为了避免上溢和下溢,它们的数值不能超出0到255阶的范围。如果我们使用范围内所有的B‘-Y和R’-Y数据,那么复合NTSC和PAL电平将超出(现在采用的)黑白电视发送接收机所支持的电平。实验证明,调制后的载波电平的偏移量在亮度信号白电平以上,黑电平以下的20%范围内是允许的。我们选用了一个缩放因子,使得75%幅度,100%饱和度的黄色和青色彩条刚好处在白电平上(100IRE)。YIQ颜色空间9YIQ颜色空间10YIQ颜色空间由YUV颜色空间导出,在NTSC复合彩色视频标准中选用。(“I”代表同相,“Q”代表正交,这是传递色度信息的调制方式。)R'G'B'和YIQ转换的基本方程式是:Y=0.299R′+0.587G′+0.114B′I=0.596R′–0.275G′–0.321B′=Vcos33°–Usin33°=0.736(R′–Y)–0.268(B′–Y)Q=0.212R′–0.523G′+0.311B′=Vsin33°+Ucos33°=0.478(R′–Y)+0.413(B′–Y)R′=Y+0.956I+0.621QG′=Y–0.272I–0.647QB′=Y–1.107I+1.704QYIQ颜色空间11对于范围为0-255的数字R‘G’B‘,Y的范围为0-255,I为0到±152,Q为0到±134。I和Q由U和V旋转33°得到。我们经常对这些方程式进行缩放,使之在现实中的NTSC数字编解码器中更容易实现。注意,对于8比特的YIQ和R‘G’B‘的数字数据,为了避免上溢和下溢,它们的数值不能超出0到255阶的范围。YCBCR颜色空间12YCBCR颜色空间13随着世界范围内的数字分量视频标准的发展,YCbCr颜色空间作为ITU-RBT.601的一部分发展起来。YCbCr由YUV颜色空间缩放和偏移得到。Y标称8比特,范围为16-235,Cb和Cr的标称范围为16-240。YCbCr有很多不同的采样格式,如4:4:4,4:2:2,4:1:1,4:2:0,我们将对它们分别进行讨论。RGB-YCbCr方程式:SDTV(标清)标称范围为16-235的8比特数字R‘G’B‘(工作室RGB)和YCbCr之间的基本转换方程式为:Y601=0.299R′+0.587G′+0.114B′Cb=–0.172R′–0.339G′+0.511B′+128Cr=0.511R′–0.428G′–0.083B′+128R′=Y601+1.371(Cr–128)G′=Y601–0.698(Cr–128)–0.336(Cb–128)B′=Y601+1.732(Cb–128)当我们将YCbCr转换为R‘G’B‘时,R’G‘B’的标称范围是16-235,由于Y和CbCr可能偶然超出16-235和16-240范围(视频处理和噪声的缘故),此时R‘G’B‘可能偏移到0-15和236-255范围内。注意,对于8比特的YCbCr和R'G'B'的数字数据,为了避免上溢和下溢,它们的数值不能超出0到255阶的范围。表1.2列出了75%幅度,100%饱和度的彩条信号(一种常用的视频测试信号)的YCbCr值.YCBCR颜色空间14计算机系统的考虑计算机系统中的R'G'B'数值范围为0-255,使用以下的方程式可能会更加方便:Y601=0.257R′+0.504G′+0.098B′+16Cb=–0.148R′–0.291G′+0.439B′+128Cr=0.439R′–0.368G′–0.071B′+128R′=1.164(Y601–16)+1.596(Cr–128)G′=1.164(Y601–16)–0.813(Cr–128)–0.391(Cb–128)B′=1.164(Y601–16)+2.018(Cb–128)注意,对于8比特的YCbCr和R‘G’B‘的数字数据,为了避免上溢和下溢,它们的数值不能超出0到255阶的范围。YCBCR颜色空间15RGB-YCbCr方程式:HDTV(高清)标称范围为16-235的8比特数字R‘G’B‘(工作室RGB)和YCbCr之间的基本转换方程式为:Y709=0.213R′+0.715G′+0.072B′Cb=–0.117R′–0.394G′+0.511B′+128Cr=0.511R′–0.464G′–0.047B′+128R′=Y709+1.540(Cr–128)G′=Y709–0.459(Cr–128)–0.183(Cb–128)B′=Y709+1.816(Cb–128)当我们将YCbCr转换为R‘G’B‘时,R’G‘B’的标称范围是16-235,由于Y和CbCr可能偶然超出16-235和16-240范围(视频处理和噪声的缘故),此时R‘G’B‘可能偏移到0-15和236-255范围内。注意,对于8比特的YCbCr和R'G'B'的数字数据,为了避免上溢和下溢,它们的数值不能超出0到255阶的范围。表1.2列出了75%幅度,100%饱和度的彩条信号(一种常用的视频测试信号)的YCbCr值.YCBCR颜色空间16计算机系统的考虑计算机系统中的R‘G’B‘数值范围为0-255,使用以下的方程式可能会更加方便:Y709=0.183R′+0.614G′+0.062B′+16Cb=–0.101R′–0.338G′+0.439B′+128Cr=0.439R′–0.399G′–0.040B′+128R′=1.164(Y709–16)+1.793(Cr–128)G′=1.164(Y709–16)–0.534(Cr–128)–0.213(Cb–128)B′=1.164(Y709–16)+2.115(Cb–128)注意,对于8比特的YCbCr和R‘G’B‘的数字数据,为了避免上溢和下溢,它们的数值不能超出0到255阶的范围。YCBCR颜色空间17表1.275%YCbCr彩条信号YCBCR颜色空间184:4:4YCbCr格式图1.2描述了4:4:4格式的YCbCr采样点的位置。每一个采样点都取一个Y,Cb和Cr样点值。每个分量的每一个采样点通常是8比特(消费类应用领域)或是10比特(专业视频领域)。所以,一个采样点就需要24比特(专业应用领域里30比特)。图1.24:4:4Co-Sited采样方式,采样点处在隔行图片的有交扫描行上YCBCR颜色空间194:2:2YCbCr格式图1.3描述了4:2:2格式的YCbCr采样点的位置。每条扫描线上每两个Y采样点,取一个Cb,Cr采样点值。每个分量的每一个采样点通常是8比特(消费类应用领域)或是10比特(专业视频领域)。所以,一个采样点就需要16比特(专业应用领域里20比特)。通常被安排成图1.4所示的格式。要显示4:2:2的YCbCr数据,先要将它转换成4:4:4的YCbCr数据(使用插值法生成丢失的Cb和Cr采样点)。图1.34:2:2Co-Sited采样方式,采样点处在隔行图片的有交扫描行上图1.44:2:2帧缓冲格式YCBCR颜色空间204:1:1YCbCr格式图1.5描述了4:1:1格式(有时也被叫做YUV12)的YCbCr采样点的位置,它用于一些消费类视频和DV视频压缩应用领域中。每条扫描线上每四个Y采样点,取一个Cb,Cr采样点值。每个分量的每一个采样点通常是8比特。所以,一个采样点就需要12比特。通常被安排成图1.6所示的格式。要显示4:1:1的YCbCr数据,先要将它转换成4:4:4的YCbCr数据(使用插值法生成丢失的Cb和Cr采样点)。图1.54:1:1Co-Sited采样方式,采样点处在隔行图片的有交扫描行上图1.64:1:1帧缓冲格式YCBCR颜色空间214:2:0YCbCr格式相比于仅仅只在水平方向上作2:1Cb,Cr压缩的4:2:2YCbCr,4:2:0YCbCr在水平和垂直方向上都对Cb,Cr做了2:1的压缩。它经常用来压缩视频。图1.7到图1.11列举了4:2:0的不同的几种采样格式。表1.3列出了不同的DV应用领域中的不同的YCbCr格式。要显示4:2:0的YCbCr数据,先要将它转换成4:4:4的YCbCr数据(使用插值法生成丢失的Cb和Cr采样点)。注意,有些MPEG解码器不能正确地将4:2:0格式的YCbCr数据转换为4:4:4格式,产生了色度错误。图1.74:2:0采样方式,用于H.261、H.263和MPEG-1。采样点位置处于逐行或隔行图片的有效扫描行图1.84:2:0采样方式,用于MPEG-2,MPEG