首页> 中国专利> 基于共同处理元件执行视频稳定化和检测视频镜头边界的技术

基于共同处理元件执行视频稳定化和检测视频镜头边界的技术

摘要

本文公开了用于执行视频稳定化和检测视频镜头边界的设备、系统和方法。所述方法包括:接收视频的当前帧;减小该当前帧;将该减小的当前帧存储到缓冲器的一部分中;确定减小的参考帧中的块与该减小的当前帧中的目标块之间的绝对差和;确定该减小的当前帧的帧间主要运动参数;以及部分地基于绝对差和以及运动参数的至少一个来执行视频稳定化和镜头边界检测的至少一个。

著录项

  • 公开/公告号CN102474568A

    专利类型发明专利

  • 公开/公告日2012-05-23

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200980160949.5

  • 发明设计人 L·徐;Y·邱;Q·黄;

    申请日2009-08-12

  • 分类号H04N5/14;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人姜冰

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 05:17:10

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-02

    未缴年费专利权终止 IPC(主分类):H04N5/14 授权公告日:20150729 终止日期:20180812 申请日:20090812

    专利权的终止

  • 2015-07-29

    授权

    授权

  • 2012-07-04

    实质审查的生效 IPC(主分类):H04N5/14 申请日:20090812

    实质审查的生效

  • 2012-05-23

    公开

    公开

说明书

技术领域

本文中公开的主题一般涉及使用共同处理元件来执行视频稳定化和检测视频镜头(shot)边界的技术。

背景技术

视频稳定化旨在改进数字摄影机(video camera)所捕捉的视频序列的视觉质量。当摄像机(camera)是手持式的或安装在不稳定的平台上时,捕捉的视频能够由于不想要的摄像机运动而显得摇晃,这导致降级的观众体验。视频稳定化技术能够用于消除或减少捕捉的视频帧中不想要的运动。

视频通常由场景组成,并且每个场景包括一个或多个镜头。镜头被定义为在单个连续动作中由单个摄像机捕捉的帧序列。从一个镜头到另一镜头的变化也称为镜头转变,包括两种关键类型:突变(abrupttransition,CUT)和渐变(gradual transition,GT)。视频镜头边界检测旨在检测镜头边界帧。视频镜头边界检测能够在各种应用中被应用,例如视频编码、视频索引、视频检索及视频编辑中的内部帧识别。

附图说明

在图中,本发明的实施例以示例方式而不是以限制方式示出,并且图中,相似的引用标号表示类似的要素。

图1示出根据一实施例的视频稳定化系统的框图格式。

图2示出根据一实施例的帧间主要运动估计模块的框图。

图3提供根据一实施例的为改进视频稳定化而执行的过程的流程图。

图4示出根据一实施例的镜头边界检测系统的框图。

图5提供根据一实施例的镜头边界判定方案的过程。

图6示出根据一实施例的执行视频稳定化和镜头边界检测的系统的框图。

图7示出使用搜索窗口来识别参考帧中匹配块的示例,其中匹配块对应于当前帧中的目标块。

具体实施方式

遍及此说明书对“一个实施例”或“一实施例”的引用指连同该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,遍及此说明书各个位置中出现的“在一个实施例中”或“一实施例”短语不一定全部指相同实施例。此外,特定的特征、结构或特性可在一个或多个实施例中被组合。

图形处理系统可需要支持多个视频处理特征及各种视频编码或解码标准。各种实施例允许图形处理系统支持视频稳定化和视频镜头边界检测特征。具体而言,各种实施例允许图形处理系统为视频稳定化和镜头边界检测使用某些处理能力。在一些实施例中,图形处理系统的下采样和块运动搜索特征用于视频稳定化和视频镜头边界检测。特征的再使用可降低制造图形处理系统的成本,并且也降低图形处理系统的大小。

各种实施例能够根据多种标准来编码或解码视频或静态图像,所述标准例如但不限于:MPEG-4第10部分高级视频编解码器(AVC)/H.264。H.264标准已由联合视频小组(Joint Video Team,JVT)来制定,它包括也称为VCEG(视频编码专家组)的ITU-T SG16 Q.6和称为MPEG(运动图片专家组)的ISO-IEC JTC1/SC29/WG11(2003)。另外,实施例可在多种静态图像或视频压缩系统中被使用,包括但不限于面向对象的视频编码、基于模型的视频编码、可伸缩视频编码及MPEG-2(从瑞士日内瓦的国际标准化组织可得到的ISO/IEC 13818-1(2000))、VCI(从SMPTE White Plains,NY 10601可得到的SMPTE421M(2006))及MPEG-4、MPEG-2和VCl的变型。

