基于FPGA的遥感图像JPEG-LS压缩算法的研究与实现

2016-09-03 05:25魏亚辉
信阳农林学院学报 2016年2期
关键词:游程环境参数时钟

魏亚辉

(驻马店职业技术学院 机械电子工程系,河南 驻马店 463000)



基于FPGA的遥感图像JPEG-LS压缩算法的研究与实现

魏亚辉

(驻马店职业技术学院 机械电子工程系,河南 驻马店 463000)

为有效利用星地传输信道需要研究大幅面卫星图像的编码技术。JPEG-LS编码算法对卫星图像进行压缩处理,可以更有效地使用有限的通信频带,达到对图像数据的无失真传输。本文研究卫星遥感图像的压缩编码在可编程逻辑中的实现技术。

星载图像;FPGA;JPEG-LS

随着信息技术的不断发展和我国遥感图像在卫星通信上的迫切需要,卫星图像的星地传输技术成为了一个需要重点研究的领域。卫星遥感图像与常规静止图像相比,具有图像相关性差,信息熵值高,冗余度小的特点。其图像数据随地面背景和气象状况的不同而发生巨大的变化,连续性差,可预测性极低,因此要获得较高压缩比难度极大,是静态图像压缩领域的难点。JPEG-LS作为一种连续色调静止图像无损/近无损压缩标准,是基于HP(惠普)实验室Weinberger等人提出的LOCO-I(Low Complexity Lossless Compression for Image:低复杂度无损图像压缩)压缩方法,1998年6月作为ITU-T建议T.87标准(国际标准ISO/ICE14495)正是发布。其核心算法主要包括基于自适应预测、上下文建模和Golomb编码算法。与JPEG、JPEG2000等流行的图像压缩算法相比较,JPEG-LS在无损压缩领域具有高保真和低复杂度等特点,便于硬件实现。

1 基本原理

JPEG-LS基于低复杂度无损图像压缩方法的思想,是一般上下文模式的“低复杂度实现”,配合上下文建模和熵编码。主要包括三个部分:预测、上下文建模、熵编码。宏观上,它是建立在对输入图像上下文建模基础上的逐像素处理,针对不同像素其上下文的不同点,JPEG-LS的编码流程采取两种模式:常规模式(regular mode)和游程模式(run mode),其原理框图如图所示。

图1 JPEG_LS算法原理框图

图2上下文示意图

用来预测当前像素x的上下文如图2。编码器考察上下文像素,决定用常规模式还是游程模式进行编码。如果预测器模板计算得到的上下文梯度表示当前像素位于平滑区域(当前像素x后面的像素y , z , …可能是相等的),则编码器选择游程模式;否则,选择常规模式。

在常规模式中,编码器利用上下文像素a,c,b的值预测x,用一个与上下文有关的项修正预测值,来补偿在预测中的系统偏差,而后从x中减去预测值得到预测误差Errval,然后根据上下文分布的统计信息进行Golomb编码。

在游程模式中,编码器先统计位于当前像素同一行内的与上下文像素a相等的最长像素游程,游程中所有的像素都等于a并且像素a已进行编码,因此这里只需要对游程长度编码就可以了。

考虑到卫星图像中很少会出现大块的平滑区域图像,选择游程模式的比例很小,体现不了游程编码的优点,且游程模式会使FPGA设计的难度以及复杂度大大增加并减慢编码速度,因此现阶段的硬件实现上只考虑采用常规模式进行无损图像压缩。对红外两个波段(4.3mm和2.7mm)的卫星图片的实验结果表明(见表1),去掉游程编码的JPEG-LS对图像的压缩比影响不大。

表1 有无游程编码的两种JPEG-LS的压缩比比较

图3JPEG_LS的编码流程图

常规模式下JPEG-LS算法的流程如图3,其中,JPEG-LS算法流程中核心为上下文建模、预测、熵编码和参数更新算法。

2 基于FPGA的设计实现及关键技术研究

