自动化学报  2018, Vol. 44 Issue (6): 1072-1085   PDF    
基于预测梯度的图像插值算法
陆志芳1, 钟宝江1     
1. 苏州大学计算机科学与技术学院 苏州 215006
摘要: 提出一种新的非线性图像插值算法,称为基于预测梯度的图像插值(Image interpolation with predicted gradients,PGI).首先沿用现有的边缘对比度引导的图像插值(Contrast-guided image interpolation,CGI)算法思想对低分辨率图像中的边缘进行扩散处理,然后预测高分辨率图像中未知像素的性质,最后对边缘像素采用一维有方向的插值,对非边缘像素采用二维无方向的插值.与通常的非线性图像插值算法相比,新算法对图像边缘信息的理解更为完善.与CGI算法相比,由于梯度预测策略的使用,PGI算法能够更有效地确定未知像素的相关性质(是否为边缘像素,以及是边缘像素时其边缘方向).实验结果表明,PGI算法无论在视觉效果还是客观性测评指标方面均优于现有的图像插值算法.此外,在对彩色图像进行插值时,本文将通常的RGB颜色空间转化为Lab颜色空间,不仅减少了伪彩色的生成,而且降低了算法的时间复杂度.
关键词: 图像插值     预测梯度     对比度     梯度     边缘    
Image Interpolation With Predicted Gradients
LU Zhi-Fang1, ZHONG Bao-Jiang1     
1. College of Computer Science and Technology, Soochow University, Suzhou 215006
Manuscript received : December 13, 2016, accepted: May 11, 2017.
Foundation Item: Supported by National Natural Science Foundation of China (61572341) and Soochow Scholars Program of Soochow University
Author brief: LU Zhi-Fang  Master student at the College of Computer Science and Technology, Soochow University. She received her bachelor degree from Soochow University in 2014. Her research interest covers image processing and computer vision
Corresponding author. ZHONG Bao-Jiang  Professor at the College of Computer Science and Technology, Soochow University. His research interest covers computer vision, image analysis and understanding. Corresponding author of this paper
Recommended by Associate Editor SANG Nong
Abstract: A new nonlinear image interpolation algorithm is proposed, referred to as image interpolation with predicted gradients (PGI). First, the idea of contrast-guided image interpolation (CGI) is employed to diffuse the edges in the low-resolution (LR) image. Then, unknown pixels in the high-resolution (HR) image are predicted. Finally, a 1-D directional filter is employed to process edge pixels while a 2-D directionless filter is used to interpolate non-edge pixels. Compared to the common nonlinear image interpolation algorithms, the new algorithm has a better interpretation of image edges. Compared to the CGI, the PGI can predict the property of unknown pixels more precisely (including whether an unknown pixel is an edge pixel or not, and its direction if it is). Experimental results show that PGI has a better performance than the existing algorithms, either with respect to visual effect or in terms of objective criteria. In addition to interpolate color images, the usual RGB space needs to be converted to the Lab space. As a result, pseudo-color can be suppressed and the computational complexity is reduced.
Key words: Image interpolation     predicted gradients     contrast     gradients     edge    

图像插值广泛应用于图像处理的各个领域, 例如人脸检测、军事雷达图像处理、医学图像分析以及超高清电视应用等[1-2], 其目的是将一幅图像从它的低分辨率(Low resolution, LR)版本变成相应的高分辨率(High resolution, HR)版本.例如, 在超高清电视的应用中, 大部分的电视节目还是标清信号, 将这些低分辨率的图像信号转为超高分辨率的图像信号成为各电视生产企业正在采取的一种手段.这样的信号转换如何实现, 就是图像插值研究工作者需要致力解决的问题.

在过去的几十年中, 人们提出了很多图像插值算法.这些算法从技术思想方面可概略地分为两类:一类是基于局部数据(Local-data-based)的插值方法[3-18], 另一类是基于样例(Example-based)的插值方法[19-22].两者的主要区别在于, 基于局部数据的插值方法根据待插值图像的当前像素, 利用数学方法直接进行插值; 而基于样例的插值方法则首先通过训练和学习建立起低分辨率图像和高分辨率图像之间的一种映射关系, 然后利用图像块匹配和替换来完成插值.这两类插值算法各具特色, 分别有不同的优势和局限性.

本文主要研究和考虑基于局部数据的插值方法(除特别说明外, 以下章节中提到的插值算法均为这类算法).与基于样例的插值方法相比, 这类方法一般具有较低的时间和空间复杂度.从建模特征方面, 这类方法又可细分为线性插值方法和非线性插值方法.两者的不同点在于, 线性方法在插值过程中采用同一个插值内核, 这种做法会使得图像中的边缘变得模糊不清, 达不到高清图像的视觉效果; 非线性方法则会对图像不同部分采用不同的插值策略, 其主要的出发点就是为了更好地处理图像在边缘处的插值效果.

本文提出一种非线性插值算法, 称为"基于预测梯度的图像插值(Image interpolation with predicted gradients, PGI)算法".与现有的非线性插值方法相比, PGI算法能够更有效地区分图像的边缘像素和非边缘像素.具体来说, 在通过梯度信息判断某一像素是否是边缘像素时, 我们提出了一种梯度预测策略, 提高了像素的区分精度, 最终提升了图像的插值效果.此外, 在对彩色图像进行插值时, 我们将通常的RGB颜色空间转换到更符合人眼感知特性的Lab颜色空间.在Lab颜色空间上执行新算法, 不仅减少了图像的伪彩色, 而且降低了图像的插值时间.

1 现有的图像插值算法

现有的基于局部数据的图像插值方法中, 线性插值主要包括:最近邻插值法、双线性插值法、双三次插值法[3]以及其他一些改进算法[4-6].非线性插值方法主要包括:基于协方差矩阵的方法[7-8], 基于小波系数的方法[9-10]以及基于边缘信息的方法[11-15].虽然这些非线性图像插值方法在阐述各自的技术思想时采用了不同的方式, 但其主要针对的任务是一致的, 即如何有效地解决图像中边缘处像素的插值问题.实际上, 对于非边缘处像素的插值即便是传统的线性插值方法已经能够取得很好的效果, 而正是出于对边缘像素插值效果的考虑, 才推动了当前非线性插值方法的持续发展.

在通常的非线性图像插值方法中, 对"边缘"的理解和认识与现有的边缘检测方法(例如Canny算法)是一致的, 即将梯度超过给定阈值且通过非极大值抑制的像素点连接而成的线条称为边缘, 其宽度一般只有一到两个像素.在插值过程中, 这类边缘像素将得到"保护", 例如采用与边缘方向一致的一维方向插值[23]; 而对于非边缘像素, 一般会采用与线性插值法相同的策略(例如双三次插值)处理.此时, 对于边缘附近的非边缘像素, 其插值所涉及到的支持领域将跨越边缘, 导致插值得到的图像边缘仍然会存在一定程度的模糊化.

