基于块的视频编码的一个典型特点就是在图像中会出现偶发的可察觉的块结构,这是由于重构块的边缘像素与块内部像素相比恢复精度要低,块效应是目前压缩编码最明显的视觉失真之一。在H.264/ AVC视频编码标准中,块效应有两种来源。最显著的一个是在Intra和Inter帧预测残差编码中的整数4×4变换,对变换系数的粗量化会导致可见的块边缘不连续。第二个是来自运动补偿预测。预测从可能的不同参考帧中把内插像素数据拷贝出来形成运动补偿块,由于几乎没有正好合适的数据,被拷贝块的数据引起的边缘不连续性会上升;另外,在拷贝过程中参考帧中存在的不连续性又被搬到将要被补偿块的内部。虽然H.264/AVC使用的4×4变换尺寸多少使这种效应变得不很明显,但为了增强编码性能,一个去块效应滤波器仍旧是很有用的工具。

  滤波器被应用到每个解码模块以减少由块效应所引起的失真.在编码端,进行反变换之后,再应用去块效应滤波器(在重建和存储宏块用于将来预测之前);在解码端,在重建和显示之前,应用去块效应滤波器.滤波器平滑了块的边界,改善了解码帧的质量.滤波后的宏块被用于将来帧的运动补偿预测,这能够提高压缩性能,因为滤过的图像比一个有块效应的未滤波的图像更接近原始图像.滤波器的默认操作如下,编码端可以选择滤波器的强度或者禁止使用滤波器.(JM18.6中的字段Macroblock结构体中的DFDisableIdc用来控制滤波器的使用或禁止,0表示使用滤波器,1表示禁止)

滤波器被应用到每个宏块的4x4块的垂直和水平的边界(除了条带边界),顺序如下:
1)滤波亮度分量的4个垂直边界(顺序从左向右abcd)
2)滤波亮度分量的4个水平边界(顺序从上向下efgh)
3)滤波每个色度分量的两个垂直边界(顺序从左向右ij)
4)滤波每个色度分量的两个水平边界(顺序从上向下kl)
 
  每个滤波操作影响边界两边的三个象素,下图显示了相邻块p和q的垂直边界的两边的四个象素(p0,p1,p2,p3和q0,q1,q2,q3).滤波强度(滤波量)依赖于当前的量化器,相邻块的编码方式以及边界上图像象素的梯度.
 
边界强度
滤波输出的选择依赖与边界强度和边界上图像象素的梯度.边界强度参数BS依据一下原则进行选择(编码是逐行帧时) :
1) p或q是帧内编码的,同时边界是宏块边界,则BS=4(最强的滤波强度)
2) p或q是帧内编码的,同时边界不是宏块边界,则BS=3
3) p和q都不是帧内编码的,同时p或q包含编码系数,则BS=2
4) p和q都不是帧内编码的,同时p和q都不包含编码系数,p和q使用不同的参考帧或者使用不同数目的参考帧或者两者运动矢量差值大于一个亮度象素,则BS=1,否则BS=0
应用这些原则的结果是在可能有明显块效应出现的地方滤波强度很大,例如帧间编码宏块的边界以及包含编码系数的块之间的边界.
滤波器判决
集合(p2,p1,p0,q0,q1,q2)的一组象素值在下列情况下才进行滤波:
1) BS>0
2) |p0−q0| < α and |p1−p0| < β and |q1−q0| < β.
α和β是标准中定义的阈值,它们随着两个块p和q量化参数QP的增长而增长.滤波器选择的效果就是当在原始图像块边界有明显变化时,关掉滤波器.当QP很小的时候,除了边界上的很小梯度,其他都应该是图像本身的特征(而不是块效应),所以应该保留,因此阈值α和β很小.当QP很大的时候,块效应可能更明显,所以α和β很大,更需要滤波更多的边界象素点.
滤波器的实现
1)BS属于{1,2,3}
输入是p1,p0,q0,q1,使用一个四阶滤波器,产生输出结果p'0和q'0.如果|p2-p0|小于阈值β,则使用另一个四阶滤波器,即输入是p2,p1,p0和q0,则输出结果是p'1(仅仅亮度分量);如果|q2-q0|小于阈值β,则使用另一个四阶滤波器,即输入是q2,q1,q0和p0,则输出结果是q'1(仅仅亮度分量);
2)BS=4
如果|p2-p0|小于阈值β并且|p0-q0|小于round(α/4),并且是亮度块,则:
p'0是对p2,p1,p0,q0,q1进行五阶滤波得到的;p'1是对p2,p1,p0,q0进行四阶滤波得到;p'2是对p3,p2,p1p0和q0进行五阶滤波得到的.否则,p'0是对p1,p0,q1进行三阶滤波得到的.
如果|q2-q0|小于阈值β并且|p0-q0|小于round(α/4),并且是亮度块,则:
q'0是对q2,q1,q0,p0,p1进行五阶滤波得到的;q'1是对q2,q1,q0,p0进行四阶滤波得到;q'2是对q3,q2,q1,q0和p0进行五阶滤波得到的.否则,q'0是对q1,q0,p1进行三阶滤波得到的.

