嵌入式网络视频监控系统的设计

2010-08-15 00:52
科技传播 2010年16期
关键词:视音频代码嵌入式

吴 永

广东工程职业技术学院,广东 广州 510520

0 引言

视频监控系统近年来在人们的工作和生活环境中得到了广泛的应用。但传统的基于PC机和视频电缆的视频监控系统存在着诸如安装携带不便、不能在恶劣环境下使用、需要专门铺设大量线缆等一些缺点。随着近年来嵌入式软硬件技术及互联网络技术的迅猛发展,特别是DSP、PowerPC等嵌入式芯片的出现,将嵌入式处理器和网络技术应用到视频监控系统中不仅克服了上述的一些缺点,而且其强大的功能加上丰富的外设接口和高度的可编程性使得视频监控的硬件和软件都更容易实现。

本文介绍了一种基于单颗数字媒体处理器TMS320DM643(600MHz)的嵌入式网络视频监控系统设计方案,按本方案设计的系统体积小巧、携带方便,并可直接通过RJ45接口连入IP网络,在远程主机的控制下实现监控视频的实时采集与传输。

1 基于TMS320DM643的硬件设计

嵌入式网络视频监控系统的硬件部分采用模块化设计方法,包括数字媒体处理器模块、视频解码模块、音频编解码模块、以太网接口模块、存储器扩展模块。

数字媒体处理器模块采用TMS320DM643[1],其内部集成了三个可配置视频端口、一个10/100MBPS的以太网MAC(EMAC)、一个面向音频应用的串行口(McASP),处理器核内还有8个并行的处理单元,采用VLIW(甚长指令集)结构,处理能力高达4800MIPS,同时TMS320DM643的指令集设计得更有利于执行图象处理中的各种算法。

视频解码模块采用Philips公司的SAA7115。摄像机输人的模拟视频信号在SAA7115内部经过钳位、抗混叠滤波、A/D转换、YuV分离电路之后,转换成视频数据流,通过DM643的视频口VP0输人到压缩核心单元中。编程时,SAA7115内部寄存器参数的配置和状态的读出均可通过I2C总线来完成。

音频编解码模块使用TI的高性能立体声编解码器TLV320AIC23(以下简称AIC23),主要用于实现音频信号的采集和播放。由于AIC23与DM643的输入/输出电压兼容,连线时可实现AIC23与DM643的McASP接口的无缝连接。

由于网络传输的固有特点,音频数据和视频数据传输到接收方时不可能是均匀的,为解决音视频数据在接收方的同步输出问题,本系统利用锁相环LL1708来实现音频和视频的同步采样。从SAA7115输出的27MHz时钟,经PLL1708处理后变为18.433MHz,并将它作为AIC23的输人主时钟,如此,由于音视频采样信号使用同一个时钟源,就不会出现音视频采集不同步的问题。

以太网接口模块采用LXT971,它支持IEEE 802.3标准,提供了MII(media independent interface)接口,可以支持MAC,而DM643内部正好集成有MAC控制器,所以LXT971和DM643可以实现无缝连接。

存储器扩展模块主要包括两片32MB的SDRAM和一片4MB的FLASH,DM643的EMIF接口外接两片32MB的SDRAM,主要用于存放原始图像数据,而扩展的那片4MB的FLASH,主要用于存放应用程序,二者都映射到DM643的外部数据空间。

系统工作时,TMS320DM643数字媒体处理器通过以太网接口模块从网络获得远程上位机发送来的控制数据,然后启动摄像机和麦克风开始采集数据,从摄像机输入的视频信号和从麦克风输入的音频信号经A/D转换后送入DM643中的DSP,DSP对音视频数据流进行压缩编码和合流,然后通过局域网或因特网将数据传输给上位机,上位机收到数据后通过监控屏幕及扬声器回放出来,以实现对现场的视音频监控目的。

2 软件实现