图1以框图格式示出根据一实施例的视频稳定化系统100。视频稳定化系统100包括帧间主要运动估计(DME)块102、轨迹(trajectory)计算块104、轨迹平滑块106及抖动补偿块108。帧间DME块102要确定视频序列中两个连续帧之间的摄像机震动。帧间DME块102要识别本地运动向量,并随后基于那些本地运动向量来确定主要运动参数。轨迹计算块104要通过那些确定的主要运动参数来运算运动轨迹。轨迹平滑块106要平滑运算出的运动轨迹以提供更平滑的轨迹。抖动补偿模块108要降低更平滑的轨迹中的抖动。

图2示出根据一实施例的帧间主要运动估计模块200的框图。模块200包括帧下采样块202、参考缓冲器204、块运动搜索块206、迭代最小二乘解答器块208及运动增大(up-scaling)块210。

下采样块202要将输入帧减小(down scale)到更小大小。例如,可使用大约4-5的下采样因子,但能够使用其它值。在一些实施例中,下采样块202提供大约为160x120个像素的更小大小的帧。所得到的减小的帧具有更少数量的块。由于共同处理元件的设计,块可以是8x8、16x16或其它大小。通常,使用16x16块。减小过程还减小块运动向量。在各种实施例中,运动向量表示帧之间的像素、块或图像的垂直和水平位移。减小帧还减小两个帧之间的x和y运动。例如,如果下采样因子是4,并且运动向量是(20,20),则下采样的运动向量将在减小的帧中大约是(5,5)。结果,更小图片上的窗口/区域受限块运动搜索能够包括原始帧上更大的运动。相应地,能够降低用于识别过程块的处理速度和处理资源。

下采样块202要将下采样的帧存储到参考缓冲器204中。参考缓冲器204可以是可用于至少在执行视频稳定化和镜头边界检测中使用的存储器中的区域。该区域可以是缓冲器或缓冲器的一部分。例如,如果该区域是缓冲器的一部分,则相同缓冲器的其它部分能够由其它应用或过程同时或在其它时间来使用。在各种实施例中,为了视频稳定化和镜头边界检测使用了单个参考帧。因此,参考缓冲器的大小能够设为存储一个帧。在参考缓冲器每次更新时,参考帧能够被替代为另一参考帧。

块运动搜索块206要从下采样块202接收下采样的当前帧,并且还要从参考缓冲器204接收下采样的以前参考帧。块运动搜索块206要识别预定义的搜索窗口内选择的块的本地运动向量。例如,识别的运动向量能够是与搜索窗口中相对于当前帧中目标块带有最小绝对差和(SAD)的块相关联的运动向量。搜索窗口中的块可以是宏块或小的块,例如8x8个像素,但其它大小能够被使用。在一些实施例中,块大小是16x16个像素,并且搜索窗口能够设为48x32个像素。在各种实施例中,块运动搜索块206不搜索与帧边界上的块相关联的运动向量。

在一些实施例中,块运动搜索块206要确定对于每个帧的宏块的绝对差和(SAD)。例如,为帧中的每个宏块确定SAD可包括比较参考帧的每个16x16像素宏块和当前帧中的16x16像素宏块。例如,在一些实施例中,能够比较参考帧的48x32像素搜索窗口内的所有宏块和当前帧中的目标16x16像素宏块。能够逐一或以棋盘图案来挑选目标宏块。对于完全搜索,可比较48x32搜索窗口中的所有宏块和目标宏块。因此,能够比较32x16(512)个宏块。当在48x32搜索窗口内移动16x16宏块时,能够有32x16个位置来移动。因此,在此示例中,确定512个SAD。

图7示出使用搜索窗口来识别参考帧中匹配块的示例,其中匹配块对应于当前帧中的目标块。示范块运动搜索可包括以下步骤。

(1)选择当前帧中的多个目标块。假设目标块的坐标是(x_i,y_i),其中,i是块索引。能够逐一来选择当前帧中的目标块。但是,能够使用其它选择技术,例如以棋盘方式选择它们。

(2)对于当前帧中的目标块i,块运动搜索在搜索窗口中用于识别匹配块和获得本地运动向量(mvx_i,mvy_i)。在参考帧中对于目标块i查找搜索窗口中的匹配块能够包括比较参考帧搜索窗口中的所有候选块和目标块,并且带有最小SAD的一个块被认为是匹配块。