JPEG_LS算法流程清晰,具备良好的流水线特性,在FPGA实现中采用模块化思想,可划分为以下几个模块:数据缓存模块缓存图像数据并得到当前像素位置和建立上下文模板;梯度计算模块完成上下文模板梯度值的计算、映射并得出上下文索引值;固定预测器模块预测当前像素的值,然后自适应修正模块对预测值进行误差修正;Golomb编码模块进行熵编码;环境参数模板完成上下文参数的初始化和更新功能。算法的实现既在整体流程上保证了流水线的顺畅,又在局部上采用并行设计,降低流水深度。另外,在每个模块的内部计算也最大可能的并行展开,集中体现了流水与并行互相嵌套的设计思想,提高系统的效率。下面将讨论关键模块的FPGA实现过程。

2.1环境参数模块

环境参数模块由三个子模块实现,初始化控制、参数更新和参数存储,如图4所示。

初始化控制完成系统参数的初始化,这些系统参数包括:

图4环境参数模块实现框图

MAXVAL:图像像素可能的最大值,MAXVAL =2p-1;

Range:预测误差值的范围,Range = MAXVAL + 1;

qbpp:用来表示映射误差比特数;

LIMIT:常规模式下可能的最大码长;

上下文环境参数A[0:364]、B[0:364]、C[0:364]、N[0:364]。

完成这些系统参数的初始化需要366个时钟周期,只有系统参数初始化完毕后才能开始处理。初始化的上下文环境参数保存在其对应的双口RAM缓存中。

在具体实现中,如图5所示,使用参数更新模块遵从更新过程实现当前上下文索引值对应的上下文环境参数的更新,并将更新后的参数保存到对应的RAM中,写地址值为当前上下文索引值的延迟,这样就完成了参数的更新。

图5上下文参数更新示意图

在流水线结构中某个像素在进行参数更新步骤时,在相同的时钟里后面的一个像素可能要根据索引值去索引上下文环境参数用于其它步骤。这两步骤都在流水线的“传送带”上,可以使用FPGA中的RAM资源生成双口RAM,“传送带”上的参数更新的值根据写地址值写入RAM,“传送带”上的索引参数值根据读地址值读出RAM,这样就能避免参数更新的反馈回路问题,又不影响参数的更新。

2.2Golomb编码模块

Golomb熵编码由误差映射、K值产生器、编码模块三部分组成,框图如图6所示。误差映射模块和k值产生器实现比较简单,重点介绍编码模块的实现过程。

图6Golomb编码原理框图图7冗余Golomb编码示意图

由于Golomb编码是变长编码,如果按照算法的编码规则直接进行编码,FPGA的实现复杂度较高,会严重恶化流水线特性,使得编码效率降低,因此我们考虑采用查表的方法来实现编码。在算法流程中得到映射误差和参数k值,Golomb编码便可唯一确定。对于8bit图像来说,参数k值的取值范围为0~7,映射误差的取值范围为0~255,最大编码码长LIMIT为32bit。按不同的参数k得到的Golomb编码表分别保存在8个ROM中,每个表按映射误差值大小从0~255依次存放,位宽为40bit,高8bit码长信息位表示实际编码长度,后32bit为冗余编码,如图7。这样实现时只需要将参数k作为ROM的片选信号,映射误差值作为读取ROM的地址信号,就可以读取存储在ROM中的冗余Golomb编码。这种实现方式简单,整个编码过程只需要一个时钟周期就能完成,不会影响流水线特性,但需要FPGA的RAM资源存储Golomb编码表。

3 仿真与结果

将算法合理划分为若干功能模块,在每个时钟的上跳沿处各操作步骤都同步地完成一次对应的处理。系统开始有效运行后经过若干时钟周期的延迟,就可以在每一个时钟周期完成一个像素的压缩编码,这样流水线结构的算法就能实现实时压缩处理。

为了更好的理解JPEG-LS无损压缩算法的FPGA实现中各操作步骤的时序关系,下面对其进行较详细的分析。

