嵌入式Linux飞行器视频采集与处理模块设计

2017-04-14 05:13陈二阳袁姜红
关键词:解码飞行器嵌入式

陈二阳, 刘 成, 袁姜红, 雷 霖

(1.成都大学 信息科学与工程学院, 四川 成都 610106; 2.成都理工大学 地球物理学院, 四川 成都 610059; 3.四川文轩职业学院 信息工程系, 四川 成都 611330)

嵌入式Linux飞行器视频采集与处理模块设计

陈二阳1,2, 刘 成1, 袁姜红3, 雷 霖1

(1.成都大学 信息科学与工程学院, 四川 成都 610106; 2.成都理工大学 地球物理学院, 四川 成都 610059; 3.四川文轩职业学院 信息工程系, 四川 成都 611330)

为提高微型飞行器无线视频的传输距离及传输质量,选用S3C2440微处理器为控制中心、OV9650摄像头为移动端视频采集设备,给出了视频采集与处理模块的总体设计方案和硬件结构.模块开发基于嵌入式Linux平台,设计并实现了遵循V4L2(Video For Linux 2)驱动标准的移动端视频采集模块、基于H.264的视频编解码模块以及适用于3G/4G的无线网络通信模块,其中无线通信采用RTP协议,以满足视频无线远程传输的实时性要求.结果表明,该系统传输的视频满足清晰、稳定与延时低的要求,具有一定的实用前景.

微型飞行器;S3C2440;V4L2;H.264;RTP

0 引 言

目前,微型飞行器(Micro Air Vehicle,MAV)已经广泛应用于地质、气象、农业、电力、城市管理、抢险救灾与视频拍摄等领域.在各种突发应急事件处理过程中,航拍资料可以为事件的调查取证、分析处理甚至远程指挥提供有力的技术支持[1].实时视频采集与传输是微型飞行器必备功能之一,而视频采集、解压缩及传输系统是微型飞行器视频传输系统中的关键技术模块,模块性能直接影响到视频传输系统是否稳定与流畅[2-4].对此,本研究以S3C2440微处理器为控制中心,OV9650摄像头为移动端视频采集设备,并在3G/4G网络视频传输的基础上,结合实时传输协议(Real-time Transport Protocol,RTP),实现了一款嵌入式Linux智能飞行器视频采集与处理模块设计.

1 总体设计

1.1 系统结构设计

系统前端的OV9650摄像头将采集的视频数据传送到以S3C2440微处理器为核心的控制中心,通过视频编码模块将视频流编码成H.264视频流,这时如果客户端向控制中心发出实时视频请求命令,则控制中心将编码后的H.264视频流通过3G/4G网络传送到客户端.客户端接收到视频流后经过解码模块对H.264视频流进行解码并显示,系统附带有视频回放与视频截图等功能.系统结构设计图如图1所示.

图1 系统结构设计图

1.2 系统软件模块划分

根据系统设计目标,系统软件可分为5个独立的功能模块,具体如图2所示.

图2 飞行器视频采集与处理系统软件结构图

1)视频采集模块.视频采集选用体积小、价格低、功耗低的OV9650 CMOS摄像头进行图像采集.原始视频采集后,模块将数据流发送至控制中心进行格式转换,以准备下一步的编码压缩.Linux下的视频采集遵循V4L2驱动标准[5].

2)视频编码压缩模块.视频压缩选用x264参考模型,编码后生成的每1帧视频可保存或放入缓冲区,供其他模块使用.

3)3G/4G网络模块.首先,微控制器与3G/4G模块之间建立底层的PPP链路连接;然后,通过AT命令控制无线模块拨号入网.数据传输过程中,底层采用UDP传输协议,应用层采用实时传输协议RTP.该模块附带数据的拥塞控制和流量控制功能,以保证视频传输的实时性,同时提高了视频传输的可靠性[6].

4)视频解码模块.视频解码采用FFmpeg解码器对接收到的数据流进行解码,供其他模块使用.

5)视频显示模块.用以在客户端显示由飞行器采集到的视频数据.

2 关键模块设计

2.1 视频采集

2.1.1 V4L2框架.

V4L2是Linux内核中关于视频设备的内核驱动框架,为上层访问底层的视频设备提供了统一接口,支持对大部分音视频设备的采集与处理,包含CCD/CMOS图像传感器[7].

2.1.2 视频采集程序.

视频采集程序的功能主要实现将实时获取的原始视频数据通过ISP接口传输到处理器存储单元,并可以实现对视频采集参数的查询与设置,如设置采集视频图像的分辨率与视频格式等.视频采集程序参照V4L2提供的标准接口设计,对视频数据的读写采用mmap映射方式,以提高可读性、灵活性及处理速度[8].视频采集的流程如图3所示.

图3 视频采集程序流程图

2.2 视频编码模块

H.264视频编码器主要包括JM、FFmpeg、T264及x264参考模型.其中,x264是一开源H.264/AVC编码库,算法复杂度适中,与H.264/AVC标准匹配效果好,图像清晰,且编码效率较高[9].本研究采用x264参考模型.为了生成x264运行库文件,需首先编译执行last-x264.tar.bz2及./configure-host=arm-linux,然后将config.mak文件中的gcc及yasm分别修改为arm-linux-gcc、arm-linux-as.视频的编码流程如图4所示.

