运算装置、运算方法和程序与流程

文档序号:13518734阅读:197来源:国知局
运算装置、运算方法和程序与流程

本发明涉及运算装置、运算方法和程序。本申请根据2015年6月3日在日本申请的日本特愿2015-113210号主张优先权,将其内容引用于此。



背景技术:

在动态图像的手抖校正和动态图像的压缩的领域中,公知利用计算出运动向量的结果的方法。作为运动向量的运算方法,广泛公知利用块匹配法的方法。块匹配法是将进行比较的2张图像分别划分成多个区域并按照划分后的每个区域运算2张图像之间的相关值的方法。根据该运算结果得到的相关值计算运动向量。

例如在专利文献1中提出了这种利用块匹配法的运动向量检测装置。

现有技术文献

专利文献

专利文献1:日本特许第4547321号公报



技术实现要素:

发明要解决的课题

在运算2张图像之间的相关值的情况下,根据块匹配法,能够进行准确的相关值的运算。但是,在基于块匹配法的相关运算中,作为运算对象的图像的区域越大,则运算量越变得膨大。因此,运算相关值的运算电路始终持续动作,存在运算电路消耗的消耗电力变得更大这样的问题。

本发明是鉴于上述情况而完成的,提供能够削减运算电路的消耗电力的运算装置、运算方法和程序。

用于解决课题的手段

本发明的第一方式的运算装置将基准帧分割成多个基准块,在参照帧中设定与所述基准帧对应的参照块,在所述基准块与所述参照块之间进行相关运算,其特征在于,所述运算装置具有:基准块数据存储部,其存储所述基准块的数据;参照块数据存储部,其存储所述参照块的数据;多个相关运算部,它们使用所述基准块的数据和所述参照块的数据,分别同时运算多个不同位置的相关值;以及排序部,其按照相关性从高到低的顺序对由所述相关运算部运算出的多个所述相关值进行排序,保持其结果,进行如下的相关运算停止处理:对分别输入到多个所述相关运算部的相关阈值和由多个所述相关运算部分别运算出的多个所述相关值进行比较,在所述相关值的相关性低于所述相关阈值的情况下,使所述相关运算部的动作停止。

根据本发明的第二方式,在第一方式的运算装置中,其特征在于,所述相关阈值是从所述排序部输出的。

根据本发明的第三方式,在第二方式的运算装置中,其特征在于,所述相关阈值是所述排序部保持的排序后的所述相关值中的相关性最高的相关值。

根据本发明的第四方式,在第一方式的运算装置中,其特征在于,所述运算装置具有对所述相关阈值进行控制的控制部,所述相关阈值是从所述控制部输出的。

根据本发明的第五方式,在第一方式的运算装置中,其特征在于,所述相关运算停止处理是通过使所述相关运算部的工作时钟停止而使所述相关运算部的动作停止的处理。

根据本发明的第六方式,在第一方式的运算装置中,其特征在于,所述相关运算停止处理是通过使向所述相关运算部输入的数据的一方成为最大值、另一方成为最小值而使所述相关运算部的动作停止的处理。

根据本发明的第七方式,在第一方式的运算装置中,其特征在于,所述相关运算停止处理是在下一个所述基准块与所述参照块之间的相关运算开始的情况下结束的处理。

本发明的第八方式的运算方法将基准帧分割成多个基准块,在参照帧中设定与所述基准帧对应的参照块,在所述基准块与所述参照块之间进行相关运算,其特征在于,所述运算方法具有以下步骤:基准块数据存储步骤,存储所述基准块的数据;参照块数据存储步骤,存储所述参照块的数据;多个相关运算步骤,使用所述基准块的数据和所述参照块的数据,分别同时运算多个不同位置的相关值;以及排序步骤,按照相关性从高到低的顺序对通过所述相关运算步骤运算出的多个所述相关值进行排序,保持其结果,具有如下的相关运算停止步骤:对多个所述相关运算步骤中分别输入的相关阈值和通过多个所述相关运算步骤分别运算出的多个所述相关值进行比较,在所述相关值的相关性低于所述相关阈值的情况下,使所述相关运算步骤的动作停止。

本发明的第九方式的程序用于使计算机执行以下步骤:运算步骤:将基准帧分割成多个基准块,在参照帧中设定与所述基准帧对应的参照块,在所述基准块与所述参照块之间进行相关运算;基准块数据存储步骤,存储所述基准块的数据;参照块数据存储步骤,存储所述参照块的数据;多个相关运算步骤,使用所述基准块的数据和所述参照块的数据,分别同时运算多个不同位置的相关值;排序步骤,按照相关性从高到低的顺序对通过所述相关运算步骤运算出的多个所述相关值进行排序,保持其结果;以及相关运算停止步骤,对多个所述相关运算步骤中分别输入的相关阈值和通过多个所述相关运算步骤分别运算出的多个所述相关值进行比较,在所述相关值的相关性低于所述相关阈值的情况下,使所述相关运算步骤的动作停止。

发明效果

根据本发明,能够削减运算电路的消耗电力。

附图说明

图1是示出使用块匹配法的2张图像之间的相关运算的一例的概略图。

图2a是示出块匹配法中的相关运算的运算量的一例的概略图。

图2b是示出块匹配法中的相关运算的运算量的一例的概略图。

图3是示出本发明的第1实施方式的运算装置进行的相关运算的一例的概略图。

图4是示出本发明的第1实施方式的运算装置进行的相关运算的一例的概略图。

图5是示出本发明的第1实施方式的运算装置进行的相关运算的一例的概略图。

图6是示出本发明的第1实施方式的运算装置的结构的一例的图。

图7是示出对本发明的第1实施方式的运算装置1的差分绝对值计算部301输入亮度值数据的定时的一例的时序图。

图8是示出本发明的第1实施方式的运算装置1的排序部40的结构的一例的图。

图9是示出本发明的第1实施方式的运算装置1进行的相关运算的一例的概略图。

图10是示出本发明的第1实施方式的运算装置1进行的相关运算的一例的概略图。

图11是示出本发明的第1实施方式的运算装置1进行的相关运算的一例的概略图。

