当谈论YUV格式时,一般是指一种色彩编码系统,常用于数字视频。它将图像的亮度(Y)和色度(U和V)分开编码,以便有效地压缩数据而不损失太多图像质量。这种编码方式在视频压缩和传输中广泛应用,特别是在广播、视频流媒体和视频压缩标准中。
这里是对YUV格式的简要分析:
-
Y分量(亮度):Y分量表示图像的亮度信息。它是图像中的灰度信息,决定了图像的明暗程度。Y分量在颜色表示中占有重要地位,因为人眼对亮度的感知更为敏感。
-
U和V分量(色度):U和V分量表示图像的色彩信息。它们捕获了图像中的色彩差异。这两个分量一起描述了图像中的色调和饱和度。由于人眼对色彩的感知相对较低,因此U和V分量的采样率通常比Y分量低,以实现更高效的压缩。
-
取样率:YUV格式通常使用不同的取样率来表示每个分量的采样率。例如,常见的YUV格式之一是YUV420,其中Y分量的取样率最高,而U和V分量的取样率较低。这意味着对于相同的图像分辨率,U和V分量的数据量比Y分量更少,从而实现了数据压缩。
-
应用:YUV格式在数字视频编码中得到广泛应用,例如MPEG标准系列、H.264、H.265等。它们被用于数字视频压缩、视频传输和视频处理等各个领域。
利用 YUV 色彩编码模型可以降低图片数据的内存占用,提高数据处理效率,另外,YUV 编码模型的图像数据一般不能直接用于显示,还需要将其转换为 RGB(RGBA) 编码模型,才能够正常显示图像。
常见的几种采样方式
(可以想象空心白圈为一对UV,黑色实心圈为Y)
-
YUV444:每个像素的Y、U和V分量都有完整的采样,即每个分量都有与图像分辨率相同的采样率。这意味着每个像素的亮度和色度信息都是完整的,没有丢失任何细节。虽然质量高,但数据量也相对较大。(每像素占用 (Y + U + V = 8 + 8 + 8 = 24bits)3 字节;)
-
YUV422:Y分量的采样率与图像分辨率相同,但U和V分量的采样率每行各半,即对于每两个相邻像素,只有一个U和一个V样本。这种采样方式可以实现一定程度的数据压缩,同时保留相对较高的图像质量,适用于很多视频传输和存储场景。(每像素占用 (Y + 0.5U + 0.5V = 8 + 4 + 4 = 16bits)2 字节;)
-
YUV420:Y分量的采样率与图像分辨率相同,但U和V分量的采样率每行和每列各半,即对于每四个相邻像素,只有一个U和一个V样本。这种采样方式在视频压缩中应用广泛,因为它能够显著减少数据量,同时在视觉上的影响相对较小。(每像素占用 (Y + 0.25U + 0.25V = 8 + 2 + 2 = 12bits)1.5 字节;)
我们举个例子来算一算一张图片的大小,以一张1280*720分辨率的图片来计算,采用YUV422格式来计算:
首先我们要知道 1208*780指的是1280列,720行的像素矩阵
法1:
Y 分量:1280 * 720 = 921600 字节
U 分量:1280 * 720 * 0.5 = 460800 字节
V 分量:1280 * 720 * 0.5 = 460800 字节
法2:
共有1280*720个像素点,知道YUV422一个像素点为2字节,1280*780*2=921600+460800*2=1843200字节
综上两种方法算出来的图片大小一样
- 打包(Packed)格式:每个像素点的 YUV 分量是连续交叉存储的,如 YUYV 、NV21 格式;
- 平面格式(Planar):YUV 图像数据的三个分量分别存放在不同的矩阵中,这种格式适用于采样,如 YV12、YU12 格式;