Chinaunix首页 | 论坛 | 博客
  • 博客访问: 816215
  • 博文数量: 125
  • 博客积分: 4066
  • 博客等级: 上校
  • 技术积分: 1401
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-03 18:58
文章分类

全部博文(125)

文章存档

2014年(1)

2013年(1)

2012年(2)

2011年(29)

2010年(92)

我的朋友

分类: 其他平台

2014-03-26 15:08:44

 HM 代码解读:
 
以最大CU64x64为例,4x4块为最小单元,一共有25616x16)个边界,根据一定的算法逻辑计算出每个边界的边界强度,然后以步进为28x8网格)遍历所有PU,在每个PU中再去根据边界强度执行相应的滤波处理。

 

理论基础:

在基于块的视频编码框架中,由于整个视频帧被划分为不同大小的块进行预测、变换和量化,重建图像的块边界处可能会出现不连续性,这就是块效应。

块效应可以通过去块滤波来消除。

HEVC滤波时考虑的最小块是8x8,对于每个8x8的网格边界,首先判断其是否属于TUPU的边界,如果否,则无需滤波。如果是,则根据下面的判据决定“边界强度”:

?     强度2:有至少一个块是帧内块。

?     强度1:符合以下三种情形之一:

1.      至少一个块含有非零的残差系数,并且该边界是一个变换边界(也就是TU的边界)。

2.      两个块的运动矢量的绝对差值大于1个整像素。

3.      两个块的参考帧不同或者运动矢量(MV)数目不同。

?  强度0:不符合上述条件的情况

对于亮度(Luma)分量,强度为0的边界不会被滤波;对于色度(Chroma)分量,强度小于2的边界不会被滤波。

对于强度为12的亮度边界,以及强度为2的色度边界,再看一个与QP有关的条件是否满足:如果满足则滤波,不满足则不滤。

对于进行滤波的亮度边界,分为普通滤波和强滤波。

普通滤波又分为两种情况:

1.       只有距边界最近的一个像素被修改

2.       距边界最近的两个像素被修改。

强滤波则对距边界最近的三个像素进行修改。

对于进行滤波的色度边界,只采用上述普通滤波的第一种情况。

 

究竟采取哪一种情况,都是根据与QP有关的条件来决定的。

阅读(3996) | 评论(0) | 转发(0) |
0

上一篇:android 源码下载流程

下一篇:没有了

给主人留下些什么吧!~~