YUV色彩系统

YUV是通常用作彩色图像流水线的一部分的颜色编码系统。 它对彩色图像或视频进行编码,将人类感知考虑在内,从而减少了色度分量的带宽,因此通常可以使传输错误或压缩伪像被人类感知比使用“直接”RGB表示更有效地屏蔽。 其他颜色编码具有相似的性质,实施或调查Y’UV性质的主要原因将用于与符合某些Y’UV标准的模拟或数字电视或摄影设备接口。

术语Y’UV,YUV,YCbCr,YPbPr等的范围有时是不明确和重叠的。 历史上,术语YUV和Y’UV用于电视系统中的颜色信息的特定模拟编码,而YCbCr用于适合于视频和静止图像压缩和传输(例如MPEG和JPEG)的颜色信息的数字编码。 今天,术语YUV通常用于计算机行业来描述使用YCbCr编码的文件格式。

Y’UV模型根据一个亮度(Y’)和两个色度(UV)分量定义色彩空间。 Y’UV彩色模型用于PAL复合彩色视频(不包括PAL-N)标准。 以前的黑白系统仅使用亮度(Y’)信息。 彩色信息(U和V)是通过一个副载波单独添加的,这样黑白接收机仍然能够接收和显示接收机本地黑白格式的彩色图像传输。

Y’代表亮度分量(亮度),U和V代表色度(色彩)分量; 亮度由Y表示,亮度由Y’表示 – 主要符号(’)表示伽玛压缩,其中“亮度”表示物理线性空间亮度,而“亮度”表示(非线性)感知亮度。

用于模拟分量视频的YPbPr色彩模型及其在数字视频中使用的数字版本YCbCr或多或少地来源于它,并且有时称为Y’UV。 (CB / PB和CR / PR在蓝色 – 黄色和红色 – 青色轴上偏离灰色,而U和V分别是蓝色亮度和红色亮度差异)。模拟NTSC电视中使用的Y’IQ色彩空间广播系统与其相关,尽管以更复杂的方式。 用于模拟SECAM和PAL-N电视广播系统的YDbDr色彩空间也有关系。

至于语源学,Y,Y’,U和V不是缩写。 字母Y用于亮度可以追溯到XYZ原色的选择。 这自然适用于使用亮度相同的字母(Y’),这接近感知均匀的亮度相关性。 同样,选择U和V来区分U和V轴与其他空间中的轴和V轴,例如x和y色度空间。 查看下面的公式或比较数学的历史发展。

历史
当工程师想要黑白基础设施中的彩色电视时,YUV被发明出来。 他们需要一种与黑白(B&W)电视兼容的信号传输方法,同时可以添加颜色。 亮度分量已经作为黑白信号存在; 他们添加了紫外线信号作为解决方案。

因为U和V是色差信号,所以选择色度的UV表示而不是直R和B信号。 换句话说,U和V信号告诉电视机在不改变其亮度的情况下改变某个像素的颜色。 或者U和V信号告诉显示器使另一种颜色变亮,而以另一种颜色为代价以及应该移动多少。 U和V值越高(或负值越低),像素获得的饱和度越高(彩色)。 U值和V值越接近零,越小,则颜色意味着红色,绿色和蓝色光线将更加平均亮度变化,从而产生灰度像素。 这是使用色差信号的好处,也就是说不是告诉一个颜色有多少红色,而是告诉红色多于绿色或蓝色。 这意味着当U和V信号为零或不存在时,它只会显示灰度图像。 如果已经使用了R和B,那么即使在B&W场景中,它们也将具有非零值,需要全部三个数据携带信号。 这在彩色电视的早期阶段非常重要,因为旧的黑白电视信号中没有U和V信号,这意味着彩色电视机只会将它显示为开箱即用的B&W电视机。 另外,黑白接收机可以采用Y’信号并忽略U-和V-彩色信号,使Y’UV向后兼容所有现有的黑白设备,输入和输出。 如果彩色电视标准没有使用色差信号,那么可能意味着彩色电视机会从黑白广播中制造出有趣的色彩,或者需要额外的电路将黑白信号转换为彩色。 有必要为色度信道分配较窄的带宽,因为没有额外的带宽可用。 如果某些亮度信息通过色度通道到达(如果使用RB信号而不是差分UV信号),那么B&W分辨率就会受到影响。

转换为RGB
SDTV与BT.601
YUV信号通常由RGB(红色,绿色和蓝色)源创建。 将R,G和B的加权值相加以产生Y’,Y’是总体亮度或亮度的量度。 U和V被计算为Y’与B和R值之间的缩放差异。

BT.601定义了以下常量:


YUV根据RGB计算如下:


Y’,U和V的结果范围分别为[0,1],[-Umax,Umax]和[-Vmax,Vmax]。

反转上述转换将Y’UV转换为RGB:


等效地,将常量的值代入并将它们表示为矩阵给出了BT.601的这些公式:


HDTV与BT.709

对于HDTV,ATSC决定改变WR和WB的基本值,与之前在SDTV系统中选择的值相比。 对于HDTV,这些值由Rec。提供。 709.这一决定进一步影响了Y’UV↔RGB转换矩阵,因此其成员值也略有不同。 因此,对于SDTV和HDTV,通常有两种不同的Y’UV表示可用于任何RGB三元组:SDTV-Y’UV和HDTV-Y’UV。 这意味着当直接在SDTV和HDTV之间转换时,亮度(Y’)信息大致相同,但色度(U&V)信道信息的表示需要转换。 仍在覆盖CIE 1931色彩空间的Rec。 709色彩空间几乎与Rec。 601,覆盖率达到35.9%。 与具有Rec的UHDTV相反。 2020覆盖面积更大,并将进一步看到它自己的YUV / Y’UV矩阵集。

BT.709定义了这些重量值:


BT.709的转换矩阵和公式如下:


笔记
用于计算Y’(矩阵的顶行)的权重与Y’IQ颜色空间中使用的权重相同。
对于U和V,红色,绿色和蓝色的等值(即灰度等级)产生0。黑色,RGB =(0,0,0)产生YUV =(0,0,0)。 白色,RGB =(1,1,1),产生YUV =(1,0,0)。
这些公式传统上用于模拟电视和设备; 数字设备如HDTV和数码摄像机使用Y’CbCr。

数值近似值
在开发快速SIMD浮点处理器之前,大多数RGB→Y’UV的数字实现都使用整数运算,特别是定点逼近。 近似值意味着所使用数字(输入数据,输出数据和常数值)的精度受到限制,因此,典型情况下需要权衡利用该选项的任何人接受典型的最后二进制数字的精度损失提高了计算速度。

在下面的例子中,操作员“  “表示a乘以b二进制位置的右移。 为了澄清,变量使用两个后缀字符:“u”用于无符号最终表示,“t”用于缩小的中间值。 以下示例仅适用于BT.601。 同样的原则可以用于使用符合BT.709或任何其他可比标准的数据进行可接受的匹配的值进行功能等效的操作。

Y’值通常被移位并且被缩放到范围[16,235](被称为演播室摆动或“TV等级”),而不是使用[0,255]的全部范围(被称为全摆幅或“PC等级“)。 这种做法在SMPTE-125M中被标准化,以适应由于滤波引起的信号过冲(“振铃”)。 值235容纳255-235 = 20或20 /(235-16)= 9.1%的最大黑白过冲,其略大于理论最大过冲(吉布斯现象)约8.9%的最大步骤。 脚趾空间较小,只允许16/219 = 7.3%的超调,这比理论上的8.9%的最大超调小。 这就是为什么16被添加到Y’以及为什么基本变换中的Y’系数总和为220而不是255.U和V值(可能是正值或负值)与128相加,使它们总是正值,给出工作室范围为16-240,适用于U和V.(这些范围对于视频编辑和制作非常重要,因为使用错误的范围会导致图像中“黑色”和“白色”被剪裁,或者低对比度图像。)

BT.601的工作室秋千
为了获得SDTV / BT.601的Y’UV的传统“演播室摆动”8比特表示,可以使用以下操作:

1.从8位RGB到16位值的基本转换(Y’:无符号,U / V:有符号,矩阵值四舍五入,以使后期所需的Y’范围为[16..235]和U / V达到[16..240]的范围):


2.用四舍五入(“+128”)(Y’:无符号,U / V:带符号)缩小(“>> 8”)为8位:


3.为这些值添加一个偏移量以消除任何负值(所有结果均为8位无符号):


BT.601全面展开
为了获得SDTV / BT.601的Y’UV的“全摆幅”8位表示,可以使用以下操作:

1.从8位RGB到16位值的基本转换(Y’:无符号,U / V:有符号,矩阵值四舍五入,以便达到每个[0..255]的所需Y’UV范围而不会发生溢出):


2.用四舍五入(“+128”)(Y’:无符号,U / V:带符号)缩小(“>> 8”)为8位值:


3.为这些值添加一个偏移量以消除任何负值(所有结果均为8位无符号):


一般的亮度/色度系统

亮度/色度系统(如Y’UV)及其亲属Y’IQ和YDbDr的主要优势在于它们与黑白模拟电视兼容(主要归功于Georges Valensi的工作)。 Y’通道保存黑白相机记录的所有数据,因此它产生适合在旧的单色显示器上接收的信号。 在这种情况下,U和V被简单地丢弃。 如果显示颜色,则使用全部三个通道,并且可以解码原始RGB信息。