(3)在对于块i的块运动搜索后,运算:x′_i=x_i+mvx_i和y′_i=y_i+mvy_i。随后,(x_i,y_i)和(x′_i,y′_i)被视为一对。

(4)在为当前帧中所有选择的目标块执行块运动搜索后,获得多个对(x_i,y_i)和(x′_i,y′_i)。

如图7中所示,对于当前帧中的一个目标块(x,y),48x32搜索窗口在参考帧中被指定,并且搜索窗口的位置能够由(x,y)来定中心。在通过块运动搜索在搜索窗口中查找匹配块后,获得对于目标块的本地运动向量(mvx,mvy)。匹配块的坐标(x′,y′)是x′=x+mvx,y′=y+mvy。随后,(x,y)和(x′,y′)被视为一对。

再次参照图2,迭代最小二乘解答器208要基于至少两个识别的本地运动向量来确定主要运动参数。在一些实施例中,迭代最小二乘解答器208要应用图2中所示的相似性运动模型来近似主要帧间运动参数。相似性运动模型还能够以下面的等式(1)的格式来编写。

>xy=ab-baxy+cd---(1)>

其中:

(x′,y′)表示参考帧中的匹配块坐标,

(x,y)表示当前帧中的块坐标,以及

(a,b,c,d)表示主要运动参数,其中,参数a和b涉及旋转,以及参数c和d涉及转换。

例如,只要一直被使用,块坐标(x′,y′)和(x,y)能够被定义为左上角、右下角或块的块中心。对于其坐标是(x,y)并且识别的本地运动向量(来自块206)是(mvx,mvy)的块,通过x′=x+mvx和y′=y+mvy而获得其匹配块的坐标(x′,y′)。在各种实施例中,帧的所有(x,y)和(x′,y′)对在等式(1)中被使用。迭代最小二乘解答器块208要通过使用最小二乘(LS)技术解等式(1)来确定运动参数(a,b,c,d)。

如果由迭代最小二乘解答器208考虑,则异常(outlier)本地运动向量可不利地影响主要运动的估计。如果从包括前景对象或重复的类似图案的区域来选择当前帧中的一些块,则可由块运动搜索块206来识别异常本地运动向量。在各种实施例中,迭代最小二乘解答器208通过识别和从考虑中去除异常位置运动向量,使用迭代最小二乘(ILS)解答器来降低异常本地运动向量的影响。在此类实施例中,在使用上面的等式(1)确定主要运动参数后,迭代最小二乘解答器208要确定当前帧中每个剩余块位置(xi,yi)的二乘估计误差(SEE)。只要一直被使用,块位置(xi,yi)能够是左上角、右下角或块中心。

SEEi=(axi+byi+c-xi)2+(-bxi+ayi+d-yi)2    (2)

本地运动向量在其对应二乘估计误差(SEE)满足等式(3)时被认为是异常。

>SEEi>T2nΣj=1nSEEj,---(3)>

其中,

T是常数,其能够根据经验设为1.4,但能够使用其它值,以及

n是当前帧中剩余块的数量。

上面的等式(1)-(3)重复进行,直至未检测到异常本地运动向量,或者剩余块的数量小于预定义的阈值数量。例如,阈值数量能够是12,但能够使用其它数量。在等式(1)-(3)的每次迭代中,不考虑检测到的异常运动向量和与异常运动向量相关联的块。相反,考虑与剩余块相关联的运动向量。在从考虑中去除异常本地运动向量后,迭代最小二乘块208执行等式(1)以确定运动参数。

运动增大块210要根据减小块202所应用的下采样因子的逆来增大转换运动参数c和d。由于下采样过程不影响两个帧之间的旋转和缩放运动,因此,参数a和b可不被增大。

再参照图1,轨迹计算块104要确定轨迹。例如,轨迹计算块104要使用如在等式(4)中定义的累积运动来确定帧j的运动轨迹Tj

>Tj=Tj-1MjMj=ajbjcj-bjajdj001,T0=100010001---(4)>

其中,

Mj是帧j与j-1之间的全局运动矩阵,并且基于主要运动参数(a,b,c,d)。主要运动参数(a,b,c,d)在等式(4)中用于当前帧(称为帧j)。

