CN102595088A - 内插 - Google Patents
内插 Download PDFInfo
- Publication number
- CN102595088A CN102595088A CN2012100249710A CN201210024971A CN102595088A CN 102595088 A CN102595088 A CN 102595088A CN 2012100249710 A CN2012100249710 A CN 2012100249710A CN 201210024971 A CN201210024971 A CN 201210024971A CN 102595088 A CN102595088 A CN 102595088A
- Authority
- CN
- China
- Prior art keywords
- pixel
- filter
- angle
- image
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 83
- 230000009466 transformation Effects 0.000 claims abstract description 14
- 238000001914 filtration Methods 0.000 claims description 111
- 238000012545 processing Methods 0.000 claims description 84
- 238000009499 grossing Methods 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 5
- 239000000203 mixture Substances 0.000 claims description 4
- 238000010008 shearing Methods 0.000 description 81
- 238000012360 testing method Methods 0.000 description 44
- 230000004927 fusion Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000003321 amplification Effects 0.000 description 7
- 238000003199 nucleic acid amplification method Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 208000004350 Strabismus Diseases 0.000 description 5
- 238000009415 formwork Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008602 contraction Effects 0.000 description 3
- 238000012797 qualification Methods 0.000 description 3
- 238000007493 shaping process Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 102000001690 Factor VIII Human genes 0.000 description 1
- 108010054218 Factor VIII Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/403—Edge-driven scaling; Edge-based scaling
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明涉及内插。一种像素内插方法,其中二维数字滤波器被配置为从输入像素的二维阵列内插得出输出像素,该方法包括:检测将要内插的像素位置处的图像特征的方向;将剪切变换应用于数字滤波器和/或输入像素的阵列,以相对于二维滤波器的两个轴中的至少第一轴将滤波器的操作映射到所检测出的图像特征方向;以及应用数字滤波器来获取输出像素。
Description
技术领域
本发明涉及内插(interpolation)。
背景技术
内插配置被用来例如,从图像或者视频处理配置中的输入像素生成输出像素。
图像处理一般至少是二维操作。基本技术包括将用于在水平方向进行缩放的一维(1D)滤波器与用于在竖直方向进行缩放的相应滤波器卷积(convolve),以产生能够利用单个2D滤波器矩阵在两个方向对图像进行滤波和缩放的滤波器。通过对两个正交滤波器的卷积得到的二维滤波器被对准到水平和竖直轴。
已经提出,内插滤波应该被配置为与所检测出的图像特征的方向或角度对准。
一种角度定向滤波技术是对这样的二维滤波器矩阵进行旋转,从而使得该滤波器的主轴对准所检测出的边缘或者图像特征。该原则背后的理论是,沿着图像特征的长度方向对准滤波器的大多数能量。额外的阶段是在垂直于边缘的朝向的方向中增大滤波器的带宽,以保留边缘的锐度。带宽增大的目的在于,进一步增大沿着图像特征线方向的滤波器能量。
尽管这种2D边缘定向滤波器方法可以产生一些好的结果,但是存在基础性的技术困难。旋转的作用在于,带宽在两个方向中被不期望地改变,结果输出像素并非所期望的输出像素。该方法的问题对于非零偏移值(没有与输入或源像素对准的输出像素位置)进一步增加;边缘定向旋转滤波器在被用于具有角度特征的图像时会产生显著的条带型伪像(stripingartefacts)。
本发明的目的在于,提供用于像素内插的改进技术。
发明内容
本发明提供了一种像素内插方法,其中二维数字滤波器被配置为从输入像素的二维阵列内插得出输出像素,该方法包括:检测将要内插的像素位置处的图像特征的方向;将剪切变换应用于数字滤波器和/或输出像素的阵列,以相对于二维滤波器的两个轴中的至少第一轴将滤波器的操作映射到所检测出的图像特征方向;以及应用数字滤波器来获取输出像素。
所以,本发明的实施例不是使用旋转,而是提供了通过剪切滤波器和/或输入数据来对滤波器进行整形的另一种方法。
滤波器操作的剪切(即,剪切滤波器和/或输入数据)可以沿着边缘或者图像特征方向对准滤波器的能量;这使得在滤波器对准边缘时能够更好地控制滤波器的带宽;并且在本发明的实施例中,其不会像旋转法一样引入很多伪像。
本发明的进一步的各个方面和特征在所附权利要求中被限定。
附图说明
结合附图,根据说明性实施例的以下详细描述,本发明的以上和其他目的、特征及优点将是显而易见的,其中:
图1和图2示意性地示出了图像缩放处理;
图3是图像缩放设备的示意性框图;
图4a和图4b示意性地示出了偏差(variance)最小化处理;
图5示意性地示出了方向计算模板;
图6a至图6h示意性地示出了用于角度检测的模板;
图7示意性地示出了一组模板偏移位置;
图8和图9示意性地示出了来自相邻模板的结果的组合;
图10示意性地示出了角度平均处理;
图11示意性地示出了图像角点(corner);
图12示意性地示出了角点软化处理;
图13示意性地示出了角点验证处理中的像素位置;
图14示意性地示出了点估计处理;
图15示意性地示出了角点一致性检验;
图16和图17示意性地示出了Sinc滤波器响应;
图18和图19示意性地示出了旋转后的Sinc滤波器响应;
图20和图21示意性地示出了剪切后的Sinc滤波器响应;
图22和图23示意性地示出了分别使用Sinc和Bicubic滤波器的数据剪切处理;
图24至图29示意性地示出了数据剪切处理的示例;
图30和图31示意性地示出了角度平均处理;
图32示意性地示出了滤波器融合值(filter blend value)生成处理;
图33示意性地示出了确定性值的内插;
图34示意性地示出了像素估计处理;
图35示意性地示出了垂直滤波(perpendicular filtering)处理;
图36和图37示意性地示出了用于滤波的像素值的估计;
图38和图39示意性地示出了垂直滤波处理;
图40和图41示意性地示出了以前提出的滤波配置;
图42和图43示意性地示出了连续滤波操作;
图44示意性地示出了滤波配置的实施例;
图45示意性地示出了电视显示设备;
图46示意性地示出了摄影机;
图47示意性地示出了双三次(Bicubic)内插;以及
图48示意性地示出了双三次样条(Bicubic Spline)内插。
具体实施方式
现在参考附图,图1和图2示意性地示出了应用于源图像10的图像缩放处理。在每种情况中,源图像(输入像素的二维阵列)10被图像缩放设备20处理,以生成由输出像素形成的更大的输出图像30(图1)或者更小的输出图像40(图2)。这里,术语“更大”和“更小”是指各个输出图像中的像素数目,而不是图像被实际显示的格式。所以,例如,如果输入图像具有1920(水平)×1080(竖直)个像素,则更大的输出图像30可能具有2880×1620个像素,并且更小的输出图像40可能具有960×540个像素。显然,这些像素数目只是示例,并且在一般情况下图像缩放器20可以操作以在某个缩放因子范围内对图像进行缩放,其中该缩放因子范围可以包括大于1的缩放因子(用于图像放大)和/或小于1的缩放因子(用于图像尺寸减小)。在本说明中,作为示例,缩放因子将被表达为线性缩放因子,并且将被认为在水平和竖直轴二者中是相同的(水平和竖直是正交方向,并且分别与水平和竖直图像方向有关;一般,在本发明的实施例中将要讨论的两个轴是正交的)。但是,在其他实施例中,针对两个轴的缩放因子可以不同。
这里描述的图像缩放配置使用二维数字内插滤波技术(其中,二维数字滤波器被配置为从输入像素的二维阵列内插得出输出像素)来生成缩放后的输出图像的像素,从而使得每个输出像素是以包括两个或更多个输入像素的群组的算术组合为基础的。这种滤波技术是适当的,因为:(a)当输入图像将被放大时,需要在输入图像中不存在的像素位置处生成新的像素值;(b)如果图像尺寸将被减小,存在相同的情况,因为取决于缩放因子,输出像素位置可能并不完全与输入像素位置对准;(c)即使尺寸减小后的输出图像中的输出像素位置与输入图像位置对准,使用滤波处理而不是简单地丢弃不想要的输入像素可以获取在美学上更令人愉快的结果。
视频缩放是图像缩放技术的一种重要应用。在一个简单的水平,图像缩放设备20可以对形成视频信号的图像序列中的每个图像进行缩放(缩放得更大或者更小),以形成缩放后的视频信号。视频缩放通常被用于不同视频标准(诸如,标准清晰度(SD)视频和所谓的高清晰度(HD)视频)之间的转换、视频特效、视频的精准分析(诸如,在分析与天文观测有关的视频信号或者监视视频信号时)、以及其他目的。图1和图2的设备在被配置为对视频信号的一个或多个连续图像进行操作时可以被认为是视频缩放设备。本领域技术人员将明白,视频缩放设备、方法、软件、计算机程序产品等全部被认为是本发明的实施例,并且被包括在本说明的范围中。特别地,当这里描述的技术涉及图像处理时,将明白的是该技术可以被应用于视频信号的每个连续图像的缩放。
在本说明中,很多技术可以被应用于图像缩放或者视频缩放。在描述仅可以应用于这些技术领域之一或者更适合被用在这些技术领域之一的技术时,该特定的有效性的限制或区域将被指示出来。
图3是诸如图1和图2的设备之类的图像缩放设备的示意性框图。
源图像(即,将要缩放的图像)被作为输入供应给该设备,如图的左侧所示。该设备生成缩放后的输出图像,如图的右侧所示。
源图像被可选的预内插滤波器100处理。预内插滤波器执行诸如图像的软化或者锐化之类的可能需要的带宽调整。滤波器100具有用于水平和竖直方向的单独参数。滤波器是可分离的普通11抽头水平和竖直对称滤波器,其中系数可以完全由用户限定。滤波器的输出被传递给内插器130。
图像内插的传统方法一般使用两个一维滤波器分别在水平和竖直方向对图像进行缩放。这种滤波器的示例是多相Sinc滤波器。该方法对水平和竖直线执行地非常好,但是对角线不能被精确地求解并且画面质量会受到影响。本实施例涉及使用二维方法来“剪切(shear)”数据的算法。换言之,本实施例将剪切变换应用于二维数字滤波器和/或输入像素的阵列,以在两个轴中的至少一个轴中将滤波器的操作映射(或者对准)到所检测出的图像特征方向(诸如,通过对边缘特征进行整形从而使得该边缘特征对准水平或者竖直轴但是(在本发明的实施例中)保持两个轴中的另一个轴中的滤波器操作(至少在其操作方向方面)不变)。一旦数据(或者内插滤波器)被剪切了所需要的数量,则可以通过应用数字内插滤波器对数据进行内插来获得输出像素。当剪切结果不能用时,所需要的内插值是使用标准Bicubic内插方法产生的。这种组合算法的实施例已经在经验测试中被示出为显著提高了画面质量。
所以,内插滤波处理的特征在于,沿着图像特征(诸如,线或者边缘)的方向有效地进行内插。为此,图像中存在的特征的角度被内插角度确定单元110找出,其中内插角度确定单元110检测将要内插的像素位置处的图像特征的方向。对于图像特征,角度和角度的确定性的度量(换言之,所检测出的图像特征方向中的置信度)是使用基于统计的方法或者其他检验(其细节在下面提供)计算得出的。
一旦角度被确定,限定角度的信息被传递给剪切内插器140,其中,该剪切内插器140还从滤波器100接收滤波后的源图像数据,并且基于沿内插角度确定单元110检测出的图像特征方向的内插生成输出像素。滤波后的源图像数据还被传递给非剪切内插器150,其中该非剪切内插器150通过水平/竖直内插法(即,不参考图像特征方向)生成输出像素。
限定当前检测出的图像特征角度中的确定性的度量的信息被传递给控制器160。控制器160控制混合器170的操作,其中混合器170混合剪切内插器140和非剪切内插器150的输出或者(作为混合的极端示例)在剪切内插器140和非剪切内插器150的输出之间进行选择,以提供输出图像的像素。实际上,输出像素是根据所检测出的图像特征方向中的所检测出的置信度通过应用和/或不应用剪切变换有选择地生成的。更具体地,输出像素的第一版本是通过应用剪切变换生成的;输出像素的第二版本是不应用剪切变换生成的;并且第一和第二版本被根据取决于所检测出的置信度的比率混合从而生成输出像素。在本发明的实施例中,混合操作是所检测出的图像特征方向中的置信度越高,从第一版本得出的输出像素的比例越高的混合操作。
图3的配置可以被实现在诸如一个或多个专用集成电路、一个或多个现场可编程门阵列、在适当的软件、固件或者它们二者的控制下操作的通用计算机、或者它们的组合之类的硬件、可编程或者传统硬件中。当软件或者固件被包括在本发明的实施例的实施方式中时,将明白的是这样的软件或固件、以及诸如存储介质(例如,光盘)或者网络连接(例如,互联网链接)(软件或固件通过它们被提供)之类的提供介质被认为是本发明的实施例。
将理解的是,在具体功能在下面被描述的情况中,执行这种功能的单元可以被作为图3中的相应单元提供。
内插角度确定
现在将描述内插角度确定单元110的操作。单元110检测与源图像的每个像素相关联的内插角度,并且进行一些质量检验以检测所检测出的角度是否是用在内插中的可靠角度。
特别地,单元110生成内插角度(θ)和确定性度量(certaintyFactor)。该可变的certaintyFactor提供关于该特征与所找出的角度(θ)的匹配程度的置信等级,并且稍后被用在计算用于混合器170的混合值的处理中。在使用所检测出的角度进行任何滤波处理之前进行内插角度确定。
角度确定模块根据基于通过偏差的最小化找出用于内插的最佳方向的技术进行操作。
可以(例如)对灰度图像或者单独对每个GBR(绿、蓝、红)分量进行角度确定处理。如果使用后者,则GBR结果可以被结合在一起(例如,根据用在生成亮度(Y)值的处理中的G、B、和R的标准比率)以生成单个输出结果。在一个实施例中,单独的GBR结果可以被结合在一起,以优先得出G结果,然后得出R结果,最后得出B结果。
为了避免在低画面细节区域中找出不正确的角度,如果经受测试的当前像素周围的3×3邻域中的像素的偏差(或者标准偏离)在可编程的阈值之下,则角度的确定性等级被设置为指示零确定性。该3×3邻域中的偏差还被用作GBR到灰度转换处理中的图像活动性度量。
可以节省硬件或者处理需求的一种替代的图像活动性度量是使用相对于3×3块上的平均像素值计算得出的绝对差之和(所检测出的图像活动性代表群组中的像素之间的像素值之差,所以较大的像素差代表较大的图像活动性)。
在每种情况中,相对于将要内插的像素位置周围的输入像素的群组,分别针对三种颜色分量G、B、R中的每种颜色分量得出图像活动性度量。
将图像转换为灰度(对于单元110来说,仅需要对一个通道而不是三个单独通道进行角度查找处理)的好处在于硬件需求的潜在降低。可以使用以下公式将GBR数据转换为灰度:
Y=gCoeff*G+bCoeff*B+rCoeff*R
其中,gCoeff和bCoeff、rCoeff是标准颜色转换系数(即,用于从G、B和R值生成标准Y值的系数,一个示例是Y=0.2126R+0.7152G+0.0722B)。但是,以这种方式使用固定的系数,GBR颜色空间中的两种非常不同的颜色会产生相同的灰度颜色,所以在作为结果的灰度图像中可能会无法检测到特定的图像特征。因此,一种自适应地改变颜色系数的方法被用在本发明的实施例中,以克服这个问题。
在这种自适应技术中,为了捕捉图像中的细节,当图像中的来自特定分量的细节明显大于其他颜色分量中的细节时,该特定颜色分量的权重增大。所以,通过根据所检测出的图像活动性以相对比例将相应的输入像素的颜色分量结合在一起,得出了单色测试像素。如上所述,细节数量是使用图像活动性测量出来的。使用图像活动性来调整默认的颜色转换系数,如下所示:
gCoeff′=gCoeff+α×ImageActivity(绿色)
bCoeff′=bCoeff+β×ImageActivity(蓝色)
rCoeff′=rCoeff+γ×ImageActivity(红色)
其中,α、β、γ是可编程的参数,Y是作为该部分处理的输出并且被单元110用于角度确定(即,用于将要内插的像素位置周围的单色测试像素群组中的图像特征方向的检测)的灰度像素。方向检测可以包括检测该单色测试像素群组中的方向,其中沿着该方向的像素展示出了像素值的最低变化(诸如,标准偏离、偏差、或者从平均得出的绝对差值之和)。该处理的目的在于,提高将在标准转换方法期间被隐藏的细节等级。更一般地,该配置的目的在于,改变单色测试像素中的颜色分量的相对比例从而使得具有较高图像活动性的颜色分量通常对单色测试像素的贡献比例较高(例如,通过根据检测出的与每种颜色分量相关的图像活动性来修改限定每种颜色分量对于单色像素的贡献的一组系数)。
下一阶段的处理的目的在于,通过确定具有最低变化的方向来找出用于内插的最佳角度。这里,术语“最低”和(其他地方用到的)“最小化”仅被用来指示最低变化是从所测试的变化值中检测得出的。
图4a示意性地示出了源图像的5×5像素区域,其中经受测试的当前像素位置200在该5×5区域的中心。其目的在于检测与像素200相关的图像特征方向。黑线(作为其角度应该被检测出来的图像特征的示例)从该区域的左上方延伸到该区域的右下方。使用图4a的符号,该图像特征的角度被认为是45°,其中0°被认为是水平的,并且角度被认为是从水平方向开始以顺时针方向增大。
图4a是其中的虚线210、220、230和240指示可能的内插角度或搜索方向的示例的简要示例。图4b中示出了位于每个特定的可能内插方向中的5个像素,其中图4b的每行代表沿着该可能方向的经过像素位置200的5个像素。
通过考虑每个搜索方向的像素偏差可以清楚地看出,45°的可能内插方向(沿着线210)包含具有最低偏差的像素。这个简单示例已经示出,特定特征的方向可以由具有最低像素变化的方向限定。
一般,沿着与搜索或者测试方向有关的直线的像素值的变化可以使用搜索方向中的点的偏差(或者标准偏离)来测量。为了获得最佳角度,可以使用对于(本系统的分辨率限制内的)每个角度的穷尽搜索。但是,该处理将需要大量硬件或者其他处理资源。所以,在本发明的实施例中,在本发明的分辨率限制内,用于偏差的一组数学表达式可以被计算出来并被最小化以找出所需要的方向。
在本发明的实施例中,对于最小偏差的搜索是在5×5像素邻域上计算得出的,其中其角度正被计算的像素位于该像素邻域的中心。所使用的配置意味着,不可能仅使用一个等式搜索每个方向。相反,所有方向的各个子集被检查,然后最小偏差被从这些结果中找出。每个方向子集在下面被称为“模板”。为了测试每个可能的方向,总共需要八个模板。一个特定的模板在图5中被示意性示出。
图5示出了源(输入图像、或者滤波后的输入图像)像素的5×5阵列,其中,角度是从该阵列确定出来的,并且经受测试的当前像素200(在图5中被标记为像素e)位于该阵列的中心。每个像素由一个正方形指示。像素a至i代表该模板需要的源像素。该特定的模板被用来找出介于0°到26°之间的最佳角度;其他七个模板在其他角度集合之间进行搜索,如图6a至图6h所示。图5的特定示例对应于图6h所示的模板。在图6a至图6h中所示的每个模板中,利用该模板测试的角度范围被示出为被标记为和的两条直线的锐角交叉之间(包括该两条直线)的这些角度。
所以,的值指示特定的搜索(或者可能的内插)方向。示例搜索方向在图5中由虚搜索线250示出,其中沿着该搜索线规律地间隔开的点由符号“x”指示,并且被标记为j、k、l、m和n(注意,由于搜索线通过像素e的中心,所以“x”被示出为在指示该像素的字母“e”上面)。对于大多数搜索方向,点j、k、m和n并不精确地位于源像素上,所以它们的值是使用相邻像素值确定的。特别地,这些点的值是通过它们上面和下面(或者对于其他模板,左面和右面)的像素的线性内插找出的。
j、k、l、m和n中产生最低变化的角度被认为是使用该模板进行测试的范围内的角度中的用于内插的最佳角度。然后,比较针对每个模板获得的各个最佳角度,并且在最佳角度的集合中,具有最低偏差的一个角度被认为是总体的最佳角度,即用作内插角度确定单元的输出的角度。
尽管可以按照完全可用的精度穷尽地搜索每个模板,但是作为替代(为了节省处理资源)可以首先进行近似搜索以指示出这八个模板中包含最佳角度的一个模板。近似搜索可以包括以相对于可用于更彻底的方法的较低的计算精度和/或较粗的角度分辨率进行操作。一旦包含最佳角度的模板被识别出来,更彻底的方法可以被应用于该模板以找出更精确的角度。这种二阶段方法包括检测从第一组方向中选择的方向(其中,沿着该方向的像素展现出了最低的像素值变化);以及通过检测从所检测出的第一方向周围的第二组方向中选择的方向来检测图像特征方向,其中该第二组方向具有比第一组方向更高的分辨率,并且沿着该被选择的方向的像素展现出了最低的像素值变化。
现在将描述用于这种近似搜索的技术。
在一个示例中,作为用于找出最佳模板的近似搜索,通过每个模板的中间值处的测试角度被用来找出测试线上的像素偏差。该测试角度提供了该模板可以产生的偏差值的近似。为了减轻硬件需求,只有中心的三个像素(k,l和m,其中无论如何l都等于e)可以被用于这种偏差计算。使用像素值k、l和m可以被找出。
l=e
然后,这三个像素的偏差可以被计算出来。为了进一步减轻硬件需求,对于标准偏离的近似可以被计算为绝对差值(SAD)之和而不是完整的偏差表达式:
注意,对于真正的标准偏离,以上示出的值应该除以√3。但是,由于该测试用于模板提供表达式的最小值的情形,所以常数因子√3可以被忽略。
来自由八个模板得出的八个近似值的SAD值或者最小标准偏离指示出了包含最佳方向的模板。现在对该单个模板进行更精确的计算。现在将描述精确的搜索处理。
为了找出被识别用于进一步检查的单个模板的最佳角度,对应于最小偏差的角度应该被找出来。这可以通过对用于偏差的表达式进行最小化来得出。
l=e
这些表达式的微分为:
为了检测混淆线(aliased line)或者角度的不正确检测,在该阶段,使用作为上述的近似搜索的一部分得出的8个模板的SAD值来处理多次检验。
检验1:
多重极小值(multiple minima)的存在被检测出来。如果除了直接与最小SAD值相邻的两个模板之外的其他模板中的任一模板具有等于最小SAD值的SAD,则数据被认为是被混淆,所以该角度不能用。针对该像素的certaintyFactor被设置为0(完全不确定)。
检验2:
不应该在低画面细节的区域中检测角度。如果针对该像素的图像活动性(如以上得出的)在可编程的阈值之下,则通过将certaintyFactor设置为0而否决该角度。
检验3:
对于良好限定的线,垂至于最佳方向的SAD(perpSAD)应该显著小于最小SAD(minSAD)。当垂直SAD接近最小SAD值时,如果平滑消退配置被使用则置信值certaintyFactor应该被越来越多地处置;或者如果平滑消退配置没有被使用,则应该完全否决该角度(通过将certaintyFactor设置为0)。垂直模板被限定为与最小模板相距4个模板的模板,其中每个映射在下表中被示出:
然后,certaintyFactor被设置为下面的伪代码,该伪代码包含了所有的三种以上检验:
其中perpFade、imageActivityThreshold、templateDiffThresh、perpTemplateTolerance、和bSmoothFadingRequired是可编程的常数,并且certaintyFactor在0(没有确定性)到255(完全的确定性)之间变化。
为了增加角度查找方法的精确度,在本发明的实施例中,来自相邻模板的结果可以被结合在一起,以提高识别出正确角度的可能性。来自图像中的相互偏移不同偏移量的模板(基于各个不同中心像素的模板)的结果被结合在一起,以形成有关将要使用的最佳角度的复合决定;该技术背后的理念是,如果角度检测可靠,则偏移模板原则上应该产生相似的角度。
对于初始的近似最佳模板搜索,来自当前模板的上方一个像素、下方一个像素、左方一个像素、和右方一个像素的相同模板偏移的标准偏离被添加到当前像素位置的模板结果。相对于八个模板中的每个模板,得出五个值的和。然后找出指示用于更精确的测试的最佳模板的模板的最小组合标准偏离(或者如上所述的对于标准偏离的近似)。偏移位置在下面被示出在图7中。阴影像素是当前源像素,同时虚线框300至340代表将被用在模板计算中的像素:
框300:没有偏移
框310:向上偏移一个像素
框320:向左偏移一个像素
框330:向右偏移一个像素
框340:向下偏移一个像素
一旦最佳模板被识别出来,更精确的方法可以被用来找出角度。另外,相邻模板被自适应地结合在一起,以生成最佳的可能结果。在水平方向偏移的相邻模板(诸如,图6a、6b、6g和6h的模板所指示的模板)被相对于水平线结合在一起(如示出基于框320、300和330所指示的模板位置处的求和结果的角度查找处理的图8中所示)。
num=[b-a]×[8a-2c-2e-2g-2i]+
[d-c]×[4c-a-e-g-i]+
[f-g]×[4g-a-c-e-i]+
[h-i]×[8i-2a-2c-2e-2g]
den=[b-a]×[8(b-a)-2(d-c)-2(f-g)-4(h-i)]+
[d-c]×[2(d-c)-(f-g)-2(h-i)]+
[f-g]×[2(f-g)-2(h-i)]+
[h-i]×[8(h-i)]
针对每个像素位置的每个模板计算num值和den值(如图8所示,针对最佳模板)。然后,针对三个偏移模板中的每一个对这些num和den值求和,以生成和值numSum和denSum。这两个和值随后被用来计算的值:
对于更加竖直的直线(诸如图6c值6f中所示的模板所找出的哪些直线),来自竖直偏移模板的结果被结合在一起。它们在图9中被示出,图9示出了基于框310、300和340所指示的三个模板位置的结果的组合的角度查找处理。与参考图8所描述的过程相同的过程然后被用来查找角度。
如果(在以上所述的相邻模板机制中)存在具有相似的标准偏离的两个相邻模板,并且值相互足够接近,则比较并结合角度检测的结果。这可以具有相邻像素位置之间的平滑过渡的优点。来自每个模板的值被平均化,以形成更新的值。为了执行这个测试,最小的标准偏离必须为相邻模板的标准偏离的某个百分比(例如,被表达为模板300的最小标准偏离的一个比例),其中该百分比是可编程的值。第二,用于模板300和相邻模板二者的必须在给定的可编程的容许值内(被表达为某个百分比或者绝对差)。
实际上,“相邻模板”被作为最佳模板和以上计算出的值的函数而选择。例如,如果最佳模板是图6g的模板,并且则相邻模板是图6h的模板。更一般地,相邻模板被选为其还潜在地产生被计算出的最佳角度的模板。然后,使用以前所述的相同过程来计算用于相邻模板的并且将该与最佳模板的结果相比较。
所以例如,如果图6g被认为是最佳模板则相邻模板(图6h)随后被计算出来。如果最佳模板和相邻模板的SAD紧密匹配,则相邻模板也产生(或者在0.9的容许值内),这可以指示图像特征实际位于两个模板之间,所以这些值被结合起来以实际产生
在本实施例中,内插器实际使用内插角的正切值(tan),所以不需要计算出实际的角度θ。换言之,可以在内插处理期间直接使用(=2.tan(模板的范围中的角度)),注意该模板描述的角度位于哪个象限。但是,为了便于讨论,该讨论仍然是指角度意义上的内插角而不是角的正切值。
多次检验可以帮助提供相邻角度和不确定性区域之间的平滑过渡。
平均角度算法的目的在于,平滑相邻值之间的角度以提供一致的角度。在该测试中比较以下三个角度的总和:相对于经受测试的当前像素位置得出的角度、相对于两个相邻像素位置得出的角度。
可以根据相对于当前像素位置找出的近似角度来选择相邻像素位置。所以,如果发现用于当前像素位置的“最佳”模板为图6a或者6h的模板(其代表接近水平的方向),则该测试可以被应用于两个水平相邻的像素。对于图6b和图6c中的模板,可以使用当前位置的坐下方和右上方的像素。对于图6d和图6e中的模板,可以使用当前位置上方和下方的像素位置。对于图6f和图6g中的模板,可以使用当前位置右下方和左上方的像素。但是,在本发明的实施例中,该测试中仅使用了左和右水平邻居。
该处理(图10的示意性流程图中所示)相对于当前角度B的邻居A和C来测试该角度B,并且相应地对它们进行平均。只有置信角度(confident angle)被一起平均:如果置信等级(certaintyFactor)在某个阈值之下,则当前角度不被改变。在每个阶段,应该针对角度缠绕(anglewrap around)检验每个角度,例如,-89°和89°的角度应该被平均从而形成-90°(或者90°)而不是0°。可以使用参数来使能平均角度算法,并且用于确定角度是否相似的阈值是可编程的。
参考图10,如果(在步骤400)发现角度A和B非常相似,但是角度B和C不同,则在步骤410,对角度A和B进行平均以形成更新后的内插角度,并且针对当前像素A的处理结束。如果在步骤420,角度C和B非常相似,但是角度B和A不同,则在步骤430对角度C和B进行平均。如果在步骤440,角度C和A非常相似,但是角度B和C不同,则在步骤450对角度C和A进行平均。如果在步骤460,角度A和B、以及B和C非常相似,则在步骤470对角度A、B和C进行平均。在步骤480,如果以上条件中没有一个条件适用,则角度B不变。在该处理中,术语“非常相似”是指角度在第一阈值数量(例如,5°)内相同;术语“相似”是指角度在第二阈值数量(例如,7°)内相同;以及术语“不同”是指角度相差至少第三阈值数量(例如,5°)。但是,第一和第三阈值数量不必不同;它们可以是相同的数量。
“软化角度”算法有助于确保3x3像素块中的周围邻域角度全部足够相似。当前角度和八个周围角度之间的最大差值被找出,然后根据以下函数对certaintyFactor进行处理:
certaintyFactor=certaintyFactor×(1.0-(biggestAngularDiff/90.0))
例如,如果发现最大角度差(biggestangularDiff,在该示例中被表达为角度上的绝对差值)为45°,则certaintyFactor将减半。该检验将在其中角度迅速改变的图像区域中创建不确定性的环形或者环绕区域(由减小的certaintyFactor值表示)。该函数可以帮助具有非常不同的角度的特征在内插处理期间相互渗透。在一个实施例中,该等式的等同物使用与有关的正切符号而不是角度本身。
作为进一步的细化,具有低certaintyFactor(阈值数量以下)的角度没有被包括在软化角度处理中。这是为了避免这些角度(已经被检测出不太可靠)影响其他角度的certaintyFactor。
角点检测函数的目的在于检测角点从而避免不正确的方向中的内插。图像的示例部分在图11中被示意性地示出。
在该示例中,发现该特征的最小偏差位于45°,如线490所示。但是,置信角度不能被提供用于该特定特征,因为(在该示例中)该特征的方向在该点并不明确。所以,不允许使用所检测出的角度。
角点检测函数在针对当前像素找出的方向(由线490指示的方向)中搜索两个相邻像素,以确保至少一个邻居与当前角度一致。如果两个测试邻居都不一致,则该像素被认为是角点,并且其certaintyFactor被处理(如果不是零,则处理得更接近0)。
根据其最佳角度已经被确定出来的模板来确定用在一致性搜索中得两个相邻像素。例如,如果发现θ为40°,则其对应于图6g的模板。所需要的两个相邻像素语义上相对于角度平均处理描述的一样。相对于当前像素,分别检验这两个相邻像素。
首先,各个角度被检验:两个邻居之间(当前像素和经受测试的邻居之间)的角度差必须在指定阈值之下。
其次,该邻居的certaintyFactor被检验:这是为了确保当前像素正被与有效结果比较。
如果相对于两个邻居中的一者或者二者满足角度和确定性二者的检验,则该角度被认为是好的。针对两个相邻像素重复该处理,并且如果两个测试都被认为是“坏的”,则当前角度不与任意一个邻居已知,所以其被归类为角点(所以certaintyFactor被如上所述地处理)。
进一步的过程的目的在于,确保在内插处理期间角点不会产生任何欺骗性效果。
“软化角点”算法的目的在于,确保由所检测出的角点处的内插的不明确导致的伪像被移除。这是通过处理角点处的任何像素的certaintyFactor以及与任何角点相邻的任何像素实现的。
对于每个像素,3x3邻域被搜索。如果在该邻域中没有角点被检测到,则当前像素的certaintyFactor不变,但是如果在3x3块中找到了角点,则下面的处置处理被执行。
如果在3x3域中检测到了角点,则该域中的certaintyFactor值被比较,并且certaintyFactor之间的最大梯度被实施,并且不被准许超过可编程的值。
梯度被如下计算出来:
thisGrad=(dx+dy)×allowedGrad+thisCertaintyFactor
其中,allowedGrad是可编程的最大允许梯度,thisCertiantyFactor是当前被测试的相邻certaintyFactor,并且dx和dy是相对于其certaintyFactor正被测试的像素的中心的像素位置偏移的幅度。如果当前测试的邻居值处存在角点,则thisCertiantyFactor被设置为零,以向内插器指示该角度不能信任并且不应该被使用。
邻域中的梯度值被记录下来,并且最小的thisGrad指示用于当前像素的新的certaintyfactor,如图12中所示。
在图12的示例中,当围绕中心像素500进行分析时,在其3x3邻域(由“1”示出)中存在角点。当测试左上角的相邻像素(指示其具有角点的像素)时,找出了最小的grad值。对于这种情况,dx=1,dy=1,thisCertaintyFactor被设置为0而不是0.8,因为在这个示例中存在角点并且allowedGrad已经被设置为0.15。所以,thisGrad被计算为(1+1)*0.15+0.0=0.30,并且certaintyFactor被更新为thisGrad和certaintyFactor中的最小值。该处理将将防止内插器对不一致的角度进行处理,并且将允许这些不一致的结果和相邻值之间的逐渐消退。
现在将描述角点一致性检验。
如果在内插阶段不正确的角度被使用,则伪像将被添加到作为结果的图像中。为了降低这种情况的可能性,角点检测和其他算法被用来检验该结果。但是,还存在不理想的结果被获取的情况。
角点一致性检验的目的在于,进一步减小伪像的可能性。根据系统配置,在所有GBR通道、或者单个绿色通道、或者混合灰度通道上进行该检验。角点一致性检验包括从分别基于相应的像素位置的两个以上输入像素群组得出检验像素值,使用域这些像素位置相关联的所检测出的方向;比较针对每个群组得出的检验像素的值;以及改变与这些输入像素相关联的置信度,从而使得检验像素值中的较大的偏差与较低的置信度相关联。
在角点检验期间,通过估计相对于每个像素的±1/2,±1/2像素位置处的子像素位置的值,轮流测试每个像素,如图13中所示(在图13中,测试点被示出为圆圈510、520、530、540,并且当前源像素位置被示出为正方形550)。
在内插期间(如下所述),输出像素是使用最近的源像素周围的数据形成的。如果画面中存在连续性,则一个源像素周围的内插像素必须与边沿处的相邻像素周围的内插像素相似。
所以,1/2,1/2点周围的四个源像素在该1/2,1/2点处必需产生相似的估计;如果它们没有产生相似的估计,则至少一个源像素被与错误的内插方向相关联。所以,可以根据每个角点处的4个值的一致程度来控制certaintyFactor。注意,为了节省硬件或者其他处理资源,在该处理期间仅使用线性内插。
当计算每个点的估计时,考虑了形成内插阶段(下面描述)的一部分的滤波处理。所以,必需使用校正滤波器对总共5个像素进行内插和滤波。
在图14中,将使用在当前源像素找出的图像特征580的方向570来计算1/2,-1/2(圆圈560)的值。为了计算位置560处的滤波值,必需找出一组5个值,这些值是点560、590、600、610、620处的未经滤波的值。这五个值被传递通过下面描述的5抽头的中通/低通滤波器,以产生位置560处的修改值。
为了计算5个未经滤波的值,需要计算点630、640、650、660、670处的值。这是通过它们上方和下方(或者根据线的角度,左方和右方)的像素的线性内插执行的。由于线性内插被使用,所以五个值560、590、600、610、620只是每侧上的内插点处的两个值的平均。
一旦所需要的角点像素被找出,则一致性检验被执行,以确保周围像素产生了相似的值。考虑图15中所示的示例。
像素e700代表当前源值,e±1/2,±1/2是利用像素e作为中心像素得出的滤波后的角点像素。每个角点像素被与使用其他源像素作为中心像素获得的相应角点像素相比较。例如,e1/2,1/2被依次与f-1/2,1/2和i-1/2,-1/2相比较;对于一致性边界,这些角点中的至少两个角点必需与e1/2,1/2相似,它们的绝对差值必需较小(在阈值以下)。差值被如下计算:
difference_ef=Min(|e1/2,1/2-f-1/2,1/2|-threshold,0)
difference_eh=Min(|e1/2,1/2-h1/2,-1/2|-threshold,0)
difference_ei=Min(|e1/2,1/2-i-1/2,-1/2|-threshold,0)
其中,阈值被如下计算:
MaxError=Max(|e1/2,1/2-e-1/2.1/2|,|e1/2,1/2-e1/2.-1/2|)
MinError=Min(|e1/2,1/2-e-1/2.1/2|,|e1/2,1/2-e1/2.-1/2|)
threshold=α×MinError+(1-α)×MaxError
通过找出相邻角点值的差值计算出误差值,然后通过对最小差值和最大差值进行线性内插计算出阈值,其中α是可编程的阈值。
三个差值中最小的两个被加在一起。针对周围的四个角点值中的每个角点值重复该处理。
如果角点与其邻居一致,则总计的差值将等于0,所以不需要处置。但是,如果角点值不一致(这指示内插期间可能出现了不连续性),则总计的差值将比较高,所以像素的certaintyFactor应该被相应地处置。来自四个角点值的最大总计差值(maxSummedDifference)被用来处置certaintyFactor:
penalty=Max(maxSummedDifference,512)
其中,certaintyFactor’是certaintyFactor的修改值。
内插
使用单元110计算出的certaintyFactor和角度θ,内插器130生成输出像素。与每个源像素相关联的certaintyFactor向内插器指示剪切内插器140的结果是否可以被用于输出。如果剪切值不能被使用,则内插器必需使用利用非剪切内插器150产生的像素。混合器控制值由控制器160针对每个输出像素生成,并且向混合器170指示是输出剪切内插像素,非剪切内插像素,还是它们二者的权重组合。
现在将描述剪切内插器和非剪切内插器。
剪切内插
当前配置使用剪切滤波器来执行内插。为了说明剪切滤波器的操作,以前提出的方式将首先被简要讨论。
使用以前提出的二维(2D)Sinc滤波器的滤波处理包括:将用于在水平方向进行缩放的一维(1D)滤波器和用于在竖直方向进行缩放的相应滤波器缠绕在一起,以产生能够利用单个2D滤波器矩阵在两个方向对图像进行滤波和缩放的滤波器。通过缠绕两个正交滤波器得到的二维滤波器(在该阶段)被对准到水平和竖直轴。
图16和图17提供了这种2D Sinc滤波器的示意图。图16是代表滤波器系数的3D投射,其中x轴(该页上的水平轴)和y轴(该页上的倾斜轴)代表图中心的具有原点(0,0)的图像平面中的空间坐标,并且z轴(该页上的竖直轴)代表空间位置处的滤波器系数的幅度。滤波器系数在原点处具有峰值幅度。以代表不同滤波器系数幅度的频带的不同阴影程度示出了图16。该阴影表示被带到了提供沿着z轴看x-y平面的视图的图17,并且将被称为滤波器系数的开销视图。图16中所示的系数中的峰值(z方向的高点)对应于图17的开销视图中的较深区域。
一种边缘定向Sinc滤波技术是旋转该二维滤波器矩阵,从而使得滤波器的主轴被对准到所检测出的边缘或者图像特征。该原则背后的理论是,沿着图像特征的长度方向对准滤波器的大多数能量。附加阶段是为了保留边缘的锐度,在垂至于边缘的方位的方向中增大滤波器的带宽。带宽增加的目的是,进一步增加滤波器沿着图像特征线的能量。
尽管该2D边缘定向Sinc滤波器方法可以产生一些好结果,但是存在算法方面的基础性困难。考虑对取决于具有45°定向的特征的水平和竖直两个方向的零偏移处的像素进行内插(完全对准源像素)。以上描述的Sinc滤波器旋转方法将产生被对准到图像中的该特征的滤波器。
图18和19示意性地示出了被旋转45°的Sinc滤波器的示例,其中图18和19使用分别与图16和17相类似的阴影符号。图18是旋转后的滤波器的3D表示,图19是滤波器的开销视图。
从非旋转Sinc算法产生的滤波器将产生二维脉冲响应。所以,内插器将返回源像素。
但是由于滤波器现在已经被旋转,所以滤波器零点并没有对准源数据,进而使得滤波器并没有返回源像素。其作用在于,带宽在两个方向被不期望的改变,从而使得输出像素不是所预望的输出像素。这种方法的问题对于非零偏移值(没有与源像素对准的输出像素位置)进一步增加;边缘定向旋转滤波器在被用于具有角度特征的图像时可以产生显著的条带状伪像。
所以,不使用旋转,本实施例提供了通过剪切滤波器来对滤波器进行整形的另一种方法。
被剪切45°的Sinc滤波器的示例在图20和图21中被示意性地示出,其中图20和图21使用分别与图16和图17相似的阴影符号。图20是旋转后的滤波器的3D表示,图21是滤波器的开销视图。这里,剪切变换被根据所检测出的图像特征方向应用于二维数字滤波器的滤波器系数,以将这些系数映射到二维域中的不同的各个位置。
一般,剪切可以被认为是特定类型的线性映射。其作用在于保持一个轴上的所有点固定,并且其他点被平行于该轴移动与这些点和该轴的垂直距离成比例的距离。
剪切操作的一般观点是,未剪切数据中的坐标(x,y)被映射到剪切数据中的坐标(x’,y’),其中(x’,y’)=(x,y+mx)。在图20和图21中示意性地示出的示例中,m=1代表45°的剪切,所以(x,y)映射到(x,x+y)。
滤波器的剪切将沿着边缘来对准滤波器的能量;这使得在滤波器对准到边缘时能够实现对于滤波器的更好的带宽控制,并且将不会像像旋转方法一样引入很多伪像。
一种替代方法(在滤波器被应用于数据以获取输出像素之前,对滤波器进行剪切)是,替代地对数据进行剪切,然后应用数字滤波器(于剪切数据)以获取输出像素。这两种方法应该产生相似的结果,但是后一种方法还允许非基于滤波器的技术(诸如,Bicubic内插)被用于剪切数据。原则上,剪切操作可以被应用于数据和滤波器二者,以给出作为组合效果的所需数量的剪切。
如下所述的对数据进行剪切可以包括:相对于第一轴对输入像素群组进行滤波(这些群组沿着所检测出的图像特征方向被间隔开),以生成各个中间像素值;以及相对于另一轴对中间像素值进行滤波,以生成输出像素。
Sinc剪切
Sinc内插器可以被用来通过控制相位来对数据进行剪切。例如,图22示出了一个像素宽度的45°线(由黑色像素710形成)。图上的椭圆圈像素720指示将要内插的像素。
可以通过对各种像素偏移位置处的数据进行滤波来对数据进行剪切。竖直Sinc滤波器(被示意性地示出为曲线730,其中该曲线的尖峰740指示滤波器的中心)根据特定点相对于该条线的位置而被集中在不同点上(具有子像素精度)。图中所示的曲线730指示滤波器将被放置在其处的点。通过在不同的位置对Sinc滤波器进行偏移,可以对数据进行实质性的剪切,从而使得相应的剪切源像素750在该线上的每个相应源像素的水平位置处被生成。这些中间剪切像素750然后可以被水平Sinc滤波器内插,以形成所需要的像素720,如图22中的附图的底部所示。
Bicubic剪切
可以使用Bicubic内插来代替Sinc滤波器。这包括:将Bicubic多项式拟合到剪切方向中的包括四个最接近的像素的一组像素,然后将Bicubic多项式拟合到四个剪切值。该处理示意性地在图23中示出,其中图23与图22非常相似,除了用曲线730来代表Sinc滤波器并且Bicubic多项式被示意性地用曲线760代表以外。
Bicubic Spline剪切
也可以使用Bicubic Spline内插器替代使用标准双三次内插器来执行剪切。这具有在像素边界上更加连续的优点。由于Bicubic Spline和Bicubic内插器非常相似,所以可以通过共享资源以最小的开销在硬件中实现这两种方法。
剪切的角度
为了对数据进行剪切,特征的角度需要被识别出来。这是使用上述的角度确定技术找出的。
图24示意性地示出了图像区域中的26°线。
像素800是中心源像素,并且圆圈810代表将要内插的像素。一般,被应用于源像素的正方形表示的阴影代表像素的颜色或者亮度,所以图24中所示的图像特征是从左上方到右下方的暗线。
在一个示例中,数据首先在水平方向被剪切,从而使得该线被对准到竖直轴。水平剪切处理在图25中示出。
在图25中,数据在水平方向被剪切,从而使得对应于该特征的上方和下方行中的像素现在被竖直排列在一起。图中的框820指示使用Bicubic内插执行水平剪切从而生成各个竖直方向间隔开但是在水平方向被排列在一起的剪切像素830所需要的像素。剪切的结果在图25的底部示出。沿着该行进行剪切,以找出随后可以被用来在竖直方向内插得出所需要的位置处的新像素810的四个剪切像素830。
用于阴影表示的水平排列行的水平方向的剪切产生了对于连续长线的良好结果,但是对于较小的特征,该方向的剪切潜在地存在危害并且会产生一些伪像。当角度变得更窄时,执行剪切需要更多的像素。对于大约5°的线,可能需要多达18个源像素的范围。这在图26中所示的剪切中示出,其中图26使用与图25相同的符号,但是代表相对于水平方向大于5°的位置的线特征。执行水平剪切所需的水平范围的像素被示意性地示出为区域840。在理论上,当线特征的角度接近水平时,需要无限数目的像素。如果图像特征仅在长度上很小,则可能会产生不正确的结果。所以,更安全的方法是对于较浅的水平线在竖直方向进行剪切,如图27中示意性地示出。
另外,图27使用与图25相似的符号,除了框850代表执行竖直剪切处理所需的像素范围以外。然后,剪切像素830’在水平方向被内插,以生成所需要的输出像素810。
因此,根据所检测出的图像特征方向来选择两个轴中的被用作所执行的剪切操作所针对的轴的一个轴。特别地,内插器130可操作用于检测两个轴中的哪个轴在角度上最接近所检测出的图像特征方向,并且通过剪切技术选择两个轴中的另一个轴进行滤波器操作的映射。
尽管剪切像素非常接近水平剪切的理想情况,但是非理想的竖直方向中的剪切可能会在剪切像素的输出中产生一些振荡。可以使用平滑滤波器有选择地过滤掉这些振荡,该操作的细节将在下面说明。
因此,对于具有被发现处于0到±45°之间的角度θ的特征,数据在竖直方向被剪切,并且剪切的角度被设置为由角度确定单元所确定的角度。如果发现该角度在±45°到±90°之间,则数据在水平方向被剪切,然后剪切的角度被设置为90°-θ。例如,如果角度确定阶段所指示的角度为85°,则数据应该在水平方向被剪切5°。剪切所需要的角度将被称为θs。当θ等于45°时,做出任意选择从而使得数据被以45°的θs在竖直方向剪切。
对数据进行剪切
一旦θs和剪切方向(水平或竖直)被确定,则数据被剪切然后被内插以找出针对所需要的偏移的所需要的输出像素。剪切处理是使用例如,Sinc、Bicubic或者Bicubic Spline内插进行的,但是为了方便说明,将讨论Bicubic剪切方法。
考虑图28中所示的45°线890的示例。其中,该示例在水平和竖直方向被以1∶2的缩放因子进行缩放,从而对于每个源像素存在四个输出像素。源像素被示出为正方形900(根据像素颜色而被示出为黑色或白色正方形),内插像素被一般地示出为白色圆圈910,但是经受考虑的特定内插像素被示出为黑色圆圈920。
该缩放因子意味着,在被对准到源数据并且具有0水平和0竖直子像素偏移的输出中存在多个像素,并且存在对应于0.5水平和0竖直、0水平和0.5竖直、以及0.5水平和0.5竖直的子像素偏移的其他输出像素。
在该示例中,θs被设置为45°,并且这种情况中的剪切方向可以为水平或者竖直方向;尽管这里实现的任一选项是针对这种情况使用竖直方向。将要内插的像素920处于水平方向的偏移为0.5(δx)且竖直方向的偏移也为0.5(δy)的位置处。但是,从图中可以明了,内插像素精确地位于线890上。这导致了这样的结论,即为了内插得出所讨论的像素,竖直偏移也需要被剪切以用于竖直剪切。对于用于水平剪切的水平偏移,可以得到相同的结论。换言之,为了内插得出所讨论的像素,滤波所需要的数据是通过追踪图像特征方向并且找出被水平地对准到源像素位置的竖直相交点来选择的。这些竖直滤波位置是通过将竖直剪切应用于从水平轴开始的位置找出的。相应的原理应用于水平剪切。
在剪切处理期间,总共有九个剪切像素930被生成。根据θs和像素与源中心像素tap之间的距离来确定剪切数量,所以在图28中,总共有九列被剪切,从而产生了被第二阶段的滤波处理处理的五个像素的集合。但是,为了便于说明,在下面的示例中总共九个像素被剪切。利用取决于剪切角度θs的相应偏移,对每列剪切不同的数量。但是,在其他实施例中,名义上有五个点被剪切,并且平滑滤波器被应用于这些值从而使得这些值被内插从而产生输出像素。剪切处理在技术上仅需要四个像素,但是在本发明的实施例中使用了五个像素以使随后的平滑滤波器操作对称。
为了对数据进行剪切,需要计算源像素偏移位置Px和Py、以及子像素偏移位置δx和δy。这些参数确定了沿着键切线在不同点处执行剪切所需要的滤波器的中心、以及内插所需要的子像素偏移。这些值是使用下面的等式计算出来的:
shearedPosition=δy+(tap-δx)×tan(θs)
Py=round(shearedPosition)
Px=tap
δ′y=shearedPosition-Py
δ′x=δx
对于以上的示例,用于δy=0.5和δx=0.5的位置的Py和δ′y变为:
tap | Py | δ′y |
-4 | -4 | 0.0 |
-3 | -3 | 0.0 |
-2 | -2 | 0.0 |
-1 | -1 | 0.0 |
0 | 0 | 0.0 |
1 | 1 | 0.0 |
2 | 2 | 0.0 |
3 | 3 | 0.0 |
4 | 4 | 0.0 |
“tap”位置是被对准到水平源像素的滤波器的位置。
对于任意θs和任意偏移位置都可以遵循该过程,以提供在内插期间使用的新偏移。使用修改后的偏移值和新的中心像素位置,可以对数据进行滤波以计算出所需要的剪切像素。Sinc内插可以被用来计算所需要的像素,但是优选方法是使用Bicubic多项式。
图28中的竖直框940示出了将被用于Bicubic剪切的像素。用于Bicubic内插的中心像素由Py给出,并且子像素偏移位置δ′y由圆点指示。以上计算出的Py值指示,用于多项式的像素应该被偏移1个像素。附图上的圆点指示所需要的像素的子像素偏移(例如,如图所示该值为0)。作为结果的剪切像素在该图的底部示出。注意,所使用的内插处理需要四个像素pm1、p0、p1、和p2。给定子像素偏移值,内插处理将在p0和p1之间内插得出新的像素。以上描述的计算描述了计算每个双三次多项式的位置的处理。以上描述的Py值是每个p0像素相对于原点的位置,并且计算出的δ′y是用在多项式拟合中的子像素“偏移”。(Px,Py)=(tap,f(tap,θs))。
一旦计算出了九个剪切像素930,第二阶段是从该组剪切像素内插得出所需要的像素。另外,可以使用Sinc或者Bicubic内插。在后一种情况中,将仅需要中心的四个像素,但是对于其他检验仍需要所有像素。第二次内插所需要的像素再一次被框950包围,其中圆点指示子像素偏移位置(δ′x)。这是水平子像素偏移位置,例如其是0.5。
来自第二阶段内插处理的输出被裁剪,从而使得其不会超出被用于内插的像素的最大或最小值。
对于图29中所示的26°线890’(图29使用与图28相同的符号),遵循相同的过程。
这里,所需要的内插像素位于子像素偏移δx=0.5,δy=0.5的位置处。使用以上示出的shearedPosition的等式,可以计算出剪切像素和子像素位置Py和δ′y。这在下表中示出。
tap | Py | δy |
-4 | -2 | 0.25 |
-3 | -2 | 0.75 |
-2 | -1 | 0.25 |
-1 | -1 | 0.75 |
0 | 0 | 0.25 |
1 | 0 | 0.75 |
2 | 1 | 0.25 |
3 | 1 | 0.75 |
4 | 2 | 0.25 |
应该注意,对于Bicubic内插,子像素偏移(δ′y)应该理想地为正。这是为了确保多项式被均匀均衡。如果子像素偏移变为负的,则子像素偏移被调整为正,并且像素偏移被相应地如下调整:
如果(δ′y<0)
则δ′y=δ′y+1,Py=Py-1
所描述的过程用于应用竖直剪切。相同的方法可以被用于水平剪切方向;但是,等式被调整如下:
shearedPosition=δx+(tap-δy)×tan(θs)
Px=round(shearedPosition)
Py=tap
δ′x=shearedPosition-Px
δ′y=δy
并且子像素偏移调整为:
如果(δ′x<0)
则δ′x=δ′x+1,Px=Px-1
角度内插
当执行放大(对图像进行缩放以使图像更大)时,例如x8放大(以线性缩放因子8进行图像缩放),来自源图像的一个像素将提供一个角度,该角度将被用在64(8x8)个输出像素的块的内插中。相邻源像素将具有与其相关联的另一角度,并且该角度将被用于64个输出像素的相邻块,等等。潜在的结果是,如果这两个角度足够不同,则输出图像会显示出具有叠加在其上的块结构。
所以,本发明的实施例认识到,为了确保使用不同角度的相邻输出像素之间的平滑过渡,最好是输出像素的内插中所使用的角度之间存在平滑过渡;并且角度内插可以被用来实现此目的。
用在x4放大中的角度的示例在图30中被示意性地示出。每个块1000代表输出像素,同时每个阴影块代表水平方向和竖直方向两个方向上的偏移位置0(在对准到源像素位置(即,子偏移为0)的位置处存在内插角度)。使用最接近的邻居的方法(采用与相对于所需要的输出像素位置的左上侧的最接近源像素相关联的角度)来获取内插角度,显然在角度切换到下一个邻居时会存在大的角度跳跃,这会在输出图像中产生块状伪像。
获取内插角度的更好方法是,对用在内插中的附近角度进行内插。内插在从最接近邻居值开始的两个阶段(首先水平方向,然后竖直方向)中进行(当然,也可以使用其他次序,或者并行执行这两个方向的内插)。图31示意性地示出了该角度内插技术的输出。
该角度内插技术可以通过对所检测出的方向进行滤波从而对在相邻的输入或输出像素位置之间所检测出的方向的偏差进行平滑来提供相邻角度之间的平滑消退,这在高放大因子(大于1的大缩放因子)的情况下尤其重要。在角度内插处理期间,为了避免产生不正确的角度,进行了多次检验。首先,在每个角度内插阶段,如果角度被认为是不确定的(如果certaintyFactor小于阈值),则这些角度不被使用;对于这些情况,内插器将返回最接近的角度。其次,如果两个角度过于不同,则内插不会在这两个角度之间发生,所以可编程的阈值被引入以防止在角度差超过该值的情况下的内插。再次,如果该条件应该出现,则角度内插器将返回作为每个内插阶段的结果的最接近的邻居。
滤波器融合值生成
如以上所述的图27中所示,由于不理想的剪切方向,剪切像素中会出现振荡。可以使用滤波器的组合来移除这些振荡。
由于涉及到平滑处理,如果在角度查找阶段找到了置信角度,则一些精细的细节可能会被平滑甚至移除。为了防止这种过渡平滑,所选择模板的一致性被检查,以确认该模板中的像素符合某些要求。滤波器融合值被分配给每个像素,以指示在内插阶段应该准许多少滤波。如果检验已经指示出来,则滤波器在内插处理期间将被禁止,以保留较精细的细节。
可以根据当前配置,在所有GBR通道上、在单个绿色通道上、或者在混合灰度通道上进行该检验。
为了执行这种额外的检验,需要四个附加像素(针对图6a的模板,图32示出了像素j、k、l和m)。j、k、l和m的位置类似于用于其他模板的适当位置。
为了找出被认为一致的角度,所检测出的线周围的像素应该偏向或者偏离该线。如果这没有被观察到,则该特征在内插处理期间不应该被平滑。
可以以单调性计算的形式测量该发散量(divergence)。模板的下一半(即,像素b、d、j和i)与模板的上一半(即,像素m、k、f和h)被分开测试。
对于被认为良好的上一半,任一组像素m、k、f或者像素k、f、h都必需是单调的。一般,对于良好的上一半:
m≥k≥f|k≥f≥h|m≤k≤f|k≤f≤h
除了针对单调性对像素进行测试以外,还要测试线性度,并且经受测试的像素在线性数量方面必须不同。这是通过在每个测试中估计两个外部像素相对于中心像素的差值来测试的,从而确保了该差足够低。例如,当测试像素m、k和f时,m和k之间的绝对差值必须在k和f之间的差值的给定容许量以内。
abs(abs(m-k)-abs(k-f))≤linearTolerance
其中:
linearTolerance=Max(abs(c-e),abs(g-e))*linearFactor其中,linearFactor是可编程的值。针对以上的每个单调性检验,重复该测试。但是,如果以上测试失败,则另一组测试应该被应用。其他测试的应用取决于某些像素是否在相互的某个容许量以内。该容许量被定义为:
tolerance=Max(abs(k-e),abs(j-e))/factor
其中,factor是可编程的参数。
测试如下:
e≥f≥k|e≤f≤k 当|m-k|≤tolerance
e≥h≥f|e≤h≤f 当|k-f|≤tolerance
e≥k≥m|e≤k≤m当|f-h|≤tolerance
如果相关等式中的任意一个等式为真,则相应的“一半”被认为是良好的。但是,随后可以根据中心像素的单调性撤销该判决。如果中心的三个像素的单调性值大于准许值,则上一半被认为是坏的:
mono=abs(abs(c-e)+abs(e-g)-abs(c-g))
energyac=abs(a-c)*energyFactor
如果(mono>energyac)
上一半是坏的
其中,energyFactor是可编程的阈值。
对于包括像素i、j、d和b的模板的下一半,进行类似的测试。
一旦对于模板的上一半和下一半的结果被确定,则滤波器融合值可以被确定。如果上一半和下一半二者都被认为是坏的,则该像素不应该被滤波,所以滤波器融合值被设置为0。如果上一半和下一半二者都被认为是好的,则该像素应该被滤波,滤波器融合值被设置为最大值(例如,被设置为1或者255,取决于实施方式)。
如果上一半或者下一半测试中只有一个测试返回了“良好”,则需要附加测试来确保返回了“良好”的一半是适当的。该测试确保了被认为“良好”的一侧存在充足的能量。如果能量不在可编程的阈值之上,则该一半不被认为是良好的。通过对相邻像素之间的差值求和并且测试其是否处于可编程的阈值之上,来测量该侧的能量。
energyHalf=abs(m-k)+abs(k-f)+abs(f-h)
如果(energyHalf<energyThreshold)
则Tophalf是“坏的”
如果只有一半被认为是好的,则只有在最佳模板的标准偏离相对于垂直模板的标准偏离足够小时滤波器融合值才可以被设置为最大值。该测试将指示出所检测出的线有多好,因为该特征上的能量应该远大于沿着特征的能量。
如前所述,垂直模板被作为距离最佳模板四个模板的模板给出,所以如果最佳模板被发现为图6a的模板,则垂直模板将是图6e的模板,等等。
如果最佳模板的标准偏离值由minSD给出,并且垂直模板标准偏离由perpSD给出,则滤波器融合值可以被设置为最大值,如果:
if(min SD*sdfactor<tan gSD&&
tan gSD>perpThreshold&&
(topHalfIsGood|bottomHalfIsGood))
filterBlendValue=max
其中,sdFactor和perpThreshold是可编程的参数。该测试被以不同的因子值和阈值重复多次。当前的这三种测试是利用不同的参数进行的。
一旦滤波器融合值被产生,则它们被传递给内插器,从而使得它们可以被用在滤波阶段。
对剪切数据进行平滑处理
在本发明的实施例中,通过剪切产生的像素被滤波以减少任何可能的振荡。
为了保存剪切数据中存在的任何高频信息,应用正确数量的滤波处理是非常重要的。例如,在0°和45°的内插角度,剪切处理是理想的,并且在内插处理期间没有振荡被添加。但是,26°的内插角度有引入最大量的高频振荡的可能性。可能振荡的频率取决于剪切角度,所以为了避免移除想要的频率,可以使用剪切角度或者更具体地使用角度的正切值来控制滤波处理。
在本发明的实施例中,5抽头滤波器被用来对输出数据的每个GBR颜色通道进行滤波。
在低角度(0°附近)和较高角度(45°附近)不应该应用滤波,所以将要应用的所需要的滤波器是[00100],或者换言之是简单脉冲响应。
对于大约26°附近的角度,振荡是较高频率的,所以低通滤波器被用来帮助移除其系数为[14641]/16的振荡。
对于中间角度,例如,5°或40°附近的角度,振荡将出现在中间频率处。所以,为了帮助移除这些振荡,中通滤波器被使用。滤波器系数为[40804]/16。
三个滤波器产生对于以上提及的特定角度的良好响应,但是对于更一般的方式,将它们结合在一起从而使得适用于其他角度的响应可以被产生是有用的。实现其的一种方式是使用所有三个滤波器对像素数据进行滤波,并且根据以下等式基于剪切角度融合这三个结果:
除了根据角度控制滤波处理的数量以外,还根据在如上所述的角度查找阶段进行的模板一致性检验来控制输出。以上给出的等式可以被修改为包括滤波器融合值的值(如下面示出的)。当滤波器融合值被设置为0时,滤波器的作用应该被禁止,并且源像素应该被输出,所以z=0。当滤波器融合值被设置为最大值(1)时,滤波器是完全作用的。当滤波器融合值从0增到1时,滤波器的作用逐渐消退。
除了根据剪切角度控制滤波处理的数量外,还可以根据画面尺寸来控制滤波处理。
在1∶1放大期间,为了确保从收缩标量向放大标量的平滑过渡,很重要的是输出图像与1∶1收缩期间产生的图像相同。
所以,滤波器的作用在收缩比率趋近于1∶1时应该被减小,并且在收缩比率趋近于2∶3(甚至超过该比率)时应该被完全使能。鉴于此,以上的等式应该被调整为纳入了该调整:
其中,当缩放比率被设置为1∶1时z被设置为0,并且当缩放比率增大到2∶3(或者更大)时z线性地逐渐增大为1。
一旦这些结果被滤波从而移除了任何振荡,则可以进行最终的双三次(或者,在本发明的实施例中,正弦、双立方样条、或者多项式)内插以生成最终的输出像素。
非剪切内插法
当剪切内插像素由于低certaintyFactor值而不能被可靠使用时,输出内插值被利用非边缘定向的非剪切内插方法(称为默认内插方法)创建的像素替代或者被与该像素混合。
当出现这种情况时,Sinc内插是默认内插方法的候选。但是,由于在Bicubic内插和Sinc内插之间根据经验观测到的大亮度差,对这两种内插方法进行匹配以提供剪切和非剪切区域之间的平滑过渡是比较困难的。鉴于此,在本发明的实施例中,标准Bicubic内插被替代地用作非剪切算法。Bicubic内插处理还具有一般不会产生振铃伪像(ringing artefact)的附加优点,诸如通常在Sinc内插期间看到的。在硬件或其他处理需求方面,Bicubic内插也非常小。
由于Bicubic Spline实施方式非常类似于标准Bicubic内插方法,所以可以根据需要提供内插器的选择。Spline实施方式具有在像素边界更加连续的附加优点。
边界平滑
为了避免剪切内插的和非剪切内插区域之间的粗糙边缘,确定性值certaintyFactor它们自身被内插,以产生这些区域之间的平滑过渡。但是,混合器控制值的平滑过渡可能并不足以避免由于所使用的不同的内插技术导致的显而易见的伪像。例如,考虑缩放这样一个示例图像,其中在中心区域中,像素数据被混淆从而使得角度无法被确定,因为不可能预测出这些像素的正确方向。内插处理应该返回使用正交非剪切缩放法。如果包括被混淆区域的任一侧的角度是在剪切处理期间创建最多振荡的角度,则它们被最多地平滑。但是由于该平滑,标准双三次结果和剪切结果之间的输出图像中可能存在亮度差。
为了避免这种亮度差,在这些边界区域周围自适应地对标准双三次结果进行平滑,以避免这种伪像并提供更令人愉快的过渡。
为了匹配这些亮度等级,非剪切输入数据在内插处理期间被平滑处理,并且该平滑处理仅是针对边界区域上的像素进行的。距离剪切像素足够远的非剪切像素不应该被滤波,这是为了保存非剪切区域中的图像质量。还应该根据区域中有多少剪切像素已经被滤波来对像素进行滤波,例如,如果剪切像素位于45°,不应该对非剪切像素应用滤波,因为剪切像素将不经历任何滤波处理。确定性值的3×3邻域被用来决定是否需要任何平滑处理。
为了计算所需的滤波处理的数量,当前输出像素与其八个相邻源像素之间的最大差值必需被找出。为了帮助避免伪像,在已经滤波的像素和没有滤波的像素之间不使用硬切换。所以,也必须利用输出像素和源确定性值之间的距离来对确定性值的差值进行调制。一般,
其中,maxDistance是独立于放大因子(其被固定在2√2源像素)的、输出像素和相邻像素之间的最大可能距离。如前所述,如果剪切数据没有被平滑,则该数据不应该被平滑。所以,还应该使用剪切角度对梯度进行调制。对于tan(0°)和tan(45°)的剪切角度应该禁止平滑处理,对于tan(26°)的剪切角度不应该调整平滑处理,并且平滑处理应该在这些角度之间线性变化。
gradient′=gradient*adjustmentFactor
其中,gradient’被用来确定在内插处理期间对于源数据需要多少平滑。
可以在水平方向或者竖直方向对数据进行平滑处理,其中平滑方向的选择取决于剪切角度:对于90°的角度,应该在竖直方向对数据进行平滑处理,并且对于0°的角度,应该在水平方向对数据进行平滑处理。然后,所需要的平滑处理的数量在这些角度之间被线性融合。计算出的gradient’指示使用低通滤波器滤波后的像素和源像素之间所需的融合数量。为了节省硬件资源,在竖直滤波处理期间只有中心的两栏被滤波。
混合器操作
一旦剪切和非剪切内插结果被创建,需要一种混合这两种结果的方法。最近的邻居(最接近输出像素位置的源像素)certaintyFactor可以被简单地用来提供混合值;但是对于大放大因子并不期望这样。
例如,x4的放大比率,单个源像素将提供用于被排列为4x4块的16个输出像素的内插角度和certaintyFactor。如果存在选择了略有不同的内插角度或者具有不同确定性的相邻像素,则输出可能看起来块化。为了避免这个问题的发生,certaintyFactor和角度值被用来基于每个输出像素的子像素位置和相邻certaintyFactor来内插得出每个输出像素的混合器控制值。
确定性值的内插
为了内插得出混合器控制值,需要3×3像素邻域中的certaintyFactor和内插角度。考虑图33中所示的示例。该图像被缩放4倍,从而使得16个输出像素对应于单个源像素。输出像素被描绘为正方形1000,其中栅格1010总地指示源像素相对于输出像素的间距。
图中的块像素1020代表水平和垂直方向的0偏移位置的像素(对准源像素位置的输出像素),同时像素1030是当前正在计算用于其的混合器控制值的像素。
为了确保具有不同certaintyFactor或角度的相邻像素之间的平滑过渡,进行检验以确保这些值之间的逐步消退。这是通过确保相邻的确定性值之间的最小梯度产生的。
当前输出像素1030与位于0偏移位置的相邻的九个像素1020中的每个像素之间的距离的平方被找到。这些距离在图33中由线1040指示。这些距离被用来确定根据相邻像素的certaintyFactor输出像素可以具有的最大certaintyFactor。对于每个邻居,以下的被准许输出的certaintyFactor被确定:
distance=Min(distance-0.5,0)
maxCertVal=distance*certaintyGradient+neighbourVal
outputCertainty=Min(maxCertVal,currentCertainty)
从每个距离值减去值0.5,以在特定区域上保持当前像素的certaintyFactor从而确保平滑融合。certiantyGradient是可编程的变量,其控制相邻certaintyFactor之间准许的消退数量。该方法将提供具有不同certaintyFactor值的邻居之间的平滑过渡。
以上的等式可以(在其他实施例中)被进一步修改,以纳入相邻像素之间的角度差。考虑相邻的3×3邻域具有非常相似的确定性值,但是它们的角度显著不同的示例。这些区域将全部被剪切不同的数量,从而导致像素边界处的不匹配。为了避免这种情况发生,相邻像素之间的角度差被纳入等式中,以进一步处置输出确定性值。这是通过利用角度的不同调整距离值和maxCertVal来实现的。
distance=Min(distance-0.5-angleDiff,0)
maxCertVal=distance*certaintyGradient+neighbourVal-angleDiff
outputCertainty=Min(maxCertVal,currentCertainty)
一旦每个邻居已经被分别测试,则来自每个测试的最小outputCertainty值被用来形成并设置输出混合器控制值,该混合器控制值然后被传递给混合器170用于最终的混合。
滤波器融合值的内插
为了避免内插处理期间的块状伪像,在角度查找阶段产生的滤波器融合值也可以被内插到输出图像尺寸。内插得出滤波器融合值的处理对应于所描述的用于混合器控制值的内插的处理。
混合器操作
输出是由混合器170以每个像素为基础,根据控制器160生成的混合器控制值的值,从非剪切内插得出的像素与剪切内插得出的像素的融合形成的。这由下面的等式概括出来:
output=mixercontrolvalue×shearResult+
(1-mixercontrolvalue)×nonShearResult
结果值是内插后的输出。
对输出画面进行滤波
如果进行滤波以产生平滑或者锐化的画面的传统方法被使用,则在内插处理完成之后图像将被滤波。所以,为了有效地对已经被放大n倍的图像进行滤波,需要至少2n+1抽头的滤波器。例如,已经按比例增大4倍的图像需要至少9抽头滤波器来包含足够的源数据。这显著增加了竖直滤波所需的行缓冲器的数目。所以,这里考虑一种替代的更有效的方法。
现在描述用于处理输出画面以在不需要周围输出数据的条件下生成滤波结果的技术。
现在将描述通过估计输出像素进行竖直滤波的技术。考虑对于x2放大的下面的图34中的示例。圆圈110代表当前输出像素。对于竖直滤波,需要输出像素1110。为了获取这些像素,可以引发一些线延迟,以确保足够的数据可用。
所以,不在滤波阶段使用实际的输出像素,相反可以使用元数据(正方形像素1120)来估计输出像素。例如,像素1110全部都可以被使用双线性内插进行内插(处于该处理的目的)。滤波操作然后可以在不存在输出数据上的附加线延迟的条件下被执行,假设滤波处理具有可用的源数据。
为了保存已经使用剪切方法内插的边缘,如果数据可以在垂至于该条线的方向被滤波,则这是有利的。这在下面的章节中说明。
垂直滤波
考虑图35中示意性示出的使用剪切内插器进行内插的-45°线(左下到右上)的示例。零偏移处的输出像素(这些输出像素在位置上对应于源像素)被示出为正方形1130,而中间位置处的输出像素被示出为圆圈1140。每个像素的阴影一般指示其颜色和/或亮度,所以对角线特征可以被看到。
为了保存该特征的边缘,在滤波处理期间,该线被垂至于其方向进行滤波,如矩形1150所示。输出像素可以被缓冲,从而使得它们可以被用于滤波阶段。
如同先前的示例一样,如果所需要的像素可以使用初始源像素近似出来,则输出端上的附加线延迟可以被从滤波阶段移除。但是,这将通过重新引入锯齿状的边缘产生对于原始特征不真实的像素数据,所以更好的方法将是使用剪切法来内插该后滤波处理所需的像素。
图36中的圆圈1200指示这样的滤波操作所需的像素。使用标准双线性内插,可以使用四个周围的源像素(其亮度由它们的阴影指示)计算出该像素,如虚线框1210所突出显示的。在该示例中,该像素被计算为71%的灰度。
但是显然,该像素遵循-45°线,所以其值实际上应该使用两个对角像素1220内插得出,如图37所示。像素1220之间的内插是使用如上所述的剪切法执行的。该方法将产生75%灰度的像素(该灰度值是对于该特征更为真实的值)。滤波阶段所需的其他像素的内插可以被以类似方式找出。这样,可以根据需要对数据进行滤波。
随着放大因子的增大,固定尺寸滤波器锐化或者软化图像的能力降低。为了对此进行补偿,不是对输出像素位置的像素进行采样,可以在1/2源像素位置对每个像素进行采样。每个像素被使用剪切处理内插得出。如同更早描述的内插方法一样,数据被以个固定的间隔周期剪切。如在剪切处理期间,1/2像素间隔处的采样将导致采样点将相距1/2像素以上(见图38),为了固定尺寸,在内插处理期间采样间隔被调整以保持内插后的像素的1/2像素间隔(固定)。剪切间隔周期是剪切角度的三角函数。其示例在图38中被示出,其中图38示意性地示出了被放大了4倍的图像。如图35中所示,对准源像素位置的输出像素被示出为圆圈。相对于像素1260的滤波阶段所需的像素1250也被指示出来。使用该方法,滤波器将在任何放大比率处均有效,并且滤波器的尺寸可以被固定。即,七抽头滤波器被用在该示例中。
在以上提到的示例中,尽管采样点在水平和竖直方向均为1/2源像素距离,但是每个采样点之间的精确距离实际上是大于1/2源像素的。为了使所有角度具有相同的频率响应,可以调整采样距离以均衡采样距离,如图39所示。距离补偿因子是角度的正弦/余弦函数。
裁剪处理
在滤波处理期间,结果被允许过冲或者下冲。过冲或者下冲的数量是通过检查滤波处理期间使用的滤波器来确定的。输出值被限制为不大于滤波期间使用的最大(max)和最小(min)像素之间的差值的若干倍:
shootAmount=(maxPel-minPel)*factor
if(output>max+shootAmount)
output=max+shootAmount
if(output<min-shootAmount)
output=min-shootAmount
这些测试中的每个测试可以被独立禁止。
混合滤波结果
垂直滤波仅可以被用在角度被以高确定性等级找出的情况中。所以,需要计算两个结果:一个结果使用垂直滤波,另一个结果由垂直滤波器的竖直形式以及其后的形成为垂直滤波的水平形式的水平滤波器形成(因为传统滤波器会遭受上述的相同问题)。这些滤波后的图像然后被使用与结合剪切内插数据和非剪切内插数据产生的混合器控制值相同的混合器控制值线性混合。
滤波技术
在上述的滤波处理的很多实例中,多抽头滤波器被应用于输入像素,以生成输出像素。在实际的实施方式中,这通常是以扫描方式执行的,从而使得滤波器被轮流应用在每个输入像素位置。但是,如果不需要特定像素位置的输出像素,则滤波器配置是不活动的或者其结果被丢弃,每种情况都意味着处理资源的潜在浪费。
这种情况的特定实例是,小于1的缩放因子被用在以上所述的图像缩放系统中。示出该实例的示例配置在图40和图41中示出。
在这些图中,七抽头滤波器由七个乘法器1300形成,其中系数存储装置1310为每个乘法器1300提供相应的系数,并且求和单元1320包括用于对乘法器1300的输出求和的一系列加法器1330。
在操作中,乘法器分别接收相应系数,并且将相应的像素值与该系数相乘。
源像素值(或者图中所示的滤波处理的输入像素值)被描绘为从0至17编号(用于该示例)的一行块1340。块1340代表包括多个这样的行的图像中的一行像素的部分。
该示例中的缩放因子为0.5,这意味着相对于输入像素的数目的一半的输出像素(如编号像素行1350所示)被生成。
输出像素号3在位置上对应于输入像素号6。七抽头滤波器对输入像素号3至9进行操作,以生成输出像素号3的值。
参考图41,当输入滤波器移动到下一输入像素位置时,其立刻对以输入像素号7为中心的输入像素4至10进行操作。但是,由于缩放因子为0.5,所以在对应于输入像素号7的位置的位置处不存在输出像素。所以,图41中所示的操作被吸收或者被防止发生,或者其被允许发生但是其结果被丢弃。在任一种情况中,该配置都潜在地浪费了资源。
处理继续:在缩放因子为0.5的示例中,一个输出像素被生成,并且下一滤波操作不可应用于输出像素,并且另一个输出像素被生成,等等。
图42提供了在生成六个连续输出像素(实际上,使用图40和图41的符号的输出像素2、3、4、5、6、7)时的有效滤波操作(这些操作导致输出像素的生成)的示意性说明。在图42中每行的输入像素是相同的;也就是说,这些行对应于在相同的图像像素行而不是不同的像素行上执行的连续操作。在图42中绘出的每行中,滤波操作的中心像素(在该示例中,其在位置上对应于由滤波操作生成的输出像素的位置)被示出为阴影块,并且七个像素(七抽头滤波器对这七个像素进行操作)的群组由各行下面的圆括号指示。
图43中提供了相同的信息,但是这里示出了输入像素参加多个滤波操作的事实。例如,在使用图40和图41的符号生成输出像素3、4、和5的过程中,输入像素号8参加了第二、第三和第四滤波操作的滤波。输入像素号9参加了四个滤波操作,并且输入像素号10参加了三个这样的操作。
所以,本发明的实施例使用不同的滤波配置和缩放因子0.5,其中该滤波配置辨认出每个输入像素在用于七抽头滤波器的一行输出像素的生成期间参加了3或4系数乘法运算。每个源所需的乘法数目是1∶1的缩放所需的抽头数目的函数。对于7抽头滤波器,每个输入像素在1∶1的缩放处实际参加7个乘法,并且在缩放因子0.5处,每个输入像素仅被需要3或4次。在更小的缩放比率处,如所观察到的,一些像素甚至是不需要的。如果缩放因子为(例如)0.01,则每个输入像素参加0或1个乘法。图44提供了这种滤波配置的示例性说明,其中该滤波配置对输入像素行1340进行操作以生成输出像素行1350。累加器技术在技术上可以被用于任何有限脉冲响应(FIR)滤波方法(是否可用于像素数据或其他数据),因为其在1∶1的缩放或者收缩时产生与标准FIR滤波相同的结果(IIR滤波器不能被以这种方式使用)(从而使得输出图像包括比输入图像更少的像素数目,并且内插被用来生成输出图像的像素)。但是,当利用FIR滤波器(Sinc、Gaussian、Laplacian等)进行收缩时,该处理的特别显著的益处被释放出来,因为用在滤波器阶段的抽头数目可以作为收缩因子的函数而增长,并且不需要另外的乘法资源。
系数生成器1400生成被供应给包括例如4个乘法器1410在内的一组乘法器的各个滤波器系数。
每个乘法器的输出被供应给累加器配置1420,并且累加器配置的输出被传递给复用器1430。
图44的滤波配置的操作的基本原理是,替代使用七个抽头对七个输入像素进行操作以进行生成输出像素所需的七个乘法,该配置执行针对特定输入像素所需的所有乘法,然后移到下一输入像素,等等。换言之,输入数据(像素)值与滤波器抽头系数的每个乘法提供了对于输出滤波器值的贡献,从而使得每个输出(像素)滤波器值代表来自相应组的输入数据值的贡献之和,输入滤波器值的数目大于使用这些输入滤波器值得出的输出滤波器值的数目。累加器配置进行操作以累加生成每个输出像素所需的七个贡献,尽管这七个贡献是通过七个连续运算而不是单个运算生成的。所以,累加器配置能够通过一组乘法器的连续运算累加一组输入数据值的贡献的各个和,来生成输出滤波器值。
为了说明该运算,考虑下面的一组滤波器系数:
这里,抽头号是指相对于当前中心输入像素的偏移(输入像素中)。所以,在图40和图41中所示的以前提出的滤波配置中,在第一运算中,输入像素3至9被分别与系数C-3至C3相乘,并且七个乘积被求和单元1320加总在一起。因此,乘法器1410作为能够对输入数据值进行操作并且被配置为基于每个输入数据值轮流从每个输入数据值生成一组贡献(在取决于这些输入数据值的任何输出滤波器值的内插中需要这些输入数据值)。
相反,在图44的滤波配置中,相对于单个输入像素所需的所有乘法同时进行,然后乘法器继续前进到下一个输入像素,从而使得相对于下一输入像素所需的所有乘法运算进行,等等。适当的系数由系数生成器提供。所以,系数生成器包括得出用于将被应用于输入数据值的乘法的各个系数的逻辑,其中各个系数的得出取决于与输入数据值在输入图像中的位置有关的输入数据值的贡献,以及像素在输出图像中的位置。
所以,例如,如图44中所示,相对于输入像素号7所需的乘法正在进行。它们是:
输入像素7×C3,为生成输出像素2做出贡献
输入像素7×C1,为生成输出像素3做出贡献
输入像素7×C-1,为生成输出像素4做出贡献
输入像素7×C-3,为生成输出像素5做出贡献
在这些输出像素中,当乘法器对输入像素7进行操作时,对于输出像素2的处理完成,所以输出像素2的累加值被乘法器输出。同时,乘法器进行操作以将累加值(其刚才已经被作为输出像素2输出)重新设置为零,从而使得累加器配置的该部分可以被用来开始存储下一个所需的输出像素。
所以,在稳定状态中(远离直线的边缘),在任何时间,累加器配置都存储对于六个输出像素的贡献,并且经由乘法器输出第七输出像素的完全累积值。更一般地,需要与初始滤波器抽头一样多的累加器。该配置具有以下益处:硬件或者其他处理资源比以前提出的配置被更有效地使用。特别地,不是一次执行七个乘法而在其他时间不执行乘法,该滤波配置在任一时间都执行三个或者四个乘法。
在缩放因子小于1的情况下,还存在与图像质量有关的另一潜在益处。即,该配置意味着滤波器抽头的有效数目随着缩放因子的下降而增多。
特别地,该处理在数学上相当于固定的滤波器算法,除了抽头数目改变以外。有效的抽头数目等于乘法器的数目与缩放因子相除所得的整数值,并且如果其结果为偶数,则为该整数值减1(因为有效的抽头数目必须为奇数)。
这是有用的,因为其允许任意数量的图像收缩,而不会导致滤波操作中的混淆。例如,当1920下降到384个像素的图像收缩被应用时,21抽头的固定滤波器(根据图40)将开始走样。但是,具有“基本”数目(该数目为7)的抽头的可变滤波器实际上将相当于该缩放因子的35抽头的固定滤波器。作为极端示例,从1920下降到1像素的收缩在原则上可以被应用而不会造成走样,并且将使用相当于13440抽头的固定滤波器的图44的配置产生滤波器响应。
实际情况中所需的系数可以在被需要时或者在被存储在查找表中时被生成。
示例应用
现在将描述图像缩放技术的两个示例应用。
图45示意性地示出了包括平板显示屏1510和视频缩放器1520的电视设备1500,其中视频缩放器1520包括图3中所示的对一系列视频图像进行处理的设备。该电视设备可以通过将不同分辨率的视频信号直接路由到显示器(在视频信号具有显示器1510的原生分辨率的情况下)或者经由视频缩放器1520路由这些视频信号(在其他情况下),来显示不同分辨率的视频信号。
图46示意性地示出了包括透镜配置1560、图像捕捉装置1570、以及视频缩放器1580的摄影机1550,其中图像捕捉装置1570生成特定的图像分辨率的视频图像,视频缩放器1580被配置为将图像捕捉装置输出的图像缩放为另一分辨率。该配置允许摄影机在输出端1590输出原生分辨率的视频图像和/或在输出端1600输出不同分辨率的视频图像。
将明白的是,这里描述的任意一种技术都可以由硬件、软件、或者它们的组合实现。其上存储这种软件的诸如光盘或者磁盘之类的非临时机器可读存储介质被认为代表本发明的实施例。
将理解的是,本技术在适当地情况下可以被应用于Sinc滤波器、Bicubic滤波器、Bicubic Spline滤波器、Gaussian滤波器、Bilinear滤波器、Biquadratic滤波器、Biquintic滤波器、一般的基于多项式的滤波器、或者FIR滤波器和样条。
尽管这里参考附图详细描述了本发明的说明性实施例,但是应该理解,本发明不限于这些具体实施例,并且在不脱离所附权利要求限定的本发明的范围和精神的条件下,本领域技术人员可以做出各种改变和修改。
附件
Bicubic内插
Bicubic内插包括将三阶多项式拟合到一组数据,以内插得出所需的像素。最接近内插像素的四个像素被用来形成多项式。
曲线的一般形式由以下等式给出:
y=Ax3+Bx2+Cx+D
该多项式的条件是四个源像素中的每个源像素必须与曲线相交。该曲线的示意性示例在图47中示出。
所以,在x=-1,0,1,和2处估计该等式将产生下面的等式的矩阵:
求解以上等式产生A、B、C和D的值:
使用A、B、C和D的值,可以估计一般等式以找出用于0到1范围中的任一给定x值的内插像素的值。必要地是,x的值不能超出0到1的范围;这确保了通过相同数目的像素平衡了每侧的曲线。
Bicubic内插可以被用来在水平方向、竖直方向、或者这两个方向中对图像进行缩放。在后者的情况中,十六个最接近的像素被用来内插得出输出像素。
Bicubic Spline内插
Bicubic Spline内插也包括将三阶多项式拟合到数据点。但是,不强求双三次等式必须与所有源像素相交,而是强加了其他限制。
第一个限制是曲线必须与像素P0和P1相交。第二个限制是像素P0和P1处的梯度必须连续,所以它们必须匹配由它们的每一侧的像素形成的梯度。该特性的曲线的示意性示例在图48中示出。
该曲线的一般形式由以下等式给出:
y(x)=Ax3+Bx2+Cx+D
使用曲线必须通过像素P0和P1的第一条件生成以下等式:
y(0)=P0=D
y(1)=P1=A+B+C+D
第二条件规定像素P0和P1处的梯度必须连续。P0处的梯度必须与在像素P-1和P1之间形成的梯度相同,并且像素P1处的梯度必须与在像素P2和P0之间形成的梯度相同。这些条件产生了下面的等式:
y′(x)=3Ax2+2Bx+C
求解以上的等式,A、B、C和D的值被如下计算出来:
A、B、C和D的值现在可以被代回,以找出针对0到1的范围中的任何给定x值的内插值Y。
线性以及最近邻居内插
可以通过改变系数A、B、C和D来改变以上的公式从而产生线性内插或者最近邻居内插。线性内插包括将在两个像素(即,以下像素)之间拟合直线:
y=P0(1-x)+xP1
y=(P1-P0)x+P0
使用以下等式:
y(x)=Ax3+Bx2+Cx+D
来实现线性内插
A=B=0
C=(P1-P0),D=P0
类似地,实现最近邻居内插。
Claims (20)
1.一种像素内插方法,其中二维数字滤波器被配置为从输入像素的二维阵列内插得出输出像素,该方法包括:
检测将要内插的像素位置处的图像特征的方向;
将剪切变换应用于所述数字滤波器和/或所述输入像素的阵列,以相对于所述二维滤波器的两个轴中的至少第一个轴将所述滤波器的操作映射到所检测出的像素特征方向;以及
应用所述数字滤波器来获取所述输出像素。
2.根据权利要求1所述的方法,其中所述应用所述剪切变换的步骤被配置为相对于所述两个轴中的另一个轴维持所述滤波器的操作不变。
3.根据权利要求2所述的方法,其中所述应用步骤包括:
选择所述两个轴中的一个轴用于所述滤波器操作的映射,所述选择取决于所检测出的图像特征方向。
4.根据权利要求3所述的方法,其中所述选择步骤包括:
检测所述两个轴中的哪个轴在角度上最接近所检测出的图像特征方向;以及
选择所述两个轴中的另一个轴用于所述滤波器操作的映射。
5.根据前述权利要求中的任一项所述的方法,其中所述两个轴是正交的。
6.根据权利要求5所述的方法,其中所述两个轴包括分别在水平图像方向上的一个轴和在竖直图像方向上的一个轴。
7.根据前述权利要求中的任一项所述的方法,其中所述二维滤波器是从包括以下滤波器的群组中选择的:
二维Sinc滤波器;
二维Bicubic滤波器;
二维Bicubic Spline滤波器;以及
二维基于多项式的滤波器。
8.根据前述权利要求中的任一项所述的方法,包括:
检测所检测出的图像特征方向中的置信度;以及
根据所检测出的置信度,通过应用和/或不应用所述剪切变换来有选择地生成所述输出像素。
9.根据权利要求8所述的方法,包括:
通过应用所述剪切变换生成输出像素的第一版本;
不应用所述剪切变换而生成该输出像素的第二版本;以及
根据取决于所检测出的置信度的比率混合所述第一和第二版本,以生成所述输出像素。
10.根据权利要求9所述的方法,其中所述混合步骤可操作以使所检测出的图像特征方向中的置信度越高,从所述第一版本得出的输出像素的比例越高。
11.根据前述权利要求中任一项所述的方法,包括:
相对于所述第一轴对输入像素的群组进行滤波,以生成各个中间像素值,其中所述群组沿着所检测出的图像特征方向被间隔开;以及
相对于所述另一轴对所述中间像素值进行滤波,以生成输出像素。
12.根据权利要求1至10中任一项所述的方法,其中所述应用步骤包括:
将所述剪切变换应用于所述二维数字滤波器的滤波器系数,以根据所检测出的图像特征方向将所述系数映射到二维域中的各个不同位置。
13.根据前述权利要求中任一项所述的方法,包括用于对所检测出的方向进行滤波从而对相邻的输入或输出像素位置之间的所检测出的方向的偏差进行平滑处理的滤波器。
14.一种像素内插方法,所述方法在前面被参考附图进行了基本描述。
15.用于实现根据前述权利要求中任一项所述的方法的计算机软件。
16.一种二维数字滤波器,被配置为从输入像素的二维阵列内插得出输出像素,该滤波器包括:
检测器,该检测器检测将要内插的像素位置处的图像特征的方向;及
滤波器操作调节器,该滤波器操作调节器可操作将剪切变换应用于所述数字滤波器和/或所述输入像素的阵列,以在所述二维滤波器的两个轴中的至少一个轴中将所述滤波器的操作映射到所检测出的图像特征方向。
17.一种二维数字滤波器,在前面被参考附图进行了基本描述。
18.一种视频处理设备,包括根据权利要求16或17所述的滤波器,该滤波器用于内插得出输出视频信号的连续输出图像的像素。
19.一种摄影机,包括根据权利要求18所述的视频处理设备。
20.一种视频显示设备,包括根据权利要求18所述的视频处理设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1100729.1 | 2011-01-17 | ||
GB1100729.1A GB2487242A (en) | 2011-01-17 | 2011-01-17 | Interpolation Using Shear Transform |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102595088A true CN102595088A (zh) | 2012-07-18 |
Family
ID=43736524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100249710A Pending CN102595088A (zh) | 2011-01-17 | 2012-01-17 | 内插 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8588554B2 (zh) |
CN (1) | CN102595088A (zh) |
GB (1) | GB2487242A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI511088B (zh) * | 2014-07-25 | 2015-12-01 | Altek Autotronics Corp | 產生方位影像的方法 |
CN110428381A (zh) * | 2019-07-31 | 2019-11-08 | Oppo广东移动通信有限公司 | 图像处理方法、图像处理装置、移动终端及存储介质 |
CN112166431A (zh) * | 2018-05-15 | 2021-01-01 | 伍普提克斯股份有限公司 | 条形码检测方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8587705B2 (en) * | 2010-06-28 | 2013-11-19 | Intel Corporation | Hardware and software partitioned image processing pipeline |
GB2501535A (en) | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
US10679326B2 (en) * | 2015-11-24 | 2020-06-09 | Canon Kabushiki Kaisha | Image data processing apparatus and image data processing method that determine confidence data indicating a level of confidence in a pixel value in high resolution image data |
JP2017126254A (ja) * | 2016-01-15 | 2017-07-20 | キヤノン株式会社 | 情報処理装置、情報処理方法、およびプログラム |
US11094038B1 (en) * | 2020-10-19 | 2021-08-17 | Apple Inc. | Variable scaling ratio systems and methods |
CN113852768A (zh) * | 2021-09-24 | 2021-12-28 | 中音讯谷科技有限公司 | 一种基于fpga技术的音视频图像智能控制系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582458A (zh) * | 2001-11-01 | 2005-02-16 | 皇家飞利浦电子股份有限公司 | 改善的视频图像的空间分辨率 |
US20050134602A1 (en) * | 2003-12-23 | 2005-06-23 | Lsi Logic Corporation | Method and apparatus for video deinterlacing and format conversion |
CN101122998B (zh) * | 2007-09-28 | 2010-06-23 | 宝利微电子系统控股公司 | 一种基于方向检测的图像插值方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2244622B (en) * | 1990-05-30 | 1994-06-15 | Sony Corp | Image signal processing |
US5835096A (en) * | 1995-03-24 | 1998-11-10 | 3D Labs | Rendering system using 3D texture-processing hardware for accelerated 2D rendering |
US6005582A (en) * | 1995-08-04 | 1999-12-21 | Microsoft Corporation | Method and system for texture mapping images with anisotropic filtering |
WO2000075865A1 (fr) * | 1999-06-03 | 2000-12-14 | Fluency Research & Development Co., Ltd. | Procede de traitement d'image |
-
2011
- 2011-01-17 GB GB1100729.1A patent/GB2487242A/en not_active Withdrawn
-
2012
- 2012-01-06 US US13/344,981 patent/US8588554B2/en not_active Expired - Fee Related
- 2012-01-17 CN CN2012100249710A patent/CN102595088A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582458A (zh) * | 2001-11-01 | 2005-02-16 | 皇家飞利浦电子股份有限公司 | 改善的视频图像的空间分辨率 |
US20050134602A1 (en) * | 2003-12-23 | 2005-06-23 | Lsi Logic Corporation | Method and apparatus for video deinterlacing and format conversion |
CN101122998B (zh) * | 2007-09-28 | 2010-06-23 | 宝利微电子系统控股公司 | 一种基于方向检测的图像插值方法及装置 |
Non-Patent Citations (1)
Title |
---|
陈芳: "图像的旋转插值算法和基于链码技术计算图像几何矩的算法研究", 《信息科技辑》, no. 11, 15 November 2006 (2006-11-15) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI511088B (zh) * | 2014-07-25 | 2015-12-01 | Altek Autotronics Corp | 產生方位影像的方法 |
CN112166431A (zh) * | 2018-05-15 | 2021-01-01 | 伍普提克斯股份有限公司 | 条形码检测方法 |
CN110428381A (zh) * | 2019-07-31 | 2019-11-08 | Oppo广东移动通信有限公司 | 图像处理方法、图像处理装置、移动终端及存储介质 |
CN110428381B (zh) * | 2019-07-31 | 2022-05-06 | Oppo广东移动通信有限公司 | 图像处理方法、图像处理装置、移动终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
GB2487242A (en) | 2012-07-18 |
US8588554B2 (en) | 2013-11-19 |
US20120182441A1 (en) | 2012-07-19 |
GB201100729D0 (en) | 2011-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102595088A (zh) | 内插 | |
US5991463A (en) | Source data interpolation method and apparatus | |
US8666154B2 (en) | Interpolation | |
KR20160064953A (ko) | 영상 처리 장치, 영상 처리 방법, 및 프로그램 | |
CN101911112A (zh) | 图像处理装置,图像处理方法,图像扩展装置,图像压缩装置,图像传输系统及存储介质 | |
CN102682426A (zh) | 图像处理设备、图像处理方法及程序 | |
KR20060114610A (ko) | 순차주사방식에서의 바이섹션 패턴 검출 방법 및 시스템 | |
US8948502B2 (en) | Image processing method, and image processor | |
CN106056560B (zh) | 单应性校正 | |
CN109993693B (zh) | 用于对图像进行插值的方法和装置 | |
US7228009B2 (en) | Generating interpolated display data using remote pixel data | |
US7324709B1 (en) | Method and apparatus for two-dimensional image scaling | |
EP1591955A2 (en) | Resolution converting method | |
US8842939B2 (en) | Direction-adaptive image upsampling system and method using double interpolation | |
KR20190080719A (ko) | 화상 확대 장치 | |
TW201209755A (en) | Fast and high quality image/video interpolation method and apparatus | |
JP4371907B2 (ja) | 画素特徴判定装置、画素補間装置、及び映像信号処理装置 | |
JP2008193462A (ja) | フレーム補間装置、及びフレーム補間方法 | |
JP6230467B2 (ja) | 画像処理装置及び画像処理方法 | |
KR20090063102A (ko) | 비디오 화상 포맷 변환 방법 및 대응 디바이스 | |
KR20070102989A (ko) | 2차원 공간변환을 표현하는 시스템과 방법 | |
JP3392800B2 (ja) | 補間方法及びその装置並びに記録媒体 | |
GB2487361A (en) | A digital interpolating FIR filter using fewer multipliers | |
US8107774B2 (en) | Image data processing method and image display apparatus | |
JP2017134464A (ja) | 画像処理方法及び画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120718 |