前一篇文章具体介绍了视频图像的两种表示方式,此篇详细介绍下YUV的采样格式及其对图像视频的表示方式。
常见YUV有很多规格,例如YUV444,YUV422和YUV420,后面的数字是表示采样的比例。其中YUV420是FFmpeg里最常用的,因为最省资源。
4:4:4表示完全取样。
4:2:2表示2:1的水平取样,垂直完全采样。
4:2:0表示2:1的水平取样,垂直2:1采样。
4x2像素的图像,用RGB表示为:
YUV444全采样,跟RGB一样,每像素是3字节。上面RGB图像可以通过计算,得到YUV444表示:
YUV422是水平方向对UV进行2:1采样。每个像素只取U或者V,间隔进行,所以YUV422的UV只有YUV444的一半。
YUV420是水平方向和垂直方向都对UV进行2:1采样。例如第一行取U,第二行取V,并且每行的U或者V都是Y的一半,也就是YUV420的YUV是关系是4个Y一个U和一个V。这样YUV420的UV比YUV422的UV少一半,是YUV444的1/4。
上面只是举了例子,实际YUV420有很多种采样方法,只要符合下图的规律,即为YUV420。
小结
YUV和RGB为图像编程的基础,了解了YUV采样,做播放器、音视频编辑和直播会少很多障碍。