对此, 2013年Wei和Ma[14]在其研究工作中给出了对图像边缘一种新的理解与阐述:在非线性插值方法中, 仅对传统意义上一到两个像素宽的边缘进行"保护"是不够的, 为了保证插值效果, 需要同时考虑到距离边缘一定范围内的非边缘像素并对它们进行类似的保护(例如采用边缘导向的一维方向插值, 而不是采用无方向的二维插值), 这一做法可称为"边缘扩散"或"边缘带状化".特别地, 边缘扩散的程度与边缘对比度(即边缘两侧像素的灰度值差异)成正比, 即边缘对比度越大, 扩散后的带状化边缘越宽.基于以上考虑, Wei和Ma提出了一种边缘对比度引导的图像插值(Contrast-guided image interpolation, CGI)算法[14].

图 1示例了以上两种不同图像边缘阐述方法的差异.图 1(a)给出了一幅结构比较简单的图像, 图 1(b)呈现的是通常的非线性图像插值方法所考虑的边缘.这类方法能够保证边缘上的像素(例如点$A$)清晰地出现在HR图像中.对于点$B$和点$C$, 则会被当作非边缘像素进行二维无方向插值.此时, 对于点$B$来说, 由于无方向插值涉及的支持领域完全位于边缘的同一边(像素差异值较小), 插值效果能够得到保证.而对于点$C$来说, 由于插值的支持领域跨越边缘, 便有可能产生严重的误差.图 1(c)显示的是CGI算法所考虑的边缘, 根据其边缘扩散原则, 对于图 1(a)的图像, 黑色与白色的对比度明显大于灰色与白色的对比度, 因而扩散后的带状化边缘宽度也不一样.在图 1(c)中, 由于点$C$被扩散后的边缘涵盖, 因此在插值过程中将得到保护, 进而产生与通常的非线性插值方法不同的插值效果.

图 1 对图像边缘的两种不同阐述方式 Figure 1 Two types of interpretations of image edges

在CGI算法中, 边缘扩散是通过一种隐式方式即像素的梯度扩散来实现的[14].

考虑如下能量函数:

$ \begin{align} E(u_{\theta}) = E_{d}(u_{\theta})+\lambda E_{s}(u_{\theta}) \end{align} $ (1)

其中, $\lambda$是一个正则参数, 默认值为0.2. $u_{\theta}$$\theta$方向上扩散之后的梯度值, $E_{d}(u_{\theta})$是数据保真项, 目的是使扩散后的边缘保持原有的特性, 形式为

$ \begin{align} E_{d}(u_{\theta}) = \iint\left[U_{\theta}^{2}(u_{\theta}-U_{\theta})^{2}\right]{\rm d}x{\rm d}y \end{align} $ (2)

其中, $U_{\theta}$$\theta$方向上的梯度值, $E_{s}(u_{\theta})$是平滑项, 用来促进边缘的扩散, 抑制非边缘的扩散, 表示为

$ \begin{align} E_{s}(u_{\theta}) = \iint\left[(u_{\theta})_{x}^{2} + (u_{\theta})_{y}^{2}\right]{\rm d}x{\rm d}y \end{align} $ (3)

根据式(1)~(3), 可得

$ \begin{align} E(u_{\theta}) = &\, \iint\left\{U_{\theta}^{2}(u_{\theta}-U_{\theta})^{2}\, +\right. \nonumber\\ &\, \left.\lambda \left[(u_{\theta})_{x}^{2} + (u_{\theta})_{y}^{2}\right]\right\}{\rm d}x{\rm d}y \end{align} $ (4)

为方便起见, 将式(4)的积分函数转化为

$ \begin{align} &F[x, y, u_{\theta}, (u_{\theta})_{x}, (u_{\theta})_{y}] =\notag\\ &\qquad U_{\theta}^{2}(u_{\theta}-U_{\theta})^{2} + \lambda[(u_{\theta})_{x}^{2} + (u_{\theta})_{y}^{2}] \end{align} $ (5)

此时, 可将$E(u_{\theta})$求解最小值的过程转化为

$ \begin{align} \frac{\partial F}{\partial u_{\theta}} - \frac{{\rm d}}{{\rm d}x}\frac{\partial F}{\partial (u_{\theta})_{x}} - \frac{{\rm d}}{{\rm d}y}\frac{\partial F}{\partial (u_{\theta})_{y}} = 0 \end{align} $ (6)

$ \begin{align} U_{\theta}^{2}(u_{\theta}-U_{\theta}) - \lambda \nabla^{2}u_{\theta} = 0 \end{align} $ (7)

其中, $\nabla^{2}$是拉普拉斯算子, $\nabla^{2}u_{\theta}$表示为

$ \begin{align} \nabla^{2}u_{\theta} = (u_{\theta})_{xx}+(u_{\theta})_{yy} \end{align} $ (8)

直接求解方程(7)比较困难, 经过分析可得, 待求解的方程中, 存在两个连续的空间变量$x$$y$, 因此, 可以通过迭代的方式求解, 即引入一个连续的时间变量参数$t$, 根据

$ \begin{align} \frac{\partial u_{\theta}(x, y, t)}{\partial t} =&\ U_{\theta}^{2}[u_{\theta}(x, y, t)-U_{\theta}] \, -\nonumber\\ &\ \lambda \nabla^{2}u_{\theta}(x, y, t) \end{align} $ (9)
$ \begin{align} \frac{\partial u_{\theta}(x, y, t)}{\partial t} \approx &\ u_{\theta}^{n+1}(i, j) - u_{\theta}^{n}(i, j) \end{align} $ (10)
$ \begin{align} \nabla^{2}u_{\theta}(x, y, t) \approx &\ u_{\theta}^{n}(i+1, j) + u_{\theta}^{n}(i, j+1)\, + \nonumber\\ &\ u_{\theta}^{n}(i-1, j) + u_{\theta}^{n}(i, j-1)\, - \nonumber\\ &\ 4u_{\theta}^{n}(i, j) \end{align} $ (11)

可得

$ \begin{align} u_{\theta}^{n+1}(i, j) = &\ u_{\theta}^{n}(i, j) + U_{\theta}^{2}(i, j)[u_{\theta}^{n}(i, j)\, -\nonumber\\ &\ U_{\theta}(i, j)] - \lambda[u_{\theta}^{n}(i+1, j) \, + \nonumber\\ &\ u_{\theta}^{n}(i, j+1) + u_{\theta}^{n}(i-1, j)\, + \nonumber\\ &\ u_{\theta}^{n}(i, j-1) - 4u_{\theta}^{n}(i, j)] \end{align} $ (12)

其中, $n$代表迭代次数, 一般取不超过10的正整数.

由于边缘扩散思想的引入, CGI算法提升了图像边缘的插值视觉效果[14].鉴于CGI算法的优越性, 本文将沿用其思想来理解图像边缘, 即在插值过程中考虑扩散后的边缘而非传统意义上的Canny边缘.

2 基于预测梯度的图像插值 2.1 基本思想

将待插值的LR图像记为$I^{(l)}(i, j)$, $1\leq i \leq M$, $1$ $\leq j \leq N$, 即原始图像的大小是$M\times N$.将插值得到的HR图像记为$I^{(h)}(i, j)$, 其大小为$m \times n$.本文主要讨论2倍插值的情况, 即$m=2M$, $n=2N$, 其他倍数插值可基于已有的2倍插值的结果进行拓展[8].

