YUV

YUV

YUV是一种颜色编码方式,通常用于数字视频和图像处理中。它将颜色信息分解成亮度(Y)和色度(U和V)两个分量

  • Y表示亮度(Luminance),即灰度信息,决定了图像得明暗程度。
  • U和V表示色度(Chromminance),用于描述图像得色彩信息和饱和度。U表示蓝色得色度,V表示红色得色度。
    YUV常用于视频压缩中,因为人眼对亮度得敏感度高于对色度得敏感度,所以可以通过减少色度信息来实现较高得压缩率,而不明显减少图像质量。

YUV数据格式

YUV的数据格式可以有多种,其中最常见的是YUV444、YUV422和YUV420。这些数字表示每个像素对应的Y、U和V分量的取样率。
YUV444:每个像素都有一个Y、U和V的分量,分辨率最高,但文件大小也最大。
YUV422:每两个像素共享一个U和V分量,Y分量每个像素都有,但U和V分量的取样率降低了一半。
YUV420:每四个像素共享一个U和V分量,Y分量每个像素都有,但U和V分量的取样率进一步降低。

YUV的数据格式

在YUV色彩空间中,数据通常以平面(planar)或者交错(interleaved)的方式划分。这两种方式的区别在于如何排列Y、U和V分量的数据。

  • 平面排列:Y分量的数据按照从左上角到右下角的顺序连续存储,每个像素都有对应的Y值。U和V分量的数据也按照从左上角到右下角的顺序连续存储,但每个像素的U和V值分别存储在各自的平面中。这种方式使得对Y、U和V分量的独立处理变得容易。
  • 交错排列:YUV分量的数据交错存储在一起,每个像素的Y、U和V值依次排列,通常是先存储一个像素的Y值,然后是对应的U值,最后是V值,然后再依次存储下一个像素的YUV值。这种情况可能会提高内存访问的效率,但对于独立处理Y、U和V分量则不够方便。

YUV和RGB的转换公式

ITU-R BT.601标准

R = Y + 1.402 * (V - 128)
G = Y - 0.34414 * (U - 128) - 0.71414 * (V - 128)
B = Y + 1.772 * (U - 128)
Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.147 * R - 0.289 * G + 0.436 * B + 128
V = 0.615 * R - 0.515 * G - 0.100 * B + 128

ITU-RBT.709

R = Y + 1.5748 * (V - 128)
G = Y - 0.1873 * (U - 128) - 0.4681 * (V - 128)
B = Y + 1.8556 * (U - 128)
Y = 0.2126 * R + 0.7152 * G + 0.0722 * B
U = -0.0999 * R - 0.3360 * G + 0.4360 * B + 128
V = 0.6150 * R - 0.5586 * G - 0.0563 * B + 128
posted @ 2024-03-22 14:47  不会笑的孩子  阅读(41)  评论(0)    收藏  举报