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
标签:存储,像素,色度,128,YUV,分量
From: https://www.cnblogs.com/doubleconquer/p/18089466