关于YUV视频

简介: 关于YUV视频

什么是YUV

数字视频通常以YUV格式进行编码。

本文解释了YUV视频的一般概念,以及一些术语,而没有深入探讨YUV视频处理的数学问题。

如果你曾经使用过计算机图形学,你可能对RGB颜色很熟悉。RGB颜色使用三个值进行编码:红色、绿色和蓝色

这些值直接对应于可见光谱的部分。三个RGB值形成一个数学坐标系,称为颜色空间。

红色组件定义该坐标系的一个轴,蓝色定义第二个轴,绿色定义第三个轴,如下图所示。

任何有效的RGB颜色都位于该颜色空间内的某个位置。

例如,纯品红色为100%蓝色、100%红色和0%绿色。

尽管RGB是表示颜色的常用方式,但其他坐标系也是可能的

术语YUV指的是一系列颜色空间,所有这些颜色空间分别对亮度信息和颜色信息进行编码

与RGB一样,YUV使用三个值来表示任何颜色。这些值被称为Y、U和V

事实上,“YUV”一词的使用在技术上是不准确的。在计算机视频中,YUV一词几乎总是指一个特定的颜色空间,名为Y’CbCr,稍后会讨论。然而,YUV通常被用作任何与Y’Cb Cr原理相同的颜色空间的通用术语。

亮度是通过对红色、绿色和蓝色分量**进行加权平均而从RGB颜色中得出的。**对于标准清晰度电视,使用以下公式:

Y’ = 0.299R + 0.587G + 0.114B

这个公式反映了这样一个事实,即人眼对某些波长的光比其他波长的光更敏感,这会影响颜色的感知亮度。蓝光看起来最暗,绿光看起来最亮,红光介于两者之间。

这个公式也反映了早期电视中使用的磷光体的物理特性。考虑到现代电视技术,高清电视采用了一种新的公式:

Y’ = 0.2125R + 0.7154G + 0.0721B

在名为ITU-R BT.601的规范中定义了标准清晰度电视的亮度方程。对于高清晰度电视,相关规范为ITU-R BT.709。

U和V分量,也称为色度值或色差值,通过从原始RGB颜色的红色和蓝色分量中减去Y值来导出:

U = B - Y’

V = R - Y’

这些值加在一起就包含了足够的信息来恢复原始RGB值。

YUV的好处

好处一

模拟电视使用YUV的部分原因是历史原因。模拟彩色电视信号被设计为与黑白电视向后兼容。

彩色电视信号携带叠加在亮度信号上的色度信息(U和V)。黑白电视忽略色度并将组合信号显示为灰度图像。

(该信号的设计使色度不会显著干扰亮度信号。)彩色电视可以提取色度并将信号转换回RGB。

好处二

YUV的另一个优势在今天更为重要。**人眼对色调的变化不如对亮度的变化敏感。**结果,在不牺牲图像的感知质量的情况下,图像可以具有比亮度信息更少的色度信息。

例如,通常以亮度样本的水平分辨率的一半对色度值进行采样。换句话说,对于一行像素中的每两个亮度样本,存在一个U样本和一个V样本。假设使用8位对每个值进行编码,则每两个像素(两个Y’、一个U和一个V)总共需要4个字节,平均每个像素需要16位,或者比等效的24位RGB编码少30%。

YUV本质上并不比RGB更紧凑除非色度被下采样,否则YUV像素的大小与RGB像素的大小相同

此外,从RGB到YUV的转换没有损耗。如果没有下采样,YUV像素可以转换回RGB,而不会丢失信息。下采样使YUV图像更小,并且还丢失一些颜色信息。然而,如果执行正确,损失在感知上并不显著。

计算机视频中的YUV

数字

前面列出的YUV公式并不是数字视频中使用的精确转换。数字视频通常使用一种称为Y’CbCr的YUV形式

从本质上讲,Y’CbCr的工作原理是将YUV分量缩放到以下范围:

这些范围假定Y’CbCr分量的精度为8位。以下是Y’CbCr的精确推导,使用亮度的BT.601定义:

  • 从[0…1]范围内的RGB值开始。换句话说,纯黑为0,纯白为1。重要的是,这些是非线性(伽玛校正)RGB值。
  • 计算亮度。对于BT.601,Y’=0.299R+0.587G+0.114B,如前所述。
  • 计算中间色度差值(B-Y’)和(R-Y’)。(B-Y’)的这些值的范围为+/-0.886,(R-Y’)为+/-0.701。

模拟

  • 按如下方式缩放色度差值:

Pb = (0.5 / (1 - 0.114)) × (B - Y’)

Pr = (0.5 / (1 - 0.299)) × (R - Y’)

这些比例因子被设计为给两个值提供相同的数值范围,+/-0.5。

它们一起定义了一个名为Y’PbPr的YUV颜色空间。这种颜色空间用于模拟分量视频。

  • 缩放Y’PbPr值以获得最终的Y’PbCr值:

Y’ = 16 + 219 × Y’

Cb = 128 + 224 × Pb

Cr = 128 + 224 × Pr

这些最后的缩放因子产生上表中列出的值范围。当然,您可以直接将RGB转换为Y’CbCr,而无需存储中间结果。

这里单独列出了这些步骤,以显示Y’CbCr是如何从本文开头给出的原始YUV方程中导出的。

下表显示了各种颜色的RGB和YCbCr值,同样使用亮度的BT.601定义。

如该表所示,Cb和Cr与关于颜色的直观想法不一致。例如,纯白和纯黑都含有中性水平的Cb和Cr(128)。

Cb的最高值和最低值分别为蓝色和黄色。对于Cr,最高值和最低值分别为红色和青色。

三个问题

Y’PbPr和Y’CbCr有什么关系和区别?

在图像处理中,Y’PbPr和Y’CbCr是两种常见的色彩空间表示方式,分别用于模拟和数字电视信号。

Y’PbPr是模拟分量信号的表示方式,其中Y’是亮度信号,Pb和Pr是色度信号。

Y’CbCr是数字分量信号的表示方式,其中Y’是亮度信号,Cb和Cr是色度信号。

Y’PbPr和Y’CbCr都是分量接口的表示法,但是它们代表的是两种不同的概念,没有直接的关系。

Y’PbPr是模拟分量信号或模拟分量接口的表示法,Pb是Parallel的缩写,意为并行。它采用并行传输的方式,是满足高质量视频传输而设计的色彩分量形式及接口形式。

Y’CbCr是数字电视标准化时,为了兼容亮度、色差这种色彩编码方式而采用的一种类似于Y’PbPr的分量形式。CbCr这种表示方式早于Y’PbPr。CbCr是YUV经过缩放和偏移处理后的结构,是数字分量信号的表示法。

在进行图像处理或传输时,可能需要在这两种色彩空间之间进行转换。如果要将Y’PbPr转换为Y’CbCr,就需要对Y’PbPr值进行缩放和偏移处理,以得到与Y’CbCr值相对应的值。这个过程通常涉及到一些数学运算和转换算法。

Y’PbPr怎么转为Y’CbCr

在将Y’PbPr色彩空间转换为Y’CbCr色彩空间时,需要进行一系列的处理和转换。首先,需要对Y’PbPr信号进行数字化处理,即将模拟信号转换为数字信号。这个过程中需要使用模拟数字转换器(ADC)将模拟信号转换为数字信号。数字化处理后的Y’PbPr信号为数字信号,可以进行后续的转换处理。

接下来,需要进行色度信号的转换。在Y’PbPr色彩空间中,色度信号是Pb和Pr,而在Y’CbCr色彩空间中,色度信号是Cb和Cr。因此,需要进行色度转换,将Pb和Pr转换为Cb和Cr。这个过程中需要使用色度转换矩阵和一些数学算法来进行转换处理。

