RGB色彩模型

RGB颜色模型是一种加色模型,其中红,绿和蓝光以各种方式添加在一起以再现各种颜色。 模型的名称来自三种添加的原色(红色,绿色和蓝色)的首字母缩写。

RGB彩色模型的主要用途是用于电子系统(如电视机和计算机)中图像的感测,表示和显示,尽管它也用于传统摄影。 在电子时代之前,基于人类对颜色的感知,RGB颜色模型已经有了一个坚实的理论。

RGB是一种依赖于设备的颜色模型:不同的设备检测或再现给定的RGB值的方式不同,因为颜色元素(如荧光粉或染料)及其对各个R,G和B级别的响应因制造商而异,或者甚至随着时间的推移在同一设备中。 因此,如果没有某种颜色管理,RGB值不会在不同设备上定义相同的颜色。

典型的RGB输入设备是彩色电视机和摄像机,图像扫描仪和数码相机。 典型的RGB输出设备是各种技术(CRT,LCD,等离子,OLED,量子点等),计算机和移动电话显示器,视频投影仪,多色LED显示器和JumboTron等大屏幕的电视机。 另一方面,彩色打印机不是RGB设备,而是减色设备(通常是CMYK颜色模型)。

本文讨论使用RGB颜色模型的所有不同颜色空间的通用概念,这些颜色空间在彩色图像生成技术的一个实现中或另一个实现中使用。

添加颜色
要用RGB形成颜色,必须叠加三个光束(一个红色,一个绿色和一个蓝色)(例如,通过从黑色屏幕发射或通过从白色屏幕反射)。 三个光束中的每一个被称为该颜色的一个分量,并且它们中的每一个都可以在混合物中具有从完全关闭到完全开启的任意强度。

RGB颜色模型是三个光束相加在一起的意义上的加和,并且它们的光谱相加波长用于波长,以形成最终颜色的光谱。 这与应用于油漆,油墨,染料和其他物质的减色法模型基本上相反,后者的颜色取决于反射我们所看到的光线。 由于其特性,这三种颜色会产生白色,这与物理颜色形成鲜明对比,例如混合时产生黑色的染料。

每个组件的零强度给出最黑的颜色(不发光,被认为是黑色),每个组件的全强度给出一个白色; 这种白光的质量取决于主要光源的性质,但是如果它们适当平衡,结果是与系统白点相匹配的中性白光。 当所有组分的强度相同时,结果会根据强度而变为灰色,深色或浅色。 当强度不同时,结果是彩色色调,或多或少地饱和,这取决于所使用的原色强度的最强和最弱的差异。

当其中一个成分具有最强的强度时,颜色是接近该原色(红,绿或蓝)的色调,并且当两个成分具有相同最强的强度时,则该颜色是次要颜色的色调(阴影青色,品红色或黄色)。 第二种颜色由相同强度的两种原色的总和形成:青色为绿色+蓝色,品红色为红色+蓝色,黄色为红色+绿色。 每种次要颜色都是一种主要颜色的补充; 当主要色彩和辅助色彩相加时,结果为白色:青色补足红色,品红色补充绿色,黄色补充蓝色。

RGB颜色模型本身没有定义红色,绿色和蓝色比色的含义,所以混合它们的结果不是绝对的,而是相对于原色指定的。 当定义红色,绿色和蓝色原色的准确色度时,色彩模型将变为绝对色彩空间,如sRGB或Adobe RGB; 有关更多细节,请参阅RGB色彩空间。

选择红色,绿色和蓝色的物理原则

原色的选择与人眼的生理机能有关; 良好的原色是使人视网膜的视锥细胞对不同波长的光的响应之间的差异最大化并且由此形成大的颜色三角形的刺激。

人眼(锥形细胞)中的正常三种光敏感光细胞对黄色(长波长或L),绿色(中等或M)和紫色(短或S)光(570nm附近的峰值波长) ,分别为540nm和440nm)。 从三种类型接收到的信号的差异允许大脑区分不同颜色的广泛色域,而对黄绿光最敏感(总体),以及绿色至橙色区域中色调之间的差异。

