视频用或记录、或显示、或同时记录显示运动对象,它由一系列在固定时间间隔拍摄的图片组成。每秒钟的帧(图片)数叫做帧率。
视频可被分为模拟和数字类型。模拟视频用模拟信号来表示,由模拟摄像机进行逐行扫描或隔行扫描来捕获。数字视频常常用数字摄像机来捕获,当然它也能由模拟视频信号转换得到。自然场景投影到数字摄像机的传感器上,如电荷耦合器件(CCD)阵列,这种传感器把场景的亮度或者颜色转换成数字数据。
视频序列的每幅图像(图片)包括 M x N 个像素(pixel),其中 M 是行数,N 是列数。对于彩色图像,每个像素通常包括 3 个颜色分量:红(R)、绿(G)和 蓝 (B)。每个颜色分量被单独过滤并投影到 CCD 阵列上。任意颜色都可用不同比例的 R、G 和 B 组合而成。对于 R、G 和 B 所有可能的取值,矢量 (R, G, B) 构成一个空间,叫做 RGB 颜色空间。每个颜色分量用 K bit 的整数来表示。对一般应用而言,K 值取 8 就足够(即 8 bit 的整数(0~255))。但是,对于较为精确的应用诸如医学、广播、监控和工作室编辑等,就需要更大的 K 值。
因此,一个像素使用矢量 (R, G, B) 进行表示。
不过,尽管 RGB 颜色空间很适合于捕获与显示彩色图像,但由 矢量 (Y, Cb, Cr) 形成的 YCbCr 空间 对于压缩更有效,其中,Y 表示像素的亮度分量,Cb 和 Cr 表示像素分别正比于色差 B-Y 和 R-Y 的色度分量。即:Y 是指亮度分量,Cb 指蓝色色度分量,而 Cr 指红色色度分量。
人类视觉系统(HVS)对亮度误差比对色度误差更为敏感。该特性可被用来对视频数据进行更多的压缩。因此,Cb 和 Cr 分量可以用低于 Y 分量的分辨率来表示。例如,Cb 和 Cr 可以 下采样 为 Y 的 1/4 的大小,实现压缩**。这就降低了用来表示色度分量的数据量,同时对视觉质量没有明显的影响。对于一个随意观察图像的人来说,一副 RGB 图像和一副色度分辨率降低了(色度分量Cb和Cr采样率降低)的 YCbCr 图像之间是没有明显区别的。
因此,在存储或编码之前,RGB 图像要转换为 YCbCr 图像,而 YCbCr 图像在显示之前通常有必要转回 RGB 。
一个视频标准通常支持多种 Y、Cb 和 Cr 的采样模式。
采样模式:N1:N2:N3
指的是水平方向上的相对采样率,N1 表示在奇数行和偶数行里 Y 样本的个数,N2 表示奇数行里 Cb 和 Cr 样本的个数(Cb和Cr相同),N3 表示偶数行里 Cb 和 Cr 样本的个数。例如:在 4:2:0
的采样模式中,N1 = 4, N2 = 2, N3 = 0。这意味着对于奇数行里的每 4 个亮度样本,有 2 个 Cb 样本和 2 个 Cr 样本;但对于偶数行里的每 4 个亮度样本有 2 个 Cb 和 Cr 样本。
,所以在一幅图像中,。
因此,N1:N2:N3
的解读是:奇数行里的每 N1 个亮度样本 Y ,有 N2 个 Cb 样本和 N2 个 Cr 样本;偶数行里的每 N1 个亮度样本 Y 有 N3 个 Cb 和 N3 个 Cr 样本。
典型的采样模式是 4:4:4
,4:2:2
和 4:2:0
。
4:4:4
,每一个Y对应一组CbCr分量,共占 8+8+8 = 24bits = 3 bytes。
4:2:2
,每两个Y共用一组CbCr分量,共占 8+4+4 = 16bits = 2 bytes。
4:2:0
,每四个Y共用一组CbCr分量,共占 8+2+2 = 12bits = 1.5 bytes。
YUV :在 YUV 中,Y 表示亮度,UV 用来表示色差,U、V 是构成彩色的两个分量。一般 YUV 大多是指 YCbCr 。
4:4:4
是全带宽视频,每个宏块包括 4 个 Y 块和 4 个 U/V 块。因全带宽之故,这种格式包括就像在 RGB 颜色空间中一样多的数据量。4:2:0
一般用在视频流领域。
总结:
- 数字视频由一系列图像组成,每幅图像包括 M x N 个像素;
- 每个像素的颜色由或者是 RGB 颜色空间或者是 YCbCr 空间中的三个分量确定;
- RGB 颜色空间更适合于图像采集和显示,而 YCbCr 空间用于编码和存储比较好;
- 在采样方式中只对色度(Cb和Cr)进行下采样,不对亮度(Y)进行下采样,所以在一幅图像中,(Y)亮度样本数等于图像像素总数(M x N)。