最后,将数字化后的Y’信号和Cb、Cr信号组合成Y’CbCr色彩空间表示的信号。这个过程中需要使用一些数学算法来进行组合处理,以得到完整的Y’CbCr色彩空间表示的信号。

需要注意的是,在进行转换时,由于数字化处理和色度信号的转换过程中可能存在误差和噪声等因素,因此需要进行一些处理和滤波等操作,以保证转换后的信号质量。此外,不同的转换算法和处理方法也会影响转换后的信号质量,因此需要根据具体情况选择合适的算法和方法来进行转换处理。

什么场景下会需要Y’PbPr怎么转为Y’CbCr

Y’PbPr色彩空间和Y’CbCr色彩空间都是色彩空间表示方式,它们之间的转换通常在数字图像处理和电视信号传输等领域中需要使用。转换的条件和场景可能因具体应用而异,但以下是一些可能需要将Y’PbPr色彩空间转换为Y’CbCr色彩空间的场景:

数字图像处理:在数字图像处理中,通常需要将图像从一种色彩空间转换到另一种色彩空间,以便更好地处理或显示图像。例如,当需要在图像处理软件中调整图像颜色或进行色彩平衡时,可能需要将图像从RGB色彩空间转换为Y’CbCr色彩空间,以便更好地处理图像的亮度和颜色。

数字电视信号传输:数字电视信号通常使用Y’CbCr色彩空间来表示图像,这是因为这种色彩空间可以更好地处理图像的亮度和颜色。在数字电视信号的传输过程中,通常需要将信号从一种色彩空间转换为另一种色彩空间,以便更好地传输和处理信号。例如,在将模拟电视信号转换为数字电视信号时,可能需要将信号从Y’PbPr色彩空间转换为Y’CbCr色彩空间。

多媒体应用:在多媒体应用中,例如视频编辑和流媒体传输等,通常需要将图像从一种色彩空间转换到另一种色彩空间,以便更好地处理或显示图像。例如,在视频编辑中,可能需要将图像从RGB色彩空间转换为Y’CbCr色彩空间,以便更好地处理图像的亮度和颜色。

总之,需要根据具体的应用和需求来确定是否需要将Y’PbPr色彩空间转换为Y’CbCr色彩空间。模拟电视信号转换为数字电视信号是为了提高信号质量、兼容性、分辨率和传输速度等。

参考资料

  • Recommended 8-Bit YUV Formats for Video Rendering
  • Keith Jack. Video Demystified, Fifth Edition. Newnes, 2007.
  • Charles A. Poynton. A Technical Introduction to Digital Video. Wiley, 1996.
目录
相关文章
|
4月前
|
存储 计算机视觉
10位和16位YUV视频格式
10位和16位YUV视频格式
63 0
|
8月前
|
存储 编解码 Android开发
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888等图像色彩编码格式区别
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888都是常见的图像颜色编码格式,它们之间的主要区别在于色彩空间和数据排列方式。
136 0
|
存储 数据挖掘
YUV色彩空间
本文介绍 YUV存储格式,什么是色调?什么是色饱和度?人类视觉系统是如何感知YUV的?YUV比RGB好在哪里
185 0
|
9月前
|
容器
yuv色彩空间和色彩范围
yuv色彩空间和色彩范围
117 0
Fffmpeg:从AVFrame中由YUV获取RGB
Fffmpeg:从AVFrame中由YUV获取RGB
142 0
|
存储 Web App开发 算法
【C++音视频开发】视频篇 | RGB与YUV
【C++音视频开发】视频篇 | RGB与YUV
【C++音视频开发】视频篇 | RGB与YUV
|
存储 编解码 数据处理
一文掌握 YUV 图像的基本处理
YUV 是一种色彩编码模型,也叫做 YCbCr,其中 “Y” 表示明亮度(Luminance),“U” 和 “V” 分别表示色度(Chrominance)和浓度(Chroma)。
920 0
一文掌握 YUV 图像的基本处理
|
编解码 芯片
|
存储 编解码 数据建模