一、发展历程:
频编码标准主要由两个国际组织负责制定:国际电信联盟ITU-T和国际标准化组织ISO
除了上述两个组织之外,其他比较有影响力的标准还有:
- Google:VP8/VP9;
- Microsoft : VC-1;
- 国产自主标准:AVS/AVS+/AVS2
二、H.261标准
1、简介
- 第一种采用“块结构的混合编码”方案的编码标准
- 目的:视频会议,可视电话等低码率视频图像传输
- 数据格式:公共中间格式
- 各国电视制式不统一,无法互通
- 在使用H.261进行编码之前,首先转换为CIF格式然后再编码
- 每一帧分辨率(亮度): cif:352 * 288 qcif:176 * 144
2、编解码系统图
流程中关键点:信源编码器
H.261的信源编码器奠定了后续视频编码的标准,后续的MPEG、264、265基本上都是通过这个结构来改进的,大体流程不变,只是针对每个模块技术的提高。
3、H.261信源编码器主要用到的技术
- 帧内编码/帧间编码判定:根据帧与帧之间的相关性判定——相关性高使用帧间编码,相关性低使用帧内编码。
- 帧内编码:对于帧内编码帧,直接使用DCT编码8×8的像素块。
- 帧间编码/运动估计:使用以宏块为基础的运动补偿预测编码;当前宏块从参考帧中查找最佳匹配宏块,并计算其相对偏移量(Vx,Vy)作为运动矢量;编码器使用DCT、量化编码当前宏块和预测宏块的残差信号;
- 环路滤波器:实际上是一个数字低通滤波器,滤除不必要的高频信息,以消除方块效应;
4、H.261复合编码器输出的码流格式
H.261复合编码器将H.261不同层次的语法格式编码为H.261格式的码流,复合编码格式可以分为4层:
每一层按照不同的封装格式包含了头信息和下一层的结构
- 帧层: 由帧首和块组数据构成;帧首包括帧起始码( PSC)、帧计数码( TR)、帧类型( PTYPE)等;
- 块组层: 由块组首和宏块数据组成;块组首包括组起始码( GBSC)、块组编号码( GN)、块组量化步长等;
- 宏块层(Macroblock,MB): 由宏块首和块数据构成;宏块首包括宏块地址码、宏块类型、宏块量化步长、运动矢量数据、编码模式等;
- 块层: 包括每个8×8块的DCT系数按之字形扫描后的熵编码码流,以块结束符结尾
三、H.263标准
同样以低码率视频通信为目标,但是具有更好的压缩效率
相对于H.261的改进:
- 运动矢量:相比于H.261,H.263的运动矢量分配更加灵活。在H.261中,每一个MB分配一个运动矢量;H.263中支持对每一个8×8像素块各自使用一个运动矢量。
- MV精度:H.261只支持整数像素的运动矢量,在H.263中运动矢量精度为1/2像素。
- 双向预测模式:H.263的帧间编码帧除了P帧之外,也支持B帧,使用前后双向预测模式。
- 熵编码:采用了算术编码,以较高的运算复杂度换取更高的编码效率;码率相同的情况下显示出的图像效果更好
- 支持了更多的图像格式:
四、MPEG-1标准
1、简介
- 作用:在CD/VCD介质中存储音视频信息
- 码率:1.2~1.5Mb/s
- 图像类型:支持I、P、B帧类型
- I帧:帧内编码帧,采用帧内编码,可作为P/B帧的参考帧;
- P帧:前向预测帧,采用帧间编码,以I/P帧作为参考帧;
- B帧:双向预测帧,参考前后两个方向的参考帧;
- 图像显示顺序:
2、码流结构
相对于H.261增加了条带层,每一个宏块所有的编码操作只能在一个条带内实现,条带层可以有效防止编码错误在一帧内扩散
五、MPEG-2标准
1、简介
- 应用场景:MPEG-2标准在数字电视广播和音视频媒体容器等场合得到了广泛应用,常见的DVD视盘采用的就是MPEG-2视频编码方法(兼容MPEG-1,所以DVD也可以放VCD盘)
- MPEG-2格式的主要改进之处之一是支持支持逐行或者隔行扫描视频,使用基于帧或场的编码
- MPEG-2的码流分为三层:
- 基本流:ES,由视频编码的视频基本流和音频编码的音频基本流构成
- 打包基本流:PES,为音视频ES分别打包
- 传输流、节目流:TS/PS,若干个PES进行复用后输出,分别用于传输和存储
- 档和级
- 根据不同的编码工具定义了5个Profile:简单SP、主要MP、SNR可分级SNP、空间可分级SSP和高级HP。
- 根据视频分辨率的不同定义了4个Level:低级LL、主级ML、高-1440级High1440和高级HL。
2、码流结构
- 在MPEG-2的ES流层中,其码流结构采用了类似MPEG-1码流结构的分层封装的方法:
- 图像序列层:包括若干GOP,序列头包含起始码和序列参数等;
- 图像组(GOP)层:包括若干图像,GOP头包括起始码、GOP标识等;
- 图像层:包括若干个Slice,图像头中包括起始码和图像参数等;
- 片(Slice)层:最小的同步单位,包括若干宏块,Slice头中包括起始码、片地址、量化步长等信息;
- 宏块(Macroblock)层:由4个亮度块和2个色度块组成,宏块头包括地址、类型、MV等信息
六、MPEG-4标准
- 同前任的MPEG-1和MPEG-2相比,MPEG-4更注重多媒体系统的交互性、灵活性和可扩展性
- MPEG-4的标准编号为ISO-14496,也包括多个部分,如系统、视觉信息、音频、一致性等。
- MPEG-4中最为显著的特点是采用了基于对象的编码。在MPEG-4中,一个视频对象主要定义为画面中分割出来的不同物体,每个物体由三类信息描述:运动信息、轮廓信息和纹理信息。MPEG-4通过编码这三类信息来实现对视频对象的编码。
由于MPEG-4运算复杂度过高,很难在实际应用中以一个合理的代价实现出来,所以在此之前还是使用mpeg2标准