视频编码
压缩
使用更少的数据来表达更多信息
有损压缩
- 通过删除不必要或者不重要的内容减少数据量
无损压缩
- 压缩过程中不丢失任何信息
分辨率
对原始图像和视频数据而言,分辨率可以代表清晰程度,越高的分辨率,越可能表现出越多的细节,但相应地需要的数据也就越多
VGA
- 作为IBM定义的显示标准为大多数显示器制造商所遵守
- 640像素x480像素
SVGA
- 800像素x600像素
XGA
- 1024像素x768像素
720p
- 1280像素x720像素
1080p
- 1920像素x1080像素
QHD
- 2560像素x1440像素
4K
- 3840像素x2160像素
颜色通道
像素的颜色通道依据的比特数可以分为
-
8Bit
-
10Bit
-
12Bit
-
20Bi
-
…
帧率(Frame Rate,帧/秒)
-
24帧/秒
-
25帧/秒
-
30帧/秒
-
60帧/秒
-
120帧/秒
H.264/AVC
当前市场上最为流行的编解码标准
当前主要支持YUV420和8Bit精度,较新修订的标准增加了对10Bit的支持
输入单位是帧或场(Field),当针对各行扫描的视频帧时,需要引入场的概念
H.264支持固定帧编码、固定场编码、图像自适应帧/场编码(PAFF)和宏块自适应/场编码(MBAFF)
主要技术
-
预测
- 帧内预测
- 帧间预测
-
变换
- 采用基于4×4像素块的整数DCT变换
-
量化
- 通过多对一的映射以降低码率,包括均匀和非均匀量化、自适应量化
-
环路滤波
-
由于包括H.264在内的许多视频编码器都基于宏块,存在变换和运动补偿导致的块效应(即视觉上不连续的沿块边界),如果不进行处理,这些不连续性将随着预测过程扩散,环路滤波可以有效消除块效应,是编码过程中极为重要的一环,这项技术又被称作De-blocking Filter(去块效应滤波)或Reconstruction Filter(重构滤波)。
-
过程
- 1.估算边界强度,即根据边界位置以及宏块信息估计两边的像素差距
- 2.区分真假边界,即边界是块效应导致还是视频图像原有边界
- 3.滤波运算,根据边界类型不同采用不同的算法,改变2~6个不同的像素
-
-
熵编码
- 在所有Profile上适用的CAVLC
- 在中高档Profile上可以选择的CABAC
x264
- 开源编码器
GOP(Group ofPicture)
代表了一组连续的图像帧
I帧
- GOP中的第1帧为I帧
- I帧表示关键帧(Key Frame)
- 解码时不需要引用来自其他帧的信息即可完成
P帧
- P帧表示前向参考帧(Predictive Frame)
- 需要依赖前面的I帧或P帧才可以解码
B帧
- 双向参考帧(Bi-directional Interpolated Prediction Frame)
- 记录了当前帧与前后帧的不同,需要依赖其前后两个方向的I帧或P帧才可以完成解码