图像处理电路的制作方法

文档序号:6374010阅读:125来源:国知局
专利名称:图像处理电路的制作方法
图像处理电路技术领域
本发明有关于例如用于退化图像的图像复原(restoration)/增强的图像处理, 且特别有关于用于基于区域的迭代调整的图像增强方法、图像增强装置及图像处理电路。
背景技术
因为用于退化图像的图像复原/增强问题尚没有平凡(trivial)解,所以例如分辨率增强(也就是,插值)、去模糊(deblur)处理及噪声移除等问题,已成为一个难题。举例来说,假设gv是代表退化图像的退化图像向量而fv是代表原始图像的原始图像向量,通过退化模型,退化图像可描述如下
gv = DBfv + η ;
其中,B代表模糊矩阵,D代表次抽样矩阵,且Π代表噪声向量,而模糊矩阵B与噪声向量Π未知。发明内容
有鉴于此,本发明提供了一种图像处理电路。
本发明提供了一种图像处理电路,包含至少一个处理单元,处理单元的每一者用于执行迭代调整图像增强的迭代,处理单元的每一者包含第一像素撷取模块,用于按光栅扫描顺序输入第一图像的像素数据以及撷取第一图像的第一图像区块的像素数据;参考像素撷取模块,用于按光栅扫描顺序输入参考图像的像素数据以及撷取参考图像的参考图像区块的像素数据,其中关于参考图像的参考图像区块的相对位置与尺寸,对应于关于第一图像的第一图像区块的相对位置与尺寸;误差计算模块,用于根据第一图像的像素数据与参考图像的像素数据执行误差计算,以产生与第一图像区块的特定像素有关的一个或多个迭代误差项;以及更新模块,用于基于与特定像素有关的一个或多个迭代误差项更新特定像素,以产生用于迭代的第一图像的更新版 本。
本发明提供的图像处理电路,在区块处理单元内执行迭代调整图像增强而不使用处理单元间的回馈路径,可节省数据访问的带宽需求。


