当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于PC104无人机网络视频系统的构建

无人机具有体积小、重量轻、灵活机动、成本低等特点,可以用于对地侦察拍照,还可以广泛应用于军事侦察、地质勘探以及对火灾等危险区域的勘察预报等,因而在无人机上构建一个网络视频系统就显得十分重要。本文以基于PC104的无人机为基础,构建一个网络视频系统,其中,无人机视频数据的采集、压缩、解压缩、传输都是无人机网络视频系统中的关键技术,本文将针对这几部分的关键问题进行研究。

1 系统结构及工作原理

该系统的下位机主要由深圳桑达公司的PC104工控机、罗技快看太空版MP摄像头(USB接口)、linksysWRT54GC-CN无线路由器及外围电路组成,采用嵌入式Linux 2.4.26操作系统,主要负责视频数据的采集,压缩及将数据发送到上位机。上位机是包含有无线网卡的PC电脑,主要负责视频数据的接收、解压和显示,上下位机通过UDP/IP网络协议进行数据的传输,采用socket网络编程可以实现网络的互联及数据的收发。

PC104工控机采用嵌人式专用CPU PⅢ533~933 MHz,板载DDR内存高达128

MB,提供2个RS 232串行接口,2个USB接口,1个并行口,软盘驱动器接口,IDE硬盘驱动器,10/100 Base-TX Ethernet接口,CRT/LCD显示器接口和固态盘插座,支持DiskOnChip 8~288 MB。PC104工控机的操作和使用与PC机相同,安装系统硬件后,即可开机进行BIOS设置,输入电压必须为+5 V,其波动范围不超过5%。

2 视频数据采集的软件实现

Video4Linux(V4L)是嵌入式Linux下视频设备的内核驱动,他为Linux下的视频设备提供了一系列的接口函数,在编译和配置内核阶段,必须增加V4L模块和USB摄像头驱动模块的支持。对于USB接口摄像头,其驱动程序中需要提供基本的I/O操作函数open,read,write,close的实现,对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioctl的实现等,并把他们定义在struct file operations中。这样当应用程序对设备文件进行诸如open等系统调用操作时,Linux内核将通过fileoperations结构访问驱动程序提供的函数。在系统平台上对USB摄像头进行驱动,首先把USB控制器驱动模块静态编译进内核,使平台中支持USB接口,再在需要使用摄像头采集时,使用insmode动态加载其驱动模块,这样摄像头就可正常工作了。

在USB摄像头被驱动后,再利用Video4Linux支持的几个视频采集相关的数据结构进行编程,就可以实现视频数据的采集。图1是嵌入式Linux下视频数据采集的流程:

使用ioctl(devfd,VIDIOCSYNC,&vid_mmap)函数判断一帧图像是否截取完毕,成功返回表示截取完毕,之后就可把图像数据保存成文件的形式。为了得到连续帧视频图像,可在单帧的基础上,利用vid_buf.frames值确定采集完摄像头帧缓冲区帧数据进行循环的次数。在循环语句中,也是使用VIDIOCMCAPTURE ioctl和VIDIOCSYNC ioct1函数完成每帧截取,但要给采集到的每帧图像赋地址,利用语句buf=map+vid_buf.off-sets[frame],然后保存成文件的形式。

3 视频数据压缩原理

无人机系统的下位机要求实时传输视频数据到上位机,由于视频数据量较大且网络带宽非常宝贵,对视频数据选用一种高压缩比的文件格式显得十分重要。JPEG是联合图像专家组(Joint Picture Expert Group)的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图像的压缩编码标准。和相同图像质量的其他常用文件格式(如GIF,TIFF,PCX)相比,JPEG是目前静态图像中压缩比最高的,而图像质量却差不多。正是由于JPEG的高压缩比,使得他广泛地应用于多媒体和网络编程中。

JPEG-专家组开发了两种基本的压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原得到的图像与原始图像相比较,非图像专家难于找出他们之间的区别,因此得到了广泛的应用。JPEG压缩是有损压缩,他利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。JPEG算法框图如图2所示。