举例来说,假设橙色波长范围内的光(大约577nm到597nm)进入眼睛并撞击视网膜。 这些波长的光将激活视网膜的中波长和长波长锥,但不是同样 – 长波长单元将响应更多。 大脑可以检测到反应的差异,这种差异是我们对橙色感知的基础。 因此,物体的橙色外观来自物体进入我们眼睛的光线,并且同时刺激不同的锥体,但程度不同。

三种原色的使用不足以重现所有颜色; 只有由原色的色度所定义的颜色三角形内的颜色可以通过对这些颜色的光的非负量的加法混合来再现。

RGB颜色模型理论和用法的历史
RGB颜色模型基于Thomas Young和Hermann Helmholtz在19世纪初至中期开发的Young-Helmholtz三色视觉理论,以及James Clerk麦克斯韦的色三角,阐述了该理论(大约1860年)。

摄影
RGB在早期彩色摄影中的第一次实验是由麦克斯韦本人于1861年完成的,其中涉及将三种颜色过滤的独立拍摄相结合的过程。 为了再现彩色照片,需要在黑暗的房间中在屏幕上的三个匹配投影。

在二十世纪初期,AutochromeLumière彩色印版和其他屏版技术例如Joly彩色屏幕和Paget工艺也使用了添加剂RGB模型和变体,如橙 – 绿 – 紫。 彩色摄影采用三个独立的平板被其他先驱使用,例如1909年到1915年期间的俄罗斯谢尔盖普罗库金 – 戈尔斯基。这种方法持续到1960年左右,使用昂贵和极其复杂的三色碳化Autotype工艺。
在使用时,通过使用互补CMY模型的染料或颜料,通过简单地使用滤波片的负极片,从三片相片再现印片:反向红色产生青色片,依此类推。

电视
在开发实用电子电视之前,早在1889年在俄罗斯就有机械扫描彩色系统的专利。 彩色电视先驱John Logie Baird在1928年展示了世界上第一个RGB彩色传输,并且在1938年在伦敦也展示了世界上第一个彩色电视。 在他的实验中,扫描和显示是通过旋转彩色轮机械地完成的。

哥伦比亚广播系统公司(CBS)于1940年开始实验性RGB场顺序彩色系统。图像被电扫描,但系统仍使用移动部件:与垂直扫描同步旋转的透明RGB色轮在1200转以上。 相机和阴极射线管(CRT)都是单色的。 彩色由相机和接收器中的色轮提供。 最近,色轮已用于基于德州仪器单色DLP成像仪的场序式投影电视接收机。

1938年,德国的Werner Flechsig在彩色CRT显示器上使用了现代RGB阴影掩膜技术。

个人电脑
二十世纪七十年代末和八十年代早期的早期个人电脑,例如Apple,Atari和Commodore的个人电脑,并未将RGB用作管理色彩的主要方法,而是使用复合视频。 IBM为其第一台IBM个人电脑(1981年)推出了采用彩色图形适配器(CGA)的16色配色方案(四位 – 红色,绿色,蓝色和强度各一位),随后采用增强型图形适配器(EGA )。1987年,第一家用于PC的真彩色显卡(TARGA)的制造商是Truevision,但直到1987年视频图形阵列(VGA)到来后,RGB才开始流行,主要原因是模拟适配器和监视器之间的连接信号,可以实现非常广泛的RGB颜色。 实际上,它必须等待几年,因为原始的VGA卡像EGA一样是调色板驱动的,虽然比VGA更自由,但是因为VGA连接器是模拟的,后来的VGA变体(由各种制造商根据非正式名称超级VGA)最终添加了真彩色。 1992年,杂志大量宣传TrueColor Super VGA硬件。

RGB设备

RGB和显示
彩色CRT的剖面图:1.电子枪2.电子束3.聚焦线圈4.偏转线圈5.阳极连接6.用于分离显示图像的红色,绿色和蓝色光束的掩模7.带红色,绿色和蓝色区域8.屏幕荧光粉涂层内侧的特写

