学习完YUV相关的知识点,现谈谈自己对这方面的理解。
计算机里面,R、G、B也被称为“基色分量”。它们的取值,分别从0到255,一共256个等级(256是2的8次方)。所以,任何颜色,都可以用R、G、B三个值的组合表示。而且只有RGB格式的数据才能在屏幕或显示器上显示出来。
既然只有RGB格式信号才可以在显示器上显示出来,为什么还需要其他格式的信号(比如YUV)?带着这个问题让我们一起回顾一下RGB与YUV。
RGB
RGB 模型是目前常用的一种彩色信息表达方式,每一种颜色都是红、绿、蓝三种颜色的混合,在这种模式下通过叠加颜色生成其他的颜色值,因而适合于显示器等发光体的显示。
RGB 颜色空间可以看作是三维直角颜色坐标系中的一个正立方体。如上右图所示。红绿蓝三色在立方体的三个顶点上;洋红、青、黄色在立方体的立方体的另外三个顶点;黑色在坐标原点;而白色在离原点最远的定点上。在连接黑色与白色的对角线上,是亮度等量的三基色混合而成的灰色,该线称为灰色线。
下图是RGB如何形成图像的
那么对于一张1920 * 1080的图片,如果采用RGBA编码格式,这一张图片加载到内存并在设备中显示时,所占用的内存大小就是:
1920 * 1080 * 4 /1024 / 1024 = 7.9M`
YUV
YUV就是另外一种颜色数字化表示方式,常用与视频通信系统中。其中Y代表亮度(Luma),U和V代表色度(Chroma)。YUV与YCbCr可统称为YUV(具体原因可以查阅相关方面的资料)。下图演示了RGB 和YUV的关系,以及Y对UV的影响
由于人眼对色度的敏感程度要低于对亮度的敏感程度,因而可以在使用YUV的时候, 保证Y分量的前提下,可以舍弃一部分UV分量,来减少对带宽的需求,却也并不会太影响图像的质量。这就是YUV相对于RGB的优势,所以才会引入YUV的使用。
下图是YUV如何形成图像的
YUV常用采样方式
主流的YUV采样方式有如下三种:
- YUV444
- YUV422
- YUV420
YUV444
YUV422
YUV420
其中YUV420最常用,YUV420包含YUV420p与YUV420sp, 区别在于plane数量分别为3和2。 根据uv分量的顺序不同YUV420p分为YV12和YU12,,YUV420sp分为NV12和NV21。 YUV420sp中uv分量是杂糅在一个plane中以uvuv或者vuvu的顺序存储在第二个plane中。