专利名称:拍摄图像的失真校正方法和装置、拍摄方法和拍摄装置的制作方法
技术领域:
本发明涉及校正失真的方法和校正该失真的装置以及拍摄装置,所述失真是伴随着光学缩放操作的被拍摄体图像拍摄时的手抖等导致的拍摄图像中产生的失真。
背景技术:
在例如摄像机和数码相机等,将拍摄图像电子式地存储在拍摄元件中并读出的电子式拍摄装置中,在通过手持来进行运动图像的摄影时,如果所谓的手抖导致拍摄元件在拍摄图像的水平方向和/或垂直方向上发生较高速的位置变化,则其在拍摄图像中表现为图像摇晃等图像失真。
即在没有手抖的情况下,在拍摄元件的拍摄面上,拍摄图像的形成位置在同一位置,在排列了时间方向的多帧图像的情况下,如图48(A)所示,帧图像全部在相同的位置重合。但是,如果发生手抖,则拍摄元件的拍摄面上形成的拍摄图像的位置不会在同一位置,在排列了时间方向的多帧图像的情况下,如图48(B)所示,多帧图像会摇动。
特别是在望远侧使用变焦透镜时,手抖的现象明显容易发生。在发生这样的手抖现象时,静止的设备摇动,存在难以看到图像的问题。还产生被拍摄体为模糊状态的拍摄图像的现象。
而且,在静止画面的摄影时,在将多帧图像重合而得到拍摄输出图像的情况下,和上述情形相同,形成的拍摄图像具有被拍摄体由于手抖而成为模糊状态的图像失真。
作为校正该手抖引起的图像失真的方法,以往,提出了利用检测手抖的传感器的光学式手抖校正方式,和通过对拍摄图像进行数字信号处理来检测手抖的同时进行校正处理的无传感器手抖校正方式。
目前市场上出现的民用设备中用于静止画面的手抖校正采用光学式手抖校正方式,使用陀螺传感器或者加速度传感器测定手抖向量,将其反馈给机构系统,以高速地进行控制,以使投射到CCD(Charge Coupled Device,电荷耦合装置)成像器(imager)和CMOS(Complementary Metal OxideSemiconductor,互补金属氧化物半导体)成像器等图像传感器(拍摄元件)中的像不引起抖动。
作为这里所说的机构系统,提出了由致动器控制透镜、棱镜、成像器(或者与成像器一体化的模块)的位置的机构,分别称为透镜位移、棱镜位移、成像器位移。
另一方面,无透镜手抖校正方式是,例如专利文献1(专利第3303312号公报)和专利文献2(特开平6-86149号公报)等中记载的那样,在从拍摄元件读出的拍摄图像数据中,检测拍摄图像的画面单位的移动向量,基于该移动向量,移动存储在图像存储器中的拍摄图像数据的读出位置,从而进行手抖校正的方式。
此外,作为在静止画面中实现无传感器手抖校正的手段,具有以专利文献3(特开平7-283999号公报)为首的几种提案。专利文献3是,在不会产生手抖的短曝光时间内连续拍摄几张静止画面,求取该静止画面间的手抖向量,根据该手抖向量,一边使上述连续拍摄的多张静止画面平行移动(以及在辊轴方向旋转)一边相加(或者平均化),从而最终得到没有手抖和低照度噪声的高画质静止画面的算法。
上述专利文献如下所示。
专利文献1专利第3384459号公报专利文献2特开平6-86149号公报专利文献3特开平7-283999号公报但是,一般来说,在摄像机上设置缩放开关等光学缩放操作部,摄像者通过该光学缩放操作部进行光学缩放操作,从而一边拍摄运动图像的同时能够进行光学缩放控制。
此时,光学缩放中的拍摄图像在通过例如缩放而放大时,如图49所示,将图像的中心位置作为起始位置,随着时间的推移,从该起始位置慢慢变大地发生变化。
但是,在伴随着该光学缩放操作拍摄时,如果发生手抖,则有可能如图50所示,图像慢慢变大的起始位置从图像的中心位置偏移,图像失真。
如果能够校正手抖,则降低了这样的光学缩放时的失真,但在利用上述陀螺传感器的光学式手抖校正中,与在入射光的光轴正交的方向上对光学透镜和棱镜或者拍摄元件进行移位控制,而缩放控制是在沿着上述光轴的方向上对光学透镜进行移位控制,所以控制变得非常复杂。因此,以往,在光学缩放时停止光学式手抖校正。
此外,在无传感器的手抖校正的情况下,根据从拍摄元件读出的拍摄图像数据检测的手抖移动向量是将由光学缩放引起的图像的移动向量分量和手抖移动向量相加得到的,所以即使利用检测到的手抖移动向量进行手抖校正,也不能除去手抖引起的图像失真部分。因此,在无传感器的手抖校正中,在光学缩放时,也不能进行手抖校正。
如上所述,在以往的拍摄装置中,不校正光学缩放时发生的手抖,因此,如果在光学缩放时发生手抖,会残留例如图50所示的光学缩放时的失真。该光学缩放时的手抖引起的失真在小型的监视器画面上比较不显眼,但最近,图像精度变高,如果在大画面上享受图像,不能无视上述光学缩放时的手抖引起的失真。
发明内容
本发明鉴于以上的方面,其目的在于,除去光学缩放时的手抖引起的失真,得到没有图像失真的缩放图像。
为了解决上述问题,技术方案1的发明提供一种拍摄图像的失真校正方法,具有移动向量检测步骤,接收来自拍摄元件的图像数据,从该图像数据检测拍摄图像的1个画面单位的移动向量;光学缩放部分向量计算步骤,计算由于光学缩放而在上述拍摄图像中产生的图像移动所对应的光学缩放部分向量;向量减法步骤,从在上述移动向量检测步骤检测到的移动向量中减去在上述光学缩放部分向量计算步骤计算出的上述光学缩放部分向量;综合(global)手抖向量计算步骤,在没有执行上述光学缩放时,基于上述移动向量检测步骤中检测到的上述移动向量,计算关于上述拍摄图像的手抖向量,在执行了上述光学缩放时,基于上述向量减法步骤的减法结果的移动向量,计算关于上述拍摄图像的手抖向量;以及手抖校正步骤,基于在上述综合手抖向量计算步骤中算出的上述综合手抖向量,校正上述拍摄图像的手抖引起的图像失真。
在上述结构的技术方案1的发明中,计算在执行光学缩放操作时,由于该光学缩放而在拍摄图像中产生的图像移动所对应的光学缩放部分向量。然后,在向量减法步骤中,从由移动向量检测步骤在拍摄图像数据中检测到的移动向量中,减去算出的光学缩放部分向量。
从而,在向量减法步骤中,除去了在移动向量检测步骤检测到的移动向量中包含的光学缩放部分向量的分量。然后,基于在该向量减法步骤得到的减法结果的移动向量,在综合手抖向量计算步骤计算关于拍摄图像的手抖向量。然后,基于在该综合手抖向量计算步骤算出的综合手抖向量,校正拍摄图像的手抖失真。其结果是,对拍摄图像实施没有手抖分量的缩放。
利用本发明,除去光学缩放时的手抖引起的失真,得到没有图像失真的缩放图像。
图1是表示采用本发明的拍摄图像的失真校正方法的第1实施方式的拍摄装置的手抖移动向量检测部的结构例的方框图。
图2是表示采用本发明的拍摄图像的失真校正方法的第1实施方式的拍摄装置结构例的方框图。
图3是用于说明拍摄装置的光学缩放控制的图。
图4是用于说明本发明的拍摄图像的失真校正方法的实施方式的图。
图5(A)、图5(B)是用于说明本发明的拍摄图像的失真校正方法的实施方式的图。
图6(A)、图6(B)是用于说明本发明的拍摄图像的失真校正方法的实施方式的图。
图7是用于说明本发明的拍摄图像的失真校正方法的实施方式的图。
图8是用于说明通过块匹配检测移动向量的处理的图。
图9是用于说明通过块匹配检测移动向量的处理的图。
图10是用于说明通过块匹配检测移动向量的处理操作的流程图。
图11是用于说明本发明实施方式的检测移动向量的处理概要的图。
图12(A)、图12(B)是用于说明本发明实施方式的检测移动向量的处理概要的图。
图13是用于说明本发明实施方式的检测移动向量的处理概要的图。
图14(A)、图14(B)是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图15是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图16是用于说明本发明实施方式的检测移动向量的处理的概要的图。
图17是用于说明本发明实施方式的检测移动向量的处理的概要的图。
图18(A)、图18(B)是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图19是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图20是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图21(A)、图21(B)是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图22(A)~图22(D)是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图23是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图24是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图25(A)、图25(B)是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图26是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图27是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图28(A)~图28(D)是用于说明在本发明的实施方式的检测移动向量的方法中,检测正确的移动向量的处理的例子的图。
图29是用于说明本发明的实施方式的检测移动向量的方法的处理性能的图。
图30是用于说明本发明实施方式的检测移动向量的方法的实施方式的概要的图。
图31是用于和现有技术比较并说明本发明的实施方式的检测移动向量的方法的特征时采用的图。
图32是用于和现有技术比较并说明本发明的实施方式的检测移动向量的方法的特征时采用的图。
图33是用于和现有技术比较并说明本发明的实施方式的检测移动向量的方法的特征时采用的图。
图34是示出用于说明本发明的拍摄装置的第1实施方式的移动向量检测处理的第1例的流程图的一部分的图。
图35是示出用于说明本发明的拍摄装置的第1实施方式的移动向量检测处理的第1例的流程图的一部分的图。
图36是示出用于说明本发明的拍摄装置的第1实施方式的移动向量检测处理的第2例的流程图的一部分的图。
图37是示出用于说明本发明的拍摄装置的第1实施方式的移动向量检测处理的第2例的流程图的一部分的图。
图38是示出用于说明本发明的拍摄装置的第1实施方式的移动向量检测处理的第3例的流程图的一部分的图。
图39是示出用于说明本发明的拍摄装置的第1实施方式的移动向量检测处理的第3例的流程图的一部分的图。
图40是示出用于说明本发明的拍摄装置的第1实施方式的移动向量检测处理的第3例的流程图的一部分的图。
图41是示出用于说明本发明的拍摄装置的第1实施方式的移动向量检测处理的第3例的流程图的一部分的图。
图42是示出用于说明本发明的拍摄装置的第1实施方式的全部处理动作的流程图的一部分的图。
图43是示出采用本发明的拍摄图像失真校正方法的第2实施方式的拍摄装置的结构例的方框图。
图44是用于说明拍摄装置的第2实施方式的移动向量检测处理的图。
图45是用于说明拍摄装置的第2实施方式的移动向量检测处理的图。
图46是示出用于说明拍摄装置的第2实施方式的移动向量检测处理的例子的流程图的一部分的图。
图47是示出用于说明拍摄装置的第2实施方式的移动向量检测处理的例子的流程图的一部分的图。
图48(A)、图48(B)是用于说明拍摄图像的手抖的图。
图49是用于说明进行了光学缩放时拍摄图像的移动的图。
图50是用于说明在进行了光学缩放时,产生手抖时的拍摄图像的移动的例子的图。
符号说明101原帧,102参照帧,103目标块,105查找范围,106参照块,107参照向量,15手抖移动向量检测部分,16失真校正分辨率变换部分,19图像模糊校正处理部分,41~43帧存储器,151移动向量检测处理部分,152光学缩放部分向量计算部分,153光学缩放部分向量减法部分,TBLs缩小SAD表,TBLo以往的SAD表,RV参照向量,CV参照缩小向量,NV1~NV4邻近参照向量具体实施方式
以下,参照附图,以用于拍摄装置的情况下为例,说明本发明的拍摄图像的失真校正装置和方法的实施方式。
图2示出了采用本发明的拍摄图像的失真校正方法的第1实施方式的拍摄装置的整体的结构例的方框图。
如图2所示,本实施方式的拍摄装置在将CPU(Central Processing Unit,中央处理单元)1连接到系统总线2上的同时,将拍摄信号处理系统10、用户操作输入部分3、图像存储部分4、记录再现装置部分5等连接到系统总线2上。而且,在本说明书中,CPU1包含存储执行各种软件处理的程序的ROM(Read Only Memory,只读存储器)和工作区域用RAM等。
在本实施方式的拍摄装置的壳体的规定位置上,安装作为用户(摄影者)操作的光学缩放操作部的例子的缩放开关7。该缩放开关7由例如压扳式的按钮开关构成,将用户的操作信息提供给CPU1。
而且,在该实施方式中,具有拍摄用的透镜等的照相机光学系统10L具有包含致动器的缩放机构8。在该例子中,如图3所示,该缩放机构8使照相机光学系统10L的透镜110L的位置在沿着入射光的光轴10ax方向的方向上变化。在图3中,P1、P2、P3表示缩放位置,拍摄图像是和各个缩放位置对应的图像。
然后,从CPU1将对应于用户通过缩放开关7产生的缩放操作信息而产生的缩放控制信号CTL提供给该缩放机构8,照相机光学系统10L的透镜位置被控制,并进行缩放控制。
换言之,如果由用户通过缩放开关7在放大方向上操作,则利用来自CPU1的缩放控制信号CTL控制缩放机构8,拍摄透镜系统成为长焦点(望远)侧,而且,如果在缩小方向上操作,则利用来自CPU1的缩放控制信号CTL控制缩放机构8,拍摄透镜系统成为短焦点侧。
在图2例示的拍摄装置中,接受通过用户操作输入部分3的拍摄记录开始操作,执行后述的拍摄图像数据的记录处理。而且,图2的拍摄装置接受通过用户操作输入部分3的拍摄记录图像再现开始操作,执行记录在记录再现装置部分5的记录介质中的拍摄图像数据的再现处理。
如图2所示,通过具有拍摄透镜10L的照相机光学系统(省略图示)的、来自被拍摄体的入射光被照射到拍摄元件11上并被拍摄。拍摄元件11由CCD成像器和CMOS成像器构成。
在本例的拍摄装置中,一旦执行了拍摄记录开始操作,则通过来自定时信号产生部分12的定时信号对拍摄图像数据进行采样,从拍摄元件11输出由红(R)、绿(G)、蓝(B)三原色构成的拜耳排列的RAW信号即数字拍摄信号。
将输出的拍摄信号提供给预处理部分13,实施缺陷补正和γ校正等预处理,并提供给数据变换部分14。数据变换部分14从输入其中的拍摄信号变换成由亮度信号分量Y和色差信号分量Cb/Cr构成的数字拍摄信号(YC数据),将该数字拍摄信号通过系统总线提供给图像存储部分4。
在图2的例子中,图像存储部分4由两个帧存储器41、42构成,来自数据变换部分14的数字拍摄信号首先存储在帧存储器41中。然后,如果1帧经过,则存储在帧存储器41中的数字拍摄信号被传送到帧存储器42中,同时来自数据变换部分14的新的帧的数字拍摄信号写入到帧存储器41中。因此,比存储在帧存储器41中的帧图像前一帧的帧图像被存储在帧存储器42中。
在本实施方式中,手抖移动向量检测部分15从拍摄图像数据中检测拍摄图像的移动向量,检测手抖移动向量。而且,特别是在拍摄时,在伴随着光学缩放操作时,手抖移动向量检测部分15以后述方式检测在除去光学缩放引起的图像移动分量即光学缩放部分向量后的手抖移动向量。因此,如后所述,将与从CPU1对缩放开关7的操作对应的缩放信息ZM提供给手抖移动向量检测部分15。
作为从拍摄图像数据中检测移动向量的方法,如后所述,采用求出2个画面之间的相关性的块匹配。手抖移动向量检测部分15通过系统总线2访问图像存储部分4的两个帧存储器41和帧存储器42,读出其存储的拍摄图像数据,执行基于该拍摄图像数据的移动向量检测处理。此时,使存储在帧存储器42中的帧图像为后述的原帧的图像,而且,使存储在帧存储器41中的帧图像为后述的参照帧的图像。
然后,手抖移动向量检测部分15将该检测结果即手抖移动向量作为控制信号传送至后一级的分辨率变换部分16。
分辨率变换部分16进行以下处理,即一边根据从手抖移动向量检测部分15接受的手抖移动向量(综合手抖向量),切出存储在帧存储器42中的延迟帧的图像数据,一边变换为需要的分辨率和图像大小。通过从该帧存储器42按照算出的图像失真补正量进行切出,变换后的图像成为以像素单位除去手抖后的图像。
基于来自该分辨率变换部分16的手抖除去图像失真后的图像数据利用NTSC(National Television System Committee,国家电视系统委员会)编码器18变换成NTSC方式的标准彩色图像信号,提供给构成电子式观测器的监视器显示器6,在其显示画面上监视器显示拍摄时的图像。
与该监视器显示并行,来自分辨率变换部分16的除去手抖后的图像数据在编码部分17中进行记录调制等编码处理后,提供给记录再现装置部分5,记录在DVD(Digital Versatile Disc,数字化视频光盘)等光盘和硬盘等记录介质上。
对应于通过用户操作输入部分3的再现开始操作,读出记录在该记录再现装置部分5的记录介质上的拍摄图像数据,提供给编码部分17,进行再现编码。然后,被再现编码的图像数据通过NTSC编码器18提供给监视器显示器6,在其显示画面上显示再现图像。而且,在图1中,省略了图示,但来自NTSC编码器18的输出图像信号可以通过图像输出端子导出到外部。
在图1中,示出了本实施方式的手抖移动向量检测部分15的构成例的方框图。本实施方式的手抖移动向量检测部分15具有移动向量检测处理部分151、光学缩放部分向量计算部分152、光学缩放部分向量减法部分153、选择器154、综合手抖向量计算部分155和定时控制部分156。
在CPU1的控制下,定时控制部分156将定时信号提供给各个部件。
移动向量检测处理部分151基于来自定时控制部分156的定时控制信号而动作,从由图像存储部分4读出的两个画面的图像数据中,检测拍摄图像的移动向量。
在本例中,如后面的详细描述,在本实施方式中,如图4所示,在1个画面FL中,设定多个目标区域TG,在本例中,是水平方向4个、开关(switch)方向4个总共16个目标区域TG,在移动向量检测处理部分151中,对于该多个目标区域TGi(在该例子中,i=1,2,...,16)分别检测移动向量MVi(在该例子中,i=1,2,...,16)(参照图5(A))。
然后,移动向量检测处理部分151根据来自定时控制部分156的定时控制信号的控制,将检测到的多个移动向量提供给选择器154的一个输入端A的同时,提供给光学缩放部分向量减法部分153。
在用户通过缩放开关7执行缩放操作时,光学缩放部分向量计算部分152根据来自定时控制部分156的定时控制信号的控制,利用来自CPU1的缩放信息ZM,计算光学缩放部分向量。
在本例中,光学缩放部分向量计算部分152计算由移动向量检测处理部分151检测到移动向量的上述各个目标区域TGi的光学缩放部分向量Z Vi(在该例子中,i=1,2,...,16)(参照图5(B))。然后,光学缩放部分向量计算部分152将算出的各个光学缩放部分向量ZVi提供给光学缩放部分向量减法部分153。
基于从开始操作缩放开关7的时刻起经过的时间t、缩放速度v、如图4所示的各目标区域TGi的中心位置和画面FL的中心位置Co之间的距离di(在本例中,i=1~16),求各目标区域TGi的光学缩放部分向量ZVi的大小。
缩放速度v是将拍摄透镜110L在沿着图3的箭头所示的光轴10ax的方向上在1帧图像区间之间移动的距离除以1帧的时间后得到的值。对每1画面确定缩放速度v。一般来说,缩放速度v和从开始操作缩放开关7的时刻起经过的时间t成比例地增大。
1个画面内的各目标区域TGi的光学缩放部分向量的大小是和各目标区域TGi的中心位置与画面FL的中心位置Co之间的距离di成比例的值。
换言之,如果已知从开始操作缩放开关7的时刻起经过的时间t,则可以求出缩放速度v,如果求得缩放速度v,则可以求出该帧的各目标区域TGi的光学缩放部分向量的大小。
而且,如图5(B)所示,各目标区域TGi的光学缩放部分向量ZVi的方向是沿着从画面FL的中心位置Co朝向各目标区域TGi的中心位置的方向。
在用户通过缩放开关7执行了缩放操作时,CPU1在生成缩放控制信号CTL而提供给缩放机构8的同时,将由缩放速度v的信息和从用户开始缩放时起经过的时间t的信息构成的缩放信息ZM提供给光学缩放部分向量计算部分152。
光学缩放部分向量计算部分152利用来自该CPU1的缩放信息ZM,如上所述,求出各目标区域TGi的光学缩放部分向量ZVi,将求出的光学缩放部分向量ZVi提供给光学缩放部分向量减法部分153。
光学缩放部分向量减法部分153对于上述各个目标区域TGi,求来自移动向量检测处理部分151的每个移动向量MVi(图5(A))和来自光学缩放部分向量计算部分152的每个光学缩放部分向量ZVi(图5(B))的差分的向量Vec(参照图6(A))。然后,将求出的差分向量Veci(在本例中,i=1,2,...,16)(参照图6(B))提供给选择器154的另一输入端B。
CPU1将选择控制信号SEL提供给选择器154,使得在用户通过缩放开关7执行了缩放操作时,从选择器154选择输入到输入端B的来自光学缩放部分向量减法部分153的向量并输出,在其它时刻,选择输入到输入端A的来自移动向量检测处理部分151的移动向量并输出。选择器154将对应于选择控制信号SEL的选择控制而选择的向量提供给综合手抖向量计算部分155。
因此,在没有执行缩放操作的摄像时,综合手抖向量计算部分155接受来自移动向量检测处理部分151的多个移动向量Mvi,一边加入从过去的帧的那些移动向量Mvi起的推移,一边进行统计处理,从而能够对1帧确定1个综合向量GVec,即帧的手抖向量,并提供给分辨率变换部分16。
而且,在执行了缩放操作的摄像时,综合手抖向量计算部分155接受来自光学缩放部分向量减法部分153的差分向量Veci,一边加入从过去的帧的那些向量Veci起的推移,一边进行统计处理,从而对1帧确定1个综合向量GVec,即帧的手抖向量,并提供给分辨率变换部分16。
如前所述,分辨率变换部分16执行以下的处理根据该综合手抖向量GVec,一边切出存储在帧存储器42中的延迟帧的图像数据,一边变换为需要的分辨率和图像大小。
因此,在伴随着缩放操作拍摄时,如图7所示,得到手抖被除去的缩放摄影图像。
在本实施方式中,不全部使用光学式的手抖校正而执行无传感器的手抖校正。而且,在手抖移动向量检测部分15的移动向量检测处理部分151中,作为检测拍摄图像的手抖移动向量的方法,利用求出两个画面之间的相关性的块匹配。采用块匹配的方法不需要陀螺(角速度)传感器等机械部件,所以在能够实现拍摄装置的小型、轻质化这一点上是有利的。
图8和图9示出了块匹配的概要。而且,在图10中,示出了该处理流程图的一般例子。
块匹配是如下的方法对于来自拍摄装置的拍摄图像,通过对规定大小的矩形区域的块计算参照画面和原画面的相关性,从而计算关注画面即参照画面和该参照画面的前一画面的拍摄画面即原画面之间的1画面单位的移动向量。
而且,这里画面的意思是,由1帧或者1场的图像数据构成的图像,但在该说明书中,为了说明的方便,假设画面是由1帧构成的,将画面称为帧。因此,参照画面称为参照帧,原画面称为原帧。
例如,参照帧的图像数据是来自拍摄装置的当前帧的图像数据,或者当前帧的图像数据存储在帧存储器中,被延迟了1帧。原帧的图像数据是参照帧的图像数据被进一步存储在帧存储器中,被延迟了1帧。
图8和图9是用于说明现有的块匹配的概要的图。而且,图10是现有的块匹配处理的流程图的1个例子。
在块匹配中,如图8所示,在原帧101的任意规定位置上,设定由水平方向的多个像素和垂直方向的多行构成的规定大小的矩形区域所组成的目标块103。
与此相对的是,在参照帧102中,在和原帧的目标块103的位置相同的位置上,假定目标块的投影图像块104(参照图8的虚线),设定将该目标块的投影图像块104作为中心的查找范围105(参照图8的点划线),同时考虑和目标块103相同大小的参照块106。
然后,在参照帧102的查找范围105内移动该参照块106的位置,在各个位置上求出参照块106中包含的图像内容和目标块103的图像内容的相关性,检测作为相关性最强而被检测的参照块106的位置,作为原帧的目标块103在参照帧102中移动的位置。然后,检测该检测出的参照帧106的位置和目标块的位置之间的位置偏移量,作为包含方向分量的移动向量。
此时,参照块106以1个像素或者多个像素单位在例如水平方向和垂直方向上在查找范围105中移动。因此,在查找范围105中设定了多个参照块。
这里,通过求出目标块103内的各像素的亮度值和参照块106内对应的各像素的亮度值的差分绝对值对于块内所有像素的总和(将该差分绝对值的总和称为差分绝对值和。以下,将该差分绝对值和记为SAD(Sum of AbsoluteDifference)),来检测目标块103和在查找范围105中移动的各参照块16的相关性。换言之,SAD值最小的位置的参照块106作为相关性最强的参照块被检测,检测该被检出的参照块106相对于目标块103的位置的偏移量,作为移动向量。
在块匹配中,查找范围105内设定的多个参照块106中的各个参照块相对于目标块103的位置的位置偏移量用包含方向分量的参照向量107(参照图8)表示。各参照块106的参照向量107成为和参照块106的参照帧102上的位置对应的值,但在现有的块匹配中,检测SAD值最小的参照块106的参照向量,作为移动向量。
因此,在块匹配中,一般来说,如图9所示,使在查找范围105内设定的多个参照块106的分别与目标块103之间的SAD值(以下,为了说明的简便,称为关于参照块的SAD值),与各个参照块106的位置所对应的各个参照向量107对应,并存储在存储器中,从关于存储在该存储器中的全部参照块106的SAD值中,检测SAD值最小的参照块106,从而检测移动向量110。
与对应于查找范围105内设定的多个参照块106的位置的各个参照向量107对应,将存储关于各个参照块106的SAD值的表格称为差分绝对值和表(以下,称为SAD表)。图4的SAD表108示出了该差分绝对值和表,在该SAD表108中,将关于各个参照块106的SAD值称为SAD表要素109。
而且,在上述说明中,目标块103和参照块106的位置表示这些块的任意特定位置,例如中心位置,参照向量107表示参照帧102的目标块103的投影图像块104的位置和参照块106的位置之间的偏移量(包含方向)。在图8和图9的例子中,是使目标块103位于帧的中心位置的情况。
而且,和各参照块106对应的参照向量107是各参照块106相对于与参照帧102上的目标块103对应的位置的位置偏移,所以如果参照块106的位置确定,则参照向量的值也对应于该位置而被确定。因此,如果SAD表108的存储器中的参照块的SAD表要素的地址被确定,则对应的参照向量也被确定。
参照图10的流程图说明以上说明的现有块匹配处理,如下所示。
首先,指定查找范围105内的1个参照块Ii,这和指定与该参照块Ii对应的参照向量是等价的(步骤S1)。这里,在图10中,(vx,vy)是将目标块的帧上的位置作为基准位置(0,0)时,用指定的参照向量表示的位置,vx是利用指定的参照向量的、离基准位置的水平方向的偏移量,vy是利用指定的参照向量的、离基准位置的垂直方向的偏移量。
这里,偏移量vx、vy是以像素作为单位的值,例如,vx=+1表示相对于基准位置(0,0),向水平方向的右方向偏移了1个像素的位置,vx=-1表示相对于基准位置(0,0),向水平方向的左方向偏移了1个像素的位置。而且,例如vy=+1表示相对于基准位置(0,0),向垂直方向的下方偏移了1个像素的位置,vy=-1表示相对于基准位置(0,0),向垂直方向的上方偏移了1个像素的位置。
如上所述,(vx,vy)表示用参照向量表示的、相对于基准位置的位置(以下,为简单起见,称为用参照向量表示的位置),和各个参照向量对应。换言之,当使vx和vy为整数时,(vx,vy)表示各个参照向量。因此,在以下的说明中,将示出(vx,vy)的位置的参照向量记为参照向量(vx,vy)。
这里,将查找范围的中心位置设为目标块的位置,即上述基准位置(0,0),将查找范围在水平方向上设为±Rx,在垂直方向上设为±Ry时,成为-Rx≤vx≤+Rx,-Ry≤vy≤+Ry。
下面,指定目标块Io内的1个像素的坐标(x,y)(步骤S2)。接着,计算目标块Io内的指定的1个坐标(x,y)的像素值Io(x,y)和参照块Ii内的对应像素位置的像素值Ii(x+vx,y+vy)的差分的绝对值α(步骤S3)。换言之,差分绝对值α用下述公式计算α=|Io(x,y)-Ii(x+vx,y+vy)|...(式1)然后,将该算出的差分绝对值α和该参照块Ii的参照向量(vx,vy)指示的地址(表要素)的、到目前为止的SAD值相加,将该相加的SAD值写回到该地址中(步骤S4)。即如果将与参照向量(vx,vy)对应的SAD值表示为SAD(vx,vy),则计算为SAD(vx,vy)=∑α=∑|Io(x,y)-Ii(x+vx,y+vy)|...(式2)写入该参照向量(vx,vy)指示的地址。
接着,对于目标块Io内全部坐标(x,y)的像素,判断是否执行了上述计算(步骤S5),在判断为对目标块Io内全部坐标(x,y)的像素的计算还没有结束时,退回到步骤S2,指定目标块Io内下一坐标(x,y)的像素位置,重复步骤S2以后的处理。
而且,在步骤S5中,在判断为对目标块Io内全部坐标(x,y)的像素执行了上述计算时,判断为关于该参照块的SAD值的计算已经结束,并判断关于查找范围内的全部参照块,即,全部参照向量(vx,vy)的上述计算处理是否结束(步骤S6)。
在步骤S6中,如果判断为还存在没有结束上述计算处理的参照向量(vx,vy),则退回到步骤S1,设定没有结束上述计算处理的下一参照向量(vx,vy),重复步骤S1以后的处理。
然后,在步骤S6中,如果判断为在查找范围内已不存在没有结束上述计算处理的参照向量(vx,vy),则认为SAD表完成,在该完成的SAD表中,检测成为最小值的SAD值(步骤S7)。然后,检测和成为最小值的SAD值的地址对应的参照向量,作为移动向量(步骤S8)。这里,如果将SAD的最小值写成SAD(mx,my),则计算作为目标的移动向量,作为表示位置(mx,my)的向量(mx,my)。
以上,利用对1个目标块的块匹配的移动向量检测处理结束。
利用以上的块匹配的无传感器手抖移动向量检测方法的情况下,原理上可以实现像素精度的手抖向量检测,而且能够削减传感器和透镜移位器等机构,所以在成本上也是相当优越的。
但是,在依赖于上述现有块匹配的技术的延伸下,和1个画面的像素数量成比例地增加SAD表的规模,所以以当前的回路大小实现目前的500万像素以上的静止画面大小的移动向量检测是非常困难的。
过去,各个公司进行了各种努力,研究NTSC(National Television SystemCommittee)活动画面的高达17万像素的手抖向量检测的回路规模削减,在此背景下,在NTSC活动画面的情况下由于为60fps(frame per second;帧/秒),手抖查找范围窄也可以,但在静止画面的情况下,以约3fps为前提,查找范围变得极大,这也是问题难以解决的一个原因。因为和像素数量相同,SAD表的表要素数量也和查找范围成比例地增加。
作为在静止画面中实现无传感器手抖校正的方法,以上述专利文献3(特开平7-283999公报)为首,提出了几种方案。专利文献3是如下的算法在不会产生手抖的短曝光时间内连续拍摄几张静止画面,求该静止画面间的手抖向量,根据该手抖向量,一边使上述连续拍摄的多张静止画面平行移动(以及在辊轴方向旋转)一边相加(或者平均化),从而最终得到没有手抖和低照度噪声的高画质静止画面。
作为能够实现的水平的现实提案,能够列举专利文献4(特开2005-38396公报)。该专利文献4中示出的方案由以对图像进行缩小变换后的大小求出移动向量的方法,和在多个块中共用同一SAD表的方法构成。图像的缩小变换和SAD表在多个块中的共有化是用于实现SAD表大小削减的非常好的方法,也用于MPEG(Moving Picture Exprerts Group,运动图象专家组)图像压缩方式的移动向量检测和画面改变等其它领域中。
但是,专利文献4的算法的问题在于,在图像的缩小变换和此时的存储器(DRAM(Dynamic RAM(Random Access Memory,随机存取存储器)))存取中,消耗时间和存储器容量,以及因为是由多个块分时存取SAD表的方法,所以存储器存取急剧增加,在该处理中也需要时间。在活动画面的手抖校正中,由于要求实时性的同时要求缩短系统延迟时间,所以处理时间的问题也成为课题。
而且,在对原图像进行缩小变换时,需要安装用于除去折叠(aliasing,折叠失真)和低照度噪声的低通滤波器,作为缩小处理的预处理。但是,低通滤波器的特性根据缩小倍率变化,特别是采用垂直方向的低通滤波器的情况下,所谓多抽头的数字滤波器的情况下,必须采用多个行存储器(linememory)和运算逻辑,产生回路规模增加的问题。
另一方面,也提出了不使用块匹配的算法(例如前述的专利文献2(特开平6-86149号公报)、专利文献5(特开2004-343483公报)等)。它们是通过在2帧图像内分别多点检测任何特征点,取这两帧间的对应,来求取所有的手抖向量(global vector,综合向量)的方法。或者也可以仅仅在一帧中检测特征点,仅仅关注该特征点的周围,对另一帧实施块匹配。
专利文献2和专利文献5的算法在减小回路大小这一点上是非常有效的,是理想的算法,但实际上,在可以将两帧中共同存在的、图像整体中真正存在特征的特征点的数量有效地压缩到何种程度上,担心其实效性。因此,如果与专利文献5和专利文献6的算法相比,在民用设备中,只要万物是拍摄对象,则认为在耐用性上,块匹配方法略高一筹。
如上所述,在数码相机等拍摄装置中,预测今后高密度像素化将进一步发展,期待高性能化,但在这样的状况下,通过不采用陀螺(角速度)传感器的无传感器实现静止画面拍摄时的手抖校正具有非常大的意义。
因此,如上所述,利用块匹配,由无传感器检测手抖移动向量,利用该检测到的移动向量进行手抖校正是有前途的,但作为块匹配的当前方案,现状是没有提出回路大小、处理速度、耐用性全部满足的提案。
而且在块匹配方法中,存在的最大问题是SAD表的增大。如前所述,在数码相机中,在以成像器500万像素以上为前提的今天,SAD表的大小不得不和像素数量成比例地增大,因为在为静止画面的情况下约为3fps,所以和活动画面60fps的手抖范围相比,需要几十倍的宽搜索范围,该搜索范围的扩大和SAD表的增大相等。
多人进行评估的结果,判明了将整帧作为100,则在3fps的静止画面的情况下的手抖范围为约±10%。在高端设备中,假设已经推出了1200万像素,保持目前提出的技术不变,如果估计需要的SAD表大小,则约80兆比特。而且,如果使其满足当前的处理速度,则要求存储SAD表信息的存储器是内置SRAM(Static RAM(Random Access Memory))。虽说半导体处理规则已发展,这一大小离现实水平还有约3位左右。
基于以上情形,在本实施方式中,提出了一种图像处理方法和装置,在利用块匹配检测两帧间的移动向量时,可以大幅减小SAD表的大小。
而且,在上述块匹配的现有提案技术中,关于专利文献4记载的利用图像缩小变换来削减SAD表的方法,提出两个问题。该问题是,伴随图像缩小变换的处理时间增大以及存储容量的消耗,和为了避免伴随图像缩小变换的折叠而安装适当的低通滤波器引起的回路增大。在以下说明的实施方式中,也解决了这些问题。
在该实施方式中,利用上述块匹配,检测两帧间的移动向量,但不是和参照块的参照向量对应地存储在目标块和参照块之间求出的SAD值,而是缩小该参照向量,对与该缩小的参照缩小向量对应的、该参照缩小向量邻近的多个参照向量进行分散相加并存储。
因此,和以往的SAD表相比,大幅缩小了SAD表的大小。
图11~图13是用于说明实施方式中采用的新块匹配方法的概要的图。图13示出了以往的SAD表TBLo和在实施方式采用的新块匹配方法中生成的缩小SAD表TBLs之间的关系。
在该实施方式中,如图8所示,和以往相同,在参照帧中,以原帧中设定的目标块的位置为中心,设定查找范围。然后,在该查找范围中,设定上述的多个参照块,求取各参照块内的像素和目标块内的对应像素的亮度值的差分的绝对值总和,即SAD值。
以往,如图11所示,将求出的SAD值写入到SAD表TBLo中,作为成为对象的参照块的参照向量RV对应的地址的表要素tbl。
因此,在以往的块匹配中,表示目标块和参照块的帧图像上的位置偏移量的参照向量RV与SAD表TBLo的各表要素即参照块的SAD值是一一对应的。换言之,在以往的SAD表TBLo中,具有和在查找范围中取得的参照向量RV的数量相等的SAD值的表要素数量。
与此相对的是,在本实施方式的块匹配中,如图11和图12(A)、(B)所示,成为对象的参照块的参照向量RV以缩小率1/n(n是自然数)被缩小而成为参照缩小向量CV。
这里,在以下说明中,为了说明的方便,使水平方向缩小倍率和垂直方向的缩小倍率相同,但水平方向缩小倍率和垂直方向的缩小倍率也可以是独立的不同的值。而且,尽管在后面进行了描述,但使得能够将水平方向缩小倍率和垂直方向的缩小倍率独立地设定成任意自然数分之一也是合适的,其灵活性高。
在该实施方式中,和对前述的现有的块匹配方法进行的说明相同,使作为查找范围的中心的目标块的位置作为基准位置(0,0),参照向量指的是从该基准位置向像素单位的水平方向和垂直方向的偏移量(vx,vy)(vx、vy是整数),参照向量RV分别用参照向量(vx,vy)表示。
由参照向量(vx,vy)在水平方向和垂直方向上分别缩小到1/n的参照缩小向量(vx/n,vy/n)表示的位置(vx/n,vy/n)不是整数,产生了小数分量。因此,在该实施方式中,如果存储对应于缩小前原来的参照向量RV求出的SAD值,作为最接近参照缩小向量CV的1个参照向量所对应的表像素,则会产生误差。
因此,在该实施方式中,首先,检测由参照缩小向量CV表示的位置(vx/n,vy/n)邻近的多个参照向量所表示的多个位置(表要素)。然后,对参照向量RV的参照块求出的SAD值分散加到和该检测到的邻近的多个参照向量对应的SAD值上。
此时,在该实施方式中,作为要写入到由参照缩小向量CV表示的位置邻近的周围多个参照向量表示的位置所对应的表要素tbl中的分量而进行分散相加的值是利用参照缩小向量和其邻近的参照向量分别示出的位置关系,从与缩小前原来的参照向量RV对应地求出的SAD值,计算和上述邻近的各个参照向量对应地进行分散相加的SAD值,将计算出的各SAD值相加,作为对应的参照向量的表要素分量。
这里,不仅分散而且相加的意思是,对于不同的多个参照缩小向量重复检测参照缩小向量邻近的多个参照向量,所以对于1个参照向量加上重复的SAD值。
而且,当参照缩小向量CV表示的位置(vx/n,vy/n)和参照向量表示的位置一致时,换言之,当vx/n和vy/n的值是整数时,无需检测周边的多个参照向量,对应于表示该位置(vx/n,vy/n)的参照向量,存储和缩小前原来的参照向量RV对应地求出的SAD值。
下面列举具体的例子,对以上处理进行说明。例如,在将目标块的位置作为基准(0,0)时,如图12(A)所示,如果将表示(-3,-5)的位置的参照块RV在水平方向和垂直方向上缩小到1/n=1/4倍,则如图12(B)所示,由该参照缩小向量CV表示的位置为(-0.75,-1.25)。
因此,由参照缩小向量CV表示的位置产生小数分量,和由参照向量表示的位置不一致。
因此,此时,如图13所示,由表示该参照缩小向量CV所示的位置邻近位置的多个邻近参照向量被检测。在图13的例子中,对于1个参照缩小向量CV,检测到4个邻近参照向量NV1、NV2、NV3、NV4。
然后,如前所述,在该实施方式中,对参照向量RV的参照块求出的SAD值被分散相加,作为和这4个邻近参照向量NV1、NV2、NV3、NV4对应的SAD值。
此时,在该实施方式中,利用由参照缩小向量CV表示的位置P0(在图13中用标记×示出)和由4个邻近参照向量NV1、NV2、NV3、NV4的分别示出的位置P1、P2、P3、P4(在图13中用标记○示出)的位置关系,计算分散相加到4个邻近参照向量NV1、NV2、NV3、NV4的每一个上的SAD值,作为线性加权分散值。
在图13的例子的情况下,由参照缩小向量CV表示的位置P0位于将由4个邻近参照向量NV1、NV2、NV3、NV4分别示出的位置P1、P2、P3、P4在水平方向上内分成1∶3,垂直方向上内分成3∶1的位置上。
因此,在将和缩小前原来的参照向量RV对应地求出的SAD值记为Sα时,分散相加到由周围邻近的4个参照向量NV1、NV2、NV3、NV4分别示出的位置P1、P2、P3、P4所对应的SAD表要素上的值SADp1、SADp2、SADp3、SADp4分别是SADp1=Sα×9/16SADp2=Sα×3/16SADp3=Sα×3/16SADp4=Sα×1/16然后,在本实施方式中,让求出的值SADp1、SADp2、SADp3、SADp4的分别和邻近的4个参照向量NV1、NV2、NV3、NV4分别示出的位置P1、P2、P3、P4所对应的SAD表要素相加。
在该实施方式中,对查找范围内的全部参照块进行以上处理。
基于上述内容,在该实施方式中,在将参照向量RV缩小到1/n的情况下,也可以对于和全部参照向量一一对应的现有大小的SAD表TBLo,准备在水平方向上缩小到1/n、在垂直方向上缩小到1/n的缩小SAD表TBLs,求出和参照缩小向量CV的邻近的参照向量对应的SAD值,作为该缩小SAD表TBLs的表要素(参照图11)。
因此,在本实施方式的情况下,缩小SAD表TBLs的表要素的数量是以往的SAD表TBLo的表要素数量的1/n2,可以大幅减小表的大小。
而且,在上述实施方式的说明中,检测参照缩小向量CV邻近的4个参照向量,将与该4个邻近参照向量对应的SAD表要素和关于对照的参照块(参照向量RV)计算出的SAD值线性加权分散相加,但参照缩小向量CV邻近的多个参照向量的选择方法以及对于和该邻近参照向量对应的SAD表要素的分散相加的方法并不局限于上述例子。
例如,如果检测参照缩小向量CV邻近的9个或者16个参照向量,对于和该9个或者16个参照向量对应的SAD表要素,利用所谓的三次(cubic)插值进行分散相加,则精度进一步提高。但是,如果重视实时性和运算回路的减少,则对上述临近4个参照向量所对应的表要素执行线性加权分散相加是更加有效的。
在该实施方式中,在整个查找范围内移动参照块,对全部参照块的SAD值代入SAD表(在该实施方式中是缩小SAD表)的操作这一点上,和现有技术是相同的。
但是以往,因为参照向量和SAD表要素的地址是一一对应的,所以简单地代入SAD表就行,但在本实施方式的方法中,因为将对参照块计算的SAD值分散相加,所以在缩小SAD表中,参照向量和表地址不是一一对应的。因此,在本实施方式的方法中,不是SAD值对表地址的简单的代入,而是需要相加并代入,即所谓代入相加。而因此,SAD表(缩小SAD表)的各表要素最初必须初始化(清0)。
但是,在以往的块匹配方法中,在按上述方式完成的SAD表中,如果搜索SAD值为最小值的表要素,将为该最小值的表要素的表地址变换成参照向量,则完成了移动向量的检测。
与此相对的是,在利用本实施方式的技术中,SAD表是和缩小参照向量后的参照缩小向量对应的缩小SAD表,所以该缩小SAD表的最小值保持不变,和正确的移动向量不对应。
不过,在允许某种程度的误差的装置的情况下,通过将缩小SAD表的为最小值的表要素的表地址变换成参照向量后的结果进一步变成缩小率1/n的倒数倍即n倍,从而也能够检测移动向量。
但是,在检测更加准确的移动向量的情况下,如下所述,通过对缩小SAD表的表要素值实施插值处理,以原向量的精度检测正确的移动向量。
<用于检测更加准确的移动向量的插值处理的第1例>
用于检测更加准确的移动向量的插值处理的第1例是,用1个二次曲面对缩小SAD表的多个SAD表要素值(SAD值)进行近似的方法。该方法是对缩小SAD表采用上述专利文献1中记载的方法的方法。
换言之,在缩小SAD表中,求出SAD值为最小值的表要素(整数精度最小值表要素(整数精度表地址))和以该整数精度最小值表要素为中心的多个整数精度表要素,利用这些表要素的SAD值,通过最小自乘法确定SAD值的二次曲面,检测成为该二次曲面的最小值的SAD值,检测和该检测的为最小值的SAD值对应的位置(在参照帧上,相对于基准位置偏移的位置),将该检测出的位置作为小数精度的最小值表地址(在缩小SAD表中,和SAD为最小值的向量(称为最小值向量)对应)。
此时,为了确定唯一的二次曲面,如图14(A)或者图14(B)所示,最少需要整数精度最小值表要素tm,以及从其两侧夹着该表要素tm的位置上的、该表要素tm附近的4个整数精度表要素t1、t2、t3、t4。
然后,如图15所示,在和参照帧的查找范围内的缩小SAD表对应的参照缩小向量的范围内,将目标帧的位置作为基准位置(0,0),在考虑水平方向和垂直方向偏移量(和参照缩小向量对应)的轴vx/n和轴vy/n的同时,将SAD的轴考虑作为和这些的轴vx/n和轴vy/n垂直的轴,设定由这3个轴构成的坐标空间。
然后,例如,由整数精度最小值表要素tm的SAD值、和夹着该整数精度最小值表要素tm的2个表要素t1、t3的SAD值,在图15的坐标空间中生成二次曲线。而且,由整数精度最小值表要素tm的SAD值、和夹着该整数精度最小值表要素tm的其它2个表要素t2、t4的SAD值,在图15的坐标空间中生成另一个二次曲线。然后,利用最小自乘法求出包含这两个二次曲线的二次曲面201,如图15所示,在坐标空间中生成该二次曲面201。
然后,检测生成的SAD值的二次曲面201的最小值202,检测和取该最小值的SAD值对应的位置(vx/n,vy/n)(图15的位置203),将该检测的位置(vx/n,vy/n)作为小数精度的表要素(表地址)进行检测。然后,如图16所示,使和检测到的小数精度表要素对应的向量(最小值向量)204增至n倍,得到精度为原大小的移动向量205。
例如,如图17所示,在将参照向量缩小到1/4时缩小SAD表TBLs的、由小数精度表要素的最小值地址求出的最小值向量204为(-0.777,-1.492)时,将它们放大4倍后得到的(-3.108,-5.968)是移动向量205。该移动向量205再现了为原图像的比例(scale)的移动向量。
以上对利用整数精度最小值表要素tm和其附近的4个表要素的情况进行了说明,但为了利用最小自乘法求出SAD值的二次曲面,最好利用更多的多个附近表要素。因此,一般来说,将整数精度最小值表要素tm作为中心,采用其周围的水平方向×垂直方向=m×m个(m为3以上的整数)的矩形区域的表要素。
但是,该多个邻近表要素的数量不是越多越好,如果利用宽范围的表要素,则会导致运算量增加,而且使用依赖于图像模式(pattern)的局部最小伪值的可能性提高,所以采用由适当的多个邻近表要素的数构成的矩形区域的表要素。
作为由适当的多个邻近表要素数构成的矩形区域的表要素的例子,在该实施方式中,进行说明的例子是,以整数精度最小值表要素tm作为中心,采用其周围的水平方向×垂直方向=3×3个矩形区域的表要素的例子,和以整数精度最小值表要素tm作为中心,采用其周围的水平方向×垂直方向=3×3个矩形区域的表要素的例子。
<采用3×3个矩形区域的表要素的例子>
在图18中,示出的例子是,以整数精度最小值表要素tm作为中心,采用其周围的水平方向×垂直方向=3×3个矩形区域(在图18中用涂层示出)的表要素。
在图18的例子中,如图18(A)所示,利用整数精度最小值表要素tm和其邻近的8个邻近表要素的SAD值,通过最小自乘法生成如图18(B)所示的二次曲面201。然后,检测生成的SAD值的二次曲面201的最小值202,检测和取该最小值的SAD值对应的位置(vx/n,vy/n)(图18(B)的位置203),将该检测到的位置203作为小数精度的最小值表要素位置(小数精度最小值表地址)进行检测。
然后,如上述图16所示,使和检测到的小数精度表要素位置203对应的向量(最小值向量)204增至n倍,得到精度为原大小的移动向量205。
这里,和SAD值的二次曲面201的最小值202对应的位置203的计算方法如下所示。即如图19所示,考虑将整数精度最小值表要素tm的位置作为原点(0,0)的(x,y)坐标。此时,周边的8个表要素的位置是由3个x轴方向的位置即x=-1、x=0、x=1和3个y轴方向的位置即y=-1、y=0、y=1配合表示的,即为(-1,-1)、(0,-1)、(1,-1)、(-1,0)、(0,1)、(-1,1)、(0,1)、(1,1)8个位置。
然后,将图19的表中各表要素的SAD值记为Sxy。因此,例如,整数精度最小值表要素tm(位置(0,0))的SAD值表示为S00,而右下位置(1,1)的表要素值的SAD值表示为S11。
这样,利用图20所示的(式A)和(式B),能够求出将整数精度最小值表要素tm的位置作为原点(0,0)的(x,y)坐标的小数精度的位置(dx,dy)。
在图20的(式A)和(式B)中,x=-1时,Kx=-1x=0时,Kx=0x=0时,Kx=1。
而且,y=-1时,Ky=-1y=0时,Ky=0y=0时,Ky=1。
这样求出的小数精度的位置(dx,dy)是将整数精度最小值表要素tm的位置作为原点(0,0)的位置,所以从该小数精度的位置(dx,dy)和整数精度最小值表要素tm的位置,能够检测离开求出的查找范围中心位置的位置203。
<采用4×4个矩形区域的表要素的例子>
在图21中,示出的例子是,基本上以整数精度最小值表要素tm作为中心,采用其周围的水平方向×垂直方向=4×4个矩形区域的表要素(在图21中附加涂层示出)。
此时,在如整数精度最小值表要素tm和其附近的8个表要素(3×3)或其附近的24个表要素(5×5)那样,上述m的值为奇数的情况下,整数精度最小值表要素tm始终成为使用的矩形区域的多个表要素的中心,所以简单地确定使用的表范围。
与此相对的是,在象附近的15个表要素(4×4)那样,m为偶数的情况下,因为整数精度最小值表要素tm不是使用的矩形区域的多个表要素的中心位置,所以需要少许努力。
换言之,从整数精度最小值表要素tm来看,比较在水平方向上左右的邻接表元素的SAD值,采用为小的值一侧的方向的、和该方向的邻接表要素邻接的表要素,作为邻近表要素的第4列。同样,比较在垂直方向上上下的邻接表元素的SAD值,采用为小的值一侧的方向的、和该方向的邻接表要素邻接的表要素,作为邻近表要素的第4行。
在图21的例子中,因为整数精度最小值表要素tm的水平方向上左右的邻接表元素的SAD值为“177”和“173”,所以采用SAD值小的右侧相邻的值“173”的表要素的更右侧相邻的列,作为第4列。而且,因为整数精度最小值表要素tm的垂直方向上上下的邻接表元素的SAD值为168和182,所以采用SAD值小的上侧相邻的值“168”的表要素的更上侧相邻的行,作为第4行。
然后,在图21的例子的情况下,利用整数精度最小值表要素tm和其临近的15个邻近表要素的SAD值,通过最小自乘法生成二次曲面201。然后,检测生成的SAD的二次曲面201的最小值202,检测和取该最小值的SAD值对应的位置(vx/n,vy/n)(图21的位置203),将该检测到的位置203作为小数精度的最小值表要素位置(小数精度最小值表地址)进行检测。
然后,如上述图16所示,使和检测到的小数精度表要素位置203对应的向量(最小值向量)204增至n倍,得到精度为原大小的移动向量205。
这里,和本例的情况下的SAD值的二次曲面201的最小值202对应的位置203的计算方法如下所示。即如图22所示,考虑将整数精度最小值表要素tm的位置作为原点(0,0)的(x,y)坐标。
在本例的情况下,需要对应于由1 6个表要素构成的矩形区域中的整数精度最小值表要素tm的位置,考虑图22(A)、22(B)、22(C)、22(D)所示4组表要素配置。
此时,从图22(A)、22(B)、22(C)、22(D)可知,周边的15个表要素的位置是由4个x轴方向的位置即x=-1、x=0、x=1、x=2或者x=-2和4个y轴方向的位置即y=-1、y=0、y=1、y=2或者y=-2配合表示的15个位置。
然后,将图22的表中各表要素的SAD值记为Sxy。因此,例如,整数精度最小值表要素tm(位置(0,0))的SAD值表示为S00,位置(1,1)的表要素值的SAD值表示为S11。
这样,利用图23所示的(式C)和(式D),能够求出将整数精度最小值表要素tm及其周边的16个表要素构成的矩形区域中的中心位置作为原点(0,0)的(x,y)坐标的小数精度的位置(dx,dy)。
这里,在图23的(式C)和(式D)中,Kx和Ky是,考虑将整数精度最小值表要素tm及其周边的16个表要素构成的矩形区域中的中心位置作为原点(0,0)的(Kx,Ky)坐标时的、上述图22(A)、(B)、(C)、(D)所示的4组表元素配置对应的值。在图24中示出此时的(Kx,Ky)坐标。
换言之,在图22(A)的情况下,x=-2时,Kx=-1.5x=-1时,Kx=-0.5x=0时,Kx=0.5x=1时,Kx=1.5。
而且,y=-2时,Ky=-1.5y=-1时,Ky=-0.5y=0时,Ky=0.5y=1时,Ky=1.5。
此外,在图22(B)的情况下,x=-2时,Kx=-1.5x=-1时,Kx=-0.5x=0时,Kx=0.5x=1时,Kx=1.5。
而且,y=-1时,Ky=-1.5y=0时,Ky=-0.5y=1时,Ky=0.5y=2时,Ky=1.5。
在图22(C)的情况下,x=-1时,Kx=-1.5x=0时,Kx=-0.5x=1时,Kx=0.5x=2时,Kx=1.5。
而且,y=-2时,Ky=-1.5y=-1时,Ky=-0.5y=0时,Ky=0.5y=1时,Ky=1.5。
在图22(D)的情况下,x=-1时,Kx=-1.5x=0时,Kx=-0.5x=1时,Kx=0.5x=2时,Kx=1.5。
而且,y=-1时,Ky=-1.5y=0时,Ky=-0.5y=1时,Ky=0.5y=2时,Ky=1.5。
而且,图23的(式C)和(式D)的Δx以及Δy表示相对于(Kx,Ky)坐标的、图22(A)、(B)、(C)、(D)的各表元素配置的(x、y)坐标的偏移量,图22(A)的情况下,Δx=-0.5、Δy=-0.5图22(B)的情况下,Δx=-0.5、Δy=0.5图22(C)的情况下,Δx=0.5、Δy=-0.5图22(D)的情况下,Δx=0.5、Δy=0.5。
这样求出的小数精度的位置(dx,dy)是将整数精度最小值表要素tm的位置作为原点(0,0)的位置,所以能够基于该小数精度的位置(dx,dy)和整数精度最小值表要素tm的位置,检测离开要求的查找范围的中心位置的位置203。
<用于检测更加准确的移动向量的插值处理的第2例>
用于检测更加准确的移动向量的插值处理的第2例是,在利用包含缩小SAD表的整数精度最小值表要素的多个水平方向的表要素的SAD值生成水平方向的三次曲线的同时,利用包含整数精度最小值表要素的多个垂直方向的表要素的SAD值生成垂直方向的三次曲线,检测为各个三次曲线的极小值的位置(vx,vy),将检测到的位置作为小数精度的最小值地址。
图25是用于说明该第2例的图。和上述第1例相同,求出整数精度最小值表要素tm和以该整数精度最小值表要素为中心的多个整数精度表要素,在图25的例子中,是4×4=16个表要素(参照图25(A)中的附加涂层的部分)。
下面,和第1例相同,如图25(B)所示,在和参照帧的查找范围内的缩小SAD表对应的参照缩小向量的范围内,将目标帧的位置作为基准位置(0,0),在考虑水平方向和垂直方向偏移量(和参照缩小向量对应)的轴vx/n和轴vy/n的同时,考虑将SAD值的轴作为和这些轴vx/n和轴vy/n垂直的轴,设定由这3个轴构成的坐标空间。
接着,利用整数精度最小值表要素tm周围的16个表要素中,包含整数精度最小值表要素tm的4个水平方向的表要素的SAD值,在上述坐标空间中,生成水平方向的三次曲线206。检测小数精度最小值表要素位置的水平方向位置,作为和该水平方向的三次曲线206的极小值对应的水平方向的位置vx/n。
接着,利用整数精度最小值表要素tm周围的16个表要素中,包含整数精度最小值表要素tm的4个垂直方向的表要素的SAD值,在上述坐标空间中,生成垂直方向的三次曲线207。检测小数精度最小值表要素位置的垂直方向位置,作为和该垂直方向的三次曲线207的极小值对应的垂直方向的位置vy/n。
基于以上求出的小数精度最小值表要素位置的水平方向位置和垂直方向位置,检测小数精度最小值表要素位置(小数精度最小值表地址)208。然后,如前述图16所示,使和检测到的小数精度表要素位置208对应的向量(最小值向量)209增至n倍,得到精度为原大小的移动向量。
换言之,第2例是,利用在第1例中说明的方法,确定水平方向、垂直方向的各4个表要素,如图25(B)所示,利用水平方向、垂直方向分别唯一确定三次曲线的方法。
这里,与SAD值的三次曲线206和209的最小值202对应的位置208的计算方法如下所述。即在水平方向或者垂直方向中的任一方向上的三次曲线中,在将最小值附近4点的SAD值以沿着上述水平方向或者垂直方向中的任一方向的顺序作为S0、S1、S2、S3时,小数精度的最小值位于图26所示的3个区间Ra、Rb、Rc的任何一个中,所以计算取最小值的小数分量u的公式不相同。
这里,区间Ra是SAD值S0的位置和SAD值S1的位置之间的区间,Rb是SAD值S1的位置和SAD值S2的位置之间的区间,Rc是SAD值S2的位置和SAD值S3的位置之间的区间。
然后,在小数精度的最小值位于图26所示的区间Ra中时,根据图27的(式E),计算到相对于整数精度的最小值的位置取最小值的位置的偏移的小数分量u。
同样,在小数精度的最小值位于图26所示的区间Rb中时,根据图27的(式F),计算到相对于整数精度的最小值的位置取最小值的位置的偏移的小数分量u。
而且,在小数精度的最小值位于图26所示的区间Rc中时,根据图27的(式G),计算到相对于整数精度的最小值的位置取最小值的位置的偏移的小数分量u。
然后,小数精度的最小值位于图26所示的3个区间Ra、Rb、Rc的哪一个中的判断按下述方式进行。
换言之,图28是用于说明该判断的图。如图28(A)、(B)、(C)所示,首先,检测整数精度的SAD值的最小值Smin和第2小的整数精度的SAD值Sn2,使小数精度的最小值位于检测的整数精度的SAD值的最小值Smin和第2小的整数精度的SAD值Sn2的位置之间的区间进行检测。接着,根据整数精度的SAD值的最小值Smin和第2小的整数精度的SAD值Sn2是图28示出的S0、S1、S2、S3中的哪个位置,判断检测到的区间是区间Ra、Rb、Rc的哪一个。
而且,如图28(D)所示,在整数精度的SAD值的最小值Smin位于SAD值的位置,或者位于4个表元素值的端点的情况下,不能推测最小位置,在该实施方式中,作为错误进行处理,不执行最小值位置的计算。不过也可以在图28(D)的情况下也计算最小值位置。
按上述方式,根据该实施方式,利用规模减小到1/n2的小大小的缩小SAD表,能够检测原来的图像规模的移动向量。此时,在图20中示出的是尽管采用规模减小到1/n2的小大小的缩小SAD表,但也得到和以往基本相同的向量检测结果。
图29的横轴是在水平方向或者垂直方向上的一维方向的缩小倍率n,而且,纵轴表示检测到的移动向量的误差(向量误差)。图29的向量误差的数值用像素数量表示。
在图29中,曲线301是向量误差相对于缩小倍率的平均值。而且,曲线302表示向量误差相对于缩小倍率的分散σ的3倍值(3σ(99.7%))。曲线303表示曲线302的近似曲线。
图29表示相对于一维方向缩小倍率n的向量误差,但因为SAD表是2维的,所以以图29所示结果的平方比例来削减表大小(表要素数量),与此相对的是,向量误差仅仅线性程度增加,从而可知本实施方式的方法的有用性。
而且,即使是n=64(缩小率1/64)倍的缩小倍率,因为向量误差小,看不到检测输出全都不同的移动向量这样的失败,所以实际上可以将SAD表的大小减小到1/4096。
而且,如前所述,在活动画面的手抖校正时,强烈要求实时性和系统延迟的削减,与此相对的是,对于精度,除了检测到失败了的都不相同的移动向量的情况之外,对于某种程度的向量检测误差是允许的。因此,本实施方式能够大大削减SAD表的大小而不失败,有用性高。
而且,在本实施方式的实际的手抖校正系统中,如前所述,将参照帧1 02分割成多个领域,在各个分割领域中,设定目标块103作为目标区域TGi,对于各分割区域,设定查找范围105,检测移动向量205(前述图5(A)的移动向量MVi)。这是因为,在帧内包含移动被拍摄体的可能性也高,所以,例如图30所示,在参照帧102的一帧内检测到16个移动向量205,一边加入从过去的帧中这些移动向量205的推移,一边进行统计处理,对1帧确定1个综合向量,即确定帧的手抖向量。
而且,在该实施方式中,如前所述,为了从手抖移动向量除去光学缩放部分向量,在1个画面内设定多个目标块。
此时,如图30所示,确定将想检测的16个移动向量205的各个基准位置PO1~PO16作为中心的查找范围SR1,SR2,...,SR16,在各查找范围中,设定目标块的投影图像块IB1,IB2,...,IB16。
然后,设定和该投影图像块IB1,IB2,...,IB16相同大小的参照块,在各查找范围SR1,SR2,...,SR16内移动设定的参照块,和上述内容相同,生成缩小SAD表,检测各查找范围SR1,SR2,...,SR16中的移动向量205。
然后,利用关于在参照帧中取得的多个目标块得到的多个移动向量,一边加入从过去的帧中的这些移动向量的推移,一边进行统计处理,对1帧确定1个综合向量,即确定帧的手抖向量。
和作为现有技术说明的专利文献4中记载的、以对图像进行缩小变换后的大小检测移动向量的技术相比,以上说明的实施方式的图像处理方法在下面列举的两点上具有大不相同的优点。
首先,第一,和专利文献4记载的现有技术不同,本实施方式的技术完全不需要对图像进行缩小变换的处理。在本实施方式的技术中,在将关于参照块计算出的SAD值代入到SAD表(缩小SAD表)中相加时,同时执行和缩小倍率相当的地址变换。
因此,在由本实施方式执行的方法中,具有下述优点,即不需要用于专利文献4中记载的现有方法的图像缩小变换的逻辑、将缩小的图像存储在存储器中的时间以及带宽的浪费、和将缩小图像放在存储器中的区域确保。
专利文献4中记载的现有方法的又一重要问题是,如前使用方式所述,对图像进行缩小变换时的折叠(折叠失真),和存在用于除去低照度噪声的低通滤波器。换言之,在缩小图像时,必须在通过适当的低通滤波器后进行采样,若不这样,则产生不需要的折叠,明显损害了利用该缩小图像的移动向量的精度。
作为缩小变换时理想的低通滤波器的特性,是和sinc函数类似的函数,在理论上进行了证明。sinc函数本身是用sin(xπ)/(xπ)的形式表示的截止频率f/2的无限抽头的FIR(Finite Impulse Response,有限脉冲响应)滤波器,但作为缩小倍率1/n时的理想截止频率f/(2n)的低通滤波器,表示成sin(xπ/n)/(xπ/n)。但是,这也可以作为sinc函数的一种形态。
在图31~图33的上侧,分别示出了缩小倍率为1/2倍、1/4倍、1/8倍时的sinc函数(低通滤波器的理想特性)的形状。从该图31~图33可知,如果缩小倍率越大,则函数在抽头轴方向上不断扩大。换言之,可以说在仅仅用主要系数对无限抽头的sinc函数进行近似的情况下,也必须增加FIR滤波器的抽头数。
而且,一般来说,和滤波器形状相比,可知实现较低带域的截止频率的滤波器的抽头数对其性能起决定性的作用。
因此,利用专利文献4记载的现有方法的缩小图像的移动向量计算方法的情况下,尽管图像的缩小倍率越大,则该SAD表削减效果越好,但作为图像生成时的预处理用滤波器的低通滤波器中,同时存在缩小倍率越大则成本越高这样的矛盾。
一般来说,在实现高次抽头的FIR滤波器的情况下,因为计算逻辑电路的成本和抽头数的平方成比例地增加,所以成为问题,但更大的问题是,用于实现垂直滤波器的行存储器数量增加。在近年的数字照相机中,因为随着像素数的增加,行存储器的大小减小,所以执行所谓的长方形处理,但是,例如,即使削减每1行的大小,行存储器本身的个数的增加也会显著提高由物理设计区域换算的总成本。
如上所述,可知利用专利文献4记载的现有方法的图像缩小的途径特别是在实现垂直低通滤波器时,具有很大的障碍。对此,本发明的方法以完全不同的形式简洁地解决该问题。
在图31~图33的下侧,示出了在该实施方式中采用的新块匹配方法的低通滤波器的图像。在该实施方式采用的新块匹配方法中,没有伴随图像缩小处理,但图示的是缩小SAD表的生成计算过程中低通滤波器的图像。
如图31~33的下侧所示,可知该低通滤波器的特性是线性近似sinc函数的主要系数部分后的、简单的滤波器特性,但抽头(tap)数与缩小倍率连动地增加。这适合于如前所述,截止频率越低,低通滤波器的性能由抽头数控制的事实。换言之,实施方式的执行线性加权分散相加的处理这样的、执行本发明的SAD值的分散相加的处理本身和由简单的回路实现倍率连动的高性能低通滤波器是等价的。
该低通滤波器在其它方面也具有优点。在专利文献4记载的现有方法中,通过在打开低通滤波器后重新采样来缩小图像,但此时大量的图像信息被丢失。换言之,在低通滤波器的计算中,图像信息的亮度值的字长被大幅地舍入而存储在存储器中,图像信息的大部分的下位比特不对缩小后的图像产生影响。
另一方面,该实施方式采用的新的块匹配方法中,平等地使用全部像素的亮度值的所有比特信息,计算SAD值,求出其分散相加值,加到缩小SAD表中。如果增加缩小SAD表的各表要素值的字长,则在输出最终的SAD值之前,可以以不包含所有舍入误差的形式计算。因为缩小SAD表的面积比帧存储器小,所以缩小SAD表的字长扩展不成为大的问题。其结果是,能够高精度地实现缩小SAD表以及移动向量检测。
<移动向量检测部分151的处理操作>
<第1例>
下面参照图34和图35的流程,说明该移动向量检测部分151的处理操作的第1例的流程。
首先,指定和前述图8或者图30所示的查找范围105或者查找范围SR1~SR16的各个内的1个参照块Ii对应的参照向量(vx,vy)(步骤S101)。如前所示,(vx,vy)是将目标块的帧上的位置(查找范围的中心位置)作为基准位置(0,0)时,用指定的参照向量表示的位置,vx是利用指定的参照向量的、离基准位置的水平方向的偏移量分量,vy是利用指定的参照向量的、离基准位置的垂直方向的偏移量分量。而且,和在前述的现有例中所述的相同,偏移量vx,vy是以像素作为单位的值。
这里,在使查找范围的中心位置为上述基准位置(0,0),在水平方向上为±Rx,在垂直方向上为±Ry时,-Rx≤vx≤+Rx,-Ry≤vy≤+Ry。
下面,指定目标块Io内的1个像素的坐标(x,y)(步骤S102)。接着,以上述(式1)所示的方式,计算目标块Io内的指定的1个坐标(x,y)的像素值Io(x,y)和参照块Ii内的对应像素位置的像素值Ii(x+vx,y+vy)的差分绝对值α(步骤S103)。
然后,将该算出的差分绝对值α和该参照块Ii的参照向量(vx,vy)指示的地址(表要素)的到此为止的SAD值相加,将该相加的SAD值写回到该地址中(步骤S104)。即将和参照向量(vx,vy)对应的SAD值表示为SAD(vx,vy)时,用上述(式2)即计算为SAD(vx,vy)=∑α=∑|Io(x,y)-Ii(x+vx,y+vy)|...(式2)写入该参照向量(vx,vy)指示的地址。
接着,对于目标块Io内全部坐标(x,y)的像素,判断是否执行上述步骤S102~S104的计算(步骤S105),在判断结果是目标块Io内全部坐标(x,y)的像素的计算还没有结束时,退回到步骤S102,指定目标块Io内下一坐标(x,y)的像素位置,重复该步骤S102以后的处理。
以上的步骤S101~S105的处理和图10所示的流程图的步骤S1~S5的处理完全相同。
在该实施方式中,在步骤S105中判断为对目标块Io内全部坐标(x,y)的像素执行了上述计算时,使缩小倍率为1/n,计算将参照向量(vx,vy)缩小到1/n后的参照缩小向量(vx/n,vy/n)(步骤S106)。
接着,检测参照缩小向量(vx/n,vy/n)邻近的多个参照向量,在该例中,如上所述,是4个邻近参照向量(步骤S107)。然后,如前所述,基于参照缩小向量和邻近参照向量分别表示的位置关系,从在步骤S104中求出的SAD值,求出作为和检测的4个邻近参照向量分别对应的表要素要分散相加的值,作为线性加权分散值(步骤S108)。然后,将求出的4个线性加权分散值和与邻近参照向量分别对应的SAD表要素值相加(步骤S109)。
如果步骤S109结束,则判断出对关注的参照块的SAD值的计算结束,判断对查找范围内的所有参照块,即所有参照向量(vx,vy)的、上述步骤S101~S109的计算处理是否结束(图35的步骤S111)。
在步骤S111中,如果判断为还存在没有完成上述计算处理的参照向量(vx,vy),则退回到步骤S101,设定没有完成上述计算处理的下一参照向量(vx,vy),重复该步骤S101以后的处理。
然后,在步骤S111,如果判断为在查找范围内没有未完成上述计算处理的参照向量(vx,vy),则缩小SAD表完成,在该完成的缩小SAD表中,检测成为最小值的SAD值(步骤S112)。
接着,利用成为最小值的该表要素地址(mx,my)的SAD值(最小值)和其附近的多个、在本例中是如上所述的15个邻近表要素的SAD值,生成二次曲面(步骤S113),计算表示该二次曲面的最小值的SAD值对应的小数精度的位置的最小值向量(px,py)(步骤S114)。该最小值向量(px,py)和小数精度的最小表要素地址对应。
然后,通过使表示算出的小数精度位置的最小值向量(px,py)成为n倍,计算要求出的移动向量(px×n,py×n)(步骤S115)。
以上,对于1个目标块的、利用本实施方式的块匹配的移动向量检测处理结束。在图30所示的、对1帧进行分割后的区域中,在检测到多个移动向量的情况下,再设定查找范围和缩小倍率1/n,对各分割区域的目标块重复上述图34和图35所示的处理。
而且,作为计算表示小数精度的位置的最小值向量(px,py)的方法,当然可以采用利用上述水平方向和垂直方向的三次曲线的方法。
<第2例>
在上述第1例中,对1个参照块(参照向量)求出其SAD值后,基于该SAD值求出关于参照缩小向量附近的多个参照向量的分散相加值,执行分散相加处理。
与此相对的是,在第2例中,在检测参照块内的各像素和目标块的像素的差分时,基于该差分值求出关于参照缩小向量附近的多个参照向量的分散相加值(不是SAD值的差分值),对求出的差分值执行分散相加处理。根据第2例,在对1个参照块内的全部像素的差分计算结束时,缩小SAD表被生成。
图36和图37示出了第2例的移动向量检测处理的流程图。
图36的步骤S121~S123的处理和图34的步骤S101~S103的处理完全相同,所以在此省略其详细说明。
在第2例中,在步骤S123计算关于坐标(x,y)的参照块和目标块之间的像素的差分值α后,接着,使缩小倍率为1/n,计算将参照向量(vx,vy)缩小到1/n后的参照缩小向量(vx/n,vy/n)(步骤S124)。
接着,检测参照缩小向量(vx/n,vy/n)邻近的多个参照向量,在该例中,如上所述,是4个邻近参照向量(步骤S125)。然后,如前所述,基于参照缩小向量和邻近参照向量分别表示的位置关系,从在步骤S123中求出的差分值α,求出作为和检测的4个邻近参照向量的各个对应的表要素要分散相加的差分值,作为线性加权分散值(差分值)(步骤S126)。
然后,将求出的4个线性加权分散值和与邻近参照向量的各个对应的表要素值相加(步骤S127)。
如果步骤S127结束,则判断对于目标块Io内的全部坐标(x,y)的像素,是否执行了上述步骤S122~S127的计算(步骤S128),在判断为对目标块Io内的全部坐标(x,y)的像素的计算还没有结束时,退回步骤S122,指定目标块Io内的下一坐标(x,y)的像素位置,重复该步骤S122以后的处理。
在步骤S128中判断为是对目标块Io内的全部坐标(x,y)的像素执行了上述计算时,则判断出对关注的参照块的SAD值的计算结束,判断对查找范围内的所有参照块,即所有参照向量(vx,vy)的上述步骤S121~S128的计算处理是否结束(图37的步骤S131)。
然后,在步骤S131中,如果判断为还存在没有完成上述计算处理的参照向量(vx,vy),则退回到步骤S121,设定没有完成上述计算处理的下一参照向量(vx,vy),重复该步骤S121以后的处理。
然后,在步骤S121,如果判断为在查找范围内没有未完成上述计算处理的参照向量(vx,vy),则缩小SAD表完成,在该完成的缩小SAD表中,检测成为最小值的SAD值(步骤S132)。
接着,利用成为最小值的该表要素地址(mx,my)的SAD值(最小值)和其附近的多个、在本例中是15个邻近表要素的SAD值,生成二次曲面(步骤S133),计算表示该二次曲面的最小值的SAD值对应的小数精度的位置的最小值向量(px,py)(步骤S134)。该最小值向量(px,py)和小数精度的最小表要素地址对应。
然后,通过使表示算出的小数精度位置的最小值向量(px,py)成为n倍,计算要求出的移动向量(px×n,py×n)(步骤S135)。
以上,对1个目标块的、利用第2例的块匹配的移动向量检测处理结束。在图30所示的对1帧进行分割后的区域中,在检测到多个移动向量的情况下,再设定查找范围和缩小倍率1/n,对各分割区域重复上述图36和图37所示的处理。
而且,在第2例中,作为计算表示小数精度的位置的最小值向量(px,py)的方法,当然可以采用利用上述水平方向和垂直方向的三次曲线的方法。
<第3例>
如图29所示,在采用该实施例的移动向量检测方法的情况下,即使参照向量的缩小倍率为1/64的情况下,也不会看到输出全都不同的移动向量这样的失败,所以实质上可以将SAD表减小到1/4096。
换言之,准备减小到1/4096的缩小SAD表,以例如第1次的缩小倍率1/na=1/64检测第1次的移动向量。接着,可以以第1次检测的该移动向量为中心,缩小查找范围,以比第1次的缩小倍率1/na小的第2次的缩小倍率1/nb,例如1/nb=1/8执行第2次检测。换言之,如果在第1次和第2次改变缩小倍率,设定第2次的缩小倍率,使其收纳在第1次的向量误差范围内,则能够以很高的精度检测移动向量。
参照图38~41的流程图说明第3例的移动向量检测处理。
图38~40所示的第3例采用上述的第1例作为基本的移动检测处理。因此,图38的步骤S141~S149的处理步骤和图39的步骤S151~S155的处理步骤、图34的步骤S101~S109的处理步骤以及图35的步骤S111~S115的处理步骤完全相同。
在该第3例中,在图39的步骤S155中算出移动向量后,至此不结束处理,在该步骤S155中算出的移动向量作为第1次的移动向量,在下一步骤S156中,基于第1次算出的移动向量,在相同的参照帧内缩小检索范围,而且将参照向量的缩小倍率变更为比第1次的缩小倍率1/na小的缩小倍率1/nb。
换言之,如果在第1次处理中算出移动向量,则能够基于该算出的移动向量在参照帧和原帧之间大致检测有相关性的块范围。因此,能够设定将该有相关性的块范围作为中心的缩小的检索范围。然后,通过和第1次相比减小缩小倍率,能够期望以误差更小的状态计算第2次的移动向量。
这样,在步骤S156设定缩小的检索范围,设定新的缩小倍率后,和第1次完全相同,利用步骤S157~S158、图40的步骤S161~S168、以及图41的S171~S174执行第2次移动向量检测处理。这些步骤的处理和图34的步骤S101~S109的处理步骤以及图35的步骤S111~S115的处理步骤完全相同。
这样,最终,在步骤S174中,得到目标值的移动向量,作为第2次的移动向量。
以上的例子作为移动向量的检测方法,是利用上述第1例,在两个阶段重复进行的情况,但当然可以进一步缩小查找范围,而且根据需要改变缩小倍率,在2个以上的阶段重复执行。
而且,作为移动向量检测方法,勿庸置疑的是,能够取代上述第1例,采用上述第2例。而且,作为计算表示小数精度的位置的最小值向量(px,py)的方法,和前述例子相同,也可以采用利用上述水平方向和垂直方向的三次曲线的方法。
下面,参照图42的流程图,说明在该实施方式的拍摄装置中,拍摄时通过缩放开关7执行缩放操作时的处理流程。用户在活动画面拍摄时操作缩放开关7时,该图42的处理从启动开始。
如果拍摄时由用户操作缩放开关7,则CPU1接受该缩放开关7的操作输入(步骤S181)。然后,CPU1基于接受的缩放输入操作,生成控制缩放机构8的缩放电机(缩放致动器)的缩放控制信号CTL,提供给缩放机构8(步骤S182)。
然后,CPU1以拍摄图像的帧单位更新缩放位置并保存(步骤S183)。接着,如图5(A)所示,对于更新后的帧,CPU1从移动向量检测处理部分151取得关于各目标区域TGi的移动向量MVi(步骤S184)。
然后,加入基于缩放机构8的缩放控制处理的延迟的拍摄图像上的缩放动作延迟(图像延迟)分量,利用从过去的缩放位置起的缩放速度变化、时间变化等变化率,计算各目标区域TGi的光学缩放引起的图像移动向量分量(光学缩放部分向量)ZVi(步骤S185)。该步骤S185相当于上述图1的光学缩放部分向量计算部分152中的处理。
接着,计算在步骤S184取得的移动向量MVi和光学缩放部分向量ZVi的差分,求出差分的向量Veci(步骤S186)。该步骤S186相当于上述图1的光学缩放部分向量减法部分153中的处理。
接着,基于步骤S186中求出的差分向量Veci,求出综合手抖向量Gvec(步骤S187)。该步骤S187相当于图1的综合手抖向量计算部分155的处理。
接着,图2的分辨率变换部分16接受来自手抖移动向量计算部分15的综合手抖向量Gvec,根据该接受的综合手抖向量,从图像存储部分4的帧存储器42的、对应于手抖偏移的地址位置,切出图像数据(步骤S188)。
在采用上述拍摄图像失真校正装置的第1实施方式的拍摄装置的手抖移动向量检测部分15的移动向量检测处理部分151中,如图2所示,图像存储部分4以2张图像、即原帧图像和参照帧图像都存储在帧存储器41、42中为前提。因此,移动向量的检测时间延迟1帧。
与此相对的是,在第2实施方式中,将来自拍摄元件11的排出图像数据构成参照帧,对于光栅扫描的流数据,能够实时地计算SAD值。第2实施方式和第1实施方式仅仅手抖移动向量检测部分151和图像存储部分4的结构不同,其它结构和第1实施方式全部相同。
而且,在第2实施方式中,手抖移动向量检测部分15的结构也基本上具有图1的结构,但是,移动向量检测部分151的移动向量的检测处理动作和第1实施方式不同。
图43中示出了第2实施方式的拍摄装置的结构例的方框图。从图43可知,拍摄信号处理系统10的构成块和其它构成块与图1所示的第1实施方式完全相同,但在该第2实施方式中,如图43所示,图像存储部分4由1个帧存储器43构成。
在第2实施方式中,原帧存储在帧存储器43中,参照帧从数据变换部分14以流的方式输入到手抖移动向量检测部分15中。在第1实施方式中,手抖移动向量检测部分15利用存储在两个帧存储器41、42中的2张图像数据,对参照块执行求取SAD值的处理。与此相对的是,在第2实施方式中,如图33所示,在将来自数据变换部分14的图像数据流作为参照帧的图像数据的同时,将存储在帧存储器43中的图像数据作为原帧的图像数据,求出关于参照块的SAD值。在利用例如亮度信号分量Y求出SAD值这一点上和第1实施方式相同。当然可以不仅包含亮度信号分量,还包含色差信号分量,来求出SAD值。
这样,在第2实施方式的手抖移动向量检测部分15中,将来自数据变换部分14的流图像数据作为参照帧的图像数据。因此,对于某些输入像素,将该像素作为要素的参照块在参照帧上同时存在多个。图44是用于说明这种情形的图。
换言之,从图44可知,参照帧102上的查找范围105中的输入像素Din是位于例如参照向量1071对应的参照块1061左侧的像素,同时,是位于例如参照向量1072对应的参照块1062右上方的像素。
因此,在输入像素Din属于参照块1061中的情况下,需要读出目标块103的像素D1,计算其差分。而且,在输入像素Din属于参照块1062中的情况下,需要读出目标块103的像素D2,计算其差分。
在图44和后述的图45中,为简单起见,仅仅图示了2个参照块,但是,实际上,将输入像素Din作为该参照块内的像素的参照块为多个。
该第2实施方式中的SAD计算如下进行计算输入像素Din的亮度值Y和与各个参照块内的输入像素Din的位置对应的、目标块内的像素的亮度值Y的差分绝对值,根据和各个参照块对应的参照向量,将该计算出的差分绝对值和SAD表相加。
例如,如图45所示,在输入像素Din属于参照块1061时,目标块103的像素D1与输入像素Din的差分绝对值加到SAD表108的参照向量1071对应的SAD表要素1092的SAD值上并写入。而且,如图35所示,输入像素Din属于参照块1062时目标块103的像素D2与输入像素Din的差分绝对值加到SAD表108的参照向量1072对应的SAD表要素1092的SAD值上并写入。
因此,查找范围内全部区域的输入像素被输入,处理结束时,SAD表完成。换言之,SAD表实时制作完成。
来自数据变换部分14的数字拍摄信号的最初的1帧仅仅存储在帧存储器43中,在移动向量检测部分15中不执行求取SAD值等计算处理。
然后,如果最初的1帧存储在帧存储器41中,则从下一帧的数据拍摄信号开始,移动向量检测部分15计算有关参照块的SAD值。此时,如利用图44和图45所说明的那样,移动向量检测部分15通过系统总线2从帧存储器43读出下述数据,即,来自数据变换部分14的图像数据和被认为包含要与该图像数据比较的图像的全部参照块的图像数据,求出各自的SAD值,将求出的SAD值加到各个参照块对应的SAD表地址的SAD值上。
然后,在该第2实施方式中,移动向量检测处理部分151制作例如图30所示的1帧的多个查找范围各自的SAD表,求出该SAD表的SAD值的最小值,并分别求出各查找范围的移动向量(查找范围各移动向量)。
然后,移动向量检测部分15基于1帧的多个查找范围全部的每个查找范围移动向量,并考虑相对于过去的移动向量的变化关系,检测关于1帧的移动向量即综合移动向量。然后,移动向量检测部分15将该检测结果即综合移动向量作为控制信号传送给后一级的分辨率变换部分16。
分辨率变换部分16进行以下处理根据从移动向量检测部分15接受的综合移动向量,一边切出存储在帧存储器43中的延迟帧的图像数据,一边变换为需要的分辨率和图像大小。通过从自帧存储器43按照综合移动向量的切出操作,变换后的图像成为除去了手抖的图像。
图45的说明是将实时SAD计算处理用于现有方法的情况。在第2实施方式中,在图45中,作为SAD表108的参照向量1071或者1072对应的SAD表要素1091或者1092的SAD值,不是加上并写入算出的各差分绝对值,而是如前述第1实施方式所示,计算以缩小倍率1/n缩小参照向量1071、1072后的参照缩小向量,在该参照缩小向量附近的多个参照向量上,从上述算出的差分绝对值,求用于分散相加每一个的分散相加值,将该求出的分散相加值和上述附近的多个参照向量所对应的SAD值相加。
在第2实施方式中,用于检测SAD表(缩小SAD表)完成后正确移动向量的处理和上述第1实施方式中所述的方法完全相同,能够采用利用二次曲面和水平方向以及垂直方向的三次曲线的方法。
以下,参照图46和图47的流程图,说明移动向量检测处理部分151的移动向量的检测处理操作的例子的流程。而且,为了说明的方便,图46和图47的流程图的处理示出的是关于1帧的拍摄图像数据的处理。
首先,在手抖移动向量检测部分15中,接受输入图像的帧(参照帧)的任意位置(x,y)的像素数据Din(x,y)(步骤S201)。接着,设定与包含该像素位置(x,y)的多个参照块之一对应的参照向量(vx,vy)(步骤S202)。
下面,计算设定的参照向量(vx,vy)的参照块Ii的该像素值Ii(x,y)和与其对应的目标块Io内的像素值Io(x-vx,y-vy)的差分绝对值α(步骤S203)。换言之,差分绝对值α按下述公式计算。
α=|Io(x-vx,y-vy)-Ii(x,y)|...(式3)接着,使缩小倍率为1/n,计算将参照向量(vx,vy)缩小到1/n后的参照缩小向量(vx/n,vy/n)(步骤S204)。
接着,检测参照缩小向量(vx/n,vy/n)附近的多个参照向量,在该例中,如上所述,是4个邻近参照向量(步骤S205)。然后,如前所述,基于参照缩小向量和邻近参照向量分别表示的位置关系,从在步骤中S203求出的差分绝对值α,求出作为检测的4个邻近参照向量的每一个对应的表要素要分散相加的值(差分绝对值),作为线性加权分散值(步骤S206)。然后,求出的4个线性加权分散值和邻近参照向量的每一个对应的SAD表要素值相加(步骤S207)。
然后,判断是否对包含输入像素Din(x,y)的全部参照块执行了上述步骤S202~步骤S207的计算(步骤S208),当判断为存在包含该输入像素Din(x,y)的其它参照块时,退回到步骤S202,设定包含该输入像素Din的其它参照块(vx,vy),重复步骤S202~步骤S207的处理。
而且,在步骤S208中,在判断为对包含输入像素Din(x,y)的全部参照块执行了上述步骤S202~步骤S207的计算时,判断对查找范围内的全部输入像素Din是否结束了上述计算步骤的处理(图47的步骤S211),在判断为没有结束时,退回到步骤S201,取入查找范围内的下一输入像素Din,重复步骤S201以后的处理。
然后,在步骤S211,如果判断结果是对查找范围内的全部输入像素Din结束了上述计算步骤的处理,则缩小SAD表已经完成,在该完成的缩小SAD表中,检测成为最小值的SAD值(步骤S212)。
接着,利用成为最小值的表要素地址(mx,my)的SAD值(最小值)和其附近的多个、在本例中是15个邻近表要素的SAD值,生成二次曲面(步骤S213),计算表示该二次曲面的最小值的SAD值对应的小数精度的位置的最小值向量(px,py)(步骤S214)。该最小值向量(px,py)和小数精度的最小表要素地址对应。
然后,通过使表示算出的小数精度位置的最小值向量(px,py)成为n倍,计算要求出的移动向量(px×n,py×n)(步骤S215)。
而且,在本例中,作为计算表示小数精度的位置的最小值向量(px,py)的方法,和前面的例子相同,也可以采用利用上述水平方向和垂直方向的三次曲线的方法。
和上述第1实施方式的第3例相同,在第2实施方式中,当然可以一边缩小查找范围,而且一边根据需要改变缩小倍率,一边在2个以上的阶段重复执行利用缩小SAD表的移动向量检测处理。
第2实施方式的优点是,和第1实施方式相比,能够减少1个帧存储器,而且能够缩短在帧存储器中存储输入图像的时间。减少存储器的效果当然一向得到重视,处理时间的缩短近年来也受到了重视。特别是在处理活动画面的情况下,由于这样引起系统延迟时间的缩短,所以尽可能消除由于系统延迟而产生的、实际被拍摄体和面板显示图像之间的不协调感对于用户诉求而言具有高的效果。
另外,手抖移动向量检测部分15能够由上述例子中示出的硬件构成,也能够利用DSP(Digital Signal Processor,数字信号处理器)构成。而且,还能够利用CPU1执行软件处理。同样,校正分辨率变换部分16也能够由硬件构成,还能够利用DSP(Digital Signal Processor)构成。而且,还能够利用CPU1执行软件处理。
而且,在上述第1和第2实施方式的说明中,移动向量检测处理部分151的参照向量的缩小倍率在水平方向和垂直方向上是相同的,但也可以使参照向量的缩小倍率在水平方向和垂直方向上不相同。
而且,在上述实施方式中,也可以对参照块和目标块内的全部像素求出SAD值,但也可以象上述实施方式那样,利用例如仅仅每隔k个(k是自然数)的像素求出SAD值。
而且,在作为第2实施方式说明的实时处理的移动向量检测处理部分151中,将计算成本和处理时间减少作为目的,屡次执行仅仅在参照块内查找目标块内的代表点的SAD计算,但在本发明中,也可以通过在存储原帧的帧存储器中,仅仅存储帧图像内的各个块的代表点,实现存储器的大量减少。而且,和帧存储器不同,在本地具有小规模的代表点存储器,也可以实现全局存储器(global memory)(DRAM)的带域削减。
而且,在上述第1、第2实施方式中,像素的差分值和SAD值仅仅利用像素的亮度值Y计算,但为了检测移动向量,也可以不仅利用亮度值Y,还利用色差分量Cb/Cr。而且,也可以将在数据变换部分14中变换为亮度值Y和色差分量Cb/Cr之前的RAW数据作为对象,执行移动向量检测处理。
在上述说明中,对SAD计算处理利用缩小参照向量来执行SAD计算处理的新方法的情况进行了说明,但当然能够利用图8~图10说明的现有SAD计算处理。
在上述实施方式中,1帧中设定的目标区域数量是水平×垂直=4×4=16个,但当然并不局限于此。
上述实施方式的说明是,校正由操作拍摄装置的用户引起的手抖导致的图像失真的情况下,但勿庸置疑的是,能够不仅校正由用户引起的手抖导致的图像失真,还能够校正在拍摄时为了其拍摄图像产生水平方向和/或者垂直方向的位置变化而对拍摄元件施加的振动等偏移力引起的图像失真。
上述实施方式是利用CMOS成像器作为X-Y地址型固体拍摄元件的情况下,当然拍摄元件不局限于CMOS成像器。
而且,本发明并不仅仅适用于拍摄装置(照相机),还可以用于将拍摄元件安装在例如移动电话终端、信息移动终端等上拍摄图像的情况下。而且,不仅仅适用于由用户手持来进行拍摄的装置,还可以用于对个人电脑和电视电话装置等固定设置的装置施加外力而产生振动的情况下,和在汽车等上安装拍摄元件,拍摄图像的情况下。
权利要求
1.一种拍摄图像的失真校正方法,具有移动向量检测步骤,接收来自拍摄元件的图像数据,从该图像数据检测拍摄图像的1个画面单位的移动向量;光学缩放部分向量计算步骤,计算由于光学缩放而在上述拍摄图像中产生的图像移动所对应的光学缩放部分向量;向量减法步骤,从在上述移动向量检测步骤检测到的移动向量中减去在上述光学缩放部分向量计算步骤计算出的上述光学缩放部分向量;综合手抖向量计算步骤,在没有执行上述光学缩放时,基于上述移动向量检测步骤中检测到的上述移动向量,计算关于上述拍摄图像的手抖向量,在执行了上述光学缩放操作时,基于上述向量减法步骤的减法结果的移动向量,计算关于上述拍摄图像的手抖向量;以及手抖校正步骤,基于在上述综合手抖向量计算步骤中算出的上述综合手抖向量,校正上述拍摄图像的手抖引起的图像失真。
2.根据权利要求1记载的拍摄图像的失真校正方法,特征在于在上述移动向量检测步骤中,与在水平方向和垂直方向上分割上述拍摄画面后的多个分割区域对应地检测多个移动向量;在上述光学缩放部分向量计算步骤中,计算与上述多个分割区域的各个分割区域对应的光学缩放部分向量;在上述向量减法步骤中,对于上述分割区域,分别从在上述移动向量检测步骤中检测的移动向量中,减去在上述光学缩放部分向量计算步骤中算出的上述光学缩放部分向量。
3.根据权利要求2记载的拍摄图像的失真校正方法,特征在于在上述光学缩放部分向量计算步骤中,至少利用缩放速度、从上述缩放操作起经过的时间、和上述分割区域分别离上述拍摄图像的中心位置的距离,计算上述光学缩放部分向量。
4.根据权利要求2记载的拍摄图像的失真校正方法,特征在于上述移动向量检测步骤是用于根据作为关注画面的参照画面和该参照画面之前的原画面之间的上述分割区域的图像信息,检测上述分割区域各自中的图像的移动向量的步骤,该步骤在上述原画面的上述各分割图像区间中,在规定位置上设定由多个像素构成的规定大小的至少1个目标块;在上述关注画面上设定的查找范围中,设定多个和上述目标块相同大小的参照块;从上述多个参照块内,检测与上述目标块的相关性强的上述参照块;基于该检测到的参照块相对于上述目标块在画面上的位置偏移量,检测上述移动向量。
5.根据权利要求4记载的拍摄图像的失真校正方法,特征在于在上述移动向量检测步骤中,检测上述分割区域各自中的上述图像的移动向量的方法具备下述步骤差分绝对值和计算步骤,在上述参照块中,分别求该参照块内的各像素的像素值和在上述目标块内对应的位置的各像素的像素值的差分绝对值的总和;参照缩小向量取得步骤,将上述参照块各自的上述参照画面上的位置和上述目标块的画面上的位置的位置偏移量,作为也包含方向分量的参照向量,得到以规定缩小率缩小该参照向量后的参照缩小向量;表生成步骤,生成缩小差分绝对值和表,该缩小差分绝对值和表用于存储将与上述参照缩小向量对应大小的上述参照向量作为上述位置偏移量的、对应于上述规定缩小率而被削减的数的多个上述参照块各自的差分绝对值和;移动向量计算步骤,至少采用上述缩小差分绝对值和表中的上述差分绝对值和的最小值所对应的上述参照向量,计算上述参照画面和上述原画面之间的上述分割画面区间各自的移动向量;上述表生成步骤具备以下步骤邻近参照向量检测步骤,检测成为由上述参照缩小向量取得部件取得的上述参照缩小向量的邻近值的多个上述参照向量;分散差分绝对值和计算步骤,基于在上述差分绝对值和计算步骤算出的上述参照块各自的上述差分绝对值总和,计算与在上述邻近参照向量检测步骤中检测到的上述邻近的多个上述参照向量所分别对应的各个差分绝对值和;分散相加步骤,将在上述分散差分绝对值和计算步骤中算出的上述邻近的多个上述参照向量所分别对应的上述差分绝对值和,与到此为止的上述邻近的多个上述参照向量所分别对应的上述差分绝对值和相加。
6.根据权利要求4记载的拍摄图像的失真校正方法,特征在于在上述移动向量检测步骤中,检测上述分割区域各自中的上述图像的移动向量的方法如下在上述原画面的上述各分割图像区间中,在规定位置上设定由多个像素构成的规定大小的至少1个目标块;在上述参照画面中设定的查找范围中,设定多个和上述目标块相同大小的参照块;从上述多个参照块内,检测和上述目标块的相关性强的上述参照块;以及基于该检测到的参照块相对于上述目标块在画面上的位置偏移量,检测上述移动向量;并且具备以下步骤差分绝对值和计算步骤,在上述参照块中,分别求该参照块内的各像素的像素值和在上述目标块内对应位置的各像素的像素值的差分绝对值的总和;参照缩小向量取得步骤,将上述参照块各自的上述参照画面上的位置和上述目标块的画面上的位置的位置偏移量,作为也包含方向分量的参照向量,得到以规定缩小率缩小该参照向量后的参照缩小向量;表生成步骤,生成缩小差分绝对值和表,所述缩小差分绝对值和表用于存储将与上述参照缩小向量对应大小的上述参照向量作为上述位置偏移量的、对应于上述规定缩小率而被削减的数的多个上述参照块各自的差分绝对值和;移动向量计算步骤,至少采用上述缩小差分绝对值和表的上述差分绝对值和的最小值所对应的上述参照向量,计算上述参照画面和上述原画面之间的上述分割图像区间各自的移动向量;上述表生成步骤具备以下步骤邻近参照向量检测步骤,检测成为在上述参照缩小向量取得步骤中取得的上述参照缩小向量的邻近值的多个上述参照向量;分散差分绝对值和计算步骤,基于在上述差分绝对值和计算步骤算出的上述参照块各自的上述差分绝对值总和,分别计算与在上述邻近参照向量检测步骤中检测到的上述邻近的多个上述参照向量所分别对应的各个差分绝对值和;分散相加步骤,将在上述分散差分绝对值和计算步骤中算出的上述邻近的多个上述参照向量所分别对应的上述差分绝对值和,与到此为止的上述邻近的多个上述参照向量所分别对应的上述差分绝对值和相加。
7.一种拍摄方法,校正摄影时的手抖引起的拍摄元件的位置变化导致的拍摄图像的失真,记录校正后的拍摄图像信息,使用具备光学缩放操作部分的拍摄装置,特征在于,具备下述步骤移动向量检测步骤,上述拍摄装置的移动向量检测部件接收来自所述拍摄元件的拍摄图像数据,从该拍摄图像数据检测拍摄图像的1个画面单位的移动向量;判断步骤,由上述拍摄装置的判断部件判断在上述光学缩放操作部分中是否执行了缩放操作;光学缩放部分向量计算步骤,由上述拍摄装置的光学缩放部分向量计算部件计算由于上述光学缩放而在上述拍摄图像中产生的图像移动所对应的光学缩放部分向量;向量减法步骤,在上述判断步骤中判断出执行了上述光学缩放操作时,上述拍摄装置的向量减法部件求在上述移动向量检测步骤中检测到的移动向量和在上述光学缩放部分向量计算步骤计算出的上述光学缩放部分向量的差分;综合手抖向量计算步骤,在上述判断步骤中判断为没有执行上述光学缩放操作时,上述拍摄装置的手抖向量计算部件基于上述移动向量检测步骤中检测到的上述移动向量,计算关于上述拍摄图像的手抖向量,在上述判断步骤中判断为执行了上述光学缩放操作时,基于上述向量减法步骤的减法结果的移动向量,计算关于上述拍摄图像的手抖向量;手抖校正步骤,由上述拍摄装置的手抖校正部件基于在上述综合手抖向量计算步骤中算出的上述综合手抖向量,校正上述拍摄图像的手抖引起的图像失真;记录步骤,由上述拍摄装置的记录部件在记录介质中记录由上述校正部件校正后的上述拍摄图像的图像信息。
8.根据权利要求7记载的拍摄方法,特征在于在上述移动向量检测步骤中,与在水平方向和垂直方向上分割上述拍摄画面后的多个分割区域对应地检测多个移动向量;在上述光学缩放部分向量计算步骤中,计算与上述多个分割区域的各个分割区域对应的光学缩放部分向量;在上述向量减法步骤中,对于上述分割区域,分别从在上述移动向量检测步骤中检测的移动向量中,减去在上述光学缩放部分向量计算步骤中算出的上述光学缩放部分向量。
9.根据权利要求8记载的拍摄方法,特征在于在上述光学缩放部分向量计算步骤中,至少利用缩放速度、从上述缩放操作起经过的时间、和上述分割区域分别离上述拍摄图像的中心位置的距离,计算上述光学缩放部分向量。
10.一种拍摄图像的失真校正装置,具有移动向量检测部件,接收来自拍摄元件的图像数据,从该图像数据检测拍摄图像的1个画面单位的移动向量;光学缩放部分向量计算部件,计算由于光学缩放而在上述拍摄图像中产生的图像移动所对应的光学缩放部分向量;向量减法部件,从在上述移动向量检测部件检测到的移动向量中减去在上述光学缩放部分向量计算部件计算出的上述光学缩放部分向量;综合手抖向量计算部件,在没有执行上述光学缩放时,基于上述移动向量检测部件中检测到的上述移动向量,计算关于上述拍摄图像的手抖向量,在执行了上述光学缩放时,基于上述向量减法部件的减法结果的移动向量,计算关于上述拍摄图像的手抖向量;以及手抖校正部件,基于在上述综合手抖向量计算部件中算出的上述综合手抖向量,校正上述拍摄图像的手抖引起的图像失真。
11.根据权利要求10记载的拍摄图像的失真校正装置,特征在于在上述移动向量检测部件中,与在水平方向和垂直方向上分割上述拍摄画面后的多个分割区域对应地检测多个移动向量;在上述光学缩放部分向量计算部件中,计算与上述多个分割区域的各个分割区域对应的光学缩放部分向量;在上述向量减法部件中,对于上述分割区域,分别从在上述移动向量检测部件中检测的移动向量中,减去由上述光学缩放部分向量计算部件算出的上述光学缩放部分向量。
12.根据权利要求11记载的拍摄图像的失真校正装置,特征在于在上述光学缩放部分向量计算部件中,至少利用缩放速度、从上述缩放操作起经过的时间、和上述分割区域分别离上述拍摄图像的中心位置的距离,计算上述光学缩放部分向量。
13.一种拍摄装置,特征在于,具备拍摄元件;光学缩放操作部分;光学缩放驱动部件,对应于上述光学缩放操作部分的光学缩放操作,控制光学透镜系统,执行光学缩放;移动向量检测部件,接收来自上述拍摄元件的图像数据,从该图像数据检测拍摄图像的1个画面单位的移动向量;判断部件,判断是否通过上述光学缩放操作部分执行了光学缩放操作;光学缩放部分向量计算部件,计算由于上述光学缩放而在上述拍摄图像中产生的图像移动所对应的光学缩放部分向量;向量减法部件,在上述判断部件判断出执行了上述光学缩放操作时,求出由上述移动向量检测部件检测到的移动向量和由上述光学缩放部分向量计算部件计算出的上述光学缩放部分向量的差分;综合手抖向量计算部件,在上述判断部件判断为没有执行上述光学缩放操作时,基于由上述移动向量检测部件检测到的上述移动向量,计算关于上述拍摄图像的手抖向量,在上述判断部件判断为执行了上述光学缩放操作时,基于上述向量减法步骤的减法结果的移动向量,计算关于上述拍摄图像的手抖向量;手抖校正部件,基于由上述综合手抖向量计算部件算出的上述综合手抖向量,校正上述拍摄图像的手抖引起的图像失真;以及记录部件,在记录介质中记录由上述校正部件校正后的上述拍摄图像的图像信息。
14.根据权利要求13记载的拍摄装置,特征在于在上述移动向量检测部件中,与在水平方向和垂直方向上分割上述拍摄画面后的多个分割区域对应地检测多个移动向量;在上述光学缩放部分向量计算部件中,计算与上述多个分割区域的各个分割区域对应的光学缩放部分向量;在上述向量减法部件中,对于上述分割区域,分别从在上述移动向量检测部件中检测的移动向量中,减去由上述光学缩放部分向量计算部件算出的上述光学缩放部分向量。
15.根据权利要求14记载的拍摄装置,特征在于在上述光学缩放部分向量计算部件中,至少利用缩放速度、从上述缩放操作起经过的时间、和上述分割区域分别离上述拍摄图像的中心位置的距离,计算上述光学缩放部分向量。
全文摘要
拍摄图像的失真校正方法、拍摄图像的失真校正装置、拍摄方法和拍摄装置。除去光学缩放时手抖引起的失真,得到无图像失真的缩放图像。在移动向量检测步骤中,接收来自拍摄元件的图像数据,从该图像数据检测拍摄图像的1个画面单位的移动向量。在光学缩放部分向量计算步骤中,计算由于光学缩放而在拍摄图像中产生的图像移动所对应的光学缩放部分向量。在判断出执行了光学缩放操作时,计算在移动向量检测步骤检测到的移动向量和在光学缩放部分向量计算步骤计算出的光学缩放部分向量的差分。在判断出执行了光学缩放操作时,基于差分计算结果的移动向量,计算关于拍摄图像的手抖向量,基于该算出的手抖向量,校正拍摄图像的手抖引起的图像失真。
文档编号H04N5/225GK101079965SQ20071010352
公开日2007年11月28日 申请日期2007年2月25日 优先权日2006年2月20日
发明者仓田彻 申请人:索尼株式会社