压缩编码大致分成3个步骤:

(1) 通过DCT去除数据冗余。DCT是影像压缩的重要步骤,他通过正交变换将图像由空间域转换为频率域。对于N×N维的数据,经变换以后仍然得到N×N的数据,虽然DCT变换本身并不对影像进行压缩,但变换消除了N×N维数据之间的冗余性。DCT变换是压缩过程中量化和编码的基础。

(2) 使用量化表对DCT系数进行量化。量化表是一个量化系数矩阵,通过量化可以降低整数的精度,减少整数存储所需的位数。量化过程除掉了一些高频分量,损失了高频分量上的细节。由于人类视觉系统对高空间频率远没有低频敏感,经过量化处理的图像从视觉效果来看损失很小。由于低空间频率中包含大量的影像信息,经过量化处理后,在高空间频率段,出现大量连续的零,这有利于以后通过编码减小数据量。

(3) 对量化后的DCT系数进行编码使其熵达到最小。遥感图像数据经过DCT和量化之后,在高频率段会出现大量连续的零,采用Huffman可变字长编码,可使冗余量达到最小。

译码或者叫做解压缩的过程与压缩编码过程正好相反。根据上述JPEG数据压缩解压原理,在C编译器和集成开发环境(Code Composer Studio,CCS)中开发实现了图像压缩解压程序,便可应用于无人机视频数据的处理中。视频数据压缩处理程序的接口如下:

 

 

4 网络传输协议及socket编程

根据OSI网络标准定义,网络由物理层、数据链路层、网络层、传输层、会话层、表示层和应用层7层组成。而在实际应用中,网络结构可采用链路层、网络层、传输层和应用层4层模型。

在TCP/IP协议组中,IP协议是网络层协议。TCP协议是一种面向连接的协议,他能够提供可靠的、全双工的网络通信服务,具有确认、数据流控制、多路复用和数据同步等功能,适合高质量数据的传输,是目前应用最为广泛的网络传输协议之一。但是,由于TCP协议实现复杂,网络开销大,以及其提供的确认与超时重传机制都给数据传输带来很大的时延。因此TCP协议不适合传输实时视频数据和突发性的大量数据。

UDP协议是无连接协议,报文交换机理简单,不存在多重确认机制,从而减少了因建立连接和撤除连接所需要的巨大开销。每个分组都携带完整的目的地址,在各分组系统中独立传送,他不保证分组的先后顺序,不进行分组出错的恢复与重传,因此无法保证传输的可靠性和服务质量。但是相对于TCP协议,UDP协议减少了确认、同步等操作,节省了很大的网络开销。他能够提供高传输效率的数据报服务,能够实现数据的实时性传输,在数据的实时传输中应用广泛。为了保证无人机视频数据传输的实时性,采用IP协议和UDP协议作为系统的通信协议。

系统中网络传输部分的软件实现采用socket(套接口)编程技术,系统调用socket()函数,返回一个整型的socket描述符,视频数据传输便是通过该socket函数实现的。常用的socket类型对应于传输协议也有两种:流式socket和数据报式socket。前者使用TCP协议,后者使用UDP协议,本系统中采用的是数据报式socket。以下是下位机socket编程的主要实现:

由上位机的无线网卡负责接收下位机的视频数据,并根据JPEG图像的解压原理对视频数据进行解压缩并显示。图3,图4可以看到从下位机采集到视频数据并通过处理之后发到上位机然后显示出来的效果。

5 结 语

本文主要介绍了一种基于PC104无人机的视频系统构建方法和流程,以PC104工控机为主要硬件平台,完成了对摄像头视频数据的采集、压缩、传输等过程的详细介绍和软件设计,采用网络UDP/IP网络传输协议和socket编程传输视频数据,保证了一定程度上的实时性,可以满足无人机地质勘探、火灾侦察等领域的应用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