在 YUV420 格式中,亮度(Y)和色度(U 和 V)分量的分辨率不同,这主要是为了减小数据量。让我们详细解释这个概念。
亮度分量(Y)和色度分量(U 和 V)的分辨率
亮度分量(Y)
·分辨率:亮度分量的分辨率与图像的分辨率完全相同。也就是说,如果图像的分辨率是 1920x1080,那么亮度分量也是 1920x1080。
·数据量:每个像素都有一个亮度值,因此数据量是 1920×1080×8
色度分量(U 和 V)
·
分辨率:色度分量的分辨率是亮度分量的一半。这意味着每 2x2 个亮度像素共享一个 U 值和一个 V 值。用图示来理解,就是:
每 2x2 个 Y 像素 = 1 个 U 值
每 2x2 个 Y 像素 = 1 个 V 值
Y1 Y2
Y3 Y4 -> U1
·
Y5 Y6
Y7 Y8 -> V1
·
·
o数据量:由于每 2x2 个亮度像素(4 个像素)共享一个 U 值和一个 V 值,色度分量的分辨率只有亮度分量的一半(在水平和垂直方向上都缩小)。因此,色度分量的数据量也是亮度分量的四分之一。
YUV420 解释
·YUV420 格式 是一种常用的色彩空间转换格式。它采用了 色度子采样 的方法,通过降低色度信息的分辨率来减少数据量。
·亮度分量(Y) 具有原始图像的完整分辨率,这为每个像素提供详细的亮度信息。
·色度分量(U 和 V) 的分辨率被降低为亮度分量的一半。这种方法使得每 2x2 个亮度像素共享一个 U 值和一个 V 值,从而减少了色度信息的冗余。
因此,色度分量的总数据量是亮度分量数据量的四分之一。计算总数据量时,颜色深度(通常为 8 位)也是一个关键因素。
结论
色度分量的分辨率降低了图像数据量,且通过每 2x2 像素共享一个色度值来实现。这样做有助于在保持视觉效果的同时,减少数据传输和存储的需求。
在色彩编码中,YUV444 和 YUV888 是两种不同的格式,用于表示图像中的颜色信息。以下是这两者之间的主要区别及其影响:
YUV444 vs YUV888
YUV444
色彩分辨率:
oYUV444 表示每个像素的亮度(Y)、色度 U 和色度 V 分量都具有相同的分辨率。也就是说,图像的每个像素都有其对应的 Y、U 和 V 值,分辨率在水平和垂直方向上完全相同。
数据量:
o因为每个像素都包含完整的 Y、U 和 V 数据,所以 YUV444 的数据量较大。对于每个像素,有 24 位(8 位的 Y,8 位的 U 和 8 位的 V)
用途:
·
oYUV444 通常用于需要高色彩精度的应用,如高质量的视频处理、图像编辑等。这种格式提供了最好的色彩还原,但需要更多的存储和带宽。
YUV888
色彩分辨率:
oYUV888 是一个较为简单的表示形式,通常指的是将每个像素的色彩信息分成三个分量 Y、U 和 V,每个分量用 8 位表示(即 24 位色彩深度)。
数据量:
o与 YUV444 相比,YUV888 的数据量和 YUV444 一样,都是 24 位每像素,但 YUV888 更多用来指代每个分量使用 8 位的情况。
用途:
oYUV888 不是一个标准化的格式名,更常用的形式是 YUV444,特别是在图像处理领域。
色度子采样
YUV444 和 YUV420 是常见的色度子采样格式。YUV420 是 YUV444 的一个子集,降低了色度信息的分辨率(每 2x2 个像素共享一个 U 和 V 值),从而减少了数据量。这使得 YUV420 更适合带宽有限或存储要求高的应用,如视频流和实时传输。
为什么使用 YUV444
·高质量需求:YUV444 保持了完整的色彩信息,因此用于需要高色彩准确度的应用。
·色彩还原:对于一些高品质图像处理任务,YUV444 能提供最佳的色彩还原效果。
总结
·YUV444 表示每个像素都有完整的 Y、U 和 V 分量,其数据量和色彩准确性都高于 YUV420。在图像处理和高质量视频应用中,YUV444 提供了更高的色彩精度和质量。
·YUV888 常常与 YUV444 互换使用,通常表示每个分量 8 位(即 24 位每像素),但在标准术语中,更准确的表述是 YUV444。
什么是 YUV420?
想象你有一幅彩色图画,画里有很多很多的小点(像素)。每一个小点都需要三个颜色信息:亮度(Y),和两个色彩(U 和 V)。
亮度和色彩是什么?
亮度(Y):
o就是告诉我们每个小点的亮度有多亮,像白色或者黑色。
色彩(U 和 V):
o这告诉我们颜色的种类,比如蓝色、红色,或者绿色。
为什么要用 YUV420?
YUV420 是一种聪明的方式来减少数据量,方便存储和传输。这是怎么做到的呢?
1. 亮度分量(Y)
·每个小点都有亮度信息:
o就是每个小点都有一个亮度值。
2. 色彩分量(U 和 V)
·每 2x2 小点共享一个 U 和一个 V:
o想象你有 4 个小点组成一个小方块,每个小点的颜色信息都差不多,所以我们只需要记录一次这个小方块的 U 和 V 信息,而不是每个小点都有不同的 U 和 V 信息。
为什么这么做?
节省空间:
o这样做可以减少需要存储的数据量,因为色彩信息共享,数据量就变少了。
看起来差不多:
o尽管我们减少了一些色彩信息,但人眼对颜色的变化不那么敏感,所以在大多数情况下,画面看起来还是很好的。
举个例子
假设你有一个图像,分辨率是 4x4 像素。用 YUV420 的方式处理这个图像时:
亮度(Y):每个 4x4 的像素都有自己的亮度值,一共 16 个值。
色彩(U 和 V):每 2x2 个小点共享一个 U 和一个 V 值。对于一个 4x4 的图像,总共有 4 个这样的 2x2 小方块,所以 U 和 V 各有 4 个值。
1.
总结来说,YUV420 通过减少色彩数据的数量来减小数据量,而保持图像质量。
什么是 YUV422?
YUV422 是另一种用来表示图像色彩的方式,跟 YUV420 类似,但有一些不同。
亮度和色彩的定义
亮度(Y):
o这部分数据告诉我们每个小点的亮度。每个小点都有一个亮度值。
色彩(U 和 V):
o这部分数据告诉我们每个小点的颜色类型。U 和 V 是两个色彩分量,用来描述颜色。
YUV422 的特点
在 YUV422 中,色彩分量的分辨率和亮度分量的分辨率有点不同:
亮度(Y):
o每个小点都有一个亮度值。
色彩(U 和 V):
o对于每 2 个亮度小点,都会有一个 U 和一个 V 值。换句话说,如果你有 2x1 个亮度小点(就是 2 个相邻的亮度小点),它们共享同一个 U 和 V 值。
为什么这么做?
·节省空间:
o与 YUV420 比较,YUV422 在色彩数据的压缩上做得更少,所以色彩数据的质量比 YUV420 更高一些。由于 U 和 V 的数据量比 Y 少,所以这依然节省了一部分空间。
举个例子
假设你有一个图像,分辨率是 4x4 像素,使用 YUV422 处理时:
亮度(Y):
o每个 4x4 像素都有自己的亮度值,一共 16 个值。
色彩(U 和 V):
o每 2x1 个像素共享一个 U 和一个 V 值。所以对于一个 4x4 的图像,总共有 8 个 U 和 8 个 V 值,因为每两列的像素共享一个 U 和一个 V 值。
具体数据量计算
对于 YUV422,你可以这样想:
·亮度数据:每个像素有 8 位(1 字节),所以总共的亮度数据量是 4x4 x 8 bits = 128 bits。
·色彩数据:每 2 个亮度像素共享一个 U 和 V 值,每个 U 和 V 有 8 位(1 字节),所以总共的色彩数据量是 4x4 / 2 x 8 bits = 32 bits。
这意味着 YUV422 也在减少数据量,但不像 YUV420 那样压缩得那么厉害。希望这个解释能帮助你理解 YUV422!
YUV 格式基础
·Y 代表亮度(Luminance)。
·U 和 V 代表色度(Chrominance)。
这些格式用于表示图像的色彩和亮度信息,其中亮度信息(Y)表示图像的明暗,而色度信息(U 和 V)表示颜色的类型和饱和度。
1. YUV444
·亮度(Y):
o每个像素都有一个亮度值。
·色彩(U 和 V):
o每个像素都有一个 U 值和一个 V 值。
特点:
·这是最详细的格式,亮度和色彩数据的分辨率都是一样的。
·数据量最大,因为每个像素都有独立的色彩信息。
数据示例: 如果图像有 4x4 像素,YUV444 的数据量是:4x4 (亮度) + 4x4 (U) + 4x4 (V)。
2. YUV422
亮度(Y)
o每个像素都有一个亮度值。
色彩(U 和 V):
o每 2 个水平像素共享一个 U 和一个 V 值。
特点:
·色彩分量的水平分辨率是亮度分量的一半,但垂直分辨率相同。
·比 YUV444 数据量少,但色彩信息仍然比较丰富。
数据示例: 对于 4x4 像素的图像,YUV422 数据量是:4x4 (亮度) + (2x4) (U) + (2x4) (V)。
3. YUV420
亮度(Y):
o每个像素都有一个亮度值。
色彩(U 和 V):
o每 2x2 个像素共享一个 U 和一个 V 值。
特点:
·色彩分量的分辨率是亮度分量的一半(水平和垂直都减半)。
·数据量较少,适用于压缩图像和视频流。
数据示例: 对于 4x4 像素的图像,YUV420 数据量是:4x4 (亮度) + (2x2) (U) + (2x2) (V)。
总结
·YUV444:每个像素都有自己的亮度、U 和 V 值。数据量最大,图像质量最高。
·YUV422:每 2 个像素共享一个 U 和一个 V 值。数据量比 YUV444 少,色彩信息仍然较好。
·YUV420:每 2x2 个像素共享一个 U 和一个 V 值。数据量最少,适用于需要压缩的应用。
这些不同的格式平衡了图像质量和数据量。在选择适合的格式时,通常要根据具体的应用需求来决定,比如存储、传输或处理的性能要求。
1. YUV444(全色度采样)
·亮度(Y):每个像素都有独立的亮度值。
·色度(U 和 V):每个像素都有独立的 U 和 V 值。
在 YUV444 中,亮度和色度的分辨率完全相同,也就是说,每个像素都有自己完整的亮度、U 和 V 信息。
·对于 4x4 像素的图像:
o亮度数据量:4x4 = 16 个 Y 值
o色度数据量:4x4 = 16 个 U 值,4x4 = 16 个 V 值
2. YUV422(水平色度采样减半)
·亮度(Y):每个像素都有独立的亮度值。
·色度(U 和 V):每两个水平像素共享一个 U 和 V 值。
在 YUV422 中,水平方向上色度的分辨率是亮度分辨率的一半。
·对于 4x4 像素的图像:
o亮度数据量:4x4 = 16 个 Y 值
o色度数据量:
§U 和 V 在水平方向每 2 个像素共享一个值,所以只有 2x4 = 8 个 U 值和 2x4 = 8 个 V 值
3. YUV420(水平和垂直色度采样减半)
·亮度(Y):每个像素都有独立的亮度值。
·色度(U 和 V):每四个像素(2x2)的区域共享一个 U 和 V 值。
在 YUV420 中,色度的分辨率在水平和垂直方向上都减半。
·对于 4x4 像素的图像:
o亮度数据量:4x4 = 16 个 Y 值
o色度数据量:
§U 和 V 在水平方向和垂直方向每 2 个像素共享一个值,所以只有 2x2 = 4 个 U 值和 2x2 = 4 个 V 值
简单总结
·YUV444:每个像素都有独立的 Y、U、V 信息(数据量最大)。
·YUV422:每两个水平像素共享 U 和 V 信息(比 YUV444 少一半的色度数据量)。
·YUV420:每 2x2 个像素共享 U 和 V 信息(比 YUV444 少四分之三的色度数据量)。
这样讲应该更清楚了!你可以想象 YUV422 是在水平方向上减少了色彩信息,
理解 YUV 格式的关键在于如何对比色度信息(U 和 V)与亮度信息(Y)的存储方式。让我们重新用一些比喻来帮助你理解:
YUV444
·描述:每个像素都有独立的 Y、U、V 信息。
·比喻:想象你有 4 个不同的颜色的彩笔,每个像素(小方格)都有独立的每种颜色的彩笔(Y、U、V)。每个方格都是完整的,数据量最大。
YUV422
描述:每两个水平像素共享一个 U 和 V 信息。每一行都有独立的 U 和 V 信息。
比喻:想象你有 4 个彩笔,每两个相邻的像素(小方格)共享其中一部分彩笔(U 和 V)。但每一行的小方格仍然有独立的彩笔(U 和 V),所以行与行之间的颜色不共享。
数据计算:
o水平方向:每两个像素共享一个 U 和 V 信息,所以存储的色度信息是亮度信息的一半。
o垂直方向:每一行的 U 和 V 信息是独立的,不共享。
YUV420
描述:每 2x2 个像素共享一个 U 和 V 信息。每两个相邻的像素行共享一个 U 和 V 信息。
比喻:想象你有 4 个彩笔,但每 2x2 个像素(一个 2x2 的小方格区域)共享其中的一部分彩笔(U 和 V)。这意味着你在水平和垂直方向上都在减少彩笔的使用量。
数据计算:
o水平方向:每两个相邻像素共享一个 U 和 V 信息。
o垂直方向:每两个相邻的行也共享一个 U 和 V 信息。
具体解释
YUV444:每个像素都有独立的 U 和 V 信息,因此数据量最大。每个像素都有自己完整的色度信息。
YUV422:
o水平采样:每两个像素共享一个 U 和 V 信息,所以每两个像素使用相同的色度信息(U 和 V),数据量减少。
o垂直采样:每一行都有独立的 U 和 V 信息,没有压缩。每行保持完整的色度信息。
YUV420:
o水平采样:每两个像素共享一个 U 和 V 信息。
o垂直采样:每两个相邻的行也共享一个 U 和 V 信息。这意味着每 2x2 的像素块共享一个 U 和 V 信息,数据量减少最多。
1. 什么是 YUV 色彩空间?
·Y(亮度):表示图像的亮度信息,也就是图像的黑白部分。
·U 和 V(色度):表示颜色信息(色彩饱和度和色调)。
2. YUV444 格式
在 YUV444 格式中,图像的每一个像素都有一个独立的 Y、U 和 V 值。因此,色度的采样率与亮度完全相同。
3. YUV422 格式
在 YUV422 中:
·水平方向:每两个相邻像素共享一个 U 值和一个 V 值。
o比如,如果有 4 个像素 A, B, C, D,那么 A 和 B 共享同一个 U 和 V 值,C 和 D 共享另一个 U 和 V 值。
4. YUV420 格式
在 YUV420 中:
·水平方向:每两个相邻像素共享一个 U 和 V 值。
·垂直方向:每两个相邻行也共享同一个 U 和 V 值。
举个简单例子:
假设有一个 4x4 的图像,那么 YUV420 的处理方式如下:
·亮度(Y):每个像素都有自己的 Y 值,所以是 4x4 的 Y 值矩阵。
·色度(U 和 V):
o水平方向:每 2 个水平相邻的像素共享一个 U 和 V 值。
o垂直方向:每 2 个垂直相邻的像素也共享同一个 U 和 V 值。
也就是说,整个 4x4 图像只需要一个 2x2 的 U 值矩阵和一个 2x2 的 V 值矩阵。
5. 为什么 YUV420 水平和垂直都减半?
水平和垂直减半 意味着:
·在水平方向,每两个相邻像素共享同一个 U 和 V 值。
·在垂直方向,每两个相邻行也共享同一个 U 和 V 值。
所以对于每 2x2 的像素块(共 4 个像素),它们共享同一个 U 值和同一个 V 值。
这样做的原因是:
·节省带宽:因为人眼对亮度(Y)的变化更敏感,对色度(U 和 V)的变化不敏感,所以可以降低 U 和 V 的采样率,减少数据量,而不会明显影响图像质量。
简单总结
·YUV420 通过在水平和垂直方向上对色度进行减半采样,从而大幅减少了色度数据量,这样可以减少传输带宽和存储空间的需求。
YUV420 格式
YUV420 是一种常见的视频编码格式,用于压缩视频数据。这里的 "420" 其实代表的是色度(U 和 V)采样的比例:
1.4:表示亮度(Y)采样的比例。每 4 个水平像素都会有 4 个亮度值。
2.2:表示色度(U)在水平方向上的采样比例。每 4 个水平像素只采样 2 个 U 值。
3.0:表示色度(V)在垂直方向上的采样比例。这里的 0 实际上表示在垂直方向上,每 2 行共享同一个 V 值。
解释 "420" 的含义
·亮度(Y):采样率为 4: 每个像素都有一个亮度值,所以亮度的采样密度与像素完全一致。
·色度(U 和 V):采样率为 2: 在水平方向上,每两个相邻像素共享一个 U 和一个 V 值。这意味着水平方向上,色度采样率是亮度的一半。
·垂直方向:采样率为 0 或 2 的含义:在垂直方向上,每两个相邻行共享同一个 U 和 V 值。这意味着垂直方向上,色度采样率也是亮度的一半。
如何看出来?
·YUV444:表示亮度和色度的采样比是 4:4:4,亮度和色度的采样率完全一样,每个像素都有独立的 Y、U、V 值。
·YUV422:表示亮度和色度的采样比是 4:2:2,水平方向上每 4 个像素有 4 个亮度值和 2 个色度值,意味着每两个像素共享一个 U 和 V 值。
·YUV420:表示亮度和色度的采样比是 4:2:0,水平方向上每 4 个像素有 4 个亮度值和 2 个色度值,同时垂直方向上每两行共享一个色度值。
"420" 对应的采样图示
以 4x4 像素为例,YUV420 格式的采样如下:
·亮度(Y):每个像素都有自己的亮度值,所以是 4x4 的 Y 值矩阵。
·色度(U 和 V):
o水平采样率 2:每两个水平相邻的像素共享一个 U 和 V 值。
o垂直采样率 0(或 2 的含义):每两个垂直相邻的像素行也共享一个 U 和 V 值。
这就意味着对于一个 4x4 的图像,YUV420 只需要一个 2x2 的 U 值矩阵和一个 2x2 的 V 值矩阵。这样,数据量减少了,同时也节省了带宽。
总结
·"420" 代表了 YUV420 格式的采样模式,具体是指亮度和色度在水平方向和垂直方向上的采样比例。
·YUV420 的优势在于通过降低色度的采样率来节省数据量,而不显著影响图像质量。
1. 采样率的概念
·采样率:在这里指的是色度信息(U 和 V)在水平和垂直方向上被采样的频率。采样率越高,图像越清晰,数据量也越大;采样率越低,图像的色彩信息会减少,数据量也随之减少。
2. 垂直采样率 0(或 2 的含义)
YUV420 中的 “0” 或 “2” 实际上意味着 垂直方向上的色度分辨率 比亮度分辨率要低。
o“0”的含义:表示每两行像素共享一组色度值(U 和 V),即色度的垂直采样率为亮度的二分之一。这里的“0”其实是指相对于亮度的完整采样,“0”表示色度没有独立的采样,而是与相邻行共享。
3. 具体操作
·YUV420 采样解释:
o在水平方向上:每两个像素共享一个色度值(U 和 V)。
o在垂直方向上:每两行像素共享一组色度值(U 和 V)。这意味着在垂直方向上,色度的分辨率是亮度分辨率的一半。
4. 举例说明
假设你有一个 4x4 像素的图像:
·亮度(Y):
o亮度信息完整采样,4x4 的图像有 16 个亮度值(Y 值)。
·色度(U 和 V):
o水平方向:每两个像素共享一个色度值,因此 4x4 的图像中,U 和 V 的水平采样为 2x4。
o垂直方向:每两行共享一组色度值,因此 U 和 V 的垂直采样为 2x2。
这就导致了色度信息(U 和 V)的采样网格变成了 2x2,即每两个相邻的像素行共享一组色度值。
5. 总结
·“垂直采样率 0” 的意思是色度分量在垂直方向上只采样了一半,因此每两行像素共享一个色度值。
·YUV420 格式通过这种方式,极大地减少了数据量,但同时也降低了色彩的精细度。
什么是 YUV?
·Y:亮度(黑白信息)。
·U 和 V:色度(颜色信息)。
什么是 YUV420?
·YUV420 是一种图像压缩格式,用来减少数据量,保存图像时占用更少的空间。
垂直和水平的共享是什么?
·水平共享:在水平方向上,相邻的两个像素共享同一个 U 和 V 值。
·垂直共享:在垂直方向上,相邻的两行像素也共享同一个 U 和 V 值。
什么是采样?
·采样 就是收集信息。YUV420 的 “4:2:0” 指的是在水平方向上,每 4 个亮度值采集 2 个色度值,在垂直方向上,2 行采集 1 行色度值。
简单的例子
假设你有一个 2x2 的图像块:
亮度(Y):
o每个像素都有自己的亮度值,所以你有 4 个亮度值(2x2)。
色度(U 和 V):
oYUV444:每个像素都有自己独立的色度值,所以有 4 个 U 和 V 值。
oYUV422:水平方向上,两个像素共享一个 U 和 V 值。所以只有 2 个 U 和 2 个 V。
oYUV420:水平和垂直方向上,4 个像素(2x2)共享一个 U 和 V 值。所以只有 1 个 U 和 1 个 V。
为什么垂直采样率“0”?
“0”表示垂直方向上,两个像素行共享一个色度值。所以在这个方向上,采样率减半。
总结
·YUV420:水平和垂直方向都减少色度信息的采集,降低数据量。
·采样率“0”:垂直方向上,两个像素行共享一个色度值,所以不独立采样。
比喻解释
想象你有一张拼图,每块拼图代表一个像素。
·Y(亮度):是拼图的形状,决定拼图的轮廓(黑白信息)。
·U 和 V(色度):是拼图的颜色,决定拼图的颜色(颜色信息)。
YUV444:每块拼图都有自己的颜色
·在 YUV444 中,每一块拼图都有自己独立的颜色信息。所以,每个拼图不仅有独立的形状(亮度信息),还有独立的颜色(U 和 V)。
·你看每个拼图的时候,都能看到完整的颜色和形状信息。
YUV422:每两块拼图共用颜色
·在 YUV422 中,相邻的两块拼图虽然有各自的形状(亮度信息),但颜色是共用的。就像是你把两块拼图的颜色涂得一样。
·虽然形状各不相同,但颜色上有些拼图是一样的。
YUV420:四块拼图共用颜色
·在 YUV420 中,每四块拼图(2x2 的方块)共用同一个颜色。想象一下,你有 4 块拼图,它们形状各不相同,但你只涂了一种颜色。
·这样,虽然每块拼图的形状是独立的,但颜色是共享的,减少了颜色信息。
为什么垂直采样率“0”?
·“0”表示在垂直方向上,两个拼图行共用一个颜色。就像你把上下两行拼图的颜色都涂成一样的。这就减少了颜色的细节信息,但保留了亮度信息。
总结
·YUV444:每块拼图有独立颜色和形状。
·YUV422:两块拼图共用颜色,但有独立形状。
·YUV420:四块拼图共用颜色,但有独立形状,降低了颜色细节的信息量。
这样解释之后,YUV420 就像是你在减少拼图颜色的细节,同时保留了拼图的形状信息。这样做可以减少需要存储的数据量,但仍然保留了图像的主要视觉效果。
基本概念
·Y(亮度):表示图像的亮度信息(即黑白信息),它决定了图像的明暗部分。
·U 和 V(色度):表示图像的颜色信息。
YUV420 是怎么工作的?
YUV420 的“420”这三个数字是这么理解的:
·4 代表的是水平方向上每 4 个像素会共享颜色信息。
·2 代表的是垂直方向上每 2 行像素会共享颜色信息。
·0 表示在垂直方向上,U 和 V 的采样减少了一半(实际意思是每两行只采样一次颜色)。
生活中的比喻
假设你在画一张图,图中有一些格子,每个格子代表一个像素。
1.Y(亮度):你用不同深浅的铅笔给每个格子上色,这代表了每个格子的亮度信息。
2.U 和 V(色度):接下来,你打算用颜色给这些格子涂色。
在 YUV444 中:
·每个格子都有自己的颜色,就像每个格子你都用不同的彩色笔来涂色。
在 YUV422 中:
·你决定让每两个横向相邻的格子用相同的颜色。这意味着虽然每个格子的亮度不同,但每两个相邻的格子在颜色上是一样的。
在 YUV420 中:
·你不仅让横向相邻的两个格子共用颜色,还让纵向相邻的两行格子也共用颜色。这就意味着,每 4 个格子(2x2 的方块)共用一个颜色。
具体的 YUV420 举例
假设你有一个 4x4 的像素块,正常情况下(YUV444)每个像素都有自己的亮度和颜色信息:
·亮度(Y):每个像素都有自己的亮度值,和原来一样,还是一个格子一个亮度。
·色度(U 和 V):现在,你决定减少色度信息,所以让 2x2 的四个格子共享同一个颜色。
垂直采样率 0 的意思
在 YUV420 中:
·水平方向:你每两个横向相邻的像素共享颜色。
·垂直方向:你每两个垂直相邻的像素行也共享颜色。
所以,垂直采样率“0”的意思是:每两个垂直方向相邻的像素行共用一个颜色信息,而不是每行都有独立的颜色信息。这会减少所需的色度数据量。
总结
YUV420 通过让 4 个像素共享同一个颜色,减少了数据量。它在保存亮度信息的同时,牺牲了一些颜色的精细度,用于压缩数据,适合在带宽有限的情况下使用。
理解 YUV420 中水平和垂直采样的原因以及为什么使用“0”而不是“2”可以通过以下方式来解释。
为什么要分水平和垂直?
在图像处理和视频压缩中,我们会根据人眼的特性来优化数据的存储和传输。人眼对亮度(Y)的变化更敏感,而对颜色(U 和 V)的变化不太敏感。为了减少数据量,我们就可以在色度信息上“偷工减料”。
·水平采样:考虑图像中水平方向上连续的像素点,我们可以让相邻的像素共享颜色信息,这样数据量就减少了一半。
·垂直采样:同样的道理,在图像的垂直方向上,如果相邻的像素行共享颜色信息,我们又可以减少一半的数据量。
通过在两个方向上都减少色度的采样,可以大幅度压缩数据量,而对图像质量的影响较小。
为什么是“0”而不是“2”?
这里的“0”其实是一个编码术语,用来表明在这个方向上颜色采样的比例。我们来详细解释:
YUV444:这个格式下,所有像素都有独立的颜色信息,没有共享,所以我们说它的水平采样和垂直采样都没有减少。
o水平采样率:4
o垂直采样率:4
YUV422:在水平方向上,每两个像素共享一个颜色信息,垂直方向上还是每个像素行有独立的颜色信息。
o水平采样率:4
o垂直采样率:2
YUV420:在水平方向上,每两个像素共享一个颜色信息,同时在垂直方向上每两行也共享一个颜色信息。
o水平采样率:4
o垂直采样率:2(表示每两个像素行共用一次采样)
在 YUV420 中,垂直采样的“0”是相对于 YUV422 而言的,表示相比 YUV422,垂直方向上采样率进一步减少,减少到每两个像素行才采样一次(所以“0”在这里表示在垂直方向上没有独立采样的行)。但实际上,这种“0”只是一种编码的约定表示,实际含义是每两个像素行共享颜色信息。
总结
分水平和垂直是为了更有效地压缩图像数据,而“0”则是一个编码约定,用来表明在这个方向上的采样被减少到最少,即每两个垂直方向的像素行共享一个颜色采样。如果你记住“0”表示的是最小采样的状态,这可能更容易理解。
理解 YUV 格式中的数字需要结合采样的方式来看。我们再来一步一步解释为什么水平的采样是 4,而不是 2。
水平采样中的“4”
在 YUV 表示法中,第一个数字代表亮度(Y)的采样率,通常是“4”,表示在水平方向上,对 4 个像素都采集亮度信息。也就是说,在水平方向上,我们对每 4 个连续像素都分别记录它们的亮度信息。
色度采样中的“4”
对于色度分量(U 和 V),采样率表示的是在水平方向上,相对于亮度采样的比例。
YUV444:第一个“4”表示在水平方向上,每 4 个像素都有独立的亮度采样;第二个“4”表示每 4 个像素也都有独立的 U 和 V 采样。因此,这种格式中,色度信息与亮度信息一样密集。
YUV422:第一个“4”表示亮度采样(Y)在水平方向上每 4 个像素都有独立的采样,而第二个“2”表示 U 和 V 在水平方向上是每 2 个像素共享一个色度信息(U 和 V),这意味着色度信息的密度是亮度信息的一半。
YUV420:第一个“4”表示亮度采样(Y)在水平方向上每 4 个像素都有独立的采样,而第二个“2”表示色度采样在水平方向上是每 2 个像素共享一个色度信息。第三个“0”表示在垂直方向上,每两个像素行共享一个色度信息。
·
为什么水平采样是“4”?
“4”在这里是一个基准值,表示亮度信号在水平方向上的采样密度。以“4”为基准:
·YUV444:亮度和色度信息在水平和垂直方向上都是“4”,没有减少任何信息。
·YUV422:亮度是“4”,而色度信息(U 和 V)在水平方向上被减半(变为“2”),但垂直方向上不减。
·YUV420:亮度是“4”,色度信息在水平方向上被减半(变为“2”),垂直方向上也被减半(“0”表示垂直方向上减少到最小,即每两个像素行共享一个色度信息)。
关键理解
所以,水平上的“4”一直保持不变,是因为我们用它来表明亮度信号的完整采样,而色度信息(U 和 V)相对于亮度的采样密度会有所减少,这样就能更高效地压缩图像数据。
在 YUV422 中,第三个数字“2”表示垂直方向上的色度采样率。具体含义如下:
·YUV422:
o第一个“4”:表示在水平方向上,每 4 个像素都有独立的亮度采样(Y)。
o第二个“2”:表示在水平方向上,U 和 V 色度分量每 2 个像素共享一个色度值。这意味着色度信息的水平密度是亮度信息的一半。
o第三个“2”:表示在垂直方向上,U 和 V 色度分量每一行都有独立的采样。换句话说,垂直方向上色度采样的密度与亮度信息相同,没有减少。
所以,YUV422 表示色度信息在水平方向上是亮度信息的一半(每两个像素共享一个 U 和 V),但在垂直方向上,色度信息和亮度信息的采样密度是一样的(每一行都有独立的色度采样)。
YUV422 的三个数字含义
第一个“4”:
o水平方向上亮度(Y)的采样:每 4 个水平像素都有独立的亮度采样。
第二个“2”:
o水平方向上色度(U 和 V)的采样:每 2 个水平像素共享一个 U 值和一个 V 值。这意味着在水平方向上,色度信息的采样密度是亮度信息的一半。
第三个“2”:
o垂直方向上色度(U 和 V)的采样:在垂直方向上,色度信息的采样密度与亮度信息相同。也就是说,每一行的色度信息都有采样,没有减少。
详细解释
第一个“4”:
o在水平方向上,你有 4 个亮度(Y)样本,所以亮度信息的分辨率是 4 像素宽。
第二个“2”:
o在水平方向上,2 个像素共享一个 U 和一个 V 色度样本。所以对于 4 个亮度样本,你只会有 2 个 U 和 V 样本。每两个像素共享同一对色度信息。
第三个“2”:
o在垂直方向上,色度分量的采样和亮度分量一样,每行都有色度采样。并不是减少的,依然是每行都有独立的色度信息。
比喻讲解
想象你在画一个 4x4 像素的图像
Y 亮度信息:你会有 4 个像素(水平)* 4 个像素(垂直) = 16 个亮度样本。
U 和 V 色度信息:
o水平采样:每两个水平像素共享一个 U 和一个 V。所以在水平上,你会有 4 像素 / 2 = 2 个 U 和 2 个 V 样本。
o垂直采样:在垂直方向上,每一行都有独立的 U 和 V 样本。所以在垂直上,每一行都保留了 4 像素的色度信息,没有减少。
这样,在 4x4 像素的图像中,YUV422 格式下的 U 和 V 信息每两个水平像素共享一个样本,但每一行的 U 和 V 信息都存在,并未减少。
YUV422 垂直方向采样的正确解释
在 YUV422 格式中,垂直方向的采样是与亮度分量(Y)相同的,不做额外的压缩或共享。即:
·亮度(Y):每个像素都有独立的亮度样本。
·色度(U 和 V):在垂直方向上,U 和 V 也会按照与亮度相同的行数进行采样。换句话说,每一行的 U 和 V 色度信息都是独立的,不会像水平方向那样进行共享或减少。
举例说明
以 4x4 像素为例:
亮度(Y):
o每个像素都有一个独立的 Y 样本,共 16 个 Y 样本。
色度(U 和 V):
o水平方向:每 2 个水平像素共享一个 U 和一个 V 样本。因此,每 4 个水平像素总共有 2 个 U 和 2 个 V 样本。
o垂直方向:每一行的 U 和 V 色度信息都是独立的,即每行都会有对应的 U 和 V 样本。这样,对于 4 行图像,你会有 4 个 U 和 4 个 V 样本。
实际布局
·Y:所有 16 个像素都有独立的亮度信息。
·U 和 V:
o水平方向上:每 2 个像素共享一个 U 和一个 V。
o垂直方向上:每行都会有独立的 U 和 V 信息。
总结一下,YUV422 格式中,色度(U 和 V)信息在水平方向上进行了降采样,每两个像素共享一个色度值,但在垂直方向上并没有进一步的降采样,每行的 U 和 V 色度信息都是独立的。
比喻讲解
想象一个 4x4 的图像块:
1.亮度(Y):
o你可以想象这个图像块的每一个小格子都是一个独立的光亮度值。总共有 16 个小格子,每个小格子都有一个独立的亮度值。
2.色度(U 和 V):
o水平方向:色度的采样有点像每两个相邻的小格子共享同一个颜色标签。也就是说,如果你看到一行的颜色标签,你会发现每两个小格子有一个相同的颜色标签。例如,如果在图像的同一行上,第一个和第二个小格子共享一个颜色标签,第三个和第四个小格子共享另一个颜色标签。
o垂直方向:对于每一行,色度标签(U 和 V)是完全独立的,没有进一步的压缩。每一行都有自己的颜色标签。也就是说,即使在垂直方向上,每一行的色度标签都是不同的,保持了所有的细节。
可视化示例
想象一个 4x4 的网格,如下所示:
复制代码
Y1 Y2 Y3 Y4
Y5 Y6 Y7 Y8
Y9 Y10 Y11 Y12
Y13 Y14 Y15 Y16
这里,Y 代表亮度分量。
对于 YUV422 格式:
水平采样:
o如果你看第一个水平行(Y1, Y2, Y3, Y4),你可以用每两个相邻的像素共享一个 U 和一个 V。
o所以,U 和 V 的采样值会是:U1, U1, U2, U2 和 V1, V1, V2, V2(U1, U2 和 V1, V2 是共享的色度值)。
垂直采样:
o在垂直方向上,每行都会有自己的 U 和 V 色度信息。例如,第一行的色度信息可能是 U1 和 V1,第二行的色度信息可能是 U2 和 V2,依此类推。
o不同的行不会共享色度信息,所以每行都保留了自己的颜色细节。
为什么是 2 和 2
在 YUV422 格式中,水平方向的色度压缩是“2”,因为每 2 个水平像素共享一个色度信息。而垂直方向上,每行的 U 和 V 都是独立的,不做进一步的压缩,所以垂直方向的采样没有压缩。
小结
·YUV422:
o水平:每两个相邻的像素共享一个 U 和一个 V(2:1)。
o垂直:每行都有独立的 U 和 V 信息,不做压缩(1:1)。
YUV422 格式中的垂直和水平方向采样
理解 YUV422 格式
水平采样:每两个水平像素共享一个色度信息(U 和 V)。所以,水平方向的采样率是 2。
垂直采样:在垂直方向上,每一行都保持独立的色度信息(U 和 V)。这意味着垂直方向上色度信息是按行来分配的,没有进一步的压缩。
为什么垂直方向是 2
YUV422 的垂直方向的“2”表示什么呢?
·垂直方向上色度信息的分配:在 YUV422 中,色度信息(U 和 V)的采样是按照每 2 行来分配的,而不是每一行。也就是说,在垂直方向上,每 2 行共享一个色度样本。你可以想象成两个相邻的水平行共享同一个色度信息。
为什么是 2 而不是 4?
YUV422 的定义:YUV422 是一种色度子采样格式。对于垂直方向上的采样,YUV422 格式将每两个相邻的行共享同一个色度样本。这就是为什么它被表示为“2”而不是“4”。在这个格式中,色度信息在每两个行之间是共享的,从而节省了数据量。
YUV420 对比:在 YUV420 中,垂直方向上是每 2 行共享一个色度样本(U 和 V),因此称为 2:2 的垂直采样。这和 YUV422 的 2:1 水平采样、每两个相邻行共享一个色度样本是相似的。
总结
·水平采样:YUV422 中的“2”表示每两个相邻的像素共享一个色度样本。
·垂直采样:YUV422 中的“2”表示每两个相邻的行共享一个色度样本,这样的采样方式在垂直方向上减少了数据量。
所以,YUV422 的“2”代表的是每两个行共享一个色度样本,而不是 4。这是因为在 YUV422 格式中,色度信息的垂直采样每两个行共享一次,而不是按 4 行来共享。
发表评论: