本发明涉及视频处理领域,尤其涉及一种基于运动分析的滑动时间窗场景切换检测方法和系统。
背景技术:
实际视频源具有多样性,精确的场景切换可提升编码器的压缩性能。然而,传统的逐帧分析法,虽然判断较为精确,但实际上逐帧产生场景切换的概率极低,这就致使算法的效率低下。
技术实现要素:
本发明实施例的目的在于提出一种基于运动分析的滑动时间窗场景切换检测方法,旨在解决现有技术场景切换逐帧分析法,虽然判断较为精确,但效率低下的问题。
本发明实施例是这样实现的,一种基于运动分析的滑动时间窗场景切换检测方法,所述方法包括:
step1:如果当前帧framecur为帧内预测帧或者场景切换帧,则给循环变量n赋初值为0,定位当前帧在编码顺序上的下一帧记为framenext,然后进入step2;否则,则进入step6;
step2:若framecur、framenext中有未编码的帧,则先对其进行编码,然后进入step3;否则,直接进入step3;
step3:如果pocnext-poccur≤thres1,则进入step5;否则,进入step4;
step4:如果
step5:获取当前场景时间跨度变量tk;
step6:对视频剩余帧进行场景检测;
其中,poccur、pocnext分别表示framecur、framenext的播放序号;thres1表示第一门限阈值;
本发明实施例的另一目的在于提出一种基于运动分析的滑动时间窗场景切换检测系统,所述系统包括:
帧类型判断处理模块,用于判断如果当前帧framecur为帧内预测帧或者场景切换帧,则给循环变量n赋初值为0,定位当前帧在编码顺序上的下一帧记为framenext,然后进入未编码帧检测处理模块;否则,则进入剩余帧场景检测装置;
未编码帧检测处理模块,用于判断若framecur、framenext中有未编码的帧,则先对其进行编码,然后进入帧间隔阈值判断处理模块;否则,直接进入帧间隔阈值判断处理模块;
帧间隔阈值判断处理模块,用于判断如果pocnext-poccur≤thres1,则进入场景时间跨度变量获取模块;否则,进入帧内预测块数量阈值判断处理模块;
其中,poccur、pocnext分别表示framecur、framenext的播放序号;thres1表示第一门限阈值;
帧内预测块数量阈值判断处理模块,用于判断如果
其中,
场景时间跨度变量获取模块,用于获取当前场景时间跨度变量;
剩余帧场景检测装置,用于对视频剩余帧进行场景检测。
本发明的有益效果
本发明提出一种基于运动分析的滑动时间窗场景切换检测方法和系统。本发明方法首先通过图像内物体的运动强度的分析,自适应确定场景分析时间窗的长度;然后以该时间窗为单位,对场景切换做周期检测。这样在保证场景检测的精确度下,同时避免了逐帧检测算法在计算量上的无谓浪费,从而达到提升算法效率的目的。
附图说明
图1是本发明优选实施例一种基于运动分析的滑动时间窗场景切换检测方法流程图;
图2是图1中step6的详细方法流程图;
图3是本发明优选实施例一种基于运动分析的滑动时间窗场景切换检测系统结构图;
图4是图3中剩余帧场景检测装置结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
本发明提出一种基于运动分析的滑动时间窗场景切换检测方法和系统。本发明方法首先通过图像内物体的运动强度的分析,自适应确定场景分析时间窗的长度;然后以该时间窗为单位,对场景切换做周期检测。这样在保证场景检测的精确度下,同时避免了逐帧检测算法在计算量上的无谓浪费,从而达到提升算法效率的目的。
实施例一
图1是本发明优选实施例一种基于运动分析的滑动时间窗场景切换检测方法流程图;所述方法包括以下步骤:
step1:如果当前帧framecur为帧内预测帧或者场景切换帧,则给循环变量n赋初值为0,定位当前帧在编码顺序上的下一帧记为framenext,然后进入step2;否则,则进入step6。
step2:若framecur、framenext中有未编码的帧,则先对其进行编码,然后进入step3;否则,直接进入step3。
step3:如果pocnext-poccur≤thres1,则进入step5;否则,进入step4。
其中,poccur、pocnext分别表示framecur、framenext的播放序号;thres1表示第一门限阈值,一般thres1>2。
step4:如果
其中,
step5:获取当前场景时间跨度变量;
其中,consfast、consslow、cons分别表示快速场景时间跨度常量、慢速场景时间跨度常量、常规场景时间跨度常量,一般1<consfast<cons<consslow<fps/2;thres3、thres4表示第三、第四门限阈值;fps表示帧率;bitnext、bitcur分别表示framecur、framenext编码后的比特数;上述时间跨度变量的取值划分条件亦可以用framenext中运动向量非零块的占比来进行操作;时间跨度常量设置越大,处理速度越快,但也会带来一定的漏检率,可根据具体要求设定。
step6:对视频剩余帧进行场景检测。
图2是图1中step6的详细方法流程图;包括以下步骤:
step61:令循环变量n=n+1。
step62:根据时间跨度变量,定位当前场景待检测帧framet,
t=pocnext+tk*n。
step63:如果当前场景待检测帧不存在,则结束;否则如果当前场景待检测帧为i帧且i帧间隔为固定值,则令framecur=framet,然后重回step1;否则,则进入step64。
其中,framet表示当前场景待检测帧,t表示其播放序号;i帧间隔在编码参数中已预先设置,且i帧间隔为固定值。
step64:利用业内公开的方法,对framet进行场景检测。
step65:令framecur=framet,然后重回step1。
实施例二
图3是本发明优选实施例一种基于运动分析的滑动时间窗场景切换检测系统结构图;所述系统包括:
帧类型判断处理模块,用于判断如果当前帧framecur为帧内预测帧或者场景切换帧,则给循环变量n赋初值为0,定位当前帧在编码顺序上的下一帧记为framenext,然后进入未编码帧检测处理模块;否则,则进入剩余帧场景检测装置。
未编码帧检测处理模块,用于判断若framecur、framenext中有未编码的帧,则先对其进行编码,然后进入帧间隔阈值判断处理模块;否则,直接进入帧间隔阈值判断处理模块。
帧间隔阈值判断处理模块,用于判断如果pocnext-poccur≤thres1,则进入场景时间跨度变量获取模块;否则,进入帧内预测块数量阈值判断处理模块。
其中,poccur、pocnext分别表示framecur、framenext的播放序号;thres1表示第一门限阈值,一般thres1>2。
帧内预测块数量阈值判断处理模块,用于判断如果
其中,
场景时间跨度变量获取模块,用于获取当前场景时间跨度变量;
其中,consfast、consslow、cons分别表示快速场景时间跨度常量、慢速场景时间跨度常量、常规场景时间跨度常量,一般1<consfast<cons<consslow<fps/2;thres3、thres4表示第三、第四门限阈值;fps表示帧率;bitnext、bitcur分别表示framecur、framenext编码后的比特数;上述时间跨度变量的取值划分条件亦可以用framenext中运动向量非零块的占比来进行操作;时间跨度常量设置越大,处理速度越快,但也会带来一定的漏检率,可根据具体要求设定。
剩余帧场景检测装置,用于对视频剩余帧进行场景检测。
图4是图3中剩余帧场景检测装置结构图。所述剩余帧场景检测装置包括:
循环变量设置模块,用于令循环变量n=n+1。
场景待检测帧定位模块,用于根据时间跨度变量,定位当前场景待检测帧framet,t=pocnext+tk*n。
第一判断处理模块,用于判断如果当前场景待检测帧不存在,则结束;否则进入第二判断处理模块;
第二判断处理模块,用于判断如果当前场景待检测帧为i帧且i帧间隔为固定值,则令framecur=framet,然后重回帧类型判断处理模块;否则,则进入场景检测模块。
其中,framet表示当前场景待检测帧,t表示其播放序号;i帧间隔在编码参数中已预先设置,且i帧间隔为固定值。
场景检测模块,用于利用业内公开的方法,对framet进行场景检测。
当前帧设置模块,用于令framecur=framet,然后重回帧类型判断处理模块。
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为rom、ram、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。