0 弁言
监控视频不同于其他用于广告、宣扬、娱乐等的多媒体视频,它存在的目的是确保被监控区域的安全、检测被监控区域发生的变动。在相称长的韶光里,监控区域是没有变动且冗余的静态场景,因此,按照固定帧率事情的通用视频编解码算法在视频监控系统中并不得当。为了既能灵巧有效地检测出被监控区域发生的变动,又不影响监控视频的分辨率,提高监控的效率,同时最大程度地减少视频传输的数据量,本文提出了一种动静态场景剖析算法,来检测监控视频中的场景变动,把监控视频分类为静态场景和动态场景视频。通过动静态场景剖析算法与编解码算法的结合,实现了一种基于动静态场景剖析的监控视频编解码优化方案,该方案能有效区分监控视频的场景状态,并根据不同的场景特色进行不同的处理,一旦检测到静态场景,监控视频数据无需编码和传输。通过把该算法成功移植于OMAPL138,验证了算法在降落码流上的有效性。
1 算法设计

1.1 动静态场景剖析算法
动态场景视频即所在区域的视频画面有运动物体涌现,与背景帧在某些区域有很大的差别;静态场景视频即视频画面在一定范围内没有变革,与背景图像差别不大。目前,运动检测中最常用的方法有:帧间差分法、背景减除法、光流打算法和基于统计学的方法等[1]。帧间差分法相对付其他运动检测算法,具有算法实现大略、灵敏度高、实时性好、对场景光芒和动态环境适应性较强等特点[2]。由于本文只检测视频场景状态即视频中运动物体的有和无,因此很好地避免了帧间差分法在目标检测中目标区域产生“空洞”的问题[3]。基于此,本文提出了基于监控视频的动静态场景剖析算法,算法是基于“若何快速地检索到两帧图像有差别”这个基本问题提出的。场景剖析算法不必检测出两帧图像的所有差别,检测的是一帧视频的整体状态,故只须要对有代表性的少数像素点进走运算,这是动静态场景剖析算法差异于其他所有运动目标检测算法的最大上风。算法实现步骤如下:
(1)对视频进行前期处理,紧张是把彩色图像转化为灰度图像(YUV格式的视频提取Y分量即可)。
(2)对得到的灰度图像进行采样处理,提高算法效率。
(3)设第一帧为背景帧,G(n)表示第n帧图像,BG表示背景帧,背景帧的更新公式如下:
(4)第二帧开始与背景帧逐像素值相减,相减后大于阈值T1,则f(k)即是1,否则即是0。G(k,n)表示第n帧第k个像素点的像素值,个中1≤k≤M×N(图像有M行N列),BG(k)表示背景帧第k个点的像素值,公式如下:
(5)f(k)的累加值一旦超过阈值T2,则剖断G(n)为动态帧且退出,否则为静态帧,公式如下:
动静态场景剖析算法与运动目标检测算法的差异如下:
(1)通过动静态场景剖析后只有两种状态:动态场景和静态场景。
(2)场景剖析算法不必检测出两帧图像的所有差别,检测的是一帧视频的整体状态,只须要对少数像素点进走运算是动静态场景剖析算法差异于其他所有运动目标检测算法的最大上风。
(3)场景越繁芜,算法运行韶光越短。
(4)场景剖析算法不求差分图像,知足条件立即退出。
对算法的进一步优化:(1)虽然第(2)步采样会有一定的抑制噪声的能力,但由于是采样后的逐像素相减,还是不可避免地会有噪声的滋扰,为了抑制噪声的影响,可以在小区域内利用统计量的方法,如在4个点的小区域内有3个点的差值大于T1才判断f(k)=1;(2)考虑到从中间开始会缩短检索韶光且处理算法的DSP有多个运算器,故采取从中间向两端检索的办法,上半部分从左到右从下到上,下半部分从左到右从上到下。
1.2 HITAV编解码算法
本文用到的HITAV算法,即为翰华信息科技有限公司自主研发的音视频编解码算法,HITAV的基本压缩算法是小波模型(wavelet)[4]、多级树凑集群、广义小波和数学形态小波,不同于基于离散余弦(DCT)模型的H264/MPEG4算法。HITAV利用小波模型和多级树凑集群的多级分解与收敛算法,它不是靠降帧率(捐躯流畅性)或者利用人的视觉偏差(捐躯画质)限定静态场景来实现低码流,而是从源头-视频编码模型上实现真正意义上的低码流,它的编码效率(压缩比)根据不同的分辨率分别是H.264的2~5倍。在监控系统中,HITAV的低码流能大大地提高程序的运行效率和实时性。HITAV编码后的帧构造紧张部分如图1所示。
个中,width和height表示视频图像的宽和高;添加st_cnt字段用于标示静态场景状态的持续韶光;stream_length表示编码后视频数据的长度,本文的场景状态也由stream_length标示,stream_length即是零表示静态场景,stream_length大于零表示动态场景。
1.3 动静态场景剖析算法与HITAV的结合
编码时,原始视频通过动静态场景剖析之后分成动态帧和静态帧,动态帧通过HITAV算法编码,并把标记值flag设为1,编码后的帧构造体中的stream_length不变;只有当flag=1时才做静态帧处理并把处理后的flag值设为0,通过静态帧处理后,stream_length=0,即无数据部分。故经由编码,所有的动态帧都得以压缩,连续涌现静态帧表明系统进入静态场景状态,并对第一帧做静态帧处理,别的静态帧抛弃;在处理动态帧时,动态帧中st_cnt记录了在它之前的静态帧量,以便存储。编码流程如图2所示。
解码时,根据吸收到的视频数据构造体中的stream_length值判断视频监控的场景状态,如果为动态场景(即stream_length>0)则进行HITAV算法解码,并把解码后的数据覆盖显示缓冲区;如果为静态场景(即stream_length=0)则标志系统进入静态场景状态,并持续到下一个动态场景帧的涌现。解码流程如图3所示。
2 实验与剖析
2.1 基于OMAPL138的实验
OMAPL138 CPU基于C674x Fixed/Floating-Point VLIWDSP+ARM926EJ-S双核设计,集成128 MB DDR2和512 MB NAND Flash,DDR2作为运行内存,NAND Flash用于存储bootloader、启动时系统环境变量、Linux内核、文件系统。系统接口模块紧张有JTAG调试接口、自适应10/100 M网络接口、RS232串口等[5]。
系统灵巧利用Davinci架构的异构多核通信的根本组件Syslink[6],实现了视频数据在ARM核心和DSP核心之间的传输。Syslink为异构多核处理器间供应了高效的多核协作和通信机制。系统视频旗子暗记处理流程如图4所示。在ARM9中把捕获的视频数据复制到共享内存区,通过Syslink的地址映射,使得DSP得以访问。DSP中运行了基于场景剖析的编码/解码算法,ARM9主处理器完成网络功能和本地播放。
2.2 剖析
通过在OMAPL138中同时运行基于动静态场景剖析的HITAV算法和原始的HITAV算法,实验天生了两组数据,一组为视频通过动静态场景剖析编码后的视频数据,一组为通过原始的HITAV编码后的视频数据。编码后视频帧的长度变革和场景状态变革如图5所示,视频分辨率为480×800,选取个中1 000帧。
视频格式为YUV420,一帧原始视频的大小为480×800×1.5 B。由图5可知,通过基于场景剖析的HITAV算法编码后长度为零即表示监控视频在静态场景状态,这部分的视频帧在经由该算法后得以滤去。基于场景剖析的编解码算法拦截了无意义的静态场景视频数据。有场景剖析和无场景剖析的静态视频百分比与均匀压缩比如表1所示。
由表1可知,基于场景剖析的HITAV算法的均匀压缩比明显高于原始HITAV算法的均匀压缩比,且静态视频百分比越大,均匀压缩比的差值越大。
3 结论
本文先容了一种基于动静态场景剖析的监控视频编解码优化方案,详细先容了动静态场景剖析算法的基本事理,描述了动静态场景剖析算法与HITAV算法的结合。通过实验证明,动静态场景剖析算法有效地避免了视频监控中静态场景视频帧的传输,从而降落了视频的传输量,提高了视频的均匀压缩比。
参考文献
[1] SONKA M, HLAVAC V, BOYLE R. 图像处理、剖析与机器视觉(第二版)[M].艾海舟,武勃,译.北京:公民邮电出版社,2003.
[2] MONNET A, MITTAL A, PARAGIOS N, et al. Background modeling and subtraction of dynamic scenes[C]. IEEE International Conference on Computer Vision, 2003:1305-1312.
[3] 吕国亮,赵曙光,赵俊.基于三帧差分和连通性考验的图像运动目标检测新方法[J].液晶与显示,2007,22(1):87-93.
[4] 王相海,张跃平.基于小波的图像及视频编码研究进展[J].打算机工程与运用,2004(11):78-80.
[5] Texas Instruments Incorporated. OMAP-L138 C6000 DSP+ARM processor[EB/OL]. http://www.ti.com.cn/cn/lit/ds/symlink/omap-l138.pdf,2011.
[6] Texas Instruments Incorporated. Syslink user guide[EB/OL].[2012-09-04](2015-03-01). http://processors.wiki.ti.com/index.php/SysLink_ UserGuide.