帧间全局运动向量包括摄像机预期运动和摄像机抖动运动。轨迹平滑块106要从帧间全局运动向量来降低摄像机抖动运动。在各种实施例中,轨迹平滑块106要通过使用运动轨迹平滑来降低摄像机抖动运动。运动轨迹的低频分量被识别为摄像机预期移动。在轨迹计算块104确定每个帧的运动轨迹后,轨迹平滑块106要使用例如但不限于高斯滤波器的低通滤波器来增加运动轨迹的平滑度。高斯滤波器窗口能够设置到2n+1帧。滤波过程带来了n帧延迟。实验结果显示,n能够设为5,但能够使用其它值。更平滑的运动轨迹T′j能够使用等式(5)来确定。

>Tj=Σk=-nk=ng(k)·Tj+k---(5)>

其中,g(k)是高斯滤波器核。高斯滤波器是低通滤波器,在指定其变化值δ后,能够运算滤波器系数。在一些实施例中,变化值设为1.5,但它能够设为其它值。更大的变化值可产生更平滑的运动轨迹。

抖动补偿块108要补偿未平滑的原始轨迹中的抖动。摄像机抖动运动是轨迹的高频分量。轨迹的高频分量是原始轨迹与平滑的轨迹之间的差别。抖动补偿块108要补偿高频分量并提供更稳定化的当前帧。例如,通过借助于抖动运动参数来扭曲(warp)当前帧F(j),可获得当前帧的更稳定化的帧表示,帧F′(j)。

在执行第j个当前帧F(j)的轨迹平滑后,T(j)与T′(j)之间的运动差别(在等式4和5中示出)被认为是抖动运动。抖动运动能够由抖动运动参数(a′,b′,c′,d′)来表示。下述内容描述从T(j)与T′(j)之间的差别来确定(a′,b′,c′,d′)的方式。假设T(j)的抖动运动参数是(a1,b1,c1,d1),并且T′(j)的平滑的抖动运动参数是(a2,b2,c2,d2)。设置θ1=arctan(b1/a1),以及θ2=arctan(b2/a2),抖动运动参数被确定如下:

a’=cos(θ1-θ2),b’=sin(θ1-θ2),c’=c1-c2,d’=d1-d2。

示范扭曲过程如下所述。

(1)对于位于更稳定化帧F′(j)中(x,y)的任何像素,像素值表示为F′(x,y,j)。

(2)当前帧F(j)中的对应位置(x′,y′)被确定为x′=a′*x+b′*y+c′,y′=-b′*x+a′*y+d′。

(3)如果x′和y′是整数,则设置F′(x,y,j)=F(x′,y′,j)。否则,使用位置(x′,y′)周围的F(j)中的像素,通过双线性插值来运算F′(x,y,j)。

(4)如果(x′,y′)在当前帧F(j)外,则设置F′(x,y,j)到黑像素。

图3提供根据一实施例的改进视频稳定化的过程的流程图。块302包括执行帧大小减小。例如,有关下采样块202所述的技术可用于执行帧大小减小。

块34包括执行块运动搜索以识别两个或更多本地运动向量。例如,有关块运动搜索块206所述的技术可用于识别一个或多个本地运动向量。

块306包括确定主要运动参数。例如,有关迭代最小二乘块208所述的技术可用于确定主要运动参数。

块308包括增大主要运动参数。例如,有关增大块210所述的技术可用于增大主要运动参数。

块310包括确定轨迹。例如,有关轨迹计算块104所述的技术可用于确定轨迹。

块312包括改进轨迹平滑度。例如,有关轨迹平滑块106所述的技术可用于执行轨迹平滑。

块314包括通过扭曲当前帧以提供当前帧的更稳定版本而执行抖动补偿。例如,有关抖动补偿块108所述的技术可用于降低抖动。

图4示出根据一实施例的镜头边界检测系统的框图。在各种实施例中,来自视频稳定化系统100使用的帧间主要运动估计块102的一些结果也由镜头边界检测系统400使用。例如,能够在视频稳定化和镜头边界检测之一或两者中使用从下采样块202、参考缓冲器204和块运动搜索块206的任意之一可得到的相同信息。在一些实施例中,镜头边界检测系统400检测突然场景转变(即,CUT场景)。镜头边界判定块402要确定帧是否是场景改变帧。例如,镜头边界判定块402可使用有关图5所述的过程来确定当前帧是否是场景改变帧。

图5提供根据一实施例的镜头边界判定方案的过程。块502和504大致类似于相应块302和304。

