三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

2.YUV 基础.

2.YUV 基础.

YUV颜色编码系统最初是为了兼容黑白电视与彩色电视而设计的。早期的电视广播系统使用的是单色(黑白)信号,当彩色电视出现后,为了使新的彩色信号能够与旧的黑白接收设备兼容,同时又不会占用过多的带宽,人们发明了YUV颜色编码系统。在这个系统中,亮度信息(Y)保留了与黑白电视相同的频段,而色度信息(U和V)则被压缩并添加到同一个信道中,这样黑白电视就可以继续正常工作,而彩色电视则能解码出完整的色彩信息。

1.YUV的基本概念

YUV 颜色编码采用的是 亮度色度 来指定像素的颜色。

  • Y (Luma): 表示亮度或灰度值,即图像的明暗程度。这部分信息对于人眼来说是最敏感的,因此在视频传输中保留较高的分辨率。
  • U 和 V (Chrominance): 代表色度或色差信息,用于描述图像的颜色。U 通道可以理解为蓝色差(B - Y),即蓝色分量与亮度分量的差异,V 通道可以理解为红色差(R - Y),即红色分量与亮度分量的差异。这两个通道的信息量相对较少,因为人眼对色彩的变化不如对亮度的变化敏感。

2.YUV的特点

  1. 兼容性: YUV 编码的一个重要特点是它能够与早期的黑白电视系统兼容。由于黑白电视只接收亮度信号,所以当彩色电视信号以 YUV 格式发送时,黑白电视仍然可以接收到亮度信息并正常显示图像。
  2. 压缩效率: 在视频压缩中,由于人眼对亮度比对颜色更敏感,因此可以对 U 和 V 通道进行较低分辨率的采样,这有助于减少数据量,提高压缩效率。
  3. 多种采样格式: YUV 支持多种采样格式,比如 4:4:4, 4:2:2, 4:2:0 等,这些数字表示亮度和色度采样的比例。例如,在 4:2:0 采样格式下,水平方向上每四个亮度样本对应一个色度样本,垂直方向上也是如此,这样可以进一步减少数据量。
  4. 转换: YUV 与 RGB 之间可以相互转换。大多数视频编码标准(如 H.264, HEVC 等)都是基于 YUV 格式进行压缩的,但在显示时通常需要转换成 RGB 格式。

3.RGB与YUV互相转换

YUV 和 RGB 是两种不同的颜色空间表示方法。RGB 是基于红、绿、蓝三种颜色的混合来表示颜色,而 YUV 则是将亮度(Y)与色度(U 和 V)分离,这种颜色空间常用于视频压缩中以减少带宽需求。

RGB 转 YUV

从 RGB 到 YUV 的转换可以通过以下公式实现:

  • Y = 0.299R + 0.587G + 0.114B
  • U = -0.147R - 0.289G + 0.436B
  • V = 0.615R - 0.515G - 0.100B

这里的 R, G, B 分别代表红色、绿色和蓝色的分量值,范围通常是 0 到 255。转换后的 Y, U, V 值也需要进行适当的缩放和偏移处理,以确保它们落在合适的范围内。例如,U 和 V 经常会被偏移 128(对于 8 位表示来说),这样它们的取值范围就变成了 16 到 240。

YUV 转 RGB

从 YUV 到 RGB 的转换可以使用以下公式:

  • R = Y + 1.13983V
  • G = Y - 0.39465U - 0.58060V
  • B = Y + 2.03211U

同样地,这些计算结果可能需要被限制在 0 到 255 的范围内,以确保输出的颜色值有效。如果 Y, U, V 的值已经被偏移过(比如 U 和 V 被偏移了 128),那么在应用上述公式之前,应该先对 U 和 V 进行相应的调整(即减去 128)。

4.YUV的采样格式

image-20241023150335364YUV 格式根据采样方式的不同,可以分为多种类型。这些不同的采样方式主要影响的是亮度(Y)和色度(U、V)分量的采样率,从而影响图像的质量和数据量。以下是几种常见的 YUV 采样格式:

4:4:4 (YUV 4:4:4)

  • 每个像素都有一个完整的 Y、U、V 分量。
  • 亮度和色度的采样率相同,没有压缩。
  • 数据量最大,质量最高,但占用存储空间大。

