基于 PTP协议的航空图像高速传输
2010-11-06宋雪群
宋雪群,刘 洵,王 洪
(1.中国科学院长春光学精密机械与物理研究所,吉林长春 130033; 2.中国科学院研究生院,北京 100039)
1 引 言
航空侦察、遥感遥测、气象探测等技术的日益发展,对成像技术提出了越来越高的要求;与此同时,航空相机的分辨率不断提高,侦察覆盖范围不断扩大也导致图像的数据量成倍增加。然而,航空相机的存储空间和传输带宽有限,如何高倍率地压缩图像以减少图像数据量,并在此基础上提高图像的传输速度成为航空相机图像高速传输的关键所在。
图像数据传输技术分为并行传输和串行传输两种。并行传输技术速度快,但是数据总线引线多、成本高、易受干扰、可维护性差,只适用于短距离传输[1]。如IEEE1394是一种高速串行总线,具有热插拔、即插即用的优点,可以克服并行传输引线多、成本高等缺陷,现行确定的最大速度已达400 Mb/s,以后还有望提高到800 Mb/s、1.6 Gb/s、3.2 Gb/s,但 IEEE1394的应用不普遍,目前只应用于一些使用高带宽的设备中,而且其占用资源比较多[2]。而 USB作为连接计算机和外部设备的一种通信接口,已广泛应用于各种设备的数据传输中。它以安装简单、支持热插拔、传输速率高等优点成为移动设备数据交换的首选[3]。目前,常用的 USB2.0最大数据传输速度达60 MB/s。
本文针对基于 USB总线接口的 PTP协议提出了一种高速图像传输方式,利用 JPEG标准图像压缩算法,减少了图像数据传输量,通过对文件流多线程的控制,达到了图像高速串行传输的目的。
2 PTP协议
PTP[4]是一个与数码摄影设备通信的独立传输协议,通过 W IA(W indows Image Acquisition)支持静态图像设备,使用 WDM(W indows Driver Model)驱动结构,实现航空相机与其它外围设备的通信和数据交换。PTP协议内容包括对设备进行发送和接收图像操作、预览缩略图、传送图像数据 (包括图像信息、设备信息等),以及对设备进行远程控制操作等。PTP可以在多种接口上进行通信 ,如:lr-DA、USB、IEEE1394、RF/Bluetooth等。
与通常意义上的主从连接方式或同等作用连接方式相比,PTP协议只定义了初始化器 (Initiator)和响应器 (Responder)。初始化器是向响应器发送初始化操作请求的设备;而响应器是响应操作请求的设备。某种设备可以是初始化器,也可以是响应器,或者两者皆是。本文中 PC(或应用层)为初始化器,而航空相机为响应器。
PTP使用专门指定的传输模式。事件由请求操作组成,用于图像数据传输和响应。PTP经由USB传输时拥有 3个线程:控制线程、数据线程和中断线程[5]。
图1 PTP的软件结构Fig.1 Sof tware architecture of PTP
PTP层与应用层通信时包含有以下原始操作,具体可参见图1。
(1)控制线程主要实现 PTP协议的操作请求与响应。
(2)数据线程分数据输入端和数据输出端,数据输入端用来传输图像数据,地址为 0x01~0x0F。数据输出端用于接收图像数据,地址为0x81~0x8F。
(3)当设备的一个异步事件发生,如低电量指示或删除记忆卡,异步事件通过中断线程来通知。
(4)PTP事件根据响应器的状态变化发出通知并初始化响应器。
(5)设备连接 /断开连接依赖于事件类型的平台,事件不会在初始化器和响应器之间直接通信,只有当检测到设备已经连接 /断开时,PTP层才开始产生通信。
航空相机与存储设备交换图像数据信息之前,需先建立 PTP会话。会话是 PTP设备之间的逻辑联系,包括对象标识符、EventHandler、存储媒介标识符 (Storage IDs)等。在航空相机返回一个有效的响应后会话开始执行 OpenSession操作。CloseSession操作完成或关闭传输信道后结束会话。打开一个会话意味着应用层开始与航空相机连接,用户可以从应用层控制航空相机,获取相关的属性和对象,实现拍摄和图像传输等功能,如图2所示。
图2 PTP的会话Fig.2 PTP session
3 系统设计方案
3.1 系统概述
本系统主要功能是完成航空相机的图像数据压缩、存储、传输以及对相机的控制,整个系统框架如图3所示。
本方案的地面测试系统,通过地面控制,地面指挥可以与航空相机进行实时通信。从设备主要由航空相机、相机控制器、横滚控制器、反射控制器等几部分组成。从设备工作如下:
(1)通过给系统各个设备上电后,从设备与主机开始进行通信,检查相机状态并初始化航空相机。
图3 图像传输系统总体设计Fig.3 Overall design of image trans mission system
(2)相机控制器通过外设接口接收无人机发来的飞行参数,如飞行高度、飞行速度、俯仰角速度、偏航角速度、横滚角速度等。相机控制器根据参数进行计算,将计算结果分别送给横滚控制器和反射镜控制器。同时,横滚控制器和反射镜控制器也将各自的运行状态反馈给相机控制器。
(3)PTP响应器是响应主机发送的各种操作指令,使航空相机执行图像属性的获取、拍摄、传输、存储等功能。
(4)航空相机将获取的图像发送至图像处理器,对图像进行预处理和图像压缩之后,再将压缩的图像数据通过 USB2.0传输到主机。
主设备的具体应用如下:
(1)主机 (应用层界面)通过 USB传输总线对航空相机、相机控制器、图像处理单元进行地面控制。
(2)USB接口的主从结构特性决定了 PTP在USB上通信需采用主从式结构。USB驱动程序完成对 USB设备的检测、枚举等初始化工作,向USB总线驱动设备递交 URB(USB Request Block)请求,并向 PTP应用程序提供接口。
(3)PTP应用程序是 PTP协议的实现模式,调用API函数实现设备的连接机制和执行传输功能。
(4)图像传输到主机后,可以直接进行图像存储或对图像进行后续的图像处理,存储并显示图像。
(5)为了确保整个系统正常工作,读取完一帧图像之后,主机发送下一帧读取指令,持续发送图像。
3.2 图像数据压缩模块
图像压缩[6,7]是航空图像高速传输系统的一个重要组成部分,主要完成图像的压缩编码。航空图像压缩过程分为 DCT、变换系数量化 (Quantizing)、重排序和游程编码 (Zigzag Recording&RLC)、可变长编码 (VLC)4个环节,如图4所示。
图4 JPEG图像处理过程Fig.4 JPEG image processing
首先,对每一个 8 pixel×8 pixel大小的子块进行二维前向离散余弦变换 (简称 FDCT),子块由 8×8的矩阵表示。经过变换后,包含图像主要信息的低频分量都集中在左上角,包含图像细节的高频分量分布在右下角。对 DCT系数进行量化,减小了非 0系数的幅度,增加了 0值系数的数目,降低了比特率,以达到压缩的目的。将 DCT系数量化后,再按照“Z”字型方式将块中的系数排序,然后对得到的序列进行基于 Huffman码的游程编码 (RLE)和可变长编码,最后将码流按照JPEG标准格式写文件,用于传输和存储。
3.3 图像传输模块
图像压缩完之后,为实现图像压缩和图像传输的同时进行,本文选用 Visual C++6.0作为开发工具,充分利用图像采集卡具有的功能 (必须在设备选型时慎重考虑,减少系统开发周期和难度),设计了一种双缓冲区、多线程结构,如图5所示。双缓冲区是包括编码缓冲区和文件流缓冲区。整个传输过程有 4个线程:压缩编码线程负责对图像进行压缩编码,并将压缩图像数据写入编码缓冲区;内存切换线程负责将编码缓冲区的内容转发到文件流缓冲区;图像发送线程将文件流缓冲区里的图像数据下载到存储介质;主线程协调上述 3个线程同时运行和接受存储介质的确认信息。
图5 多线程传输流程图Fig.5 Flowchart ofmultithread transmission
当主机发送确认信息,编码缓冲区为空时,激活编码线程,进行图像编码,编码结束后,判断文件流缓冲区是否为空,为空则激活内存切换线程,转存图像数据。当文件流缓冲区不为空时,激活图像发送线程,下载图像数据到存储介质。当存储介质写入一帧图像之后,主机发送下一帧读写指令,保持图像持续传输,如图6所示。压缩编码线程、内存切换线程和图像发送线程既存在一种先后的顺序关系,同时也存在一种并行的关系。主线程控制着其他线程稳步有序地进行。这样,使得图像的采集、压缩、传输、存储能同时进行。
图6 多线程传输的流程图Fig.6 Flowchart ofmultithread transmission
4 实验结果
为了测试这种方案的可行性,对其所能达到的压缩质量、传输速率、以及误码率进行了地面测试实验和性能分析。
图7 原图像Fig.7 Origional image
图8 压缩后的图像Fig.8 Compressed image
为了减少图像传输的数据量,提高传输的速度,本文结合图像的品质与压缩比,采用 JPEG进行图像压缩 (压缩比为 32∶1),数据压缩前后的图像效果如图7和图8所示。
经过长时间的测试结果表明,本系统的平均传输速率为 53.641 Mb/s,存储的数据能达到100%的正确率,图像数据的传输和存储都无误码。同时,图像像素越大,传输速率越快,图像像素越小,传输速率越慢,如表1所示。
表1 不同像素图像的传输速度Table 1 Transm ission ratio of different image sizes
除了前面分析的总线传输技术、存储设备技术决定系统的数据传输能力外,硬盘写入速度和硬盘上是否有碎片对数据存储速度也都会有相当的影响。
5 结 论
提出了基于 PTP协议的航空相机和远程设备之间的图像传输。采用图像压缩方法和多线程传输使得图像能够较快地传输,充分满足系统工程要求,有较好的工程实际应用价值。在要求高速、实时和连续采集与存储的情况下,一方面要求系统不间断进行图像数据采集,同时还要求进行图像数据实时地传输、存储,否则将会丢失数据,造成数据不完整。本文所采用多线程传输模式,较好地解决了这个问题,既保证了数据的实时性、完整性和连续性,避免了数据丢包,也保证了图像传输的速度。
[1] 吴成柯,戴善荣,陆心如.图像通信[M].西安:西安电子科技大学出版社,1992.WU CH K,DA ISH R,LU X R.Im age Comm unication[M].Xi′an:Xi′anUniversityof Electronic Science and Technology Press,1992.(in Chinese)
[2] LGARASH I T.Home ne twork file system for home network based on IEEE1394 Technology[J].IEEE TCE,1999,3(45):150-151.
[3] USB Implementer′s Forum.Universal serial bus still image capture device definition revision 1.0[ER/OL].(2000-07-01)[2010-01-14]http://www.usb.org.
[4] Camera& Imaging ProductsAssociation(CIPA),PTP-IP picture transfer protocol over IP version 1.0[EB/OL].(2005-04-01)[2010-01-14]http://www.cipa.jp/hyoujunka/kikaku/pdf/DC-X005.pdf.
[5] ISO 15740,Picture transfer protocol(PTP)for digital still photography devices,Photography-Electronic still picture imaging[EB/OL].(2007-07-06)[2010-01-14]http://download.csdn.net/source/205789.
[6] 李仕,张葆,孙辉.航空多重模糊图像的恢复[J].光学精密工程,2009,17(5):1161-1170.L I SH,ZHANGB,SUN H.Restoration of aerial multiple blurred images[J].Opt.Precision Eng.,2009,17(5):1161-1170.(in Chinese)
[7] 李仕,张葆,孙辉.航空视频图像实时压缩算法的优化设计[J].光学精密工程,2009,17(2)426-432.L I SH,ZHANGB,SUN H.Optimized design of real-time encode for aerial-video image[J].Opt.Precision Eng.,2009,17(2):426-432.(in Chinese)