通过互联网络来传输监控视频,必须考虑到网络实际传输带宽往往会比较小,而视频数据量却又非常庞大的现状,因此必须对视频数据进行压缩,怎样压缩呢?视频压缩算法的选择是关键,目前,较为常用的压缩算法有:基于电话视频会议的压缩标准H.263系列、M-JPEG动态图像压缩方式(压缩比为10-30:1左右)、MPEG-1活动影像压缩方式(VCD压缩标准,压缩比为40-100:1左右)、MPEG-2 活动影像压缩方式(DVD压缩标准,压缩比为10-30:1左右)、H.264视频压缩算法(一种新的窄带传输方法,压缩比为100:1左右,为许多电话线/网络传输产品所采用)。

以上各种压缩算法各有优缺点,这决定了它们分别适用于不同的应用场所,H.263适合用于可视电话及视频会议等对图像大小和质量要求不是很高的应用领域;M-JPEG可以获得较高图像质量,但实时性不强; MPEG-1压缩后的图像质量不是太好、MPEG-2的压缩比不够。根据信道的带宽和对图像质量的要求,我们在图像质量和码率之间综合考虑后,决定本系统采用H.264压缩标准。

分析表明,对于同等的图象质量,H.264算法比H.263算法虽然码流降低了50%,但同时H.264算法比H.263算法复杂很多,需要更强的处理能力,以及做更多的软件优化工作。

另外,在基于分组交换的IP网络中,数据分组一般需经过多个路由、不同的路径才能到达目的地,因此视音频数据分组的到达时间、到达顺序、同一视音频数据报文到达的数量都将变得无从预测,就必将造成视音频数据流在网络上传输的不同步问题。

以下就这两个问题分别进行讨论。

2.1 H.264算法的实现及优化

整个系统设计的难点和重点是H.264算法的软件实现。在DM643上的实现H.264算法大致可分为以下三个阶段[2,3]:

第一阶段是编写C代码。

在编写C代码过程中,充分利用Tl公司为用户提供的功能强大的函数库[4],来完成DCT/IDCT变换、DCT量化、自适应滤波等功能,这些函数都是经过优化的,完全能够实现软件流水,效率很高。

另外再灵活运用其他一些有用的程序优化方法,例如对定点乘法,尽可能使用short型数据,将一些需要通过计算得到结果的语句或函数用查找表或常数值来直接代替,等等。

第二阶段是重点优化C代码。

使用profiling工具对第一阶段的C代码性能进行分析,确定可能存在的低效率段,然后使用适当的方法进行优化,优化方法一般有使用编译器选项、使用内联函数、使用软件流水等[5,6,8]。

本系统设计中,DCT、IDCT、运动估计的运算量很大,是程序优化的重点。本系统通过使用“-mt”等编译器选项来指明程序中不相关的指令,使指令并行操作,大大提高了程序的执行效率;还通过使用-o2选项和-o3选项,对循环代码实现软件流水;在算术操作中,通过使用intrinsics只需调用SADD,一个指令周期便可得到最终结果,不需要对计算结果再做饱和(saturation)处理,效率提高了很多。

第三阶段是编写线性汇编代码。

再次使用profiling工具检查经过以上优化后的C代码性能,如果代码仍达不到所期望的效果,则从中抽出对性能影响很大的C代码段,用线性汇编重新编写这段代码,然后使用汇编优化器做进一步的优化[6,7,8]。

线性汇编代码的编写比汇编代码更简单,它不需要注明所使用的寄存器、指令的并行与否、指令的延迟周期和指令使用的功能单元等,汇编优化器[9]能根据代码的情况来自动确定这些信息。同时,可以事先画出指令的相关图,根据相关图合理分配逻辑单元,来最大限度的保证指令的并行执行。应充分使用C64x DSP提供的包处理指令来处理数据(包处理指令可同时处理2个l6位数据和4个8位数据),例如STDW(STNDW)、LDDW (LDNDW)、AVGU4、MIN2、MAX2、SPACKU4、PACK2、D0TP2、D0TPN2 和UNPKLU4 等指令,这样可大大减少代码长度,提高代码执行效率。对于两重循环嵌套,可将内层循环展开为外层循环内部的条件指令,这样可减少由内层循环所带来的循环前后的prolog和epilog的开销。