RGB彩色模型的一种常见应用是阴极射线管(CRT),液晶显示器(LCD),等离子显示器或有机发光二极管(OLED)显示器(例如电视机,计算机监视器等)上的颜色显示。或大屏幕。 屏幕上的每个像素都是通过驱动三个小而非常接近但仍然分开的RGB光源来构建的。 在常见的观看距离,单独的来源是难以区分的,它会欺骗眼睛看到给定的纯色。 一起排列在矩形屏幕表面中的所有像素与彩色图像一致。

在数字图像处理过程中,每个像素可以在计算机存储器或接口硬件(例如,图形卡)中表示为红色,绿色和蓝色分量的二进制值。 如果管理得当,这些值将通过伽马校正转换为强度或电压,以纠正某些设备固有的非线性,从而在显示屏上重现预期的强度。

夏普发布的Quattron使用RGB颜色,并将黄色添加为子像素,据推测允许增加可用颜色的数量。

视频电子
RGB也是指在视频电子行业中使用的一种分量视频信号。 它由三个信号组成 – 红色,绿色和蓝色 – 由三个独立的电缆/引脚承载。 RGB信号格式通常基于单色视频的RS-170和RS-343标准的修改版本。 这种类型的视频信号在欧洲广泛使用,因为它是可以在标准SCART连接器上传输的最佳质量信号。 这个信号被称为RGBS(也存在4个BNC / RCA端接电缆),但它直接兼容用于计算机监视器的RGBHV(通常用15针D-sub或5个BNC连接器端接15针电缆) ,它携带独立的水平和垂直同步信号。

在欧洲以外,RGB作为视频信号格式并不是非常流行; S-Video在大多数非欧洲地区占据了这一地位。 但是,世界上几乎所有的电脑显示器都使用RGB。

视频帧缓冲区
帧缓冲器是用于将数据存储在所谓的视频存储器(包括视频RAM或类似芯片的阵列)中的计算机的数字设备。 这些数据可以传输到三个数模转换器(DAC)(用于模拟监视器),每个原色一个,或直接传输到数字监视器。 由软件驱动,CPU(或其他专用芯片)将适当的字节写入视频存储器以定义图像。 现代系统通过将8位分配给每个R,G和B组件来编码像素颜色值。 如果使用索引彩色图形模式,则RGB信息可以由像素位本身直接携带,也可以由单独的颜色查找表(CLUT)提供。

CLUT是一种专门的RAM,用于存储定义特定颜色的R,G和B值。 每种颜色都有自己的地址(索引) – 将其视为描述性参考编号,在图像需要时提供该特定颜色。 CLUT的内容非常类似于调色板。 使用索引颜色的图像数据指定CLUT内的地址,为每个特定像素提供所需的R,G和B值,一次一个像素。 当然,在显示之前,CLUT必须加载R,G和B值,这些值定义了每个要渲染的图像所需的颜色调色板。 一些视频应用程序将这些调色板存储在PAL文件中(例如Microsoft AOE游戏,例如使用半打以上),并且可以在屏幕上组合CLUT。

RGB24和RGB32
这种间接方案限制了图像CLUT中可用颜色的数量 – 通常为256立方(3个颜色通道中的8位,值为0-255) – 虽然RGB24 CLUT表中的每种颜色只有8位,代表每个256位代码R,G和B初级组合数学理论说这意味着任何给定的颜色都可以是16,777,216种可能颜色中的一种。 然而,其优点是索引彩色图像文件可以比每个主要像素仅有8位/像素小得多。

