首页>>科技 >>内容

AVC和HEVC,H.264/AVC是什么

发布时间:2023-10-16 19:46:19编辑:温柔的背包来源:

AVC和HEVC,H.264/AVC是什么

很多朋友对AVC和HEVC,H.264/AVC是什么不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

什么是H.264/AVC?H.264/AVC标准由ITU-T和ISO/IEC共同制定,覆盖了整个视频应用领域,包括低比特率无线应用、标清和高清电视广播应用、互联网上的视频流应用、高清DVD视频传输和应用于数码相机的高质量视频应用等。

ITU-T将这个标准命名为H.264(原H.26L),而ISO/IEC称之为MPEG-4高级视频编码(AVC),它将成为MPEG-4标准的第10部分。AVC既然是当前MPEG-4标准的扩展,那么它一定会受益于MPEG-4完善的基础设施(比如系统分层和音频)。

显然,MPEG-4 AVC作为MPEG-4的高级简单概要(ASP)将优于目前的MPEG-4视频压缩标准,它将主要用于高压缩率和分层质量要求的方向。

从下面的“视频编码历史”表中可以看出,ITU-T和ISO/IEC负责了之前所有国际视频压缩标准的定制。到目前为止,最成功的视频标准是MPEG-2,它已经被DVD、数字电视广播(覆盖电缆和通信卫星)、数字机顶盒等各个市场领域广泛接受。自MPEG-2技术出现以来,新的H.264/MPEG-4 AVC标准大大提高了编码效率和质量。

随着时间的推移,H.264/MPEG-4 AVC将在许多现有的应用领域取代MPEG-2和MPEG-4,包括一些新兴市场(如ADSL视频)。

H.264/AVC核心技术概述这一新标准由以下处理步骤组成:帧间和帧内预测变换(和逆变换)量化(和逆量化)环路滤波熵编码。

一个单独的图像流构成一个视频,它可以被分成16X16像素的“宏块”。这种分块方法简化了视频压缩算法中每个步骤的处理。例如,从具有标准清晰度的标准视频流解决方案(720X480)拍摄的图像被分成1350(45X30)个宏块,然后在宏块级别执行进一步的处理。帧间预测

改进的运动估计。运动估计用于确定和消除视频流中不同图片之间的时间冗余。当运动估计搜索基于过去方向的图片时,编码图片被称为“P帧图片”,当搜索基于过去和未来方向的图片时,编码图片被称为“B帧图片”。

为了提高编码效率,为了包括和分离“H.264运动估计-改进的运动估计”图中的运动宏块,将宏块分割成更小的块。然后,使用先前或未来图像的运动矢量来预测给定的块。H.264/MPEG-4 AVC发明了更小的块,在运动矢量方面有更好的灵活性和更高的预测精度。帧内预测

在不能使用运动估计的情况下,使用帧内估计来消除空间冗余。内部估计通过从预定义集合中不同方向的相邻块推断相邻像素来预测当前块。然后对预测块和实际块之间的差异进行编码。这种方法是H.264/MPEG-4 AVC特有的,对于空间冗余频繁的平坦背景尤其有用。变化

通过变换将运动估计和内部估计的结果从空间域变换到频率域。H.264/MPEG-4 AVC使用整数DCT4X4变换。而MPEG-2和MPEG-4使用浮点DCT8X8变换。H.264/MPEG-4 AVC较小的块减少了块效应和明显的伪像。整数系数消除了MPEG-2和MPEG-4中浮点系数运算带来的精度损失。量化

变换后的系数被量化,减少了对整数系数的预测,消除了不易察觉的高频系数。该步骤还用于控制输出比特率,以保持基本恒定。环路滤波

H.264/MPEG-4 AVC标准为1616宏块和44块的边界定义了去块滤波过程。在宏块的情况下,滤波的目的是消除相邻宏块中不同运动估计类型(如运动估计和内部估计)或不同量化参数引起的伪影。在块边界的情况下,滤波的目的是消除可能由变换/量化和来自相邻块的运动矢量的差异引起的伪像。

环路滤波通过内容自适应非线性算法修改宏块/块边界同一侧的两个像素。

熵编码在熵编码之前,必须对4X4的量化系数进行重新排序。根据这些系数的原始预测算法,选择不同的扫描类型进行运动估计或内部估计,以创建重新排序的串行化流。扫描类型从低频到高频对这些系数进行排序。由于大部分高频系数趋于零,利用游程编码可以减少零的数量,从而高效地达到熵编码的目的。熵编码-系数的串行化

在熵编码步骤中,通过映射符号的字节流来表示运动矢量、量化系数和宏块头。熵编码使用几个比特来表示频繁使用的符号,使用更多的比特来表示不频繁使用的符号。

以上知识分享希望能够帮助到大家!