武文波赵海涛雷宁王琨
(1北京空间机电研究所,北京 100076)(2国家测绘质量检测中心,北京 100830)
在遥感对地观测系统中,遥感CCD相机因其高清晰度、高分辨率而成为目前遥感卫星中搭载最多的有效载荷。随着CCD遥感相机分辨率和幅宽的不断提高,相机输出的图像数据量急剧增加,给星上图像数据的存储和传输带来极大的压力。在现有的通信带宽条件下,必须对CCD相机输出的数据进行压缩才能进行实时的传输处理,因此,设计高保真、高速率的星上图像压缩技术成为缓解上述矛盾的唯一途径。
图像压缩技术经过几十年的发展,已经形成了多种成熟算法及标准,而基于小波的图像编码算法是目前应用比较广泛的算法之一,比较经典的如嵌入式零树小波编码EZW(Embedded Zero-tree Wavelet)算法[1]、多级树集合分裂SPIHT(Set Partitioning in Hierarchical Trees)算法[2]、嵌入式零块编码 EZBC(Embedded Zero Block Coder)算法[3]。近几年来,为了更好的表现图像的纹理特征,相继提出了一些新的多尺度几何分析方法,如Ridgelet、Bandlet、Curvelet和Contourlet变换等,这些变换都采用了一些方向敏感性更高的变换基,从而更适合于图像的纹理特征处理[4-5]。上述算法大多是为静止图像压缩而设计的,且大部分算法比较复杂,硬件实现比较困难,难以满足星上遥感CCD图像的高速压缩处理要求。JPEG2000压缩标准是国际标准化组织ISO和国际电信联盟ITU推出的针对于图像的最新压缩标准[6],该标准采用离散小波变换技术,使图像的压缩品质相比JPEG标准有了显著的提升。ADV212芯片是AD公司采用JPEG2000压缩标准面向图像和视频压缩处理应用推出的一款压缩芯片,由于其良好的性能,目前已在图像、视频等领域得到了广泛应用。
遥感CCD相机相比日常用的CMOS数码相机在成像感光度、成像图像品质方面更有优势,另外,遥感相机在成像周期内会连续不断的输出高速图像数据,压缩系统必须满足图像数据的实时处理要求。本文针对遥感CCD相机输出数据特点进行分析,基于ADV212压缩芯片编码技术,提出了一种适合于遥感CCD相机的压缩方案,并以4 096像元(10bit量化)推扫式CCD相机输出数据为例,给出了系统的硬件架构及实现。系统采用FPGA+ADV212+SRAM的硬件结构方式,由FPGA作为系统的主控,完成图像数据的SRAM缓存和ADV212芯片的配置及数据的输入输出。
遥感相机输出的信号主要包括时钟信号、同步信号和图像数据信号,遥感相机在工作过程中,由于卫星高度的变化,需要相应的调整CCD的积分时间,从而导致相机输出的数据同步信号会发生变化。在设计遥感图像压缩系统时,需要根据系统的数据量及系统输出数据的特点来确定系统的体系架构。在设计压缩系统时,需要总体考虑的要素主要包括:
1)系统的数据吞吐率
系统数据吞吐率是指系统需要设计的处理能力,单位为采样点/秒,即每秒可以处理的图像像素个数。在相机压缩系统总体设计时,需要考虑相机输出的数据量,然后根据压缩芯片的处理能力,计算出整个压缩系统需要的压缩芯片个数。
2)系统压缩图像的大小
ADV212压缩芯片最大可处理的像素数是1.048M像素,处理最大图像宽度是4 096像元。由于系统需要对输入的图像进行缓存处理,在系统设计时需根据ADV212的处理能力和系统缓存能力来确定压缩图像的大小。
3)系统总体架构设计
以ADV212压缩芯片为核心,配合使用一些处理器,可以完成压缩系统的构建。目前以ADV212构建压缩系统主要有两种方式,一是采用ADV212+DSP的方式,二是采用ADV212+FPGA的方式。从系统的处理速度方面,由于FPGA相比DSP有着更快的处理速度,本文主要考虑采用FPGA作为处理器来完成压缩处理。系统共分为三大部分:预处理及控制部分、图像数据压缩部分、数据缓存部分。预处理及控制主要负责输入图像的预处理及系统的初始化配置;图像数据压缩部分是系统的核心,负责完成输入图像的压缩;数据缓存部分完成对系统输入图像的缓存分割处理,生成ADV212可以处理的图像数据。
本文以DALSA公司的推扫式CCD相机HS-40-04k40输出数据为例,给出了适合于该相机的压缩系统架构体系。HS-40-04k40相机主要参数如下:CCD像元数4 096;CCD像元尺寸7μm;抽头数2或4抽头;积分级数5级。该相机输出数据通过相机标准接口(Cameralink)输出,主要包括时钟信号(40MHz)、行同步信号(高电平有效)和10bit图像数据,数据量达到400Mbit/s。ADV212压缩芯片单片最大处理能力为65×106采样点/秒,该HS-40-04k40相机的输出数据率没有超出单片ADV212的处理能力,因此系统选用1片ADV212芯片可以完成相机输出数据的压缩;由于ADV212在用户自定义模式下,其输入的同步信号需要保持不变,因此需要将相机输出的数据通过SRAM进行缓存预处理,选取2片SRAM对相机输出图像数据进行缓存,通过“乒乓”操作,对图像数据进行“流水”压缩实时处理;选取ADV212的用户自定义模式作为工作模式,该模式利用VDATA接口输入图像数据,HDATA接口输出压缩数据,最大限度的提升系统的吞吐量。
经过对相机输出数据率的分析,确定压缩系统硬件组成如图1所示:
图1 遥感图像压缩系统结构框图Fig.1 Structure of remote sensing image compression system
1)2片SRAM,存储量为16Mbit,对输入图像数据的“乒乓”缓存处理;
2)1片ADV212,对图像数据的压缩处理;
3)1片PROM,存储量为512kbit,存储ADV212初始化固件程序;
4)1片FPGA,对ADV212压缩芯片、SRAM和PROM进行控制,并负责图像数据的输入输出。
为了保证ADV212芯片能够正常进行编码处理,需要对芯片进行配置。芯片的配置信息主要包括:内部时钟的配置、工作模式的配置、固件程序载入、编码参数配置等[7]。ADV212有多种工作模式,针对不同的工作模式,需进行相应的参数配置。考虑到CCD遥感相机的数据特点,为了最大限度的提升压缩系统的处理能力,对ADV212压缩芯片的工作模式选择,本文选取用户自定义模式(Custom-specific mode)[8]。表1给出了用户自定义模式下需要配置的相关核心编码参数,通过正确配置这些参数,可以确保压缩芯片实现正常压缩功能。
表1 ADV212编码参数Tab.1 ADV212 encoding parameters
续上表
配置流程如图2所示。首先对ADV212进行复位,然后配置ADV212内部工作时钟寄存器PLL_HI和PLL_LO,本文中PLL_HI配置为0X0008,PLL_LO配置为0X0002,此时ADV212内部时钟JCLK频率是MCLK频率的2倍,HCLK和MCLK频率相同。配置完时钟寄存器后,等待至少20μs以使PLL生效。接下来配置ADV212工作模式和主机模式,配置完成后将ADV212芯片的固件编码程序通过HDATA接口写入。等固件程序写入后,须配置ADV212工作时需要的一些编码参数,如表1所示。参数配置完成后,初始化和使能DMA寄存器,然后配置中断外部寄存器并判断初始化是否完成,等待初始化完成后清除中断寄存器,ADV212芯片开始正常工作。
图2 ADV212初始化流程图Fig.2 Flow chart of ADV212 initialization
根据相机输出的同步信号,首先将前128行图像数据写入SRAM1,写完128行图像数据后,根据ADV212工作时序要求,读出图像数据并送入ADV212芯片进行压缩;与此同时,将后面的128行图像数据写入SRAM2,然后将SRAM2中的数据读出送给ADV212芯片。通过两片SRAM的“乒乓”操作(如图3所示),实现了相机输出数据的流水压缩处理,满足系统实时处理要求。
图3 图像数据“乒乓”缓存预处理Fig.3 The ping-pang preprocessing of input image data
本文设计了验证系统并采用软硬件协同验证方法来验证压缩性能,验证系统如图4所示。压缩系统通过CameraLink接口接收来自相机或图像模拟源的图像数据及同步信号,完成对输入图像数据的压缩处理,并将压缩码流通过CameraLink接口发给采集系统,采集系统采集并存储压缩码流数据,最后通过软件解压得到压缩重建图像。
设计一组试验对系统进行压缩性能测试。测试图像为原始航拍遥感图像、相机外景成像图像。本文选用Xilinx Virtex 4 FPGA,实验结果表明,对10bit遥感图像数据,系统在50MHz时钟下可以正常工作,系统吞吐率达到400Mbit/s,满足系统实时处理要求。表2是两类图像压缩性能(峰值信噪比)的比较,试验结果表明,随着压缩倍率的提高,获取重建图像的峰值信噪比也随之降低。但总体来讲,对两种不同类型的图像数据在16倍压缩以内峰值信噪比都保持在35dB以上,取得了较好的压缩效果。
图4 实验验证系统框架Fig.4 Structure of testing system
表2 压缩性能比较Tab.2 Performance of compression
遥感图像一个显著特点就是纹理丰富,而纹理对图像的解译分析具有非常重要的意义。图5是ADV212压缩后的纹理分析,其中图5(a)是原始图像,图5(b)是压缩重构图像,从目视效果上来看压缩前后纹理特征没有明显的变化。
图5 压缩图像纹理分析Fig.5 Texture analysis of compressed image
对于压缩重建图像的像质评价一直是图像压缩领域的一个重要研究课题。遥感图像经过压缩(有损压缩)会产生灰度值的失真,但由于这种失真对遥感图像品质的影响并不是很确定的,因此只有这种失真对于遥感图像解译不会产生明显影响才是可以接受的。目前对遥感图像的像质评价还没有一个统一的标准,但文献[9]中大量的实验表明:在一定的压缩范围内(30倍以内),图像小波压缩对内定向和相对定向的影响在精度误差范围以内,而且对数字高程模型的影响也满足精度要求。文献[10]也对遥感图像压缩后的像质进行了探讨,研究表明遥感图像的压缩(16倍以内)不会对图像品质造成影响。
遥感数据压缩是遥感研究领域内的一个重要课题。本文基于ADV212压缩芯片,通过分析遥感CCD相机的输出数据特点,提出了适合遥感CCD相机的遥感图像压缩方案,并设计实现了相应的验证系统。试验结果表明,该系统可以在50MHz下正常工作,满足CCD相机输出数据的实时压缩处理要求。
References)
[1] Shapiro J.Embedded Image Coding Using Zero-trees of Wavelet Coefficients[J].IEEE Transactions on Signal Processing,1993,41(11)∶3445-3462.
[2] Said A,Pearlman W A.A New Fast and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees[J].IEEE Transactions on Circuits and System,1996,6(3)∶243-250.
[3] Hsiang S T,Woods J W.Embedded Image Coding Using Zeroblocks of Subband/Wavelet Coefficients and Context Modeling[C]//Proceedings of IEEE International Symposium on Circuits and Systems.Geneva,Switzerland,2000∶662-665.
[4] Belbachir N,Gobel P.The Contourlet Transform for Image Compression[C]//Proceedings of 4th Conference on Physics in Signal and Image Processing.Toulouse,France,2005∶251-256.
[5] Gerek O N,Cetin A E.A 2-D Orientation-adaptive Prediction Filter in Lifting Structures for Image Coding[J].IEEE Transactions on Image Processing,2006,15(1)∶106-111.
[6] ISO/IEC 15444-1,JPEG2000 Image Coding System[EB/OL].2000,http∶//www.jpeg.org.
[7] Analog Devices,ADV212 JPEG2000 Video Processor User’s Guide[EB/OL].2006,http∶//www.analog.com.
[8] Analog Devices,ADV212 JPEG2000 Programming Guide[EB/OL].2007,http∶//www.analog.com.
[9]仇彤.小波理论及小波图像压缩在数字摄影测量中的应用[D].武汉∶武汉大学,1997.QIU Tong.Wavelet-based Image Compression in Digital Photogrammetry[D].Wuhan∶Wuhan University,1997.(in Chinese)
[10] 马国锐,武文波,秦前清.遥感图像压缩质量评价方法[J].遥感信息,2004(3)∶48-52.MA Guorui,WU Wenbo,QIN Qianqing.Evaluating Methods for Compression Quality of Remote Sensing Image[J].Remote Sensing Information,2004(3)∶48-52.(in Chinese)