2.2 视音频数据流同步传输的实现

如果我们将压缩后获取的视音频复合流直接利用UDP套接字进行网络传输,那么,接收方接收到的视音频复合流就不能携带RTP协议的报文信息。由于UDP协议不能保证视音频数据报文的有序和无重复,我们无法对接收到的视音频数据包重新排序,原来的视频图像将不能重建,音视频的同步传输更无从谈起。

为解决网络传输时视音频数据流不同步的问题,我们采用RTP协议来封装视音频流。

在使用RTP协议对视音频复合流进行封装时,通行的做法是——在操作系统中装载RTP协议的动态链接库(DLL),然后将发送端的视频编码器输出的数据流进行相应的成帧算法,形成适合于RTP协议格式的视频流封装,递交给RTP协议分组处理模块,加上此协议的分组报文头,并根据当前的采样时钟打上时间戳,标记顺序号,并给定帧频、分辨率、相应的压缩格式等参数,经多目地址传输来完成。

在接收端,当实时视频数据到达后,去掉该层协议的头标,根据套接字应用的端口号向上层递交。RTP分组模块处理递交的数据分组,根据其会话标识和序列号进行鉴别,将有效的分组传递给相应的解码缓冲区,实现视频流内部的同步。

3 测试与性能分析

设计调试好硬件系统,并在DM643上对整个系统软件进行设计及优化后,系统性能有了较大的提高。为测试与验证本系统,使用VC++语言编写了一套运行于Windows XP操作系统的简易远程视频监控软件,安装在连入网络的PC机中,将设计制作好的本系统连入网络的另一端点。PC机中的远程视频监控软件通过网络对本系统发出视频采集请求,系统收到请求后按要求将采集到的视音频实时传输到PC机上回放出来,测试表明本系统在网络速度为30Kbps以上时能实时传输CIF图像,并可实现视音频同步,说明系统能够满足实际需要。

4 结论

本文描述了基于单颗DM643芯片实现嵌入式网络视频监控系统的整体设计方案,并通过自行设计的远程视频监控程序对其进行了测试,性能良好。随着视频编解码技术的发展和嵌入式Internet技术的成熟,以低成本嵌入式网络视频监控装置为核心的大规模分布式网络远程视频监控系统必将广泛应用于各领域之中。

[1]Texas Instruments.TMS320DM643 Video-ImagingFiexed-Point Signal Processor, ,2003,5.

[2]ITU-T Rec.H.264/ISO/IEC 1496-10.Advanced VideoCoding.Final Committee Draft,Document JVT-E022,2002,12(9).

[3]任丽香,马淑芬,李方慧.TMS320C6000系列DSPs的原理与应用[M].北京:电子工业出版社,2000.

[4]TI公司.TMS320C62x Image-Video Processing LibraryProgrammer’s Reference[M],2000.

[5]Texas Instruments.TMS320C6x Optimizing C CompilerUser’s Guide, 1998.

[6]Texas Instruments.TMS320C6x Programmer’s Guide,1998.

[7]Texas Instruments.TMS320C6x Assembly LanguageTools User’s Guide, 1998.

[8]]Texas Instruments.TMS320C6x C Source Debugger,1998.

猜你喜欢
视音频代码嵌入式
我国首个超高清视音频国家重点实验室在沪启动建设
中央广播电视总台启动建设国家重点实验室
创世代码
创世代码
创世代码
创世代码
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
基于内容结构特征的Flash电影视音频特征的提取研究
电视台视音频资料数字化存储