1988 年CCITT 通过了“p×64Kbps(p=1,2,3,4,5,,,,30) ”视像编码标准 H.261 建议, 被称为视频压缩编码的一个里程碑。从此, ITU-T、 ISO 等公布的基于波形的一系列视频编码标准的编码方法都是基于 H.261 中的混合编码方法。
1986 年,ISO 和 CCITT 成立了联合图像专家组(JPEG,Joint Photographic Experts Group),研究连续色调静止图像压缩算法国际标准, 1992 年 7 月通过了 JPEG 标准。
1988 年 ISO/IEC 信息技术联合委员会成立了活动图像专家组(MPEG, Moving PictureExpert Group)。 1991 年公布了 MPEG-1 视频编码标准,主要应用于家用VCD 的视频压缩; 1994 年 11 月,公布了 MPEG-2 标准,用于数字视频广播(DVB)。
1995 年, ITU-T 推出 H.263 标准,用于低于 64 Kbps 的低码率视频传输,如 PSTN 信道中可视会议、多媒体通信等。 1984 年和 2000 年又分别公布了 H.263+、 H.263++等标准。
1999 年 12 月份, ISO/IEC 通过了“视听对象的编码标准”——MPEG4,它除了定义视频压缩编码标准外,还强调了多媒体通信的交互性和灵活性。
2003 年 3 月, ITU-T 和 ISO/IEC 正式公布了 H.264 视频压缩标准,不仅显著提高了压缩比,而且具有良好的网络亲和性,加强了对 IP 网、移动网的误码和丢包的处理。
H.261 用于视频通信,会产生多个国家的互通困难的问题,不同国家采用不同的彩电制式,不可能直接互通。 H.261 采用一种公共中间格式(CIF, Common Intermediate Format),不论何种彩色格式,发送方先把自己国家的彩电制式转换成 CIF 格式,经 H.261 编码后再由CIF 格式转换到接收方彩电制式。
CIF图像格式
采用 CIF 及 QCIF 格式时,视频信号的结构采用图所示的图像、块组(GOB, group of block)、宏块(MB, macroblock)、块(B, block)四级结构。每帧 CIF 图像由 2 个 GOB组成,每个 GOB 由 33 个 MB 组成,每个 MB 由 4 个亮度块和 1 个 Cr 块及 1 个 Cb 块组成,每个块(B)又由 8×8 像素构成。一帧 QCIF 图像由 3 个 GOB 组成。
视频信源编码器用于视频信号的码率压缩,主要采用混合编码方法;视频复合编码器将每帧图像数据编排成四层结构,并通过熵编码对视频数据进一步压缩输出。传输缓冲器和码率控制器用于保证输出码流尽可能稳定。传输编码器则用于视频数据的误码检测和纠正。解码器各部分功能与编码器相反。
H.261信源编码器框图如下所示,输入以MB(宏块)为单位
针对四层的视频数据结构,视频复合编码器对量化后的视频数据进行变长编码(直流系数用定长编码),并插入一些辅助数据(如帧首、块组首、宏块首等),得到复合编码图像数据结构,如下图所示
为使输出码率基本恒定,可采用缓冲器控制并调整帧亚速率、改变量化步长等等
解码器框图
H.263共有5种图像格式
H.263 的视频信源编码框图与 H.261 相同,信源编码方法也类似,不同的是 H.263 输入有多种格式,输出为 H.263 码流。
为了适应低码率传输要求,并进一步提高图像质量, H.263+、 H.263++做了不少改进,增加了若干选项,现选择主要技术介绍如下:
(1)运动矢量, H.263 中 1 个 MB 可以使用 1 个运动矢量表示,也可以 4 个 8×8 块各使用 1 个运动矢量表示,提高运动估计精确性和压缩比。(H.261 规定每个 MB 使用 1 个运动矢量。)
(2)半像素预测, H.263 为进一步提高压缩比,采用半像素预测,而 H.261 采用整像素预测,预测精度明显低于 H.263。
(3)二维预测, H.263 采用二维预测, H.261 采用一维预测。
(4)非限制的运动矢量模式(选项), H.263 的运动矢量范围允许指向图像帧之外。
(5)基于句法的算术编码(选项),显著降低码率,但复杂度比哈夫曼编码高。
(6)高级预测模式(选项), H.263 除可以采用每个 8×8 块 1 个运动矢量,每个 16×16宏块 4 个运动矢量外,还采用 OBMC 运动补偿方式,以减少方块效应。
(7) PB 帧模式(选项), PB 帧由 1 个 P 帧和 1 个 B 帧组成。 P 帧由前一帧预测而得。B 帧由双向(前向和后向)预测而得,分别用前向 MV、后向 MV、前后向 MV 平均进行运动补偿得 3 个预测误差,取其最小者作为 B 帧的预测误差进行编码。
MPEG-1标准有如下功能:
(1) 视频压缩编码,压缩后码率在 1.5Mbps,可用于视频传输和视频存储;编码前必须将视频图像转换成逐行扫描图像。
(2)录像机的正放、图像冻结快进、快退和慢放功能以及随机存储功能。
MPEG-1 定义了三种图像类型: I、 P、 B 图像。 I 图像即帧内(Intra)图像,采用帧内编码,不参考其它图像,但可作为其它类型图像的参考帧。 P 图像即预测(Predicted)图像,采用帧间编码,参考前一幅 I 或 P 图像,用作运动补偿。 B 图像即双向预测(Bi- predicted)图像,参考前后两个方向图像。 I、 P、 B 图像之间的显示顺序如下图所示
双向预测编码可解决“暴露”问题, 即某物体在前一帧未显示出来,但在后一帧却“暴露”出来,双向预测能更准确地找出运动矢量,并只有在视频存储、 VOD 等非实时通信及数字广播电视中应用。 会议电视、可视电话等实时通信中不宜应用 B 图像,因为实时通信后一帧处在当前帧之后,当前帧编码时它尚未出现。
MPEG-1 编码结构类似 H.261,也采用分层结构,但有所不同,MPEG-1 多出片层(切片或 slice 层),用于防止误码在一帧内地扩散。
MPEG-1编码器和 H.261 并无多大区别,但需考虑双向预测编码和解码。解码时先将恢复图像存在缓存中,以显示顺序显示。
MPEG-2 标准包括系统、视频、音频及符合性(检验和测试视音频及系统码流) 4 个文件。
MPEG-2 码流分为三层,即基本流(ES, elementary bit stream)、包基本码流(PES, packetelementary stream)和复用后的传送码流(TS, transport stream)、节目码流(PS, programstream)。其编码复用系统结构如下图所示。
MPEG-2 按不同的压缩比分成五个档次,按视频清晰度分为四个级别
MPEG-2 编解码器结构与 H.261 区别不大
ES 码流采用图像序列(PS)、图像组(GOP)、图像(P)、片(slice)、宏块(MB)、块(B)六层结构。
(1)图像序列层,图像序列包括若干 GOP,序列头包含起始码和序列参数,如档次、级别、彩色图像格式、帧场选择等等;
(2)图像组层,图像组包含若干幅图像,组头包含起始码、 GOP 标志等,如视频磁带记录器时间、控制码、 B 帧处理码等;
(3)图像层,一幅图像包含若干片,头信息中有起始码、 P 标志,如时间、参考帧号、图像类型、 MV、分级等;
(4)片层,片是最小的同步单位,包含若干宏块,片头中有起始码、片地址、量化步长等;
(5)宏块层,宏块由 4 个 8×8 亮度块和 2 个色度块组成,宏块头包括宏块地址、宏块类型、运动矢量等。
MPEG-2 可用于逐行扫描图像也可用于隔行扫描图像。对逐行扫描图像,可按行分割成块,基于块进行 DCT 变换。对逐行扫描图像,一帧由两场组成,于是就有基于帧的分割和基于场的分割两种宏块结构
1991 年 3 月 ISO/IEC 正式通过了静止图像压缩编码标准,称为 JPEG 建议。 JPEG 标准分为基本系统、扩展系统和信息保持系统三个部分。基本系统提供对顺序扫描静止图像的高效有损编码,输入图像精度为 8bit/像素。
熵编码后得到变长度的码流。为便于数据的交换, JPEG 规定了统一的压缩后数据交换格式
第一行: SOI 表示图像数据开始; EOI 为一帧图像结束,各占两个字节。
第二行:表/杂项中放置量化表、哈夫曼表;帧首包括编码方法、取样精度、量化系数、源图像行数、每行取样数等; DNL 重新定义帧内的行数。
第三行:扫描首说明扫描起始信息、分量图像号码、参数、熵编码表选择(ECS); RST为重新开始标志。
第四行:为熵编码区, MCV 为最小编码单元,包括 4 个亮度块, 1 个 Cr 块和 1 个 Cb块。