关键词 视频服务器 嵌入式 MPEG-4 存储体系
1引言
视频监控系统是日常生产生活中的重要辅助设备,应用十分广泛。当前视频监控系统正逐步由模拟化走向数字化。随着视频压缩技术和网络技术的发展,开发新一 代的基于计算机网络和多媒体MPEG-4压缩算法的视频监控系统已成为整个行业技术发展的主要方向之一。视频服务器是视频监控系统中最关键的组成部分,主 要负责视频资源的存储播放,其工作能力极大地影响着视频监控系统的服务能力和服务质量。本文提出并研究设计了一种基于MPEG-4的嵌入式网络视频服务 器。该系统采用目前计算机领域最为活跃的嵌入式系统技术,以高性能嵌入式处理器、DSP处理器和嵌入式Linux操作系统为核心对嵌入式视频监控模块进行 设计,并采用流媒体MPEG-4技术,通过IP多播技术、RTP/RTCP协议实时传送视频监控流。服务器外部有多种网络接口,可方便地接入网络。可实现 通过Internet或Intranet对任意一个监控点进行实时监控,实现一个监控中心,多个监控点的控制。非常适合对那些有众多的监控单元,又分布比 较松散的对象进行集中和即时监控。在监控端,工作人员只需一台与视频服务器联网的计算机即可观看实时图像。视频服务器每秒钟所传输的帧数可以根据网络情况 自动调节,以适应通信网情况的变化。如图1所示为视频监控系统的基本结构。
图1 视频监控系统的基本结构
2 视频服务器采用嵌入式Linux的优点
从目前的监控系统来看,监控系统产品都是基于通用PC平台的。与嵌入式平台的系统相比,PC平台的系统普遍存在着一些问题:首先,当前PC操作系统的主流 Windows主要是针对个人的办公应用,面向通用目的的没有专用系统的针对性,在资源的使用上不一定能做到物尽其用、按需配置,可能会存在资源配置的浪 费,因此,PC系统价格上与嵌入式系统相比处于一定的劣势;其次,在实践中Windows存在稳定性较差和实时性不够强的问题。使用嵌入式Linux操作 系统是我们设计视频服务器的最大特色。它既不同于大多数的监控系统使用商业化的操作系统存在版权、高价位、非开放性等问题,又不影响监控系统使用上的可靠 性、面向用户开发的灵活性和用户承受能力。这使其真正适合于有高可靠性要求的监控场合。操作系统由于其源代码的完全开放和免费,通过研究Linux其内核 代码,可对它的可移植性、可裁剪性、良好的稳定性和可靠性有比较透彻的了解,内宽的网络和强大的Linux团体的支持可以作为我们开发监控系统的最佳选 择。
3 视频服务器的设计
我们设计的视频服务器分为4个部分:视频压缩系统、存储系统、通信系统和操作系统。这4个系统分别实现视频节目的压缩、大容量视频存储、快速的传输通道和节目检索与服务等功能。以下对所设计视频服务器的这几个方面分别进行论述。
1.1视频压缩系统
视频服务器的工作主要是编码和解码。图像视频压缩的标准有H.120、H.261、H.263、JPEG、MPEG-1、MPEG-2等。以上标准均偏重 于某几个应用领域,交互性较差,不能提供对各种网络的一致性访问,容错性、灵活性和可扩展性比较差。1998年11月MPEG-4成为国际标准。与 MPEG-1和MPEG-2相比,它对于传输速率要求较低,在4800~64000bits/sec之间。MPEG-4利用很窄的带宽,通过帧重建技术来 压缩和传输数据,以求利用最少的数据获得最佳的图像质量。
MPEG-4引入了基于对象表达的概念,用来表达视听对象AVO(audio/visual objects);它具有高效编码、高效存储与传播及可交互性的特性。MPEG-4允许已有的AVO生成复合的AVO,由此生成AV场景,并采用SNHC 的方法来组织这些AVO。对于AVO的的数据还能灵活地多路合成与同步,以便选择合适的网络来传输这些AVO数据,并允许接受端的用户在AV场景中对 AVO进行交互操作。图2简单描述了MPEG-4视频编码原理。通过对输入视频序列的分析,确认n个视觉目的的对象为编码对象,将其认定为n个VO(n= 1,2…),对每一个VO编码后形成的这个VO的VOP数据流。VOP的编码包括对运动(采用运动预测方法)及形状、纹理(采用变换编码方法)的编码。由 于VOP具有任意形状,因此要求编码方案可以处理形状和透明信息。除去VO的图像的其余部分¬-背景,仍采用传统的矩形DCT变形编码。最后VO场景描述 信息的编码、VOP流、背景一起送入MPEG-4帧复合器,形成MPEG-4流输出。MPEG-4技术应用在视频监控系统中具有节约存储空间、占用网络传 输带宽少、错误恢复能力强、图像质量高等特点,所以我们选用MPEG-4进行图像编解码。
视频服务器另一个很重要的功能就是节目播出,这需要在解码通道设计中提供两种基本功能:多个文件的连续无缝解码输出和任意并准确地定位解码文件的入点和出点。只有实现了这两个功能才能达到视频服务器的播出功能。
2.2 存储系统
视频服务器所使用的硬盘不同于普通计算机硬盘,由于视频信号数据量大、传输速率高,因此对硬盘的速度要求高。所以为了服务器的效率,视频文件的存放过程必须进行优化。我们采用的优化方法主要是采用高性能的存储设备——磁盘阵列RAID,以及将视频文件分段储存。
磁盘阵列RAID是指一组具有可靠性和可得性的相对独立的硬盘存贮序列。RAID分为6个级别:RAID0到RAID5。其中RAID3和RAID5被广 泛使用。两者都采用N+1的数据冗余体系,通过奇偶校验运算记录校验数据。RAID3的校验位固定记录在指定的物理硬盘。RAID5则将校验位分布在阵列 的各个硬盘中。另一个关键的区别是RAID5主要是针对小数据多文件的读写设计(如数据库),其一次读写的数据块比RAID3少。由于视音频文件较大,写 数据时会连续占用阵列的多个数据块。正是因为视频数据记录的这一特点,决定了用何种RAID方式能更满足数据读写高速度、低延时的要求。数据存储绝大多数 是多进程并发的过程,因此数据读写性能需要在多进程条件下判断。根据RAID3和RAID5的特性,我们发现在写文件时RAID3表现出来的不仅是数据写 速度快,而且延时小。同样的,由于RAID3和RAID5的校验位不一样,RAID3的读速度和低延时性能都比RAID5优越。从以上的分析我们可以看出 RAID3更适合视音频数据大文件、低延时要求的文件读写。因为视频文件分段储存策略与存储I/O密切相关,所以考虑到充分利用I/O带宽的理由,我们把 节目数据分成小数据块放置到不同的硬盘或者服务器上。未分块的节目数据容易造成负载不平衡现象,可以采用每20秒为一段来存放数据。
另外我们设计的视频服务器采用独立的RAID控制器,而不是依赖系统平台的RAID卡方式。因为后者如果遇到系统崩溃,数据将很难恢复;前者只要重建系统连接即可找回原数据,保证数据的完整性。RAID控制器还具有故障自动报警和数据自动恢复功能。
2.3 操作系统
该部分主要负责CPU的调度、定时器的操作、线程的管理和进程间通信等问题。
由于VOD业务实时性的特点,视频服务器每接收到一个客户的请求,都会开辟一个新的线程,这个线程负责用户的各种操作,包括:播放、控制云台转向、各种计 划任务的制定等操作。这个线程是由两个线程组成的生产者—消费者模型。其中生产者从磁盘中读取媒体数据,并将数据发送到内存中。消费者负责从内存中读取这 些数据并通过网络发送到点播用户。
为实现快进、快退功能,有两种可供选择的方法。其一是,当用户发出快进指令后,视频服务器以高于正常播放两到三倍的速率读取数据,并发往用户。同时,用户 的回放速率也提高到对应的水平。这与录像机中的快进操作过程很相似,优点是服务器只需存储一份正常速率的视频文件,从而节省了存储空间。缺点是视频服务器 和用户终端的工作负载会成倍增加,传输网络也会因流量的增大而易于出现拥塞。这一方法还有一个缺点,就是很难实现快退操作。另一种方法是分别存储正常、快 进、快退三个文件。首先从正常速率的文件中,抽取部分I帧图像,以顺序的方式形成快进文件,以逆序的方式形成快退文件。三种播放文件之间存在确定的对应关 系,当从一种播放状态转移到另一种播放状态时,生产者线程便从对应的文件位置开始读取数据,以保持用户视觉上的连续。这种方法的不足之处就是需要较大的存 储空间,但因具有易操作的优点,所以我们采用这种方法。
为了响应用户在正常播放中的交互操作,还须解决进程间的通信问题。我们采用利用信号量的方法,即在生产者、消费者两个工作进程之外,创立第三个控制进程,通过信号量获取从监听进程发来的工作状态转换命令,去调整两个工作线程的工作方式。
2.4通信系统
该子系统主要解决两方面的问题,一是服务器对用户点播的接纳,另一个是视频数据向网络的发送。我们采用的是服务器推动(server push)模型。让服务器以一定的速率发送数据到客户,客户接收到数据后进行解码和回放。一旦视频对话开始,视频服务器就连续传送数据。在视频服务中,服 务器推动的传输模式与客户拉动模式相比,能够支持更多的并发用户且传输效率更高。
在网络上传输视频信号非常消耗网络带宽,为了满足服务器的控制功能,必须设计一个自己的网络传输协议,为控制通信留出带宽,以保证控制命令的完成时间可以 预测。目前因特网上数据的传输主要采用TCP和UDP协议。TCP协议能提供有序、可靠的服务,但是一旦数据丢失会带来严重的延迟,无法保证实时性; UDP是小的、节约资源的传输层协议,其操作执行比TCP快得多。它适合于不断出现的、和时间相关的应用。
由于UDP的不可靠性,基于UDP的应用程序在不可靠子网使用时必须自己解决可靠性,诸如报文丢失、重复、失序和流量控制等问题。在实现连续媒体数据传输 时,发送方和接受方应该能处理图像传输中发生的数据丢失、延迟等一些问题。因此,在UDP协议之上,采用RTP(实时传输协议)和RTCP(实时传输控制 协议)来完成视频数据的传输。
以RTP协议标准把数据封装,再由IP网络层封装为IP包传输。RTP协议通过报头中的序号字段排序RTP报文分组,以消除重复分组,保证视频和音频流内 同步和连续的播放;时戳字段可作为流间同步标识,以保证视频和音频流间同步和连续的播放。另外,需要周期性的发送RTCP报文,并根据传输质量的反馈来控 制RTP包的传输。
由于音、视频数据对实时性要求比较高,而控制数据则对可靠性要求较高,因此,本系统采用两种通信协议;TCP/IP协议传输通信控制数据,UDP/IP协议传输视频数据。其RTP的数据封装如图3。
图3 UDP/IP封装的RTP数据
4 视频服务器的特征
本视频服务器具有以下的一些特征。
采用嵌入式实时操作系统和专用的硬件结构,无论是软件还是硬件都保证了嵌入式网络视频服务器比基于PC机的系统具有更高的实时性、稳定性和可靠性。可以方 便的联动其他安全防范设备,如湿度、温度、烟感等报警器。本视频服务器使用MPEG-4视频压缩技术,与MJPEG和H.263等压缩方式比,具有压缩比 高、码流小、图像质量好等优点,特别适合于Internet环境下的实时监控,并且可以节省存储空间。
5 结束语
随着VOD业务的不断普及,人们对视频服务器的设计不断提出新的要求。有些问题值得密切关注。其一是,当系统突然面对大量的客户请求时,必须解决图像、声 音数据流播放的高速、连续、可靠和同步的问题。这就要求视频服务器在设计时采用一定的策略来改善这方面的性能。另一方面是为了进一步提高视频服务器的服务 用户数,节省视频服务器的系统资源,减轻骨干网的流量负载,可采用多播的方式把那些点播同一节目且具有相同(相近)路由的用户统一进行服务。
参考文献
[1]GREIFFENHAGEN M, COMANICIU D, NIEMANNH. et al. Design, analysis and engineering of video monitoring systems: an approach and a case study[J], Proceeding of the IEEE, 2001,90(10):1498~1517
[2]Jack Y B Lee.UVoD:An unified architecture for video-on-demand services.IEEE Communication Letters,1999,3(9):277~279
[3]SCHULZRINNE H, CASNER S, FREDERICK R, etal. RTP: a transport protocol for real-time applications[J], RFC3550,2003
[4]卢江辉.视频服务器设计与基于VDCP的应用.现代电视技术,2004(1):105~110
[5]钟玉琢,向哲,沈洪.流媒体和视频服务器.北京:清华大学出版社,2003:65~70
[6]涂杰,郭晓辉等.MPEG-4在数字视频远程监控系统中的应用.计算机应用与软件,2004(2):22~23