H264去块效应滤波分析
###Date:2017/10/17
转载自:http://blog.csdn.net/h514434485/article/details/52241778
所谓的块效应就是在视频编码中人眼察觉到的小块边界处的不连续。通过下面的图有个直观的感受。
可以感受到(a)中的左上角有一些明显的小块,而(b)看上去比较平滑一些。
一、块效应产生的原因:
1)在对图像进行编码的时候,图像被分成16x16,8x8或者4x4这样的块,然后对这些块进行DCT变换,这样就导致块与块之间的相关性被忽略。
2)对每个块进行DCT变换得到的系数进行量化的时候取整,而由于不同图像块做了不同的量化处理,有时量化步长不同有时是舍入的高频分量
不一样,这就导致图像相关性受到破坏。
3)H264的运动补偿加剧了块效应。
4)时域预测技术使得参考图像中存在的边界不连续可能会传递到后续图像编码。
二、滤波器类型:
根据在视频编解码中加入去块滤波器的位置,滤波器分两种类型。
1)后置滤波器:
只放在解码端,处理解码环路外的显示缓冲区中的数据,后置滤波器不属于标准化内容,在标准中只是可选项。
2)环路滤波器:
放置在编解码环路中,在编码器中被滤波的图像作为后续编码图像的参考图像,在解码器端,滤波后的图像作为
解码重建的参考图像。
编解码器要使用同样的滤波器,才能保证编码图像在解码端顺利重建。
两种滤波器比较:
a:环路滤波器可以保证不同水平的图像质量。
b:解码器端没有必要为环路滤波器准备额外缓存。
c:环路滤波器更能增加视频流的主客观质量,同时降低解码器的复杂度。
三、滤波过程:
H264中的去块效应滤波是以16x16的宏块为单位,在宏块内部按照先横后纵、先亮度后色度的顺序,对每个4x4块
边界进行滤波处理。滤波过程分为边界分析和滤波运算两部分。
边界分析要解决两个问题:计算边界强度+解决真假边界的问题。
1)计算边界强度:
根据边界强度需要,采用不同强度的滤波。假设P块和Q块是两相邻的4X4块,边缘强度BS计算如下表:
2)区分真假边界:
区分真假边界基于两个假设:
a:真实边界两边像素点的差值通常比虚假边界两边像素差值要大。
b:对于两边像素值差别很小的真实边界,即使使用了平滑滤波,其主观效果也不会有太大的影响。
区分真假边界遵守两个原则:
a:平坦区域,即使很小的像素不连续也容易被人察觉,所以要使用比较强的去块滤波。
b:对复杂区域,为保持图像的细节,要使用较弱的平滑滤波,改变较少的像素点。
为区分真假边界,需要对被滤波的相邻的4x4块边界的样点进行分析,假设如下边界两边像素分布:
图左两个是边界两边像素点分布图,图右是边界两边像素点亮度值分布图。
H264标准中定义两个阀值α和β,α表示块与块之间的边界阀值,β表示块内边界阀值。
边界两边像素值满足下面公司三个条件,则定义为虚假边界,否则为真实边界。
IndexA,IndexB计算公式如下:
IndexA和IndexB等于边界两边的平均QP分别加上偏移量FilterOffset和FilterOffset,同时量化参数QP在[0,51]范围。
α和β的取值取决于量化参数的大小,IndexA、IndexB与α、β对于关系如下表:
另外在BS为1、2、3时滤波像素改变值tc0限定了一个范围,防止滤波过程中把边界附近的图像细节平滑的太厉害,
特别是量化参数小的时候。tc0的范围如下表:
四、滤波运算过程:
H264滤波是以宏块为单位进行的,滤波对象是4x4块边界,先对垂直边界进行滤波,再对水平边界进行滤波。
上述图滤波顺序规则如下:
1)亮度分量顺序:先滤波4个垂直边界,顺序为a、b、c、d,然后是4个水平边界顺序为e、f、g、h。
2)色度分量顺序:先滤波2个垂直边界,顺序为i、j,接着2个水平边界顺序为k,l。
3)色度要借用亮度的边缘强度,所以在滤波完亮度的边界后才能滤波色度的对应边界。
4)宏块的右边界和下边界与后面的宏块一起滤波,称为"被动滤波"。
当BS的值不为0时就要进行边界滤波。H264根据BS的值,分为两种滤波。具体滤波可参考下图:
BS为1、2、3时采用强度较弱滤波器,首先改变p0,q0两个像素点,接着用阀值β判断是否需要调整p1和q1的值。
BS为4时分两种强度的滤波,强滤波可改变6个像素点(p0、p1、p2、q0、q1、q2)如上图示,弱滤波只改变边界上的
两点(p0、p1)。
具体滤波过程如下:
1)BS=1、2、3时的滤波过程
此时滤波过程分两步:基本滤波和限幅。
a:基本滤波,首先对边界两个像素点进行滤波,公式如下:
△0是由△‘0经限幅后得到的,△’0由下式得到:
如果是色度分量,BS=1、2、3的滤波过程就结束了,对于亮度分量则还需考虑p1、q1的滤波,p1和q1值取决于β,如下:
1)、|p2-p0|<β,则认为p块内部p1点出有虚假边界,p1点需修改为
p`1=p1△1p
2)、|q2-q0|<β,则认为q块内部q1点处有虚假边界,q1点需修改为
q`1=q1+△1q
△1p和△1q由△`1p和△`q经限幅后获得,△`1p和△`1q计算如下:
此处说道的限幅就是上面提到的滤波过程的限幅tc0来控制。
2)BS=4时强滤波:
对于P块点若满足下式,则认为细节信息不多,
公式4-1
采用强滤波:
若不满足公式4-1,则只采用弱滤波修改p0值:
对于Q点,类似P点,若满足下式:
公式4-2
采用强滤波:
若不满足公式4-2,则采用弱滤波修改q0值,公式如下:
色度分量在BS=4时,只改变p0,q0点,滤波公司和亮度分量采用弱滤波时相同。
H264去块效应滤波分析相关推荐
- HEVC-环路滤波 之去块效应滤波
HEVC系列的目标: 1.对基本概念的进行了解,不深入公式推导当中.在学习进行之前存在的疑问,学习之后是不是都一一解决了? 2.在一段时间忘记相关概念的时候,是不是可以通过阅读之前的记录 最快的回忆起 ...
- 视频编码中的块效应、振铃效应和呼吸效应分析
1.块效应: (1)概念: 主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连续. (2)产生原因: 1.编码过程中对残差进行DCT变 ...
- 【Codecs系列】之视频编码中的块效应、振铃效应和呼吸效应分析
Date: 2018.5.28 1.块效应: (1)概念: 主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连续. (2)产生原因: ...
- h.264 去块滤波
块效应及其产生原因 我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact). 首先我们需要 ...
- SVACH264AVS标准的去块滤波比较
Date:2017/10/21 Content: SVAC&H264&AVS标准的去块滤波比较 一.去块滤波条件
- SVACH.264AVS去块滤波比较
Date:2017/10/21 Content: SVAC&H264&AVS标准的去块滤波比较 一.去块滤波条件 H.264:支持4x4边界的环路滤波: SVAC:在H.264的基础上 ...
- H.266/VVC技术学习之环路滤波:去块滤波(Deblock)技术
一.方块效应 目前主流的视频编码标准都是基于分块的混合编码机制,其处理过程是针对每个块单独进行处理的,因此由于编码模式的差异以及量化误差的原因,会导致相邻块重建像素不连续的现象.对于一个两侧强相关性的 ...
- 块效应 振铃效应 呼吸效应
1.块效应: (1)概念: 主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连续. (2)产生原因: 1.编码过程中对残差进行DCT变 ...
- h264解码之环路滤波
代码以ffmpeg为例,h264解码代码在h264.c里. 环路滤波(Loop Filter)部分 FFmpeg的H.264解码器调用decode_slice()函数完成了解码工作.这些解码工作可以大 ...
最新文章
- JVM---StringTable(字符串常量池)
- PCL中PFH、FPFH理论
- C++Kosaraju找有向图的强连通分量算法(附完整源码)
- 百度云服务器bcc搭建php环境,使用百度云服务器BCC经验谈
- java泛型约束_java泛型
- rocketmq问题记录
- 小乔皮肤分析-缤纷独角兽/青蛇皮肤
- AxureRP 8.0安装教程
- Python Conda报错:Collecting package metadata (current_repodata.json): failed
- 机器学习--红酒质量检测分析(包含数据集,直接可用)
- 痛苦的挣扎--msp430g2553我恨你!
- SAP MM模块库存结存报表
- 课设-基于51单片机的智能小车(循迹+避障+APP控制)
- 年轻人,不要太浮躁,静下心来听听【钢琴曲】
- 云计算技术与应用 - 知识点
- 你的PC机或者终端,是怎么上网的?怎么连接到网络的?无线网怎么接入Internet,如何访问网络资源?
- Gym - 101485G NWERC2015 G Guessing Camels
- Kerberos认证介绍及黄金票据和白银票据
- html做网页 窗口最小化后,40种网页常用小技巧
- Mac OSX系统下安装和删除程序