在流水线上,假定伴随图像数据流进入无损压缩系统的第一个时钟上跳沿为clk,各操作步骤相对其延迟一个时钟则表示为clk_r,两个时钟则表示为clk_2r,依次类推。

基于上述完整的时序关系分析,我们定义从当前数据输入到冗余Golomb编码输出为固定延时fix_delay,数据聚合模块的延时为随机延时ram_delay,到输出32bit编码的延时为处理延时Delay,如图8所示。

图8 流水线时序图

fix_delay = (1+9+2+3+5)cycle = 20 cycle ;

Ram_delay = 1 ~ 32 cycle ;

Delay = fix_delay + ram_delay = 21 ~ 52 cycle ;

从时序分析结果可以看出,优化后的JPEG-LS算法运算过程呈现良好的流水线特征,并充分利用FPGA计算资源丰富的优势,实现了“以空间换时间”的设计理念,使用延时电路来同步下一级运算输入等设计技巧,实现了算法的完全实时流水操作。

JPEG-LS算法的FPGA移植选用的Xilinx公司生产的Virtex系列中的XC2V2000,ISE综合工具分析表明,资源使用情况如表2所示。系统稳定的处理速度可达到60MHz。

表2 JPEG-LS算法在FPGA上实现的资源使用情况

4 结论

根据FPGA的特点,将流水与并行的思想植入算法的实现过程中,为设计硬件实现图像的无损压缩提供了解决方案,同时该硬件实现系统,具有很好的稳定性和可靠性,可以适应不同的环境,在其他图像压缩的应用场景中同样适用。

[1]M. Weinberger, G. Seroussi, “The LOCO-I lossless image compression algorithm: Principles and standardization into JPEG-LS,” [J] Trans.Image Process .2000, 1309-1324.

[2]SERIES T. “Information technolog-Lossless and near lossless compression of continuous-tone still images-Baseline” [M] ,Internation Standard,1998.

[3]A. Savakis and M. Pioriun, “Benchmarking and Hardware Implementation of JPEG-LS”, Rochester, NY, [J].2002,102-106.

[4]张天序, 邹胜, 曾永慧. 基于FPGA的图像无损压缩算法的实现[J]. 系统工程与电子技术, 2004,26(10):1340-1343.

[5]沈洪亮, 刘金国. 基于JPEG-LS的遥感图像无损压缩技术[J].光电子技术, 2009(9):206-210.

[6]胡栋. 静止图像编码的基本方法与国际标准[M].北京: 北京邮电大学出版社,2003.

[7]夏宇闻. Verilog数字系统设计教程[M]. (2版). 北京: 北京航空航天大学出版社,2004.

(编辑:严佩峰)

The Research and Implementation of JPEG-LS Coder In Remote Sensing Images Based on FPGA

WEI Ya-hui

(Dept. of Mechanical and Electronic Eegineering, Zhumadian Vocational and Technical College, Zhumadian 463000,China)

As to efficiently use the transmission channels between satellite and ground, we need to study satellite images of large-format codec skills. Compressing the remote sensing images with JPEG-LS coding algorithm can use limited communication band more effectively, to achieve the image data without distortion transmission. This paper is to study the technology of the compression of the satellite remote sensing image in the programmable logic of encoding.

remote sensing image; FPGA; JPEG-LS

2016-02-10

魏亚辉(1980-),男,河南驻马店人,讲师,研究方向:图像处理与压缩技术.

TN386 5

A

2095-8978(2016)02-0107-04

猜你喜欢
游程环境参数时钟
别样的“时钟”
中国羽毛球组合郑思维/黄雅琼连续得失分规律研究
古代的时钟
基于云平台的智能家居环境参数协同监控系统设计
列车动力学模型时变环境参数自适应辨识
改进型相对游程长度编码方法
一种食用菌大棚环境参数测控系统设计
有趣的时钟
RPT方法在多元游程检验中的应用
时钟会开“花”