音视频系列(二)-为什么视频编码中不选用 rgb 而是用 yuv?

300 阅读3分钟

YUV

一、YUV原理

YUV格式是一种颜色编码方法,主要用于视频处理和图像压缩中。它与我们熟知的RGB色彩空间不同,YUV色彩空间由一个亮度信号(Y)和两个色度信号(U和V)组成。

  • Y(Luminance或Luma) :表示明亮度,即灰度值。这是从原始图像数据中提取出的黑白信息。
  • U(Chrominance,Cb,蓝色差)  和 V(Chrominance,Cr,红色差) :这两个是色度分量,描述了颜色的信息。U和V分别代表了蓝色和红色与实际亮度之间的差异。

YUV格式的一个重要特性是人类视觉系统对亮度变化比对色度变化更加敏感,因此在YUV格式中可以利用这一点来减少色度分量的数据量而不明显影响图像质量,这对于视频压缩特别有用。例如,在某些YUV格式中,色度分量的分辨率可以低于亮度分量的分辨率,这被称为色度子采样。

二、YUV格式分类

1. YUV420
  • 亮度(Y) :全分辨率,即每个像素都有一个对应的亮度值。
  • 色度(U,V) :水平和垂直方向上的分辨率都是亮度的一半。这意味着对于每2x2的像素块,只有一个U和一个V值共享。
  • 例子:如果原图像是4x4像素,则会有16个亮度值,但只有4个U值和4个V值。
2. YUV422
  • 亮度(Y) :同样保持全分辨率。
  • 色度(U,V) :仅在水平方向上减半,垂直方向上与亮度相同。这意味着对于每行中的每两个相邻像素,它们共享相同的U和V值。
  • 例子:对于一个4x4像素的图像,将有16个亮度值,但在每一行中,只会对应8个U值和8个V值。
3. YUV444
  • 亮度(Y)  和 色度(U,V) :所有三个分量都具有相同的分辨率。也就是说,每个像素都有其对应的亮度和色度值。
  • 例子:在一个4x4像素的图像里,将有16个亮度值,16个U值和16个V值。

这些格式被广泛应用于视频处理、传输和存储过程中,尤其是在视频编码标准如H.264/AVC、H.265/HEVC等中作为输入输出格式。通过使用YUV格式,可以更有效地进行视频压缩,从而节省带宽和存储空间。

RGBA&RGB

一、RGBA&RGB

RGB或者RGBA格式需要处理每个像素点的所有颜色通道,没有利用到人类视觉对不同颜色分量感知差异的特点,导致在相同质量下文件大小更大。

综上所述,虽然RGBA在计算机图形学中被广泛应用,尤其适用于渲染和显示任务,但在视频编码领域,YUV色彩空间凭借其对人类视觉特性的考虑、更高的压缩效率以及广泛的行业标准支持而成为首选。