补偿获取图像帧之间无意的照相机运动的视频数据的处理的制作方法

文档序号:7948716阅读:415来源:国知局
专利名称:补偿获取图像帧之间无意的照相机运动的视频数据的处理的制作方法
技术领域
本发明一般涉及视频数据的处理,更具体地说,涉及由照相机或受到无意的晃动的其它视频获取装置获取的运动图像的稳定。
背景技术
在拍摄一系列的视频帧期间,无晃动或抖动地用手握持着照相机或者使照相机运动是十分困难的,特别是当照相机非常小而轻时。关于具有短片剪辑能力的数字静止照相机和视频运动图像摄像机例如便携式摄像机的尺寸的趋势是越来越小而轻。还利用移动电话和便携式数字助理(PDA)拍摄视频图像序列,它们也是非常小的。产生的晃动导致记录运动着的图像,该图像看起来是非常不快的,在不包括物体的大的运动的场景中最为显著。因此需要用某种方式对这种或对其它不希望的照相机的运动进行补偿。
一种图像稳定照相机包含一对安装在照相机内的非常小的陀螺仪,它们的轴线相互垂直。当照相机运动时,陀螺仪对运动提供阻力,沿着和照相机的运动的方向相反的方向产生力矢量。在捕获图像帧时,使用和这些力矢量成正比的电控信号补偿照相机的随机与/或周期的运动,借以使图像稳定。这可以用机械方式或电子方式来实现。利用机械方式,使照相机的光轴运动,以沿着和照相机晃动的方向相反的方向重新定位投射到传感器上的图像。经常使用万向节安装的照相机镜头的运动进行这种重新定位。或者可以利用稳定信号使传感器运动。利用电方式,照相机可以含有处理电路,其响应稳定信号沿水平和垂直方向移动图像传感器的输出,以便使图像在多帧范围上保持稳定。
不需要使用陀螺仪或任何其它的机械基准的其它图像稳定技术检测在两个连续帧之间的图像的全局(整体)运动作为信号补偿的部分。以后用电子方式使获取的图像重新定位,以消除由照相机晃动引起的运动。这些技术通常借助于对照相机单独添加专用于图像稳定的运动消除能力来实现。

发明内容
为了简化所述的后一种图像稳定技术,也使用数据压缩算法的某些处理步骤用于图像稳定,而不相互独立地执行这些功能。因为无论如何通常进行视频数据压缩,这减少了用于添加图像稳定的其它特征所需的增加的处理量。具体地说,由数据压缩算法使用的用于计算相继的图像帧之间的运动矢量的一些或全部处理,或者作为结果而产生的运动矢量本身,也被图像帧稳定算法使用。为了图像稳定,由用于数据压缩的运动矢量确定全部图像帧之间的相对运动量的全局矢量。然后使用这些全局运动矢量用于稳定图像。在一个例子中,使用大于获取的图像帧的尺寸的传感器,使得以补偿不希望的抖动的方式,响应全局图像运动矢量,使对于这些图像帧选择的传感器输出数据的部分移动,这是一种图像修剪的方式。稳定化处理可以在获取图像帧时在视频获取装置中进行,或者在以后的图像数据后处理期间在个人计算机或其类似物中进行。
在照相机或其它的视频获取装置内的一种特定的实施方式中,在图像处理集成电路芯片上提供专用于用于视频数据的压缩的至少一些图像运动矢量的计算的电路。然后使用这些电路由传感器输出数据产生图像分量的这些运动矢量,用于稳定图像和压缩被稳定的图像的数据。用来稳定图像的全局运动矢量也可以用软件根据由专用电路估计的图像分量的运动矢量计算。这借助于使用已经具有的处理能力,减少对视频获取装置添加运动稳定功能的复杂性。不需要重复设置图像分量运动估计电路的功能,其已被包括在用于数据压缩的视频获取装置中。
本发明的另一个特征是当各个图像帧被获取时对其进行预稳定,这个特征可以和上述的特征结合使用,或者作为其它的图像稳定技术的部分。根据由一个或多个以前的图像帧的数据进行的稳定计算,当前图像帧的数据首先在空间上移动一个量。此时通常具有必须由全部图像稳定处理除去的较小的运动。
本发明的另一个特征利用所述“预稳定”作为进行的唯一的图像稳定处理。虽然这个处理不使用当前图像的数据计算用于使其稳定的全局运动矢量,但是当照相机的抖动小与/或抖动的频率低时,对于在高的帧速率下获取的连续的图像的运动稳定,这种大大简化的处理是足够的。
本发明的其它方面、优点和特征被包括在下面的本发明的实施例的说明中,所述说明应当结合附图参阅。其中提及的所有专利、专利申请、文章以及其它的出版物的全部内容都将通过引用被包括在本说明中。


