一种基于压缩域的KVM视频内容变化检测方法与流程

文档序号:17844019发布日期:2019-06-11 21:32阅读:207来源:国知局
一种基于压缩域的KVM视频内容变化检测方法与流程

本发明涉及数字视频处理领域,具体涉及一种基于压缩域的kvm视频内容变化检测方法。



背景技术:

键盘(keyboard)、显示器(video)和鼠标(mouse)远程切换管理系统,即kvm系统,也被称为多计算机控制系统,主要用于机房中各种计算机的远程控制。kvm视频是数字kvm系统中对电脑屏幕输出的原始视频进行采集压缩后的数据,近年来,随着高性能计算机、高带宽网络的飞度发展,kvm系统的应用不断增加,而保存的海量kvm视频给存储以及管理带来了很大的不便。为了降低kvm视频的存储量并方便管理,对kvm视频内容的变化检测非常重要。kvm视频中存在很多无内容变化的冗余部分,通过对其进行内容变化检测,可以仅对视频内容有变化的部分进行存储,而对视频内容无变化的冗余部分进行丢弃,从而减少存储量,同时也可以方便后期的数据管理。此外,kvm视频内容变化检测在一些特定领域中应用也比较广泛,比如有一些工控设备在工作的时候可能会弹出一个警报弹窗,利用内容变化检测的方法可以检测到这个警报弹窗,并及时处理这个警报弹窗,可以减少一些不必要的损失。

目前海量的kvm视频大多都是通过主流的h.264标准进行编码和传输。为了降低kvm系统延时,在h.264中,主要是i帧和p帧用于编码传输,i帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,p帧又称帧间预测编码帧,需要参考前向的重建帧才能进行编码。h.264压缩标准中采用的是16×16大小的宏块,宏块的编码类型分为intra宏块、inter宏块。intra宏块是由当前帧中已重建数据进行预测,而inter宏块使用已重建的参考帧图像进行预测,其运动矢量是指当前宏块相对参考帧图像的偏移,包含水平分量和竖直分量。

目前,现有的视频内容变化检测技术主要有背景相减法、帧差法、背景建模法、基于特征的运动检测、基于光流技术的运动检测。申请号为cn201210334876的专利公开了一种电脑输出视频图像变化检测的方法。该方法首先利用将彩色图像转成灰度图像;再将灰度图像进行均值滤波;然后将滤波后的图像进行分块、帧差、均值和方差;最后根据均值、方差计算判别阈值,从而判断是否发生变化。申请号为cn201110009716的专利公开了一种基于主成分广义逆变换的图像变化检测方法。该方法通过对待检测图像重新组织数据后进行两个特征空间中的变换,并在变换后的特征空间里进行更新波段差分处理以获取变化成分,再通过自动阈值方法来提取变化区域,实现图像变化检测。申请号为cn200810101240.5的专利公开了一种根据场景变化特征对视频中运动物体检测的方法。该方法首先根据训练图像进行特征点检测、背景特征点参数和模型像素点参数计算,采用背景特征点参数和当前检测的图像特征点计算运动特征点;使用运动特征点对背景模型中像素点参数进行分类;利用分类结果计算背景模型像素点参数更新速率;最后根据当前图像和背景模型像素点参数,采用背景差分方法得到运动物体的位置和形状。

上述方法主要是在像素域进行视频内容变化检测,整体计算复杂度较高,此外对于kvm视频,需要进行像素域的解码重建,进一步增加了计算量,因此不能很好的适用于kvm视频的内容变化检测。在h.264码流中,本身就包含了反映内容变化的帧比特数、宏块类型和运动矢量等编码信息,可以只解析码流而不用完全重建,因此在h.264压缩域中对kvm视频进行内容变化检测可以保证较低的计算复杂度。



技术实现要素:

为了降低kvm视频码流保存的数据量,本发明利用从码流中解析得到编码信息,提供了一种基于压缩域的kvm视频内容变化检测的方法,所述方法包括以下步骤:

(1)输入一个图像组的kvm视频码流

输入的kvm视频码流为h.264码流,支持的帧类型为i帧(帧内编码帧)和p帧(前向帧间编码帧),一个图像组(gop)由一个i帧和后续多个p帧组成,p帧不进行强制宏块刷新,即编码器不强制指定宏块的编码类型,而是从各种编码类型中优选得到,从而使p帧的宏块编码类型能够反映出其与前一帧的图像内容差异程度。

(2)解析视频码流获得一个p帧的压缩域编码信息

