1810-ICIP-一种基于canny和svm的帧内块划分加速方法

Title: A Fast Intra CU Size Decision Algorithm Based on Canny operator and svm classifier

题目:一种基于Canny算子和SVM分类器的快速帧内编码块划分方法

来源:2018ICIP,HIT,C Sun.et al

HEVC帧内编码主要分为块划分和模式判决两个过程,前者通过递归四叉树得到,后者需要穷35种模式,十分耗时,针对块划分过程,本文提出了改进的canny边缘检测算子和svm结合的块划分加速算法。

motivation

从下面的CU划分例子中,不难发现纹理的复杂度貌似和CU划分深度正相关,图片越平滑的部分,块的尺寸就越大,反之越少。

原图片
块划分后的图片

contour based CU partition termination algorithm

基于上面的猜想,本文提出了基于轮廓的CU划分终止算法框架:

在这里插入图片描述

基本的处理流程如下:

  1. 遍历所有像素点,基于改进canny算子标记轮廓点;
  2. 将当前CU中的边缘点数目和svm得到的阈值比较
    1. 如果边缘点数目大于阈值,说明该CU比较复杂,应当继续划分;
    2. 如果边缘点数目小于阈值,说明CU比较平滑,应该停止划分
    3. 如果划分后最小尺寸小于8*8,则停止本次划分

下面依次介绍算法中出现的改进canny算子和svm的设置

改进canny算子

传统canny算子的详细描述略过,其存在两个问题:

  1. 阈值是预设的(preset),不适合动态的视频内容
  2. 非极大值抑制容易造成边缘断裂,而且额外引入了计算量,因为对于块划分来说,我们关注的是纹理信息,而不是轮廓是否完美,取消非极大值抑制并不影响结论;

传统canny检测算子为避免非极大值抑制造成的轮廓断续,往往会采用双门限阈值的方法。

基于此,本文提出的改进canny算子的步骤:

  1. 高斯滤波;
  2. 计算每个像素的梯度幅值和角度(?)
  3. 将幅值大于20的点设置为0(?)
  4. 将孤立点设置为0

第三步和第四步取代了传统非极大值抑制的过程,本文称其为 isolated point suppression process,由于取消了非极大值抑制,canny算子的复杂度降低了20%左右。

实验对比

两个双门限的传统canny检测算子和本文改进的canny检测算子的效果图:

在这里插入图片描述

可见,取消非极大值抑制果然造成了边缘线的模糊,但是将三者的划分结果和最优结果(遍历得到)相比,本文的方法的正确率是最高的:

在这里插入图片描述

SVM based CU partition method

SVM可以用来判断当前CU是否是平滑的,以此决定是否要终止划分。

我们采用线上和线下结合的方式进行训练,为了最大化训练效果,SVM分类器会使用group of intra pictures第一张图片进行on-line training,当然如果第一张图片的信息太少,不足以训练,则会使用off-line training的SVM分类器。

SVM的特征:1. contour_ratio,当前CU中的边缘点的平均数量;2. 相邻(左上、上、左)的CU的加权平均RD_loss
c o n t o u r _ r a t i o = c o n t o u r _ s u m p i x e l _ s u m contour\_ratio=\frac{contour\_sum}{pixel\_sum} contour_ratio=pixel_sumcontour_sum
contour_sum:当前CU中的轮廓点数量,pixel_sum:当前CU的总像素数
R D _ r a t i o = ∑ i = 1 3 w i R D i p i x e l _ s u m RD\_ratio=\sum_{i=1}^{3}w_i\frac{RD_i}{pixel\_sum} RD_ratio=i=13wipixel_sumRDi
其中,权重系数是自适应得到的,其应该正比于临近块和当前块的相关系数,反比于当前块的contour_ratio(contour_ratio越大,则说明当前CU越不smooth,即与临近块的差别就越大,权重系数就越小),因而得到经验公式:
w i = e − ∣ c o n t o u r _ r a t i o c u r r e n t − c o n t o u r _ r a t i o n i ∣ ∑ i = 1 3 e − ∣ c o n t o u r _ r a t i o c u r r e n t − c o n t o u r _ r a t i o n i ∣ w_i=\frac{e^{-|contour\_ratio_{current}-contour\_ration_{i}|}}{\sum_{i=1}^3e^{-|contour\_ratio_{current}-contour\_ration_{i}|}} wi=i=13econtour_ratiocurrentcontour_rationiecontour_ratiocurrentcontour_rationi
特征选择的合理性

通过做实验,发现将contour_ratio和RD_ratio结合起来的效果是最好的,能够使hit_rate达到90%以上,实验中的五类视频素材为(2K,1080p,WVGA,QWVGA,720p)
在这里插入图片描述

Experiment

在这里插入图片描述

其中canny算子花费了总时间的0.6%,SVM训练和测试耗费了总时间的0.8%.

summary

本文为什么效果这么好,作者提出了两点可能的原因,1. canny算子是定制化的,即使用isolated suppression代替了极大值抑制;2. 本文的方法是up-to-down的,在SVM的帮助下直接决定CU划分方式。

评价

这篇文章还有很大的问题,canny算子的threshold为什么取20,尤其是第三步很难理解,怀疑是作者写反了; 而且svm和canny算子的结合较为生硬,尤其是svm部分的公式较为感性,没有严格推导,仅能从单调性上证明公式没有问题。

可以借鉴的点就是作者将划分标准和纹理复杂度结合在一起,并想到了canny边缘检测的方式统计轮廓点,以此作为判决是否平滑的重要标准,svm的特征选择也较为巧妙,临近块的RD_loss的权重正好能够使用contour_ratio自适应地得到。

,并想到了canny边缘检测的方式统计轮廓点,以此作为判决是否平滑的重要标准,svm的特征选择也较为巧妙,临近块的RD_loss的权重正好能够使用contour_ratio自适应地得到。

猜你喜欢

转载自blog.csdn.net/weixin_43721070/article/details/121780118
今日推荐