在插值开始时, 我们首先检测待插值的LR图像的边缘, 并对其进行扩散处理.基于扩散后的边缘, 可以判断出LR图像中每个像素的性质.这里, 像素的性质包括两个方面:

1) 是边缘像素还是非边缘像素;

2) 若是边缘像素, 其所在边缘的方向.

为了得到HR图像, 我们首先会将LR图像中$(i, j)$位置上的像素(连同其性质)直接复制到HR图像中$(2i-1, 2j-1)$位置上, 如图 2所示.具体来说

$ \begin{align} I^{(h)}(2i-1, 2j-1) = I^{(l)}(i, j) \end{align} $ (13)
图 2 插值示意图, 其中实心点表示已知的像素(从LR图像中直接复制得到), 空心点表示未知的像素 Figure 2 Illustration of the interpolation process (the dots denote the known pixels and the circles denote the missing pixels)

为了插值出HR图像中剩余位置的未知像素, 需要首先根据已知像素判断其性质, 再确定使用一维方向插值(当该像素为边缘像素时)还是二维无方向插值(当该像素为非边缘像素时).

在CGI算法中, 未知像素性质的判断策略是非常简单的, 形式为

$ \begin{align} \begin{cases} u_{\theta}^{(h)}(2i-1, 2j) = u_{\theta}^{(h)}(2i-1, 2j-1)\\[1mm] u_{\theta}^{(h)}(2i, 2j-1) = u_{\theta}^{(h)}(2i-1, 2j-1)\\[1mm] u_{\theta}^{(h)}(2i, 2j) = u_{\theta}^{(h)}(2i-1, 2j-1) \end{cases} \end{align} $ (14)

从而, $(2i-1, 2j)$, $(2i, 2j-1)$以及$(2i, 2j)$位置上的未知像素的性质与$(2i-1, 2j-1)$位置上的已知像素的性质是完全相同的.换句话说, CGI算法采用了最近邻策略来判定HR图像中未知像素的性质.

显然, CGI算法对于未知像素性质的判断是很粗糙的.当图像的边缘信息比较丰富时(例如多条边缘相互交叉), 会出现像素的属性(是否为边缘像素)或边缘的方向混乱不清, 从而影响最终的插值效果.为了有效地判断出HR图像中未知像素的性质, 我们提出了梯度预测策略.

2.2 梯度预测

考虑一幅LR图像$I^{(l)}(i, j)$, 像素点$(i, j)$在方向$\theta$上的梯度值记为

$ \begin{align} U_{\theta}^{(l)}(i, j) = |\nabla_{\theta}^{(l)}I^{(l)}(i, j)| \end{align} $ (15)

其中, $\nabla_{\theta}^{(l)}$是方向导数.在离散情形下, 可以用卷积来计算方向导数, 形如

$ \begin{align} \nabla_{\theta}^{(l)}I^{l}(i, j) = S_{\theta}\ast I^{(l)}(i, j) \end{align} $ (16)

其中, $\ast$表示卷积操作, $S_{\theta}$表示边缘检测算子所对应的掩模.在连续情形下, 边缘的方向是任意的, 即$\theta$的取值在$(0^{\circ}, 180^{\circ}]$之间.然而对于离散的数字图像而言, 边缘方向只需考虑4种情况, 即$\theta=0^{\circ}$, $\theta=$ $45^{\circ}$, $\theta=90^{\circ}$以及$\theta=135^{\circ}$, 如图 3所示.

图 3 数字图像的边缘方向示意图 Figure 3 Illustration of edge directions in digital image

考虑到边缘检测精度和程序运行效率两方面的因素, 可采用4个$3\times3$的卷积掩模来计算图像在$0^{\circ}$, $45^{\circ}$, $90^{\circ}$以及$135^{\circ}$这4个方向上的梯度近似值[14].形式为

$ \begin{align} &U_{0}^{(l)}(i, j) = \left| \left[ \begin{matrix} -1&0&1\\ -1&0&1\\ -1&0&1 \end{matrix} \right] \ast I^{(l)}(i, j) \right| \end{align} $ (17)
$\begin{align} &U_{45}^{(l)}(i, j) = \left| \left[ \begin{matrix} 0&0&1\\ -1&0&1\\ -1&-1&0 \end{matrix} \right] \ast I^{(l)}(i, j) \right| \end{align} $ (18)
$ \begin{align} &U_{90}^{(l)}(i, j) = \left| \left[ \begin{matrix} 1&1&1\\ 0&0&0\\ -1&-1&-1 \end{matrix} \right] \ast I^{(l)}(i, j) \right| \end{align} $ (19)
$ \begin{align} U_{135}^{(l)}(i, j) = \left| \left[ \begin{matrix} 1&1&0\\ 1&0&-1\\ 0&-1&-1 \end{matrix} \right] \ast I^{(l)}(i, j) \right| \end{align} $ (20)

为了得到扩散的梯度, 根据前文阐述的扩散思想将计算得到的$U_{\theta}^{(l)}(i, j)$进行扩散处理, 得到梯度的扩散值$u_{\theta}^{(l)}(i, j)$.为得到HR图像上每个像素的扩散梯度$u_{\theta}^{(h)}(i, j)$, 首先将LR图像中$(i, j)$位置上的梯度直接复制到HR图像中$(2i-1, 2j-1)$位置上, 形式为

$ \begin{align} u_{\theta}^{(h)}(2i-1, 2j-1) = u_{\theta}^{(l)}(i, j) \end{align} $ (21)

对于剩余位置上的未知像素, 我们考虑如下的梯度预测策略:以该像素为中心, 在其周边区域选择最相邻的16个已知梯度的像素, 通过双三次插值来预测当前未知像素的梯度.这里, "最相邻"准则是为了尽可能提高梯度的预测精度.而在插值过程中, 新"已知梯度"的像素会按顺序不断生成.为此, 遴选已知梯度像素的过程需要按照一定的次序进行(先计算对角方向, 再计算水平和竖直方向), 这是由于在计算水平和竖直方向上像素梯度时需要利用对角方向上像素的梯度.如果第一步预测水平和竖直方向上的梯度, 此时, 16个像素梯度中有8个梯度是对角方向上的梯度, 它们是未知的, 无法实现, 因此必须将对角方向上像素梯度的预测放在第一步.在两倍插值过程中, 我们首先会将LR图像中的$(i, j)$位置上的像素直接复制到HR图像中$(2i-1$, $2j-1)$位置上, 此时处于位置$(2i, 2j)$上的像素就是对角像素, 处于位置$(2i-1, 2j)$上的像素就是水平像素, 处于位置$(2i, 2j-1)$上的像素就是竖直像素.具体的预测策略如图 4所示.

图 4 梯度预测示意图 Figure 4 Illustration of gradients prediction

1) 若是对角方向上的像素$I^{(h)}(a, b)$, 则其对应的扩散梯度$u_{\theta}^{(h)}(a, b)$所选择的已知像素的梯度如图 4(a)所示:

