视频压缩标准MPEG、H.26X系列制定的历程

国际电信联盟ITU-T与国际标准化组织ISO/国际电工委员会IEC是制定视频编码标准的两大国际组织
在这里插入图片描述


其中MPEG是运动图像专家组(Moving Picture Experts Group)的缩写,于1988年成立,是为数字视频/音频制定压缩标准的专家组。

MPEG的核心内容主要包括MPEG视频、MPEG音频和MPEG系统三个部分,MP3音频文件就是MPEG音频的一个典型应用,而VCDSVCDDVD则是全面采用MPEG技术的消费类电子产品


MPEG-1视频压缩标准

1993年制定的MPEG-1标准是MPEG系列最早的标准,是针对 1.5Mbit/s速率的数字存储媒体运动图像及其伴音编码制定的国际标准

MPEG-1标准包含了五个部分

第一部分说明了如何根据第二部分(视频)以及第三部分(音频)的规定,对音频和视频进行复合编码。第四部分说明了检验解码器或编码器的输出比特流符合前三部分规定的过程。第五部分是用C语言实现的编码和解码器

图像可分为四种类型,分别是I帧、P帧、B帧、D帧

MPEG-1中将视频中的图像分为以下几种类型

  • I帧:帧内编码图像,这类图像不进行帧间预测,不参考其他图像帧而只利用自己的图像信息进行编码
  • P帧:前向帧间预测编码图像。此类图像帧利用一个之前的I帧或者P帧作为参考,进行帧间预测编码,它通常还用于后续P帧或者B帧图像编码时的帧间预测参考
  • B帧:双向帧间预测编码图像。此类图像即利用之前的图像帧(I帧或P帧),也利用之后的图像帧(P帧)。B帧不能作为预测帧的参考

注意:B帧将会导致图像列的编码顺序与显示顺序不一致,原因是B帧可能需要后续的P帧作为参考帧,所以这个后续的参考帧P帧需要先被编码,后续的B帧才能被顺利编码
在这里插入图片描述

/*
	显示的顺序:1 2 3 4 5 6 7 8
			  I B B P B P B I
	传输的顺序:1 4 2 3 6 5 8 7
			  I P B B P B I B
*/

视频的码流结构
在这里插入图片描述

  • 序列(sequence):序列层定义图像的大小,缓冲区的大小和其他一些静态参数
  • 图像组(GOP,Group of Pictures):图像组是序列中一个连续的图像集,用来辅助随机存储。GOP中第一个图像必须为I帧,这样就保证了GOP不需要参考之前的图像,可以独立解码(这也就是为什么播放器可以快进和后退播放)
  • 图像(Picture):图像层定义图像类型(I帧,P帧或B帧)
  • 片(Slice):片由一组连续的宏块组成,片是重同步单元,也可以独立解码
  • 宏块(Macroblock):宏块是运动估计和运动补偿单元,有一个16 * 16 亮度块和相应的两个8 * 8的色度块组成
  • 块(Block):变换单元,一个8 * 8的像素集合

几点说明:
  • I帧图像是利用图像的空间相关性进行压缩,不参照任何过去的或者将来的其他参考帧,其压缩编码采用类似于JPEG图像压缩算法。由于无法去除时间冗余,I帧图像压缩率与P帧、B帧相比不高
    在这里插入图片描述

  • P帧图像是参考过去的I帧图像或者P帧图像用帧间预测和运动估计技术进行压缩,由于既可以去除空间冗余也可以去除时间冗余,所以P帧的压缩率较高,由于P帧的编码流程与JPEG差异较大,所以接下来重点分析P帧的压缩编码流程


P帧的整个编码流程

第一步:从缓存中取出重构的前一帧图像作为当前帧的参考帧
在这里插入图片描述

第二步:计算当前帧中的每一个16*16像素宏块和缓存中的参考帧中的宏块的最佳匹配块,即进行运动估计计算。用运动矢量表示两个宏块之间的位移。例如,运动矢量 = (-10,3),则在当前帧的宏块向左移动10个像素,向下移动3个像素,就可以在参考帧中找到最佳匹配的宏块
在这里插入图片描述

第三步:通过参考帧的最佳匹配块的运动补偿,也就是对齐,得到当前帧的最相似图像(运动补偿参考帧)
在这里插入图片描述

第四步:当前帧和运动补偿参考帧进行帧间预测,也就是差值运算(相应的像素进行减法运算)得到运动补偿的帧差图像
在这里插入图片描述

第五步:对帧差图像进行DCT变换和量化,变换和量化的原理可参考 JPEG压缩标准
在这里插入图片描述

第六步:量化后的系数和运动矢量进行熵编码和传输,注意系数在进行熵编码之前需要进行 Zigzag扫描和游程编码,基本原理可参考 JPEG压缩算法
在这里插入图片描述

第七步:量化后的系数同时被解码,得到的帧差图像和运动补偿参考帧进行相加运算,从而得到一个新的放在缓存中的参考帧,需要注意的是,这个参考帧不是原始的输入的无损图像,这么做的原因是解码端只能得到经过量化,反量化的有损图像,而编码端和解码端必须采用同样的参考帧,因此编码编码端只能采用有损的图像作为参考帧在这里插入图片描述


