摘要:为了实现多光谱可见光遥感图像高质量压缩的要求,提出以JPEG2000压缩标准为理论,将FPGA与专用压缩芯片ADV212相结 合的空间遥感图像压缩方法。该系统设计采用ADV212,通过小波变换及熵编码实现对大数据量的空间遥感图像进行高质量实时压缩,并且采用FPGA完成图 像数据输入、压缩码流输出、图像预处理以及对ADV212的工作模式进行控制。实验结果表明,该系统设计功耗低、成本低、调试简单合理,具有较好的压缩效 果。可满足多光谱可见光遥感图像对高质量压缩比的要求。
近年来,随着航天遥感技术的发展空间遥感数据量日益庞大,图像数据量的巨大带来传输的瓶颈。同时,空间相机图像细节丰富,卫星飞行高度通常几百千米以上, 对地面覆盖范围广,地面上的小目标在卫星成像后,通常只有几个像素,因此研究空间相机图像压缩系统具有重要意义。由于JPEG2000标准采用了许多新的 压缩编码技术;全帧离散小波变换、整数DWT滤波器、带中央死区的均匀量化器实现嵌入式编码等。由此得到最佳的嵌入式码流,改进了抗误码能力和部分空间随 机存取能力,简化了某些几何操作,得到常灵活的码流语法,其在遥感图像压缩中的应用也受到重视,因此,本文研制了基于JPEG2000的空间相机图像压缩 系统。
1 JPEG2000图像压缩标准
JPEG2000是JPEG工作组制定的静止图像压缩编码的国际标准,JPEG2000采用全帧离散小波变换(DWT),DWT自身具有 多分辨率图像表示性能,而且在大范围内去除图像的相关性,将图像能量更好集中,使压缩效率得到提高;由于使用整数DWT滤波器,在单一码流中可以同时实现 有失真和无失真压缩;通过使用一种带中央“死区”的均匀量化器实现嵌入式编码。由此得到最佳的嵌入式码流,改进的抗误码能力,部分空间随机存取能力,简化 了某些几何操作,得到了活跃的码流语法。JPEG2000图像压缩标准主要特征:
1)良好的低比特率压缩性能 这是JPEC2000最主要的特征。之前的JPEG标准,对于细节分量多的灰度图像,当压缩码率低于0.25 bpp时,视觉失真大。JFPEG2000格式的图片压缩比可以在JPEG的基础上再提高10%~30%,而且压缩后的图像显得更细腻平滑。尤其在低比特 压缩码率下,具有良好的性能,以适应窄带网络、移动通信等带宽有限的应用需要。
2)累进式传输 现采用JPEG压缩的图像下载时是按“块”传输,因此只能一行一行显示,而采用JPEG2000格式的图像支持累进传输(Prog-ressive Transmission)。累进式图像传输允许图像按照所需的分辨率或像素精度进行编码和重构。用户根据需要,对图像传输进行控制,在获得所需的图像分辨率或质量要求后,在不必接收解码整个图像的压缩码流情况下,便可终止解码。
3)码流的随机访问和处理 这一特征允许用户在图像中随机地定义感兴趣的区域,使得这一区域的图像质量高于其他图像区域;码流的随机处理允许用户进行旋转、移动、滤波和特征提取等操作。
4)良好的抗误码性 在码流中提供抗误码性对于通信是必要的。例如在无线传输等误码很高的通信信道中传输图像时,JPEG2000系统采取一定的编码措施和码流格式来减小因解码失败造成的图像失真。
2 JPEG2000图像专用压缩芯片ADV212
实现JPEG2000的方案主要有基于DSP处理器的系统、基于FPGA进行的硬件实现,以及采用专用集成电路。由于DSP处理器处理的 串行性,其很难达到实时性。而采用FPGA硬件实现可以加快处理速度,但JPEG2000算法会占用大量的FPGA资源,同时系统功耗也会增加。采用专用 集成电路实现则可以很好解决上述问题。JPEG2000编解码器ADV212采用具有专利技术的空间超效率回归滤波(SURF)技术,具有低功耗和低成本 的特点。它是具有实时压缩和解压缩标准(SD)视屏信号和高清晰度(HDTV)视屏信号功能的编解码器。
图l是ADV212功能框图。该编解码器主要由像素接口、小波变换引擎、熵编解码器、嵌入式处理器、存储器系统和内部DMA引擎等组成。专利最大图块/图 像高度为4 096像素;不可逆模式最大输入速度为65 Ms/s。可逆模式最大输入速度为40 Ms/s的任何视频格式;灵活的异步主机接口能无缝连接到大多数16/32位微控制器。视频接口支持8、10、12位单一或多元格式,支持8、10、12 双通道位格式的视频和静止图像数据,支持单通道输入模式下YCrCb格式的数字视频和双通道输入模式下Y和CrCb分离的数字视频信号,但YCrCb数据 必须是4:2:2格式。VDATA总线可支持多种格式视频数据的输入输出。
3 图像压缩系统设计
系统硬件整体框架如图2所示,图像压缩工作主要是由ADV212和’Virtex-ⅡPro系列芯片XC2VP20共同完成的。由于ADV212几乎支持所有格式的视频图像信号的压缩,且单片最高输入数据速率为65 MHz/s,允许最大图像的高度和宽度均为4 096像素。
3.1 系统输入模块
ADV212的像素接口工作在视频模式和原始数据模式,本系统采用原始数据模式。由于ADV212不能对空间相机输出的图像信号直接进行处理,因此需要把 图像信号转换为ADV212像素接口可以接收的信号输入模式。在信号输入之前采用视频解码器AD9843A把输入的图像信号进行处理并输出标准的图像信 号。此时AD9843A输出图像信息流、同步时钟以及行场同步输入到FPGA中。
3.2 系统控制模块
系统中,FPGA主要完成整个系统的控制功能。输入图像信号经过视频编码器后,进入FPGA进行去噪预处理以提高编码效率,主要是直方图 均衡和低通滤波。对于AD9843A视频编码器的配置可以通过FPGA软件模拟I2C总线来实现。同时FIGA系统还要向ADV212提供复位、读写、片 选以及时钟等信号来控制其工作时序和工作模式,并要实现对ADV212的初始化和固件下载功能,FPGA控制系统时序关系图如图3所示。系统运行的所有程 序以及ADV212所需的固件都是存储在FPGA内部的Flash中。系统工作后,需要把这些固件写入ADV212相应的RAM空间中,进行一些软件的运 行。
由于遥感图像数据量庞大,需采用缓存技术改善系统的整体性能(如吞吐量、查询响应时间等),构建大规模视频服务系统时,可以减少对磁盘的访问,提高系统性 能。2块SRAM之间采用“乒乓”方式对图像数据码流进行存取以提高传输速率。这种结构是将输入数据流通过输入数据选择单元等时地将数据流分配到2个数据 缓冲区。在第1个缓冲周期,将输入的数据流缓存到数据缓冲模块1上,在第2个缓冲周期,通过输入数据选择单元的切换,将输入的数据流缓存到数据缓冲模块 2,同时,将数据缓冲模块1缓存的第1个周期的数据通过输出数据选择单元的选择,送到运算处理单元进行处理,第3个缓冲周期,再次切换数据的输入与输出缓冲模块。如此循环,周而复始。当系统中收到传输指令后,FPGA再将存放在 SRAM中的待发送码流经过FPGA读取出来。同时FPGA还要实现压缩系统与外部的接口功能,用于分发数据流,并产生所需的时序。
3.3 系统压缩模块
系统控制器件FPGA需对ADV212寄存器进行初始化,加载ADV212编码模式所需的固件并设置ADV212编码参数,ADV212 才能开始硬件编码工作产生JPGA2000格式的压缩码流。ADV212包含16个直接访问的寄存器,主机必须首先初始化这些寄存器来保证其他操作正确。 图4是ADV212编码流程图。
当系统上电复位后由FPGA把Flash中的固件数据通过访问间接寄存器加载到ADV212的固件RAM空间。FPGA设置ADV212编码参数包括:压 缩比、量化步长、小波变换级别、小波变换模式、JPEG2000渐进模式等。如果ADV212固件加载正确,嵌入式处理器会将应用程序ID写入 SWFLAG寄存器。通过检验SWFLAG寄存器是否为所预知的值(编码模式的应用程序ID为OXFF82),就可判定固件加载是否正确。ADV212寄存器初始化 后,在VALID和HOLD握手协议的配合下,通过读信号读CODE FIFO。VDATA总线为原始图像数据输入接口,HDATA总线和ADDR总线为FPGA对ADV-212的配置总线,JDATA总线为ADV212中 JDATA模式的压缩数据输出接口。当ADV212正常工作后产生的JPEG2000格式的压缩码流经HDATA总线输出。再将压缩码流传送到FPGA中 对图像数据进行行串转并,转换输出的并行数据送人SRAM中存放。
3.4 系统输出模块
ADV212编码后产生的JPEG2000格式码流首先被送入FPGA中进行处理,处理之后再将码流存放在SRAM中等待系统发送“传 送”指令。当系统发出“传送”指令后,FPGA将存放在SRAM中的待发送压缩码流传回FPGA中,在FPGA中转换成串行码流最后通过以太网接口器件发 送出去。
4 结束语
空间相机图像压缩系统对压缩比、实时性及抗误码能力等都提出很高要求,为了满足这些要求,采用了基于FPEG+ADV212结构的图像压缩系统,该系统根 据空间相机图像压缩质量和码率的要求,选择从400:1到2:l可调压缩比,经测试该系统工作稳定性强,基本满足空间相机图像压缩系统对图像细节丰富、数 据量庞大、高压缩比和抗误码率等各方面的要求。