翻译版权所有,转载请注明出处~

xzrch@2018.09.14

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

---------------------------------------------------------------------

1.介绍

随着数字电视和DVD视频的出现,广播电视和家庭娱乐已经发生了革命性的变化。视频压缩技术的标准化使这些和其他更多应用的实现成为了可能。 MPEG系列的下一个标准,MPEG4,正在催生新一代基于互联网的视频应用,而与此同时ITU-T H.263视频压缩标准也已广泛用于视频会议系统。

MPEG4(视觉部分)和H.263是基于视频压缩(“视频编码”)技术的标准。 负责这些标准的团体,运动图像专家组(Motion Picture Experts Group)和视频编码专家组(Video Coding Experts Group)(即MPEG和VCEG)正处于开发新标准的最后阶段,该标准有望在表现上显著优于MPEG4和H.263,从而更好地压缩视频图像,同时提供支持高质量、低比特率流媒体技术的一系列功能。 新标准“高级视频编码”(AVC)的历史可以追溯到至少7年前。

在1995年完成最初的视频通话标准H.263后,ITU-T视频编码专家组(VCEG)开始研究两个更进一步的领域:为H.263提供附加功能的“短期”工作(成果是标准的第2版) 和为低比特率视频通信开发新标准的“长期”工作。后者产生了“H.26L”标准草案,提供了比以前的ITU-T标准好得多的视频压缩效率。 2001年,ISO运动图像专家组(MPEG)认识到H.26L的潜在优势,成立了联合视频组(Joint Video Team,JVT),其中包括来自MPEG和VCEG的专家。JVT的主要任务是将H.26L“模型”草案进一步制定为完整的国际标准。实际上,结果最终是两个完全相同的标准:ISO MPEG4 part 10 和 ITU-T H.264。新标准的“官方”名称是高级视频编码(AVC)。然而,它拟定时的旧名字,H.26L和其国际电联文件编号H.264 [1] 最终却广为人知。

2. H.264编解码器

与早期标准(例如MPEG1,MPEG2和MPEG4)一样,H.264草案标准没有明确定义一个具体的编解码器(即encoder / decoder对)。 相反,该标准只定义了已编码视频比特流的语法和解码该比特流的方法。 然而在真正实践中,兼容的编码器和解码器很可能需要包含图2-1和图2-2中所示的功能元件。有一点需要说明的是,虽然图中所示的这些功能可能是满足合规性所必需的,但编解码器的结构仍有相当大的可变化空间。 基本功能元素(预测,变换,量化,熵编码)与以前的标准(MPEG1,MPEG2,MPEG4,H.261,H.263)略有不同,H.264中的重要变化发生在每个功能元素的细节当中。

编码器(图2-1)包括两条数据流路径,一条“前向”路径(从左到右,以蓝色显示)和一条“重建”路径(从右到左,以洋红色显示)。 解码器中的数据流路径(图2-2)从右到左显示,以说明编码器和解码器之间的相似性。

【一】H.264/MPEG-4 Part 10 White Paper 翻译之 Overview of H.264 随笔 第1张

 【一】H.264/MPEG-4 Part 10 White Paper 翻译之 Overview of H.264 随笔 第2张

2.1 编码器(前向路径)

输入帧Fn作为编码对象用于编码。以宏块(Macroblock)为单位处理帧(对应于原始图像中的16×16像素), 每个宏块以帧内(Intra)帧间(Inter)模式编码。 在任一情况下,都基于一个重构帧(Reconstructed Frame)生成预测宏块P。 在帧内模式中,P由当前帧n中的采样点生成,n先前已经编码、解码和重构(即图中的uF'n;注意用于生成P的是未经滤波(Unfiltered)的样本)。在帧间模式中,P由来自一个或多个参考帧的运动补偿预测生成。在上述两幅图中,参考帧为先前编码的帧F'n-1; 然而,每个宏块的预测值可以由已经编码和重建的一个或两个过去或未来帧(按时间顺序)生成。

从当前宏块中减去预测P以产生残差或差异宏块Dn。 对其进行变换(使用块变换)并量化以算出X,一组量化的变换系数。 这些系数接下来被重新排序和熵编码。 熵编码系数与解码宏块所需的辅助信息(诸如宏块预测模式,量化器步长,描述宏块如何被运动补偿的运动矢量信息等)一起形成压缩比特流。然后被传递到网络抽象层(NAL)以进行传输或存储。

2.2 编码器(重建路径)

对量化的宏块系数X进行解码,目的是重建一个用于编码其他宏块的帧。 系数X被重新缩放(Q-1)和逆变换(T-1)以产生差异宏块Dn'。 这与原始差异宏块Dn不同。量化过程引入了损耗,因此Dn'是Dn的失真版本。将预测宏块P和Dn'相加以创建重构宏块uF'n(原始宏块的失真版本)。接下来用滤波器减少阻塞失真的影响,并且从一系列宏块F'n创建重构的参考帧。

2.3 解码器

解码器会从NAL接收压缩后的比特流,然后对数据元素进行熵解码和重新排序以产生一组量化系数X。接下来对它们进行重新调整和逆变换以算出Dn'(这与编码器中所示的Dn'相同)。使用从比特流解码的头信息,解码器创建预测宏块P,其与在编码器中形成的原始预测P相同。 将P加到Dn'上得到uF'n,对其进行滤波以产生解码的宏块F'n。

从图中和上面的讨论中应该能看出,编码器中重建路径的目的是确保编码器和解码器使用相同的参考帧来创建预测P。如果不这样做的话,预测编码器和解码器中的P将不相同,导致编码器和解码器之间的误差或“漂移”增加。

3. 参考文献

1 ITU-T Rec. H.264 / ISO/IEC 11496-10, “Advanced Video Coding”, Final Committee Draft, Document JVTE022,September 2002

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