解析得到的p帧编码信息包括该帧所有宏块的编码类型、比特数和运动矢量;若该帧为第一个p帧,则置内容变化标志cf为0,并再解析一个p帧作为当前帧;宏块的编码类型包括intra宏块(帧内编码宏块)和inter宏块(帧间编码宏块),根据统计,p帧中的intra宏块多出现在视频内容显著变化的区域,其它情况多为inter宏块。i帧由于无帧间预测编码信息,只有intra宏块,没有inter宏块,不能通过宏块类型来预测前后帧的图像内容差异程度,因此本发明不对其进行处理。

(3)宏块比特数滤波

目前大多数kvm视频码流都是经过vga口模数转换后编码得到,编码后的视频存在一些噪声,影响其内容变化的检测,因此需要对编码信息进行滤波。通过分析码流发现,完全静止的宏块比特数等于或接近于零,而明显内容变化的宏块其比特数较大,存在部分噪声的静止宏块其比特数非零且较小。根据这些特征,本发明对宏块比特数进行滤波:将小于阈值thbit1的宏块比特数都直接置为零,通过分析统计kvm视频码流中存在噪声的宏块比特数得到thbit1的取值范围为[50,300],用户根据实际码流的噪声情况进行选取,噪声大取值大。

(4)利用编码信息多级判别当前帧内容是否变化

利用当前帧和前一帧的宏块编码类型、宏块比特数及运动矢量等编码信息,针对kvm视频典型场景判别视频内容有无变化,具体步骤如下:

(4-1)对桌面整体是否有显著变化的判别

若当前帧的intra宏块个数大于前一帧的intra宏块个数,并且当前帧的intra宏块个数占总宏块个数的百分比大于阈值thintra1,则说明当前帧在内容上相比于前一帧有较大变化,置内容变化标志cf为1,并跳至步骤(5),否则进行下一步检测;通过统计分析桌面整体有显著变化场景中p帧的intra宏块个数,得到thintra1的取值范围为[40,90]。

(4-2)对电脑桌面是否出现操作框变化的判别

若当前帧的intra宏块个数大于前一帧的intra宏块个数且差值大于阈值thintra2,并且当前帧中有四邻域连通的最大intra宏块个数大于阈值thintra3,则说明当前帧中存在某个区域发生图像内容明显变化,置内容变化标志cf为1,跳至步骤(5),否则进行下一步检测;通过统计分析电脑桌面出现操作框的p帧中intra宏块个数及其前一帧的intra宏块个数,以及该帧中四邻域连通的最大intra宏块个数得到thintra2的取值范围为[20,1000]、thintra3的取值范围为[3,300],根据实际要检测的图像分辨率和操作框大小来选取,图像分辨率越大、目标操作框越大,取值越大。所述的四邻域连通即为当前宏块与上方宏块、下方宏块、左边宏块或右边宏块连通,是图像处理领域中一种经典的连通方式。

(4-3)对鼠标和字符等微小变化的判别

若当前帧存在比特数均大于阈值thbit2的四邻域连通宏块且所述宏块个数大于阈值thmb1,或者当前帧至少存在1个intra宏块的比特数大于阈值thbit2,则在这两种情况下都说明当前帧较前一帧在细小区域中发生了图像内容显著变化,对应宏块的比特数特别大,因此置内容变化标志cf为1,跳至步骤(5),否则进行下一步检测;通过统计分析电脑桌面有鼠标移动和字符输入的p帧中的宏块比特数及其四邻域相邻宏块得到thbit2的取值范围为[200,1000]、thmb1的取值范围为[1,4]。

(4-4)对应用软件有无整体移动等变化的判别

首先按式(1)计算得到当前帧每个宏块的运动矢量幅值mvap,其中|mvx|和|mvy|是根据步骤(2)解析得到的当前帧每个宏块的运动矢量的水平分量幅值和竖直分量幅值;若当前帧中存在mvap均大于阈值thmv的四邻域连通宏块且所述宏块个数大于阈值thmb2,则说明当前帧部分区域的内容发送整体移动的变化,运动矢量幅值较大,置内容变化标志cf为1;通过统计分析存在应用软件整体移动等变化的p帧中幅值较大的宏块运动矢量及其四邻域相邻宏块得到thmv的取值范围为[16,128]、thmb2的取值范围为[4,100];intra宏块无运动矢量,其mvap都设为0。

mvap=|mvx|+|mvy|(1)

(5)根据内容变化标志保存或丢弃图像组码流

若当前帧的内容变化标志cf为1,说明当前图像组中至少有一帧的内容出现变化,则不再进行后续帧的码流解析及判别,保存当前图像组视频码流;若当前帧的内容变化标志cf为0且当前帧为当前图像组的最后一个p帧,则丢弃当前图像组视频码流;若当前帧的内容变化标志cf为0且当前帧不是当前图像组的最后一个p帧,则重复步骤(2)至步骤(4)处理下一个p帧的检测。

