欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

了解YUV和RGB的不同之处及其对YUV444、YUV422、YUV411和YUV420的介绍

最编程 2024-08-15 16:41:03
...

RGB是构成多种颜色的三基色(红绿蓝),也称为加成色。主要是图像的采集和显示。YUV是优化彩色视频信号的编码和传输,和rgb相比,YUV占用的带宽少。

YUV中Y表示的是亮度,是通过RGB输入信号确定的,方法是将RGB信号的特定部分叠加到一起。UV表示的是色度,定义了颜色的两个方面的色度和饱和度,分别使用Cr和Cb表示。其中,Cr是GB输入信号的红色部分和RGB信号的亮度的差异。而Cb反映的是RGB输入信号的蓝色部分和RGB的信号亮度值之间的差异。可以参考下面的RGB转YUV的公式。

RGB和YUV是可以相互转化的(根据不同的色域计算有所不同,bt.601-6):

RGB转YUV:

Y =  0.299*R + 0.587*G + 0.114*B;

U = -0.169*R - 0.331*G + 0.5  *B ;

V =  0.5  *R - 0.419*G - 0.081*B;

YUV转RGB:

R = Y + 1.4075 * V;  
G = Y - 0.3455 * U - 0.7169*V;  
B = Y + 1.779 * U;  

参考:https://www.cnblogs.com/luoyinjie/p/7219319.html


下面介绍一下YUV。YUV分为YUV444,YUV422,YUV420等,含有不同色度分量的编码方式。

YUV444:UV三个信道的抽样率相同,因此在生成的图像里,每个象素的三个分量信息完整,如果每个分量用8比特表示,则未经压缩的每个像素占用3个字节.

原始像素 Y0  U0 V0   Y1 U1 V1   Y2 U2 V2   Y3 U3 V3
采样后的码流 Y0 U0 V0   Y1 U1 V1   Y2 U2 V2   Y3 U3 V3
还原后的像素 Y0 U0 V0   Y1 U1 V1   Y2 U2 V2   Y3 U3 V3

YUV422:个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。如下可以这样理解:采样的时候每个信号的色度UV信号分别每隔一个采样,还原的时候使用相邻采样点不同的UV信号补充。

原始像素 Y0  U0 V0   Y1 U1 V1   Y2 U2 V2   Y3 U3 V3
采样后的码流 Y0 U0     Y1   V1   Y2 U2     Y3   V3
还原后的像素 Y0 U0 V1   Y1 U0 V1   Y2 U2 V3   Y3 U2 V3

 YUV411::1:1的色度抽样,是在水平方向上对色度进行4:1抽样。对于低端用户和消费类产品这仍然是可以接受的。对非压缩的8比特量化的视频来说, 每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存。如下可以这样理解:采样的时候每个信号的色度UV信号分别每隔3个采样,还原的时候使用相邻采样点不同的UV信号补充。

原始像素 Y0  U0 V0   Y1 U1 V1   Y2 U2 V2   Y3 U3 V3
采样后的码流 Y0 U0     Y1       Y2   V2   Y3    
还原后的像素 Y0 U0 V2   Y1 U0 V2   Y2 U0 V2   Y3 U0 V2

 YUV420::2:0并不意味着只有 Y,Cb而没有 Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量, 也就是说, 如果一行是4:2:0的话, 下一行就是4:0:2, 再下一行是4:2:0...以此类推。 对每个色度分量来说, 水平方向和竖直方向的抽样率都是 2:1, 所以可以说色度的抽样率是4:1。 对非压缩的8比特量化的视频来说,每个由2x2个2行2列相邻的像素组成的宏像素需要占用6字节内存。

原始像素 Y0  U0 V0   Y1 U1 V1   Y2 U2 V2   Y3 U3 V3  
  Y4 U4 V4   Y5 U5 V5   Y6 U6 V6   Y7 U7 V7  
采样后的码流 Y0 U0     Y1       Y2 U2     Y3     YUV420
  Y4   V4   Y5       Y6   V6   Y7     YUV402
还原后的像素 Y0 U0 V4   Y1 U0 V4   Y2 U2 V6   Y3 U2 V6  
  Y4 U0 V4   Y5 U0 V4   Y6 U2 V6   Y7 U2 V6