YUV格式
YUV格式通常有两大类:打包(Packed)格式和平面(Planar)格式。YUV分为三个分量,"Y"表示明亮度(Luminance或Luma),也就是灰度值;"U""V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
打包(Packed)格式使用三个数组分开存放YUV三个分量;每个像素点的Y,U,V是连续交叉存储的。
平面(Planar)格式将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(Macro-Pixel);先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。
与我们熟悉的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑色电视的兼容性问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以,用YUV方式传送占用极少的频宽。
YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4, YUV4:2:3,YUV4:2:0。
下面根据其采样格式来从码流中还原每个像素点的YUV值,因为只有正确地还原了每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB值,然后显示出来。
1. YUV 4:4:4采样,每个Y对应一组UV分量。
2. YUV 4:2:2采样,每两个Y共