图12是示出本发明的第1实施方式的运算装置1的相关运算部30和排序部40的结构的一例的图。

图13是示出本发明的第1实施方式的运算装置1的相关运算部30的运算停止动作的一例的图。

图14是示出本发明的第1实施方式的运算装置1的动作的一例的流程图。

图15是示出本发明的第2实施方式的运算装置1的相关运算部30的运算停止动作的一例的图。

图16是示出本发明的第3实施方式的运算装置1的相关运算部30的运算停止动作的一例的图。

具体实施方式

首先,参照附图对块匹配法的简单原理进行说明。

块匹配法是将进行比较的2张图像中的至少一个图像划分成多个区域并按照各区域运算2张图像之间的相关值的方法。下面,将进行比较的2张图像中的一方称为基准帧,将另一方称为参照帧。

在块匹配法中,在基准帧中的特定区域(基准块)与参照帧内的特定区域(参照块)之间进行相关运算。基准块和参照块具有相等的区域尺寸。

在相关运算中,一般使用sad(sumofabusolutedifference;差分绝对值和运算)、ssd(sumofsquareddifference;差分平方和运算)、ncc(normalizedcross-correlation;正则化互相关)或zncc(zero-meansnormalizedcross-correlation;零平均正则化互相关)等运算方法。

通过块匹配法,能够确定与参照块之间的相关性最高的基准块(的位置),并且能够检测运动向量。

下面,为了简化说明,设本例中的参照帧的区域尺寸是小于基准帧的区域尺寸。并且,设参照帧和参照块是相等的区域尺寸。即,设参照帧整体是一个参照块。

图1是示出使用块匹配法的2张图像之间的相关运算的一例的概略图。

在进行相关运算的情况下,例如,针对表示基准帧的基准帧y数据1(i)内的一个基准块(这里为图1的图像p1所示的最左上的基准块)设定参照块(参照帧y数据2(t))。然后,运算该基准块与参照块之间的相关值。另外,在本例中,设要求解的相关值是sad值。并且,通过对基准块数据和参照块数据各自的像素中的亮度值之差的绝对值进行合计,计算本例中的sad值。而且,sad值越小,则表示基准块中包含的图像与参照块中包含的图像之间的相关性越高。

然后,对基准帧y数据1(i)内从上述基准块起在水平方向上偏移1个像素后的区域即下一个基准块与参照块之间的sad值(图1的图像p2)进行运算。接着,同样,依次运算在水平方向上进一步向右一个像素一个像素地偏移后的基准块与参照块之间的sad值。然后,在基准帧y数据1(i)内到达右端的基准块后(图1的图像p3),再次对基准帧y数据1(i)内左端的基准块、且在垂直方向上向下一个像素一个像素地偏移后的基准块与参照块之间的sad值(图1的图像p4)进行运算。接着,同样,依次运算在水平方向上向右一个像素一个像素地偏移后的基准块与参照块之间的sad值。反复进行上述处理,运算出基准帧y数据1(i)内最右下的基准块与参照块之间的sad值后,全部基准块与参照块之间的sad值的运算完成(图1的图像p9)。

关于通过以上处理计算出的各sad值,根据用途实施各种统计处理并加以利用。例如,为了确定与参照块最相似的基准块,求出计算出的sad值中的最小值,或者,为了作为评价值进行利用,按照从小到大的顺序排列计算出的sad值并加以利用。或者,运算出的各sad值用于计算运动向量。

如上所述,在块匹配法中,运算sad值的图像的区域越大,则运算量越多。因此,运算sad值的运算电路始终持续动作,运算电路消耗的消耗电力更大。

图2a和图2b是示出块匹配法中的相关运算的运算量的一例的概略图。

例如,设基准帧y数据1(i)是在水平方向上具有20个像素且在垂直方向上具有20个像素的400个像素的图像(图2a)。并且,例如,设参照帧y数据2(t)是在水平方向上具有10个像素且在垂直方向上具有10像素的图像(图2b)。即,设参照块和各基准块都是在水平方向上具有10个像素且在垂直方向上具有10像素的图像。

该情况下,在运算一个基准块与参照块之间的sad值的sad运算处理中,包含100(=10×10)次的亮度值的减法处理、100次(=10×10)的差分绝对值运算处理和99(=100-1)次的差分绝对值的加法处理。

而且,在基准帧内包含合计121(=11×11)个基准块,所以,为了运算基准帧中包含的各基准块与参照块之间的sad值,需要进行121次的上述sad运算处理。

上述是基准帧y数据1(i)为400个像素的情况的例子,但是,例如,在最近的小型数字照相机拍摄的图像中,具有超过1,500万像素的像素数的图像也不少,实际上反复进行膨大量的运算。

(第1实施方式)

下面,参照附图对第1实施方式进行说明。

图3、图4和图5是示出本发明的第1实施方式的运算装置进行的相关运算的一例的概略图。

以下例示的运算装置1是如下的运算装置:该运算装置运算图2a所示的表示在水平方向上具有20个像素且在垂直方向上具有20个像素的图像的数据即基准帧y数据1(i)与图2b所示的表示在水平方向上具有10个像素且在垂直方向上具有10个像素的图像的数据即参照帧y数据2(t)之间的sad值。

第1实施方式的运算装置1搭载了用于运算sad值的多个运算电路,以确保较快的运算速度。例如,第1实施方式的运算装置1搭载了110个能够计算像素的亮度值之差的绝对值(以下称为差分绝对值)的运算电路(以下称为差分绝对值计算电路)。由此,运算装置1能够同时运算110个像素的差分绝对值。

图3的图像pa1表示设定基准帧y数据1(i)的最左上的基准块作为与参照块进行比较的比较区域。第1实施方式的运算装置针对由基准块的10个像素构成的最上方的行的各像素,运算基准块与参照块之间的像素的差分绝对值。然后,运算装置对运算出的差分绝对值(合计10个像素)进行合计,计算sad值(以下将该加法处理称为水平方向相加)。

为了一次同时进行图3的图像pa1所示的10个像素的差分绝对值的运算,需要10个差分绝对值计算电路。进而,为了一次同时进行图3的图像pa1~图3的图像pa11所示的110(=10×11)个像素的差分绝对值的运算,第1实施方式的运算装置1需要110个差分绝对值计算电路。

