1.图像相关概念
1.1 像素(Pixel)
像素是图像的基本单位,例如一幅图片的大小为1920x1080,就是说明这个图片宽度有1920个像素点,高度有1080个像素点,也代表这个图片的分辨率为1920x1080。图片像素大小=1920X1080≈2000000,也就是说这个图片的像素是两百万。
空间采样的主要技术指标为:解析度(Resolution)
1.2 PPI
PPI全称为Pixels Per Inch,代表每英寸的像素点。一般来说,PPI越高,图像就越清晰。
下图为不同PPI的显示效果
1.3 基色分量
基色分量分别为R(红色)、G(绿色)、B(蓝色)。像素中的颜色分别为这三种分量构成。他们的取值分别从0~255,一共有256种。这也代表通过RGB的组合可以表达256^3大约有1600万种颜色。RGB三色,每种颜色占用8bit,这种方式表达出来的颜色也被称为24位色,相当于一个像素占用24bit。而这样的颜色超过了人眼可见的色彩,所以被称为真彩色。
2.视频编码基础
2.1 编码的概念
编码就是就是按指定的方法,将信息从一种形式(格式),转换成另一种形式(格式)。视频编码就是将一种视频格式,转换成另一种视频格式。编码的目的就是为了文件大小。
2.2 YUV信号
视频通信系统采用 YUV,采用YUV的原因是因为RGB不利于压缩,下图是视频从录制到播放的整个过程
图像格式的变换就涉及到从YUV转化为RGB。
YUV的主流采样方式用三种。
1. YUV4:4:4
其中Y 分量用叉表示,UV 分量用圆圈表示。
举个例子 :
假如图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
那么采样的码流为:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
最后映射出的像素点依旧为 [Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
2. YUV4:2:2
举个例子 :
假如图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
那么采样的码流为:Y0 U0 Y1 V1 Y2 U2 Y3 V3
其中,每采样过一个像素点,都会采样其 Y 分量,而 U、V 分量就会间隔一个采集一个。
最后映射出的像素点为 [Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]
一张 1280 * 720 大小的图片,在 YUV 4:2:2 采样时的大小为:
(1280 * 720 * 8 + 1280 * 720 * 0.5 * 8 * 2)/ 8 / 1024 / 1024 = 1.76 MB 。
可以看到 YUV 4:2:2 采样的图像比 RGB 模型图像节省了三分之一的存储空间,在传输时占用的带宽也会随之减少。
3. YUV4:2:0
举个例子 :
假设图像像素为:
[Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3]
[Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8]
那么采样的码流为:Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8
其中,每采样过一个像素点,都会采样其 Y 分量,而 U、V 分量就会间隔一行按照 2 : 1 进行采样。
最后映射出的像素点为:
[Y0 U0 V5]、[Y1 U0 V5]、[Y2 U2 V7]、[Y3 U2 V7]
[Y5 U0 V5]、[Y6 U0 V5]、[Y7 U2 V7]、[Y8 U2 V7]
一张 1280 * 720 大小的图片,在 YUV 4:2:0 采样时的大小为:
(1280 * 720 * 8 + 1280 * 720 * 0.25 * 8 * 2)/ 8 / 1024 / 1024 = 1.32 MB 。
可以看到 YUV 4:2:0 采样的图像比 RGB 模型图像节省了一半的存储空间,因此它也是比较主流的采样方式。
以上参考一文读懂 YUV 的采样与格式 - 知乎 (zhihu.com)
YUV 图像通常有以下几种分量方式:
2.3 场图像
一帧图像包括两场,分别为顶场和底场。
- 逐行图像是指:一帧图像的两场在同一时间得到,ttop=tbot。适用于静态
- 隔行图像是指:一帧图像的两场在不同时间得到, ttop≠tbot。适用于动态
2.4 帧
视频帧又分为 I 帧、B 帧和 P 帧:
- I 帧:帧内编码帧,大多数情况下 I 帧就是关键帧,就是一个完整帧,无需任何辅助就能独立完整显示的画面。
- B 帧:帧是双向预测帧。参考前后图像帧编码生成。需要前面的 I/P 帧或者后面的P 帧来协助形成一个画面。
- P 帧:前向预测编码帧。是一个非完整帧,通过参考前面的 I 帧或 P 帧生成画面。
2.5 分辨率
视频、图片的画面大小或尺寸。分辨率是以横向和纵向的像素数量来衡量的,表示平面图像的精细程度。视频精细程度并不只取决于视频分辨率,还取决于屏幕分辨率。
1080P 的 P 指 Progressive scan(逐行扫描),即垂直方向像素点,也就是 "高",所以 1920X1080 叫 1080P, 不叫 1920P。
当 720P 的视频在 1080P 屏幕上播放时,需要将图像放大,放大操作也叫上采样。
2.6 颜色空间
- RGB
- YUV
- HSV
3.人类视觉系统 HVS
3.1 HVS的组成
- 眼睛
- 神经
- 大脑
3.2 HVS的特点
- 对高频信息不敏感
- 对高对比度更敏感
- 对亮度信息比色度信息更敏感
- 对运动的信息更敏感
针对 HVS 的特点,数字视频系统的设计应该考虑以下因素
- 丢弃高频信息,只编码低频信息
- 提高边缘信息的主观质量
- 降低色度的解析
- 对感兴趣区域(ROI)进行特殊处理
4.音视频封装
封装:就是封装格式,简单来说,就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。
4.1 封装格式
封装格式业界也有人称音视频容器,比如我们经常看到的视频后缀名:mp4、rmvb、avi、 mkv、mov 等就是音视频的容器,它们将音频和视频甚至是字幕一起打包进去,封装成一个文件。
视频封装格式如 mp4、mkv,用来存储或传输编码数据,可以理解成一个容器。
封装格式:AVI、VOB、WMV、RM、RMVB、MOV、MKV、FLV、MP4、MP3、WebM、DAT、 3gpp、asf、mpeg、ogg;