一种改进的嵌入式网络视频监控系统
扫描二维码
随时随地手机看文章
1 引言 基于pc的网络视频监控系统在20世纪90年代末得到迅速发展,目前仍然是视频监控系统的主流,但这种系统有稳定性不够好、功耗高、软件开放性较差的缺点。随着嵌入式系统的广泛应用,出现了基于嵌入式的网络视频监控系统,它结合多媒体技术、图像处理技术、嵌入式操作系统技术和网络技术,使视频监控技术发展到一个新阶段。当前,这种嵌入式视频监控系统正以其体积小、功耗低、成本低、稳定性高、操作简单、软件开放性好等优点获得越来越多的应用。 2 嵌入式视频监控系统总体构架 本系统由视频监控终端和监视控制中心系统两部分组成,如图1所示。其中视频监控终端由运行着视频监控软件的嵌入式操作系统和摄像机构成。摄像机采集视频,采用h.263编码,进行软件压缩后,采用h.263编码,利用ip网传送给监控中心,接收监控中心的控制命令,改变监视图像的分辨率和帧率等参数。监控中心一般由一台运行监控中心软件的计算机承担,接收来自远程监控终端的压缩视频流,对其进行解码,利用显示模块显示监视画面,同时将压缩视频流存储。 3 传统嵌入式视频监控终端方案介绍 一般的嵌入式系统多用单arm核的芯片作为中央处理器。arm采用risc指令集,它适合处理控制代码,而不适合语音处理、视频编解码等实时数字信号处理。在网络监视终端中不但有复杂的控制代码,还有相当频繁的视频编码任务,单arm核的嵌入式系统很难胜任视频监控终端的全部工作,用这种系统实现的视频监控终端由于arm核本身数字运算能力的限制,会造成视频编码帧率很低,不能满足人眼对监视视频流畅度的需求。dsp是专门为数字信号处理设计的芯片,它具备语音、视频应用所需要的实时信号处理功能。如果利用arm和dsp各自的优势将视频监控终端的任务合理分配给两个核来完成,将会大大提高整个系统的性能。视频监控终端的软件系统框图如图2所示。 4 基于omap5912的改进方案设计 omap5912是ti公司开发的arm+dsp双核架构的处理器。它集成了高功效的tms320c55x数字信号处理器(dsp)和高性能arm9 risc微处理器。因此,omap5912可提供视频压缩编码所需要的算术运算集中的处理能力,同时还可提供系统层操作所需要的通用性能。dsp和arm通过一套共享式存储器架构,利用ti提供的dsp/bios bridge的api,可方便地把需要大量运算的功能交给dsp组件,以异步方式执行,且不占用arm处理器的核心资源。对于基于omap的开发,软件开发者可利用ti独特的dsp/bios bridge快速地完成整个系统的程序开发,并不必分别替两颗处理器书写程序,也不必在较困难的dsp程序语言环境下工作。 根据嵌入式视频监控终端所要执行的任务,可将视频采集模块、网络传输模块、界面控制模块和操作系统交由arm执行,而把视频编码模块交由dsp单独完成。arm通过dsp/bios bridge提供的应用程序接口控制dsp中视频编码任务的执行,并与dsp交换任务运行结果和状态信息。在本系统中视频编码部分程序,可通过标准的多媒体应用编程接口(mm api),使用多媒体引擎,对相关的dsp任务通过dsp api接口用dsp/bios bridge来完成;最后由dsp/bios bridge对数据、i/o流和dsp任务控制进行协调。改进的视频监控终端软件系统如图3所示。 在具体实现过程中,还需特别考虑dsp端视频编码算法的代码优化。 首先,合理分配片内存储器(速度快但容量小),把使用频繁的变量(如各种编码量化表、idct系数等)存放在片内存储器,由于原始视频数据的数据量很大,一帧yuv420的qcif图像,需要37 kbyte,因此,不能将一帧图像的全部数据都存放在片内,可将一帧图像数据通过dma分多次从片外存储器读入到片内处理。 其次,尽量使用ti提供的图像处理函数库,即imglib(它是专门为图像和视频处理开发的库,ti对该库进行了深度优化,使用imglib既简化了开发过程,又能最大限度地提高视频编码算法的效率)。 第三,使用dsp内部自带的一些特殊运算指令(主要执行一些简单的算术操作,它们是由优化的汇编代码写成),可提高代码执行的效率;最后,为了使程序的执行效率更高,可采取一些代码优化技巧,例如多用并行操作,减少判断分支转移,合理地使用多重循环,为运算方便可将浮点数定点化,使用移位加减操作代替乘除法等。 本系统实现了双核架构协调工作,克服了传统单arm核实现方案的数字运算能力不足和单dsp核控制代码复杂,易用性不好的缺点。在实际应用中,用户能体验到它所提供的监控图像质量及帧率都比单arm核的系统有明显提高,并且系统的易用性没有因为增加了dsp核而降低。下面,将给出实验数据,说明两种方案的差距,让读者更直观体会到改进方案的优势。 5 测试结果 测试硬件平台为单arm9核的三星s3c