去方块滤波技术简述

原创 2007年09月23日 08:56:00

去方块滤波技术简述

      ——基于H.264

1、引入去方块滤波技术的动机:消除方块效应

方块效应的产生:a、基于块的帧内和帧间预测残差的DCT变换,其量化过程相对粗糙,因而反量化过程恢复的变换系数带有误差,会造成在图像块边界上的视觉不连续;

                                b、运动补偿预测造成的复制块边界上数据不连续。

 

2H.264标准中使用的去方块滤波器:环路滤波器

3H.264去方块滤波器的自适应特性

   3.1、片级,全局滤波强度能根据视频序列个体的特征进行调节

   程序体现:

code_a_picture()

{

        …………

        if (input->rdopt == 2 && (img->type != B_SLICE))

           for (j = 0; j < input->NoOfDecoders; j++)

              DeblockFrame (img, decs->decY_best[j], NULL);

 

       DeblockFrame (img, enc_picture->imgY, enc_picture->imgUV);

       …………

}

 

3.2、图像块边界级,滤波强度依赖于边界两边图像块的帧间/帧内预测、运动矢量差别及变换量化是否为对残差编码

强度bS的定义与判断:标准文档8.7.2.1规定了bS=4,3,2,1,0时各图像块需要满足的条件

程序体现:调用DeblockMb( img, imgY, imgUV, i )下的子函数GetStrength()

注:色度块边界滤波的bS值不另外单独计算,而是从相应亮度块边界的bS值复制而成。

 

3.3、图像样点级,样点值及与量化参数相关的阈值可以决定是否对每个样点进行滤波

    标准文档8.7.2.2部分.

程序体现:调用DeblockMb( img, imgY, imgUV, i )下的子函数EdgeLoop()

4、具体滤波过程

        可参阅标准文档8.7.2.3-8.7.2.4部分

  程序实现:调用DeblockMb( img, imgY, imgUV, i )下的子函数EdgeLoop()

 

5、相关程序中比较重要的变量,结构

   注:程序中比较重要的变量,结构,已经在相对应的源文件loopFilter.c中进行了注释

 

6、阅读后的感受

   标准对去块滤波的强度划分相对比较细致,代码的实现也很巧妙。去块滤波技术,对图像的主观质量有着一定的改善。通过该部分的学习,为我们更加有效的设计基于HVS的滤波器,提供了一定的参考。  

 

7、主要参考学习资料

[1]标准文档;

[2] 新一代视频压缩编码标准——H.264/AVC  毕厚杰;

[3]JM86校验模型。

 

相关文章推荐

HEVC去方块滤波原理以及代码流程

代码版本:HM-16.2+SCM-3.0rc1 时间: 2015/5/17 作者: LB环路滤波以及SAO在代码中的大概流程如下图所示: 下面分别对去方块滤波和SAO的原理和相关代码作分析。...

HEVC学习(三十五) —— 去方块滤波之六

先看HM中定义tC、β这两个变量的表格,与draft中的Table 8-10相对应: const UChar tctable_8x8[54] = { 0,0,0,0,0,0,0,0,0,0,...

x264去方块滤波函数解析(二)

上一篇介绍了实际进行滤波的函数,本篇主要介绍,去方块滤波这边的函数调用关系。先看几个定义: //! 两个函数指针,第一个是bS=1~3时调用的,第二个是bS=4时调用的。 typedef void...

HEVC学习(三十二) —— 去方块滤波之三

Void TComLoopFilter::xSetEdgefilterPU( TComDataCU* pcCU, UInt uiAbsZorderIdx ) { const UInt uiDe...

HEVC学习(三十四) —— 去方块滤波之五

本文考察实现去方块滤波的核心函数xDeblockCU: Void TComLoopFilter::xDeblockCU( TComDataCU* pcCU, UInt uiAbsZorderIdx,...

HEVC学习(三十一) —— 去方块滤波之二

这个是维护去方块滤波参数的结构体: /// parameters for deblocking filter typedef struct _LFCUParam { Bool bInter...

HM编码器代码阅读(26)——去方块滤波

去方块滤波 主函数:TComLoopFilter::loopFilterPic     1、水平边界滤波         遍历图像中的每一个CU,对每一个CU中的PU或者TU的水平边界进行滤波(CU可...

x264去方块滤波函数解析(一)

先介绍最终真正完成滤波工作的几个函数: static inline void deblock_luma_c( uint8_t *pix, int xstride, int ystride, int ...

HM中去方块滤波的禁用方法

有时候我们想禁用掉HM的去方块滤波,测试下去方块滤波的效果,很容易就想到要修改配置文件,根据注释,容易找到:        LoopFilterDisable             : 1    ...

homerHEVC代码阅读(35)——环路滤波(1)去方块滤波

一、由于编码器是基于块进行处理的,因此经常会出现方块效应和振铃效应,为了提高视频的质量,我们需要对它们进行处理 二、HEVC中的环路滤波分为两个大类: 1、去方块滤波 2、SAO(自适应样点补偿) 三...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:去方块滤波技术简述
举报原因:
原因补充:

(最多只允许输入30个字)