为了免除越来越多的城市白领阶层对家人健康和家庭财产安全的后顾之忧,基于数字视频录像机DVR的网络化家庭监控系统应运而生,它可使得你无论身在全球何处都可以通过互联网和全球移动通信系统随时监控家庭的安全环境。本文基于TI公司专门为视频处理而开发的TMS320DM642芯片具体说明网络化数字视频监控系统实现的技术挑战和开发要点。
手机和MP3播放器今年增速最快。(VPM642原理框图)
视频监控是通过获取监控目标的视频图像信息,对视频图像进行监视、记录、回溯,并根据视频图像信息人工或自动地作出相应的动作,以达到对监控目标的监视、控制、安全防范、和智能管理,已被广泛应用于军事、海关、公安、消防、林业、堤坝、机场、铁路、港口、城市交通等众多公众场合,随着技术的进步和成本的降低将逐渐普及到家庭安全防范和娱乐应用。
早期的视频监控是以摄像机、监视器(电视机)组成的纯模拟的视频监控系统,称为闭路监视系统。其特点是一个摄像机对应一台监视器(电视机)的监视,只能监控范围很小的区域。
随后出现了视频切换设备,改变了摄像机和监视器(电视机)的1对1的方式。并且随着单片机技术的不断完善,闭路监视系统加入了多路视频切换、摄像机云台/镜头控制、和报警联动等数字控制功能,实现了数字控制的模拟视频监控系统。
到了九十年代,随着计算机多媒体技术、通信技术的长足进步,人们开发出了视频捕捉卡,并将其与PC机结合,出现了数字视频监控系统。并且随着视频压缩编码技术、和网络通讯技术的发展,基于PC机的数字视频监控系统功能更加完善和丰富。但是其系统的可靠性和稳定性均存在一定的问题,而且其成本昂贵。
图2:TMS320DM642视频口与视频编解码器的接口。
直到本世纪初,随着以TI公司的TMS320C6000系列、Philips公司的Trimedia、Equator公司的BSP-15等为代表的高性能DSP的出现,由嵌入式处理器来实时完成高速、大数据量的视频/音频编解码处理成为可能,结合网络通讯技术,使集可编程图像/声音编解码、本地存储、网络传输、和自动化技术为一体的嵌入式数字视频监控系统应运而生。以DSP为核心的嵌入式数字视频监控系统,配合嵌入式实时操作系统,可以以应用为中心,根据应用对功能、可靠性、稳定性、成本、体积等的综合要求,对软/硬件进行裁剪,以满足视频监控发展的二大需要:数字化和网络化。
DVR正是在数字视频监控系统基础上发展起来的,DVR采用数字音/视频压缩/解压缩的编解码技术,用硬盘来本地储存经压缩编码后的数字音/视频数据流,用网络来远程传输经压缩编码后的数字音/视频数据流和控制信息,集图像画面分割、多路视频切换、录/放像机等功能于一体。硬件上还可连接传感器、警报器、云台和镜头控制器等,实现监视范围的搜索和目标锁定,以及环境监控和报警输出;软件上还可增加图像移动侦测、特征提取等辅助功能,以满足某些特定应用的需求。
目前,DVR可按产品的结构分为基于PC的DVR和嵌入式DVR二种,这二种DVR产品各有优缺点。基于PC的DVR经过多年的开发和应用,功能日趋完善、产品日趋成熟,并可充分利用PC机上丰富的软/硬件资源。但PC机所采用的Windows操作系统为非实时操作系统,并且易受病毒攻击,影响了系统的可靠性和稳定性,另外其昂贵的成本,使其难于普及到家庭使用。嵌入式DVR,没有了PC机强大的软/硬件资源的支持,其产品的灵活性和功能的丰富性受到一定程度的限制,但随着近年来芯片技术的不断发展,嵌入式DVR的功能日益丰富、产品日益成熟,加之嵌入式DVR固有的稳定性和低成本,越来越被人们接受,尤其在家庭普及应用中。
DVR的核心技术
DVR目前仍处于不断的发展之中,它所涉及的基本技术包括:数字音/视频压缩/解压缩编解码技术;操作系统支持;海量、高可靠本地存储;网络通信等。后二者为整个IT产业的技术大背景,而前二者则是DVR产品设计者必须面对和需要解决的技术核心。
模拟视频信号数字化后,产生大量的数字视频数据流,如果直接将这些原始的视频数据进行存储和网络传输,则对存储器的存储容量和存/取速度,及网络传输的带宽必将提出严苛的要求,这不仅在技术上难于实现,而且在成本上也难于接受。所以必须对原始的视频数据进行必要的压缩处理。在保证图像质量的前提下,压缩比越高,系统的性能也就越好。由此可见,视频压缩技术是DVR产品最核心的技术。
视频压缩技术从其实现来分,可分为帧内压缩和帧间压缩二种。帧内压缩技术是将连续变化的视频图像分解为一幅一幅单独的帧,对这些单独的帧进行压缩。而帧间压缩技术则比较前后帧之间的差异,并只对帧间不同的部分进行压缩。由于连续变化的视频图像,其前后帧之间具有一定的相关性,相关性越大,帧之间的差异也就越小,需要进行的压缩处理也就越少。由此可见,帧间压缩的性能和效率远远优于帧内压缩,尤其是在图像画面变动较小的情况下,帧间压缩能提供相当大的压缩比,并且还能保证相当不错的图像质量。
对帧内和帧间不同的压缩处理,形成了许许多多不同的压缩技术或标准,在DVR产品中最常用的压缩技术有:M-JPEG、MPEG-1、MPEG-2、MPEG-4、H.263和H.264等。MPEG-x和H.26x分别是由ISO/IEC和ITU-T制定的二大视频编码国际标准,它们共同追求的目标是在尽可能低的码率(或存储容量)下获得尽可能好的图像质量。ITU-T的H.26x标准更注重使压缩标准的输出码率满足不同通信信道的传输特性。为了满足日益增长的视频网络传输要求,ISO/IEC和ITU-T二大国际标准化组织联合制定了视频编码新标准H.264。
不同的压缩技术,其处理的复杂度不同。复杂度越高,压缩比也就越大,计算量也就越大,对处理器的性能也就越高。下面分别对这几种视频压缩算法作一简单介绍。
MotionJPEG是一种基于静态图象压缩技术JPEG发展起来的动态图象压缩技术,可以生成序列化的运动图像。其主要特点是基本不考虑视频流中前后帧之间的变化,只单独对某一帧进行压缩。M-JPEG压缩技术可以获取清晰度很高的视频图像,而且可以灵活设置每路的视频清晰度和压缩帧数。因其压缩后之格式可读单一画面,所以可以任意剪接。M-JPEG因采用帧内压缩方式也适于视频编辑。
M-JPEG的缺点一是压缩效率低,M-JPEG算法是根据每一帧图像的内容进行压缩,而不是根据相邻帧图像之间的差异来进行压缩,因此造成了大量冗余信息被重复存储,存储占用的空间大到每帧8~20K字节,最好也只能做到每帧3K字节。另外一点是它的实时性差,在保证每路都必需是高清晰度的前提下,很难完成实时压缩,而且丢帧现象严重,但如果采用高压缩比则视频质量会严重降低。
JPEG的新进展是多层式JPEG(ML-JPEG)压缩技术。它先传低清晰度的画面,故成像速度快很多;再补送细节的压缩资料,使画面品质改善;然后再补送更细节的压缩资料,使画面品质更加改善,这样JPEG的画面呈现由低清晰度到高清晰度、由模糊到清楚。
MPEG-1标准的码率为1.2Mbps左右,可提供30帧CIF(352×288)质量的图像,是为CD-ROM光盘的视频存储和播放所制定的。MPEG-1标准视频编码部分采用运动补偿的帧间预测、二维DCT、VLC游程编码等。此外还引入了帧内帧(I)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,进一步提高了编码效率。
MPEG-2标准是在MPEG-1的基础上,在提高图像分辨率、兼容数字电视等方面做了一些改进,例如它的运动矢量的精度为半像素;在编码运算中(如运动估计和DCT)区分“帧”和“场”;引入了编码的可分级性技术,如空间可分级性、时间可分级性和信噪比可分级性等。
MPEG-4是基于帧重建算法来压缩和传输视频数据,通过动态地监测图像各个区域的变化,根据对象的空间和时间特征来调整压缩方法,从而可以获得比MPEG-1更大的压缩比、更低的压缩码流和更佳的图像质量。MPEG4的应用目标是针对窄带传输、高画质压缩、交互式操作以及将自然物体与人造物体相融合的表达方式,同时还特别强调广泛的适应性和可扩展性。
H.264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:JointVideoTeam)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10部分。1998年1月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的JVT第5次会议通过了H.264的FCD板。2003年3月正式发布。
H.264常用统一的VLC符号编码,高精度、多模式的运动估计,基于4×4块的DCT变换、分层的编码语法等。这些措施使得H.264算法具有很的高编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。
为了更好地适应网络传输,及长时间存储要求,目前,DVR一般均采用编码效率高的MPEG-4或H.264视频压缩技术。这必将增加压缩算法的运算量,对处理器性能的要求也就越高。
操作系统
Windows操作系统具有应用普遍、使用简单、日后维护方便、软件易于升级等特点,成为基于PC的DVR首选的操作系统。但Windows操作系统本身具有不稳定性,但系统中除了运行DVR应用软件外,还运行其它的软件时,系统将不稳定,甚至出现“死机”等严重问题,影响系统的正常运行。
Linux操作系统支持多用户、多任务、及多道处理的Linux操作系统作为“开源”软件,可由开发者任意修改和添加。此外,Linux是以网络环境为基础的操作系统,具有完整的网络功能,使用者可以在Linux下以单机连上互联网,也可架设局域网络(LAN);还可以Linux架设各种服务器,提供在互联网以及内部网的邮件、FTP和Web等各种服务,方便DVR实现网络化。
实时操作系统RTOS对于嵌入式DVR来说是最佳选择,开发者可以应用为中心,根据应用对功能、可靠性、稳定性、成本、体积等的综合要求,对软/硬件进行裁剪,使产品的实现更灵活、多样。
然而,采用实时操作系统RTOS的嵌入式DVR目前面临的最大挑战在于其网络功能。在网络普及的今天,已有越来越多的用户使用网络。具有网络功能的DVR可让用户透过LAN/WAN、Internet等网络进行远程监视和控制。
基于DM642的嵌入式DVR实现
在进行嵌入式DVR设计以前,我们首先需要对构成DVR所必需的硬件配置进行分析。
一体化模拟前端:DVR的模拟前端为来自摄像机和麦克风的模拟视频和模拟音频信号,为了降低整个系统的成本,一般会有多路视频和音频信号输入。而摄像机一般安装在云台上,为了取景、调焦,需要对其进行水平、俯仰转动,镜头变焦,光圈开合,摄像头防护罩控制(开/关、加热/风扇等)等,云台的这些控制命令一般通过异步串口RS232、RS422/RS485提供。另外,对于一个完整的视频监控系统来说,还需要对环境进行监控,如门禁控制、红外/烟雾/煤气感应、报警器、红外对射、停车管理等,这些功能一般用数字I/O实现。
由此可见,DVR的一体化模拟前端,除了需要提供多路的模拟视频/音频的输入端口外,还需要为云台控制提供标准的RS232/RS422/RS485异步串行接口,及环境监控的数字I/O。
数字化:为了用微处理器实时地对输入的视频/音频信号进行数字化的编/解码处理,必需将输入的模拟视频/音频信号进行数字化,这部分工作由视频解码器和音频解码器完成。每个模拟视频输入对应一路视频解码器,每个模拟音频输入同样对应一路音频解码器,而且配对的视频和音频信号数字化必须同步进行。
实时处理数字视频/音频数据:模拟视频/音频信号进行数字化后,将高速产生大量的数据,为了能对这些数据进行存储、传输、回溯、和分析等功能,首要的工作必须实时地完成大数据量、大计算量的数字视频/音频的压缩编码处理,数字视频压缩编码算法有:MPGE-2、MPEG-4、H.263、H.264等,数字音频压缩算法有:G.711、G.722、G.723、G.728、G.729等。
实时完成这样的算法需要高速的处理器来实现,高性能DSP的出现正好满足了这一需求。另外大量的高速产生的数字视频/音频数据,需要高速、大容量的存储器来缓存。DSP与高速、大容量存储器构成数字视频监控系统的核心。本文将采用TI公司的TMS320DM642及高速、大容量SDRAM存储器来构成DVR的核心。
数据的存储和传输:对于DVR来说,不仅需要对压缩后的数据进行长时间存储,以便回溯。而且还需要能通过网络对其进行监视和控制,即需要将压缩后的数据和相关的控制信息通过网络进行传输。由此可见,对于DVR来说,硬件上除了能提供大容量本地存储、本地传输外,还需要远程传输等接口。
其他:在DVR对视频/音频信息进行实时监视、记录、回溯处理的同时,还需要记录相关的时间信息,所以需要提供硬件实时时钟。另外,为了保护DVR软/硬件开发者,尤其是软件开发者的知识产权,还必须提供安全、可靠的硬件加密措施。
上述这些是一个通用的嵌入式DVR所必需提供的硬件配置。
基于DM642的嵌入式DVR的具体实现
由上述DVR硬件需求分析可知,基于TMS320DM642的DVR的构成如图1所示:
图3:TMS320DM642的多通道音频串口McASP与音频Codec的接口。
TMS320DM642是TI公司2003年推出的、专门为视频应用开发的、业界最高性能的、主频高达720MHz的、32-位定点DSP。TMS320DM642具有下列特点:1)采用TI第2代超长指令集结构(VelociTI.2)的TMS320C64xDSP内核,主频高达720MHz,峰值处理能力可达5760MIPS,可实时完成4路CIF或2路D1的H.264压缩算法;2)64位、133MHz外部存储器总线,可直接接口大容量、低成本的SDRAM;3)3个双通道数字视频口,可同时接口多达6路的BT.656数字视频口;4)多通道音频串口,可同时接口多达4路立体声输入/输出;5)IIC总线可无缝接口视频解码器/编码器和音频Codec的控制口;6)10M/100M以太网MAC方便实现局域网接口;7)32位/66MHzPCI总线方便与PC机接口,及实现多板并行工作;8)32位HPI接口方便与主处理器接口,并实现多板并行工作。
基本的处理器系统用来存储程序代码和缓存大量的数字视频/音频数据,本系统中通过TMS320DM642的64位、133MHz外部存储器总线来扩展大容量、低成本的闪存和SDRAM。另外,为了对压缩后的视频/音频数据进行海量本地存储,还通过外部存储器总线扩展标准的ATA硬盘接口。
视频接口用于实现标准模拟视频输入/输出、模拟视频信号数字化(解码器)、数字视频信号转换为模拟视频信号(编码器)、以及视频编码器/解码器接口TMS320DM642视频口。TMS320DM642视频口与视频编、解码器的接口如图2所示:
音频接口:音频接口用于实现标准模拟音频输入/输出、模拟音频信号数字化(解码器)、数字音频信号转换为模拟视频信号(编码器)、音频编解码器一般做在同一器件上,称为音频Codec器件,以及音频Codec接口TMS320DM642的多通道音频串口。TMS320DM642的多通道音频串口McASP与音频Codec的接口如图3所示:
传输接口:TMS320DM642提供3种外部传输接口,但它们复用引脚,每次只能配置为其中的一种外部接口。DM642通过复位时某些特殊引脚电平的配置,可分别提供下列3种接口:1)32位PCI接口;2)32位HPI接口;3)HPI16+以太网接口。
对于嵌入式DVR来说,外部传输接口一般选用HPI16+以太网接口这种类型。
嵌入式DVR的软件平台
基于DM642的嵌入式DVR采用DSP/BIOS实时多任务操作系统,其具有下列特点:1)基于优先级的、抢先型实时调度程序;2)支持多线程管理与调度;3)支持4种线程类型:HWI、SWI、TSK、IDL;4)支持3种作业间的通信方式:Mailboxes、Semaphores、Queues;5)支持周期函数,方便实现固定时间间隔的数据采集,简化多速率系统的设计;6)提供存储器管理,实现动态存储器分配。
DSP/BIOS只是一个实时多任务操作系统的内核,不具备文件输入/输出系统和网络协议的支持,这些软件模块需要在DSP/BIOS基础上添加。
设备驱动程序:DSP/BIOS的设备驱动程序模型类似于Windows操作系统的设备驱动程序模型,将设备驱动程序分成二层,上层为与硬件设备无关的层,与应用程序接口;下层为与硬件设备相关的层,直接来操作具体的硬件设备。这样可以使应用程序与具体的设备硬件实现细节隔离,提高应用程序的通用性和重复使用性,使应用程序具有更好的可维护性和可移植性。
基于上述DM642的嵌入式DVR包含下列设备驱动程序:1)音视频输入/输出设备驱动程序;2)异步串口设备驱动程序;3)以太网设备驱动程序;4)ATA硬盘设备驱动程序。
视频压缩算法的选择主要取决于主处理器的性能,基于DM642的嵌入式DVR,采用TI专为视频处理而开发的、业界最高性能的、主频高达720MHz的、32-位定点DSPTMS320DM642,其峰值处理能力可达5760MIPS,可实时完成4路CIF或2路D1的H.264压缩算法。采用H.264视频压缩算法虽然对处理器性能的要求提高了,但其在保证图像质量的前提下所到达的高压缩比,无论对海量本地存储,还是网络传输带宽的要求,都具有积极的意义。
文件输入/输出系统:DVR的基本要求能对压缩后的视频数据进行长时间的保存,事后还要求可对保存的视频图像进行检索和回放,所以必须能进行海量本地存储。基于DM642的DVR采用DSP/BIOS实时多任务操作系统,其并不包含文件输入/输出系统,必须在DSP/BIOS的基础上自行扩展文件管理系统。FAT32文件系统在Windows中被证明是行之有效的文件输入/输出系统,在此我们采用FAT32文件系统作为基于DM642的DVR的文件管理系统,不仅可以实现海量的本地存储,而且还可与Windows文件系统兼容。
网络协议:网络传输也是DVR的基本的功能要求,基于DM642的DVR硬件上配置有10/100M以太网接口,同样,在DSP/BIOS基础上扩展TCP/IP协议,可以支持HTTP、FTP、PPPoE等多种网络协议,使其成为真正意义上的网络服务器。
其它:作为家庭应用的DVR,还会有一些附加的功能要求,比如,家庭安全防盗、老幼监护等,这些功能可利用DSP所具有的可编程能力,增加图像移动侦测、特征提取等辅助软件功能来实现。
嵌入式DVR的发展趋势
由基于DM642的DVR可知,主处理器DM642除了要进行视频/音频编解码等真正意义上的DSP处理外,还需要进行文件系统管理,和网络协议实现等操作系统所承担的工作,这不仅加重了DSP处理器负担,而且将影响附加功能的实现。TI即将提出的DaVinci处理器,为一种DSP+ARM的双核处理器,其上的DSP为TI最新的C64x+DSP内核,并进一步在内部集成视频加速器和相关的外设,使其真正成为视频应用的SoC解决方案,并使DaVinci处理器具有很高的性能/价格比,这无疑将对嵌入式DVR产业带来巨大的冲击。