如上所述,第1实施方式的运算装置1具有110个差分绝对值计算电路,能够针对基准帧y数据1(i)中的一行所包含的像素,一次同时进行110次的差分绝对值的运算。

由此,运算装置1能够在一次运算中进行图3的图像pa1~图3的图像pa11的各差分绝对值的运算和水平方向相加,能够在一次运算中计算11个sad值。

接着,第1实施方式的运算装置一次同时进行从基准帧y数据1(i)的上方起第2行的110次的差分绝对值的运算。即,第1实施方式的运算装置在一次处理中同时进行图3的图像pa12~图3的图像pa22所示的110个像素的差分绝对值的运算以及11次的水平方向相加。

然后,运算装置将图3的图像pa12~图3的图像pa22中分别通过水平方向相加计算出的sad值分别与上述图3的图像pa1~图3的图像pa11中计算出的sad值进行相加(以下将该加法处理称为垂直方向相加)。

进而,通过反复进行上述处理,第1实施方式的运算装置能够以合计10次的处理次数进行图3的图像pa1~图3的图像pa110的sad运算。因此,第1实施方式的运算装置能够以合计10次的处理次数进行参照块与位于基准帧y数据1(i)内的最上段的11个基准块之间的sad运算。

由此,运算装置能够计算参照块与基准帧y数据1(i)内的位于最上段的11个基准块之间的sad值(sad值s001、sad值s002、…、sad值s011)。

这里,第1实施方式的运算装置通过后述排序部40,按照值从小到大的顺序(即相关性从高到低的顺序)排列所计算出的11个sad值(sad值s001、sad值s002、…、sad值s011)。

然后,排序部40例如仅保持其中从值较小的一方起上位10位的sad值。

接着,同样,第1实施方式的运算装置以合计10次的处理次数进行参照块与基准帧y数据1(i)内位于在垂直方向上向下偏移1个像素后的区域中的11个基准块之间的sad运算(图4的图像pa111~图4的图像pa220)。

由此,运算装置能够计算参照块与基准帧y数据1(i)内位于在垂直方向上向下偏移1个像素后的区域中的11个基准块之间的sad值(sad值s012、sad值s013、…、sad值s022)。

这里,第1实施方式的运算装置1通过后述排序部40,针对计算出的11个sad值(sad值s012、sad值s013、…、sad值s022)、以及以前计算出并保持在排序部中的10个sad值,按照值从小到大的顺序(即相关性从高到低的顺序)进行排列。

然后,排序部40例如仅保持其中从值较小的一方起上位10位的sad值。

然后,第1实施方式的运算装置1进行参照块与基准帧y数据1(i)的位于最下段的11个基准块之间的sad运算(图5的图像pa1101~图5的图像pa1210),由此,参照块与基准帧y数据1(i)内的全部121个基准块之间的sad运算结束。

因此,第1实施方式的运算装置1能够以合计110(=10×11)次的处理次数进行参照块与基准帧y数据1(i)内的全部121个基准块之间的sad运算。

如上所述,运算装置1能够确定基准帧y数据1(i)内的全部121个基准块与参照块之间的sad值(sad值s001、sad值s002、…、sad值s121)中、例如从值较小(即相关性较高)的一方起上位10位的sad值。即,运算装置1能够确定基准帧y数据1(i)内的121个基准块中、与参照块之间的相关性较高的基准块。

(运算装置1的基本结构)

接着,参照附图对运算装置1的基本结构进行说明。

图6是示出本发明的第1实施方式的运算装置1的结构的一例的图。

如图所示,运算装置1构成为包含基准块数据存储部10、参照块数据存储部20、相关运算部30、排序部40。

基准块数据存储部10存储从基准帧数据y1(i)划分(分割)的各基准块的数据。基准块数据存储部10例如由dram(dynamicrandomaccessmemory)、sram(staticrandomaccessmemory)或sdram(synchronousdram)构成。

参照块数据存储部20存储从参照帧数据y2(t)划分(分割)的各参照块的数据。参照块数据存储部20例如也由dram、sram或sdram构成。

相关运算部30进行从基准块数据存储部10取得的基准块的数据与从参照块数据存储部20取得的参照块的数据之间的相关运算。图6所示的运算装置1表示进行sad运算的电路。该情况下,相关运算部30运算各基准块与参照块中包含的每个像素的亮度值之差的绝对值(差分绝对值),将按照各基准块求出差分绝对值的总和而得到的sad值输出到排序部40。

另外,相关运算部30的结构的详细说明在后面叙述。

排序部40按照值从小到大的顺序(相关性从高到低的顺序)排列从相关运算部30取得的各基准块的sad值。然后,排序部40存储排列后的sad值中的预定件数(例如上位10件)的sad值。

然后,排序部40在每次从相关运算部30取得sad值时,在取得的sad值中包含已经存储的sad值,按照值从小到大的顺序(相关性从高到低的顺序)排列sad值。然后,排序部40确定排列后的sad值中的预定件数(例如上位10件)的sad值,通过所确定的sad值对所存储的sad值进行覆盖更新。

(相关运算部的结构)

接着,参照图6对相关运算部30的结构进行说明。

如图所示,相关运算部30构成为包含110个差分绝对值计算部301(301-1、301-2、…、301-110)、11个水平方向加法部302(302-1、302-2、…、302-11)、11个垂直方向加法部303(303-1、303-2、…、303-11)、11个保持部304(304-1、304-2、…、304-11)。

差分绝对值计算部301(301-1、301-2、…、301-110)从基准块数据存储部10取得表示基准块中的1个像素的亮度值的数据(图6的y1~y20),并且,从参照块数据存储部20取得表示参照块中的1个像素的亮度值的数据(图6的y1~y10)。差分绝对值计算部301(301-1、301-2、…、301-110)运算所取得的2个亮度值的差分绝对值,将运算结果输出到水平方向加法部302(302-1、302-2、…、302-11)。

例如,如图3的图像pa1、图3的图像pa12、图3的图像pa100、图4的图像pa111、图4的图像pa122、图4的图像pa210、图5的图像pa1101、图5的图像pa1112或图5的图像pa1200等所示,从差分绝对值计算部301-1输入到差分绝对值计算部301-10的数据是基准块位于基准帧的最左端的情况下的1行的数据。

