基于DSP的远程视频监控系统研究
2016-02-06梁磊
梁 磊
(江苏无线电厂有限公司,江苏 南京 210012)
基于DSP的远程视频监控系统研究
梁 磊
(江苏无线电厂有限公司,江苏 南京 210012)
文章首先对DSP技术进行了概括性介绍,在此基础上,从硬件设计和软件程序设计两个方面入手,对基于DSP的远程视频监控系统的设计进行论述,希望能够对远程视频监控系统设计效率和水平的提升有所帮助。
DSP;远程视频;监控系统
1 DSP技术概述
数字信号处理(Digital Signal Processing,DSP),主要包括DSP算法、硬件技术、应用背景技术等,其中DSP算法是DSP技术的核心。当前,DSP技术已经被广泛应用于医学、通信、石油勘测、音频视频处理等领域中。DSP技术的实质是通过变换信号获取有用信息,将信息予以直观表达,即利用数字形式采集、变换、压缩、增强、滤波信号,在处理完信号后获取所需的信息形式。DSP技术以数字信号处理理论为基础,该理论在推动数字应用方面起到了重要作用。同时,DSP技术又吸收了其他科学理论,在不断完善自身理论的同时,使自己发展成为了新兴学科的理论基础。
2 基于DSP的远程视频监控系统设计
2.1 硬件设计
(1)图像传感器。在MOS技术日臻成熟的背景下,CCD,CID,SSPD 3种固体图像传感技术得到了快速发展,其中以CCD的应用最为广泛。本系统采用WV-CP460彩色摄像机,与普通摄像机相比,该摄像机由于采用了CCD彩色图像传感器,并且具备超级动态Ⅱ功能,所以可扩展动态范围,保证图像传输的灵敏度。WV-CP460彩色摄像机进行了耐用设计,十分适用于监控所在的外部环境,且视频输信号为PAL制复合视频信号。
(2)数字信号处理器。DSP芯片具备稳定性强、可大规模集成、易于实现自适应处理等优势,在一定程度上促进了DSP技术的快速发展。随着DSP芯片功能的逐步强大,使得DSP技术关键点落在了DSP算法上。DSP芯片根据数据支持类型的不同,可分为定点DSP和浮点DSP,前者在算术操作时使用小数点位置固定数,后者在算术操作时小数点位置可根据数据的不同变化进行浮动[1]。本系统的数字信号处理器要满足大运算量的要求,采用TMS320C6416的DSP,工作时钟为600 MHz,考虑到视频FIFO对系统的影响,将外接口时钟选定为100 MHz。
(3)开发板的选择。国内某公司开发的DAM6416P是一种用于音视频采集、压缩、播放的评估开发板,该开发板上可集成DSP,FPGA、视频解码芯片等器件,主要包括以下构成部分:A/V接口、DSP处理器、PCI总线接口、LED、扩展同步接口、通信接口以及电源。CCD摄像头采集模拟视频,将模拟视频输入到ADC,再由ADC将其转为数字信号。数字信号经FPGA传入视频FIFO,以便DSP在DMA中进行数据读取。
2.2 系统软件设计
(1)软件开发环境。CCS是集成性DSP软件开发工具,可提供统一的开发环境,根据源程序类型调动适当的代码产生工具,并具备调试和实时分析功能[2]。在开放式插件结构中,CCS可集成C编译器、汇编器、优化器、软件模拟器、实时基础软件、数据交换软件、实时分析、数据可视化等软件工具,如图1所示。开发者可利用CCS编辑、编译、调试软件,并对软件进行性能测试和项目管理。由于CCS实现了数据可视化和数据分析实时化,所以可大幅度降低DSP系统的开发难度,节省开发者的时间和精力。
图1 DSP的开发环境
(2)DSP/BIOS。DSP/BIOS是DSP的静态内核程序,可提供基本系统服务,包括线程管理、定时、通讯、资源控制等功能。开发者利用DSP/BIOS只需通过静态配置,就可有效管理复杂的多任务机制,大幅度降低多任务机制的协作难度,有利于提高系统资源管理效率[3]。DSP/BIOS由以下3个部分构成:
①实时内核。该部分由3个部分构成:a线程调度,包括软硬件中断、进程、系统后台线程;b同步,包括邮箱、原子量、队列、信号旗;c通讯,包括数据流线、主机接口、数据管道。
②实时分析。用户可在实时分析部分提供的Statistics和Log模块中,获取目标系统的运行数据。
③静态配置工具。该工具为图形化的配置工具,可进行属性设置。
DSP/BIOS按照应用程序模块的功能定位,将代码设定为500~6 500字之间,通过多模块的API实现对DSP/BIOS的使用。API的调用形式为C语言,在C语言的程序内,API也可通过汇编代码进行调用。
2.3 C语言对算法的实现
DSP系统的算法仿真需要移植到CCS上予以实现,所以选择具备较强可移植性的C语言进行算法实现。在整个程序中,具体划分为图像获取、图像处理、图像显示、通信模块4个模块,为了保证各模块在修改过程中能够协调、匹配和移植,必须在各模块之间留下接口。
(1)图像获取模块。在该模块的运行中,采用了视频模拟方法,即预先录制一段视频,而后依次读取视频中的每一帧,最后将其输入处理模块。
(2)图像处理模块。该模块是整个程序的核心模块,也是移植到DSP的主要部分,需要完成以下工作:选择区域、提取目标、提取重心、生成运动轨迹、压缩图像等。
(3)图像显示模块。该模块具备显示功能,以及解压缩、图像融合两种算法,在DSP算法移植中不包括这种两种算法。
(4)通信模块。该模块是算法移植的辅助模块,能够建立起PC与DSP系统的通信连接,方便传输数据。
2.4 程序移植
(1)代码移植。DAM6416P为DSP代码移植提供了丰富的软件资源和库函数,并且可优化处理代码。
(2)数据处理。在IEKLIB库支持板上进行应用程序开发,能够快速处理多媒体和通信数据。在本系统中,摄像头提供的标准PAL制式模拟视频数据需要通过视频输入端口进行采集,将采集后的模拟视频数据转换为RGB信号,对RGB信号进行处理,输送至VGA视频输出端口进行输出,以便在显示器上进行观看。
(3)视频转换。受系统视频数据转换的限制,只能将PAL制式转化为Y∶U∶V=4∶2∶2存放格式,具体如表1所示。在模拟视频数据转换后,VGA所呈现的图像只是一种数字信号,并非为真彩色,这会降低图像色彩数,影响算法识别精度,但从整体上来看并不影响程序移植效果。
表1 Y∶U∶V的存放格式
(4)初始化。DSP/BIOS需要进行初始化,由于API根据不同应用程序配置不同的模块,所以在本系统中使用CSL和TSK模块,在执行程序之前先进行CSL模块初始化,再进行开发板初始化。
2.5 代码优化
(1)编译优化。代码优化选用C6000编译器,该编译器包括性能优化和代码尺寸优化选项,可达到最高程度的优化效果。C6000编译器能够执行各种优化循环方法,如移除未使用过的函数,移除重复表达式等,这种优化方法可实现对代码尺寸的优化控制,提高优化选项的性能。
(2)其他优化。除了利用编译器进行代码优化外,还可采取以下方法:①将C语言程序替换为内联函数intrinsics,该内联函数属于在线函数,能够与C6000汇编指令映射;②将宽长度的存储器应用于短字长数据中,如将两个32位数据放在一个64位寄存器的高位和低位,对短字长数据进行打包处理。这样一来,可使Load指令对多个数据进行同时访问,大幅度缩减访问所占用的内存空间。
3 结语
综上所述,本文基于DSP技术,设计了一款远程视频监控系统,文章从硬件和软件两个方面对系统的设计过程进行了分析。该系统除了能够实现目标的有效识别之外,还能具备图像压缩传输、图像融合及显示等强大的功能,从而使该系统可在智能小区、连锁超市、金融机构等场所的监视中进行应用,给各个场所相关业务开展的安全性提供了有效保障。
[1]宋从超.基于DSP和H.265的视频监控系统研制[D].淮南:安徽理工大学,2015.
[2]邱光能.基于嵌入式的远程视频监控系统的设计与实现[D].长沙:湖南大学,2013.
[3]刘丽娜.基于DSP的智能视频监控系统的设计[D].淮南:安徽理工大学,2013.
Research on remote video surveillance system based on DSP
Liang Lei
(Jiangsu Radio Power Plant Co., Ltd., Nanjing 210012, China)
This paper first makes a brief introduction to the DSP technology, on this basis, starting from the hardware design and software design two aspects, the design of remote video monitoring system based on DSP are discussed. Hope that through this study can help to improve the design efficiency and level of the remote video monitoring system.
DSP; remote video; monitoring system
梁磊(1986— ),男,江苏连云港,专科,助理工程师;研究方向:电子产品生产管理。