YUV

YUV

YUV,是一种颜色编码方法。“Y” 表示明亮度(Luminance、Luma),“U” 和 “V” 则是色度、浓度(Chrominance、Chroma)。Y’UV、YUV、YCbCr、YPbPr 几个概念其实是一回事儿。由于历史关系,Y’UV、YUV 主要是用在彩色电视中,用于模拟信号,YCbCr 用于数字视频、图像的压缩和传输,如 MPEG、JPEG。Y’UV 设计的初衷是为了使彩色电视能够兼容黑白电视。对于黑白电视信号,没有色度信息也就是(UV),那么在彩色电视显示的时候指显示亮度信息。将一张图片的Y、U、V数据单独显示就会如下图所示:

320px-Barn-yuv

色度抽样

由于人眼对色度的敏感度不及对亮度的敏感度,图像的色度分量不需要有和亮度分量相同的清晰度,所以许多视频系统在色差通道上进行较低(相对亮度通道)清晰度(例如,抽样频率)的抽样。这样在不明显降低画面质量的同时降低了影像信号的总带宽。因抽样而丢失的色度值用内插值,或者前一色度值来替代。在压缩影像中,以 4:2:2 Y’CbCr作例,它只需R’G’B’(4:4:4)三分之二的带宽,但是在视觉效果上几乎没有影响。

视频系统的抽样系统通常用一个三分比值表示:J​ : a : ​b(例如 4:2:2 ),形容一个以 J 个像素宽及两个像素高的概念区域,有时候会以四分比值表示(例如4:2:2:4),依序列出为:

  • J :水平抽样引用(概念区域的宽度),通常为4;
  • a :在 J 个像素第一行中的色度抽样数目(Cr, Cb);
  • b :在 J 个像素第二行中的额外色度抽样数目(Cr, Cb);
  • Alpha:水平因数(与首数值有关联)。若没有此部分者可忽略,若存在则与 J 相同。

subsample

j-a-b

YUV 采样格式

为节省带宽起见,大多数 YUV 格式平均使用的每像素位数都少于24位。主要的抽样(subsample)格式有 YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1 和 YCbCr 4:4:4。YUV 的表示法称为 A:B:C 表示法:

  • 4:4:4 表示完全取样。每一个 Y 对应一组 UV 分量。
  • 4:2:2 表示 2:1 的水平取样,垂直完全采样。每两个 Y 共用一组 UV 分量。
  • 4:1:1 表示 4:1 的水平取样,垂直完全采样。每四个 Y 共用一组 UV 分量。
  • 4:2:0 表示 2:1 的水平取样,垂直 2:1 采样。每四个 Y 共用一组 UV 分量。

YUV采样格式

YUV 存储格式

YUV 存储分成两种格式:

  • 压缩格式(packed formats):将Y、U、V值存储成Macro Pixels数组,和RGB的存放方式类似。每个像素点的 Y、U、V 分量连续交替存储。
  • 平面格式(planar formats):将Y、U、V的三个分量分别存放在不同的矩阵中。先连续存储所有像素点的 Y 分量,然后存储 U 分量,最后是 V 分量。

压缩格式

常见的两种压缩格式:YUYV 、UYVY

YUYV/YUY2 (属于 YUV422 )

每个像素点都采样 Y 分量,但是每隔一个像素采样它的 UV 分量,每两个 Y 共用一组 UV 分量。如图 Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量,依次类推。

YUY2

UYVY (属于YUV422)

顺序和 YUYV 相反,如图 Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量,依次类推。

UYVY

平面格式

常见的四种平面格式:YV12、I420、NV12、NV21

YV12 (属于 YUV420P )

许多软件MPEG编解码器都采用这种格式。它包括一个大小为 N x M的 Y 平面,和大小为(N / 2)x(M / 2)的 V 平面 与 U 平面。

分量顺序为 Y V U

YVU

I420 (属于 YUV420P )

与YV12基本相同,只是分量顺序变成了为 Y U V。所以 这种格式也被称为 YU12 。
YUV

NV12、NV21 (属于 YUV420SP )

NV12 是 iOS 中有的格式,它的存储顺序是先存 Y 分量,再 U V 进行交替存储。

NV12

NV21 是 安卓 中有的格式,它的存储顺序是先存 Y 分量,再 V U 交替存储。

RGB与YUV

RGB 转 YUV

Y=0.299R+0.587G+0.114BU=0.169R0.331G+0.5B+128V=0.5R0.419G0.081B+128\begin{array}{rll} Y &= 0.299 * R + 0.587 * G + 0.114 * B \\ U &= -0.169 * R – 0.331 * G + 0.5 * B + 128 \\ V &= 0.5 * R – 0.419 * G – 0.081 * B + 128 \end{array}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享