YUV和RGB的区别(以及YUV444 YUV422 YUV411 YUV420的介绍)

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 U0V0 Y1U1V1 Y2U2V2 Y3U3V3
采样后的码流Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3
还原后的像素Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3

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

原始像素Y0 U0V0 Y1U1V1 Y2U2V2 Y3U3V3
采样后的码流Y0U0  Y1 V1 Y2U2  Y3 V3
还原后的像素Y0U0V1 Y1U0V1 Y2U2V3 Y3U2V3

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

原始像素Y0 U0V0 Y1U1V1 Y2U2V2 Y3U3V3
采样后的码流Y0U0  Y1   Y2 V2 Y3  
还原后的像素Y0U0V2 Y1U0V2 Y2U0V2 Y3U0V2

 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 U0V0 Y1U1V1 Y2U2V2 Y3U3V3 
 Y4U4V4 Y5U5V5 Y6U6V6 Y7U7V7 
采样后的码流Y0U0  Y1   Y2U2  Y3  YUV420
 Y4 V4 Y5   Y6 V6 Y7  YUV402
还原后的像素Y0U0V4 Y1U0V4 Y2U2V6 Y3U2V6 
 Y4U0V4 Y5U0V4 Y6U2V6 Y7U2V6 

 

  • 13
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值