沈阳理工大学信息科学与工程学院 吴 凯
基于无人机平台的H.264视频传输系统的设计
沈阳理工大学信息科学与工程学院 吴 凯
视频传输系统是无人机执行任务的重要组成部分,本文设计一套嵌入式视频采集传输系统。该系统以Hi3520D为硬件核心平台,采用linux实时操作系统,图像采集使用高清网络摄像头。将摄像头采集的图像数据进行H.264压缩,通过UDP组播协议方式,将H.264码流经数据链传输到地面接收站,实现解码并实时显示。本系统可以完成小型无人机侦察功能。具有广泛的应用前景。
Hi3520D;linux;图像采集;H.264;UDP
近年来,各地区、各部门在综合规划、国土整治监控等方面,无不需要最新、最完整的地形地物资料。以无人机为空中遥感平台的技术,正是适应这一需要而发展起来的一项新型应用性技术。随着视频采集处理以及无线传输技术的高速发展,无人机视频采集与传输系统正在向高清化和网络化发展。H.264视频压缩技术因具有低码率和网络适应性强等特点被广泛推广[1]。本文搭建了一套基于Hi3520D芯片的图像采集、压缩以及传输系统,将嵌入式技术与图像处理技术相结合,通过网络把采集到的视频图像信息通过数据链无线传输到远程计算机并实时显示。
视频传输系统系统主要分三个部分:视频图像的采集、图像的编码、编码图像的传输[2]。
系统工作流程:高清摄像头将采集的图像数据传输到Hi3520D处理器,进行压缩处理并传输到发送数据链,接收端数据链接收到图像数据经手持控制器或VLC播放端解码播放。
本系统采用的是华为公司的基于ARM11内核的Hi3520D高性能通信媒体处理芯片,其主频可以达到660MHZ,支持8路多协议编解码能力,集成优异的视频引擎和编解码算法,具有丰富的外围接口。摄像头采用海康高清萤石系列摄像头,具有丰富的接口设计,画面清晰,体积小等特点。无线通信模块采用BOYUAV 601无线通信模块,标称无线传输最大速率为4Mbps,具有重量轻,防静电设计,超强散热设计等特点,适用于小型无人机平台。
该系统的软件设计主要包括操作系统、H.264视频编码和传输。操作系统选择linux操作系统,提供了丰富的网络功能,具有良好的可移植性。H.264编码库选用HiMPP库。网络传输协议选用UDP组播协议[3]。
应用程序使用模块化程序设计,包括3个模块:①图像采集;②图像压缩;③图像传输。
V4L2是针对免驱usb设备的编程框架,提供了一套API接口用以采集音频和视频数据。Linux对于USB摄像头驱动的支持及V4L2的支持需要在内核中进行配置[4]。V4L2的视频采集主要是通过ioctl函数传递不同的控制命令来设置采集图像的参数。其中ioctl函数的原型为:int ioctl(int fd,int request)。第一个参数是用open函数打开视频通道后返回的的设备描述符;第二个参数是具体的命令标志符。采集流程如图1所示。
图1 图像采集流程
图2 视频编码流程
H.264是一种高性能的视频编解码技术。H.264采用统一的VLC符号编码[5],以及基于4块的整数变换、分层编码设计,这些措施使得H.264得算法具有很高的编码效率、网络适应性,能够更好的适应IP和无线网络的应用。视频编码流程如图2所示。
1)HI_S32 HI_MPI_VENC_CreateGroup(VENC_GRP VeGroup);创建编码通道组。
2)HI_S32 HI_MPI_VENC_CreateChn(VENC_CHN VeChn,const VENC_CHN_ATTR_S*pstAttr);创建编码通道。
3)HI_S32 HI_MPI_VENC_RegisterChn(VENC_GRP VeGroup,VENC_CHN VeChn);注册编码通道到通道组,将编码通道与编码组绑定。
4)HI_S32 HI_MPI_VENC_StartRecvPic(VENC_CHN VeChn)。开启编码通道接收输入图像,采集的图像数据输入,编码器开始接收图像编码。图像压缩处理完成并传输到发送数据链。
组播是一种一对多的网络数据传输方式,发送端将数据向一个组播组内发送,网络中的路由器通过底层的IGMP协议自动将数据发送到所有监听这个组的终端。
组播传输实现步骤如下:
1)sockfd=socket(AF_INET,SOCK_DGRAM,0);创建socket用于UDP通讯2)groupSock.sin_addr.s_addr = inet_addr(quot;224.0.1.2quot;);设置组播地址。
groupSock.sin_port=htons(7980);设置端口。
3)sendto(sd, databuf,datalen,0,(struct sockaddr*)amp;groupSock,sizeof(groupSock));通过sendto将H.264码流发送到组播组。
4)关闭socket。
在Windows平台下,将接收数据链与计算机连接,例如组播地址为224.0.1.2,端口为7980。在VLC的地址栏输入UDP://224.0.1.2:7980,可以播放从无人机实时传输的视频图像。当将手持设备加入组播组,可以实现在手持端实时显示视频。
为了测试数据传输是否正确,在无人机飞行过程中,通过数据链将无人机平台与地面控制站连接,可实时查看画面。采集的图像如图3所示。
图3 采集的图像
通过测试,发现基于H.264压缩的视频传输系统可以在带宽受限的情况下,保证视频图像的实时流畅的传输。相比MPEG-4压缩方式,H.264具有更高的压缩比,提高了编码效率,在低码流下可达到优质图像质量。相比传统的单播传输方式,本文所采用的UDP组播可以同时满足多个接收终端同时显示,提高了系统的可操作性。
本文设计搭建了一套基于海思Hi3520D的无人机视频传输系统,实现了视频从无人机采集传输到地面实时显示的功能,该系统可以实现在地面站多个设备的同时接收显示。
本文创新点:设计提出结合嵌入式技术、视频压缩编码技术、无线通信技术、网络技术等,多项技术的无线视频传输系统,采用linux实时多任务操作系统、H.264视频压缩、UDP组播传输等技术,使视频传输实时性和清晰度得到很大提升,可以满足无人执行侦察任务要求,在以后具有很大的应用前景。
[1]毕厚杰,王建.新一代视频压缩编码标准— —H.264/AVC(第2版)[M].北京:人民邮电出版社,2013.
[2]邵春晖.基于Linux的智能家居网关研究与实现[D].长安大学,2013.
[3]李校林,刘利权,张杰.基于RTP的H.264视频流实时打包传输的研究[J].计算机科学与工程,2012,34(5):168-171.
[4]季宇.基于流媒体技术的移动视频监控服务系统[D].天津:天津大学,2011.
[5]张海军,吴克捷,张建军 等.RTP传输控制的研究及实时视频监视系统的设计与实现[J].信息化纵横,2009(5):55-56.
辽宁省教育厅科学研究项目资助(LG201610)。