4:2:2 (YUV 4:2:2)

  • 每两个水平相邻的像素共享一个 U 和 V 分量。
  • 亮度采样率为全分辨率,色度采样率为水平方向的一半。
  • 常用于广播级视频和专业视频设备。

4:2:0 (YUV 4:2:0)

  • 每四个像素(2x2 块)共享一个 U 和 V 分量。
  • 亮度采样率为全分辨率,色度采样率为水平和垂直方向的一半。
  • 最常用的视频压缩格式,广泛应用于 MPEG、H.264/AVC、H.265/HEVC 等标准。

总结:

  • 444 格式提供最高的色彩保真度,适用于高质量的图像处理和编辑。
  • 422 格式在保证较高图像质量的同时,减少了数据量,适用于高清视频传输。
  • 420 格式是最常见的格式,广泛应用于视频压缩标准中,如MPEG-2、H.264/AVC、HEVC等。

5.YUV的存储方式

根据存储方式的不同,YUV 格式可以分为 计划(Planar)半计划(Semi-Planar)交错(Packed) 三种种主要类型。

  • P 表示 Planar(计划存储):每个分量(Y、U、V)分别存储在一个独立的平面中。
  • SP 表示 Semi-Planar(半计划存储):Y 分量存储在一个平面中,U 和 V 分量交错存储在另一个平面中。
  • Packed:所有分量(Y、U、V)交错存储在一起,形成一个连续的数据流。

1. 4:4:4 采样

每个像素都有一个完整的Y、U、V值。

444P (Planar)

  • I444
Y Y Y Y
Y Y Y Y
U U U U
U U U U
V V V V
V V V V
  • YV24
Y Y Y Y
Y Y Y Y
V V V V
V V V V
U U U U
U U U U

444SP (Semi-Planar)

  • NV24
Y Y Y Y
Y Y Y Y
U V U V U V U V
U V U V U V U V
  • NV42
Y Y Y Y
Y Y Y Y
V U V U V U V U
V U V U V U V U

444Packed (Packed)

Y U V Y U V
Y U V Y U V
Y U V Y U V
Y U V Y U V

2. 4:2:2 采样

每两个水平相邻的像素共享一组U和V值。

422P (Planar)

  • I444(YUV422P)
Y Y Y Y
Y Y Y Y
U U
U U
V V
V V
  • YV16
Y Y Y Y
Y Y Y Y
V V
V V
U U
U U

422SP (Semi-Planar)

  • NV16
Y Y Y Y
Y Y Y Y
U V U V
U V U V
  • NV61
Y Y Y Y
Y Y Y Y
V U V U
V U V U

422Packed (Packed)

  • UYVY
U Y V Y U Y V Y
U Y V Y U Y V Y
  • YUYV
Y U Y V Y U Y V 
Y U Y V Y U Y V 
  • YVYU
Y V Y U Y V Y U
Y V Y U Y V Y U

3. 4:2:0 采样

每四个像素(2x2像素块)共享一组U和V值。

420P (Planar)

  • I420(YUV420P)
Y Y Y Y
Y Y Y Y
U U
V V
  • YV12
Y Y Y Y
Y Y Y Y
V V
U U

420SP (Semi-Planar)

  • NV12
Y Y Y Y
Y Y Y Y
U V U V
  • NV21
Y Y Y Y
Y Y Y Y
V U V U

image-20241023150237013

6.YUV与RGB转换

  1. BT.601标准——标清数字电视(SDTV)

![https://pic4.zhimg.com/80/v2-74a20c88d62eb4678651b2c192ec384b_720w.jpg](file:///C:/Users/szy10/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)

  1. BT.709标准——高清数字电视(HDTV)

![https://pic2.zhimg.com/80/v2-7e747d919dcf503653d6fbe89db26c55_720w.jpg](file:///C:/Users/szy10/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)

  1. BT.2020标准——超高清数字电视(UHDTV)

![https://pic2.zhimg.com/80/v2-19a0034da098f432a4aba1d74e9aeb05_720w.jpg](file:///C:/Users/szy10/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg)

← 返回列表