与现有技术相比,本发明具有以下有益效果:

直接利用h.264码流中包含的压缩域编码信息进行kvm视频内容变化检测,无需重建图像,以图像组为单位能够快速地检测内容变化,同时也有效减少了kvm视频的存储数据量,相比像素域的检测方法大幅地降低了计算复杂度。

附图说明

图1为本发明方法的流程图。

具体实施方式

下面结合实施例和附图来详细描述本发明,但本发明并不仅限于此。本实施例采用的视频解码器为ffmpeg,版本号为3.2.4;输入的视频源为kvm切换器从vga口录制的视频,分辨率为1080p,录制的目标码率为4mbps,帧率为30fps,编码预测结构为ippp模式,i帧间隔为150;录制的kvm视频内容包含鼠标移动、弹窗、输入汉字、滑动word文档、桌面整体较快较大变化等场景。如图1所示,一种基于压缩域的kvm视频内容变化检测方法,包括以下步骤:

(1)输入一个图像组的kvm视频码流;

(2)解析视频码流获得一个p帧的压缩域编码信息;

(3)宏块比特数滤波;

(4)利用编码信息多级判别当前帧内容是否变化;

(5)根据内容变化标志保存或丢弃图像组。

步骤(1)具体包括:

输入一个图像组视频码流,该图像组视频码流为h.264码流,第一个为i帧和后续149个p帧。

步骤(2)具体包括:

解析得到的p帧编码信息包括该帧所有宏块的编码类型、比特数和运动矢量;若该帧为第一个p帧,则置内容变化标志cf为0,并再解析一个p帧作为当前帧;宏块的编码类型包括intra宏块和inter宏块。本发明不对i帧进行处理。

步骤(3)具体包括:

统计当前帧中每个宏块所占比特数的大小,将小于阈值thbit1的宏块比特数直接置为零;其中thbit1的取值范围为[50,300],此处取200。

步骤(4)具体包括:

利用当前帧和前一帧的宏块编码类型、宏块比特数及运动矢量等编码信息,针对kvm视频典型场景判别视频内容有无变化,具体包括:

(4-1)对桌面整体是否有显著变化的判别

若当前帧的intra宏块个数大于前一帧的intra宏块个数,并且当前帧的intra宏块个数占总宏块个数的百分比大于阈值thintra1,则置内容变化标志cf为1,并跳至步骤(5),否则进行下一步检测;其中thintra1的取值范围为[40,90],此处取70。

(4-2)对电脑桌面是否出现操作框变化的判别

若当前帧的intra宏块个数大于前一帧的intra宏块个数且差值大于阈值thintra2,并且当前帧中有四邻域连通的最大intra宏块个数大于阈值thintra3,则置内容变化标志cf为1,跳至步骤(5),否则进行下一步检测;其中thintra2的取值范围为[20,1000],此处取80,thintra3的取值范围为[3,300],此处取20。

(4-3)对鼠标和字符等微小变化的判别

若当前帧存在比特数均大于阈值thbit2的四邻域连通宏块且其宏块个数大于阈值thmb1,或者当前帧至少存在1个intra宏块的比特数大于阈值thbit2,则在这两种情况下都置内容变化标志cf为1,跳至步骤(5),否则进行下一步检测;其中thbit2的取值范围为[200,1000],此处取300,thmb1的取值范围为[1,4],此处取2。

(4-4)对应用软件有无整体移动等变化的判别

首先按式(1)计算得到当前帧每个宏块的运动矢量幅值mvap,其中|mvx|和|mvy|是根据步骤(2)解析得到的当前帧每个宏块的运动矢量的水平分量幅值和竖直分量幅值;若当前帧中存在mvap均大于阈值thmv的四邻域连通宏块且所述宏块个数大于阈值thmb2,则置内容变化标志cf为1;其中thmv的取值范围为[16,128],此处取50,thmb2的取值范围为[4,100],此处取10;intra宏块无运动矢量,其mvap都设为0。

mvap=|mvx|+|mvy|(1)

步骤(5)具体包括:

若当前帧的内容变化标志cf为1,说明当前图像组中至少有一帧的内容出现变化,则不再进行后续帧的码流解析及判别,保存当前图像组视频码流;若当前帧的内容变化标志cf为0且当前帧为当前图像组的最后一个p帧,则丢弃当前图像组视频码流;若当前帧的内容变化标志cf为0且当前帧不是当前图像组的最后一个p帧,则重复步骤(2)至步骤(4)处理下一个p帧的检测。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1