一种面向监控视频压缩存储的方法
文献发布时间:2023-06-19 09:24:30
技术领域
本发明涉及视频解码相关技术领域,尤其是指一种面向监控视频压缩存储的方法。
背景技术
视频监控系统发展了短短二十几年时间,从模拟监控到火热数字监控再到方兴未艾网络视频监控,发生了翻天覆地变化。在IP技术逐步统一全球今天,我们有必要重新认识视频监控系统发展历史。从技术角度出发,视频监控系统发展划分为第一代模拟视频监控系统(CCTV),到第二代基于“PC+多媒体卡”数字视频监控系统(DVR),到第三代完全基于IP网络视频监控系统(IPVS)。目前主流的视频监控全部都是IP视频监控,IP摄像头遍布道路交通、地铁、商场、小区、办公楼宇等,每天都有巨量的监控视频产生。
目前视频监控摄像头普遍采用了H.264或者H.265视频编码,然后通脱RTSP传输协议传回给中心端的联网平台内的流媒体服务器。流媒体服务器再把视频发送到存储服务器。存储后的视频,通常可以供日后视频回看,或者发送给视频分析平台做视频分析使用。目前的监控视频主流业务都要求存储至少3个月,有的甚至需要存储一年甚至更长时间。
目前的痛点:由于视频数据量巨大,而且存储的视频需要对一些敏感信息,如人脸、车牌等具有较高的保留,以方便回看人眼可以准确识别以及人工智能设备可以智能分析得到。所以主流视频摄像头编码的时候并不对视频画质做任何分析,即使视频画面是静止的(这种情况再监控视频是很常见的)的,或者只有画面内较小部分有运动和敏感信息,也是采用一致的编码方法。通常都采用固定码率编码,为了防止偶尔的复杂场景的出现,通常码率设置都比较高,通常高清分辨率的码率为4Mbps。如果码率设置小了,可能复杂的场景视频画质会比较差,影响视频回看以及关键物体的智能识别成功率。以4MBps来算,一路摄像头三个月的存储量4TByte,1000路摄像头一年的存储量为15000T,这是海量的存储,这会给安防建设带来巨大的存储成本。同时4Mbps也会给传输带宽带来很大的成本。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种减小存储量以及带宽需求的面向监控视频压缩存储的方法。
为了实现上述目的,本发明采用以下技术方案:
一种面向监控视频压缩存储的方法,具体包括如下步骤:
(1)事先确定3个编码量化因子Qp1,Qp2,Qp3,Qp1>Qp2>Qp3;
(2)初始时,编码第一帧不做任何处理,统一使用Qp2编码第一帧,同时将第一帧的YUV数据保存在缓存中;
(3)编码第N帧的时候,把整帧分成静止背景区域以及若干运动矩形区域,对运动矩形区域进一步视频分析得到面积更小的敏感物体的运动区域,编码过程中对敏感区域进行重点编码采用量化步长Qp3;对于运动区域采用量化步长Qp2;对背景静止区域采用量化步长Qp1;
(4)令N=N+1,重复步骤(3)直到所有的视频帧编码结束。
本方法先把视频图像的每一帧通过运动检测的方法,把整帧分成静止背景区域以及若干运动矩形区域,进而对运动矩形区域进一步视频分析得到面积更小的敏感物体的运动区域,根据不同区域进行不同策略的编码,编码过程中,对敏感区域进行重点编码,可以采用较小的量化步长,可以保持此部分画质很高而不会占用太多码率;而对于运动区域采用普通的量化步长,画质较高的同时也不会占用太多码率;对背景静止区域采用较大的量化步长,码率节省较多,而画质也在可接受范围内,如此编码最终可以做到码率大幅下降。本发明通过视频内容分析,把视频内容分为多级重要度的区域,对不同重要级别的视频内容采用不同的处理以及编码方案,以保证重要视频元素得以高保真的保存,且编码码率大大减小,从而减小总存储量以及带宽需求,减少存储和带宽成本。
作为优选,在步骤(3)中,具体操作方法为:
(31)先把当前第N帧从左上到右下分为以16x16共256个像素为单位的小正方形块,最右边或者底边不足16用固定像素填充为16x16;
(32)对每个正方形块,与缓存的第N-1帧的相应位置的16x16像素小正方形做对比计算,计算MeanSAD,如果MeanSAD小于某个阈值ThrSAD,则认为当前块为静止块,否则把当前块标识为运动块,最后得到所有的块都标识为运动块或者静止块;
(33)使用递归的方法,把相邻的运动块或者矩形区域合并为一个大的运动矩形块,该矩形区域内所有16x16块都标识为运动块,把静止块区域标记为Level 1区域,剩下为Level 2区域;
(34)对Level 2区域,再次进行智能物件识别算法,识别出关键物件的更小的矩形区域,把该矩形区域对应的块标记修改为Level 3,至此完成了第N帧的视频图像处理,并把第N帧的输入数据保存到缓冲中;
(35)根据设定的编码量化因子,将Level 1的区域设定为Qp1,Level 2的区域设定为Qp2,Level 3的区域设定为Qp3,进行编码。
作为优选,在步骤(32)中,MeanSAD计算方法如下:
加入N帧对应的小块的256个像素的亮度值分别为:Y
MeanSAD=(|Y
作为优选,在步骤(33)中,两个区域相邻表示他们的像素之间水平、垂直最小距离都小于某个阈值Thr1,合并两个区域的方法为:把两个区域的像素水平、垂直的坐标的最大最小值定义为合并后矩形后的水平、垂直的最大最小值,则可以定出合并矩形,不断递归合并,直到不能合并为止,最后合并出来若干独立不相交且距离超过Thr1的矩形区域。
作为优选,在步骤(33)中,把包含像素过少的矩形区域当做无效区域,其对应的16x16块全部再次设定为静止块。
本发明的有益效果是:通过视频内容分析,把视频内容分为多级重要度的区域,对不同重要级别的视频内容采用不同的处理以及编码方案,以保证重要视频元素得以高保真的保存,且编码码率大大减小,从而减小总存储量以及带宽需求,减少存储和带宽成本。
附图说明
图1是本发明的一种实施例示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1所述的实施例中,一种面向监控视频压缩存储的方法,具体包括如下步骤:
(1)事先确定3个编码量化因子Qp1,Qp2,Qp3,Qp1>Qp2>Qp3;这三个Qp可以配置,典型的Qp1为35,Qp2位30,Qp3为25。
(2)初始时,编码第一帧不做任何处理,统一使用Qp2编码第一帧,同时将第一帧的YUV数据保存在缓存中;
(3)编码第N(N>1)帧的时候,把整帧分成静止背景区域以及若干运动矩形区域,对运动矩形区域进一步视频分析得到面积更小的敏感物体的运动区域,编码过程中对敏感区域进行重点编码采用量化步长Qp3;对于运动区域采用量化步长Qp2;对背景静止区域采用量化步长Qp1;
具体操作方法为:
(31)先把当前第N帧从左上到右下分为以16x16共256个像素为单位的小正方形块,最右边或者底边不足16用固定像素填充为16x16;
(32)对每个正方形块,与缓存的第N-1帧的相应位置的16x16像素小正方形做对比计算,计算MeanSAD,如果MeanSAD小于某个阈值ThrSAD(典型的ThrSAD为3),则认为当前块为静止块,否则把当前块标识为运动块,最后得到所有的块都标识为运动块或者静止块;MeanSAD计算方法如下:加入N帧对应的小块的256个像素的亮度值分别为:Y
MeanSAD=(|Y
(33)使用递归的方法,把相邻的运动块或者矩形区域合并为一个大的运动矩形块,该矩形区域内所有16x16块都标识为运动块,把静止块区域标记为Level 1区域,剩下为Level 2区域;
两个区域(一个16x16块也可以称之为区域)相邻表示他们的像素之间水平、垂直最小距离都小于某个阈值Thr1(Thr1可以配置,典型的为16),合并两个区域的方法为:把两个区域的像素水平、垂直的坐标的最大最小值定义为合并后矩形后的水平、垂直的最大最小值,则可以定出合并矩形,不断递归合并,直到不能合并为止,最后合并出来若干独立不相交且距离超过Thr1的矩形区域。把包含像素过少的矩形区域(如包含16x16块的个数少于4)当做无效区域,其对应的16x16块全部再次设定为静止块。
(34)对Level 2区域,再次进行智能物件识别算法(采用现有算法,具体算法不在本专利范围内),识别出关键物件的更小的矩形区域,这些关键物件为人脸以及车牌,把该矩形区域对应的块标记修改为Level 3,至此完成了第N帧的视频图像处理,并把第N帧的输入数据保存到缓冲中;
(35)根据设定的编码量化因子,将Level 1的区域设定为Qp1,Level 2的区域设定为Qp2,Level 3的区域设定为Qp3,进行编码。此编码针对H264,H265,AVS2,AVS3等通用视频标准都试用,不过不同的标准需要配置不同的Qp1,Qp2,Qp3。
(4)令N=N+1,重复步骤(3)直到所有的视频帧编码结束。
本方法对于每帧视频画面,把整个画面区域分成三个重要度等级level,其中Level 1:静止区域,这部分往往是背景或者不动的物体;Level 2:普通运动区域,比如运动的行人,车辆等;Level 3:仅仅包含人脸或者车牌等重要敏感信息的运动区域。其中Level3为矩形区域,尽量占面积小,但又完全包含敏感信息;Level 2也是矩形区域,但其中包含Level 3的矩形区域;Level 2是矩形区域除去Level3矩形对应的区域。
如图1所示,小框为Level 3区域,为人脸,大框除去小框部分为Level 2区域,为普通运动物体区域,这里主要是行走的人。图像其余部分则为静止的区域,为Level 1。其中左侧站立的人因为没有动,也视之为Level 1。通常Level 1所占面积比例最大,甚至往往整帧都是Level 1(比如在晚上无行人时,长时间都是整帧为Level 1)。其次是Level 2区域,最小的是Level 3区域。Level 3区域通常占用最小的面积,却包含最重要的信息。
对于Level 1以及Level 2区域,采用低通滤波算法(如高斯滤波,具体使用何种滤波算法不在本专利范围内),对画面中的噪点加以去除。尤其是晚上的监控视频,噪点较多,采用低通滤波可以有效去除,这样图像虽然会变得略微模糊,但是去除了无用的高频信息,对编码压缩非常有利。Level 1区域滤波强度可以适当加大,Level 2区域滤波强度适当减小。而对于Level 3区域,则保持原始画面不变化,尽量保持细节。
本方法适用于任何视频标准,包含不限于H.264,H.265,AVS2,AVS3等。本方法不采用固定码率编码,而采用固定量化步长的方法,而且同一个Level用相同的量化步长。其中,Level 1量化步长较大,Level2量化步长中等,而Level 3的量化步长较小。(注:量化步长越大,压缩率越高,但编码损失也越大,反之亦然)。具体的量化步长可以根据需要配置。最终达到Level 3的区域保持较好的画质,而Level 2区域画质也不错,因为使用了高斯滤波,去除了无用高频信息,故而占用码率也不会很大,而Level 1区域由于既做了高斯滤波,也使用了较大的量化步长,并且画面是静止的,多数编码块可以用“跳过”块的编码方式,所以占用码率很小,质量损失也可以接受,并且编码计算量较小。
将本发明在Intel志强机架式服务器2Ru 2节点上面,使用IP监控摄像头的视频流做输入,可以做到高清30路高清压缩编码,编码码率平均降低8~10倍,而主观画质基本不变,对人脸、车牌信息识别率保持和原始4Mbps码流一致,可以节约存储8~10倍。
本方法先把视频图像的每一帧通过运动检测的方法,把整帧分成静止背景区域以及若干运动矩形区域,进而对运动矩形区域进一步视频分析得到面积更小的敏感物体的运动区域,这些敏感物体包含人脸、车牌等,进而针对不同区域做不同的图像处理。对非敏感区域做去噪处理以去除不重要的高频细节信息,而对敏感物体区域则保持不变。进而根据不同区域进行不同策略的编码。编码过程中,对敏感区域进行重点编码,可以采用较小的量化步长,可以保持此部分画质很高而不会占用太多码率;而对于运动区域采用普通的量化步长,画质较高的同时也不会占用太多码率;对背景静止区域采用较大的量化步长,码率节省较多,而画质也在可接受范围内。如此编码最终可以做到码率大幅下降。本发明通过视频内容分析,把视频内容分为多级重要度的区域,对不同重要级别的视频内容采用不同的处理以及编码方案,以保证重要视频元素得以高保真的保存,且编码码率大大减小,从而减小总存储量以及带宽需求,减少存储和带宽成本。
- 一种面向监控视频压缩存储的方法
- 基于人工智能的危险区域监控视频压缩存储方法和系统