H.264/MPEG-4 Part 10 White Paper 译(五) Reconstruction Filter

来源:互联网 发布:linux 计划任务 每秒 编辑:程序博客网 时间:2024/06/02 15:49
 

重建滤镜

 

1.    引言

联合视频工作组(JVT)正在定案一个新的自然视频图像编码(压缩)标准。新标准被称为H.264或称作MPEG-4Part 10、“高级视频编码(AVS)”。这篇文档描述了H.264编码解码器中过滤重建块的方法。注意H.264草案标准现在尚未定稿,所以鼓励读者参考最新版本的标准。

 

2  什么是重建滤镜

滤镜是为了减小块失真而应用到所胡已解码宏块上。抗块效应滤波器在下述两种情况下使用:(1)编码过程:逆变换之后使用(在重建之前并为了之后的预测而存储宏块)(2)解码过程:重建之前并显示宏块。重建滤镜有两个作用:(1)使块边缘平滑,提高解码图像质量(特别是在高压缩比情况下);(2)过滤的宏块用于编码器中另外的帧的运动补偿预测,在预测后产生一个更小的残留帧。(注意:帧内编码宏块被过滤,而帧内预测则是使用未经过滤的d 重建的宏块产生预测。)图片边缘没有被过滤。

 

以下面的顺序对宏块中的4X4块的垂直和水平边缘使用过滤:

1. 对亮度分量的4个垂直边界进行过滤(以Figure1中的a,b,c,d序)

2. 对亮度分量的4个水平边界进行过滤(以Figure1中的e,f,g,h序)

3. 对每个色度分量的2个垂直边界进行过滤(i,j序)

4. 对每个色度分量的2个水平边界进行过滤(k,l序)

 

每个过滤操作最多对边界两边的三个像素起作用。Figure 2显示了相邻块pq间垂直或水平边界两边的各4个像素(p0,p1,p2,p3q0,q1,q2,q3)。这可以有多种输出,从(a)没有像素被过滤到(bp0,p1,p2,q0,q1,q2都被过滤并产生像素P0,P1,P2,Q0,Q1,Q2,这取决于当前的量化器、相邻块的编码模式和跨边界的图像采样的梯度。

 



 

3          边界强度

 

过滤的输出取决于边界强度和跨边界的图像采样的梯度。根据下面规则来选择边界强度系数Bs

 

pq采用帧内编码并且边界是一个宏块边界(即宏块最外侧边界)

Bs=4 (过滤强度最大)

pq采用帧内编码并且边界不是一个宏块边界

Bs=3

pq都不采用帧内编码但pq包含编码系数

Bs=2

pq都不采用帧内编码且都不包含编码系数,pq有不同的参考帧或参考帧号不同或有着不同的运动矢量值。

Bs=1

pq都不采用帧内编码并且都不包含编码系数;pq有相同的参考

帧和相同的运动矢量。

Bs=0 (未过滤)

 

在可能会产生很强失真的地方,过滤强度最大。如一些帧内编码宏块的边界或包含编码系数的块之间的边界。

 

5. 滤镜决策

 

集合(p2,p1,p0,q0,q1,q2)中的一组采样只有满足下列条件时才会被过滤:

(1)      Bs>0并且

(2)      |p0-q0|,|p1-p0||q1-q0|都小于一个阀值?或?(?和 ?在标准[1]中定义)

 

阀值?和 ?随着块pq的量化参数QP的平均值增加而增加。滤镜决策的目的是在原始图像跨越边界时,梯度没有明显改变的情况下关闭滤镜。明显改变的定义取决于QP。当QP比较小的时候,除了非常微小的跨边界梯度,其它的都被看做是就应该保护的图像特征,这样阀值?和?就比较小。当QP比较大的时候,块失真可能会很明显,这样?和?就比较大,这样就会产生更多的过滤。

5.    滤镜的实现

1 Bs ? {1,2,3};

p1,p0,q0q1使用一个4-输入线性滤镜,过滤的的输出为P0Q00<Bs<4

 

另外,如果|p2-p0|比阀值?小,则对p2,p1,p0q0使用4-输入线性滤镜进行过滤,过滤输出P1。如果|q2-q0|比阀值?小,则对q2,q1,q0p0使用4-输入线性滤镜进行过滤,过滤输出Q1。(在色度分量中p1q1不会被过滤,只在亮度分量中使用)。

 

2 Bs=4:

if |p2-p0|<?&&|p0-q0|<round(?/4)   then

              使用一个5-输入滤镜对p2,p1,p0,q0q1进行过滤,输出P0

              使用一个4-输入滤镜对p2,p1,p0q0进行过滤,输出P1

       (只使用于亮度分量)使用一个5输入滤镜对p3,p2,p1,p0q0进行过滤,输出P2

else

       使用一个3输入滤镜对p1,p0q1进行过滤,输出P0

 

if     |q2-q0|<?&&|p0-q0|<round   (?/4) then:

       q2,q1,q0,p0p1使用一个5输入滤镜进行过滤,输出Q0

       q2,q1,q0p0使用一个4输入滤镜进行过滤,输出Q1;

       (只使用于亮度分量)q3,q2,q1,q0p0使用一个5输入滤镜进行过滤,输出Q2

else:

       q1,q0p1使用一个3输入滤镜进行过滤,输出Q0

 

6. 过滤实例

一个QCIF视频片段使用AVC参考程序以固定量化参数32编码。Figure 3显示了视频片断的原始帧;Figure 4显示了禁用环路滤镜时,帧间编码和重构后的相同帧。Figure 5使用了环路滤镜时帧画面,显示效果大有改善。这里仍然有一些失真,但大部分块边缘已经消失或是减淡了。注意对比度明显的边界被滤镜保存,而同时图像平滑区域的块边界被平滑。

 

Figure 6显示了一个有着更高QP36)的解码帧,此时禁用了环路滤镜(注意增加了大量伪像),Figure 7显示了相同帧,使用环路滤镜。

 





 

 

 

7. 参考资料

 

1 ITU-T Rec. H.264 / ISO/IEC11496-10, “Advanced Video Coding”, Final Committee Draft, Document JVT G050,March 2003

 

 

 

 

 

原创粉丝点击