B帧的编码:
  • B帧图像在预测时,既可以使用前向预测方式,也可以使用后向预测方式,或者使用双向预测后去平均方式,取决于采用哪一种方式下表示该宏块所需的比特数最少。使用双向预测后,可以使那些在前一帧中预测不到的内容很好的在后一帧中预测的大。B帧的压缩效果最高,但不能作为其他帧预测的参考图像
  • 与P帧一样,B帧的宏块也是既可以选择帧间编码也可以选择帧内编码,B帧图像帧内编码宏块的压缩流程跟I帧类似,帧间编码宏块的压缩流程与P帧类似,只是预测方式不同

关于量化步长的选择

量化步长越大,清晰度和码率就越低;反之,清晰度和码率就越高

  • 平时我们在视频网站上看在线视频,会经常看到视频播放器支持高清、表情、流畅、极速等多种选项,从高清到技术视频越来越模糊但对带宽的要求也越来越低
  • 其实高清、极速、流畅、极速等选项对应的就是不同的量化步长压缩得到的视频,从高清到极速量化步长逐步变大,清晰度和码率也就逐步降低
  • 视频压缩中相邻帧之间的量化步长不允许突变,只能在一定的范围内渐变,这是为了避免相邻帧的清晰度有明显的变化,从而导致人眼的不适

MPEG-2标准

MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定,编码码率为每秒3Mb~100Mb

说明:

  • MPEG-2并不是 MPEG-1的简单升级,MPEG-2在系统和传输方面作出了更加详细的规定和进一步完善。MPEG-2特别适用于广播级的数字电视的编码和传送
  • MPEG-3ISO/IEC最初为高清晰电视广播制定的编码和压缩标准,但由于 MPEG-2的出色的性能已能适用于HDTV,因此 HDTV标准并未制定,我们通常所说的MP3指的是应用于 MPEG-1的一项音频压缩技术标准,英文全称是 MPEG-1 Audio Layer3

MPEG-4标准

MPEG组织于1999年2月正式公布了 MPEG-4标准的第一版本,同年年底 MPEG-4的第二版本也得到了确定,目前该标准多应用于因特网视频传输、流媒体应用等。

  • MPEG-4标准与以前编码标注不同的显著差别在于它采用了基于对象的编码理念,即在编码时不再是将一幅图像分成固定大小的图像块,而是根据其内容分成若干在时间和空间上相互联系的音视频对象,分别编码后经过复用传输到接收端,然后再对不同的对象分别进行编解码,从而组合成所需要的视频和音频

H.261标准

H.261最初是针对在 ISDN上实现电话会议(特别是面对面的可视电话和视频会议)而设计,制定时间是1990年,是 H.26X系列最早的标准

  • H.261标准已经采用了运动补偿帧间预测与分块 DCT相结合的混合编码框架,其具体的编码算法类似于 MPEG算法,但不能与后者兼容

H.263标准

H.263是国际电联 ITU-T的一个标准草案,是为低码流通信而设计的,指定时间是1996年

  • H.263的运动补偿使用半像素精度,而 H.261使用的是全像素精度
  • 1998年 ITU-T推出的 H.263+H.263草案的第二版,它提供了12个新的可协商模式和其他特性,进一步提高了编码的性能
  • H.263只有5种视频源格式,而 H.263+允许使用更多的源格式

H.264标准

2001年, MPEGITU的视频编码专家组 VCEG再次组成联合视频编码专家组 JVT,于 2003年5月VCEG发布了 H.264的压缩标准

  • 在同等的质量的条件下,H.264的数据压缩比性能比 DVD系统中使用的 MPEG-2高2~3倍,比 MPEG-4高1.5~2倍,H.264获得优越性能的代价是计算复杂度的大幅度增加,例如多模式运动估计、改进的帧间预测等,这些都显著提高了预测的精度,从而获得了比其他标准好得多的压缩性能

AVS标准

AVS是由我国自主制定的音视频编码技术标准,主要面向高清晰度视频、高密度光存储媒体等应用

  • 在编码效率方面 AVSH.264接近。而在达到与 H.264同样性能的情况下, AVS的复杂度要比 H.264的复杂度低,其解码器是 H.264解码器复杂度的70%

H.265标准

制定背景

  • 数字视频分辨率从720P1080P甚至是 4K * 2K、8K * 4K的应用场景升级
  • 数字视频的帧率也从 30帧/秒向60帧/秒、120帧/秒甚至是 240帧/秒的应用场景升级

2010年1月,ITU-T视频编码专家组 VCEG(video Coding Experts Group)ISO/IEC运动图像专家组 MPEG(Moving Picture Experts Group)成立联合组织,统一制定下一道编码标准 HEVC(Hight Efficiency Video Coding),也就是 H.265

  • H.265中,将宏块的大小从 H.264的16*16扩展到了 64 * 64,以便于高分辨率视频的压缩。同时采用了更加灵活的编码单元、预测单元和变换单元来提高编码效率,与 H.264相比,H.265仅需原来的一半带宽即可播放相同质量的视频。

在这里插入图片描述

发布了7 篇原创文章 · 获赞 1 · 访问量 661

猜你喜欢

转载自blog.csdn.net/weixin_45615071/article/details/105407407