$ \begin{align*} &u_{\theta}^{(h)}(a-1, b-1), ~~~~~~u_{\theta}^{(h)}(a-1, b+1) \end{align*} $
$ \begin{align*} &u_{\theta}^{(h)}(a+1, b+1), ~~~~~~u_{\theta}^{(h)}(a+1, b-1)\\ &u_{\theta}^{(h)}(a-3, b-3), ~~~~~~u_{\theta}^{(h)}(a-3, b-1)\\ &u_{\theta}^{(h)}(a-3, b+1), ~~~~~~u_{\theta}^{(h)}(a-3, b+3)\\ &u_{\theta}^{(h)}(a-1, b+3), ~~~~~~u_{\theta}^{(h)}(a+1, b+3)\\ &u_{\theta}^{(h)}(a+3, b+3), ~~~~~~u_{\theta}^{(h)}(a+1, b+1)\\ &u_{\theta}^{(h)}(a+3, b-1), ~~~~~~u_{\theta}^{(h)}(a+3, b-3)\\ &u_{\theta}^{(h)}(a+1, b-3), ~~~~~~ u_{\theta}^{(h)}(a-1, b-3) \end{align*} $

2) 若是水平方向上的像素$I^{(h)}(a-1, b)$, 则其对应的扩散梯度$u_{\theta}^{(h)}(a-1, b)$所选择的已知像素的梯度如图 4(b)所示:

$ \begin{align*} &u_{\theta}^{(h)}(a-2, b), &\!\!u_{\theta}^{(h)}(a-1, b+1)\\ &u_{\theta}^{(h)}(a, b), &\!\!u_{\theta}^{(h)}(a-1, b-1)\\ &u_{\theta}^{(h)}(a-4, b), &\!\!u_{\theta}^{(h)}(a-3, b+1)\\ &u_{\theta}^{(h)}(a-2, b+2), &\!\!u_{\theta}^{(h)}(a-1, b+3)\\ &u_{\theta}^{(h)}(a, b+2), &\!\!u_{\theta}^{(h)}(a+1, b+1)\\ &u_{\theta}^{(h)}(a+2, b), &\!\!u_{\theta}^{(h)}(a+1, b-1)\\ &u_{\theta}^{(h)}(a, b-2), &\!\!u_{\theta}^{(h)}(a-1, b-3)\\ &u_{\theta}^{(h)}(a-2, b-2), &\!\!u_{\theta}^{(h)}(a-3, b-1) \end{align*} $

3) 若是垂直方向上的像素$I^{(h)}(a, b-1)$, 则其对应的扩散梯度$u_{\theta}^{(h)}(a, b-1)$所选择的已知像素的梯度如图 4(c)所示:

$ \begin{align*} &u_{\theta}^{(h)}(a-1, b-1), ~~~~~~u_{\theta}^{(h)}(a, b)\\ &u_{\theta}^{(h)}(a+1, b-1), ~~~~~~ u_{\theta}^{(h)}(a, b-2)\\ &u_{\theta}^{(h)}(a-3, b-1), ~~~~~~u_{\theta}^{(h)}(a-2, b)\\ &u_{\theta}^{(h)}(a-1, b+1), ~~~~~~u_{\theta}^{(h)}(a, b+2)\\ &u_{\theta}^{(h)}(a+1, b+1), ~~~~~~ u_{\theta}^{(h)}(a+2, b)\\ &u_{\theta}^{(h)}(a+3, b-1), ~~~~~~u_{\theta}^{(h)}(a+2, b-2)\\ &u_{\theta}^{(h)}(a+1, b-3), ~~~~~~u_{\theta}^{(h)}(a, b-4)\\ &u_{\theta}^{(h)}(a-1, b-3), ~~~~~~ u_{\theta}^{(h)}(a-2, b-2) \end{align*} $

其中, $a=2i$, $b=2j$.

根据上述预测策略, 我们可以得到扩散处理后的梯度, 从而能够确定HR图像上每个像素的性质.

与CGI算法中使用的最近邻梯度预测方式相比, 以上所考虑的双三次梯度预测方式能够获得更高的数值精度.具体地说, 最近邻插值预测的相对误差为O$(h)$, 而双三次插值预测的相对误差为O$(h^{3})$, 其中$h$为插值的采样步长参数[3].

图 5给出了新的梯度预测方式与CGI算法中梯度预测方式对同一幅测试图像梯度预测结果的细节比较.图 5(a)是测试图像各像素的真实梯度值和方向, 图 5(b)是CGI算法计算出来的梯度及方向, 图 5(c)是用本文提出的梯度预测方法计算出的梯度和方向.如图 5(b)所示, 对于像素$B$, 由于CGI算法采用最近邻策略, 使得像素$B$的梯度和方向和像素$A$相同(方向都是朝右下角, $\theta=135^{\circ}$).此时, 会将像素$B$作为$135^{\circ}$方向上的边缘像素进行插值.但是, 从图 5(a)的原图梯度可以看到, 像素$B$其实是个非边缘像素.如图 5(c)所示, 由于PGI算法采用待插像素周围16个已知像素的梯度值, 使得其可以判断出像素$B$是个非边缘像素, 从而采用非边缘像素的插值策略.与CGI算法相比, PGI算法计算出的像素梯度无论是从大小还是方向上都更接近真实值.

图 5 预测结果的细节比较, 箭头方向表示像素梯度方向, 箭头长短表示像素梯度大小 Figure 5 The detail comparison of prediction results, where the direction and the length of arrow represent the direction and the size of gradient, respectively

图 6是本文梯度计算方式与CGI算法中梯度计算方式对同一幅测试图像梯度预测结果的整体比较.可以看出, 我们所预测出的梯度能量图比CGI算法所得到的更自然和平滑.在数值结果上, 本文算法的预测结果与真实值的误差(0.95)小于CGI算法的误差(1.36).

图 6 预测结果的整体比较 Figure 6 The unified comparison of prediction results

图 7是本文与CGI算法中两种梯度计算方式对同一幅测试图像进行梯度预测的可视化结果比较.图 7(a)是测试图像; 图 7(b)是测试图像的梯度可视化结果; 图 7(c)是利用CGI算法从低分辨率LR图像上预测高分辨率HR图像的梯度可视化结果; 图 7(d)是利用本文提出的梯度预测策略从低分辨率LR图像上预测高分辨率HR图像的梯度可视化结果.可以看到, CGI算法预测出的梯度比较粗糙, 与原图梯度相比具有明显的误差.特别是在边缘信息丰富的局部, 预测误差导致了边缘相互影响, 模糊不清, 给后继的插值带来困难.本文算法预测的梯度可视化效果图则与原图相差无几.

图 7 预测梯度的可视化结果比较 Figure 7 A visual comparison of predicted gradients
2.3 图像插值

基于预测后的梯度, 可以判断出HR图像中每个未知像素的性质$P(e, \theta)$, 具体地,

1) 此像素是边缘像素(此时, $e=Y$)还是非边缘像素(此时, $e=N$).

2) 若$e=Y$, 则要确定当前像素所在边缘的方向(即$\theta=0^{\circ}$, $\theta=45^{\circ}$, $\theta=90^{\circ}$$\theta=135^{\circ}$); 若$e$ $=$ $N$, 则$\theta=NA$ (即Not applicable, 不可用).这里, 利用梯度判断像素性质的具体做法为:

1) 对于HR图像上的每个像素, 我们可以得到其4个方向上的梯度, 分别记为$u_{0}^{(h)}$, $u_{45}^{(h)}$, $u_{90}^{(h)}$, $u_{135}^{(h)}$.

2) 将这4个方向分成两组正交方向进行比较, 其中, $u_{0}^{(h)}$$u_{90}^{(h)}$是一组, $u_{45}^{(h)}$$u_{135}^{(h)}$是另一组.

3) 对于对角方向上的像素, 若$|u_{45}^{(h)}-u_{135}^{(h)}|\geq T$, 说明此像素是边缘像素, 即$e=Y$, 此时

$ \begin{align*} \begin{cases} \theta=135^{\circ}, &\mbox {若}~u_{45}^{(h)} \geq u_{135}^{(h)}\\[1mm] \theta=45^{\circ}, &\mbox {若}~u_{45}^{(h)} < u_{135}^{(h)} \end{cases}\end{align*} $

4) 若$|u_{45}^{(h)}-u_{135}^{(h)}| < T$, 说明此像素是非边缘像素, 即$e=N$, 此时$\theta=NA$.

5) 对于水平和垂直方向上的像素, 若$|u_{0}^{(h)}$ $-$ $u_{90}^{(h)}|$ $\geq T$, 说明此像素是边缘像素, 即$e=Y$, 此时

$ \begin{align*} \begin{cases} \theta=90^{\circ}, &\mbox {若}~u_{0}^{(h)} \geq u_{90}^{(h)}\\[1mm] \theta=0^{\circ}, &\mbox {若}~u_{0}^{(h)} < u_{90}^{(h)} \end{cases}\end{align*} $

6) 若$|u_{0}^{(h)}-u_{90}^{(h)}| < T$, 说明此像素是非边缘像素, 即$e=N$, 此时$\theta=NA$.

本文算法的结构如图 8所示.首先, 对LR图像进行边缘像素的检测, 为保护边缘附近的非边缘像素, 需要对边缘进行扩散处理, 得到$u_{\theta}^{(l)}$.然后, 基于LR图像的扩散梯度$u_{\theta}^{(l)}$预测HR图像的扩散梯度$u_{\theta}^{(h)}$.接着, 基于得到的扩散梯度$u_{\theta}^{(h)}$预测HR图像上每个像素的性质$P(e, \theta)$.最后, 根据预测的像素性质区分HR图像上的边缘像素和非边缘像素, 并对它们分别进行处理, 即对边缘像素采用一维方向插值, 对非边缘像素采用二维无方向插值.

图 8 PGI算法插值流程图 Figure 8 The flowchart of PGI

在插值过程中, 由于待插像素所处位置的不同, 也需要按照一定的次序进行(先计算对角方向, 再计算水平和竖直方向), 这是由于在计算水平和竖直方向上像素灰度值时需要利用对角方向上像素的灰度值.因而, 第一步先根据LR图像上的灰度值$I^{(l)}(i, j)$计算HR图像对角方向上像素的灰度值$I^{(h)}(2i, 2j)$; 第二步再根据原始灰度值$I^{(l)}(i, j)$以及第一步得到的$I^{(h)}(2i, 2j)$分别计算水平方向和竖直方向上像素的灰度值$I^{(h)}(2i-1, 2j)$以及$I^{(h)}(2i, 2j-1)$.插值过程中, 对于每一个非边缘像素, 利用二维无方向插值进行处理, 本文采用传统的双三次插值算法作为二维无方向插值算法, 对于位置$(i+u, j+v)$处像素的灰度值($u$$v$都是不大于1的正浮点数), 其计算公式为

$ \begin{align} I(i+u, j+v) = ABC \end{align} $ (22)

其中,

$ \begin{equation*} A=\left[ \begin{matrix} S(u+1)&S(u+0)&S(u-1)&S(u-2) \end{matrix} \right] \end{equation*} $
$ \begin{align*} &B=\left[ \begin{matrix} I(i-1, j-1)&I(i-1, j+0)\\ I(i+0, j-1)&I(i+0, j+0)\\ I(i+1, j-1)&I(i+1, j+0)\\ I(i+2, j-1)&I(i+2, j+0)\end{matrix}\right. \\ &\left. \qquad\qquad\qquad\ \begin{matrix}I(i-1, j+1)&I(i-1, j+2)\\ I(i+0, j+1)&I(i+0, j+2)\\ I(i+1, j+1)&I(i+1, j+2)\\ I(i+2, j+1)&I(i+2, j+2) \end{matrix} \right] \\[1mm] &C=\left[ \begin{matrix} S(v+1)\!&\!S(v+0)\!&\!S(v-1)\!&\!S(v-2) \end{matrix} \right]^{\rm T} \\[1mm] &S(x)= \begin{cases} 1-2|x|^{2}+|x|^{3}, &0\leq |x| <1 \\ 4-8|x| +5|x|^{2}-|x|^{3}, &1\leq |x| <2 \\ 0, &|x| \geq 2 \end{cases} \end{align*} $

利用式(22)就可以对图像上的每一个非边缘像素进行插值处理.对于边缘像素, 利用

$ \begin{align} I = \omega (I_{a} + I_{b}) + (0.5-\omega)(I_{c} + I_{d}) \end{align} $ (23)

进行处理.这里, $\omega$是可调参数, 基于仿真实验结果, 文中的值为0.575, 此值是根据151幅灰度图像进行训练得到的最佳结果; $I$表示待求像素的灰度值; $I_{a}$, $I_{b}$, $I_{c}$以及$I_{d}$表示已知像素的灰度值, 其确定规则为:

1) 对角像素插值

a) 若$u_{45}^{(h)}-u_{135}^{(h)} > T$, 则$\theta=135^{\circ}$, 此时

$ \begin{align*} &I_{a} = I^{(h)}(i-1, j-1), ~~I_{b} = I^{(h)}(i+1, j+1)\\ & I_{c} = I^{(h)}(i-3, j-3), ~~I_{d} = I^{(h)}(i+3, j+3)\end{align*} $

b) 若$u_{135}^{(h)}-u_{45}^{(h)} > T$, 则$\theta=45^{\circ}$, 此时

$ \begin{align*} &I_{a} = I^{(h)}(i+1, j-1), ~~I_{b} = I^{(h)}(i-1, j+1)\\ &I_{c} = I^{(h)}(i+3, j-3), ~~I_{d} = I^{(h)}(i-3, j+3)\end{align*} $

2) 水平和垂直像素插值

a) 若$u_{0}^{(h)}-u_{90}^{(h)} > T$, 则$\theta=90^{\circ}$, 此时

$ \begin{align*} &I_{a} = I^{(h)}(i-1, j), ~~~~I_{b} = I^{(h)}(i+1, j)\\ &I_{c} = I^{(h)}(i-3, j), ~~~~I_{d} = I^{(h)}(i+3, j)\end{align*} $

b) 若$u_{90}^{(h)}-u_{0}^{(h)} > T$, 则$\theta=0^{\circ}$, 此时

$ \begin{align*} &I_{a} = I^{(h)}(i, j-1), ~~~~I_{b} = I^{(h)}(i, j+1)\\ &I_{c} = I^{(h)}(i, j-3), ~~~~I_{d} = I^{(h)}(i, j+3)\end{align*} $