图1是可以实施本发明的技术的照相机或其它视频获取装置的方块图;图2是图1的装置的电子处理系统的一部分的方块图;图3是按照本发明的第一实施例在图1和图2的照相机中实施的运动稳定和压缩处理的功能流图;图4表示可用于图3的处理中的不同地裁剪图像帧以稳定图像的技术;图5表示按照第一实施例的用于获取、补偿和压缩图像帧的序列的数据的相对定时;图6是表示按照第二实施例在图1和图2的照相机中进行的运动稳定和压缩处理的功能流图;图7表示按照第二实施例对于在一系列图像帧之间的不希望的运动用于获取并补偿数据的特定处理的例子;图8表示图7的处理的例子的一个元件的操作,即粗略的运动估计(LRME);图9表示在图7的处理的例子中使用的图像剪裁;以及图10是表示按照第三实施例在图1和图2的照相机中进行的运动稳定和压缩处理的功能流图。
具体实施例方式
示例性的实施例的详细说明由数字照相机获取的视频数据被一般地处理以补偿照相机的不足并一般地改善可由所述数据获取的图像的质量。对于传感器的任何有缺陷的像素光检测器元件的校正是可以被执行的一个处理功能。另一个是白平衡校正,其中设置基色的不同像素的相对大小以表示白色。这个处理还可以包括去拼合图像数据中的各个像素数据,以叠加来自传感器的在空间上分离的单色像素检测器的数据而呈现叠加的多色像素。这种去拼合使得能够根据需要处理数据,以增强和平滑图像的边沿。还可以执行对于噪声和照相机光学系统跨越图像的改变以及对于传感器光检测器当中的改变的图像数据的补偿。其他处理一般包括伽马校正、对比度伸展、色度过滤及其类似处理中的一种或几种。处理的数据在存储在非易失介质中之前通常利用市场上可得到的算法进行压缩。
可以在个人计算机上对照相机早期获取的原始的图像数据进行这种数据处理,可以在照相机本身进行这种数据处理,或者一些处理在照相机中进行而其它处理以后在个人计算机上进行。这种处理还可以包括对于在获取用于形成运动图像的一系列图像帧期间照相机的不希望的晃动或抖动的影响的补偿。为了稳定一系列图像帧而对这种抖动进行的补偿是下面说明的主题,特别是当与数据压缩结合时。这种处理最好在手持照相机内进行,使得补偿的视频数据被存储在和照相机相关联的非易失存储器中,因而可以直接地浏览,不过也可以在个人计算机或其类似物上在照相机数据的后处理期间进行这种处理。
摄像机的例子在图1中,示意地示出了一种摄像机,其包括壳体11、成像光学系统13、产生和接收控制信号17的用户控制和指示器15、具有内部电连接21的视频输入-输出插口19、以及具有内部电连接25的卡槽23。非易失存储卡27被可拆下地插在卡槽23内。由摄像机捕获的图像的数据可被存储在存储卡27上,或者存储在内部非易失存储器(未示出)内。图像数据还可以通过插口19被输出到另一个视频设备。存储卡27可以是市场上可得到的半导体闪速电可擦的和可编程的只读存储器(EEPROM),小的可除去的旋转磁盘或可以通过摄像机对视频数据编程的其它非易失存储器。或者,特别是当摄像机拍摄每秒30个图像帧的电影时,可以使用更大容量的存储介质,例如磁带或者可写的光盘。
光学系统13可以是单个透镜,如图所示,不过一般是一组透镜。场景31的图像29通过快门33以可见光辐射被形成在图像传感器35的两维表面上。传感器的电输出37传送模拟信号,该信号是由扫描图像29被投射到其上的传感器35的表面的各个光检测器得到的。传感器35一般含有被排列成行和列的两维阵列的大量单个的光检测器,用于检测图像29的各个像素。一般通过以光栅图案扫描各个光检测器,在输出37中按时间顺序获取和撞击各个光检测器的光的强度成比例的信号,其中光检测器的行从顶行开始每次从左到右被扫描一行,从而产生一个视频数据帧,由该数据帧可以重构图像29。模拟信号37被提供给模数转换器电路芯片39,其在电路41中产生图像29的数字数据。一般地说,在电路41中的信号是表示撞击到传感器35的各个光检测器上的光的强度的数字数据的单个块的序列。
传感器35的光检测器一般检测以两个或两个以上的单个的彩色分量中的一个撞击光检测器的图像像素的强度。早期的传感器只检测图像的两个单独的颜色。一般检测三种基色例如红绿蓝(RGB)分量。当前,可以得到检测三种以上的颜色分量的图像传感器。
在本实施例中,由单个集成电路芯片43提供电路41中的视频数据的处理和摄像机操作的控制。除与电路17、21、25和41相连之外,电路芯片43还和控制与状态线45相连。线45又和快门33、传感器29、模数转换器39以及摄像机的其它元件相连,以便提供这些元件的同步操作。单独的易失随机存取存储器电路芯片47也通过线48和处理器芯片43相连,用于暂时的数据存储。此外,单独的非易失存储器芯片49通过线50和处理器芯片43相连,用于存储处理器的程序、校准数据等。存储器49可以是闪速存储器,其是可重新编程的,或者是只能一次编程的例如掩盖的可编程只读存储器(PROM)或可电编程的只读存储器(EPROM)。在摄像机内提供有普通的时钟电路51,用于向电路芯片和其它元件提供时钟信号。单独的元件,可替换地,用于系统的时钟电路还可以被包括在处理器芯片43上。
图2中示出了处理器芯片43的一般方块图,其中包括用于稳定和压缩图像数据的部分。通用的或专用于此处的任务的处理器51响应存储在闪存49(图1)中的固件对图像数据进行计算并控制摄像机的操作。相继的图像帧的数字数据通过线41通过芯片43上的输入接点由接口电路55接收,然后通过存储器管理单元57借助于连接和其它的系统元件通信。相继的图像帧的数据在稳定和压缩之后,通过接口电路59输出到线21(到图1的输入-输出插口19)和25(到图1的闪存卡槽23),它们和芯片43上的输出接点相连。接口电路61在线17、45和50(见图1)以及处理器51和存储器管理单元57之间通信。
图2的电路63也和处理器51以及存储器管理单元57相连,其被包括在本实施例中用于在通过接口电路59被输出之前进行压缩相继的图像帧所需的至少一些计算。和使用处理器51在固件的控制下进行计算相比,这可能更为有效。相继的图像帧之间的运动估计是典型的压缩技术的一部分。在当前的MPEG-4算法中,对于两个相继图像帧的不同的块计算运动矢量,以便估计在它们之间图像的部分的运动。用于进行至少一部分这个块运动矢量的计算的电路被包括在压缩计算电路63内。
图像块运动的计算还可以被包括而作为用于补偿在相继图像帧的获取之间摄像机的不希望的抖动的算法的一部分。因此,最好也由电路63计算用于抖动补偿的至少部分块运动矢量,如下面的说明。除去由专用电路63进行的计算之外,由处理器51在固件的控制下进行用于数据压缩和摄像机抖动补偿所需的任何计算。
视频稳定和压缩的第一实施例图3表示按照一个一般的实施例图2的处理器的操作,用于稳定运动图像和压缩稳定的图像数据。对于该处理的输入101包括由传感器35(图1)获取的数据得到的一连串图像帧的数据。如同压缩技术那样,压缩编码器使用两个相继图像的数据在输出112产生当前图像帧的压缩数据。编码器的部分105由两个图像的不同的块计算运动估计矢量,以便提供当前图像相对于前一个图像的运动数据。然后编码器107的其余部分利用这些运动矢量编码当前图像。利用标准的压缩算法,例如提供符合MPEG-4标准的压缩数据的算法,获取的图像帧的数据每次被压缩一个。
对这种压缩编码增加的是运动稳定处理109,其使用编码器103的图像块运动估计105。如果图像运动处理105用软件实现,则可以消除用于执行相同功能作为运动稳定处理109的部分的软件代码的复制。类似地,如果块运动估计105由作为处理器43(图1,2)的一部分的硬连线逻辑电路63来实现,这是优选的,则借助于在每种情况下使不同的视频数据通过该电路,使得在稳定和压缩两种处理期间进行相同的运动处理。
运动处理105计算相继图像帧之间的图像的不同的块的运动的估计。这是一种被称为块匹配的方法,其中作为编码的一部分压缩算法估计运动。其它的运动估计方法是斜率匹配和相位相关方法。不过,运动稳定处理109需要的是估计相继图像帧之间的全部运动。因此,全局处理111接收由处理105对于图像的单个块计算的运动估计矢量,并由此产生全局运动估计矢量。然后由运动稳定处理109使用对于相继图像计算的全局运动矢量。可以计算两个图像帧之间的块运动矢量的统计值,以便提供全局运动矢量,其是相继帧之间的图像的全部运动的估计。在特定的例子中,计算块运动矢量的平均值或中值。
下面将说明使用压缩编码器103的块运动计算器105(图3)进行运动稳定计算109的顺序。在输入101接收的当前图像帧首先具有其由105计算的相对于前一个图像帧的块运动矢量。然后由处理111使用这些矢量计算当前的和前一个图像帧之间的全局运动矢量。然后该全局运动矢量由处理109使用,用于稳定当前图像帧,消除因为前一帧而在图像中发生的任何不希望的运动。处理器109的输出是已经经过运动稳定的当前图像帧的数据。
正是这个被稳定的当前图像然后被编码器103压缩。再次由处理105计算块运动矢量,但是这次是在当前被稳定的图像的数据和前一个被稳定的图像的数据之间。这些矢量然后由剩余的压缩处理107使用,用于压缩当前的运动稳定的图像帧,然后在输出112被提供。对于每个新获取的图像帧,重复图3的处理,由新的图像帧的数据计算相对于前一个获取的图像帧的数据的块运动矢量。结果是在输出112的被压缩的一连串被稳定的图像帧的数据。当在视频获取装置上进行处理时,这数据可被存储在例如非易失存储卡上,或者可以通过互联网或其类似物被发送。
图4表示一种用于稳定图像(图3的处理109)的优选的技术。图像传感器35(图1)被作得足够大,使得其提供大于具有规定的尺寸的所需的结果被稳定的图像帧115的图像帧113的数据。通过按照由处理器111对图像帧计算的全局图像运动矢量的大小规定稳定的图像帧115的水平和垂直坐标,获取的图像帧113被剪裁成图像帧115的尺寸。随着全局运动矢量的大小在图像帧之间改变,图像帧115在获取的图像帧113内沿水平和垂直方向运动。这用于补偿相继图像帧之间的不希望的全局运动。
图5表示图3的组合的图像稳定和压缩,其中可以清楚地看出这种处理的流水线性质。即,用于稳定和压缩一个图像帧的数据的处理不需要按照顺序在下一个图像帧的处理开始之前被完成。对每个图像帧的数据的操作顺序是相同的但在时间上被移动。在一个示例的顺序中,图像帧1的数据在117被获取。这数据通常是一系列的基色值(例如RGB,红绿蓝),其是通过扫描一般构成传感器35(图1)的单色光检测器的两维图案获得的。为了进行处理,最好把这个传感器输出转换成标准的亮度和色度格式(YUV),因此在119进行这种转换。接着,在121,使用前一个图像帧0的YUV数据和压缩编码器103(图3)的处理器,计算图像帧1的块运动矢量。在图5的123,由这些块运动矢量由图像帧1计算全局运动矢量。然后使用该全局运动矢量在125最好用针对图4所述的方式稳定图像帧1。
下两个步骤127和129压缩被稳定的图像帧的数据。在127,借助于第二次使用处理电路105(图3),计算被稳定的图像帧1的块运动矢量,其中使用前一个被稳定的图像帧0的数据,然后在129进行剩余压缩编码处理。所得的输出是已经被稳定和压缩的获取的图像帧1的数据。
图5还示出了对于每个相继图像帧即图像帧2和3进行的处理步骤的相同的时间顺序。通常在图像帧数据被写入缓冲存储器之后,只要来自前一帧的数据从传感器中被读出,新的图像帧的数据便被获取。可以同时进行许多随后的数据处理操作,因为几个计算由信号处理器的不同的部分进行。具体地说,专用于图像块运动矢量的计算105(图3)的电路63(图2)的使用释放了处理器,使得同时执行不同的任务。当然,处理步骤的同时性将取决于所利用的特定图像数据处理系统。根据处理器51和电路63(图2)的具体结构和操作,可能不能同时进行图5所示的特定处理。
在这个第一实施例的特定情况下以及在下面的第二实施例中,计算当前图像帧相对于其前一个获取的图像帧的全局运动矢量。但是这种技术不限于此。例如,可以使用较早的在前的图像帧,例如在当前被稳定的图像帧之前的第二个、第三个或更前面的图像帧。此外,也可以使用在当前图像帧之后发生的图像帧。作为另一种方案,除当前图像帧之外,可以使用多个图像帧,例如在当前帧之前的一个或多个图像帧以及在当前帧之后的一个或多个帧,在当前帧之前或之后的两个或多个图像帧。此外,可以不必使用当前图像帧的数据计算相对于当前帧的全局运动矢量。如果具有足够的存储器,可以比较任何数量的这种图像帧的数据,以便计算相对于当前图像帧的全局运动矢量,其提供所述运动的更好的估计。不过,如果帧速率足够快,则使用两个以上的图像帧可能不会合适地改善结果。
视频稳定和压缩的第二实施例在第二和第一实施例之间的第一个不同是基于对前一个图像帧计算的全局运动矢量进行的输入的图像帧的附加的初始预稳定。第二个不同是用于稳定图像的全局运动矢量的计算可以分两步进行。由低分辨率的图像形式计算粗略的全局运动矢量,这个粗略的矢量用于对高分辨率图像的全部块运动矢量进行分类,以便找出用于运动稳定的最相关的矢量。此时当由这些块矢量计算全局运动矢量时,只需考虑选择的少量的相关的块矢量。这两个对图3所示的处理的附加处理可被一起使用或者只使用其中之一。
参见图6,以类似于第一实施例的图3的图说明具有这两个附加的处理,其中共同的处理功能由相同的标号表示。在第一处理附加中,通过使用在稳定前一个图像帧时利用处理功能111计算的全局运动矢量,完成获取的图像帧的预稳定131。因此,预稳定131不基于当前图像帧的运动。而是,其基于发生在两个较早的帧之间的运动,作为可能已经发生在当前图像帧中的运动的粗略估计。然后以和针对图3所述的第一实施例相同的方式,计算在当前图像帧和先前的图像帧之间的实际运动的估计。不过开始点是被预稳定的图像帧数据,这减少在最后的运动稳定计算109中所需的处理的量。
在图6的第二实施例的第二处理附加中,在133形成输入的图像帧数据的低分辨率形式。为此使用的一种常规的方法是由一组传感器像素表示数据,例如8×8像素的块,好像该块是单个像素。这可以通过算术处理来实现,例如取块的所有像素的平均值而获取单个值。对每一种传感器色彩都进行这种处理。
然后借助于使两个低分辨率图像帧的数据通过贯穿块运动矢量处理105的路径,由低分辨率图像数据输出133计算块运动矢量。然后在路径137中的结果块运动矢量在111被处理以在路径139中获取粗略的全局运动矢量。然后在处理105的期间使用所述粗略(低分辨率)全局运动矢量,以帮助选择要在计算最后块运动矢量的过程中比较的在路径141中的两个相继图像帧的输入数据的块。然后处理在路径143中的结果的多个块运动矢量在111以获取在路径145中的精细全局运动矢量。然后使用这个矢量用于最后的图像帧稳定109。
109的稳定的图像输出然后被编码器103压缩,如参照图3所述。应当注意,在本实施例中,计算在两个相继图像帧之间的块运动矢量的专用处理105被使用了3次。被稳定的图像帧数据由编码器103压缩时,在路径135中的低分辨率图像帧数据被输入到其中,作为低分辨率运动估计器的部分(在线137中的LRME输出),在路径141中的高分辨率图像帧数据作为高分辨率运动估计器(在线142中的HRME输出),接着最后一次。
图7表示图6的图像稳定处理的一个非常特定的例子。虽然利用压缩编码器63(图2)内的块运动估计电路计算低分辨率块运动矢量(LRME),但在这个特定的例子中由处理器51计算高分辨率运动矢量(HRME)。不过,两者可以通过使数据经过专用电路被计算。
图7所示的图像数据处理沿着从t=n-2到t=n+1的时间线进行。着重表示稳定一个获取的图像帧的细节。在时刻t=n-2,从传感器输出的图像帧数据S(n-2)已经通过使用较早计算的在两个先前相继获取的图像帧之间的全局运动矢量被处理成被预稳定的图像帧SV(n-2)。在时刻t=n-1以前,图像帧SV-(n-2)的数据被转换成YUV格式。这个YUV图像帧数据在时刻t=t-1被示为SV+(n-1)。此后,在时刻t=n之前,由YUV图像数据V+(n-1)形成低分辨率图像D(n)(也称为dc图像)。低分辨率图像D(n)被表示为存在于时刻t=n。
然后进行数字稳定器处理,其中使用当前帧的低分辨率形式D(n)和前一个图像帧的D(n-1)。数字稳定器还接收当前高分辨率图像V+(n-1)的数据,被表示为输入图像Vi+(n-1),以及前一帧Vi+(n-2)的数据。数字稳定器执行上面针对图6说明的粗细稳定处理。图7的数字稳定器的至少“粗ME(LRME)”处理块优选地被这样实现使数据通过数据压缩编码器电路63(图2)的专用块运动矢量计算能力。粗全局运动矢量(GMV)被表示为GD(n+1)。然后使用被表示为G(n+1)的计算的输出全局运动矢量,通过把当前高分辨率图像帧V+(n-1)剪裁成图像帧V(n+1)使该帧稳定。这作为当前图像帧的稳定处理的输出出现在时刻t=n+1。然后正是这个当前帧的数据被压缩,其中使用相同的块运动矢量计算算法,最好是专用电路,其在早些时候已被数字稳定器使用了两次。
同时,对于当前帧计算的全局运动矢量G(n+1)还处理相继接收的传感器图像帧S(n+1)的数据,从而提供被预稳定的剪裁的图像SV-(n+1)。然后使这个被预稳定图像数据经过和针对当前传感器图像S(n-2)所述的相同的处理步骤。还应当注意,各个图像帧S(n-1)和S(n)的每个剪裁样式SV-(n-1)和SV-(n)的处理(未示出)是在不同的时刻开始的,并在当前的剪裁图像SV-(n-2)进行稳定处理时被部分完成。借助于流水线进行的这种处理的并行性使图像帧数据处理的性能保持在一个高的水平。
现在详细说明图7所示的数字稳定处理。在帧时刻t(n-2),接收传感器图像S(n-2)。只使用子图像SV-(n-2)产生YUV-图像。在[t(n-2),t(n-1)]期间,借助于图像处理单元(IPU)和图像缩放单元(ISU)由SV-(n-2)产生YUV图像帧V+(n-1)。在[t(n-1),t(n)]期间,由V+(n-1)计算dc图像D(n)。在[t(n),t(n+1)]期间,数字稳定器算法计算全局运动矢量G(n+1)。第一图像剪裁器设置在传感器图像S(n+1)内SV-(n+1)的位置,第二剪裁器设置在更大图像V+(n-1)内YUV-图像V(n+1)的位置。
在时间帧[t(n),t(n+1)]期间执行图7所示的以下任务1.接收传感器图像S(n+1),其含有原始的(2×2个G,R,G,B格式的像元),并准备好在t(n+1)开始的进一步处理,其中“像元”代表像素。
2.利用图像处理单元(IPU)和图像缩放单元(ISC)由传感器图像S(n)的子图像SV-(n)构建YUV图像V+(n+1)。
V+图像大于目标图像尺寸(例如VGA)。额外的面积用于在补偿摄像机运动的新位置剪裁目标图像。V+的尺寸(V+_HorSize,V+_VerSize)是一个参数,其最大值由DRAM图像帧缓冲存储器的带宽限制(例如VGA尺寸的图像的最大尺寸是672(H)×504(V)像元)。VGA图像的纵横比保持在640/480=672/504。
IPU/ISC在传感器图像SV-(n)内取一个子截面,然后将其处理并转换成YUV-图像V+。在SV-(n)图像帧内的位置由稳定器粗剪裁输出确定,其是最后时间帧[t(n-1),t(n)]的结果。
V+(V+_HorSize,V+_VerSize)和原始的传感器图像(SV-_HorSize,SV-_VerSize)的尺寸之间的关系取决于V域ZFv内的数字变焦系数以及水平和垂直缩放系数HorScale和VerScale,其把传感器图像(例如2000×200像元)缩放成具有所需纵横比的图像。
V+_HorSize=ZFv*V-_HorSizeV+_VerSize=ZFv*V-_VerSize其中V-_HorSize=HorScale*SV-_HorSizeV-_VerSize=VerScale*SV-_VerSizeV-是在数字变焦之前的YUV-图像,具有其水平和垂直尺寸(V-_HorSize,V-_VerSize)。注意,SV-包含传感器有效像素区域以及沿每个轴在传感器边沿的额外像素。具体地说,当数字变焦是SV-_HorSize=SensorEffPelHor+SensorExtraPelHorSV-_VerSize=SensorEffPelVer+SensorExtraPelVer其中(SensorEffPelHor,SensorEffPelVer)和(SensorExtraPelHor,SensorExtraPelVer)分别是沿水平和垂直轴的有效的额外像素的数量。图像帧V+和V-的纵模比是相同的。
3.由图1的压缩单元(CMP)63由V+(n)产生dc图像D(n+1)。
每个8×8像元块被平均,并由一个dc像元表示。这个8∶1的dc抽取将只取V+的中央部分。对于VGA分辨率,取V+内的VGA中央部分。D(n+1)的尺寸是(640/8=80)×(480/8=60)dc像元。
4.利用D(n-1)作为参考dc图像对目标dc图像D(n)进行低分辨率运动估计(LRME)。
粗LRME的结果是一个粗MVDij(n+1)列表,其中i=1,2,...M,j=1,2,...N。对于80(H)×60(V)dc像元的dc图像,以及8(H)×6(V)的LRME_block(块)尺寸,对每个dc图像,产生一个M×N=10×10块运动矢量(MVD)的列表,对于每个目标单元,具有一个最佳的MVD。
5.通过取由LRME单元提供的所有MVD矢量的中值,计算全局粗运动矢量GD(n+1)。
Go(n+1)=median{MVDij(n+1),i=1,2,...M,j=1,2,...,N}在矢量列表中的奇数项(K)的中值将返回(K-1)/2项在其上面和(K-1)/2项在其下面的排序列表中的项。
在矢量列表中的偶数项(K)的中值将返回排序列表的K/2和K/2+1的平均。
6.然后选择最好的L(例如L=8)MVD运动矢量的子集。该子集是在dc像元距离的意义上对GD最接近的MVD矢量,并由图像的不同部分取得。
首先,对所有的MVDij矢量按照其离开GD的距离排序distance(MVDij,GD)=abs(MVDij(n+1)-GD(n+1))然后,取L矢量作为具有最小距离的矢量。因为它们需要从不同的图像部分取得,检查以下的条件当MVDij和MVDnm是子集L矢量中的两个MVD,分别是位于(i,j)和(m,n)的目标图像时,则它们被分开至少Thr LRME_blocksabs(i-m)<Thr,abs(j-n)<Thr,作为一种可能的变化,LRME_block活动性可以帮助在具有系统距离的两个或多个MVD运动矢量当中进行选择。较高的活动性可以提高在细分辨率搜索中块匹配的有意义的结果。LRME_block活动性作为在LRME_block(8×6个单元,48个块)中包含的所有块活动性的平均值被计算。一个块的活动性被定义为在每个8×8像元块中最大和最小像元值之间的差。
7.然后使用V+(n-1)以V+(n-2)分别作为目标图像和参考图像计算精细GMV(n+1)。
使用LRME单元在每个MVDi,其中i=1,2,...,L周围进行精细分辨率搜索。在这一步,在细目标LRME_block中的每一项涉及在目标帧V+(n-1)中的一个像素。其位置(左上角)当前被取在粗LRME_block的中央。(作为一种改变,因为MVD(m)对于8×6个许多像元单元是共同的,因为LRME_block在粗略级,可以选择具有最高的块活动性的8×6个单元)。由原始像元的左方8个像元、右方8个像元、上方6个像元和下方6个像元构成关于VGA尺寸的搜索区域,其含有参考图像V+(n-2)的24×18个像元。这构成17×13个搜索点。这些搜索点的最小绝对差(SAD)得到第m个精细GMVi(n+1),其中i=1,2,...,L。
精细全局运动矢量G(n+1)是GMVi(n+1)的中值G(n+1)=median{GMVi(n+1),i=1,2..,L}8.由V+(n-1)剪裁V(n+1)来自V+(n-1)的VGA图像V(n+1)的剪裁位置由全局运动矢量GD(n+1)确定。
9.设置剪裁位置由S(n+1)到SV-(n+1)在传感器图像S(n+1)中的SV-(n+1)的新的剪裁位置也基于当前精细全局运动矢量GD(n+1)(并且可以基于先前的GD(n-i),i=1,2,...)的正向预测)。
10.如果有一个V(n+1),则被传送到显示器,并被传送到图像捕获装置使用的视频压缩编码器帧缓冲器,进行压缩和存储。
下面说明使用LRME单元进行的运动估计,以对于VGA尺寸的图像所取的值为例。目标dc图像被分成不重叠的LRME_blocks,具有8×6dc像元(H×V)块尺寸。构建一组10×10 LRME_blocks。对于每个目标LRME_block的搜索结果是最好的粗运动矢量MVD。
对于每个LRME_block,在2D dc像元网格上进行全部搜索。该网格是从目标LRME_block的坐标位置,(x0,y0),由其左上角(左上,字母L)规定,到分别在每个水平和垂直的8和6个dc像元中的最大位移构建的,如图8所示。图8表示一个LRME_block单元(8×6个像素)的搜索区域24(H)×18(V),其中X=搜索区域中的像素,L=目标LRME_block单元和搜索区域的像素。由水平轴的17个搜索点和垂直轴的13个搜索点获取17×13的搜索网格。在所有221个搜索点中,目标LRME_block单元总是在搜索区域内部。该目标单元的代表性(最佳的)MV在目标和参考8×6个像元之间作为具有最小的SAD(和绝对差)的一个被选择。
由dc像素(x0+8,y0)以光栅扫描获取目标dc图像中的下一个目标宏块(MB)位置。在目标dc图像中的每个dc像元只被取一次。然后,继续取在右边的下一个目标单元,直到dc图像的结束,例如,对于VGA,沿一行当中的10个目标单元。那么,下一个带中的原点将在(x0,y0+6)。沿着每个列将具有10个目标单元。
对于上面的LRME_块的尺寸和80×60的dc图像,对每个dc图像产生一个10×10MVD运动矢量列表,对于每个目标单元具有一个最佳的MV。
下面说明在稳定器输出图像(V)和输入的传感器图像(S)之间的坐标变换。说明在稳定器操作和传感器结构之间的接口。对于每个传感器结构,这种接口的确定允许稳定器算法独立地操作。图9表示所述处理,表示在传感器(S)中的变焦系数和输出图像(V)的域。
水平的和垂直的缩放系数HorScale将VerScale把传感器图像S(例如2000×200像元)缩放成具有所需纵横比的图像Vs,其在实像元域中被表示如下Vs_HorSize=HorScale*S_HorSizeVs_VerSize=VerScale*S_VerSize一般地说,不需要利用IPU&ISC(图7)制备整个图像Vs,而仅仅处理其子部分。对于可以由子传感器图像SV-获取的V-图像,也保持相同的缩放关系V-_HorSize=HorScale*SV-_HorSizeV-_VerSize=VerScale*SV-_VerSize对于传感器图像确定数字变焦系数ZFs如下
Vs_HorSize=ZFs*V-_HorSizeVs_VerSize=ZFs*V-_VerSize注意可以借助于设置其原点(左上坐标)和水平与垂直尺寸限定有效区域。其纵横比可以和输出帧V的纵横比不一致。在这种情况下,将沿水平轴或垂直轴而不是沿水平和垂直两个轴使用ZFs。
数字稳定器使用向上缩放系数ZFv由V-图像获取较大的图像V+V+_HorSize=ZFv*V-_HorSizeV+_VerSize=ZFv*V-_VerSize一旦传感器结构(其尺寸和所需的纵横比所需的比例)和操作的数字变焦系数ZFs被确定之后,便可以计算数字稳定器的变焦系数ZFv如下ZFv=ZFs*V+_HorSize/Vs_HorSize=ZFs*V+_VerSize/Vs_VerSize数量ZFv用于把剪裁坐标从V图像像元域转换成V-域V-(x,y)=V+(x,y)/ZFv在传感器域内的分辨率是像元的1/256。
现在说明最小数字变焦系数(ZFv_min)的使用。对于在最大拉远下数字稳定器的合适的操作,最小的边缘应当在传感器图像内的左方,以便进行运动补偿。示例的边缘是在输出图像域的每个边沿中的大约+/-50个像元(Vs_HorSize-V-_HorSize)*ZFv>=2*50(Vs_VerSize-V-_VerSize)*ZFv>=2*50操作数字变焦系数的下限(ZFs_min)被如下给出ZFs_min=max(1+100/V+_HorSize,1+100/V+_VerSize)因此,操作数字变焦系数应当保持条件ZFs>=ZFs_min对于VGA传感器,给出以下的例子
(Vs_HorSize,Vs_VerSize)=(640,480)像元(V+_HorSize,V+_VerSize)=(672,504)像元ZFs_min=max(1+100/672,1+100/504)=max(1.15,1.20)=1.20,以及(V-_HorSize_max,V-_VerSize_max)=(Vs_HorSize,Vs_VerSize)/ZFs_min=(533,400)像元因为ZFs>=ZFs_min是理想的,ZFs=ZFs_min=1.20被选择。故ZFv=ZFs*V+_HorSize/Vs_HorSize=1.20*672/640==ZFs*V+_VerSize/Vs_VerSize=1.20*504/480=1.26(Vs_HorSize-V-_HorSize)*ZFv=(640-533)*1.26=134像元(Vs_VerSize-V-_VerSize)*ZFv=(480-400)*1.26=100像元由此,已经实现了大于100个像元的有效边缘。
视频稳定和压缩的第三实施例作为上述的第二实施例的一部分,由传感器获取的图像帧S通过使用由两个在前图像帧之间的块运动矢量计算的全局运动矢量被剪裁成图像帧SV-。不使用由当前图像帧得到的运动矢量。虽然这是一个预稳定步骤,在第二实施例中,在其后还要根据当前图像帧进行进一步的稳定处理,但具有一些应用,其中仅仅这个数量的稳定便足够了。这可以是图像帧获取速率高的情况,例如每秒30帧或更高,并且预期视频设备的晃动相当慢,例如频率为3赫兹或更低。一个显著的优点是大大减少了运动稳定所需的数据处理的数量。
因此,可以使用例如图10所示的处理系统。压缩编码器151包括部分153,其由编码器优选地至少部分地使用专用硬件电路计算接收的各个图像帧的块运动矢量,以及部分155,其按照前述进行其余的压缩编码计算。在压缩编码之前还进行图像运动稳定处理157。第三实施例中的不同之处在于,运动稳定处理相对于更早的帧使用由部分153对在正被稳定的当前帧之前的图像帧计算的块运动矢量。然后当前帧的全局运动矢量在步骤156被计算,并在157被用于稳定当前图像帧。
利用这种方法,为了压缩最近的在前图像帧的数据由当前帧之前获取的两个图像帧计算的块运动矢量还用于稳定当前图像帧的运动。两个在前图像帧最通常是在时间上离当前图像帧最近之前的两个图像帧,但并不要求如此。可以使用另外对的在前图像帧代之。因为不使用当前图像帧的数据计算其运动矢量,便可以几乎在获取当前图像帧的数据的同时,或者在之后极短的时间得到全局运动矢量。这对于每个图像帧,至少减少一次块运动矢量的计算。
结论虽然针对本发明的示例的实施例说明了本发明的各个方面,应当理解,本发明有权在所附权利要求的整个范围内得到保护。
权利要求
1.一种操作视频设备的方法,包括从两维传感器获取相继图像帧的视频数据,根据获取的视频数据进行用于估计当前获取的图像帧的分量相对于另一个获取的图像帧的分量的运动的数量的计算,所述计算至少部分地借助于使获取的视频数据通过执行给定的运动估计算法的电子电路来进行,由用于估计当前帧的分量相对于所述另一帧的分量的运动的量计算当前图像帧相对于所述另一图像帧的整个运动的估计,通过用一种方式估计当前图像帧相对于所述另一图像帧的总的运动而修改当前图像帧的获取的视频数据,以提供被稳定的图像帧,压缩被稳定的图像帧,包括使被稳定的图像帧的数据通过所述电子电路,以通过执行所述给定的运动估计算法计算用于估计当前被稳定的图像帧的分量相对于另一个被稳定的图像帧的运动的量,以及存储被稳定的图像帧的压缩的数据。
2.如权利要求1所述的方法,其中所述另一个图像帧包括在当前图像帧之前的相继的获取的图像帧内的图像帧。
3.如权利要求2所述的方法,其中在当前图像帧之前的图像帧紧挨着在当前图像帧之前。
4.如权利要求1所述的方法,其中利用给定的算法根据获取的视频数据进行计算包括计算在当前图像帧内的各个块的运动相对于在所述另一个图像帧内的各个块的运动的估计。
5.如权利要求4所述的方法,其中计算当前图像帧的总的运动的估计包括计算表示在帧内的各个块的运动的量的统计值。
6.如权利要求2所述的方法,其中还包括,在进行用于估计当前图像帧的分量的运动的量的计算之前,作为比较所述在前的图像帧和比所述在前图像帧较早获取的图像帧的结果,预稳定当前图像帧,其中进行用于估计当前图像帧的分量的运动的量的计算在所述在前图像帧的预稳定之后相对于所述在前图像帧的分量进行。
7.如权利要求6所述的方法,其中还包括,在预稳定当前帧之前,形成所述在前图像帧和所述另一图像帧的数据,使得具有从传感器获取的视频数据的分辨率减小的分辨率,其中借助于比较所述在前图像帧和具有减小的分辨率的所述另一图像帧进行预稳定当前图像帧。
8.如权利要求7所述的方法,其中预稳定当前图像帧包括确定被预稳定的当前图像帧,使得具有两维的范围,该范围处于获取的视频数据的当前图像帧之内,并相对于获取的视频数据的当前图像帧被移动。
9.如权利要求8所述的方法,其中修改当前图像帧包括改变在获取的视频数据的当前图像帧内用于限定被修改的当前图像帧的坐标。
10.如权利要求1所述的方法,其中修改当前图像帧包括改变在获取的视频数据内用于限定被修改的当前图像帧的坐标。
11.如权利要求1所述的方法,其中利用执行控制软件的处理器计算当前图像帧的总的运动的估计和借助于总的运动的估计修改当前图像帧。
12.如权利要求11所述的方法,其中借助于使数据通过所述电子电路进行的计算由用于执行控制软件的处理器提交给所述电子电路。
13.如权利要求1所述的方法,还包括把获取的视频数据从表示两个或更多色彩分量的大小的格式转换成表示亮度和色度分量的大小的格式,其中根据获取的视频数据进行计算包括由当前图像帧和所述在前图像帧的数据进行所述计算,所述数据具有表示亮度和色度分量的大小的格式。
14.如权利要求1所述的方法,其中在手持视频图像数据获取设备内进行每个所述的步骤。
15.一种用于处理以相继的运动图像获取的图像帧的视频数据的方法,包括获取比作为最终处理的图像帧所获取的更大的图像帧的视频数据,计算表示在图像帧的各对之间的全局运动的估计的第一组全局运动矢量,通过按照在两个在前图像帧的图像之间的运动矢量分别剪裁获取的视频数据的图像帧,按照顺序预稳定各个图像帧,此后,还通过按照在被预稳定的图像帧的图像和最近的在前帧的图像之间的运动矢量分别剪裁被预稳定的图像帧,按照顺序稳定各个被预稳定的图像帧,以及此后,压缩被稳定的图像帧的数据。
16.如权利要求15所述的方法,还包括在预稳定图像帧之前,计算各个图像帧的减小的分辨率的图像,以及计算表示在减小的分辨率的图像帧的各对之间的全局运动的估计的第二组全局运动矢量,其中预稳定各个图像帧包括按照第二组运动矢量预稳定图像帧。
17.一种用于处理以相继的运动图像获取的图像帧的视频数据的方法,包括获取比作为最终处理的图像帧所获取的更大的图像帧的视频数据,计算表示在图像帧的各对之间的全局运动的估计的第一组全局运动矢量,通过按照在获取的图像帧中两个另外的图像帧的图像之间的运动矢量分别剪裁获取的视频数据的图像帧,按照顺序稳定各个图像帧,以及此后,压缩被稳定的图像帧的数据。
18.如权利要求17所述的方法,还包括在稳定图像帧之前计算各个图像帧的减小的分辨率的图像,以及计算表示在减小的分辨率的图像帧的各对之间的全局运动的估计的第二组全局运动矢量,其中稳定各个图像帧包括按照第二组运动矢量稳定图像帧。
19.如权利要求17所述的方法,还包括在稳定图像帧之前计算各个图像帧的减小的分辨率的图像,以及计算表示在减小的分辨率的图像帧的各对之间的全局运动的估计的第二组全局运动矢量,其中通过按照第二组运动矢量稳定图像帧来稳定各个图像帧。
20.如权利要求16、18或19所述的方法,其中计算第一和第二组全局运动矢量和压缩所述数据中的每一个包括按照由专用于这种运动估计的电子电路执行的普通算法估计图像帧的分量的运动。
21.如权利要求15或17所述的方法,其中在手持视频图像数据获取设备内进行每个所述的步骤。
22.一种用于操作视频设备的方法,包括从两维传感器获取相继图像帧的视频数据,根据获取的视频数据进行用于估计获取的图像帧的各个帧的分量在进行中相对于一个或更多个其它图像帧的分量的运动的量的计算,利用所述用于估计各个图像帧的分量的运动的量以压缩图像帧的数据,由用于估计用来压缩数据的各个图像帧的分量的运动的量,计算图像帧的总的运动的估计,通过用一种方式利用图像帧的总的运动的估计修改获取的视频数据,使得提供被压缩的稳定的图像帧的数据,以及存储稳定的图像帧的压缩的数据。
23.如权利要求22所述的方法,其中进行用于估计各个图像帧的分量的运动的量的计算包括使获取的视频数据通过用于执行给定的运动估计算法的电子电路。
24.如权利要求22所述的方法,其中计算各个图像帧的总的运动的估计包括由用于估计发生在正在对其计算运动估计的单个帧之前的图像帧的分量的运动的量进行所述计算。
25.如权利要求22所述的方法,其中计算各个图像帧的总的运动的估计包括由用于估计发生在正在对其计算运动估计的单个帧之后的图像帧的分量的运动的量进行所述计算。
26.如权利要求22所述的方法,其中计算各个图像帧的总的运动的估计包括借助于省略使用用于估计正在对其计算运动估计的单个图像帧的运动的量进行所述计算。
27.如权利要求22、23或26所述的方法,其中所述一个或更多个其它图像帧发生在正在对其计算运动估计的单个图像帧之前。
28.如权利要求22、23或26所述的方法,其中所述一个或更多个其它图像帧发生在正在对其计算运动估计的单个图像帧之后。
29.如权利要求22-26中任何一个所述的方法,其中获取视频数据包括以至少每秒30帧的速率获取相继的图像帧。
30.一种用于处理按照顺序发生的运动图像的帧的视频数据的方法,包括借助于使用第一图像帧的数据和另一图像帧的数据计算表示第一图像帧的全局运动的估计的第一组运动矢量,借助于使用第一组运动矢量压缩第一图像帧的数据,以及借助于使用第一组运动矢量稳定跟随第一图像帧的第二图像帧的数据。
31.一种集成电路芯片,包括在芯片上的第一组导体,其传送一连串的视频图像帧的数字数据,电子电路,用于计算其数字数据在其中通过的图像帧的运动矢量,数据处理器,其被编程用于使通过第一组导体接收的图像帧的数字数据通过电子电路,借以计算关于接收的图像帧数据的运动矢量,以便然后通过使用由接收的数据运动矢量计算的运动矢量使图像帧被稳定,然后使被稳定的图像帧的数据通过电子电路,借以计算关于被稳定的图像帧的运动矢量,然后通过使用计算的关于被稳定的图像帧的运动矢量压缩被稳定的图像帧,以及在芯片上的第二组导体,用于传送压缩的被稳定的图像帧的数据。
32.一种视频系统,包括运动图像的相继的帧的数据的输入端,处理器,其使得由两个图像帧的数据计算运动矢量,并用于压缩各个图像帧的数据和在相继的图像帧被压缩之前使它们稳定,以及相继帧的输入数据的相继的被稳定的和压缩的型式的数据的输出端。
全文摘要
本发明涉及补偿获取图像帧之间无意的照相机运动的视频数据的处理。连续的图像帧的视频数据在数字摄像机或其它视频图象获取设备中,在获取视频数据后立即或者在获取视频数据后某个时间的视频数据后处理期间借助于使图像稳定而被处理,以减少手持设备的无意的运动(抖动)的影响。作为MPEG-4或其它压缩算法的部分用于计算在相继的图像帧之间的运动的估计的处理电路还用于估计运动,根据这个运动视频数据被改变以稳定图像。各个图像可以通过使用稳定在前图像的结果被预稳定,以便减少为稳定当前图像所需的处理的数量。
文档编号H04N7/26GK101019418SQ200580030620
公开日2007年8月15日 申请日期2005年6月15日 优先权日2004年7月21日
发明者维克特·平托, 伊特希克·德维尔 申请人:卓然公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1