YUV的另一个优势是可以放弃一些信息以减少带宽。 人眼对颜色的空间敏感性相当小:亮度通道的亮度信息的准确度对识别的图像细节的影响要比其他两个影像细节要大得多。 了解这种人为的缺点,诸如NTSC和PAL等标准大大降低了色度通道的带宽。 (带宽处于时间域,但随着图像被扫描出来,这转换为空间域。)

因此,所产生的U和V信号可以基本上被“压缩”。 在NTSC(Y’IQ)和PAL制式中,色度信号的带宽明显小于亮度。 NTSC的早期版本在相同图像区域中的特定颜色之间快速交替,以使它们看起来相互叠加以形成人眼,而所有现代模拟和甚至大多数数字视频标准通过以降低的分辨率记录图像的颜色信息来使用色度二次采样。 只保留与亮度信息相比水平分辨率的一半(称为4:2:2色度子采样),并且垂直分辨率通常也减半(给出4:2:0)。 采用4:x:x标准是因为最早的彩色NTSC标准采用了4:1:1的色度子采样(其中水平彩色分辨率被分为四等分,而垂直分辨率为全分辨率),因此图片仅携带一个与亮度分辨率相比,色彩分辨率高四分之一。 今天,只有处理未压缩信号的高端设备采用4:4:4的色度二次采样,亮度和色彩信息的分辨率相同。

I轴和Q轴是根据人类视觉所需的带宽来选择的,一个轴需要最大的带宽,另一个轴(偶然地在90度)是最小的。 然而,真正的I和Q解调相对更复杂,需要两条模拟延迟线,而NTSC接收机很少使用它。

然而,在模拟设备(包括传送数字信号的RCA连接器,因为它们所携带的全部是模拟复合视频,这种颜色空间转换是有损的,尤其是在从亮度到带色度线的串扰中反之亦然,反之亦然)是YUV,YIQ,甚至是CVBS)。 此外,NTSC和PAL编码的彩色信号的方式使得高带宽色度和亮度信号彼此混合,以保持与黑白电视设备的向后兼容性,这导致点爬行和交叉色彩伪影。 当NTSC标准在20世纪50年代创建时,这并不是一个真正的问题,因为图像质量受到监控设备的限制,而不是受限的带宽信号。 然而,今天的现代电视能够显示比这些有损信号中包含的更多信息。 为了跟上新显示技术的能力,从20世纪70年代后期开始尝试在传输图像时保留更多的Y’UV信号,如SCART(1977)和S-Video(1987)连接器。

代替Y’UV,Y’CbCr被用作(数字)通用视频压缩算法(如MPEG-2)的标准格式。 数字电视和DVD以MPEG-2格式保存它们的压缩视频流,该格式使用完整的Y’CbCr色彩空间,但保留了已建立的色度二次采样过程。 专业CCIR 601数字视频格式还采用Y’CbCr,色度采样率为4:2:2,主要用于兼容以前的模拟视频标准。这个流可以很容易地混合到任何需要的输出格式中。

YUV不是绝对的色彩空间。 这是对RGB信息进行编码的一种方式,显示的实际颜色取决于用于显示信号的实际RGB着色剂。 因此,如果使用标准RGB着色剂(即一组固定的主要色度,或者特定的红色,绿色和蓝色组),则表示为Y’UV的值是可预测的。

此外,RGB(无论是BT.601还是Rec.709)的颜色和亮度范围(称为色域)远小于YUV允许的颜色和亮度范围。 由于上述公式可能会产生“无效的”RGB值 – 即低于0%或远远超过该范围的100%的值(例如,从Y’UV(或Y’CbCr)转换为RGB),这可能非常重要。在电视和高清内容的标准16-235亮度范围(和16-240色度范围)之外,或在PC上标准清晰度以外的0-255之外)。 除非处理这些值,否则它们通常会被“剪切”(即有限)到受影响通道的有效范围。 这改变了颜色的色调,这是非常不希望的,所以通常认为更好地去除有问题的颜色以使它们落入RGB色域内。 同样,当给定比特深度的RGB在相同比特深度处被转换为YUV时,几个RGB颜色可以变成相同的YUV颜色,从而导致信息丢失。

与Y’CbCr的关系
YUV通常用作YCbCr的术语。 但是,它们是具有不同比例因子的完全不同的格式。

尽管如此,标准案例中它们之间的关系很简单。 尤其是,Y通道在两者中都相同,Cb和U都与(BY)成比例,并且Cr和V都与(RY)成比例。