这里, $T$是阈值, 取值为0.008.

图 9给出了CGI算法和PGI算法的整体思想比较示意图.可以看出, 两者之间的区别主要在于如何从LR图像的扩散梯度计算HR图像的扩散梯度, 进而估计HR图像的边缘. CGI算法利用的是最近邻策略, PGI算法利用的则是基于未知像素周边已知像素的梯度预测策略.两者之间的实验结果比较将在第3节的实验部分详细描述.

图 9 基于LR图像像素性质推测HR图像上各像素性质的思想概要图 Figure 9 The characteristics prediction of pixels on HR based on the characteristics of pixels on LR
2.4 彩色图像插值

目前, 人们主要关注对灰度图像的插值, 对彩色图像插值的研究相对较少, 通常做法是对各个颜色通道采用灰度图像插值算法.然而, 同一幅彩色图像在不同的颜色空间中可能会有不同的表现形式, 选择在哪个颜色空间处理, 如何处理是一个需要确定的基本问题.例如, RGB是一个叠加颜色系统, 在此空间上, 一幅彩色图像可以表示为如下模型:

$ \begin{align} I : \Omega \rightarrow {\bf R}_{+}^{3}=\{(r, g, b): r, g, b\geq 0 \} \end{align} $ (24)

其中, $r$, $g$, $b$分别表示图像的3个颜色通道.这三个通道同时包含图像的亮度特征和色度特征, 具有较强的相关性.对它们分别进行处理时, 在边缘处各个通道插值得到的结果相互叠加易产生伪彩色, 降低图像的插值质量.

相比于RGB颜色空间, Lab颜色空间是一种与设备无关的颜色系统, 它通过数字化的方法描述人眼的视觉感应.在Lab颜色空间中, 亮度特征和色度特征是分开的, 即其具有二维独立分布的特点.因此, 我们可以分别提取图像的亮度特征和色度特征.同时, Lab颜色空间的色彩空间范围大于RGB颜色空间, 即RGB颜色空间可以描述的色彩信息均可以在Lab颜色空间得以映射.图 10给出了三幅彩色图像分别在RGB和Lab颜色空间上, 人眼的感知变化差异.为简单起见, 我们利用"欧几里得距离"来描述两幅彩色图像之间的颜色差异.在RGB及Lab颜色空间中, 颜色差异的计算公式为

$ \begin{align} &R_{1, 2} = \sum\limits_{c\in \{r, g, b \}}(c_{1}-c_{2})^{2} \end{align} $ (25)
$ \begin{align} &\widetilde{R}_{1, 2} = \sum\limits_{\widetilde{c}\in \{l, a, b \}}(\widetilde{c}_{1}-\widetilde{c}_{2})^{2} \end{align} $ (26)
图 10 不同颜色空间的颜色差异比较 Figure 10 The comparison of contrast in different color spaces

其中, $c$代表RGB颜色空间上的一个通道分量; $\widetilde{c}$代表Lab颜色空间上的一个通道分量.图 10(a)显示在RGB颜色空间上, 黑色和灰色之间的对比度$(R_{g, b}$ $=255)$等于黑色与红色之间的对比度$(R_{b, r}=$ $255$).实际上, 对于人眼而言, $R_{g, b}$应该小于$R_{b, r}$.图 9(b)显示在Lab颜色空间上, 它们两者之间的关系与人眼感知是一致的($\widetilde{R}_{g, b}=61$, $\widetilde{R}_{b, r}=120).$所以, 上述实验结果表明将彩色图像转到Lab颜色空间上处理更合理.

图 11给出了不同颜色空间上彩色图像的插值过程示意图.现有算法通常在RGB空间上分别对彩色图像的$r$, $g$, $b$三个通道运用灰度图像的插值算法, 然后合成一幅彩色图像.考虑到人眼对亮度的敏感程度大于对色度的敏感程度以及插值的效率, 在Lab空间上对彩色图像进行插值时, 我们仅对亮度通道L采用本文提出的PGI插值算法, 而对色度通道采用传统双三次插值.虽然从RGB颜色空间转换到Lab颜色空间需要一定的时间消耗, 但是这些时间消耗远小于在色度空间上选用传统插值方法所节省的时间.例如, 对于一幅256像素$\times$ 256像素的彩色图像, 颜色空间转换大约为0.16 s, 利用传统双三次插值处理一个通道的时间大约是0.04 s, 利用PGI插值算法处理一个通道的时间大约为0.7 s, 因此转换到Lab空间处理此幅图像的时间大约为0.94 s $(0.16+0.7+0.04+0.04=0.94)$, 而直接在RGB空间上处理所需的时间大约为2.1 s $(0.7 +0.7$ $+$ $0.7 = 2.1)$.实验结果证明, 对亮度和色度通道分开处理, 不但可以节省大量时间, 而且可以减少插值图像的伪彩色.

图 11 不同颜色空间上彩色图像插值示意图 Figure 11 Demonstration of color image interpolation in different color spaces
3 实验结果

为了测评本文算法, 我们选取了当前8种具有代表性的算法进行比较, 分别是:双三次插值(Bicubic)法[3]、边缘导向插值(NEDI)法[7]、线性最小均方误差估计插值(LMMSE)法[15]、软判决自适应插值(SAI)法[8]、对称同态预测插值(SME)法[21]、非局部自回归插值(NARM)法[19] (该算法虽然是基于样例的插值方法, 但样例数据来源于待插值图像本身, 因此与本文研究的基于局部数据的插值算法存在可比性)、对比度引导的图像插值(CGI)法[14]以及快速边缘扩散插值(CED)法[24].实验环境如下:程序编写所基于的平台是MATLAB, 版本是2014, CPU是2.30 GHz的Inter Core, 内存为4 GB.各算法都是算法提出者编写的源代码, 且各个参数配置均是算法提出者所推荐的默认参数.

实验中用到的12幅测试图像如图 12所示, 它们分别为: Airplane (512像素$\times$ 384像素)、Bike (512像素$\times$ 768像素)、Boats (512像素$\times$ 512像素)、Bridge (512像素$\times$ 512像素)、Butterfly (288像素$\times$ 480像素), Cameraman (256像素$\times$ 256像素)、Fence (256像素$\times$ 256像素)、House (256像素$\times$ 256像素)、Lena (256像素$\times$ 256像素)、Parthenon (459像素$\times$ 292像素)、Station (256像素$\times$ 256像素)以及Wheel (160像素$\times$ 300像素).这12幅图像是图像插值领域常用的图像, 内容包含纹理和边缘等重要信息, 具有参考价值.例如Lena图像, 其鉴别度较高, 平整的区块、清晰细致的纹路、渐渐变化的光影、颜色的深浅层次等, 使它在验证影响处理演绎法则时, 相当有成效.Cameraman和House这两幅图像是国际标准测试图像, 用于此, 比较有说服力.图像Fence, Bike以及Boats的纹理部分可以用来比较不同图像插值算法对纹理处理的优越性. Station, Wheel, Butterfly以及Lena图像上拥有丰富的边缘信息, 特别是这些图像上存在目前常用插值算法所不能解决的多条边缘相交时的情况, 用于此, 也便于各算法之间进行插值效果比较.Airplane, Bridge以及Parthenon也是图像插值领域常用的测试图像.为了能将各算法得到的插值图像与对应的参考图像进行比较, 文章采用的LR图像都是通过将参考图像进行隔行隔列降采样得到的.这样对LR图像进行2倍插值所得到的HR图像就与参考图像大小相同, 进而可以对各算法插值的结果进行客观数据的比较.

