专利名称:视频稳定的制作方法
技术领域:
本发明涉及视频信号的稳定(stab i I i sat ion )。特别地,本发明涉及使用摄像机捕获视频信号帧并对摄像机的运动进行补偿,从而稳定视频信号。
背景技术:
摄像机可被用于捕获作为视频信号帧使用的图像的序列。可以将摄像机固定到稳定的物体,例如可以将摄像机安装在三脚架之类的支架上,从而在捕获视频帧的时候保持摄像机静止。然而,摄像机经常是在移动设备中·实现的,并且未必安装在固定的物体上,例如,摄像机可能会被保持或是位于车辆之类的运动物体上。在摄像机捕获视频信号帧时,摄像机的移动可能导致视频信号本身出现不希望的移动。图像稳定处理是一种可以用于补偿视频信号中的不希望移动的方法。一些系统执行运动估计来产生供图像稳定处理使用的运动矢量。在Julan Yang等人发表的“OnlineVideo Stabilization Based on Particle Filters”一文中描述了一种这样的系统。图像稳定算法可以包括三个主要部分运动估计、运动平滑以及运动补偿。运动估计部件可以估计视频信号内部的局部运动矢量,并且基于这些局部估计来计算全局运动矢量。然后,运动平滑部件可以处理针对所估计的全局运动矢量所进行的滤波,以便平滑计算得到的值以及防止在先前计算的运动矢量之间出现很大的不希望的差别。之后,运动补偿部件可以在与已滤波的全局运动矢量相反的方向上移动图像,从而稳定视频信号。所述运动补偿部件可以对旋转、扭曲或缩放之类的复杂变换加以考虑。为了如上所述基于运动矢量来执行图像稳定处理,那么有可能需要大量的处理资源。在要实时稳定视频信号、也就是在摄像机捕获视频信号的同时使用(例如在视频呼叫中传送或者从设备中输出)稳定版本的视频信号的时候,这有可能会成为一个问题。此外,在执行图像稳定处理的设备是移动电话这类处理资源有限的小型移动设备的时候同样有可能会出现问题。近年来,运动传感器的制造已经变得更加简单和廉价,并且运动传感器的大小也显著变小。现在,在移动设备中实现运动传感器是可行的。运动传感器产生代表传感器运动的米样° 在 Andy L. Lin 发表的“Using Sensors for Efficient Video Coding inHand-held devices,,以及Martin Drahansk 等人发表的“Accelerometer Based DigitalVideo Stabilization for General Security Surveillance Systems”这两篇现有文献中述及了使用源自运动传感器的数据来稳定视频信号的可能性。已知的处理工具“VirtualDub”提供了需要修剪视频信号的离线稳定处理(也就是非实时)。在英国申请1109071. 9中提出了一种用于在线(即实时)发送侧数字稳定的机制。该机制在很多情形中都是有效的,但其需要修剪所传送的视频。而这有可能会影响所传送的视频的质量。
发明内容
根据本发明的一个方面,提供了一种从用户设备传送视频信号的方法,该方法包括在用户设备上使用摄像机捕获多个视频信号帧;确定设备的功能状态;以及在进行传输之前,基于功能状态来有选择地稳定视频信号。优选地,所述功能状态是摄像机的运动程度,该方法包括监视摄像机的运动并且将其与一个阈值相比较。所述监视可以包括使用与摄像机相关联的运动传感器来产生代表摄像机运动的多个采样;使用这些采样来确定摄像机在所述摄像机捕获的连续帧之间的位移;以及确定代表所确定的摄像机位移所导致的连续帧之间视频信号中的运动的像素位移,并且该方法还包括将像素位移与阈值进行比较;如果像素位移超出所述阈值,则在传输之前稳定所述视频信号;否则在不实施稳定处理的情况下传送视频信号。
优选地,摄像机的运动是旋转运动,运动传感器是旋转运动传感器,并且摄像机的位移是摄像机的角位移。用户设备包括前向摄像机和后向摄像机,当功能状态是选择了前向摄像机时,这时可以在不执行稳定处理的情况下传送视频信号。优选地,在选择了设备的后向摄像机的时候,这时可以对视频信号进行稳定。优选地,使用运动传感器产生的采样的采样率要高于视频信号的帧速率。摄像机和运动传感器可以安装在移动设备内部。稳定视频信号的步骤可以包括对像素位移进行滤波;以及根据已滤波的像素位移来移动第一和第二帧中的至少一个帧的图像。对像素位移进行滤波的步骤可以包括基于所述为第二个帧确定的像素位置来确定累积像素位移;以及基于为第二个帧确定的累积像素位移与用于第一个帧的已滤波累积像素位移的加权总和来确定用于第二个帧的已滤波累积像素位移。优选地,向下列各项中的至少一项中添加时间偏移(i)所捕获的多个帧;以及
(2)所产生的多个采样,以使所捕获的多个帧的定时与所产生的多个采样的定时相匹配。如果像素位移超出阈值,则可以使用定时器来确定是否经过了预先确定的时段,并且只有在经过了该时段的时候才稳定所述视频信号。如果像素位移没有超出所述阈值,则可以复位该定时器。根据本发明的第二个方面,提供了一种用于稳定视频信号的设备,该设备包括被配置成捕获视频信号的多个帧的摄像机;用于确定设备的功能状态的装置;以及用于在传输之前基于所述功能状态来有选择地稳定所述视频信号的装置。优选地,所述功能状态是摄像机的运动程度,该设备包括用于监视摄像机运动并且将其与一个阈值相比较的装置。该设备还可以包括与摄像机相关联的运动传感器,其被配置成产生代表摄像机运动的多个采样;像素位移确定部件,其被配置成使用所述采样来确定摄像机在该摄像机捕获的连续帧之间的像素位移,所述像素位移代表摄像机运动所导致的连续帧之间的视频信号运动;比较部件,其被配置成将像素位移与一个预定阈值相比较;以及运动补偿部件,其被配置成在传输之前,如果像素位移超出所述阈值,则稳定所述视频信号,否则,在传输之前不实现稳定处理。
优选地,摄像机的运动是旋转运动,运动传感器是旋转运动传感器,并且摄像机的位移是摄像机的角位移。所述运动传感器可以是陀螺仪运动传感器。所述设备可以是移动设备。根据本发明的第三个方面,提供了一种用于稳定视频信号的计算机程序产品,所述计算机程序产品包含在非暂时性的计算机可读介质中,并且被配置成当在设备处理器上运行的时候执行权利要求1-13中的任一权利要求的操作。发明人已经认识到,为了最大化输出视频的分辨率,希望仅仅在需要的时候实现视频稳定处理,以免不必要地修剪所传送的视频信号。
为了更好地理解本发明以及显示如何实施本发明,现在将通过示例方式参考以下附图,其中
图Ia和Ib显示了根据优选实施例的设备;
图2是根据优选实施例的用于稳定视频信号的处理的流程 图3是根据优选实施例的监视处理的流程 图4是随时间推移的摄像机快门位置的例示图形表示;
图5是随时间推移的摄像机的角速度的例不图形表不;
图6是根据优选实施例的稳定处理的流程图;以及 图7是修剪处理前后的图像的表示。
具体实施例方式现在将仅仅通过举例的方式描述本发明的优选实施例。图Ia和Ib显示了根据一个优选实施例的设备100。举例来说,设备100可以是移动设备,例如移动电话或其他手持设备。设备100包括与屏幕101朝着相同方向的前向摄像机104,以及与屏幕101的方向相反的后向摄像机102。设备100还包括运动传感器110、CPU 106以及存储器108。前向摄像机104和后向摄像机102中的每一个都被配置成在被用户选择的时候捕获图像。所捕获的图像可以用于形成视频信号,由此每一个图像都被用作视频信号帧,并且以视频信号的帧速率来捕获图像。举例来说,所述帧速率可以是每秒25帧,但是这些摄像机也可以以不同的帧速率工作。用于实现运动图像感知的最小帧速率约为每秒15帧,但这可以取决于观看视频图像的人以及视频信号中的内容(也就是在视频信号的主题中有多少运动)。运动传感器110被配置成产生代表设备100的运动的采样。由于运动传感器110和摄像机104、102全都处于设备100中,因此它们彼此是关联的,这样一来,运动传感器104产生的采样可以用于代表摄像机104、102中任何一个的运动。正如本领域已知的那样,CPU 106被配置成在设备100上执行计算处理。并且如本领域已知的那样,存储器108被用于在设备100中存储数据。正如本领域已知的那样,部件102、104、106和108彼此可以通过经由设备100的总线(在图I中并未显示)发送数据来进行通信。在这里描述的稳定器可以处于三种状态。该稳定器可以作为在CPU 106上运行的代码来实现。稳定器的状态是基于移动设备的功能状态而被选择的。第一种状态是稳定器关闭并且不实现如下所述的稳定视频信号的处理。当前向摄像机104捕获视频信号时,稳定器处于第一状态。由于修剪处理会使视角变窄,并且稳定器稳定背景的处理有可能会在视频信号中增加更多的运动,因此,稳定处理在前向摄像机104上是被禁用的。稳定器的第二状态是监视设备高频运动(震动(shakiness))但却不对视频信号进行修剪。当后向摄像机102捕获视频信号时,稳定器将会处于第二状态。稳定器的第三状态是应用稳定处理,由此修剪后向摄像机102捕获的视频信号。图2示出了根据优选实施例的使用设备100来稳定视频信号的处理。在步骤S201,该处理确定视频信号是否是由前向摄像机104捕获的。也就是说,确定稳定器是否处于第一状态。如果视频信号是由前向摄像机104捕获的,那么该处理不再 继续进行。如果视频信号不是前向摄像机104捕获的(也就是说,视频信号是由后向摄像机102捕获的),那么该处理前进至步骤S202。在步骤S202,后向摄像机102的震动将被监视。在图3中更详细地显示了监视步骤S202。在步骤S302,后向摄像机102捕获将被用作视频信号帧的图像。例如,摄像机102可以具有一个记录在分配给视频信号帧的时间期间入射在传感器上的光的能级的光传感器阵列。摄像机102的快门被用于在时间上分离这些帧,由此在每一个帧期间,所述快门都会在一个时段中打开以及在另一个时段中关闭。所捕获的视频信号帧被提供给预处理器(例如在处理部件中由CPU 106实现)。在使用本领域已知的视频编码技术来对帧进行编码之前,所述预处理器通过操作来稳定视频信号帧中的图像。在步骤S304,当摄像机102捕获视频信号帧时,运动传感器110将会产生代表设备100的运动的采样。例如,运动传感器110可以是陀螺仪之类的旋转运动传感器。陀螺仪110对设备100的角速度进行测量,并且以特定的间隔输出代表所述角速度的采样。所述间隔既可以是规则间隔,也可以不是规则间隔。优选地,从陀螺仪110输出的采样的平均采样率要高于视频信号的帧速率,但这并不是必需的。例如,从陀螺仪110输出的采样率可以是每秒60个采样,该采样率反映设备100的最大通常震动频率,并且当前是与帧速率无关的。陀螺仪110产生的采样将被提供给预处理器。在步骤S306,摄像机102在两个视频信号帧(帧I和帧2)之间的角位移将被确定。该确定可以由CPU 106的处理部件来执行。发明人业已确定,为了使用来自陀螺仪110的数据来有效确定两个帧之间的角位移,在摄像机102捕获的帧的曝光时间中点之间的时间间隔上对角速度进行积分是非常有用的。发明人还确定,由于未必能够将陀螺仪110的采样率与摄像机102的帧速率同步,因此,这种处理有可能会特别有问题,尤其是在出现下列情形的时候
摄像机102被调整成根据可用光来调节曝光时间(很多摄像机都是如此);
摄像机102提供的视频信号帧的时间戳与快门闭合时间相关联(即帧的结束时间,这与帧的曝光时间的中点是对立的);以及
在帧的曝光时间的中点,陀螺仪数据不可用。如上所述,预处理器接收来自摄像机105的视频帧,并且还会接收来自陀螺仪110的采样。来自陀螺仪110的采样以至少与摄像机105捕获的视频信号的帧速率相等的速率而被提供给预处理器(例如以规则间隔)。通过在陀螺仪110中使用更高的采样率,可以给出更精确的角度估计,但在CPU使用方面的代价较高。摄像机102提供给视频信号中的第一个帧(帧I)的时间戳h指示该帧的结束时间,也就是摄像机102的快门闭合以结束帧I的时间。同样,摄像机102提供给视频信号中的第二个帧(帧2)的时间戳t2指示所述帧的结束时间,也就是摄像机102的快门闭合以结束帧2的时间。为了确定设备100在第一个帧与第二个帧之间的角位移(ΔΘ ),与使用帧的时间戳来表不巾贞的时间不同,更为精确的是使用巾贞I和巾贞2的曝光时间的中点。第一个第二个巾贞的曝光时间是用S1和e2表不的。角位移是通过在时间tfO. Se1与时间t2_0. 5e2之间对设备100的角速度(用从陀螺仪110输出的米样表不)进行积分来确定的。由此,巾贞I与帧2之间的角位移由下式给出图4是随时间推移的摄像机105的快门位置的例示图形表示。摄像机102的快门在帧I结束时在时间h闭合。该摄像机102的快门再次重新打开,以便捕获帧2,然后会在帧2结束时在时间t2闭合。在图4中,帧I的曝光时间被显示成是O1,并且帧2的曝光时间被显示成e2。在图4中使用T12来表示对角速度进行积分的时间。通过观看图4可以了解,时间T12上的积分对应于在第一个帧的曝光时间中点(在时间h-O. 5ei)与第二个帧的曝光时间中点(在时间t2-0.5e2)之间进行的积分。图4显示了快门的打开时间与快门的闭合时间相等,但这仅仅是一个示例。在一些实施例中(实现短曝光时间),快门打开的时间要短于快门闭合的时间。相比之下,在其他实施例中(实现长曝光时间),快门打开的时间要长于快门闭合的时间。由于陀螺仪110的采样不与摄像机12捕获的视频信号帧的定时同步,因此有可能出现陀螺仪110没有在帧(帧I和帧2)的中点产生采样的情形。在这种情况下,设备100在帧的中点的角速度可以通过插入陀螺仪110生成的采样所代表的角速度而被确定。该角速度是通过在任何时间点执行插入而被评估的,并且帧的曝光时间的中点将会定义在依照上述等式计算角位移的时候使用的积分间隔。图5是随时间推移的摄像机102的角速度的例示图形表示。在图5中将陀螺仪110产生且代表设备100的角速度的采样显示成是采样502、504、506、508和510。可以看出的是,在图5所示的示例中,陀螺仪110的采样定时并不是规则的。例如,采样504与506之间的时间要短于采样506与508之间的时间。在图5中,连接采样的虚线显示了可以依照时间并且通过插入陀螺仪110产生的采样所代表的角速度而被确定的角速度的值。所插入的角速度(用虚线显示)可以在时间U1-O. 5ei)与(t2-0. 5e2)之间积分,以便确定摄像机102在第一帧与第二帧之间的角位移。图5显示了来自陀螺仪110的采样之间的简单线性插值。在其他实施例中,更先进的内插法也是可以使用的。有可能出现一种状况,其中将要稳定的帧是在来自陀螺仪110的最后的采样之后在预处理器上接收的。例如,当在摄像机102上捕获到帧2时,所述帧2可以是在陀螺仪已经在帧2的曝光时间的中点(t2_0. 5e2)之后产生任何采样之前在预处理器上接收的。例如,帧2可以是在图5所示的采样510之前在预处理器上接收的。在这种状况下,在视频流中可以引入延迟,以便在处理帧2之前在预处理器上接收到采样510,由此允许在预处理器处理帧2之前确定时间(t2-0. 5e2)的角速度。可替换地,角速度可以从先前接收自陀螺仪110的采样中外推得到,以便确定设备100在时间(t2-0. 5e2)的角速度。如果摄像机102没有移动(例如固定放置设备100),那么陀螺仪110可被禁用,以便节约电池寿命。无运动的状态可以通过来自视频编码器的反馈来确定,其中所述视频编码器会在执行了由预处理器实现并且在这里描述的图像稳定方法之后对视频信号进行编码。作为编码处理的一部分,所述视频编码器可以执行运动估计,并且由此可以确定摄像机是否移动。此外,在摄像机102移动的时候,这时也可以确定运动状态并且将其用于启用陀螺仪110。当设备100在没有运动的状态中工作时,可以在缓慢的间隔中轮询运动传感器110,以便确定设备100是否再次开始移动。根据在设备100的操作系统中实现的硬件和应用编程接口(API),可能有计算开销较小的方式来确定设备100何时开始移动。用于摄像机102和陀螺仪110的硬件的操作定时可能不匹配。这其中的原因有可能是所述摄像机102和陀螺仪119是在独立的硬件芯片中实现的。因此,向陀螺仪110生成的采样和视频信号帧中的任何一个(或是所有这二者)的时间戳添加一个偏移可能是非常有益的。通过这种方式,来自陀螺仪110的采样的定时可以与视频信号帧的定时正确匹 配。对于特定的硬件芯片组合,所述偏移可以是一个常数。由此,延迟可以被离线计算并在设备100上使用,而不会为这里描述的方法招致处理损失。回过来参考图3,在步骤S308,代表摄像机102的运动的像素位移将被确定。通常,摄像机102的旋转会在视频信号的帧图像中导致产生与到图像中的对象的距离无关且近似恒定的像素位移。这与线性的摄像机运动形成对比,其中对所述线性摄像机运动来说,像素位移是到对象的距离的函数。将设备100的旋转映射到像素位移的函数(或算法)取决于摄像机102的参数(例如摄像机102的焦距和镜头宽度)以及摄像机102捕获到的图像的分辨率。编码器反馈可以用于确定陀螺仪110产生的采样的精度,以及用于适配映射算法。此外,还有一些关于运动和对象位移的情形,其中这里描述的基于来自陀螺仪110的采样的稳定模型并不精确(例如对于围绕用户面部的摄像机102的旋转来说,用户面部有可能在帧的中间是稳定的,但是陀螺仪110将会检测到旋转,由此,所述稳定处理将会尝试稳定背景),这一点可以被编码器检测并反馈给稳定算法。通过这种方式可以对稳定算法进行适配。在步骤S308中确定的像素位移代表摄像机102的运动导致产生的视频信号帧图像中的运动幅度(与图像主题的运动形成对比)。通过这种方式,在步骤S308中确定的像素位移代表视频信号帧的图像中的不希望的高频运动(震动)。回过来参考图2,在监视步骤S202之后,在步骤S204,由摄像机102的运动所导致的视频信号帧的图像中的运动幅度将会与预定阈值相比较,以便确定设备100是否在震动。如果在步骤S204中确定设备100没有震动,那么该处理反向前进至监视步骤S202,由此不会对视频信号进行修剪,以使视频信号保持最大输出视频分辨率。一旦做出该确定,则对在设备100中实现的定时器(在图Ib中并未显示)进行复位。 在步骤S204,如果确定设备100在震动,那么该处理前进至步骤S206。在步骤S206中将会确定从最后一次复位定时器时开始是否经过了一个时段。如果尚未经过所述时段,则该处理反向前进至监视步骤S202。如果已经经过了所述时段,则该处理前进至稳定步骤S208。以下将会参考图6来更详细地描述稳定步骤S208。在步骤S602,在步骤S308中确定的像素位移将被滤波。执行这种处理以便平滑那些在图像稳定处理中随时间推移而被应用于视频信号的变化,由此提供经过稳定处理的更平滑的视频信号。用于对像素位移进行滤波的滤波器可以采用不同的方式设计,例如,其设计方式可以取决于摄像机102捕获的图像的分辨率,可被应用于视频信号的可接受延迟,以及可被应用于在预处理器上从摄像机102接收的原始视频信号图像的许可修剪量。举个例子,对在图像稳定处理中应用的像素位移的高频变化来说,分辨率较高的视频帧可以从其较大的滤波衰减中受益。另一方面,修剪量会为最大滤波衰减设置一个硬限制。可以使用依照以下等式来对像素位移进行滤波的指数滤波器 x_filt(η) = (1-w)*x_fiIt(η-1) + w*x (η),
其中η代表视频信号的帧编号,X代表依照步骤S308中确定的像素位移的累积位移(或“位置”),以及x_filt代表已滤波的累积位移,其中所述已滤波的累积位移随后将被用于确定如何校准输入图像,以便如下文中更详细描述的那样来将其稳定。通过这种方式,所述滤波器充当了一个指数滤波器。当运动停止时,x_filt-x将会收敛到零,这意味着图像没有移动。所述滤波器通过将前一个帧的相应的已滤波像素位移以及在步骤S308中为当前帧确定的像素位移作为已滤波像素位移的基础,以便消除(smooth out)那些随时间推移的已确定像素位移的变化。应用于前一个帧的已滤波像素位移的加权是(1- ),而应用于为当前帧确定的像素位移的加权则是W。由此,调整加权参数w将会调整滤波器如何对像素位移(X)中的变化进行响应。与有限冲激响应(FIR)滤波器相比,在对输出x_filt进行修剪而使其处于范围[x-crop,x+crop]时,更为适合的是递归(无限冲激响应(IIR))滤波器,因为修剪后的值将被反馈给滤波器环路,并且会使后续的x_filt输出不易发生修剪。加权参数w被适配于视频信号的分辨率和即时帧速率,以便获取用赫兹量度的恒定物理截止频率。如果滤波器是理想滤波器,那么物理截止频率将会定义被引入到x_filt中的X的变化的最高频率分量。具有比截止频率更高的频率的X的变化将被理想滤波器衰减,并且将不会在^打1丨中出现。然而,该滤波器不是理想滤波器,并且正因如此,截止频率定义这样的最高频率,对于它由滤波器应用的衰减低于3dB。因此,对于非理想的滤波器来说,在截止频率以下存在着一些衰减,并且在截止频率以上也没有完全衰减。滤波器输出将被修剪,以使x_filt与X之间的差值不会大于帧修剪大小。w被适配成致使物理截止频率是恒定的,例如0.5Hz。从滤波器传递函数中可以推导出一个函数w (fc, fs),所述函数会将物理截止频率fc映射成W。当采样频率(帧速率)fs改变时,即使fc是恒定的,w也会改变。相比于其他滤波器,依照上述滤波等式的滤波器非常适合即时变化的截止频率(改变W)。在步骤S604,通过使用来自步骤S602的已滤波像素位移来移动第二个帧(帧2)的图像。通过这种方式,由于摄像机102的运动所导致的第二个帧(相对于第一个帧)的图像中的运动将被衰减。换句话说,已滤波的像素位移将被用于补偿摄像机运动所导致的第一个帧与第二个帧之间的视频信号中的运动,由此稳定所述视频信号。已滤波的像素位移被化整(round)成全像素位移(即整数个像素的位移)。这样做允许使用简单的方法来移动第二个帧的图像。该图像是用指示图像的存储器空间的步幅(stride)值,多个像素值,指示图像的第一个像素的位置的指针,以及指示图像宽度的宽度值表示的。图像的移动包括在不调整步幅值的情况下调整指针和宽度值。可以看出的是,宽度值与步幅值是无关的,这样则允许在不影响图像步幅的情况下改变图像宽度。由此,在图像被移动(和/或重新调整大小)的时候,图像的存储器空间(例如在存储器108中)是不需要改变的。这意味着所述方法不需要在存储器108中拷贝数据。这与将图像的修剪区域拷贝到新存储器区域的常规图像修剪方法形成了对比。拷贝修剪区域有可能在计算上很复杂,这种处理可能是有害的,特别是当在CPU 106可用的处理资源可能受限的移动设备上实现所述方法的时候。利用这里描述的方法,由于宽度值独立于步幅值,通过改变指针和宽度而保持步幅不变,新的、移动过的图像能够被创建。图像可以由多个图像平面来表示,例如亮度平面(Y)和两个色度平面(U和V)。通过简单地改变指向亮度和色度平面的指针,可以移动输入图像的图像平面以及重新调整该图像平面的大小,由此在保持步幅不变的同时修改图像平面的宽度。图像平面则被移动相·同的量,以便确保可以将移动过的图像平面一起用来表示移动的图像。为了实现这种图像移动处理,图像平面需要相应的指针,也就是说,它们不能全都用同一个指针来表示。此外如上所述,所述图像必须具有独立的宽度和步幅值。图7是移动和修剪处理前后的图像的表示。原始图像是用702表示的,并且经过移动和修剪的图像是用704表示的。可以看出的是,图像的步幅值保持不变,而图像的宽度则被减小。此外,原始指针指向原始图像的左上角像素,而经过调整的指针则指向已被移动和修剪的图像的左上角(其处于与原始图像的左上角像素不同的位置)。通过这种方式,简单地改变宽度值和指针即可移动和修剪所述图像。作为上述方法的总结,在用视频编码器编码视频信号之前,在预处理器中实现了以下阶段来稳定视频信号帧的图像
1.估计摄像机102在帧I与帧2之间的角位移(步骤S306);
2.将所估计的角位移映射到帧2的图像的像素位移(步骤S308);
3.通过将滤波器应用于像素位移序列(或是如上所述的累积像素位移)来移除帧2的图像中的非预期运动(步骤S602);以及
4.通过将图像移动到滤波器计算的位置来创建帧2的稳定图像(步骤604)。用于帧2的所述稳定图像的帧维度等于或小于帧2的原始图像的相应维度。换句话说,视频信号的稳定图像是通过切掉摄像机102捕获的视频信号的原始图像内部的移动边界而被构造的。回过来参考图2,在稳定步骤S208之后,该处理前进至步骤S210。在步骤S210,其中将会考虑在步骤S302中捕获的下一个帧,以便确定设备100是否仍旧在震动。也就是说,摄像机102在两个帧(帧2与帧3)之间的角位移将被确定并映射到像素位移,其中所述像素位移代表摄像机102的运动所导致的视频信号帧的图像中的运动。在上文中已经参考步骤S306和S308对此进行了详细描述。在步骤S210,在由摄像机102的运动所导致的,视频信号帧的图像中经过滤波的运动幅度将会与预定阈值相比较,以便确定设备100是否仍旧在震动。在步骤S210,如果确定设备100仍旧在震动,则该处理返回到步骤S208。在步骤S208,通过将滤波器应用于像素位移序列(或是如上所述的累积像素位移)来移除帧3的图像中的非预期运动,并且通过将图像移动到滤波器计算的位置来创建帧3的稳定的图像,在上文中已经对此进行了详细的描述。一旦执行该操作,那么在设备100上实现的定时器(在图Ib中并未显示)将被复位。在步骤S210,如果确定设备100并未震动,那么该处理前进至步骤S212,在该步骤中将会确定从最后一次复位定时器时开始是否已经经过了一个时段。在步骤S212,如果确定尚未经过该时段,则该处理返回到稳定步骤S208,并且在该步骤中会通过将图像移动到滤波器计算的位置来创建帧3的稳定的图像。
在步骤S212,如果确定已经经过了该时段,那么该处理返回到监视步骤S208,由此不对帧3实现修剪处理。应该了解的是,通过在步骤S206和S210使用超时值(定义上文中所提及的时段)改善了所传送的视频信号的连续性。在步骤S204中用于开启稳定处理的预定阈值是通过将加速度变化与一个阈值相比较(在滤波之后)来计算的。在步骤S210中,用于关闭稳定处理的预定阈值是通过将像素运动矢量与一个像素在每一个方向上的阈值相比较来计算的。应该了解的是,上文描述的阈值和超时可以是特定于实现方式的,取决于传感器数据精确度以及所需要的分辨率变化的复杂度。应该了解的是,上述处理将会持续循环,以便考虑摄像机102捕获的每个帧是否需要稳定。使用以上参考图2描述的处理确保了仅仅在需要的时候启用稳定处理,也就是仅仅在需要的时候才修剪视频信号,由此保持视频信号的最大分辨率。在上述实施例中,运动传感器110是产生代表设备100的旋转运动的采样的陀螺仪。在其他实施例中,运动传感器110可以感测其他类型的运动,例如平移运动,并且可以产生代表设备100的平移运动的采样。这些采样可以采用与上文中结合旋转运动描述的方式相同的方式来稳定视频信号。然而如上所述,对于平移运动来说,像素位移将取决于到图像中的对象的距离,因此,在确定像素位移的时候必须对其进行考虑。举个例子,多个加速度计能够估计旋转运动,并且在这种情况下,所述加速度计可以在不做其他修改的情况下被使用。对于更一般的平移稳定处理来说,由于图像中的不同区域移动了不同的像素总量,因此,实现这里描述的方法可能变得更为困难。然而,如果到对象的距离是恒定(以及已知)的,那么对于平移运动实现所述方法将会是简单的。甚至在到对象的距离不是恒定的(但是仍旧是已知的),也可以对于平移运动实现所述方法,但在确定摄像机102平移运动所导致的像素位移的过程中将会添加额外的复杂度。在稳定了视频信号之后,使用视频编码处理来编码视频信号。举例来说,经过编码的视频信号可被作为针对另一个用户的视频呼叫的一部分或是作为广播信号来传送。由此,对于视频信号来说,很重要的一点是能被实时稳定和编码(也就是在延迟很小的情况下),以便在视频呼叫之类的事件或是其他那些用户对信号延迟的感知非常清楚的通信事件中使用。可替换地,经过编码的视频信号可以保存在设备100上,例如保存在存储器108中。方法步骤S200-S212可以在设备100上以软件或硬件实现。例如,CPU 106可以运行处理部件来实现步骤S200-S212。举个例子,用于稳定视频信号的计算机程序产品可被提供,其中该产品可以保存在存储器108中并由CPU 106运行。所述计算机程序产皮可以被配置成当在CPU 106上运行的时候执行方法步骤S200-S212。可替换地,可以在设备100中实现硬件部件来实现步骤S200-S212。此外 ,虽然参考优选实施例来具体显示和描述本发明,但是本领域技术人员应该理解,在不脱离所附权利要求定义的本发明的范围的情况下,各种形式和细节方面的修改都是可行的。
权利要求
1.一种传送来自用户设备(100)的视频信号的方法,该方法包括 在用户设备(100)上使用摄像机(102,104)来捕获多个视频信号帧; 确定设备(100)的功能状态;以及 在进行传输之前,基于功能状态来有选择地稳定视频信号。
2.权利要求I的方法,其中所述功能状态是摄像机(102,104)的运动程度,该方法包括 监视摄像机(102,104)的运动并且将其与阈值相比较。
3.权利要求2的方法,其中所述监视包括 使用与摄像机(102,104)相关联的运动传感器(110)来产生代表摄像机(102,104)运动的多个采样; 使用这些采样来确定摄像机(102,104)在所述摄像机(102,104)捕获的连续帧之间的位移;以及 确定代表所确定的摄像机(102,104)位移所导致的连续帧之间的视频信号中的运动的像素位移,该方法还包括 将像素位移与阈值进行比较; 如果像素位移超出所述阈值,则在传输之前稳定所述视频信号;以及 否则在不实施稳定处理的情况下传送视频信号, 其中摄像机(102,104)的运动是旋转运动,运动传感器(110)是旋转运动传感器,并且摄像机(102,104)的位移是摄像机(102,104)的角位移。
4.权利要求I的方法,其中用户设备(100)包括前向摄像机(104)和后向摄像机(102),以及功能状态是选择了前向摄像机(104),视频信号在未进行稳定处理的情况下被传送。
5.前述任一权利要求的方法,其中稳定视频信号的处理包括 对像素位移进行滤波;以及 根据已滤波的像素位移来移动第一和第二帧中的至少一个的图像。
6.权利要求5的方法,其中所述对像素位移进行滤波的处理包括 基于所述为第二个帧确定的像素位移来确定累积像素位移;以及 基于为第二个帧确定的累积像素位移与用于第一个帧的已滤波累积像素位移的加权总和来确定用于第二个帧的已滤波累积像素位移。
7.前述任一权利要求的方法,还包括 在下列各项中的至少一项中添加时间偏移,以使所捕获的多个帧的定时与所产生的多个采样的定时相匹配(i)所捕获的多个帧;以及(2)所产生的多个采样。
8.权利要求3到7中任一权利要求的方法,还包括如果像素位移超出所述阈值,则使用定时器来确定是否已经经过了预先确定的时段,并且只有在已经经过了该时段的时候才稳定所述视频信号, 其中该方法还包括如果像素位移没有超出所述阈值,则复位所述定时器。
9.一种用于稳定视频信号的设备(100),该设备(100)包括 被配置成捕获视频信号的多个帧的摄像机(102,104); 用于确定设备(100)的功能状态的装置;以及用于在传输之前基于功能状态来有选择地稳定所述视频信号的装置。
10.一种用于稳定视频信号的计算机程序产品,所述计算机程序产品包含在非暂时性的计算机可读介质中,并且被配置成当在设备(100)的处理器(106)上运行的时候执行权利要求1-8中的任一权利要求的操作。
全文摘要
一种用于传送来自用户设备的视频信号的方法、设备和计算机程序产品。在用户设备上,使用摄像机来捕获多个视频信号帧。设备的功能状态将被确定,并且在传输之前,基于所述功能状态来有选择地稳定所述视频信号。
文档编号H04N5/235GK102957869SQ20121036305
公开日2013年3月6日 申请日期2012年9月26日 优先权日2011年9月26日
发明者C.奥文, P.卡尔森 申请人:斯凯普公司