同样,例如,如图3的图像pa2、图3的图像pa13、图3的图像pa101、图4的图像pa112、图4的图像pa123、图4的图像pa211、图5的图像pa1102、图5的图像pa1113或图5的图像pa1201等所示,从差分绝对值计算部301-11输入到差分绝对值计算部301-20的数据是基准块位于基准帧中从左端向右偏移1个像素后的位置的情况下的1行的数据。

同样,例如,如图3的图像pa11、图3的图像pa22、图3的图像pa110、图4的图像pa121、图4的图像pa132、图4的图像pa220、图5的图像pa1111、图5的图像pa1122或图5的图像pa1210等所示,从差分绝对值计算部301-11输入到差分绝对值计算部301-20的数据是基准块位于基准帧的最右端的情况下的1行的数据。

由此,相关运算部30利用110个差分绝对值计算部301(301-1、301-2、…、301-110)一次进行110个差分绝对值的运算,由此,能够一次进行基准帧的1行的差分绝对值的运算。

水平方向加法部302(302-1、302-2、…、302-11)计算对从10个差分绝对值计算部301分别取得的10个差分绝对值进行合计而得到的sad值,将其输出到垂直方向加法部303(303-1、303-2、…、303-11)。

例如,水平方向加法部302-1对差分绝对值计算部301-1~差分绝对值计算部301-10的差分绝对值计算部301输出的差分绝对值进行合计,计算sad值。例如,如图3的图像pa1、图3的图像pa12、图3的图像pa100、图4的图像pa111、图4的图像pa122、图4的图像pa210、图5的图像pa1101、图5的图像pa1112或图5的图像pa1200等所示,该sad值是基准块位于基准帧的最左端的情况下的针对1行运算出的sad值。

同样,例如,水平方向加法部302-2对差分绝对值计算部301-11~差分绝对值计算部301-20的差分绝对值计算部301输出的差分绝对值进行合计,计算sad值。例如,如图3的图像pa2、图3的图像pa13、图3的图像pa101、图4的图像pa112、图4的图像pa123、图4的图像pa211、图5的图像pa1102、图5的图像pa1113或图5的图像pa1201等所示,该sad值是基准块位于基准帧中从左端起向右偏移1个像素后的位置的情况下的针对1行运算出的sad值。

同样,例如,水平方向加法部302-11对差分绝对值计算部301-101~差分绝对值计算部301-110的差分绝对值计算部301输出的差分绝对值进行合计,计算sad值。例如,如图3的图像pa11、图3的图像pa22、图3的图像pa110、图4的图像pa121、图4的图像pa132、图4的图像pa220、图5的图像pa1111、图5的图像pa1122或图5的图像pa1210等所示,该sad值是基准块位于基准帧的最右端的情况下的针对1行运算出的sad值。

垂直方向加法部303(303-1、303-2、…、303-11)从水平方向加法部302(302-1、302-2、…、302-11)分别取得sad值,将所取得的sad值与后述保持部304(304-1、304-2、…、304-11)中分别存储的sad值进行相加。然后,垂直方向加法部303(303-1、303-2、…、303-11)利用相加后的sad值覆盖更新保持部304(304-1、304-2、…、304-11)中分别存储的sad值。

例如,垂直方向加法部303-1从水平方向加法部302-1取得sad值,将所取得的sad值与后述保持部304-1中存储的sad值进行相加。然后,垂直方向加法部303-1利用相加后的sad值覆盖更新保持部304-1中存储的sad值。

同样,例如,垂直方向加法部303-2从水平方向加法部302-2取得sad值,将所取得的sad值与后述保持部304-2中存储的sad值进行相加。然后,垂直方向加法部303-2利用相加后的sad值覆盖更新保持部304-2中存储的sad值。

同样,例如,垂直方向加法部303-11从水平方向加法部302-11取得sad值,将所取得的sad值与后述保持部304-11中存储的sad值进行相加。然后,垂直方向加法部303-11利用相加后的sad值覆盖更新保持部304-11中存储的sad值。

保持部304(304-1、304-2、…、304-11)分别存储sad值。保持部304(304-1、304-2、…、304-11)分别作为运算某个基准块与参照块之间的sad值的过程中的暂时存储区域发挥功能。

在从垂直方向加法部303(303-1、303-2、…、303-11)分别进行了10次的sad值的输入的情况下(即,最初输入sad值后,进行了9次的sad值的覆盖更新的情况下),保持部304(304-1、304-2、…、304-11)将该时点的sad值输出到排序部40。然后,保持部304(304-1、304-2、…、304-11)对所存储的sad值进行初始化(使值成为0)。

例如,从垂直方向加法部303-1进行了10次的sad值的输入,由此,保持部304-1判定为由10行构成的基准块与参照块之间的sad运算完成,将该sad运算结果输出到排序部40。然后,保持部304-1对所存储的sad值进行初始化(使值成为0)。

例如,如图3的图像pa1、图3的图像pa12、图3的图像pa100、图4的图像pa111、图4的图像pa122、图4的图像pa210、图5的图像pa1101、图5的图像pa1112或图5的图像pa1200等所示,作为保持部304-1运算sad值的对象的基准块是基准块位于基准帧的最左端的情况下的基准块。

同样,例如,从垂直方向加法部303-2进行了10次的sad值的输入,由此,保持部304-2判定为由10行构成的基准块与参照块之间的sad运算完成,将该sad运算结果输出到排序部40。然后,保持部304-2对所存储的sad值进行初始化(使值成为0)。

例如,如图3的图像pa2、图3的图像pa13、图3的图像pa101、图4的图像pa112、图4的图像pa123、图4的图像pa211、图5的图像pa1102、图5的图像pa1113或图5的图像pa1201等所示,作为保持部304-2运算sad值的对象的基准块是位于基准帧中从左端起向右偏移1个像素后的位置的情况下的基准块。

