本章将讲解视频的基础知识(像素、RGB、分辨率等)、视频帧(图像)与显示器之间的关系。重点讲解YUV数据格式(如YUV4:4:4、YUV4:2:2、YUV4:2:0等),并让你掌握 YUV 与RGB 之间的转换以及视频未编码码流该如何计算。
图像的基本概念
图像:平时我们看到的视频是有一幅幅图像组成,而图像是由一个个像素组成,是二维图像用有限数字数值像素的表示。如图所示,当我们放大一个图像后,能明显看到一个个像素块。
像素:由一个数字序列表示的图像中的一个最小单位。可以理解为一个二维数组的一个元素,其值大小表示灰度(强度)
分辨率:水平分辨率指的一幅图像的宽,垂直分辨率指的一幅图像的高。一般说的分辨率用水平分辨率(宽)X 垂直分辨率(高)
表示。
图像深度:是指存储每个像素所用的位数,也用于量度图像的色彩分辨率。图像深度确定彩色图像的每个像素可能有的颜色[数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像中可出现的最多颜色数,或灰度图像中的最大灰度等级。
比如一幅单色图像,若每个像素有8位 ,则最大灰度数目为2^8 = 256。一幅彩色图像RGB3个分量的像素位数分别为4,4,2,则最大颜色数目为2^(4+4+2) = 1024, 就是说像素的深度为10位,每个像素可以是1024种颜色中的一种。
主要的颜色空间
RGB
人的眼睛是根据所看见的光的波长来识别颜色的。可见光谱中的大部分颜色可以由三种基本色光按不同的比例混合而成,这三种基本色光的颜色就是红(Red)、绿(Green)、蓝(Blue)三原色光。这三种光以相同的比例混合、且达到一定的强度,就呈现白色(白光);若三种光的强度均为零,就是黑色(黑暗)。这就是加色法原理,加色法原理被广泛应用于电视机、监视器等主动发光的产品中。
每个像素都有红(R),绿(G),蓝(B)三个分量 1个像素点使用3个字节,位深度为24位 可表示256*256*256=16,77,216种颜色 24位真彩色。
常见的RGB的存储包含如下:
-
RGB16:每像素占2字节,R、G、B分别用5bit,6 bit,5 bit表示。
-
RGB24