块506包括确定对于当前帧的平均绝对差和(SAD)。注意,当前帧是减小的帧。例如,块506可包括从块运动搜索块206接收对于当前帧中每个宏块的SAD,并且确定当前帧中所有宏块的SAD的平均值。

块508包括确定平均SAD是否小于阈值T0。T0能够根据经验对16x16块设为大约1600,但能够使用其它值。如果平均SAD小于阈值,则帧不是镜头边界帧。如果平均SAD不小于阈值,则块510跟随块508。

块510包括确定SAD大于阈值T1的块的数量。阈值T1能够根据经验设为平均SAD的4倍,但能够使用其它值。

块512包括确定SAD大于阈值T1的块的数量是否小于另一阈值T2。阈值T2能够根据经验设为帧中目标块的总数的三分之二,但能够使用T2的其它值。如果SAD大于阈值T1的块的数量小于阈值T2,则当前帧不被认为是镜头边界帧。如果块的数量等于或大于阈值T2,则当前帧被认为是镜头边界帧。

图6示出根据一实施例的要执行视频稳定化和镜头边界检测的系统的框图。在各种实施例中,帧下采样和块运动搜索操作在硬件中实现。帧下采样和块运动搜索操作由视频稳定化和镜头边界检测两个应用来共享。在各种实施例中,对于视频稳定化(VS),轨迹计算、轨迹平滑、抖动运动确定及抖动补偿操作在处理器运行的软件中执行。在各种实施例中,镜头边界检测(SBD)在处理器运行的软件中执行,其中镜头边界检测使用来自硬件实现的帧下采样和块运动搜索操作的结果。其它视频或图像处理技术能够利用下采样或块运动搜索所提供的结果。

处理的图像和视频能够存储到任何类型的存储器中,例如基于晶体管的存储器或磁存储器。

帧缓冲器可以是存储器中的区域。存储器能够实现为易失性存储器装置,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)或其它类型的基于半导体的存储器或磁存储器,例如磁存储装置。

在设计带有例如视频编码、解交织、超分辨率、帧率转换等等多视频处理特征的媒体处理器时,硬件再使用能够是节约成本和降低形状因素(form factor)的十分有效的方式。各种实施例大大降低了在相同媒体处理器上实现视频稳定化和视频镜头边界检测特征的复杂性,特别是在媒体处理器已支持块运动估计功能时。

本文中所述的图形和/或视频处理技术可在各种硬件架构中实现。例如,图形和/或视频功能性可集成在芯片组内。备选的是,可使用离散图形和/或视频处理器。作为仍有的另一实施例,图形和/或视频功能可由包括多核处理器的通用处理器来实现。在又一实施例中,功能可在例如带有能够显示静态图像或视频的显示装置的便携式计算机和移动电话的消费者电子装置中实现。消费者电子装置还可包括能够使用例如以太网(例如,IEEE 802.3)或无线标准(例如,IEEE 802.11或16)的任何标准而连接到例如因特网的任何网络的网络接口。

本发明的实施例可实现为以下任意之一或其组合:使用母板互连的一个或多个微芯片或集成电路、硬件逻辑、由存储器装置存储并且由微处理器运行的软件、固件、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。术语“逻辑”可包括(作为示例)软件或硬件和/或软件和硬件的组合。

本发明的实施例例如可提供为计算机程序产品,所述计算机程序产品可包括其上存储有一个或多个机器可运行指令的一个或多个机器可读媒体,所述指令在由例如计算机、计算机的网络或其它电子装置的一个或多个机器运行时,可促使所述一个或多个机器实行根据本发明的实施例的操作。机器可读媒体可包括但不限于软盘、光盘、CD-ROM(紧致盘只读存储器)、磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光学卡、闪速存储器和/或适用于存储机器可运行指令的其它类型的媒体/机器可读媒体。

图和上面的描述给出了本发明的示例。虽然示为多个全异的功能项目,但本领域技术人员将领会到,一个或多个此类要素可很好地组合成单个功能要素。备选的是,某些要素可分割成多个功能要素。来自一个实施例的要素可添加到另一实施例。例如,本文中所述过程的顺序可被改变并且不限于本文中所述的方式。另外,任何流程图的动作无需以所示顺序来实现;所有动作也不一定要被执行。此外,不依赖其它动作的那些动作可与所述其它动作并行来执行。然而本发明的范围决不受限于这些特定示例。许多变化是可能,而无论是否在说明书中明确给出,例如结构、维度和材料使用中的差别。本发明的范围至少与随附权利要求所给出的一样广。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号