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

介绍YUV格式:YUV444、YUV422和YUV420解析

最编程 2024-08-15 16:42:21
...

YUV是一种颜色编码方法,Y表示亮度(Luma),也就是灰度值。U分量和V分量重存储了是色度(Chroma)信息,主要作用是描述了视频的色彩及饱和度,用于指定每个像素的颜色。主要用于电视系统以及模拟视频领域,它将亮度信息Y与色彩信息UV分离,没有UV信息一样可以显示完整的图像,显示出来将是黑白效果,解决了彩色电视机和黑白电视机之间的兼容问题。早期的黑白电视机只有亮度值Y,后面彩色电视的出现引入了UV分量,形成了现有的YUV格式,又称为YCbCr格式。
YUV格式的优点。由于人眼对亮度敏感而对色度不敏感的特点,因此在YUV格式中减少了UV的数据量,在不影响用户观看的情况下有效的压缩了总体的数据量。所以YUV与RGB格式相比,占用更少的存储空间,相对应的在传输过程中也会减少带宽的消耗量。

常见的YUV格式有YUV444、YUV422、YUV420。
对于YUV444格式,一个Y分量对应一组UV分量,及完全采样。如下图所示:

在这里插入图片描述

对于YUV422格式,每两个Y公用一组UV分量。如下图所示:
在这里插入图片描述

对于YUV420格式,并不是说只有Y分量和U分量,没有V分量。U分量和V分量是交替出现的,例如第一行为4:2:0,则第二行为4:0:2,如此反复依次交替。

在这里插入图片描述

YUV444、YUV422、YUV420几种格式中最常用的就是YUV420格式了。YUV420格式又可以细分为YUV420P和YUV420SP两种类型。

YUV420P是三平面存储,Y、U、V三个分量分别占用一个平面。数据的排列方式有I420,YV12。
I420,YYYYYYYY UUVV
YV12,YYYYYYYY VVUU

YUV420SP是两平面存储,Y分量占用一个平面,UV分量公用一个平面。有两种排列方式NV12、NV21。
NV12,YYYYYYYY UVUV
NV21,YYYYYYYY VUVU

RGB是一种对颜色进行编码的方式。由RGB(红、绿、蓝)经过叠加组合可以展现出所有的色彩,每种颜色都可以由这三个变量的不同值组合而成。记录一张图像时,最常用的编码方式就是RGB。

YUV的主要优势在于可以兼容之前的黑白电视,单独只有Y数据就可以显示完整的黑白图像,UV是后期加入的色彩参数。并且经过多年的发展,YUV的压缩算法得到了改进,使得图像的压缩率大大增加。使得YUV比RGB占用更少的存储空间。虽然YUV很有优势,但是在最终显示的时候其本质上也都是显示的RGB数据,一些支持YUV输入的设备,内部也是做了相应的转换。