同样,例如,从垂直方向加法部303-11进行了10次的sad值的输入,由此,保持部304-11判定为由10行构成的基准块与参照块之间的sad运算完成,将该sad运算结果输出到排序部40。然后,保持部304-11对所存储的sad值进行初始化(使值成为0)。

例如,如图3的图像pa11、图3的图像pa22、图3的图像pa110、图4的图像pa121、图4的图像pa132、图4的图像pa220、图5的图像pa1111、图5的图像pa1122或图5的图像pa1210等所示,作为保持部304-11运算sad值的对象的基准块是基准块位于基准帧的最右端的情况下的基准块。

如上所述,第1实施方式的运算装置1的相关运算部30根据来自基准块数据存储部10和参照块数据存储部20的10次的亮度值数据的输入,能够分别输出11个基准块与参照块之间的sad运算结果。

图7是示出对本发明的第1实施方式的运算装置1的差分绝对值计算部301输入亮度值数据的定时的一例的时序图。

如图所示,在同一定时对差分绝对值计算部301-1输入亮度值数据y(0,0)和y(0,0),对差分绝对值计算部301-2输入亮度值数据y(0,1)和y(0,1),…,对差分绝对值计算部301-110输入亮度值数据y(0,19)和y(0,9)。

如图所示,例如,首先,对差分绝对值计算部301-1输入基准块的1个像素的亮度值即y(0,0)。这里,“(0,0)”表示基准块中的坐标。“(0,0)”表示基准块中、从最左上的像素起在垂直方向上移动0个像素且在水平方向上移动0个像素的位置的坐标。

即,y(0,0)是表示基准块中的最左上的像素的亮度值的数据。

同样,例如,首先,对差分绝对值计算部301-1输入参照块的1个像素的亮度值即y(0,0)。同样,“(0,0)”表示参照块中的坐标。“(0,0)”表示参照块中、从最左上的像素起在垂直方向上移动0个像素且在水平方向上移动0个像素的位置的坐标。即,y(0,0)是表示参照块中的最左上的像素的亮度值的数据。

同样,例如,首先,对差分绝对值计算部301-110输入亮度值数据y(0,19)。“(0,19)”表示参照块中、从最左上的像素起在垂直方向上移动0个像素且在水平方向上移动19个像素的位置的坐标。即,y(0,19)是表示由20个像素×20个像素构成的参照块中的最右上的像素的亮度值的数据。

同样,例如,首先,对差分绝对值计算部301-110输入亮度值数据y(0,9)。“(0,9)”」表示参照块中、从最右上的像素起在垂直方向上移动0个像素且在水平方向上移动9个像素的位置的坐标。即,y(0,9)是表示由10个像素×10个像素构成的参照块中的最右上的像素的亮度值的数据。

而且,如图所示,在同一定时对差分绝对值计算部301-1输入亮度值数据y(19,0)和y(9,0),对差分绝对值计算部301-2输入亮度值数据y(19,1)和y(9,1),···,对差分绝对值计算部301-110输入亮度值数据y(19,19)和y(9,9)后,基准帧内的全部121个基准块与参照块之间的sad运算用的全部亮度值数据的输入结束。

(排序部的结构)

接着,参照附图对排序部40的结构进行说明。

图8是示出本发明的第1实施方式的运算装置1的排序部40的结构的一例的图。

如图所示,排序部40构成为包含排序执行部401、n个保持部402(402-1、402-2、…、402-n)。

排序执行部401在同一定时从相关运算部30的11个保持部304(304-1、304-2、…、304-11)取得表示11个各基准块的sad值的数据。然后,排序执行部401针对所取得的sad值,按照值从小到大的顺序(即相关性从高到低的顺序)进行排列。排序执行部401将进行排列后的sad值中的上位n位(例如如果n=10,则为10位)的数据分别输出到保持部402(402-1、402-2、…、402-n)。排序执行部401将所取得的sad值中、值最小的sad值输出到保持部402-1,将值第2小的sad值输出到保持部402-2,…,将值第n小的sad值输出到保持部402-n。

保持部402(402-1、402-2、…、402-n)分别存储sad值。保持部402(402-1、402-2、…、402-n)分别作为运算各基准块与参照块之间的sad值的过程中的暂时存储区域发挥功能。保持部402(402-1、402-2、…、402-n)在依次运算各基准块与参照块之间的sad值的过程的各时点,暂时存储从运算出的sad值的值较小的一方起上位n位的sad值。

接着,排序执行部401再次在同一定时从相关运算部30的11个保持部304(304-1、304-2、…、304-11)取得表示11个各基准块的sad值的数据。

排序执行部401针对对所取得的11个sad值和保持部402(402-1、402-2、…、402-n)中存储的n个sad值进行合并后的11+n个sad值,按照值从小到大的顺序(即相关性从高到低的顺序)进行排列。

排序执行部401将进行排列后的sad值中的到上位n位(例如如果n=10,则为到10位为止)的数据分别输出到保持部402(402-1、402-2、…、402-n),覆盖更新各保持部402(402-1、402-2、…、402-n)中存储的sad值的数据。

然后,在各保持部402(402-1、402-2、…、402-n)从排序执行部401取得了11次的sad值的数据的情况下(即,排序执行部401最初在各保持部402(402-1、402-2、…、402-n)中存储sad值后、覆盖更新了10次的sad值的情况下),各保持部402(402-1、402-2、…、402-n)设为参照块与基准帧内的全部121个基准块之间的sad运算结束,将表示该时点的n个保持部402(402-1、402-2、…、402-n)中分别存储的sad值的数据输出到运算装置1的外部。

即,排序部40将表示基准帧内的121个基准块中、与参照块之间的相关性较高(即sad值较小)的上位n个的sad值的数据输出到运算装置1的外部。

另外,保持部402(402-1、402-2、…、402-n)的数量根据输出sad值的目的而不同。例如,如果以仅输出基准帧的图像中、与参照块的图像最相似的一个部分为目的,则保持部402(402-1、402-2、…、402-n)的数量仅为一个(即n=1)即可。

以上说明了本发明的第1实施方式的运算装置1的结构的基本部分。但是,在上述说明中,并未言及本发明要解决的课题即用于削减消耗电力的结构的部分。