但是,现代存储的成本要低得多,大大减少了最小化图像文件大小的需求。 通过使用红色,绿色和蓝色强度的适当组合,可以显示许多颜色。 目前典型的显示适配器对每个像素使用高达24位的信息:每个分量8位乘以三个分量(参见下面的数字表示部分(24位= 2563,每个8位的主值为0-255)使用这个系统,允许16,777,216(2563或224)个R,G和B值的离散组合,提供了数百万种不同的(尽管不一定是可区分的)色调,饱和度和亮度阴影,增加阴影已经以各种方式实现,一些格式,例如.png和.tga文件以及其他使用第四个灰度色彩通道作为遮罩层的格式,通常称为RGB32。

对于从最暗到最亮的中等亮度范围的图像,每个原色的8位可以提供高质量的图像,但极端图像需要每个原色的更多位以及先进的显示技术。 有关更多信息,请参阅高动态范围(HDR)成像。

非线性
在经典的阴极射线管(CRT)器件中,由于加速电子的影响,荧光屏上给定点的亮度与施加到电子枪控制栅极的电压不成正比,而是与该电压的膨胀函数成比例。 这种偏差量被称为伽马值({\ displaystyle \ gamma} \ gamma),这是幂律函数的参数,它紧密地描述了这种行为。 线性响应由1.0的伽玛值给出,但实际的CRT非线性具有2.0至2.5的伽马值。

类似地,电视和计算机显示设备上的输出强度与R,G和B施加的电信号(或通过数字 – 模拟转换器驱动它们的文件数据值)不成正比。 在典型的2.2-gamma CRT显示器上,输入强度RGB值(0.5,0.5,0.5)仅输出全亮度(1.0,1.0,1.0)的22%,而不是50%。 为了获得正确的响应,在对图像数据进行编码时使用伽玛校正,并且可能进一步进行校正,作为设备的颜色校准过程的一部分。 伽玛影响黑白电视以及颜色。 在标准彩色电视机中,广播信号经过伽马校正。

RGB和相机

在20世纪90年代以前制造的彩色电视机和摄像机中,入射光由棱镜和滤光片分离成三种RGB原色,将每种颜色送入单独的视频摄像机管(或拾取管)。 这些管是一种阴极射线管,不要与CRT显示器混淆。

随着商业上可行的电荷耦合器件(CCD)技术在20世纪80年代的到来,首先拾音管被这种传感器所取代。 后来,应用了更高规模的集成电子元件(主要由索尼),简化甚至取消了中间光学元件,从而减小了家用摄像机的尺寸,最终导致了全摄式摄像机的发展。 目前的摄像头和带摄像头的手机是这种技术最小型化的商业形式。

使用CMOS或CCD图像传感器的摄影数码相机通常会随着RGB模型的一些变化而运行。 在Bayer滤光片排列中,为了获得比色度分辨率更高的亮度分辨率,绿色被赋予两倍于红色和蓝色(比例1:2:1)的检测器。 传感器有一排红色,绿色和蓝色检测器,排列成第一行为RGRGRGRG,下一行为GBGBGBGB,并在随后的行中重复该顺序。 对于每个通道,在去马赛克过程中通过插值获得缺失的像素以构建完整的图像。 另外,为了将摄像机RGB测量值映射到标准RGB色彩空间(如sRGB),以前应用的其他过程也已应用。

RGB和扫描仪
在计算中,图像扫描仪是一种光学扫描图像(打印文本,手写体或对象)并将其转换为数字图像并传输到计算机的设备。 除其他格式外,还有平板,鼓和胶片扫描仪,其中大多数支持RGB颜色。 它们可以被认为是早期的远距拍摄输入设备的继承者,它们能够通过标准电话线将连续的扫描线发送为模拟幅度调制信号到合适的接收器; 自20世纪20年代至20世纪90年代中期以来,这些系统一直在使用。 彩色电传照片作为三个分离的RGB滤波图像连续发送。

目前可用的扫描仪通常使用电荷耦合器件(CCD)或接触式图像传感器(CIS)作为图像传感器,而较旧的鼓扫描仪使用光电倍增管作为图像传感器。 早期的彩色胶片扫描仪使用卤素灯和三色滤光轮,因此需要三次曝光才能扫描单个彩色图像。 由于加热问题,其中最糟糕的是扫描胶片的潜在破坏,该技术后来被诸如彩色LED之类的非加热光源所取代。

颜色深度
RGB颜色模型是在计算中对颜色进行编码的最常用方法之一,并且正在使用几种不同的二进制数字表示法。 所有这些的主要特征是通过仅使用一定范围内的整数(通常从0到2的某个幂减1(2n-1))来量化每个分量的可能值(技术上为样本(信号))以拟合他们进入一些小组。 每种颜色的编码通常为1,2,4,5,8和16位; 用于RGB颜色的总位数通常称为颜色深度。

几何表示
由于颜色通常由三个分量定义,不仅在RGB模型中,而且在其他颜色模型(例如CIELAB和Y’UV等)中,通过将分量值视为普通笛卡尔坐标来描述三维体积在欧洲的空间。 对于RGB模型,这由一个立方体表示,该立方体使用0-1范围内的非负值,在顶点(0,0,0)处将原点分配为黑色,并且沿着三个轴向上增加强度值在顶点(1,1,1)呈白色,与黑色对角相对。

RGB三元组(r,g,b)表示立方体或其面内或沿其边缘的给定颜色点的三维坐标。 该方法允许通过计算两个给定RGB颜色之间的距离来计算两种给定RGB颜色的颜色相似性:距离越短,相似度越高。 色域外计算也可以通过这种方式执行。

网页设计中的颜色
HTML的RGB颜色模型在HTML 3.2中被正式采用为互联网标准,尽管它在此之前已经使用了一段时间。 最初,大多数视频硬件的有限颜色深度导致由Netscape Color Cube定义的216种RGB颜色的有限调色板。 随着24位显示器的优势,HTML RGB颜色代码的全部1670万种颜色的使用不再对大多数观众造成问题。

网页安全的调色板由红色,绿色和蓝色的216(63)组合组成,其中每种颜色可以取六个值中的一个(十六进制):#00,#33,#66,#99,#CC或#FF(基于上述每个值的0到255范围)。 这些十六进制值= 0,51,102,153,204,255(十进制),其强度为0%,20%,40%,60%,80%,100%。 这对于将216种颜色分成6维的立方体来说似乎很好。但是,缺少伽马校正,标准2.5伽马CRT / LCD上的感知强度仅为0%,2%,10%,28%,57% 100%。 请参阅实际的网页安全调色板,以便进行视觉确认,以确认大多数颜色是非常暗的,或者参见Xona.com颜色列表,以便正确地比较颜色正确的颜色,然后再比较他们缺少适当的伽玛校正。

色彩管理
主要文章:色彩管理
正确地再现色彩,尤其是在专业环境中,需要对生产过程中涉及的所有设备进行色彩管理,其中许多设备使用RGB。 为了确保整个过程的颜色一致性,颜色管理在典型的生产周期中,在独立于设备的设备和依赖于设备的颜色空间(RGB和其他颜色打印的CMYK)之间进行了几次透明转换。 除创意处理外,对数字图像的干预可能会损害色彩精确度和图像细节,尤其是在色域缩小的情况下。 专业数字设备和软件工具可以处理48 bpp(每像素位数)图像(每个通道16位),以最大限度地减少任何此类损害。

兼容ICC的应用程序(如Adobe Photoshop)在色彩空间之间转换时使用Lab色彩空间或CIE 1931色彩空间作为配置文件连接空间。

CSS中的语法是:
RGB(#,#,#)
其中#分别等于红色,绿色和蓝色的比例。 该语法可以在诸如“background-color:”或(用于文本)“color:”之类的选择器之后使用。

RGB模型和亮度 – 色度格式关系
在不同的电视和视频标准中使用的所有亮度 – 色度格式,例如用于NTSC的YIQ,用于PAL的YUV,用于SECAM的YDBDR和用于分量视频的YPBPR使用色差信号,通过该色差信号可以编码RGB彩色图像用于广播/之后再次解码为RGB以显示它们。 这些中间格式需要与先前存在的黑白电视格式兼容。 而且,与全RGB信号相比,那些色差信号需要较低的数据带宽。

类似地,当前的高效数字彩色图像数据压缩方案(例如JPEG和MPEG)以YCBCR格式内部存储RGB颜色,基于YPBPR的数字亮度 – 色度格式。 YCBCR的使用还允许计算机对色度通道执行有损子采样(通常为4:2:2或4:1:1的比率),从而减少由此产生的文件大小。