图 12 实验中用到的12幅测试图像 Figure 12 Twelve test images used for simulation experiments

表 1是以上9种不同插值算法所获得插值图像与参考图像的峰值信噪比(Peak signal to noise ratio, PSNR).为便于比较, 表格中最后一行的平均值为各算法相对于双三次插值算法所提高的结果(峰值信噪比增益).从表 1可以看出, 对于测试的12幅图像, 由于梯度预测思想的引入, 本文算法的PSNR值高于CGI算法.对于Station, Cameraman, Wheel以及Butterfly这四幅图像, 新算法能够取得最高的PSNR值. SAI算法、SME算法以及NARM算法也能在其他一些测试图像上取得最高值, 但是从表 1最后一行数据可以看到, 在平均PSNR值上本文算法和SME算法相当(相对双三次插值的平均增益同为0.82), 优于其余7种算法.

表 1 不同插值算法基于PSNR的比较(dB) Table 1 A comparison of different interpolation methods with respect to the PSNR (dB)

表 2是各算法处理12幅灰度图像的结构相似性(Structural similarity index, SSIM)比较.可以看到, 由于本文算法在插值过程中对图像边缘的仔细处理, 使得新算法PGI在边缘信息比较丰富的Station, Wheel以及Butterfly这三幅测试图像上能够取得最大的SSIM值.在平均SSIM值上, 本文算法略低于NARM算法, 但优于其余7种算法.

表 2 不同插值算法基于SSIM的比较(dB) Table 2 A comparison of different interpolation methods with respect to the SSIM (dB)

表 3是各算法处理12幅灰度图像的边缘保持性(Edge preserve index, EPI)比较.可以看到, 本文算法与其他8种算法相比, 除了在测试图像Cameraman和Wheel上结果略低于算法CED外, 无论是在其他10幅测试图像上还是所有12幅测试图像的平均值, 结果都高于其他8种算法, 说明本文算法在图像的边缘保持性方面能够取得良好的性质.

表 3 不同插值算法基于EPI的比较(dB) Table 3 A comparison of different interpolation methods with respect to the EPI (dB)

表 4是各算法处理12幅灰度图像的CPU时间比较.因为Bicubic算法是一种不需要考虑图像结构的线性插值算法, 所以在速度上是最快的. CED算法利用高斯模糊对边缘进行扩散, 其速度仅次于Bicubic算法.由于梯度预测思想的引入, 新算法PGI的时间略高于CGI算法, 但两种算法是在一个数量级上的. NARM虽能够取得较好的PSNR值, 但需要对每幅输入图像预先建立一个低分辨率图像和高分辨率图像之间的映射关系, 然后进行图像插值, 因此, 该算法的速度是9种算法中最慢的, 其平均时间大约是本文算法所消耗时间的300倍. SME算法虽然在平均PSNR上表现优秀, 但在所耗费的平均时间方面处于明显的劣势, 约为本文算法的100倍.对于SAI算法, 由于原作者只提供了C代码, 所以此处不参与比较.

表 4 不同算法的插值时间比较(s) Table 4 A comparison of different interpolation methods with respect to the CPU time (s)

在主观测评方面, 我们比较了各算法在真实边缘保持、虚假边缘抑制和噪声抑制等方面的表现.总的来说, 早期文献的算法(Bicubic[3]、NEDI[7]等)容易因振铃现象产生虚假边缘, 新算法和近期文献的算法(SAI[8]、NARM[19]等)均可以给出主观效果良好的HR图像.

图 13给出了除Bicubic算法外其他8种算法对测试图像Wheel插值的主观效果比较.为了能够更清楚地看出不同算法的插值细节, 我们对测试图像进行4倍插值.从图 13可以看出, NEDI算法、LMMSE算法以及SME算法在边缘处都出现了锯齿状, 降低了图像的视觉效果. CGI算法和CED算法虽然对边缘的处理比较平滑, 但是却在边缘交界处出现了虚假边缘.本文算法不仅能够较平滑地处理图像边缘, 而且避免了虚假边缘的产生. NARM算法虽然能够取得与PGI算法相似的视觉效果, 但从表 4可以看到, 它消耗的CPU时间相对较长.

图 13 各算法对Wheel图像的插值结果比较 Figure 13 Comparison of interpolation results on Wheel by different interpolation methods

图 14给出了本文算法和CGI算法对两幅测试图像进行4倍插值的主观效果比较.可以看出, CGI算法对图像上多条边缘交界的地方处理效果不太理想, 出现虚假边缘或边缘缺失的问题.由于我们在HR图像像素性质判断时, 引入梯度预测策略, 能够更精确地判断像素性质, 因此, 很好地解决了上述CGI算法在插值中遇到的问题.

图 14 本文算法和CGI法对测试图像的4倍插值结果比较 Figure 14 The comparison of test images via CGI and ours with an interpolation factor $4\times 4$

图 15比较了测试的9种算法在真实边缘保持和虚假边缘抑制方面的表现.测试图像为Bike, 为方便演示, 图中只给出一个局部.从图 15可以看出, 算法Bicubic、LMMSE、SME以及CGI在红色方框所示的区域内出现了虚假边缘; 算法SAI在黄色方框内出现了虚假边缘; 算法CED在两个区域内都出现虚假边缘; 算法NEDI和NARM虽然在上述方框内未出现虚假边缘, 但是却在红色方框内出现了边缘缺失现象; 而本文算法PGI无论是在虚假边缘抑制还是在真实边缘保持方面都表现良好.

图 15 各算法插值得到的图像边缘比较 Figure 15 Comparison of interpolation results on edges by different interpolation methods

图 16是CGI算法和新算法对彩色图像的插值结果比较.文中用到了Butterfly、Starfish和Airplane这3幅测试图像, 其中Butterfly以及Starfish这两幅图像是文献[16]中用到的测试图像, Airplane是文献[7]中用到的测试图像.可以看出, 将彩色图像的插值转换到与人眼感知相符的Lab颜色空间, 并对图像的亮度和色度分量分别用不同的插值技术处理, 可以减少彩色图像插值时边缘处伪彩色情况的发生, 提高了图像的插值效果.同样, 从表 5的数值结果可以得到相同的结论.另外, 从表 5可以看到, 对人眼比较敏感的亮度分量采用新算法, 不太敏感的色度分量采用时间复杂度较低的Bicubic插值算法, 最终的插值时间大约是CGI算法时间的一半.

图 16 本文算法和CGI对彩色图像的插值结果比较 Figure 16 The comparison of color images via CGI and ours
表 5 CGI算法和PGI算法对彩色图像进行插值的PSNR (dB)和CPU时间(s)比较 Table 5 A comparison of different interpolation methods with respect to the PSNR (dB) and the CPU time (s)
4 结论

