无人机系统的下位机要求实时传输视频数据到上位机,由于视频数据量较大且网络带宽非常宝贵,对视频数据选用一种高压缩比的文件格式显得十分重要。 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层模型。