图4 x264视频编码算法流程图

2.3 视频解码模块

系统采用FFmpeg解码器,它提供录制、转换及流化音视频的完整解决方案,且包含先进的音频/视频编解码库libavcodec.视频的解码流程如图5所示.

图5 解码流程图

2.4 软件设计

系统的软件实现分为采集端部分和接收端部分.系统中,嵌入式Linux软件实现包括BootLoader移植、Linux系统移植、x264库移植、Jrtplib移植、摄像头驱动编写、3G/4G网卡驱动编写及应用程序其他功能模块的编写.

为了方便操作,本研究将驱动程序编写成一个杂项设备驱动.在驱动入口函数camif-init中设置GPIO,设置摄像头中的寄存器及注册杂项设备.将杂项设备中的fops初始化如下,

static struct file-operations camif-fops={

.owner=THIS-MODULE,

.open=camif-open,

.release=camif-release,

.read=camif-read,

};

其中,使用open函数来打开设备、创建设备节点及申请摄像头数据所用的内存等,而release的工作与open相反.Read函数是应用程序执行过程中不断被调用的函数,用来将摄像头中的数据读取到应用程序中.

采集端和接收端结构图如图6所示.

图6 采集端和接收端结构图

3 测 试

本设计通过3G/4G模块连接成功后,其测试效果如图7所示.从PC端应用程序中可以看到,帧率为21,时延为1.07 s.由于3G模块的通信速率限制,本视频模块设计采用了帧数据量较小的QCIF格式,且使用了较大的压缩率.后期若要进一步提高视频清晰度,可以通过调整视频解码,同时使用通信能力更强的4G模块来匹配通信需求.

图7 视频采集效果

4 结 语

嵌入式Linux智能飞行器视频系统对于传输的实时性和可靠性要求较高,本研究对该系统的总体功能和硬件模块进行了设计和划分,实现了系统关键模块的程序开发.测试结果表明,系统传输的视频满足清晰、稳定及延时低的要求,具有一定的实用前景.随着4G/5G通信技术的普及与数字图像处理技术的发展,系统性能还可做出进一步改善和提高.

[1]罗贺,胡小建,付超.基于Agent组织的多UAV协调模型[J].计算机工程与应用,2007,43(11):17-19.

[2]赵满意,赵利,莫金旺.视频采集与编码技术在视频监控终端中的应用[J].计算机工程与科学,2011,33(1):122-126.

[3]柳艳茹.浅谈流媒体技术的应用与发展[J].赤峰学院学报(自然科学版),2012,28(6):16-17.

[4]李超,柴文磊,刘劲松.高清视频会议系统技术浅析[J].信息安全与技术,2010,8(8):50-51.

[5]刘小康,戴梅萼,王昊,等.多站点远程实时视频传输与控制系统[J].清华大学学报(自然科学版),2008,23(41):1154-1156.

[6]刘合.音视频编辑库的设计与实现[D].武汉:华中科技大学,2011.

[7]杨浩.基于嵌入式Linux实时控制的四轴飞行器设计与实现[D].成都:西南交通大学,2015.

[8]万长征,何利康,卢庆超,等.基于3G/4G多旋翼飞行器的视频传输系统[J].单片机与嵌入式系统应用,2014,10(10):5-7.

[9]赵晓丽,陈慧,宋占伟.微型四旋翼飞行器的嵌入式视频监控终端[J].吉林大学学报(信息科学版),2016,34(1):122-126.

Design of Video Acquisition and Processing Module of MAV Based on Embedded Linux

CHENEryang1,2,LIUCheng1,YUANJianghong3,LEILin1

(1.School of Information Science and Engineering, Chengdu University, Chengdu 610106, China; 2.College of Geophysics, Chengdu University of Technology, Chengdu 610059, China; 3.Information Technology Department, Sichuan Wenxuan Vocational College, Chengdu 611330, China)

In order to extend the transmission distance and improve the quality of video transmission of the Micro Air Vehicle(MAV),the overall design and the hardware architecture of the system are presented by using the microprocessor S3C2440 as the core processor and OV9650 as the mobile video capture device.Module development is based on embedded Linux operating system.The mobile video capture module based on V4L2(Video For Linux 2),the video encoding and decoding module based on H.264 and the wireless communication module applied to 3G/4G are all designed and realized.Meanwhile,RTP(Real-time Transport Protocol) is used for wireless communication to meet the real-time video transmission requirements.The results show that the system can meet the requirements for video transmission which include clarity,stability and low latency.Therefore,the system has a practical prospect.

MAV;S3C2440;V4L2;H.264;RTP

1004-5422(2017)01-0066-04

2016-10-25.

四川省科技厅科技支撑计划(2015FZ0066)、 四川省教育厅自然科学基金(16ZB0425)资助项目.

陈二阳(1985 — ), 男, 博士, 讲师, 从事计算机智能控制技术研究.

V279+.2

A

猜你喜欢
解码飞行器嵌入式
《解码万吨站》
高超声速飞行器
解码eUCP2.0
TS系列红外传感器在嵌入式控制系统中的应用
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
搭建基于Qt的嵌入式开发平台
复杂飞行器的容错控制
嵌入式软PLC在电镀生产流程控制系统中的应用
神秘的飞行器