H.264-AVC视频编码原理及实现(五)

来源:互联网 发布:腹部脂肪如何减 知乎 编辑:程序博客网 时间:2024/05/23 00:10


五H.264/AVC编码

5.1编码原理图

对比上图和基本原理图,我们会发现只是多了一个Fitler,那么H.264和MPEG-2编码之间的区别只是在于这一个Filter吗?

 

H.264和MPEG-2编码效率的主要提升在于以下几方面的主要区别:

n       帧内预测编码

n       多帧参考

n       ME时宏块和ME时细化宏块,子宏块比较,¼像素ME

n       多帧参考

n       更高效的熵编码CAVLC和CABAC

n       Deblock Filter

5.2 H.264的Profile

到目前为止,H.264共有四个级别的Profile

各个Profile的特点在图中已经标明,这些不同的特点决定不同Profile的不同应用场合。

Baseline:一般用在可视电话,会议电视,无线通信等实时通讯情况下。

Main:运行隔行,主要用于数字电视与数字视频存储。

Extended:支持码流的切换,主要用于流媒体。

High:用在高清分辨率的场合。

由上图我们可知,各等级之间并不是子集的关系。

5.3帧内预测编码

我们知道,在MPEG-2中,帧内编码就是直接对MB进行DCT变换,然后保存相关的参数。在H.264中,对帧内编码引入了预测编码,所谓帧内预测就是在对MB进行DCT变换前,先根据其周围已编码的MB或sub-MB进行预测,仅对预测后的残差和预测方式进行编码。

针对16x16和4x4,H.264提供了多种预测方式。

 

5.3.1 4x4帧内预测编码

4x4预测适用于细节较多的MB。

4x4预测编码共9种方式:

 

5.3.2 16x16帧内预测编码

16x16预测适合平坦区域的MB的。

 

5.3.3色度8x8帧内预测

每个帧内编码宏块的8×8 色度成分由已编码左上方色度像素预测而得,两种色度成分常用同一种预测模式。4 种预测模式类似于帧内16×16 预测的4 种预测模式,只是模式编号不同。其中DC(模式0)、水平(模式1)、垂直(模式2)、平面(模式3)。

 

5.4多帧参考

在H.264中,参考帧最多数目可以达到16个。H.264维护了两个List用于保存参考帧图像,List中图像基于POC进行排序,包括了前向参考和后向参考的图像。

5.5帧间ME

5.5.1帧间ME的宏块及宏块分割

l         宏块分割

ME时16x16MB有以下几种分割方式:

色度块分割则为相应的亮度的一半。

下图是一个预测后的残差帧:

我们可以看到在平坦区域一般是16x16分割,在细节较多的区域采用较细的分割。

 

l         MV预测

预测矢量MVp 基于已计算MV 和MVD(预测与当前的差异)并被编码和传送。MVp 则取决于运动补偿尺寸和邻近MV 的有无。

其中:

1) 传输分割不包括16×8 和8×16 时,MVp 为A、B、C 分割MV 的中值;

2) 16×8 分割,上面部分MVp 由B 预测,下面部分MVp 由A 预测;

3) 8×16 分割,左面部分MVp 由A 预测,右面部分MVp 由C 预测;

4) 跳跃宏块(skipped MB),同1)。

   

l         1/2,1/4像素搜索

1/2像素内插:

内插算法:

1/4内插:

1/4内插算法在1/2基础上通过线性进行。

5.6熵编码

n       CAVLC

n       CABAC

 

5.7 Deblock filter

块效应的产生,是由于预测时基于方块进行的。在进行量化后,方块的边界有时变得非常明显。

n       解码完的一帧数据进行Deblocking

n       Intra编码的MB没有进行Deblocking

 

去块效应的具体方法:

0 0