视频编码(Video Encoding)
基本概念
-
我们将视频定义为在单位时间内连续的 n 帧,n 即为帧率,若单位时间为秒,则等同于每秒帧数(Frames Per Second)。
-
一帧图像可以视作一个二维矩阵。如果将色彩考虑进来,我们可以做出推广:将这个图像视作一个三维矩阵,多出来的维度用于储存色彩信息。
-
如果我们选择三原色(红、绿、蓝)代表这些色彩,这就定义了三个平面:第一个是红色平面,第二个是绿色平面,最后一个是蓝色平面。
-
我们把矩阵里的每一个点称为像素(Pixel)。像素的色彩由三原色的强度(通常用数值表示)表示。
色彩深度
-
存储颜色的强度,需要占用一定大小的数据空间。在每一帧图像中存储每一像素的颜色所用的数据空间位数称为色彩深度(Color Depth)
-
通常,RGB、灰度和 CMYK 图像的每个颜色通道包含 8 位数据。因此,RGB 图像通常为 24 位 RGB(8 位 × 3 通道),灰度图像为 8 位灰度(8 位 × 1 通道 ),CMYK 图像为 32 位 CMYK(8 位 × 4 通道)。
-
例如,在 8bit 的色彩深度中,强度的取值范围是 0~255。一个纯净的红色像素是指强度为 0 的绿色,强度为 0 的蓝色和强度为 255 的红色组合而成。
分辨率(Resolution)
-
图像的另一个属性是分辨率,即一个平面内像素的数量。通常表示成宽 × 高。如 UHD 的分辨率为 3840 × 2160。
-
需要注意的是,这里所讨论的分辨率并非是光学成像系统中用来描述解析物体细节的能力的光学分辨率。
宽高比
-
宽高比简单地描述了图像或像素的宽度和高度之间的比例关系。当人们说这个电影或照片是 16:9 时,通常是指显示宽高比(Display Aspect Ratio)。
-
在实际应用中,单个像素的宽高比可能并不固定。对于不同形状的单个像素,我们称为像素宽高比(Pixel Aspect Ratio)。
比特率(Bit Rate)
- 一段视频每秒所包含的数据量就是它的比特率(即常说的码率)。
-
例如,一段每秒 30 帧,每像素 24 bits,分辨率是 480×240 的视频,如果我们不做任何压缩,它将需要 82, 944, 000 比特每秒(Bit Per Second)或 82.944 Mbps (30×480×240×24)。
-
当比特率几乎恒定时称为恒定比特率(Constant Bit Rate);但它也可以变化,称为可变比特率(Variable Bit Rate)。
隔行扫描与逐行扫描
-
在电视行业早期,信号带宽是极其宝贵的。工程师们想出了一项技术能将视频的感官帧率加倍而没有消耗额外带宽,这项技术被称为隔行扫描(Interlaced Scan)。它先扫描单数的垂直画面,再扫描双数的垂直画面,故只需要逐行扫描一半的带宽。
-
如今,在部分设备中,依旧可以看到标有 1080p / 1080i 的拍摄选项,末尾的 i 即为隔行扫描,p 意为逐行扫描(Progressive Scan)。
-
逐行扫描的每一线都同时表现在画面上,尤其是在高速运动的画面上,比隔行扫描更加的平滑。因此,如今的屏幕渲染大多使用逐行扫描技术。
人眼的视觉特性
- 人眼有大约 1.2 亿个视杆细胞和 6 百万个视锥细胞。其中,视杆细胞(Rod Cells)主要负责亮度,而视锥细胞(Cone Cells)负责颜色。既然我们的视杆细胞比视锥细胞多很多,一个合理的推断是和区分颜色相比,人眼对于亮度的区分要更加敏锐,事实上也的确如此。