YUV格式详解

36 阅读3分钟

什么是 YUV?

YUV 是一种用于表示视频和图像数据的色彩编码系统,广泛应用于视频处理、电视广播、数码相机、网络视频传输等领域。YUV 色彩空间将颜色分解为一个亮度分量(Y)和两个色度分量(U 和 V),这种分离方式与 RGB 色彩空间有所不同,其中 RGB 是将颜色分解为红、绿、蓝三个分量。

yuv.png

YUV 的结构

  1. Y(亮度)分量

    • 亮度分量表示图像的亮度信息,反映了图像的明暗程度。它是图像的灰度值,包含了画面的细节。
    • 在 YUV 色彩空间中,Y 分量是最重要的,因为人类的视觉系统对亮度的感知比对颜色的感知更为敏感。
  2. U 和 V(色度)分量

    • 色度分量包含了颜色的信息,与 RGB 色彩空间中的颜色信息相对应。U 和 V 分量代表了颜色的两个轴,例如蓝色-黄色(U)和红色-绿色(V)。
    • 由于人类视觉对色彩变化不如对亮度变化敏感,色度分量通常可以被较低分辨率表示而不显著影响图像质量。

YUV 的优势

  • 带宽和存储效率:由于色度分量可以被以较低分辨率采样,YUV 可以在不显著降低视觉质量的情况下减少数据量。这种特性使得 YUV 在视频压缩和传输中非常有效。
  • 分离亮度和色度:YUV 将亮度与色度分开处理,这种分离有助于提升图像压缩的效率和图像处理的灵活性。

常见的 YUV 采样格式

YUV 的具体实现有多种格式,它们之间的主要区别在于 U 和 V 分量的采样频率。以下是几种常见的采样格式:

  1. YUV 4:4:4

    • 在这种格式中,亮度和色度的分辨率相同,即每个像素都有完整的 Y、U 和 V 分量。这种格式保留了最高的图像质量,但数据量也最大。
    • 占用内存 = width x hight x 3
  2. YUV 4:2:2

    • 在 YUV 4:2:2 中,每两个像素共享一个 U 分量和一个 V 分量。这种格式减少了色度分量的数量,但亮度分量保持不变,因此在不显著影响图像质量的前提下减少了数据量。
    • 占用内存 = width x hight x 2
  3. YUV 4:2:0

    • 在 YUV 4:2:0 中,每四个像素共享一个 U 分量和一个 V 分量。色度分量的采样率更低,这种格式广泛用于压缩视频格式如 MPEG 和 H.264。
    • 占用内存 = width x hight x 3 / 2

YUV.jpeg

不同的YUV格式又分为planar(打包排列)、planar(全平面排列)、semi-planar(半平面排列)三种排列方式,下面以YUV444格式为例说明三种方式的区别:

packed

YUV YUV YUV YUV YUV YUV YUV YUV
YUV YUV YUV YUV YUV YUV YUV YUV
YUV YUV YUV YUV YUV YUV YUV YUV

I444

YYYYYYYYY
YYYYYYYYY
YYYYYYYYY
​
UUUUUUUUU
UUUUUUUUU
UUUUUUUUU
​
VVVVVVVVV
VVVVVVVVV
VVVVVVVVV

YV24

YYYYYYYYY
YYYYYYYYY
YYYYYYYYY
​
VVVVVVVVV
VVVVVVVVV
VVVVVVVVV
​
UUUUUUUUU
UUUUUUUUU
UUUUUUUUU

NV24

YYYYYYYYYYYY
YYYYYYYYYYYY
YYYYYYYYYYYY
 
UVUVUVUVUVUVUVUVUVUVUVUV
UVUVUVUVUVUVUVUVUVUVUVUV
UVUVUVUVUVUVUVUVUVUVUVUV

NV42

YYYYYYYYYYYY
YYYYYYYYYYYY
YYYYYYYYYYYY
 
VUVUVUVUVUVUVUVUVUVUVUVU
VUVUVUVUVUVUVUVUVUVUVUVU
VUVUVUVUVUVUVUVUVUVUVUVU

YUV 的应用

  • 视频编码与压缩:YUV 格式在视频编码中非常普遍,特别是在流媒体、DVD、蓝光等视频分发渠道中。YUV 的高效数据表示和压缩性能使其成为这些应用的首选。
  • 电视广播:传统的模拟电视信号使用 YUV 来传输颜色信息,如 PAL 和 NTSC 标准。
  • 图像处理与计算机视觉:YUV 色彩空间的亮度和色度分离特性使其在图像处理和计算机视觉应用中非常有用,尤其是在颜色相似度判断、肤色检测等场景中。