对图像进行高分辨率插值的关键在于对边缘的处理.通常的非线性插值算法对边缘的理解与边缘检测方法类似, 即1~2个像素宽的线条, 从而插值后会发生边缘模糊的现象.为此, 本文沿用了边缘对比度引导算法的思想, 首先对低分辨率图像中的边缘做扩散处理, 得到"带状化"边缘, 用以引导对高分辨率图像的插值.在计算高分辨率图像中未知性质的像素时, 我们提出了一种梯度预测策略, 即在未知像素周围选择最相邻的16个已知梯度的像素, 以此估算出当前像素的梯度.通过这种策略, 可以对未知像素的性质(是否是边缘像素, 以及是边缘像素时其边缘方向)进行更有效的判断.在具体插值时, 对边缘像素采用有方向的一维插值, 而对非边缘像素采用二维无方向插值.实验结果表明, 本文提出的新算法可以取得比现有算法更好的插值效果.在对彩色图像进行插值时, 本文将通常的RGB颜色空间转化为Lab颜色空间.这一做法的主要考虑是Lab颜色空间更符合人类的视觉特性, 从而可以减少伪彩色的生成.此外, 由于仅需在L颜色通道中执行基于梯度预测的图像插值, 因此可以显著降低彩色图像插值的计算复杂度.

参考文献
1
El-Khamy S E, Hadhoud M M, Dessouky M I, Salam B M, Abd El-Samie F E. Efficient implementation of image interpolation as an inverse problem. Digital Signal Processing, 2005, 15(2): 137-152. DOI:10.1016/j.dsp.2004.10.003
2
Thévenaz P, Blu T, Unser M. Interpolation revisited. IEEE Transactions on Medical Imaging, 2000, 19(7): 739-758. DOI:10.1109/42.875199
3
Keys R. Cubic convolution interpolation for digital image processing. IEEE Transactions on Acoustics, Speech, and Signal Processing, 1981, 29(6): 1153-1160. DOI:10.1109/TASSP.1981.1163711
4
Hwang J W, Lee S L. Adaptive image interpolation based on local gradient features. IEEE Signal Processing Letters, 2004, 11(3): 359-362. DOI:10.1109/LSP.2003.821718
5
Shi J Z, Reichenbach S E. Image interpolation by two-dimensional parametric cubic convolution. IEEE Transactions on Image Processing, 2006, 15(7): 1857-1870. DOI:10.1109/TIP.2006.873429
6
Pang Zhi-Yong, Tan Hong-Zhou, Chen Di-Hu. An improved low-cost adaptive bicubic interpolation arithmetic and VLSI implementation. Acta Automatica Sinica, 2013, 39(4): 407-417.
( 庞志勇, 谭洪舟, 陈弟虎. 一种改进的低成本自适应双三次插值算法及VLSI实现. 自动化学报, 2013, 39(4): 407-417.)
7
Li X, Orchard M T. New edge-directed interpolation. IEEE Transactions on Image Processing, 2001, 10(10): 1521-1527. DOI:10.1109/83.951537
8
Zhang X J, Wu X L. Image interpolation by adaptive 2-D autoregressive modeling and soft-decision estimation. IEEE Transactions on Image Processing, 2008, 17(6): 887-896. DOI:10.1109/TIP.2008.924279
9
Chang S G, Cvetkovic Z, Vetterli M. Locally adaptive wavelet-based image interpolation. IEEE Transactions on Image Processing, 2006, 15(6): 1471-1485. DOI:10.1109/TIP.2006.871162
10
Huang Hai-Yun, Qi Fei-Hu, Chen Jian, Yao Zhi-Hong. A wavelet-based interpolation of medical images. Acta Automatica Sinica, 2002, 28(5): 722-728.
( 黄海赟, 戚飞虎, 陈剑, 姚志洪. 基于小波的医学图像插值. 自动化学报, 2002, 28(5): 722-728.)
11
Yang Yun-Feng, Su Zhi-Xun, Hu Jin-Yan. A new edge-holding algorithm of image interpolation. Journal of Image and Graphics, 2005, 10(10): 1248-1251.
( 杨云峰, 苏志勋, 胡金燕. 一种保持边缘特征的图像插值方法. 中国图象图形学报, 2005, 10(10): 1248-1251.)
12
Jensen K, Anastassiou D. Subpixel edge localization and the interpolation of still images. IEEE Transactions on Image Processing, 1995, 4(3): 285-295. DOI:10.1109/83.366477
13
Sun H B, Zhang F W, Zheng N N. An edge-based adaptive image interpolation and its VLSI architecture. In: Proceedings of the 2012 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference (APSIPA ASC). Hollywood, CA, USA: IEEE, 2012. 1-6
14
Wei Z, Ma K K. Contrast-guided image interpolation. IEEE Transactions on Image Processing, 2013, 22(11): 4271-4285. DOI:10.1109/TIP.2013.2271849
15
Zhang L, Wu X L. An edge-guided image interpolation algorithm via directional filtering and data fusion. IEEE Transactions on Image Processing, 2006, 15(8): 2226-2238. DOI:10.1109/TIP.2006.877407
16
Yamaguchi T, Ikehara M. The quick and high quality image interpolation for single image using multi-filtering and weighted mean. In: Proceedings of the 2016 IEEE International Conference on Image Processing (ICIP). Phoenix, AZ, USA: IEEE, 2016. 2841-2845
17
Dong C Q, Portilla J. Maximum likelihood interpolation for aliasing-aware image restoration. In: Proceedings of the 2016 IEEE International Conference on Image Processing (ICIP). Phoenix, AZ, USA: IEEE, 2016. 564-568
18
Zhu S Y, Zeng B, Zeng L Y, Gabbouj M. Image interpolation based on non-local geometric similarities and directional gradients. IEEE Transactions on Multimedia, 2016, 18(9): 1707-1719. DOI:10.1109/TMM.2016.2593039
19
Dong W S, Zhang L, Lukac R, Shi G M. Sparse representation based image interpolation with nonlocal autoregressive modeling. IEEE Transactions on Image Processing, 2013, 22(4): 1382-1394. DOI:10.1109/TIP.2012.2231086
20
Huang J J, Siu W C, Liu T R. Fast image interpolation via random forests. IEEE Transactions on Image Processing, 2015, 24(10): 3232-3245. DOI:10.1109/TIP.2015.2440751
21
Mallat S, Yu G S. Super-resolution with sparse mixing estimators. IEEE Transactions on Image Processing, 2010, 19(11): 2889-2900. DOI:10.1109/TIP.2010.2049927
22
Romano Y, Protter M, Elad M. Single image interpolation via adaptive nonlocal sparsity-based modeling. IEEE Transactions on Image Processing, 2014, 23(7): 3085-3098. DOI:10.1109/TIP.2014.2325774
23
Hou H, Andrews H. Cubic splines for image interpolation and digital filtering. IEEE Transactions on Acoustics, Speech, and Signal Processing, 1978, 26(6): 508-517. DOI:10.1109/TASSP.1978.1163154
24
Ye W, Ma K K. Convolutional edge diffusion for fast contrast-guided image interpolation. IEEE Signal Processing Letters, 2016, 23(9): 1260-1264. DOI:10.1109/LSP.2016.2571738