在仅为上述结构的情况下,运算装置1针对基准帧内的全部基准块与参照块之间的sad运算,执行全部各像素的亮度值的差分绝对值的运算。即,在一次处理中进行合计110个像素的亮度值的差分绝对值的运算,反复进行110次的该运算(基准帧为20个像素×20个像素、且参照块为10个像素×10个像素的情况)。因此,在运算装置1中产生与合计12,100次的差分绝对值运算相伴的运算电路的动作。伴随该电路的动作而产生消耗电力,因此,减少运算电路的动作的次数会削减消耗电力。

下面,对运算装置1的用于削减消耗电力的结构进行说明。

图9、图10和图11是示出本发明的第1实施方式的运算装置1进行的相关运算的一例的概略图。

图9、图10和图11中图示的基准帧、基准块和参照块的基本说明与图3、图4和图5中说明的内容相同,所以省略说明。

如图9中图示的那样,运算装置1从位于基准帧中的最上侧的基准块起依次进行与参照块之间的sad运算。

然后,例如,如图10的图像pb123和图11的图像pb1101所示的基准块那样,在该基准块的sad值的计算完成之前(即图10的图像pb211和图11的图像pb1200所示的基准块的sad值的计算完成之前),运算中途的sad值超过后述相关阈值的情况下,运算装置1使针对该基准块的此后的sad值的运算和sad值的加法处理停止。

这里所说的相关阈值例如是上述排序部40的保持部402-n存储的sad值的值。即,存储保持部402(402-1、402-2、…、402-n)所存储的sad值中的、值最大的sad值(即,所存储的sad值中、相关度最低的sad值的值)的保持部402-n的值是相关阈值。

在进行sad运算的情况下,由于是对差分绝对值进行相加的运算,所以,在sad运算的中途过程中,sad值的值不会减少。如果运算中的sad值超过保持部402-n存储的sad值的值(相关阈值),则该sad值最终必定成为比保持部402-n存储的sad值的值(相关阈值)大的值。因此,在排序部40进行的sad值的排列处理中,该最终的sad值(例如图10的sad值s013和图11的sad值s111)的值不会在从sad值较小的一方起上位n位以内。由此,该最终的sad值是必须丢弃而不存储在保持部402(402-1、402-2、…、402-n)中的sad值。

因此,在运算中的sad值超过保持部402-n存储的sad值的值(相关阈值)的情况下,sad运算中的基准块中的此后的sad值的运算处理成为不需要的运算处理。由此,在运算中的sad值超过相关阈值的情况下,运算装置1使针对该基准块的此后的sad值的运算停止。

(运算装置1的详细结构)

下面,参照附图对运算装置1的详细结构进行说明。

图12是示出本发明的第1实施方式的运算装置1的相关运算部30和排序部40的结构的一例的图。

如图所示,图12所示的相关运算部30构成为包含11个比较器305(305-1、305-2、…、305-n)。分别对11个比较器输入排序部40的保持部402-n中存储的sad值的值(相关阈值)。

然后,比较器305(305-1、305-2、…、305-n)对垂直方向加法部303(303-1、303-2…、303-11)输出的sad值与相关阈值的值进行比较,在sad值是超过相关阈值的值的情况下,输出表示停止命令的信号。

图13是示出本发明的第1实施方式的运算装置1的相关运算部30的运算停止动作的一例的图。

图13中图示的范围是运算装置1的相关运算部30的一部分范围。

相关运算部30构成为包含11个选择器306(306-1m、306-2m、…、306-11)。另外,图13中图示的部分是作为其中之一的选择器306-1m。

比较器305(305-1、305-2、…、305-n)对垂直方向加法部303(303-1、303-2、…、303-11)输出的sad值与相关阈值的值进行比较。在sad值是超过相关阈值的值的情况下,输出表示停止命令的信号,由此,使供给到运算电路(例如flipflop)的工作时钟(未图示)停止。并且,比较器305(305-1、305-2、…、305-n)将表示停止命令的信号输出到选择器306。选择器306在从比较器305取得了表示停止命令的信号的情况下,不管从保持部304取得的sad值是什么值,都将输出到排序部40的sad值固定为最大值(例如0xff等的值)。这样,使sad值的运算电路的动作停止,由此,运算装置1能够抑制sad运算电路的消耗电力。

(运算装置的动作)

接着,对运算装置1的动作流程进行说明。

图14是示出本发明的实施方式的运算装置1的动作的一例的流程图。

在运算装置1开始进行基准帧与参照帧之间的sad运算时,本流程图开始。

(步骤s101)相关运算部30的差分绝对值计算部301(301-1、301-2、…、301-110)根据从基准块数据存储部10取得的亮度值和从参照块数据存储部20取得的亮度值,依次运算差分绝对值。然后,进入步骤s102。

(步骤s102)相关运算部30的水平方向加法部302(302-1、302-2、…、302-11)依次对从差分绝对值计算部301(301-1、301-2、…、301-110)取得的差分绝对值进行相加,由此运算基准块中的1行的sad值。然后,相关运算部30的垂直方向加法部303依次对从水平方向加法部302(302-1、302-2、…、302-11)取得的sad值进行相加,由此运算基准块整体的sad值。然后,相关运算部30的保持部304存储从垂直方向加法部303取得的sad值。相关运算部30的保持部304将所存储的sad值输出到排序部40。然后,进入步骤s103。

(步骤s103)相关运算部30的比较器305(305-1、305-2、…、305-n)对从垂直方向加法部303取得的sad值和从排序部40取得的相关阈值进行比较,在从垂直方向加法部303取得的sad值超过相关阈值的情况下,比较器305(305-1、305-2、…、305-n)使sad值的运算电路的动作停止后,进入步骤s105。在从垂直方向加法部303取得的sad值未超过相关阈值的情况下,进入步骤s104。

(步骤s104)在运算中的基准块的数据输入结束的情况下,进入步骤s106。在未结束的情况下,返回步骤s101。

(步骤s105)在运算中的基准块的数据输入结束的情况下,进入步骤s106。在未结束的情况下,停留在步骤s105。

(步骤s106)排序部40的排序执行部401包含从相关运算部30取得的sad值和保持部402(402-1、402-2、…、402-n)存储的sad值在内,按照从小到大的顺序排列sad值。然后,进入步骤s107。

