CN101877786B - 一种视频帧前景跟踪方法以及视频编码器 - Google Patents
一种视频帧前景跟踪方法以及视频编码器 Download PDFInfo
- Publication number
- CN101877786B CN101877786B CN 200910083412 CN200910083412A CN101877786B CN 101877786 B CN101877786 B CN 101877786B CN 200910083412 CN200910083412 CN 200910083412 CN 200910083412 A CN200910083412 A CN 200910083412A CN 101877786 B CN101877786 B CN 101877786B
- Authority
- CN
- China
- Prior art keywords
- macro block
- foreground
- track vector
- frame
- candidate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种视频帧前景跟踪方法以及视频编码器,该方法包括:利用视频编码运动估计生成的中间数据进行与码率无关的运动估计,以确定出当前帧中各宏块的轨迹矢量;将当前帧中各宏块按照各自轨迹矢量映射到前向参考帧,根据各宏块落入前向参考帧的前景区域内的像素数量,确定出当前帧中的候选前景宏块;根据候选前景宏块落入前向参考帧前景区域内的像素数量,确定出当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量;将候选前景宏块按照所述主要轨迹矢量映射到前向参考帧,根据所述候选前景宏块落入该前向参考帧前景区域的像素总数量与该前景区域像素总数量的比值,采用相应方式定位出当前帧中的前景区域。
Description
技术领域
本发明涉及通信领域中的视频编码技术,尤其涉及一种视频帧前景跟踪方法以及视频编码器。
背景技术
近年来,随着视频系统在各个领域的广泛应用,各种编码优化的技术都在快速发展。其中,针对视频主观含义而有针对性地进行编码优化的技术更是越来越受到学术界和产业界的关注。这类技术通常根据视频的主观含义将画面划分为背景区域和若干前景区域(前景区域,又称为感兴趣区域,即观众主观上对该视频画面更感兴趣的区域,在视频互动系统中通常将人脸区域为前景区域),并通过划分前景、背景区域,再结合编码技术以达到在码率一定的情况下,用户欣赏视频的主管质量提高的优化目的。
由于精确的前景区划分过程和视频编码过程计算量都较大因而比较耗时,所以如果对每一帧都进行计算量较大的前景区划分,就会导致视频编码的实时性不能得到有效的满足。
利用视频相邻帧之间具有相关性的特点,现有技术提供了前景跟踪方法,该方法通过对参考帧中提取的前景进行跟踪,以预测前景在当前帧中的位置,这样可以减少前景区划分的计算量,尤其对于镜头切换较少的视频场景(如视频聊天场景或视频互动场景等),前景跟踪的效率将有效提高。
但是,该前景跟踪方法需要对若干帧图像的前景的运动轨迹建模,从而通过构建的前景运动轨迹模型进行前景的跟踪,而建模过程计算量大,所建模型也较为复杂而不易实现,因此,导致前景跟踪过程的开销较大,以致降低前景的跟踪效率,进而影响视频编码的实时性。
发明内容
本发明实施例提供了一种视频帧前景跟踪方法以及视频编码器,以提高视频帧前景跟踪的效率,进而提高视频编码的实时性。
本发明实施例提供的视频帧前景跟踪方法,包括:
利用视频编码运动估计生成的中间数据进行与码率无关的运动估计,以确定出当前帧中各宏块的轨迹矢量;
将当前帧中各宏块按照各自轨迹矢量映射到当前帧的前向参考帧,根据各宏块落入所述前向参考帧的前景区域内的像素数量,确定出当前帧中的候选前景宏块;
根据所述候选前景宏块落入所述前向参考帧前景区域内的像素数量,确定出当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量;
将所述候选前景宏块按照所述主要轨迹矢量映射到所述前向参考帧,根据所述候选前景宏块落入该前向参考帧前景区域的像素总数量与该前景区域像素总数量的比值,采用相应方式定位出当前帧中的前景区域。
本发明实施例提供的视频编码器,包括:运动估计模块和编码模块,还包括:
第一轨迹矢量确定模块,用于利用视频编码运动估计生成的中间数据进行与码率无关的运动估计,以确定出当前帧中各宏块的轨迹矢量;
候选前景宏块确定模块,用于将当前帧中各宏块按照各自轨迹矢量映射到当前帧的前向参考帧,根据各宏块落入所述前向参考帧的前景区域内的像素数量,确定出当前帧中的候选前景宏块;
第二轨迹矢量确定模块,用于根据所述候选前景宏块落入所述前向参考帧前景区域内的像素数量,确定出当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量;
前景区域定位模块,用于将所述候选前景宏块按照所述主要轨迹矢量映射到所述前向参考帧,根据所述候选前景宏块落入该前向参考帧前景区域的像素总数量与该前景区域像素总数量的比值,采用相应方式定位出当前帧中的前景区域;
所述编码模块,用于根据划分出的前景区域对当前帧进行视频编码。
本发明的上述实施例,利用视频编码运动估计生成的中间数据进行与码率无关的运动估计,以确定出当前帧中各宏块的轨迹矢量,并根据确定出的轨迹矢量将当前帧的各宏块映射到其前向参考帧中,从而确定出当前帧的候选前景宏块以及当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量,然后根据该主要轨迹矢量将当前帧的候选宏块映射到其前向参考帧中,从而根据落入前景区域的像素数与前景区域的像素数的比值,确定出前景运动模式,并根据相应的运动模式采用相应方法定位出当前帧的前景区域。一方面,由于前景跟踪过程利用了视频编码运动估计时所生成的中间数据而不用为前景跟踪创建运动模型,从而减少了前景跟踪过程的开销,提高了前景的跟踪效率,进而提高了视频编码的实时性;另一方面,由于候选前景宏块按照所述主要轨迹矢量映射到所述前向参考帧后落入该前向参考帧前景区域的像素总数量与该前景区域像素总数量的比值通常能够反映出前景的运动模式,因此根据该比值采用相应的方式定位出当前帧中的前景区域,就能够针对前景的不同运动模式,实施不同的前景定位策略,从而减少了前景定位的计算量和开销。
附图说明
图1为本发明实施例提供的视频编码器的结构示意图;
图2为本发明实施例提供的视频前景跟踪流程以及编码流程示意图;
图3A、图3B和图3C为本发明实施例中的宏块映射示意图。
具体实施方式
该方法和视频编码器利用运动估计时所生成的中间参数进行与码率无关的运动轨迹估计,然后利用估计出的运动轨迹判断当前帧中的前景相对于其前向参考帧的运动模式,再采用相应的定位方法定位出当前帧的前景区域。由于利用了视频编码运动估计时所生成的中间参数而不用为前景跟踪创建运动模型,从而减少了前景跟踪过程的开销,提高了前景的跟踪效率,进而提高了视频编码的实时性。
下面结合附图对本发明实施例进行详细描述。
本发明实施例提供了一种视频编码器100,视频编码器100利用当前帧的前向参考帧对该参考帧中的前景进行跟踪,从而确定出当前帧的前景区域,并根据确定出的前景区域对当前帧进行视频编码,输出适用于网络传输的视频数据。
参见图1,为本发明实施例提供的视频编码器100的结构示意图,该视频编码器符合H.264视频编码标准,该视频编码器主要包括:运动估计模块101、第一轨迹矢量确定模块102、候选前景宏块确定模块103、第二轨迹矢量确定模块104、前景区域定位模块105和编码模块106。
采用视频编码器100进行视频编码处理时,如果当前待编码的帧是I帧,因其没有参考帧,需要用帧内模式进行预测编码,所以直接通过前景区域定位模块105对该I帧进行全帧的前景划分,从而确定出前景区域内的编码宏块和背景区域内的编码宏块,然后结合运动估计模块101的运动估计结果由编码模块106进行编码处理。其中,全帧的前景划分方法有多种,本发明实施例可采用现有的全帧前景划分方式划分出前景和背景区域;编码模块106的编码策略可包括:对前景区域和背景区域的宏块采用相同的码率或量化步长进行编码,或者,采用不同的码率或量化步长进行编码。
如果当前待编码的视频帧是P帧或B帧,则需要从该P帧或B帧的参考帧的前景区域预测出该P帧或B帧的前景区域,然后再根据编码策略进行编码。P帧只有前向参考帧,因此P帧的参考帧为其前向的视频帧(如I帧或P帧);B帧具有前向和后向参考帧,本发明实施例中,使用B帧的前向参考帧(如I帧或P帧)进行前景跟踪。视频编码器100中各模块的主要功能,包括:
运动估计模块101,用于进行视频编码运动估计,以确定合适的编码模式;
第一轨迹矢量确定模块102,用于利用运动估计模块101在视频编码运动估计中生成的中间参数进行与码率无关的运动估计,从而确定出当前帧中各宏块的轨迹矢量;
候选前景宏块确定模块103,用于根据第一轨迹矢量确定模块102所确定出的各宏块的轨迹矢量,将当前帧的宏块映射到当前帧的参考帧中,从而确定出当前帧中的候选前景宏块;
第二轨迹矢量确定模块104,用于根据当前帧中的各候选前景宏块映射到参考帧后其像素落入参考帧前景区域的情况,确定出当前帧的前景相对于其参考帧的前景的主要轨迹矢量;
前景区域定位模块105,用于根据该主要轨迹矢量,将当前帧中的候选前景宏块映射到参考帧,并根据各宏块的像素落入该参考帧前景区域内的总数量与前景区域内像素总数量的比例,确定出前景运动模式;以及,根据确定出的前景运动模式采用相应的方法定位出当前帧中的前景区域;
编码模块106,用于根据划分出的前景区域对当前帧进行视频编码。
由于本发明实施例涉及到H.264视频编码标准中的运动估计,以下对H.264标准中规定的运动估计原理简要描述:
在H.264标准中,对于每个16×16大小的编码宏块在运动估计时可以以16×16、16×8、8×16和8×8块模式进行编码,当采用8×8的块模式编码时,可进一步将8×8的宏块划分为8×4、4×8和4×4的亚宏块进行编码,即总共可有7种块模式。H.264标准中采用率失真优化准则来评价上述块模式中每种模式的代价,代价评价函数如下式:
Jmotion=SAD(s,c(ref,mv))+λmotion(R)………………………………(1)
其中,s表示当前块像素值;ref表示参考帧;mv=(mvx,mvy)为运动矢量,表示当前帧的宏块相对于参考帧的运动;c(ref,mv)表示在运动矢量mv和参考帧ref下的重构视频信号;λmotion为拉格朗日乘子,是常数;R包括运动矢量与其预测值的差值编码比特及分块所需编码比特;SAD表示原始信号与参考帧对应位置重构信号之间差异的绝对值和,SAD的表达式如下所示:
其中,block表示运动估计的宏块区域。
符合H.264标准的视频编码器对当前帧搜索区域内的每个16×16宏块分别采用上述各种块模式进行运动估计,以便在搜索区域内找到每个16×16编码宏块的一个最合适的块模式,该最合适的块模式满足:相对于参考帧运动矢量mv使得Jmotion的值最小,这样的块模式可使得失真SAD和码率R达到最优。
下面结合图2,对视频帧前景跟踪过程以及根据跟踪结果进行视频编码的过程进行详细描述。在该流程中,当前待编码的视频帧20(即当前帧)为P帧,视频帧20的参考帧为视频帧10。
如图2所示,视频编码器100通过对参考帧(视频帧10)的前景进行跟踪确定出当前帧(视频帧20)的前景,并根据跟踪结果对视频帧20进行编码的流程,包括:
步骤201、第一轨迹矢量确定模块102利用运动估计模块101在运动估计中产生的中间值,确定出视频帧10中各宏块各自相对于视频帧20的轨迹矢量。
该步骤利用H.264视频编码标准中规定的运动估计所产生的中间值,确定出视频帧10中各宏块各自相对于视频帧20的轨迹矢量。这里所说的轨迹矢量可描述视频帧10中每个宏块相对于视频帧20的轨迹变化,该轨迹矢量与H.264视频编码标准运动估计中的运动矢量的不同之处在于:轨迹矢量的确定过程中没有考虑码率因素,而确定运动矢量时则需要考虑码率因素。本发明实施例中所定义的运动轨迹代价函数如下所示:
JROI=SAD16×16(s,c(ref,tv))………………………………(3)
其中,16×16代表的是采用16×16的分块模式进行运动估计,即仅比较16×16分块模式的代价;s表示当前宏块像素值;ref表示参考帧;tv=(tvx,tvy)为轨迹矢量,表示当前帧的宏块相对于参考帧的运动;c(ref,tv)表示在轨迹矢量tv和参考帧ref下的重构视频信号。
将式(3)和式(1)进行比较可以看出,JROI是Jmotion中的一个分量,即在编码的运动估计中,对各种分块模式计算Jmotion的时候就已经计算出了JROI,这样,该步骤中不用单独计算JROI的值,只需在运动估计过程中计算16×16分块模式Jmotion值的时候记录每个16×16分块的JROI值。对于当前帧的每一个16×16宏块,分别找到使得JROI最小的轨迹矢量tv,用该tv来描述当前帧每个16×16宏块相对于参考帧的轨迹变化。通过将式(3)和式(1)进行比较还可以看出,式(1)中包含与码率R相关的分量λmotion(R),而式(3)中不包括与码率R相关的分量,也就是说,在确定运动矢量mv时需要考虑码率因素,而在确定轨迹矢量tv时不需考虑码率因素。
步骤202、候选前景宏块确定模块103根据第一轨迹矢量确定模块102确定出的视频帧20中各宏块的轨迹矢量,确定出视频帧20中的哪些宏块是从视频帧10的前景区域运动过来的,并将这些确定出的宏块作为视频帧20的候选前景宏块。
该步骤中,候选前景宏块确定模块103对于视频帧20中的每一个16×16宏块执行以下操作:根据该宏块的轨迹矢量将该宏块映射到视频帧10中,并统计将该宏块映射到视频帧10后,其所包含的像素中落入视频帧10前景区域内的数量占该宏块总像素数量(16×16)的比值,如果该比值超过设定的比值,则认为该宏块是从视频帧10中的前景区域运动到视频帧20的;否则,该宏块不是从视频帧10的前景区域运动过来的。由于各16×16宏块的像素数量是一致的,因此上述将宏块映射到视频帧10后所统计的数值也可以是该宏块所包含的像素中落入视频帧10前景区域内的数量,同理,如果统计出的数量超过设定数量阈值,则认为该宏块是从视频帧10中的前景区域运动到视频帧20的。将视频帧20中的第i个宏块表示为MBi,则通过以下公式可判断该宏块是否是从视频帧10运动过来的:
即,如果MBi=1,则表示该宏块是从视频帧10的前景区域运动过来的;如果MBi=0,则表示该宏块不是从视频帧10的前景区域运动过来的。式(4)中,(tvx i,tvy i)表示MBi的轨迹矢量tvi;sum()表示集合的大小,即映射后该宏块中的像素落在视频帧10前景区域内的数量(落在视频帧10前景区域内的像素表示为 τ为设定的域值,是常数。通常τ的取值不小于0.5,如果取值为0.5,即表示如果一半以上的像素落在视频帧10的前景区域内,则可以认为MBi是从视频帧10的前景区域运动过来的。
步骤203、第二轨迹矢量确定模块104根据候选前景宏块确定模块103确定出的视频帧20中各候选前景宏块的轨迹矢量,确定出视频帧20的前景相对于视频帧10的前景的主要运动方向以及主要轨迹矢量。
该步骤中,第二轨迹矢量确定模块104首先分别将视频帧20中的每个候选前景宏块映射到视频帧10后,分别统计各宏块中的像素落入视频帧10的前景区域内的数量,取其中最大数值并确定出该数值所对应的宏块,然后根据该宏块的轨迹矢量确定出该宏块的运动方向,并将该运动方向作为视频帧20的前景相对于视频帧10的主要运动方向。令MBi表示第i个候选前景宏块,则视频帧20的前景相对于视频帧10的前景的主要运动方向可通过如下公式确定:
其中,gref表示落入视频帧10的前景区域内的像素;Dpix(i) d(i)表示在以MBi的运动方向为基础的可容忍的角度范围内([d(i)-Δ,d(i)+Δ])取多个离散角度值,分别以各离散角度将MBi映射到视频帧10,并将以各离散角度映射后该宏块中的像素落入视频帧10的前景区域内的数量进行累加,其中,d(i)表示MBi的运动方向,其取值在离散化[-П/2,П/2]之间,Δ表示误差容忍值,如Δ可以取0.1,Δ取0时表示不考虑设误差,即仅统计按照将MBi映射到视频帧10后落入视频帧10的前景区域内的像素数量;max()表示从各宏块的Dpix(i) d(i)中取最大值,Dmax即为取得的最大值。这样,Dmax所对应的宏块的运动方向 (该宏块的运动矢量为(tvx D,tvy D))即为视频帧20的前景相对于视频帧10的前景的主要运动方向,该宏块的轨迹矢量 即为视频帧20的前景相对于视频帧10的前景的主要轨迹矢量。
对于有多个宏块映射到视频帧10后,这些宏块的像素都落入视频帧10的前景区域的情况,如果在这些宏块的轨迹矢量方向中,有一轨迹矢量方向所对应的宏块数量最多,则可取该方向为Dtan;如果在这些宏块的轨迹矢量方向中,各轨迹矢量方向分别对应的宏块的数量较为平均,则可取这些方向中的中间值或接近中间的方向作为Dtan。
第二轨迹矢量确定模块104还可以通过以下方式确定主要轨迹矢量:
根据候选前景宏块的轨迹矢量,从其对应的轨迹矢量方向中确定出一个轨迹矢量方向,该轨迹矢量方向或以该方向为基础的误差容忍范围所对应的宏块数量多于具有其他轨迹矢量方向所对应的宏块数量;分别统计具有该轨迹矢量方向的宏块根据各自的轨迹矢量映射到视频帧10的前景区域后落入该帧前景区域内的像素的数量,取其中的最大值,确定该最大值所对应的宏块,并将该宏块的轨迹矢量作为视频帧20的前景相对于视频帧10的前景的主要运动方向以及主要轨迹矢量。
步骤204、前景区域定位模块105根据第二轨迹矢量确定模块104确定出的视频帧20的前景相对与其参考帧的前景的主要运动方向 将视频帧20中所有运动方向为或属于 范围的候选前景宏块分别以主要轨迹矢量 映射到视频帧10中,并统计被映射的各宏块的像素落入到视频帧10的前景区域内的数量之和,然后将该数量之和与视频帧10的前景区域内的所有像素数量之和进行对比得到比值κ,并根据该κ值参照前景运动模式反应在前后帧像素的变化规律,确定出视频帧20的前景的运动模式,以及根据确定出的运动模式采用相应方式定位出视频帧20中的前景区域。
步骤205、前景区域定位模块104划分出视频帧20的前景区域后,编码模块105按照编码策略对视频帧20进行编码处理,从而得到适合于网络传输的视频数据。
上述流程的步骤104中,比值κ可表示为:
式(6)中,Dpix表示所有运动方向为 或所有运动方向在 范围的候选前景宏块映射到视频帧10后落入到视频帧10的前景区域内的像素数量之和,gref表示视频帧10的前景区域内的所有像素数量之和。
通常,如果前景做平面运动(如垂直、水平或沿某角度进行平面运动),则将后帧中的前景按照其主要运动方向映射到前帧中时,其大部分像素会落入到前帧的前景区域;如果前景做转向、放大或缩小等运动,则将后帧中的前景按照其主要运动方向映射到前帧中时,将会有一定比例的像素落入到前帧的前景区域;如果前景所做的运动较大或较为复杂,则将后帧中的前景按照其主要运动方向映射到前帧中时,将会有很少比例的像素或没有像素落入到前帧的前景区域。参照此规律,本发明实施例中使用2个阈值κ1,κ2(0<κ1<κ2<1)将κ的可能取值区域划分为3个区间,以对应定位前景区域的3种不同方式,具体包括:
步骤2041、如果κ>κ1(0<κ1<κ),则认为相对于参考帧,前景进行平面运动,此时,可根据主要轨迹矢量 直接将视频帧10中前景区域中的像素gref映射到视频帧20中,从而得到视频帧20的前景区域内的像素g,即
步骤2042、如果κ2<κ≤κ1(κ2>0),则认为相对于参考帧,前景进行转向、放大或缩小等运动,此时,框住视频帧20中运动方向与主要运动方向Dtan一致或运动方向在[Dtan-Δ,Dtan+Δ]范围内的候选前景宏块的最大连通区域(与Dtan方向一致或在上述方向范围内的候选前景宏块的数量可能为多个,所以取这些宏块的最大连通区域),以及视频帧10中的前景区域在视频帧20中的相应区域,从而在当前帧内得到一矩形区域,将该矩形区域作为视频帧20前景划分所需的搜索区域。较佳地,为了使搜索区域在包括前景区域的情况下尽量小,可对上述连通区域和视频帧10中的前景区域在视频帧20中的相应区域进行取并操作,以形成矩形搜索区域。然后,根据前景划分算法并依据该搜索区域划分出前景区域,得到视频帧20中的前景区域内的像素值g(x,y),并可将前景区域外的像素g(x,y)置为0。
步骤2043、如果κ≤κ2,则认为相对于参考帧,前景变化过大,此时,对视频帧20进行全帧图像的前景划分,以得到视频帧20中前景区域内的像素g(x,y)。
较佳地,κ1可以取0.5,即参考帧的前景区域内有一半以上的像素向着主要运动方向Dtan运动,则认为是前景在进行水平运动;κ2可以取0.3,即参考帧的前景区域内有30%至50%的像素向着主要运动方向Dtan运动,则认为前景在进行转向、放大或缩小等运动;如果,参考帧的前景区域内有少于30%的像素向着主要运动方向Dtan运动,则认为前景的运动变化过大,则需要进行全帧的前景划分。
图3A、图3B和图3C对应给出了上述三种前景运动情况下,前景区域宏块在参考帧和当前帧中的示意,其中,图3A描述的是前景做平面运动的情况,图3B描述的是前景做缩放等运动的情况,图3C描述的是前景变化较大的情况。
如图3A所示,当前帧中有宏块1′、宏块2′、宏块3′和宏块4′,通过轨迹矢量计算得到各宏块的轨迹矢量分别是tv1、tv2、tv3和tv4,根据各宏块的轨迹矢量分别将宏块1′、宏块2′、宏块3′和宏块4′映射到参考帧,映射后的宏块在参考帧中表示为宏块1、宏块2、宏块3和宏块4;由于映射后各宏块的像素基本落入前景区域中(参考帧中阴影部分),所以当前帧中的宏块1′、宏块2′、宏块3′和宏块4′为候选前景宏块;又由于宏块1、宏块2、宏块3的像素全部落入前景区域中,因此tv1、tv2、tv3的方向为同方向,可将该方向确定为当前帧的前景相对于参考帧的前景的主要运动方向,而tv1、tv2或tv3即为主要轨迹矢量;按照该主要轨迹矢量将宏块1′、宏块2′、宏块3′和宏块4′分别映射到参考帧后,这些宏块中落入前景区域的像素数量将超过50%,从而表明前景基本上是沿主要运动方向做平面运动;此时,可直接按照主要轨迹矢量将参考帧中前景区域中的像素映射到当前帧中,从而得到当前帧的前景区域(当前帧中的阴影部分)。
如图3B所示,当前帧中有宏块1′、宏块2′、宏块3′和宏块4′,通过轨迹矢量计算得到各宏块的轨迹矢量分别是tv1、tv2、tv3和tv4,根据各宏块的轨迹矢量分别将宏块1′、宏块2′、宏块3′和宏块4′映射到参考帧,映射后的宏块在参考帧中表示为宏块1、宏块2、宏块3和宏块4;由于映射后各宏块的像素均有一半以上落入前景区域中(参考帧中阴影部分),所以当前帧中的宏块1′、宏块2′、宏块3′和宏块4′为候选前景宏块;又由于宏块4的像素全部落入前景区域中,因此tv4的方向为当前帧的前景相对于参考帧的前景的主要运动方向,而tv4即为主要轨迹矢量;按照该主要轨迹矢量将宏块1′、宏块2′、宏块3′和宏块4′分别映射到参考帧后,这些宏块中落入前景区域的像素数量在30%到50%之间,表明前景基本上做旋转运动;此时,将当前帧中的宏块4与参考帧中的前景区域取并,得到的矩形区域作为当前帧的前景划分所需的搜索区域(如当前帧中的阴影部分),从而根据前景划分算法并依据该搜索区域划分出前景区域,得到当前帧的前景区域。
如图3C所示,当前帧中有宏块1′、宏块2′、宏块3′和宏块4′,通过轨迹矢量计算得到各宏块的轨迹矢量分别是tv1、tv2、tv3和tv4,根据各宏块的轨迹矢量分别将宏块1′、宏块2′、宏块3′和宏块4′映射到参考帧,映射后的宏块在参考帧中表示为宏块1、宏块2、宏块3和宏块4;由于映射后各宏块的像素均有一半以上落入前景区域中(参考帧中阴影部分),所以当前帧中的宏块1′、宏块2′、宏块3′和宏块4′为候选前景宏块;又由于宏块4的像素落入前景区域的数量最多,因此tv4的方向为当前帧的前景相对于参考帧的前景的主要运动方向,而tv4即为主要轨迹矢量;按照该主要轨迹矢量将宏块1′、宏块2′、宏块3′和宏块4′分别映射到参考帧后,这些宏块中落入前景区域的像素数量少于30%,从而表明前景的运动过大;此时,对当前帧进行全帧的前景划分。
综上所述,本发明上述实施例提供的前景跟踪流程和视频编码器100利用视频编码中运动估计与前景区域的定位具有的相关性,将前景跟踪过程与编码过程相结合,利用视频编码模式决策时运动估计所得到的临时编码参数进行前景的跟踪,从而不用为前景跟踪创建运动模型,几乎没有正常编码外的额外时间消耗,减少了前景跟踪过程的开销,提高了前景的跟踪效率,进而提高了视频编码的实时性。另外,如果前景区域进行横向或纵向等平面运动时,则直接通过前景跟踪结果定位当前帧的前景区域;如果前景区域进行转向、放大或缩小等运动时,则通过前景跟踪结果圈定当前帧的局部区域,并在该局部区域内进行精确地前景划分;如果前景因为遮挡或镜头切换等原因变化较大(如前景失去)时,则进行对全帧图像的前景划分,从而针对前景的不同运动情况,实施不同的前景定位策略,一方面减少了前景定位的计算量和开销,另一方面可尽量避免跟踪失效时前景丢失,以及提高前景定位的精确性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种视频帧前景跟踪方法,其特征在于,包括以下步骤:
利用视频编码运动估计生成的中间数据进行与码率无关的运动估计,以确定出当前帧中各宏块的轨迹矢量,其中,所述中间数据为运动估计中生成的16×16块模式下的Jmotion中与码率无关的分量,所述分量为原始信号与所述当前帧的前向参考帧对应位置重构信号之间差异的绝对值之和SAD;所述轨迹矢量为所述前向参考帧中每个宏块相对于当前帧的轨迹变化;
将当前帧中各宏块按照各自轨迹矢量映射到所述前向参考帧,根据各宏块落入所述前向参考帧的前景区域内的像素数量,确定出当前帧中的候选前景宏块;
根据所述候选前景宏块落入所述前向参考帧前景区域内的像素数量,将一个候选前景宏块的轨迹矢量确定为当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量;
将所述候选前景宏块按照所述主要轨迹矢量映射到所述前向参考帧,根据所述候选前景宏块落入该前向参考帧前景区域的像素总数量与该前景区域像素总数量的比值与设定阈值的比较结果,定位出当前帧中的前景区域。
2.如权利要求1所述的方法,其特征在于,所述确定当前帧中各宏块的轨迹矢量,具体为:针对当前帧中的每个宏块,根据该宏块对应的最小SAD进行运动估计,以确定出该宏块的轨迹矢量。
3.如权利要求1所述的方法,其特征在于,根据各宏块落入所述前向参考帧的前景区域内的像素数量,确定出当前帧中的候选前景宏块,包括:
将当前帧中的各候选前景宏块分别按照各自轨迹矢量映射到参考帧后,分别统计各宏块中的像素落入所述参考帧前景区域内的数量;
如果统计得到的数量超过设定数量阈值,或者统计得到的数量与对应宏块总像素数量的比值超过设定比例阈值,则确定相应宏块是从所述前向参考帧中的前景区域运动到当前帧的宏块,并将确定出的宏块作为当前帧中的候选前景宏块。
4.如权利要求1所述的方法,其特征在于,根据所述候选前景宏块落入所述前向参考帧前景区域内的像素数量,将一个候选前景宏块的轨迹矢量确定为当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量,包括:
分别统计各候选前景宏块落入该参考帧前景区域内的像素数量;
取统计得到的数量中的最大值,并确定该最大值所对应的宏块;
将该宏块的轨迹矢量作为所述主要轨迹矢量。
5.如权利要求1所述的方法,其特征在于,根据所述候选前景宏块落入所述前向参考帧前景区域内的像素数量,将一个候选前景宏块的轨迹矢量确定为当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量,包括:
分别以各候选前景宏块的轨迹矢量方向为基础,得到各宏块对应的误差容忍范围;
分别取各候选前景宏块在各自误差容忍范围内的多个离散角度,将各候选前景宏块按照其对应的各离散角度分别映射到该参考帧中,并分别统计各候选前景宏块以各离散角度映射后落入所述参考帧前景区域内的像素数量之和;
取所述像素数量之和中的最大值,并确定该最大值所对应的宏块;
将该宏块的轨迹矢量作为所述主要轨迹矢量。
6.如权利要求1所述的方法,其特征在于,根据所述候选前景宏块落入所述前向参考帧前景区域内的像素数量,将一个候选前景宏块的轨迹矢量确定为当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量,包括:
根据各候选前景宏块的轨迹矢量,确定出第一轨迹矢量方向,使轨迹矢量方向与第一轨迹矢量方向一致或在以第一轨迹矢量方向为基础的误差容忍范围的宏块数量不少于轨迹矢量方向为其他方向的宏块数量;
分别统计具有第一轨迹矢量方向的宏块根据各自的轨迹矢量映射到所述前向参考帧的前景区域后落入该参考帧前景区域内的像素数量;
取统计得到的数量中的最大值,确定该最大值所对应的宏块,并将该宏块的轨迹矢量作为所述主要轨迹矢量。
7.如权利要求1所述的方法,其特征在于,根据所述比值与设定阈值的比较结果,定位出当前帧中的前景区域,包括:
当所述比值大于第一阈值时,分别将所述前向参考帧中前景区域内的各像素按照所述主要轨迹矢量映射到当前帧中,从而得到当前帧中前景区域内的像素;
当所述比值介于第一阈值和第二阈值之间,其中,第一阈值大于第二阈值时,根据当前帧的候选前景宏块中、轨迹矢量方向与所述主要轨迹矢量方向一致或在以所述主要轨迹矢量方向为基础的误差容忍度范围内的宏块的最大连通区域,以及所述前向参考帧中的前景区域在当前帧中的相应区域形成搜索区域,根据该搜索区域定位出当前帧的前景区域;
当所述比值小于第二阈值时,通过对当前帧进行全帧前景划分,从而得到当前帧中前景区域内的像素。
8.如权利要求7所述的方法,其特征在于,所述搜索区域为所述最大连通区域与所述前向参考帧中的前景区域在当前帧中的相应区域取并后形成的矩形区域。
9.如权利要求1-8任一项所述的方法,其特征在于,所述当前帧和所述参考帧为符合H.264视频编码标准的视频帧,所述当前帧为P帧或B帧;所述宏块为16×16编码宏块。
10.一种视频编码器,包括:运动估计模块和编码模块,其特征在于,还包括:
第一轨迹矢量确定模块,用于利用视频编码运动估计生成的中间数据进行与码率无关的运动估计,以确定出当前帧中各宏块的轨迹矢量,其中,所述中间数据为运动估计中生成的16×16块模式下的Jmotion中与码率无关的分量,所述分量为原始信号与所述当前帧的前向参考帧对应位置重构信号之间差异的绝对值之和SAD;所述轨迹矢量为所述前向参考帧中每个宏块相对于当前帧的轨迹变化;
候选前景宏块确定模块,用于将当前帧中各宏块按照各自轨迹矢量映射到所述前向参考帧,根据各宏块落入所述前向参考帧的前景区域内的像素数量,确定出当前帧中的候选前景宏块;
第二轨迹矢量确定模块,用于根据所述候选前景宏块落入所述前向参考帧前景区域内的像素数量,将一个候选前景宏块的轨迹矢量确定为当前帧的前景相对于其前向参考帧的前景的主要轨迹矢量;
前景区域定位模块,用于将所述候选前景宏块按照所述主要轨迹矢量映射到所述前向参考帧,根据所述候选前景宏块落入该前向参考帧前景区域的像素总数量与该前景区域像素总数量的比值与设定阈值的比较结果,定位出当前帧中的前景区域;
所述编码模块,用于根据划分出的前景区域对当前帧进行视频编码。
11.如权利要求10所述的视频编码器,其特征在于,所述第一轨迹矢量确定模块确定当前帧中各宏块的轨迹矢量时,针对当前帧中的每个宏块,根据该宏块对应的最小SAD进行运动估计,以确定出该宏块的轨迹矢量。
12.如权利要求10所述的视频编码器,其特征在于,所述候选前景宏块确定模块在确定当前帧中的候选前景宏块时,将当前帧中的各宏块分别按照各自轨迹矢量映射到参考帧后,分别统计各宏块落入所述参考帧前景区域内的像素数量;如果统计得到的数量超过设定数量阈值,或者统计得到的数量与对应宏块总像素数量的比值超过设定比例阈值,则确定相应宏块是从所述前向参考帧中的前景区域运动到当前帧的宏块,并将确定出的宏块作为当前帧的候选前景宏块。
13.如权利要求10所述的视频编码器,其特征在于,所述第二轨迹矢量确定模块在确定所述主要轨迹矢量时,分别统计各候选前景宏块落入该参考帧前景区域内的像素数量;取统计得到的数量中的最大值,并确定该最大值所对应的宏块;将该宏块的轨迹矢量作为所述主要轨迹矢量;
或者,所述第二轨迹矢量确定模块在确定所述主要轨迹矢量时,分别以各候选前景宏块的轨迹矢量方向为基础,得到各候选前景宏块对应的误差容忍范围;分别取各候选前景宏块在各自误差容忍范围内的多个离散角度,将各候选前景宏块按照其对应的各离散角度分别映射到该参考帧中,并分别统计各候选前景宏块以各离散角度映射后落入所述参考帧前景区域内的像素数量之和;取所述像素数量之和中的最大值,并确定该最大值所对应的宏块;将该宏块的轨迹矢量作为所述主要轨迹矢量;
或者,所述第二轨迹矢量确定模块在确定所述主要轨迹矢量时,根据各候选前景宏块的轨迹矢量,确定出第一轨迹矢量方向,使轨迹矢量方向与第一轨迹矢量方向一致或在以第一轨迹矢量方向为基础的误差容忍范围的宏块数量不少于轨迹矢量方向为其他方向的宏块数量;分别统计具有第一轨迹矢量方向的宏块根据各自的轨迹矢量映射到所述前向参考帧的前景区域后落入该参考帧前景区域内的像素数量;取统计得到的数量中的最大值,确定该最大值所对应的宏块,并将该宏块的轨迹矢量作为所述主要轨迹矢量。
14.如权利要求10所述的视频编码器,其特征在于,所述前景区域模块定位前景区域时,如果所述比值大于第一阈值,则分别将所述前向参考帧中前景区域内的各像素按照所述主要轨迹矢量映射到当前帧中,从而得到当前帧中前景区域内的像素;如果所述比值介于第一阈值和第二阈值之间,其中,第一阈值大于第二阈值,则根据当前帧的候选前景宏块中、轨迹矢量方向与所述主要轨迹矢量方向一致或在以所述主要轨迹矢量方向为基础的误差容忍度范围内的宏块的最大连通区域,以及所述前向参考帧中的前景区域在当前帧中的相应区域形成搜索区域,根据该搜索区域定位出当前帧的前景区域;如果所述比值小于第二阈值,则通过对当前帧进行全帧前景划分,从而得到当前帧中前景区域内的像素。
15.如权利要求10~14任一项所述的视频编码器,其特征在于,所述视频编码器处理的当前帧为符合H.264视频编码标准的P帧或B帧,处理的宏块为16×16编码宏块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910083412 CN101877786B (zh) | 2009-04-30 | 2009-04-30 | 一种视频帧前景跟踪方法以及视频编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910083412 CN101877786B (zh) | 2009-04-30 | 2009-04-30 | 一种视频帧前景跟踪方法以及视频编码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101877786A CN101877786A (zh) | 2010-11-03 |
CN101877786B true CN101877786B (zh) | 2012-08-15 |
Family
ID=43020236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910083412 Expired - Fee Related CN101877786B (zh) | 2009-04-30 | 2009-04-30 | 一种视频帧前景跟踪方法以及视频编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101877786B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075757B (zh) * | 2011-02-10 | 2013-08-28 | 北京航空航天大学 | 通过边界检测作为运动估计参考的视频前景对象编码方法 |
US9064295B2 (en) * | 2013-02-04 | 2015-06-23 | Sony Corporation | Enhanced video encoding using depth information |
CN111696136B (zh) * | 2020-06-09 | 2023-06-16 | 电子科技大学 | 一种基于编解码结构的目标跟踪方法 |
CN112954393A (zh) * | 2021-01-21 | 2021-06-11 | 北京博雅慧视智能技术研究院有限公司 | 一种基于视频编码的目标跟踪方法、系统、存储介质及终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0557007A2 (en) * | 1992-02-15 | 1993-08-25 | Sony Corporation | Picture processing apparatus |
CN1396774A (zh) * | 2002-07-12 | 2003-02-12 | 清华大学 | 基于预测方向校正/统计预判的快速亚象素运动估计方法 |
WO2004081875A2 (en) * | 2003-03-07 | 2004-09-23 | Siemens Corporate Research Inc. | System and method for tracking a global shape of an object in motion |
CN1633184A (zh) * | 2005-01-14 | 2005-06-29 | 北京航空航天大学 | 基于有效区域的多参考帧快速运动估计方法 |
CN1975782A (zh) * | 2005-11-30 | 2007-06-06 | 汤姆逊许可公司 | 视频内容分析中感兴趣区域轨迹的校正方法 |
-
2009
- 2009-04-30 CN CN 200910083412 patent/CN101877786B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0557007A2 (en) * | 1992-02-15 | 1993-08-25 | Sony Corporation | Picture processing apparatus |
CN1396774A (zh) * | 2002-07-12 | 2003-02-12 | 清华大学 | 基于预测方向校正/统计预判的快速亚象素运动估计方法 |
WO2004081875A2 (en) * | 2003-03-07 | 2004-09-23 | Siemens Corporate Research Inc. | System and method for tracking a global shape of an object in motion |
CN1633184A (zh) * | 2005-01-14 | 2005-06-29 | 北京航空航天大学 | 基于有效区域的多参考帧快速运动估计方法 |
CN1975782A (zh) * | 2005-11-30 | 2007-06-06 | 汤姆逊许可公司 | 视频内容分析中感兴趣区域轨迹的校正方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101877786A (zh) | 2010-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5052134B2 (ja) | 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム | |
CN101127912B (zh) | 利用动态背景帧的视频编码方法 | |
CN101917619B (zh) | 一种多视点视频编码快速运动估计方法 | |
CN101448159B (zh) | 一种基于率失真代价和模式频率的快速帧间模式选择方法 | |
CN101374243B (zh) | 一种应用于3dtv与ftv系统的深度图编码压缩方法 | |
CN101877786B (zh) | 一种视频帧前景跟踪方法以及视频编码器 | |
CN101621685B (zh) | 编码装置和编码方法 | |
CN102595145B (zh) | 一种立体视频整帧丢失错误隐藏方法 | |
CN101600108A (zh) | 一种多视点视频编码中的运动和视差联合估计方法 | |
CN101667295B (zh) | 一种将线搜索扩展于全景视频运动估计的方法 | |
CN101986716A (zh) | 一种快速深度视频编码方法 | |
CN102801995B (zh) | 一种基于模板匹配的多视点视频运动和视差矢量预测方法 | |
CN101404774A (zh) | 运动搜索中宏块划分模式的选择方法 | |
CN101198061A (zh) | 基于视点图像映射的立体视频流编码方法 | |
CN103475884B (zh) | 面向hbp编码格式的立体视频b帧整帧丢失错误隐藏方法 | |
CN103338370A (zh) | 一种多视点深度视频快速编码方法 | |
CN103067705B (zh) | 一种多视点深度视频预处理方法 | |
CN110446052A (zh) | 一种3d-hevc帧内深度图快速cu深度选择方法 | |
CN101959067B (zh) | 基于外极线约束的快速编码模式决策方法和系统 | |
CN101277447A (zh) | 航拍交通视频快速帧间预测方法 | |
CN101505426A (zh) | 压缩域的运动检测方法及装置 | |
CN102325254B (zh) | 一种立体视频的编、解码方法及装置 | |
CN102158702A (zh) | 自适应h.264码率控制方法 | |
CN101557519B (zh) | 一种多视点视频编码方法 | |
CN103595991B (zh) | 深度视频编码的像素级预测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120815 Termination date: 20170430 |