去块率波 Deblocking filter的更多相关文章

  1. h.264 去块滤波

    块效应及其产生原因 我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact). 首先我们需要 ...

  2. InnoDB缓存读命中率、使用率、脏块率(%) 缓冲池的读命中率(%) 缓冲池的利用率(%) 缓冲池脏块的百分率(%)

    InnoDB缓存读命中率.使用率.脏块率(%) 缓冲池的读命中率(%) 缓冲池的利用率(%) 缓冲池脏块的百分率(%)

  3. h264和h265多维度区别

    h264和h265多维度区别 1.  概述 h265旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽即可播放相同质量的视频,很多朋友不知道h264和h265如何区别,下面让我们一起来了解一下 ...

  4. h.264并行解码算法分析

    并行算法类型可以分为两类 Function-level Decomposition,按照功能模块进行并行 Data-level Decomposition,按照数据划分进行并行 Function-le ...

  5. FFmpeg的HEVC解码器源代码简单分析:环路滤波(Loop Filter)

    ===================================================== HEVC源代码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpe ...

  6. x264源代码简单分析:滤波(Filter)部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  7. Atitit   图像处理 平滑 也称 模糊, 归一化块滤波、高斯滤波、中值滤波、双边滤波)

    Atitit   图像处理 平滑 也称 模糊, 归一化块滤波.高斯滤波.中值滤波.双边滤波) 是一项简单且使用频率很高的图像处理方法 用途 去噪 去雾 各种线性滤波器对图像进行平滑处理,相关OpenC ...

  8. 【HEVC简介】DB-DeBlock Filter

    参考论文:HEVC Deblocking Filter <HEVC标准介绍.HEVC帧间预测论文笔记>系列博客,目录见:http://www.cnblogs.com/DwyaneTalk/ ...

  9. 【HEVC简介】ALF-Adative Loop Filter

    由于HEVC在HM4.0之后,就把ALF去掉,所以ALF的介绍是基于AVS2. <HEVC标准介绍.HEVC帧间预测论文笔记>系列博客,目录见:http://www.cnblogs.com ...

随机推荐

  1. AD 10 原理图编译错误

    在编译原理图时,经常会出现以下错误和警告,这里简单的累出一些错误和警告的原因: 1.floating net labels,这个是应为网标防止错误,应该将网标放在I/O或这连线的端点,或者是网标表错了 ...

  2. python3批量删除豆瓣分组下的好友

    python3批量删除豆瓣分组下的好友 """ python3批量删除豆瓣分组下的好友 2016年6月7日 03:43:42 codegay 我两年前一时冲动在豆瓣关注了 ...

  3. 4、时间同步ntp服务的安装于配置(作为客户端的配置)

    yum安装ntpd服务   .yum -y install ntp ntpdate (安装时间同步ntp服务) . vi /etc/ntp.conf (修改ntpd服务的配置文件)   3.修改配置文 ...

  4. Android Studio的一些快捷键

    以下这些也是百度的其他人整理的.后面有新的会加进来. AS的快捷键容易和QQ,微信等冲突,可以手动关掉或者修改其他软件的热键 Ctrl+G / Ctrl+Alt+Shift+G:查询变量或者函数或者类 ...

  5. idea中如何配置tomcat

    这几天想通过JDBC驱动使用MySQL数据库,但老是运行不成功,但是写成java就没有问题,于是想到是不是服务器没配置好 idea中配置tomcat的步骤如下 1:File->Settings. ...

  6. CSS第四天总结 更多的属性 圆角 边框图片 段落属性 颜色渐变 盒子阴影

    圆角边框: border-radius    一个值时表示四个角用的圆半径,4个值时分别是左上角.右上角.左下角.右下角,单位可以是px和百分比,百分比是半径相对于边框长度的比例 在CSS3中我们终于 ...

  7. cocos2dx 3.8版关于#include "GB2ShapeCache-x.h"

    关于coco2d-x 3.8版的PhysicsEditor.exe1.09版的GB2ShapeCache-x.h.cpp中有些方法更新了和容器的使用方法,还有就是头文件include "CC ...

  8. mac 下配置protobuf 3.0 golang环境

    protobuf 3.0  与 之前的 protobuf 2.6 的语法是不一样的.需要重新安装一下,本机的环境是 OS X Yosemite  10.10.2 1. 不采用home brew安装,用 ...

  9. React Native的组件ListView

    React Native的组件ListView类似于iOS中的UITableView和UICollectionView,也就是说React Native的组件ListView既可以实现UITableV ...

  10. Woodbury matrix identity

    woodbury matrix identity 2014/6/20 [转载请注明出处]http://www.cnblogs.com/mashiqi http://en.wikipedia.org/w ...