(步骤s107)在最后的基准块的sad值的运算完成的情况下,结束本流程图的处理。在未完成的情况下,返回步骤s101。

如以上说明的那样,本发明的第1实施方式的运算装置1具有排序部40,该排序部40按照相关性从高到低的顺序对由相关运算部30的各水平方向加法部302(302-1、302-2、…、302-11)和各垂直方向加法部303运算出的多个相关值(sad值)进行排序,保持其结果。然后,排序部40将基于所保持的相关值的相关阈值输出到相关运算部30的各比较器305(305-1、305-2、…、305-n)。各比较器305(305-1、305-2、…、305-n)进行如下的相关运算停止处理:对所取得的相关阈值和分别运算出的多个相关值进行比较,在相关值低于相关阈值的情况下,使相关运算部30的动作停止。

由此,第1实施方式的运算装置1能够削减相关运算中的运算电路的消耗电力。

(第2实施方式)

接着,参照附图对本发明的第2实施方式进行说明。

另外,第2实施方式的运算装置1的基本结构与第1实施方式的运算装置1的基本结构相同,所以,省略结构相通的部分的说明。

图15是示出本发明的第2实施方式的运算装置1的相关运算部30的运算停止动作的一例的图。

如图所示,第2实施方式的运算装置1构成为包含220个选择器306(306-1a、306-2a、…、306-110a和306-1b、306-2b、…、306-110b)。另外,图15中图示的部分仅是其中20个选择器306(306-1a、306-2a、…、306-10a和306-1b、306-2b、…、306-10b)的部分。

从基准块数据存储部10和参照块数据存储部20输出的数据分别经由选择器306(306-1a、306-2a、…、306-110a和306-1b、306-2b、…、306-110b)输入到相关运算部30的各差分绝对值计算部301(301-1、301-2、…、301-110)。选择器306(306-1a、306-2a、…、306-110a)在基准块数据存储部10与110个差分绝对值计算部301之间分别各设置一个,选择器306(306-1b、306-2b、…、306-110b)在参照块数据存储部20与110个差分绝对值计算部301之间分别各设置一个。

如图所示,相关运算部30的比较器305(305-1、305-2、…、305-n)对垂直方向加法部303(303-1、303-2…、303-11)运算出的sad值和从排序部40取得的相关阈值进行比较,在该sad值超过相关阈值的值的情况下,输出表示停止命令的信号。在第2实施方式中,表示停止命令的信号输出到全部220个选择器306(306-1a、306-2a、…、306-110a和306-1b、306-2b、…、306-110b)。

选择器306(306-1a、306-2a、…、306-110a)在从比较器305(305-1、305-2、…、305-11)取得了表示停止命令的信号的情况下,不管从基准块数据存储部10取得的亮度值是什么值,都将表示最大值的值(例如0xff)输出到差分绝对值计算部301(301-1、301-2、…、301-110)。

并且,选择器306(306-1b、306-2b、…、306-110b)在从比较器305(305-1、305-2、…、305-11)取得了表示停止命令的信号的情况下,不管从参照块数据存储部20取得的亮度值是什么值,都将表示最大值的值(例如0x00)输出到差分绝对值计算部301(301-1、301-2、…、301-110)。

即,在第2实施方式的运算装置1的相关运算部30中,在从比较器305(305-1、305-2、…、305-11)输出了表示停止命令的信号的情况下,对各差分绝对值计算部301(301-1、301-2、…、301-110)输入表示最大值的值(例如0xff(表示白色的数据))和表示最小值的值(例如0x00(表示黑色的数据))这2个固定值的数据。

由此,各差分绝对值计算部301(301-1、301-2、…、301-110)运算的差分绝对值固定在可取的最大值。通过对所输入的值进行固定,由此,差分绝对值计算部301(301-1、301-2、…、301-110)、比较器305(305-1、305-2、…、305-11)和排序部40等各功能块(运算电路)中的数据迁移停止。数据迁移停止,由此,削减了各运算电路的消耗电力。

如以上说明的那样,本发明的第2实施方式的运算装置1能够削减相关运算中的运算电路的消耗电力。

(第3实施方式)

接着,参照附图对本发明的第3实施方式进行说明。

另外,第3实施方式的运算装置1的基本结构与第1实施方式的运算装置1的基本结构相同,所以,省略结构相通的部分的说明。

图16是示出本发明的第3实施方式的运算装置1的相关运算部30的运算停止动作的一例的图。

如图所示,第3实施方式的运算装置1构成为包含控制部50。控制部50能够通过某种手段设定相关阈值,将所设定的相关阈值输出到各比较器305(305-1、305-2、…、305-11)。某种手段例如可以是在初始设定时预先设定固定的值作为相关阈值等手段。控制部50例如由cpu(centralprocessingunit;中央运算处理装置)构成。

如图所示,相关运算部30的比较器305(305-1、305-2、…、305-11)对垂直方向加法部303(303-1、303-2、…、303-11)运算出的sad值和从控制部50取得的相关阈值进行比较,在该sad值超过相关阈值的值的情况下,输出表示停止命令的信号。

比较器305(305-1、305-2、…、305-11)输出表示停止命令的信号,由此,例如,可以如第1实施方式中的运算装置1那样停止供给到运算电路(例如flipflop)的工作时钟,削减运算电路的消耗电力。

或者,例如,可以如第2实施方式中的运算装置1那样固定输入到各差分绝对值计算部301(301-1、301-2、…、301-110)的数据,由此削减运算电路的消耗电力。

如以上说明的那样,本发明的第2实施方式的运算装置1能够削减相关运算中的运算电路的消耗电力。

以上说明了本发明的优选实施方式,但是,本发明不限于这些实施方式及其变形例。能够在不脱离本发明主旨的范围内进行结构的附加、省略、置换和其他变更。

并且,本发明不由所述说明进行限定,仅由权利要求书进行限定。

另外,可以利用计算机实现上述实施方式中的运算装置1的一部分或全部。该情况下,可以将用于实现该控制功能的程序记录在计算机可读取的记录介质中,使计算机系统读入该记录介质中记录的程序并执行,由此来实现。

