4K8K电视中的超分辨率技术到底是啥?让我来告诉你(四NEDI篇)
昨天的文章,详细介绍了4K/8K电视中基于重建的超分辨率算法,分别为基于凸集投影法和基于IBP的超分辨率算法,以及两种算法的优缺点比较。读者如有不清楚的,可以翻看昨天的文章,今天书接上文,具体来聊一聊超分辨率算法中的一种改进的插值算法,NEDI。
什么是NEDI算法?
NEDI是一种基于图像局部区域相关特性的插值算法。它利用相关特性是局部区域的协变性 。为什么会出现NEDI算法?
通过我在《4K/8K电视中的超分辨率技术到底是啥?让我来告诉你(二-插值篇)》中的介绍,可以知道,传统的差值算法,在边缘区域都处理效果都比较差。
其它基于理想滤波器进行函数逼近的插值算法原理与传统的插值算法类似,通过调整插值函数多项式的最高次与插值系数达到改善插值效果的目的,但由于此类算法没有考虑图像的内容特性,因此对高频区域的插值效果改进效果有限。
为了解决以上问题,有人提出了基于图像局部区域内容特性的插值算法,NEDI就是其中具有代表性的一种算法。提出NEDI算法的前提是什么?
对高分辨率图像进行下采样的一个集合就是低分辨率图像,并且在采样过程中,把位于局部区域的相关特性也一起采样得到。所以根据这些采样得到的相关特性,可以对低分辨率进行插值运算,获得高分辨率图像。NEDI算法的处理流程
对于边缘区域的插值NEDI插值算法分为两个步骤,以放大2倍为例。
黑色像素点为低分辨率图像中的点,白色像素点为放大2倍后的待插值点。
第一步如上图左半所示,对于位置处于(2i+1,2j+1)处的待插值点,利用领域内对角方向的四个源图像点进行插值,完成后得到上图右半部分,其中灰色点为第一步插值得到的位置在(2i+1,2j+1)的像素点。
第二步插值如上图右半所示,对于位置在(2i,2j)处的待插值点,利用灰色虚线框内上下两个源图像像素点和左右两个由第一步得到的的插值像素点进行插值。第二步实际可以看做完成第一步插值后将图像顺时针旋转45度后第一步的重复。
上述两步中每一步都是四个对角像素点参与的卷积计算过程,以第一步中对位置处于(2i+1,2j+1)像素点插值来说,卷积计算可以表示成如式所示。
式1 卷积计算公式
式中:
NEDI插值算法的关键即在求出 a,具体过程如下图所示。
NEDI算法基于这样一个假设:联接一个像素点和它对角领域的四个像素点协变性关系不随着缩放发生变化。由此可建立一个线性无约束方程。以插值过程的第一步为例,具体过程如上图所示。深灰色点为位置(2i+1,2j+1) 的待插值点,黑色点为源图像点,记为集合C。浅灰色的虚线区域内的源图像点记为集合 W。此时建立方程:
可见C中每一行都为W中某个元素的在源图像中领域的对角四像素。利用上面公式即可解出 a。在求得a后,利用公式1进行图中所示的两步插值便完成了对图像的插值过程。NEDI优缺点分析
该算法先对图像进行边缘检测,利用协变性的相关性对边缘的区域进行插值运算,对检测结果为非边缘的区域,用传统的插值算法进行处理。
优点:因为算法是基于了图像内的协变特性,所以对边缘区域的处理效果较好。
缺点:因为在具体实现过程中,有大量的矩阵运算,所以非常不利于硬件实现,并且由于此类算法大部分只能够实现2的指数次缩放,所以一般不能投入到实际的生产过程中。
参考资料:
[1] Asuni N, Giachetti A. Accuracy improvements and artifacts removal in edge based image interpolation[C]. Proc. 3rd Intl. Conf. on Computer Vision Theory and Applications, 2008.