本文针对视频服务器的通用结构做了详细地探讨,并对该产品未来的智能化设计提出了一些设想,希望能为广大读者提供参考。
音视频压缩技术是视频服务器和智能视频监控系统中的关键技术。在数字多媒体压缩(特别是视频压缩)领域内有很多国际标准(如ISO/ITU-T技术委员会的JPEG标准、CCITT制定的H.26X标准以及著名的MPEG标准等)。其中,MPEG-4标准的主要特点是可对图像中的内容进行编码,其核心是基于内容尺度可变性(Content-based scalability)即可以给图像中的各个对象分配优先级。其中,比较重要的对象用较高的空间和(或)时间分辨率表示;对于比较低的比特率应用系统来说,尺度可变性是一个关键的因素,因为它提供了自适应可用资源的能力。例如,该特性允许对具有较高优先级的对象用可接受的质量进行显示,次优先级的对象则用较低的质量显示,而其余内容(对象)则不显示。对于监控系统来说,在绝大部分时间内,监视画面的背景都保持不变,因此,在要求的比特率比较低时,对于监视画面的背景部分可以以较低的质量显示,这样并不会影响整个画面的效果。在MPEG-4发展的基础上,现又联合推出了更为优秀的H.264标准,目前新设计的系统,尤其是智能视频监控系统,大多采用此标准。
智能视频监控系统的产品形态之一是使用嵌入式视频服务器,这是一个基于客户机/服务器模型的系统,主要由现场采集设备、嵌入式视频服务器、传输网络以及监控终端组成。基于嵌入式视频服务器为核心的视频监控系统如图1所示。
嵌入式视频服务器硬件设计
嵌入式视频服务器的硬件部分,主要由嵌入式微处理器、系统Flash、系统SDRAM、编解码SDRAM、MPEG-4或H.264音视频编解码芯片、音视频A/D与D/A转换芯片、以太网络接口、大容量硬盘、光盘刻录机以及一些数据采集传感器组成。从总体上来看,这是一个以嵌入式微处理器+专用音视频编解码芯片为核心的基础平台。信号关系为:将模拟的音视频信号通过A/D转换成没有被压缩的图像数字信号,再通过DSP或具有图像处理功能的ASIC芯片进行图像数据的压缩编码,将压缩编码的数字图像数据存储在硬盘等大容量存储设备中,或通过网络实时监控远程图像;给使用者提供简单、便捷的网络或遥控器OSD(On-Screen Display)菜单方式,以便对存储的录像数据进行检索、回放和备份等。其通用硬件结构如图2所示。
工作流程为:服务器上电启动后,系统被加载到与嵌入式CPU相连的SDRAM中运行,CPU通过串口控制云台,转动摄像机获取视频信号,经过采样芯片实现A/D转换,转换后的数字视频数据传给MPEG-4或H.264音频/视频压缩芯片,完成MPEG-4或H.264视频压缩,压缩后的数据缓存于MPEG-4或H.264压缩芯片内的FIFO中,当FIFO半满时就触发主控CPU产生中断,由处理器的中断服务子程序获取该数据并存放于系统缓冲区中,等待发送程序读取。当服务器监听到监控端的视频请求时,服务器将视频数据打包并以流媒体的形式通过网络接口芯片传输到监控端上去。CPU同时接收监控端发来的控制信息,通过CGI(Common Gateway Interface)通用网关接口发送给应用程序。应用程序负责将控制信息通过RS232串口给摄像机云台。其功能层次关系如图3所示。[nextpage]
视频服务器主要元器件选择原则
嵌入式微处理器
嵌入式微处理器是整个硬件部分的核心,嵌入式系统选择处理器时主要需要考虑以下几个方面:处理器的性能,处理器所支持的开发工具和操作系统,处理器的成本、代码兼容性、算法复杂性以及功率消耗等。最好选择为电信和网络市场而设计的集成通信微处理器,其体系结构为内核和外围两个部分,内核部分完成任务调度和内存管理,外围部分承担通信处理模块(CPM)等任务。CPM应同时支持多个快速的串行通信控制器(FCC),多通道控制器(MCC),多个串行通信控制器(SCC)和串行管理控制器(SMC)串行外围接口,支持60x总线,其数据线为64位,地址线为32位,支持PCI/LOCAL总线,其数据线为32位,地址线为32位。
音视频编解码芯片
原始的音视频数据量很大,需要占用非常高的带宽,如果需要进行长时间录像、存储,必须保证在一定图像质量的前提下通过压缩技术尽量降低音视频的码率,减少需要存储的数据量,以满足更长时间的存储要求和减少成本,同时也可以更好地满足网络监控要求。选择音频/视频编码解码芯片的主要考虑以下几个方面:
•芯片内集成有多个信号处理/控制单元,包括一个视频编码(压缩)器、一个视频解码(解压)器和一个片内CPU(内部扩展一个音频编码DSP、一个音频解码DSP、一个多路复合单元和一个多路解复合单元);
•具有可编程、高性能和低功耗特点,因为每个信号处理/控制单元都由一个RISC处理器和专用的硬件加速器构成。此外,视频编、解码器内部还集成了一个专用的SDRAM;
•在系统上电/复位时,视频编、解码器的固件程序可由外部主机(Host)载入各自专用的SDRAM;而编解码芯片内CPU的固件程序则可载入编解码芯片外挂的SDRAM;
•芯片的主机接口采用标准PCI接口,符合PCI总线规范2.2;
•为了使编、解码性能达到最佳,微处理器内部集成了一个多通道DMAC。系统Host可直接通过主机接口对编解码芯片进行控制,MPEG或H.264数据流采用DMA方式传输;
•提供兼容的I2C总线,可方便地对外围芯片进行控制。[nextpage]
I2C总线
I2C(Inter-Integrated Circuit)总线是由数据总线(SDA)和时钟总线(SCL)构成的串行总线,可发送和接收数据,在CPU和被控IC之间,IC与IC之间双向传输数据,最高传送数率达到100Kbps。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。任意时间点上只能有一个主控,利用I2C总线主要完成对外围设备进行灵活控制。
视频服务器软件的设计
视频服务器软件主要功能为:
•构造一个微型的嵌入式Web服务器,初始化socket,并监听等待客户机的连接请求;
•对客户机进行认证,向客户机发送初始化参数;
•将图像数据发送给监控客户机,并动态更新图像数据,处理监控端与服务器之间的通信以及对云台实时控制等任务,接收前端各类报警传感器输入并转发到监控的客户端;
•对采集的视频图像进行分析处理,进行压缩编码。
服务器软件体系构架如图4所示。
Web服务器
在linux操作系统下,主要有3个Web Server:Httpd、Thttpd和BOA。Httpd是最简单的一个Web Server,它的功能最弱,不支持认证,不支持CGI。Thttpd和BOA都支持认证、CGI等,功能都比较全。其中Thttpd是一个单任务的HTTP服务器,能够实现动态WEB技术,源代码开放、性能高。同时服务器程序本身所占空间很小,因而十分适用于嵌入式系统。目前,有的linux的代码中已经包含Thttpd的源代码,对其运行环境、参数等进行设置可以很方便地将其在嵌入式CPU上实现。Thttpd通过HTTP协议与监控端浏览器软件进行信息交互,提供其他应用程序模块的接口,此外,它还要对监控端的访问权限进行控制,过滤监控端的请求和控制信息,处理多个监控端的请求和控制的同步和优先级问题。
CGI(Common Gateway Interface)
通用网关接口(CGI)是外部扩展应用程序与Web Server交互的一种通用的接口标准,它给Web服务器提供一个执行外部程序的通道。客户端先向CGI程序发送基于HTTP协议的请求和命令触发,CGI程序然后将客户端的请求和命令传给服务器应用程序;在服务器应用程序完成相应操作后,CGI程序将结果返回给客户端,CGI是客户端与服务器中其他程序通信的桥梁。基于这种交互模式,客户端可以查询和设置视频服务器的IP地址、密码等参数,控制云台的转动等操作。
关于视频分析与处理软件部分,限于文章篇幅,不再赘述。
结论
智能视频服务器是网络化和智能化视频监控系统的产品形态之一。在智能视频监控系统中,数字视频压缩技术、数字视频网络传输技术、高效大容量的视频存储和检索技术、监控场景中运动检测与告警信息处理技术以及监控场景中物体识别与跟踪技术均是关键技术,而这些技术实现的基础平台是视频服务器DVS、DVR、网络摄像机、专用视频分析与处理平台。本文仅对视频服务器基本结构、设计要素进行了初步阐述,只要在其上增加视频分析与处理智能算法部分,即可成为智能视频服务器,期望对新产品的设计者有一定借鉴作用。(作者:北京冠林盈科智能系统集成有限公司 于宝玉)