天天看点

关于YUV420

关于YUV

和RGB色彩模型一样,YUV也是被发明来描述色彩的模型。类似的还有CMYK等。

RGB 是使用红绿蓝三原色来描述色彩的模型。

YUV 使用亮度和色度来描述色彩的模型。

CMYK 是使用青色Cyan、品红色Magenta、黄色Yellow 来描述色彩的模型。

Y:表示的是亮度。UV是色差。YUV又称YCbCr,Cb代表蓝色差量(U),Cr代表红色分量(V),Y不仅有绿分量,还叠加了亮度信息。

YUV的出现解决了黑白电视机和彩色电视机显示的问题。

关于YUV420

YUV主流的采样方式包括:YUV444,YUV422,YUV420.

YUV 4:4:4采样,每一个Y对应一组UV分量。

YUV 4:2:2采样,每两个Y共用一组UV分量。

YUV 4:2:0采样,每四个Y共用一组UV分量。

对于YUV420编码来说,一副RGB图片有多少个像素点就有多少个Y,然后U分量是四分之一个像素点,V分量也是四分之一个像素点。

YUV420表示的是 2:1 的水平下采样,2:1 的垂直下采样

也就是YUV420对RGB格式图片采样如下:

1. 每个像素点采样一个Y

2. 奇数行采样U并且是隔一个像素点采样一次。

3. 偶数行采样V并且是隔一个像素点采样一次。

所以对于800x600的RGB图像,

RGB格式占用:800x600x3字节

YUV格式占用:800x600x1 + 800x600x1/4 + 800x600x1/4 = (800x600)x1.5 字节

也就是说YUV格式减少了一半的存储空间。

YUV420对RGB采样时如下:

每个像素点都采样Y,奇数行采样1/2个U(width、height都减半),不采样V,偶数行采样1/2个V(width、height都减半),不采样U。

YUV420的存储

YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。对于前者称为YUV420p,后者称为YUV420sp。

相关资料: