首页 > 范文大全 > 正文

基于802.11网络的无线视频传输系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于802.11网络的无线视频传输系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:提出一种基于S3C2440 A硬件平台和嵌入式Linux操作系统的无线视频传输系统设计方案,介绍系统的总体设计和主要功能模块的设计与实现,主要包括视频采集模块、无线视频传输模块的硬件设计,嵌入式Linux的驱动程序移植、MPEG-4数字视频软件压缩以及应用程序实现等。该系统实现了802.11无线局域网内的视频传输,实时监测网络的数据流量和拥塞状况,自动调节视频的压缩比,提高网络传输质量,保证视频播放流畅性,可靠性高且易于使用。

关键词:嵌入式Linux;无线视频传输;MPEG-4视频采集;驱动程序;软件压缩

中图分类号:TN919.8文献标识码:B

文章编号:1004-373X(2010)04-070-03

Design of Wireless Video Transmission System Based on 802.11

ZHANG Cunli,WU Yi,HUANG Hongqiang,YAN Zeqiu

(School of Physics and OptoElectronics Technology,Fujian Normal University,Fuzhou,350007,China)

Abstract:The design of a wireless video transmission system based on S3C2440A and embedded Linux OS is presented,it mainly introduces structure of the system and functions of the key modules,such as hardware design of video capturing and wireless video transmission modules,implement of the driver transplantation based on Linux,MPEG-4 digital video software encode and the application program software.The video transmission based on WLAN and this system has been realized,real-time monitoring network data flow and congestion conditions,controlling the video compression ratio automatically,improving the network transmission quality,ensuring the fluency of video playing.High reliability and convenient usage are achieved.

Keywords:embedded Linux;wireless video transmission;MPEG-4 video capturing;device driver;software compression

0 引 言

随着无线通信技术和计算机网络技术的飞速发展,无线网络传输带宽的不断提高,实时数据传输能力不断增强,无线局域网日益普及,使得基于无线局域网的视频传输成为研究热点。与有线网络相比,无线网络具有组网灵活,可扩展性,便携性好,网络改造方便,维护费用低等优点。

在此提出一种基于嵌入式Linux操作系统,采用ARM920T内核的S3C2440 A嵌入式微处理器为软硬件平台的实时视频无线传输系统,该系统可将经过MPEG-4软件压缩编码后的视频图像通过802.11无线网络传输到服务器,以实现视频图像的分析、存储和显示功能。

文献[1-6]在无线视频传输系统设计方面都做了相关的研究。文献[1]综合介绍了无线视频监控系统发展趋势和所涉及的关键技术,讨论了基于不同网络的无线视频监控系统的应用及无线视频监控的发展方向;文献[2,3]介绍了一种基于S3C2410硬件平台和嵌入式WinCE操作系统的无线视频监控系统总体设计方案;文献[4]提出了一种基于ARM9微处理器AT91-RM9200的嵌入式多路视频监控系统方案;文献[5],文献[6]分别介绍了一种基于S3C2410硬件平台、S3C2440硬件平台和嵌入式Linux系统的无线视频监控系统。其中,文献[3,4]中采用的是硬件压缩芯片来实现MPEG-4的压缩编码,文献[5]采用的是对采集到的图像进行JPEG压缩。与S3C2410相比较,S3C2440的主频提高了,视频播放效果也更好;而Linux比WinCE易于裁减,移植性、实时性更好;使用MPEG-4硬件压缩的性价比不高,可移植性以及扩展性差,不利于对算法进行改进和扩展;使用JPEG压缩,在画面变动较小的情况下,能提供相当不错的图像质量,但其压缩比不能太高,否则会影响视频质量,还会导致马赛克等编码劣化的现象。

1 系统总体设计

系统设计采用模块化思想。首先,采用USB摄像头采集实时视频信息,通过MPEG-4对采集的数字视频进行软件压缩编码,生成MPEG-4码流,然后通过802.11g无线传输模块将MPEG-4码流传输到无线接入点(Access Point,AP),最后经过AP转发到接收服务器,客户端用户可通过有线或无线方式访问服务器,获取远程视频影像。视频传输系统总体结构框图如图1所示。

图1 系统总体结构框图

2 系统硬件设计

该无线视频传输系统主要由ARM9处理器、视频采集模块、网络通信模块、电源模块组成。其硬件组成如图2所示。

图2 传输系统硬件组成

2.1 系统主控制器

核心CPU采用Samsung公司的主流ARM9处理器S3C2440A。基于ARM920T内核,主频高达400 MHz,有带(内存管理单元,MMU),片上资源丰富,性价比极高,是目前ARM9处理器的一款主流芯片。

核心板标配64 MB Samsung NAND FLASH及64 MB SDRAM,可稳定运行Linux,WinCE,VxWorks等嵌入式实时操作系统。

2.2 视频采集模块

该系统使用中星微301系列高清芯片USB摄像头,该摄像头采用CMOS感光元件。与CCD相比,尽管在成像质量上有所差距,但采用500万像素数码相机高档五玻璃高清镜头,使摄像头的分辨率最高可达1 024×768,而且还提供360°全方位视角,能基本满足视频采集的需要。

2.3 无线通信模块

无线通信模块主要是通过USB接口的无线网卡实现的。该系统通过使用ASUS WL-167g V2无线网卡在前端监控设备与后端接收服务器之间构建无线局域网络,实现点对点的无缝连接。该无线网卡可与S3C2440A集成的USB主机接口直接相连,工作在2.412~2.472 GHz(欧洲 ETSI)频段,采用OFDM,CCK,DQPSK,DBPSK等调制方式,遵从802.11b/g协议,传输速率为54 Mb/s,室内最远距离为40 m,室外最远距离为330 m,能够满足局域网内视频传输的要求。

3 系统软件设计

该系统的软件设计主要包括操作系统、驱动程序、MPEG-4视频编码和应用程序。Linux提供了丰富的网络和总线协议栈,能够降低系统的开发成本,并缩短开发周期,因此系统选用内核版本2.6的Linux操作系统。系统将USB设备驱动模块、MPEG-4视频编码模块以及其他基本模块通过交叉编译移植到S3C2440A上。

3.1 USB设备驱动模块的移植

USB设备驱动模块的移植主要指Linux下无线网卡驱动的移植。因为嵌入式Linux系统是在嵌入式终端上运行的,这就需要将驱动程序移植到嵌入式终端上。实现驱动程序移植的方式主要有两种[3]:一种是直接将驱动程序编译到内核,在系统内核启动时,直接通过初始化函数对驱动程序进行加载,在内核启动完成的同时,实现了驱动程序的加载;二是通过模块加载的方式,在已经移植的嵌入式Linux平台上进行驱动程序的加载。这两种加载方式,前者需要改变内核结构,而且在改变驱动程序时又要进行重复编译,工作量较大。比较而言,后者的灵活性更大。因此,该系统中无线网卡的驱动加载采用第二种方式。

ASUS WL-167g V2使用的是rt73芯片,该芯片有开源的Linux驱动。由于原Makefile文件并不适合ARM移植,要先对其修改再进行交叉编译,最后生成驱动rt73.ko文件。将其下载到ARM板上,并使用insmod命令进行加载。加载成功后,搜索附近存在的AP站点,再对网络进行iwconfig设置MODE,EESID,KEY等参数,并用ping命令测试无线网络是否连通。

3.2 MPEG-4视频编码模块

实现MPEG-4编码的方式有硬件压缩和软件压缩两种。硬件压缩是利用专门的压缩芯片对视频信号进行MPEG-4编码,而软件压缩是使用压缩软件对视频信号进行编码。该系统主要采用软件实现视频信号的编解码。

Xvid是一个开放源代码的MPEG-4多媒体编解码器,它是基于OpenDivX而编写的。由于Xvid是GNU GPL许可的自由软件,这意味着,软件的源代码是公开提供的,并且程序员可以对代码进行修改。目前,该系统采用的Xvid版本为Xvid 1.2.1,下载Xvid 1.2.1源码包xvidcore-1.2.1.tar.gz解压后,进行交叉编译,并移植到ARM平台。根据实际项目,编译步骤如下:

(1) 确保arm-linux-gcc交叉编译工具的正确安装;

(2) 解压缩xvidcore 源代码:

# tar xzvf xvidcore-1.2.1.tar.gz

(3) 进入xvidcore/build/generic目录,可以执行./configure Ch来显示帮助信息。根据帮助信息设置静态链接库和动态链接库的安装路径,配置所用的交叉编译器。根据程序安装的实际情况,执行如下命令配置软件功能,生成platform.inc文件。

#./configure build=arm-linux-gcc host=arm-linux --disable-assembly--prefix=/usr/local/arm/3.4.1/arm-linux

(4) 手工配置platform.inc文件,修改CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc,运行make,makeinstall编译、安装源代码。

(5) 进入examples目录,运行examples下的Makefile文件,编译生成xvid_bench,xvid_decraw,xvid_encraw三个文件,将这些文件通过串口下载到目标板上运行即可。

经过调试和优化后,在400 MHz主频下对分辨率为176×144 的QCIF图像可以达到20 f/s左右的编码速度,基本实现了实时编码,可以达到实用的要求。

3.3 网络传输应用程序

实现网络传输的应用程序软件主要是嵌入式前端发送软件以及服务器接收软件的设计与实现,包括对嵌入式前端设备的控制与管理,视频数据的接收、存储、回放视频质量的调整以及可同时管理多路前端设备,接收多路视频的功能;嵌入式前端设备与服务器之间数据通信的设计与实现,包括Socket通信、MPEG-4视频流的编解码、数据包的封装、协议处理等功能。

该系统视频数据发送和接收的过程如下:前端设备先启动并处于等待用户连接的状态;当服务器需要数据时,它首先输入前端设备的IP地址,向前端设备发出数据请求;前端设备在接收到数据请求后,将它的IP组播地址和端口号传给服务器;服务器收到后,启动接收数据线程,创建用户播放界面,加入此IP组播组,等待接收数据,并向前端设备发回确认信息;前端设备收到确认信息后,向该组播组发送视频数据。其操作流程如图3所示。

图3 应用程序的操作流程图

4 系统测试

系统测试是在实验室内局域网完成的。把摄像头插入开发板USB接口,并通过无线网卡将开发板接入局域网内。启动开发板,并通过超级终端设置开发板IP地址为10.192.3.200。由于服务器端的视频显示需要Java环境,如果浏览器不支持Java插件,则需要安装JDK。安装成功后,在浏览器的地址栏输入:10.192.3.200即可实现视频的动态传输。测试结果如图4所示。

图4 视频传输测试结果

5 结 语

目前已经完成了视频采集驱动模块、无线网卡驱动模块的移植,实现了嵌入式前端设备与服务器之间的无线连接。为了提高MPEG-4软件的压缩效率,还需要对Xvid代码进行更深入的研究及优化。

由于该系统采用了高性能的ARM9处理器S3C2440A和嵌入式Linux操作系统,使其性能基本上能满足无线视频传输的要求,并具有一定的可扩展性,能通过功能模块的扩展满足更高用户的需求。

参考文献

[1]靳锐敏,别红霞.无线视频监控技术与系统综述[J].中国多媒体通信,2007(4):12-15.

[2]关学忠.基于WinCE的ARM视频监控系统解析[J].中国公共安全,2008(4):100-103.

[3]王陆林,刘贵如,蒋朝根.基于WLAN的嵌入式视频监控系统的研究与设计[J].西南科技大学学报,2008,23(1):43-47.

[4]王鹏,黄建,吕志刚.基于ARM9的嵌入式多路视频监控系统设计[J].电视技术,2008,32(7):84-86.

[5]郝卫东,李静.基于Linux的嵌入式网络视频监控系统研究与设计[J].计算机系统应用,2008,17(8):69-72.

[6]王宪,刘井权,戴F.基于ARM平台的远程视频监控系统的研究[J].微计算机信息,2007,23(2):73-75.

[7]钱晓华,郭继红.基于嵌入式Linux的无线网卡驱动程序[J].辽宁大学学报:自然科学版,2008(1):55-57.

[8]高雪娟,卓力,王素玉,等.基于H.264标准的无线局域网视频传输系统实现方案[J].测控技术,2008,27(5):15-18.

[9]张金刚.基于ARM和WLAN的室内监控系统研究[J].长沙通信职业技术学院学报,2008,7(4):1-5.

[10]谭云福,王云龙,刘国华.基于Internet的远程视频监视系统的设计与实现[J].微电子学与计算机,2008(7):225-228.