图1是根据本发明第一实施方式的用于基于区域的迭代调整的图像增强装置的示意图。
图2是根据本发明一个实施方式的用于基于区域的迭代调整的图像增强方法的流程图。
图3是根据本发明一个实施方式的图2所示的方法的实施细节的例子的示意图。
图4是根据本发明一个实施方式的基于整个帧不分区块的方式进行迭代调整的图像增强装置的示意图。
图5是根据图3所示的实施方式的一个变形,图4中所示的处理引擎与DRAM之间的数据流以及分别对应于上述数据流的数据量的示意图。
图6是根据本发明第二实施方式的用于基于区域的迭代调整的图像增强装置的示意图。
图7是根据本发明另一个实施方式的基于帧的用于迭代调整的图像增强装置的示意图。
图8是根据图3中所示的实施方式的一个变形,图7中所示的处理引擎与DRAM之间的数据流以及分别对应于上述数据流的数据量的示意图。
图9是根据图3中所示的实施方式的特定情况,图I或图6中所示的区块引擎与 DRAM之间的数据流以及分别对应于上述数据流的数据量的示意图。
图10是应用于图9中所示的实施方式的多个区域中的一个的细节的示意图。
图11是根据图9中所示的实施方式,图I或图6中所示的区块引擎与DRAM之间的某些数据流的序列的例子的示意图。
图12是根据本发明的第三实施方式的DRAM与多个区块引擎之间的某些数据流的序列的例子的不意图。
图13是图12中所示的多个区块引擎的某些操作的示意时序图。
图14是根据本发明的第四实施方式的DRAM与多个区块引擎之间的某些数据流的序列的例子的不意图。
图15是图14中所示的多个区块引擎的某些操作的示意时序图。
图16是根据本发明一个实施方式的包含至少一个处理单元的图像处理电路的示意图。
图17是图16中所示的实施方式中的待更新的特定像素的相对位置的示意图。
图18是根据图16中所示的实施方式的特定情况的对称过滤机制的示意图。
图19是根据图16中所示的实施方式的一个变形的包含多个处理单元的图像处理电路的不意图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的元件。所属技术领域的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及权利要求书并不以名称的差异作为区分元件的方式,而是以元件在功能上的差异作为区分的准则。在通篇说明书及权利要求项中所提到的「包含」为开放式的用语,故应解释成「包含但不限定于」。此外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。
请参考图1,图I是根据本发明第一实施方式的用于基于区域的迭代调整的图像增强装置100的示意图,其中图像增强装置100包含用于存储图像数据的存储器,图像增强装置100更包含用于执行迭代调整图像增强的一个或多个区域引擎。根据本实施方式,存储器是动态随机访问存储器(dynamic random access memory,以下简称为DRAM)105,并且区域引擎是区块引擎。举例来说,本实施方式的图像增强装置100包含例如区块引擎110 的单个区域引擎。此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。根CN 102982509 A书明说3/12 页
据本实施方式的一个变形,图像增强装置100包含例如多个区块引擎的两个或多个区域引擎。根据本实施方式的另一个变形,存储器(例如DRAM 105)位于图像增强装置100之外。
如图I所示,上述例如区块引擎110的区域引擎包含计算逻辑与寄存器单元112 (图中标示为“计算逻辑与寄存器单元”),且此区域引擎更包含例如两个静态随机访问存储器(static random access memory,以下简称为SRAM)114与SRAM 116的多个区域缓冲器。 根据本实施方式,计算逻辑与寄存器单元112用于执行区域引擎的操作,更确切来说,计算逻辑与寄存器单元112用于执行迭代调整图像增强的操作。两个区域缓冲器SRAM 114与 SRAM 116用于在迭代之前/后存储数据。
更确切来说,区域缓冲器包含第一区域缓冲器与第二区域缓冲器,其中第一区域缓冲器用于在迭代之前/后存储数据、第二区域缓冲器则用于同一迭代之后/前存储数据且第一区域缓冲器与第二区域缓冲器在下一迭代过程中交换角色。根据本实施方式,对于特定迭代,SRAM 114在这个迭代之前存储数据且SRAM 116在这个迭代之后存储数据。然后,对于下一迭代,SRAM 116在这个迭代之前存储数据且SRAM 114在这个迭代之后存储数据。更详细的描述请参考图2。
图2是根据本发明一个实施方式的用于基于区域的迭代调整的图像增强方法的流程图。图2所示的方法可应用于装置100,更确切来说,此方法可应用于上述区域引擎(例如区块引擎110)。此方法描述如下。
在步骤910中,对于图像的每一区域,一个或多个区域引擎中的一个区域引擎(例如区块引擎110)用于执行这个区域的最近代表函数(latest representative function) 的目标函数的至少一个梯度计算,且根据梯度计算更新最近代表函数,举例来说,至少一个梯度计算可以是最近代表函数的优化程序。
在步骤920中,对于图像的这个区域,当至少一个预定收敛准则(例如单个收敛准则或多个收敛准则)没有被满足时,步骤910中提到的相同区域引擎(例如区块引擎110)用于根据最近代表函数的相同目标函数的至少一个梯度计算,迭代地更新最近代表函数。
在步骤930中,对于图像的这个区域,当至少一个预定收敛准则(例如单个收敛准则或多个收敛准则)被满足时,步骤910中提到的相同区域引擎(例如区块引擎110)用于对这个区域的最近代表函数执行后处理以产生对应于这个区域的迭代调整的部分图像。
请注意,应用于步骤920与步骤930中的收敛准则的数目可以是一个或多个。举例来说,可以仅应用一个收敛准则来决定是否执行步骤920或步骤930。在另一个例子中, 可应用两个或多个收敛准则来决定是否执行步骤920或步骤930。
根据本实施方式,对于图像的所有区域,上述一个或多个区域引擎(例如区块引擎 110)配置为应用相同的收敛准则以决定是否执行步骤920或步骤930。此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。根据本实施方式的一个变形,对于图像的多个区域,上述一个或多个区域引擎(例如区块引擎110)配置为应用各自的预定收敛准则。
在本实施方式中,目标函数对应于图像增强算法。此外,对于图像的所有区域,上述一个或多个区域引擎(例如区块引擎110)配置为应用相同的目标函数。此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。根据本实施方式的一个变形,对于图像的多个区域,上述一个或多个区域引擎(例如区块引擎110)配置为应用所述区域的最近代表函数的各自的目标函数。目标函数对应于各自的图像增强算法。因在本变形中应用多个5目标函数,故可将各种图像增强算法运用到所述区域。
图3是根据本发明一个实施方式的图2所示的方法的实施细节的例子的示意图, 其中符号“g”代表在步骤910中提到的图像(例如上述退化图像)且符号“f*”代表生成图像。
在本实施方式中,步骤910中提到的区域引擎(例如区块引擎110)用于为上述图像(例如上述退化图像)的每一区域执行如图3所示的工作流程,其中对于每一区域此工作流程以预处理操作(图中标示为“预处理(f°)”)开始且以后处理操作(图中标示为“后处理”)结束。结果,步骤910中提到的区域引擎(例如区块引擎110)产生分别对应所述区域的多个迭代调整的部分图像,以产生生成图像“f*”,其中生成图像“f*”包含上述迭代调整的部分图像。特别地,生成图像“f”由上述迭代调整的部分图像组成。
根据图3所示的工作流程,步骤910中提到的区域引擎(例如区块引擎110)为每一区域执行循环,其中此循环是介于预处理操作与后处理操作之间。举例来说,此循环的第一迭代对应于这个区域的步骤910,其中符号fMf表步骤910中提到的最近代表函数,迭代指数η等于初始值O而J代表步骤910中提到的目标函数。在第一迭代(η=0)开始时,最近代表函数fn等于从预处理操作取得的f°。
请注意,本实施方式的目标函数J是数据保真度函数与事前(prior)知识导引调整函数的线性组合,目标函数J可根据下述等式描述
J (f) = Jd (f) + XJp (f) ....................................... (I);
其中符号Jd代表数据保真度函数且Jp代表事前知识导引调整函数。根据等式(1), 步骤910中提到的区域引擎(例如区块引擎110)通过将数据保真度函数Jd与事前知识导引调整函数Jp相加计算目标函数,其中此事前知识导引调整函数JP被拉格朗日乘数λ (在本实施方式中也可被称为调整参数(parameter))加权且此拉格朗日乘数λ用于控制数据保真度函数Jd与事前知识导引调整 函数JP之间的折衷(tradeoff)。此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。根据本实施方式的一个变形,目标函数J是数据保真度函数与多个事前知识导引调整函数的线性组合,目标函数J可根据下述等式描述J (f) =Jd Cf)+λ Jpi (f)+A2Jp2 (f)+···;其中,JP1、JP2、…等代表事前知识导引调整函数。根据上述等式,步骤910中提到的区域引擎(例如区块引擎110)通过将数据保真度函数Jd与事前知识导引调整函数Jp相加计算目标函数,其中此事前知识导引调整函数JP1、 Jp2>…等分别被拉格朗日乘数λ2、…等加权。
实际上,数据保真度函数Jd用于代表重建误差,而事前知识导引调整函数Jp与 Jp1 > Jp2 >…等用于代表涉及期望解的事前知识。因此,当计算梯度时,重建误差与事前知识都应被考虑到。
根据本实施方式,如图3所示的工作流程的目标是分别对应于所述区域的迭代调整的部分图像找到最佳解,其可通过对每一区域的迭代以最小化目标函数J来实现。更确切来说,步骤910中提到的区域引擎(例如区块引擎110)通过计算最近代表函数产的目标函数J的导数J’(fn),执行所述区域的最近代表函数fn的目标函数J的梯度计算,且根据最近代表函数fn的目标函数J的导数J’ (fn)更新最近代表函数fn。
请参考图3 (特别是图中标示为“图像更新”的方框),步骤910中提到的区域引擎 (例如区块引擎110)用步长a (J’(fn))更新最近代表函数fn,以更新最近代表函数fMf表之中间(intermediate)部分图像,其中步长a (J’(fn))等于最近代表函数fn的目标函数J的导数J’(fn)的函数α,且它可以是增量或减量。本实施方式的函数α可以是线性函数。举例来说,步长a (J’(fn)河以是增量/减量(即增量或减量),此增量/减量的绝对值正比于最近代表函数fn的目标函数J的导数J’(fn)的函数,更确切来说,正比于导数J’(fn)的预定百分比。此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。根据本实施方式的一个变形,函数α可以是非线性函数。
只要收敛准则没有被满足,则步骤910中提到的区域引擎(例如区块引擎110)操作对应于步骤920的一个或多个后续迭代。在本实施方式中,当进入后续迭代时,迭代指数 η以等于一的增量增加。
根据本实施方式的特定情况,目标函数J可定义如下J (f) =|g-DBf I2+λ I I Hf I Iwt2 ;其中,算子H是高通过滤器、算子I I I代表I2范数(norm)、以及符号Wt代表基于邻域(neighborhood)的内容计算的加权矩阵。结果,步骤910中提到的区域引擎(例如区块引擎110)可根据以下等式更新最近代表函数fn
fn+1=fn+ a (J,(fn))
=fn+a (J,D (fn)+A J,p (fn));
其中
J,D (fn) =BtDt (g - DBfn);且
J,p (fn) =J,s (fn) =HTWtHfn。
此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。根据本实施方式的一个变形,目标函数J可是更加复杂。因此,需要较好的硬件资源用于实施如图1所示的计算逻辑与寄存器单元112 (图中标示为“计算逻辑与缓冲器”)。
请参考图4与图5。图4是根据本发明一个实施方式的基于整个帧不分区块的方式进行迭代调整的图像增强装置500的示意图,其中图像增强装置500包含DRAM105与处理引擎510,处理引擎510包含计算逻辑与寄存器单元512 (图中标示为“计算逻辑与寄存器单元”)。图5是根据图3所示的实施方式的一个变形,图4中所示的处理引擎510与 DRAM105之间的数据流以及分别对应于上述数据流的数据量的示意图。
如图5所示,例如Wz、N、S、及I的参数用于描述分别对应于上述数据流的数据量。 参数Wz代表用于处理区域中的像素的窗口 W的窗口尺寸。也就是,参数Wz的值与窗口 W 中的像素数量相等。此外,参数N代表输入图像的尺寸。也就是,参数N的值与输入图像中的像素数量相等。另外,参数S代表缩放因子(scalingfactor),而参数I代表迭代数量,它是迭代指数η的最大值。
对于帧的至少一部分,处理引擎510首先从DRAM105加载数据量为Wz XN的数据, 以执行预处理操作(图中标示为“预处理(f°)”)。在预处理操作之后,处理引擎510将数据量为S2XN的数据存储到DRAM105之中。在上述部分帧的迭代期间,处理引擎510从DRAM105 加载总数据量为I X Wz X S2 X N的数据,且将总数据量为I X S2 X N的数据存储到DRAM105之中。另外,处理引擎510从DRAM105加载数据量为Wz X S2XN的数据,以执行后处理操作(图中标示为“后处理”)。在后处理操作之后,处理引擎510将数据量为S2XN的数据存储到 DRAM105 之中。
因此,每一巾贞的总访问字节(access bytes per frame,以下简称为ABPF)可描述如下
ABPF= (1+ (1+1) XffzXS2) XffzXN+ (1+2) XS2XN。
举例来说,假设N= (720X480)、S=2、1=5、且 Wz= (8X8),则 AliiiF - 34005657600 ( ^ 340M ):
预处理、梯度计算及后处理使用的窗口的窗口尺寸Wz可以与上述例子的窗口尺寸相同,或者在其他实施方式中窗口尺寸Wz也可以不同。
图6是根据本发明第二实施方式的用于基于区域的迭代调整的图像增强装置200 的示意图。本实施方式中的图像增强装置200与图1中的图像增强装置100的不同之处在于图像增强装置200更包含区块列(region line)缓冲器218。如图6所示,图像增强装置 200包含例如DRAM 105的存储器与例如区块引擎210的区域引擎。除上述的计算逻辑与寄存器单元112 (图中标示为“计算逻辑与寄存器单元”)及SRAM 114与SRAM 116之外,区块引擎210更包含例如区块列缓冲器218的区域列缓冲器,此区域列缓冲器用于步骤910中的区域内的列缓冲。特别地,区块列缓冲器218包含一个或多个列缓冲器。
请参考图7与图8。图7是根据本发明另一个实施方式的基于帧的迭代调整的图像增强装置800的示意图,其中图像增强装置800包含DRAM105与处理引擎810,处理引擎 810包含计算逻辑与寄存器单元812 (图中标示为“计算逻辑与寄存器单元”)与帧列缓冲器818。图8是根据图3中所示的实施方式的一个变形,图7中所示的处理引擎与DRAM之间的数据流以及分别对应于上述数据流的数据量的示意图。
如图8所示,参数N、S、及I用于描述分别对应于上述数据流的数据量。对于 帧的至少一部分,处理引擎810首先从DRAM 105加载数据量为N的数据,以执行预处理操作(图中标示为“预处理(f°)”)。在预处理操作之后,处理引擎810将数据量为S2XN的数据存储到DRAM105之中。在上述部分帧的迭代期间,处理引擎810从DRAM 105加载总数据量为 I X S2 X N的数据,且将总数据量为I X S2 X N的数据存储到DRAM 105之中。另外,处理引擎 810从DRAM105加载数据量为S2XN的数据,以执行后处理操作(图中标示为“后处理”)。在后处理操作之后,处理引擎810将数据量为S2XN的数据存储到DRAM 105之中。
因此,每一帧的总访问字节ABPF可描述如下
ABPF= (2X1+3) XS2XN+N。
举例来说,假设N= (720X480)、S=2、1=5、且Wz= (8X8),且区块列缓冲器218包含 7 个列缓冲器,ABPF= 18316800 (= 18M).
另外,用于实施本例子中的区块列缓冲器218所需的存储容量是1440 X 7 —I ()()8() = I Ois.:丨,
根据本发明的某些实施方式(例如上述实施方式或变形),步骤910中提到的区域可代表上述图像(例如退化图像)的多个非重迭部分图像,步骤910中提到的区域引擎配置为应用所述区域的最近代表函数fn以产生整个区域的更新版本。此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。根据本发明的某些实施方式,步骤910中提到的区域可代表上述图像(例如退化图像)的多个重迭部分图像,步骤910中提到的区域引擎配置为应用所述区域的最近代表函数fn以产生区域的主要部分的更新版本。
请参考图9与图10。图9是根据图3中所示的实施方式的特定情况,图1或图6 中所示的区块引擎与DRAM之间的数据流(例如区块引擎110与DRAM105之间的数据流,或区块引擎210与DRAM 105之间的数据流)以及分别对应于上述数据流的数据量的示意图。 图10是应用于图9中所示的实施方式的多个区域中的一个的细节的示意图。
请注意,图10所示的区域m…等代表上述图像(例如退化图像)的多个重迭部分图像,其中区域…等分别包含内部(inner)区块匕為為、…等。在多个区域札、民為、···等的每一区域内,相关内部区块B包含bwXbh像素。除了内部区块B之外, 区域R更包含壳(shell),而本实施方式的壳包含内壳(图中标为“内壳”)与外壳(图中标不为“外壳”)。如图10所不,内壳包含一层(layer)像素而外壳也包含一层像素,这意味着上述壳包含两层像素。此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。 通常,壳的厚度等于Lk,因此,壳的总尺寸L可如下表示L=4XLK2+2XLKXbh+2XLKXbw。
也就是,参数L的值代表上述壳的像素的数量。
如图9所示,除参数N与S以外,例如Rz与Bz的其他参数用于描述分别对应于上述数据流的数据量。参数Rz代表区域R的尺寸。也就是,参数Rz的值代表区域R的像素数量。此外,参数Bz代表位于区域R中心的内部区块B的尺寸。也就是,参数Bz的值代表内部区块B的像素数量,其中Bz=bwXbh,bwR表区块B的宽度而bh代表区块B的高度。结果,Rz= (Bz+L)。
对于步骤910中提到的区域,上述区域引擎(例如区块引擎110或区块引擎210) 从DRAM 105加载数据量为RzX (N/Bz)的数据,以执行预处理操作(图中标示为“预处理 (f°)”)。在后处理操作之后,步骤910中提到的区域引擎将数据量为S2XN的数据存储到 DRAM 105之中。此处,当有需要时,上述参数N与S可应用于本实施方式。
因此,每一帧的总访问字节ABPF可描述如下
ABPF=RzX (N/Bz) +S2XN0
举例来说,假设N= (720X480)、S=2、1=5、Bz= (32X32)且 Rz= (40X40), ABPF= 1922400 (兰 ),
根据本实施方式,从基于区域的实施产生的生成图像f*可与本发明的另一实施方式的基于帧的实施产生的生成图像完全相同,而本实施方式的基于区域的实施需要较少的硬件资源。
通常来说,区域R的上述提到的壳的像素(例如图10所示的内壳与外壳)也是其他区域的像素。请注意,区域R的壳用于防止区域之间的不一致。举例来说,假设梯度计算需要窗口尺寸为(3X3)的窗口(例如窗口 W的窗口尺寸Wz等于(3X3))且假设LK=2并且 1=2,因如图10所示的外壳的像素的某些相邻像素的数据并不位于SRAM 114与SRAM 116 的任何一个之中,故所述像素的像素值将在第一次迭代之后出错。此外,因相邻像素的某些错误像素值(例如外壳的像素的像素值)用于执行内壳的像素的梯度计算,故如图10所示的内壳的像素的像素值将在第二次迭代之后出错。因此,通过应用内部区块Bi、B2、B3、…等以产生生成图像f%因内壳与外壳的像素值没有用作生成图像f*的像素值,故本发明保证了生成图像f"的正确性。迭代数量I取决于窗口尺寸Wz与防护像素的数量LK。
图11是根据图9中所示的实施方式,图1或图6中所示的区块引擎与DRAM之间的某些数据流的序列(例如区块引擎110与DRAM 105之间的某些数据流的序列,或区块引擎210与DRAM 105之间的某些数据流的序列)的例子的示意图。为简便起见,列举图像增强装置200的区块引擎210作为例子,其中对应于图1的数据流的序列与对应于图11的数据流的序列相似。虚线所示的圆圈中的数字1、2、3、4、5、6、…等代表数据流序列。举例来说,步骤910中提到的区域引擎(例如区块引擎110或区块引擎210)首先从DRAM 105加载区域R1的数据且对区域R1执行如图9所示的工作流程,然后区域引擎将对应于区域R1的迭代调整的部分图像的数据存储到DRAM 105之中。之后,区域引擎(例如区块引擎110或区块引擎210)从DRAM 105加载区域R2的数据且对区域R2执行如图9所示的工作流程,然后区域引擎将对应于区域R2的迭代调整的部分图像的数据存储到DRAM 105之中。类似地, 区域引擎(例如区块引擎110或区块引擎210)对后续区域R3、R4、R5、…等继续上述操作。
图12是根据本发明的第三实施方式的DRAM与多个区块引擎之间的某些数据流的序列的例子的示意图。本实施方式中的图像增强装置300与图1中的图像增强装置100或图6中的图像增强装置200不同。如图12所示,图像增强装置300包含例如DRAM 105的存储器与例如区块引擎210-1与区块引擎210-2的多个区域引擎,其中本发明的任何一个区块引擎(例如区块引擎210-1或区块引擎210-2)包含与如图1中所示的区块引擎110或如图6中所示的区块引擎210相同的元件。
虚线所示的圆圈中的数字1、2、3、4、…等代表数据流序列。举例来说,区块引擎 210-1与区块引擎210-2从DRAM 105分别加载区域R1与区域R2的数据,且进一步对区域R1 与区域R2分别执行如图 9所示的工作流程。然后区块引擎210-1与区块引擎210-2将对应于区域R1与区域R2的迭代调整的部分图像的数据分别存储到DRAM105之中。随后,区块引擎210-1与区块引擎210-2分别将区域R3与区域R4的数据加载到DRAM 105,且进一步对区域R3与区域R4分别执行如图9所示的工作流程。区块引擎210-1与区块引擎210-2将对应于区域R3与区域R4的迭代调整的部分图像的数据分别存储到DRAM 105之中。类似地, 区块引擎210-1与区块引擎210-2对后续区域R5、R6、…等继续上述操作。
图13是图12中所示的区块引擎210-1与区块引擎210-2的某些操作的示意时序图,其中水平轴(图中标示为“t”)代表时间轴。根据本实施方式,符号“L0adr’、“EXEl”与 “Savel”分别代表由第一区块引擎(例如区块引擎210-1)对例如区域R1的特定区域执行的加载操作、主要操作(即对区域执行图9所示的工作流程的右半部分的区域引擎操作)、及存储操作。另外,符号“Load2”、“EXE2”与“Save2”分别代表由第二区块引擎(例如区块引擎 210-2)对例如区域R2的下一区域执行的加载操作、主要操作、及存储操作。类似描述在本实施方式中不再赘述。
图14是根据本发明的第四实施方式的DRAM与多个区块引擎之间的某一数据流的序列的例子的示意图。本实施方式的图像增强装置400与图12中的图像增强装置300 不同,图像增强装置400包含例如DRAM 105之存储器与例如区块引擎210-1与区块引擎 210-2的多个区域引擎,且更包含用于仲裁区块引擎210-1与区块引擎210-2的操作的仲裁器420。更确切来说,仲裁器420是用于区块引擎210-1与区块引擎210-2的DRAM仲裁器。
图15是图14中所示的区块引擎210-1与区块引擎210_2的某些操作的示意时序图,其中水平轴(图中标示为“t”)代表时间轴。符号“L0adl,,、“EXEl,,与“Savel”分别代表由第一区块引擎(例如区块引擎210-1)执行的加载操作、主要操作、及存储操作,符号 “Load2”、“EXE2”与“Save2”分别代表由第二区块引擎(例如区块引擎210-2)执行的加载操作、主要操作、及存储操作。例如“Load3”、“EXE3”与“Save3”…等的其他符号可用于代表后续操作。举例来说,符号“Load3”、“EXE3”与“Save3”分别代表由第一区块引擎(例如区块引擎210-1)对例如区域R3的后续区域执行的加载操作、主要操作、及存储操作。通过应用DRAM仲裁器,两个或多个区块引擎的操作可按高效方式调度。类似描述在本实施方式中不再赘述。
图16是根据本发明一个实施方式的包含至少一个处理单元的图像处理电路的示意图。更确切来说,上述图像处理电路包含至少一个如图16所示的处理单元PE-n的处理单元。
为避免混淆,特在此澄清对符号η相关的描述。根据本实施方式,符号η仍代表迭代指数。举例来说,当处理单元的总数量等于一时(其中此处理单元配置为在上述图像处理电路中执行调整图像增强),就意味着在本实施方式中的迭代数量等于一,迭代指数η仅可以是零且处理单元PE-n实质上是处理单元PE-Ο。在另一个例子中,当处理单元的总数量等于预定处理单元数目时(其中此处理单元配置为在上述图像处理电路之中执行调整图像增强),就意味着在本实施方式中的迭代数量等于预定处理单元数,迭代指数η可以是从零到预定处理单元数减一的范围内的整数。具体来说,例如图16中所示的处理单元PE-n的每一处理单元,用于执行迭代调整图像增强中的一个迭代。更具体来说,处理单元PE-n执行迭代调整图像增强中的第(n+1)次迭代。
根据本实施方式,例如图16中所示的处理单元PE-n包含第一像素撷取模块1610、 参考像素撷取模块1620、误差计算模块1630、以及更新模块1640。如图16所示,第一像素撷取模块1610包含多个第一图像延迟线1612与耦接于第一图像延迟线1612的多个第一图像缓冲器集合1614,其中每一个标示为“DC”的功能方框代表延迟单元且每一个标示为“RG”的功能方框代表缓冲器。此外,参考像素撷取模块1620包含多个参考图像延迟线 1622、耦接于参考图像延迟线1622的多个参考图像缓冲器集合1624及切换单元1626 (在图16中标示为“SU”)。另外,误差计算模块1630包含多个例如分别标示为“Gen eA”、“Gen eB”、“Gen e。”、及“Gen eD”的误差项产生器。根据本实施方式,在例如图16中所示的处理单元PE-n的每一个处理单元的输出端及输入端之间不存在像素数据回馈路径。因为不存在回馈路径,所以当需要插入用于高速应用的管线缓冲器时,与现有技术相比,本发 明可极大程度地节省芯片面积与相关成本。
请注意,第一图像延迟线1612与参考图像延迟线1622可与缓冲器实施。此描述只是用于说明本发明原理的目的,并不是作为本发明的限制。根据本实施方式的一个变形, 第一图像延迟线1612与参考图像延迟线1622可与SRAM实施以实现小很多的芯片面积并节约相关成本。
在本实施方式中,每一个第一图像延迟线1612具有与第一图像Sn的第一图像宽度相等的延迟单元数,每一个参考图像延迟线1622具有与参考图像&的参考图像宽度相等的延迟单元数,其中第一图像宽度与参考图像宽度以像素为单位量测。因为在本实施方式中第一图像sn的分辨率大于参考图像rn的分辨率,所以第一图像Sn的第一图像宽度在图16中标示为“高分辨率图像宽度”,用于指示每一个第一图像延迟线1612的延迟单元数; 参考图像^的参考图像宽度在图16中标示为“低分辨率图像宽度”,用于指示每一参考图像延迟线1622的延迟单元数。
处理单元PE-n的各自的部分的具体操作描述如下。第一像素撷取模块1610用于按光栅扫描顺序输入第一图像Sn的像素数据并且撷取第一图像Sn的第一图像区块的像素数据。参考像素撷取模块1620用于按光栅扫描(raster scan)顺序输入参考图像rn的像素数据并且撷取参考图像rn的参考图像区块的像素数据,其中关于参考图像rn的参考图像区块的相对位置与尺寸,对应于关于第一图像sn的第一图像区块的相对位置与尺寸。更具体来说,第一图像延迟线1612用于输入第一图像Sn的像素数据,第一图像缓冲器集合1614 用于撷取第一图像区块的像素数据。类似地,参考图像延迟线1622用于输入参考图像&的像素数据,参考图像缓冲器集合1624用于撷取参考图像区块的像素数据。
请注意切换单元1626是用于切换参考图像延迟线1622的输入路径,以控制参考图像rn的像素数据的输入时序。更确切来说,在本实施方式中,切换单元1626用于对第一图像sn的每隔一个样本与第一图像Sn的每隔一条延迟线使能参考图像延迟线1622的输入路径。由于如图16所示的构架,第一图像Sn按光栅扫描顺序以每一频率周期一个样本的速率被输入到第一像素撷取模块1610,而因切换单元1626的控制,参考图像rn按光栅扫描顺序以较低速率被输入到参考像素撷取模块1620,使得关于参考图像rn的参考图像区块的相对位置与尺寸,对应于关于第一图像Sn的第一图像区块的相对位置与尺寸。
此外,误差计算模块1630用于根据第一图像的像素数据与参考图像的像素数据执行误差计算,以产生与第一图像区块的特定像素(例如PA、Pa、Pb、或P。)有关的一个或多个迭代误差项。
根据本实施方式,误差计算模块1630用于从第一像素撷取模块1610 (特别是第一图像缓冲器集合1614)以并行方式读取第一图像区块的各自的像素的像素数据。因为在本实施方式中存在五组第一图像缓冲器,每一组第一图像缓冲器具有五个缓冲器,第一图像区块的尺寸安排为(5X5),并且误差计算模块1630以并行方式读取第一图像区块的 (5X5)像素的像素数据。
类似地,误差计算模块1630用于从参考像素撷取模块1620(特别是参考图像缓冲器集合1624)以并行方式读取参考图像区块的各自的像素的像素数据。因为在本实施方式中存在两组参考图像缓冲器,每一组参考图像缓冲器具有两个缓冲器,参考图像区块的尺寸安排为(2X2),并且误差计算模块1630以并行方式读取参考图像区块的(2X2)像素的像素数据。
请注意,在上述特定像素位于第一图像区块的中心的情形下,这个特定像素可以是此第一图像区块的中心像素。在上述情形下,第一图像缓冲器集合1614的中心缓冲器 (也就是,第一图像缓冲器集合1614的中心集合的中心缓冲器)存储此特定像素的像素数据。
图17是图16中所示的实施方式中的待更新的特定像素(例如PA、Pa、Pb、或P。)的相对位置的示意图。举例来说,误差计算模块1630可根据下述等式产生迭代误差项eA、eB、 ec、及 eD
eA=rA_K*sn,A ;
eB=rB_K*sn,B ;
ec=rc-K*sn,c ;及
eD=rD-K*sn D ;
其中符号“ K ”代表例如(3 X 3 )滤波核心(f i I ter kerne I)的滤波核心,而符号“ * ”表示在sn,x的中心过滤,X指示上述等式中PA、Pa、Pb、与P。的任何一个像素Px的像素位置。 在本实施方式中,在图16中标示为“Gen eA”、“Gen eB”、“Gen ec”、及“Gen eD”的误差项产生器分别产生迭代误差项eA、eB、e。、及eD。实际上,基于上述等式涉及的计算,每一个误差项产生器可包含多个算术单元,例如多个乘法器与加法器连同一个或几个减法器。
另外,更新模块1640用于基于与特定像素(例如PA、Pa、Pb、或P。)有关的一个或多个迭代误差项(例如迭代误差项eA、eB、e。、及eD的一个或多个)更新该特定像素,以产生用于此迭代(例如迭代地调整的图像增强的第(n+1)次迭代)的第一图像Sn的更新版本。特别地,第一像素撷取模块1610用于改变与对齐关于第一图像Sn的第一图像区块的相对位置, 且参考像素撷取模块1620用于改变与对齐关于参考图像rn的参考图像区块的相对位置, 以促使更新模块1640更新第一图像Sn的每一像素。
实际上,更新模块1640可根据下述等式更新特定像素PA、Pa、Pb、及Pc
sn+1;A=sn;A+aA eA,
对于特定像素PA;
sn+1;a=sn;a+ a a (eA K (l,0)+eB K (-1,0)),
对于特定像素Pa ;
sn+1,b=sn,b+a b (eA K (0, I) +ec K (0,-1)),
对于特定像素Pb ;及
sn+1,c=sn,c+ a c (eA K (1,1) +eB K (-1,I) +ec K (1,-1) +eD K (-1,-1)),
对于特定像素P。;
其中符号αΑ、aa、ab、及α。分别代表特定像素PA、Pa、Pb、及P。的步长。举例来说,步长αΑ、a a> ct b、及α。互相依赖。特别地,步长α Α、a a、ctb、及α。可以用与上述获得函数α的相同的方法获得,其中步长aa、ab、及α。正比于步长α Α。类似描述在本实施方式中不再赘述。
请注意,通过应用第一像素撷取模块1610来改变与对齐关于第一图像Sn的第一图像区块的相对位置,且通过应用参考像素撷取模块1620来改变与对齐关于参考图像rn 的参考图像区块的相对位置,处理单元PE-n可使用相同方法继续另一像素集合的更新操作。举例来说,另一像素集合可为(2X2)的像素区块并且特定像素Pb为其左上像素,或者可为(2X2)的像素区块并且特定像素P。为其左上像素,或者可为(2X2)的像素区块并且特定像素Pd为其左上像素等。
图18是根据图16中所示的实施方式的特定情况的对称过滤机制的示意图。在这个特定的情况下,上述提到的过滤是对称的。也就是,滤波核心K是对称的。由于运用了这个对称过滤方案,滤波核心加权值K (-1,-1)、κ (_1,1)、Κ (1,-1)、及K (1,I)可以认为是相同的。类似地,滤波核心加权值K (O,-1),K (0,1)、Κ (_1,0)、及K (1,0)可以认为是相同的。此外,更新模块1640因此可根据下述等式更新特定像素PA、Pa、Pb、及P。
sn+1;A=sn;A+aA eA,
对于特定像素Pa ;
sn+1’a=sn’a+a a,(eA+eB),
对于特定像素Pa ;
sn+1’b=sn’b+a a,(eA+ec),
对于特定像素Pb;及
sn+1,c=sn,c+a / (eA+eB+ec+eD),
对于特定像素Pc ;
其中符号aa’代表特定像素Pa与Pb的步长且符号α。’代表特定像素P。的步长。 请注意,步长aa’正比于步长aa且步长α。’正比于步长α。。类似描述在本实施方式中不再赘述。
图19是根据图16中所示的实施方式的一个变形,包含多个处理单元PE-0、PE_1、 ΡΕ-2、…等的图像处理电路的示意图,其中上述至少一个处理单元包含串联的处理单元 ΡΕ-0、ΡΕ-1、ΡΕ-2、…等。请注意,每一个处理单元PE-O、PE-1、ΡΕ-2、…等实质上与图16 中所示的处理单元PE-n相同。
在这个变形中,处理单元PE-0、PE-1、PE_2、…等分别用于执行迭代调整图像增强的迭代,例如第一次迭代、第二次迭代、第三次迭代等。更确切来说,串联的处理单元ΡΕ-0、 PE-U PE-2、...等配置为不使用任何处理单元PE-0、PE-U PE-2、…等之间的回馈路径而执行迭代调整图像增强的迭代。因为不存在回馈路径,所以当需要插入用于高速应用的管线缓冲器时,与现有技术相比,本申请可极大程度地节省芯片面积与相关成本。
本发明的另一优点在于,因为在每一个处理单元PE-0、PE-1、PE_2、…等之内不存在DRAM访问,且因处理单元PE-O、PE-U PE-2、…等之间也不存在DRAM访问,所以不会引入DRAM带宽的瓶颈效应。因此,本实施方式的图像处理电路的性能优于根据现有技术实施的图像处理电路。
本发明的又一优点在于,因为每一处理单元PE-0、PE-1、PE_2等(例如图16中所示的处理单元PE- n)按光栅扫描顺序输入第一图像Sn与参考图像rn的像素数据,且按光栅扫描顺序进一步输出其更新版本sn+1与rn+1的像素数据,所以可以有效地将图像处理电路整合到其他装置(例如图像处理器与视讯播放装置)而不会引入副作用或不必要的成本增长。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。
权利要求
1.一种图像处理电路,包含 至少一个处理单元,每一处理单元用于执行迭代调整图像增强的迭代,且每一处理单元包含 第一像素撷取模块,用于按光栅扫描顺序输入第一图像的像素数据并撷取该第一图像的第一图像区块的像素数据; 参考像素撷取模块,用于按该光栅扫描顺序输入参考图像的像素数据并撷取该参考图像的参考图像区块的像素数据,其中关于该参考图像的该参考图像区块的相对位置与尺寸,对应于关于该第一图像的该第一图像区块的相对位置与尺寸; 误差计算模块,用于根据该第一图像的像素数据与该参考图像的像素数据执行误差计算,以产生与该第一图像区块的特定像素有关的一个或多个迭代误差项;以及 更新模块,用于基于与该特定像素有关的该一个或多个迭代误差项更新该特定像素,以产生用于该迭代的该第一图像的更新版本。
2.如权利要求I所述的图像处理电路,其特征在于,该第一像素撷取模块用于改变与对齐关于该第一图像的该第一图像区块的相对位置,且该参考像素撷取模块用于改变与对齐关于该参考图像的该参考图像区块的相对位置,以促使该更新模块更新该第一图像的每一像素。
3.如权利要求I所述的图像处理电路,其特征在于,该图像处理电路包含串联的多个处理单元;以及该处理单元分别用于执行该迭代调整图像增强的多个迭代。
4.如权利要求3所述的图像处理电路,其特征在于,串联的该多个处理单元未使用该多个处理单元之间的任何回馈路径来执行该迭代调整图像增强的多个迭代。
5.如权利要求I所述的图像处理电路,其特征在于, 该第一像素撷取模块包含 多个第一图像延迟线,每一第一图像延迟线具有与该第一图像的第一图像宽度相等的延迟单元数,其中该多个第一图像延迟线用于输入该第一图像的像素数据;以及 多个第一图像缓冲器集合,耦接于该多个第一图像延迟线,其中该多个第一图像缓冲器集合用于撷取该第一图像区块的像素数据; 以及该参考像素撷取模块包含 多个参考图像延迟线,每一参考图像延迟线具有与该参考图像的参考图像宽度相等的延迟单元数,其中该多个参考图像延迟线用于输入该参考图像的像素数据;以及 多个参考图像缓冲器集合,耦接于该多个参考图像延迟线,其中该多个参考图像缓冲器集合用于撷取该参考图像区块的像素数据。
6.如权利要求5所述的图像处理电路,其特征在于,该第一图像宽度与该参考图像宽度以像素作为量测单位。
7.如权利要求I所述的图像处理电路,其特征在于,该误差计算模块用于从该第一像素撷取模块以并行方式读取该第一图像区块的各个像素的像素数据;以及该误差计算模块用于从该参考像素撷取模块以并行方式读取该参考图像区块的各个像素的像素数据。
8.如权利要求I所述的图像处理电路,其特征在于,在该至少一个处理单元中的每一者的多个输出端与多个输入端之间不存在像素数据回馈路径。
9.如权利要求I所述的图像处理电路,其特征在于,该第一图像的分辨率大于该参考图像的分辨率。
全文摘要
本发明提供图像处理电路,包含至少一个处理单元,每一处理单元执行迭代调整图像增强的迭代,且包含第一像素撷取模块按光栅扫描顺序输入第一图像的像素数据并撷取该第一图像的第一图像区块的像素数据;参考像素撷取模块按光栅扫描顺序输入参考图像的像素数据并撷取参考图像的参考图像区块的像素数据;误差计算模块根据第一图像的像素数据与参考图像的像素数据执行误差计算,产生与第一图像区块的特定像素有关的一个或多个迭代误差项;更新模块基于与特定像素有关的一个或多个迭代误差项更新特定像素,产生用于迭代的第一图像的更新版本。本发明在区块处理单元内执行迭代调整图像增强而不使用处理单元间的回馈路径,以节省数据访问的带宽需求。
文档编号G06T5/00GK102982509SQ20121026213
公开日2013年3月20日 申请日期2010年5月24日 优先权日2009年8月2日
发明者蔡玉宝, 黄毓文, 陈颖睿, 雷少民 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1