另外,这里所说的“计算机系统”是内置于运算装置1中的计算机系统,包含os和周边设备等硬件。并且,“计算机可读取的记录介质”是指软盘、光磁盘、rom、cd-rom等移动介质、内置于计算机系统中的硬盘等存储装置。

进而,“计算机可读取的记录介质”可以包含如经由因特网等网络或电话线路等通信线路发送程序的情况下的通信线路那样在短时间内动态保持程序的结构、如该情况下的作为服务器或客户端的计算机系统内部的易失性存储器那样在一定时间内保持程序的结构。并且,上述程序可以是用于实现所述功能的一部分的结构,进而也可以是能够通过与计算机系统中已经记录的程序的组合来实现所述功能的结构。

并且,上述实施方式中的运算装置1可以作为lsi(largescaleintegration)等集成电路来实现。运算装置1的各功能块可以单独作为处理器,也可以对一部分或全部进行累积而作为处理器。并且,集成电路化的手法不限于lsi,也可以利用专用电路或通用处理器来实现。并且,在由于半导体技术的进步而出现了代替lsi的集成电路化的技术的情况下,也可以使用基于该技术的集成电路。

产业上的可利用性

能够削减运算电路的消耗电力。

标号说明

1:运算装置;10:基准块数据存储部;20:参照块数据存储部;30:相关运算部;40:排序部;50:控制部;301(301-1、301-2、…、301-110):差分绝对值计算部;302(302-1、302-2、…、302-11):水平方向加法部;303(303-1、303-2…、303-11):垂直方向加法部;304(304-1、304-2、…、304-11):保持部;305(305-1、305-2、…、305-11):比较器;306(306-1a、306-2a、…、306-110a、306-1b、306-2b、…、306-110b、306-1m、306-2m、…、306-110m):选择器;401:排序执行部;402(402-1、402-2、…、402-n):保持部;p1~p9:图像;pa1~pa1210:图像;pb1~pb1210:图像。

权利要求书(按照条约第19条的修改)

1.(修改后)一种运算装置,其将基准帧分割成多个基准块,在参照帧中设定与所述基准帧对应的参照块,在所述基准块与所述参照块之间进行相关运算,其特征在于,所述运算装置具有:

基准块数据存储部,其存储所述基准块的数据;

参照块数据存储部,其存储所述参照块的数据;

多个相关运算部,它们分别输入规定的相关阈值,使用所述基准块的数据和所述参照块的数据,分别同时运算多个不同位置的相关值;以及

排序部,其按照相关性从高到低的顺序对由所述相关运算部运算出的多个所述相关值进行排序,保持其结果,并且输出所述相关阈值,

进行如下的相关运算停止处理:对分别输入的所述相关阈值和由多个所述相关运算部分别运算出的多个所述相关值进行比较,在所述相关值的相关性低于所述相关阈值的情况下,使所述相关运算部的动作停止。

2.(删除)

3.(修改后)根据权利要求1所述的运算装置,其特征在于,

所述相关阈值是所述排序部保持的排序后的所述相关值中的相关性最高的相关值。

4.(删除)

5.根据权利要求1所述的运算装置,其特征在于,

所述相关运算停止处理是通过使所述相关运算部的工作时钟停止而使所述相关运算部的动作停止的处理。

6.根据权利要求1所述的运算装置,其特征在于,

所述相关运算停止处理是通过使输入到所述相关运算部的数据的一方成为最大值、另一方成为最小值而使所述相关运算部的动作停止的处理。

7.根据权利要求1所述的运算装置,其特征在于,

所述相关运算停止处理是在下一个所述基准块与所述参照块之间的相关运算开始的情况下结束的处理。

8.(修改后)一种运算方法,将基准帧分割成多个基准块,在参照帧中设定与所述基准帧对应的参照块,在所述基准块与所述参照块之间进行相关运算,其特征在于,所述运算方法具有以下步骤:

基准块数据存储步骤,存储所述基准块的数据;

参照块数据存储步骤,存储所述参照块的数据;

多个相关运算步骤,分别输入规定的相关阈值,使用所述基准块的数据和所述参照块的数据,分别同时运算多个不同位置的相关值;以及

排序步骤,按照相关性从高到低的顺序对通过所述相关运算步骤运算出的多个所述相关值进行排序,保持其结果,并且输出所述相关阈值,

具有如下的相关运算停止步骤:对分别输入的所述相关阈值和通过多个所述相关运算步骤分别运算出的多个所述相关值进行比较,在所述相关值的相关性低于所述相关阈值的情况下,使所述相关运算步骤的动作停止。

9.(修改后)一种程序,其使计算机将基准帧分割成多个基准块,在参照帧中设定与所述基准帧对应的参照块,在所述基准块与所述参照块之间进行相关运算,其中,所述程序用于使计算机执行以下步骤:

基准块数据存储步骤,存储所述基准块的数据;

参照块数据存储步骤,存储所述参照块的数据;

多个相关运算步骤,分别输入规定的相关阈值,使用所述基准块的数据和所述参照块的数据,分别同时运算多个不同位置的相关值;

排序步骤,按照相关性从高到低的顺序对通过所述相关运算步骤运算出的多个所述相关值进行排序,保持其结果,并且输出所述相关阈值;以及

相关运算停止步骤,对分别输入的所述相关阈值和通过多个所述相关运算步骤分别运算出的多个所述相关值进行比较,在所述相关值的相关性低于所述相关阈值的情况下,使所述相关运算步骤的动作停止。

说明或声明(按照条约第19条的修改)

在权利要求1、8、9中追加了“分别输入规定的相关阈值”。

在权利要求1、8、9中,伴随权利要求2的删除,追加了“并且输出所述相关阈值”。

删除了权利要求2、4。

在权利要求9中,将“进行运算的步骤”的误记修改为了“程序”。

权利要求1、8、9的修改是根据说明书第15页第4段至第16页第6段、以及第17页第3段的记载而进行的,不是新事项。

通过该修改,权利要求1明确了将规定的相关阈值分别输入到多个相关阈值计算部。

通过该修改,权利要求8、9明确了将规定的相关阈值分别用于多个相关阈值计算步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1