基于TMS320DM365的3G实时视频传输系统设计与实现
2012-05-30魏宗群
徐 凯,钱 燕,魏宗群,蔡 俊,仇 捷
(南京农业大学 电气工程系,江苏 南京 210031)
在视频监控应用中,传统视频监控由于图像清晰度不高,管理和维护诸多线缆难度大,配置众多设备结构复杂,扩展不便,这些因素严重制约了安保管理效能的提升[1],同时也为高清视频监控的发展带来了契机。以往的有线图像视频传输系统往往需要铺设大量的地上、地下设备线路,因而有成本高,施工周期长等诸多问题。近年来,无线图像的采集与传输以其直观、方便、信息内容丰富而被应用于各种场合[2]。随着计算机通信技术和网络技术的快速发展,3G技术已成为计算机网络中一个至关重要的组成部分。由此,基于3G的视频采集传输系统应运而生。相比较其他的无线传输方式,3G以其不受距离限制,网络带宽宽,实时性好而成为研究的重点[3]。3G视频传输技术的发展已对无线移动网络的架构和协议产生了深远的影响。
基于达芬奇技术的新型TMS320DM365数字媒体处理器延续了DavinciTM家族DM355处理器的架构[4],集成了一颗ARM926EJ-S内核、一个图像处理子系统VPSS、一个H.264高清编码器协处理器HDVICP和一个MPEG-4/JPEG高清编码器协处理器,支持多格式编解码器,其中包括符合生产要求的 H.264、MPEG-4、MPEG-2、MJPEG与 VC1编解码器,可使视频实现高度的灵活性。
作者设计了一种基于TMS320DM365的3G实时视频传输系统。该系统设计用于农田感知车的视频采集、传输。将采集的视频信息经过后期的处理(边缘检测、运动目标分析等),为机械小车在农田的行走、自主驾驶、自主导航等活动提供农田周围环境信息。系统将摄像头采集的视频信息,经过DM365内嵌硬件压缩器处理成H.264格式,然后通过RTP以及RTCP编码后经3G无线路由器发送出去,服务器接收端利用VLC播放器对视频实时显示。该系统更可以广泛应用于现代化农场、智能楼宇、智能交通、医院校园和生活小区等领域。现将有关结果报道如下。
1 系统硬件设计
系统整体框架如图1所示,由TB-2054BD摄像头、嵌入式视频处理器 DMS365、3G无线路由器、客户端等组成。
图1 系统的整体框架
1.1 视频图像采集模块
图像采集采用的是拓邦电子的TB-2054BD型号CCD摄像机。系统中模拟视频信号经过视频解码芯片TVP5150钳位、抗混叠滤波、A/D转换后,按预先的设置,从 TVP5150的 YOUT[0:7]引脚输出ITU-R BT.6568-bit 4:2:2格式的数字视频数据到DM365的视频处理前端,并由其进行缩放和白平衡等预处理后送到视频处理后端对数字视频信号进行H.264编码。
1.2 主控制模块
控制系统采用 ARM926EJ-S内核的TMS320DM365处理器 (SEED-DVS365开发板)。DM365高度集成了众多组件,它内部包含一个ARM926EJ-S精简指令的 CPU,拥有独立的16KB的指令缓存和8KB的数据缓存[5],还有图像处理子系统 (VPSS)[6]等模块,其工作频率高达300MHz。DM365处理器的作用是管理和控制整个系统,包括初始化硬件协处理器、图像处理子系统、大部分的外设以及片外存储器,并且完成对压缩后的视频打包及进行网络传输。
1.3 无线通信模块
通信模块采用宏电H7921-RHH3G无线路由器。它采用高性能32位处理器,基于通用基础平台,模块化设计,内置国内外主流工业级无线核心模块,采用嵌入式操作系统,并针对无线网络带宽的不稳定性、延迟较大等特性进行了优化设计,充分保证了设备稳定性和网络连接的可靠性。它采用标准以太网协议,实现网络路由,可通过3G网络或VPDN、APN等运营商专用网络构建移动数据通信网络,应用极为广泛。
1.4 客户端解码
客户端采用 VLC多媒体播放器[7]对音频与视频进行解码与显示。VLC多媒体播放器 (最初命名为VideoLAN客户端)是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及档案格式,并支持DVD影碟,VCD影碟及各类串流协定。
2 系统软件设计
系统的软件开发基于MontaVista Linux嵌入式操作系统。MontaVista Linux提供所有开放源码的开发工具和附加应用,它基于Linux内核,具有高效、实时、稳定、内核可裁减等特点[8],并且能够支持广泛的CPU芯片系列,支持多种目标板结构,并提供强大的网络协议支持,拥有丰富的驱动程序和API。TI针对达芬奇平台提供了达芬奇多媒体应用程序接口 (Davinci Multimedia Application Interface,DMAI)。DMAI是DSP提供给ARM端应用程序的调用接口,是操作系统和编解码引擎之上的应用接口,使用它可以方便地编写出用于达芬奇平台上的应用程序。
2.1 基于CCStudio v3.3 IDE烧写ubl、u-boot
安装并配置CCStudio v3.3 IDE环境。配置完成后,启动 CCStudio v3.3,配置 ARM的 GEL文件。基于CCStudio v3.3 IDE环境对NAND FLASH进行ubl、u-boot烧写操作时,需要对DVS365平台的硬件部分进行配置。
将仿真器的JTAG连接器与DVS365平台的J7仿真器插座连接;将DVS365的SW1全部置 “0”;DVS365平台的S3连接12V电源,给系统上电。
CCStudio v3.3启动完毕后,选择ARM端打开,加载GEL,连接ARM端。
在CCS中用 File→Load Program.命令,加载Flash_Writer目录下的*.out文件运行程序;程序会弹出输入UBL对话框,输入UBL所在路径,进行ubl的烧写;ubl烧写完成后,按要求输入u-boot文件的路径,进行u-boot的烧写。等待片刻,在Stdout窗口将会显示 “NAND boot preparation was successful!”字样,说明烧写完成。
2.2 基于TFTP烧写uImage
当用户对DVS365下的内核驱动源码进行调整或者添加新的设备驱动后,需要对内核进行重新配置,生成内核镜像后,可以通过 TFTP下载到DVS365平台上启动,进行测试。Linux内核的使用方法如下。
将SW1所有位置调“0”;使用串口线将SEED-DVS365与 PC机相连:一端接 SEEDDVS365的J3位置,另一端接 PC机的 RS232口;使用网线将SEED-DVS365与3G路由器相连,给平台的S3连接12V电源。
硬件连接完成后,即可通过TFTP服务下载内核。配置PC机端的超级终端,设置串口参数:波特率115200,数据位8,奇偶校验无,停止位1,数据流控制无;打开Windows PC机超级终端,SEED-DVS365平台采用12V电源上电,此时Windows PC机超级终端显示启动信息如图2。至此,基于 TFTP烧写 uImage完成。
2.3 NAND Flash文件系统恢复
配置启动参数,在提示符下输入:
图2 基于TFTP的uImage烧写和更新
setenv bootargs mem=80M console=ttyS0,115200n8 root =/dev/nfsnoinitrd rw ip =192.168.1.18:192.168.253.1: 255.255.255.0 nfsroot=192.168.1.100:/opt/nfs/davinci_enc_mngr.ch0_output=TV davinci_capture.device_type=4 dm365_imp.oper_mode=0。
其中rw ip后IP为SEED-DVS365平台的IP地址,nfsroot后IP为Linux服务器的IP地址;然后,配置bootcmd并保存设置,输入启动命令启动系统,出现如图3所示信息说明启动完成。
图3 系统的启动完成
2.4 H.264编码网络传输
系统采用实时传输协议 (Real-time Transport Protocol,RTP)以及实时传输控制协议 (Real-time Transport Control Protocol,RTCP)作为视频传输的协议。RTP和RTCP连接紧密,RTP实施实际数据的传输,RTCP则就服务质量做出反馈。RTP本身并没有提供按时发送机制或其他服务质量 (QoS)保证,而是依赖于低层服务去实现这一过程。在RTP会话期间,各参与者周期性的传送 RTCP包,RTCP包中含有已发送的数据包的数据、丢失的数据包的数量等统计资料,因此服务器可以利用这些信息动态的改变传输速率,甚至改变有效载荷类型[9]。
RTP利用混合器 (Mixer)和翻译器(Translator)完成实时数据的传输[10]。混合器接收来自一个或多个发送方的RTP数据块,并把它们组合成一个新的RTP分组继续转发。这种组合数据块将有一个新的SSRC标识。具有新标识的特别发送方被作为特别信源加入到RTP数据块中。因为来自不同特别发送方的数据块可以非同步到达(它们可以经不同的路径经过这个网络),所以混合器改变了该媒体流的临时结构。与混合器不同,翻译器只改变数据块内容,而不把媒体流组合在一起。翻译器只是对单个媒体流进行操作。可能进行编码转换或者协议翻译。一个典型的RTP包传输流程如图4。
图4 典型RTP包传输流程
其中S1,S2,S3,S4数据源的发送端,R1为最终RTP包流的接收端。
H.264是一种高性能的视频编解码技术。它是由2大标准化组织联合组建的联合视频组 (JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是 ISO/IEC的 MPEG-4高级视频编码 (AdvancedVideoCoding,AVC)。在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是 MPEG-4的1.5~2倍。而且,H.264在具有高压缩比的同时还拥有高质量流畅的图像,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济[11]。
进入程序所在目录,控制台提示符下执行如下命令:
其中:-r表示输出分辨率;-i参数后面的IP为PC机服务器的IP地址。为了正确接收RTP协议的数据包,需要手动编写 SDP(Session Description Protocol)文件,在SDP文件中指定接收端的1P地址,端口号以及待接收的媒体文件负载类型,使用的传输协议等信息[12]。通过 SDP,客户端才可以正确的接收发送端发送的数据。使用VLC播放器,打开video.sdp文件,点击“播放”按钮就会看到采集到的图像。
在终端里看到的视频采集速率等信息如图5。视频采集流程图如图6所示。
图5 视频采集信息
图6 视频采集流程
3 小结
设计了一种基于TMS320DM365的3G实时视频传输系统。系统利用摄像头采集视频信息,经过DM365内嵌硬件压缩器压缩成H.264视频格式,然后通过RTP以及RTCP编码后经3G无线路由器发送,服务器接收端利用开源播放器VLC对视频实时显示。
本系统在实验室环境下进行了测试,可以将采集的视频数据通过3G路由器发送给PC上的VLC播放器,实现视频信息的实时显示。由于PC上VLC默认缓冲池比较大,观看时会稍有延迟的现象,可以手动调整VLC上的缓冲池大小,减少延迟。另外,3G网络的信号质量也会影响视频的实时显示效果。本系统经济适用,在远程监控、智能楼宇、智能交通、车载监控等领域有广泛市场前景。
[1]王雄勇.基于DM365的视频编码器的硬件设计 [J].电子设计工程,2011,19(8):128-129,136.
[2]柴远波,郭云飞.3G高速数据无线传输技术 [M[.北京:电子工业出版社,2009:20-29.
[3]Hanzo L, Cherriman P. Video compression and communications[M].Beijing:Posts&Telecom Press,2011:276-288.
[4]TMS320DM365:基于达芬奇技术的新型数字媒体处理器[J].世界电子元器件,2009(4):24.
[5]Texas Instruments Incorporated.TMS320DM36x digital media system on Chip DMSoC video processing front end VPFE user s guide[EB/OL]. [2009-03].http://focus.ti.com.cn/cn/lit/ug/sprufg8c/sprufg8c.pdf.
[6]秦臻,曹剑中.基于TMS320DM365的高速网络摄像机的设计 [J].电子设计工程,2011,19(10):121-124.
[7]许进虎,刘文涛.运用VLC媒体播放器增加HDTV播出频道的实践 [J].中国有线电视,2006,15(6):532-534.
[8]宋建勋,刘峰.基于TMS320DM365多平台实时视频传输系统的设计与实现 [J].电视技术,2011,35(7):32-35,40.
[9]贺贵明.基于内容的视频编码与传输控制技术 [M].武汉:武汉大学出版社,2005:13-15.
[10]张洪宇.基于 RTP协议流媒体服务器的研究 [G] //成都:2007.
[11]李闪闪,王洪玉.H.264视频解码过滤器的设计与实现[G] //殷福亮,陈喆.中国通信学会学术会议文集:2010年通信理论与信号处理学术年会论文集.北京:电子工业出版社,2010:577-584.
[12]李家清,刘峰.基于 TMS320DM365的无线视频传输系统[G] //殷福亮,陈喆.中国通信学会学术会议文集:2010年通信理论与信号处理学术年会论文集.北京:电子工业出版社2010:662-668.