😎 作者介绍:我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun,视频号:AI-行者Sun
🎈 本文专栏:本文收录于《音视频》系列专栏,相信一份耕耘一份收获,我会分享音视频相关学习内容,不说废话,祝大家都offer拿到手软
🤓 欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章。
🖥随时欢迎您跟我沟通,一起交流,一起成长、进步!
YUV格式简介
YUV格式是一种将亮度和色度信息分离的像素表示方法,它在图像和视频处理中扮演着重要角色。在YUV格式中,“Y”代表亮度,也就是我们通常所说的灰度值,它决定了图像的明暗程度。而“U”和“V”则代表色度,它们负责描述图像的色彩和饱和度,帮助我们区分不同的颜色。
YCbCr是YUV的一个变种,它在国际电信联盟(ITU)制定的BT.601标准中被定义。YCbCr中的“Y”代表亮度分量,与YUV中的Y相同,而“Cb”和“Cr”则分别代表蓝色和红色色度分量。尽管YCbCr与YUV在概念上相似,但它们在数值表示上有所不同,YCbCr是YUV经过一定的缩放和偏移得到的。
YCbCr格式因其广泛的应用而广为人知,特别是在JPEG和MPEG等图像和视频编码标准中。它支持多种采样格式,包括4:4:4、4:2:2、4:1:1和4:2:0,这些格式在不同的应用场景下提供了不同的图像质量和压缩效率的平衡。
它是基于人眼对亮度变化比色度变化更敏感的原理设计的。YUV格式广泛应用于视频压缩和传输,因为它能够有效地减少数据量,同时保持图像质量。
什么是YUV格式?
YUV格式是一种颜色空间,它将颜色信息分解为三个独立的通道:Y通道代表亮度信息,U通道和V通道则代表颜色信息。这种分离允许对亮度和颜色进行独立处理,从而在压缩时可以更有效地利用人眼对亮度变化的敏感性。
YUV格式的诞生由来
这是一副RGB三通道组成的图像,那么我们存储它可能就是480x720x3(长,宽,RGB值),这样存储是没问题的,问题是现在的数据量和存储成本,导致我们需要去考虑如何压缩视频呢?
YUV格式的诞生源于彩色电视技术的发展和对兼容性的需求。在彩色电视出现之前,黑白电视只能显示灰度图像。随着技术的进步,彩色电视开始普及,但如何让彩色电视与黑白电视共存,同时接收相同的电视信号,成为了一个挑战。
YUV格式的出现正是为了解决这一问题。它将图像信息分为亮度(Y)和色度(U和V)两个部分。亮度信息(Y)可以独立于色度信息存在,使得黑白电视能够接收到Y信号并显示灰度图像。而色度信息(U和V)则为彩色电视提供了必要的色彩数据。
通过YUV格式,广播电视中心可以仅广播一套信号,这套信号既包含黑白图像所需的亮度信息,也包含彩色图像所需的色度信息。黑白电视在接收到YUV信号时,只解析Y分量,而忽略U和V分量,从而显示黑白图像。彩色电视则能够解析全部的YUV信号,将Y分量与U、V分量结合,从而显示出彩色图像。
YUV格式的这种设计,不仅实现了彩色电视和黑白电视的兼容,还为图像和视频的压缩、存储和传输提供了便利。
同样一幅图,看看YUV格式是如何存储的
其中的Y表示一幅灰度图,如果叠加了UV,就可以组合成一幅彩色画面,但对于黑白电视来说,只要Y就行。整个数字电视信号的传播过程可以用下图表示:
YUV除了可以分离黑白信息和彩色信息满足兼容性这个优势以外,还可以根据需要在采样时进行压缩,进而减少传输带宽,这是它的另一个优势。(具体看后面的内容)
YUV格式的类型
YUV格式有多种变体,主要区别在于采样方法的不同。以下是一些常见的YUV格式:
-
4:4:4:每个像素点都有Y、U、V三个分量,提供最高质量的图像,但数据量最大。
-
4:2:2:水平方向上,每两个像素共享U和V分量,适用于广播级视频。
研究表明,我们对亮度比较敏感,而对色度不怎么敏感, 绝大部分相邻的两个像素,色度信息差异不大,因此可以适当丢弃部分色差数据。具体就是,在水平方向上相邻的两个像素,共享同一个色度分量,即水平方向上亮度分量与色度分量采样比例为2:1, 每两个Y分量共享一组UV分量,如下图所示:
这样的话, 第一和第二个像素点共用一组UV分量,第三和第四个像素点共用了一组UV分量,由于丢弃了部分色度分量,这样就节省了图像空间。相邻2个像素点占用的空间为:(Y+Y+U+V) = 4 byte, 平均一个像素点占用的空间为:4 /2 = 2 byte。 -
4:2:0:水平和垂直方向上,每四个像素共享U和V分量,常见于DVD视频和网络视频流。
专家们进一步研究表示,每一行的相邻两个像素与下一行同位置的两个像素数据差异不大,可以进一步的丢数据。具体就是,在第一行采集时,只采集Y和其中一种色度分量(U 或者 V),在第二行采集时,仍然采集Y和其中的另一个色度分量。有点拗口,简单的说就是,第一行只采集Y和U,第二行只采集Y和V。这样采集的效果如下:
那该如何合成一个完整的像素点呢?水平方向上相邻的两个像素点已经无法再合成为一个完整的像素点(因为不是缺少U就是缺少V),
很简单,只要把上下两行的UV分量组合起来就行了。
就是说,第一行的第一个像素点(YU)可以使用第二行第一个像素点的V,组合成一个完整的YUV; 第一行第二个像素点(Y)可以使用第一行第一个像素点的U和第二行第一个像素点的V, 组合成一个完整的YUV,上下两行相邻的4个像素点共享一组UV分量。
这样的话,相邻4个像素点所占用的空间为(Y+Y+Y+Y+U+V) = 6 byte, 平均每个像素点占用的空间为 6 / 4 = 1.5 byte。可以看到 YUV 4:2:0 采样的图像比YUV444或 RGB 模型图像节省了一半的存储空间,因此它也是比较主流的采样方式。
- 4:1:1:水平方向上,每四个像素共享U分量,垂直方向上,每两个像素共享V分量,数据量较小,但可能
导致颜色细节丢失。
YUV与RGB的转换
RGB(红绿蓝)是另一种常见的颜色空间,广泛应用于显示器和图像编辑。YUV和RGB之间可以通过特定的转换公式相互转换。转换公式如下:
- Y = 0.299R + 0.587G + 0.114B
- U = -0.169R - 0.331G + 0.5B
- V = 0.5R - 0.419G - 0.081B
反之,从YUV转换回RGB的公式为:
- R = Y + 1.0 * V
- G = Y - 0.34414 * U - 0.71414 * V
- B = Y + 2.0 * U
YUV格式的应用
YUV格式的应用非常广泛,可以将其主要应用分为以下三个部分进行详细阐述:
1. 视频编码与传输
YUV格式在视频编码和传输中的应用是其最显著的特点之一。视频编码标准如MPEG-2、H.264和H.265等,都采用了YUV色彩空间来优化压缩效率。这些标准利用人眼对亮度变化比色度变化更敏感的特性,通过不同的采样率来压缩亮度和色度信息。例如,在4:2:0采样格式中,色度信息的采样率是亮度信息的一半,这样可以在不明显降低视觉质量的情况下减少数据量,从而节省存储空间和带宽。
2. 图像与视频编辑
在图像和视频编辑领域,YUV格式提供了对图像进行更精细调整的可能性。编辑软件可以独立地处理亮度(Y)和色度(U、V)信息,使得编辑者能够分别调整图像的亮度、对比度、饱和度和色调。这种分离处理方式对于创建专业级别的视觉效果至关重要。例如,在调整肤色或特定颜色时,编辑者可以只调整色度分量,而不影响整体的亮度平衡。
3. 广播与数字媒体
YUV格式在广播和数字媒体中的应用也非常重要。数字电视广播采用YUV格式来确保信号的兼容性,使得黑白和彩色电视都能接收到适合自己显示能力的信号。此外,在网络流媒体和视频点播服务中,YUV格式同样发挥着重要作用。流媒体服务提供商通常会使用YUV格式来优化视频的传输质量,通过调整色度的采样率来平衡视频质量与传输带宽的需求。
这三个部分概括了YUV格式在现代数字媒体处理中的核心应用。随着技术的发展和创新,YUV格式的应用领域还在不断扩展,它在图像和视频处理中的重要性也在不断增加。
结论
YUV格式是一种强大的颜色编码系统,它通过分离亮度和颜色信息,为图像和视频的存储、传输和处理提供了高效的方法。了解YUV格式及其与RGB的转换关系,对于从事图像和视频相关工作的专业人员来说至关重要。
希望这篇博客能帮助你更好地理解YUV格式及其在数字媒体领域的应用。如果你对YUV有更深入的问题或想要了解更多相关信息,欢迎在评论区留言讨论。
祝大家学习顺利~
如有任何错误,恳请批评指正~~
以上是我通过各种方式学习的经验和方法,欢迎大家评论区留言讨论呀,如果文章对你们产生了帮助,也欢迎点赞收藏,我会继续努力分享更多干货~
🎈关注我的公众号AI Sun可以获取Chatgpt最新发展报告以及腾讯字节等众多大厂面经。
😎也欢迎大家和我交流,相互学习,提升技术,风里雨里,我在等你~