无损压缩算法

2024-10-05

无损压缩算法(精选7篇)

无损压缩算法 篇1

0引言

随着计算机技术、通讯技术和生物医学工程技术等相关技术的高速发展, 通过对医学影像进行数字化处理, 进行计算机智能化处理, 将使依据医学影像进行的诊断放弃传统的肉眼观察和主观判断, 并可依据同一影像进行多种疾病的诊断和多科疾病的诊断。在应用计算机技术后, 医学影像将从形态图像向功能图像转变, 对医学影像数据库和特征库的内容进行提取分析, 将可以帮助医生进行科学的诊断, 提高诊断的科学性、客观性和准确性。

应用DICOM3标准和网络通讯协议标准TCP/IP可以方便地实现对直接具有数字化接口的影像设备的成像数据的提取;小波分析 (Wavelet Analysis) 在时域和频域同时具有良好的局部化性质, 而且由于对图像信号的高频成分采用转件精细的时域或频域取样补偿, 从而可以聚焦到对象的任何细节, 这一特点在医学影像分析中将得到较好的应用。

1总体方案设计

ACR和NEMA联合组成委员会在1993年发布的医学数字成像与通信 (Digital Imaging and Communication in Medicine, DICOM) 标准3.0, 是医学影像设备间联网的专用数字接口, 是进行网络通信时应满足的标准协议, 是一组具有DICOM兼容性的设备所共同遵循的协议。在DICOM标准中, 医学图像包含了许多如图像获取设备对图像的分析、医生的报告及患者情况等信息, 这种信息与图像的结合方便了图像的检索、图像的分析和诊断。医学影像处理的总体结构如图1所示。

1.1符合DICOM标准中间件实现方案

DICOM3消息交换的网络支持对应于ISO/OSI定义的网络传输中的会话层、表示层及联接控制服务单元, 这部分底层 (传输控制层、网络层) 的信息交换定义为通用的网络传输协议。在设计实现中将采用智能Agent中间件技术。当设备采集影像数据后, Agent中间件自动将数据传送到医学影像数据库中, 减少不必要操作的处理, 并能保证数据传输的一致性和同步性。

1.2压缩存储中间件实现方案

影像图片大约需要8~15 MHz的存储空间, 为了缩小存储成本和便于网络传输, 必须对图像进行压缩。现阶段常用的压缩存储方案有4种:① 基于JPEG标准下的无损压缩算法JPEG-LS, 这是DICOM标准支持的一种成熟的无损压缩算法;② 基于整数小波变换的单帧图像无损压缩算法, 它利用了医学图像象素之间存在高度的相关性和整数小波的特性;③ 基于三维整数小波的序列图像无损压缩算法, 对整个序列进行无损压缩, 可以有效地提高图像的压缩率;④ 利用JPEG2000标准支持ROI (Region Of Interest 感兴趣区域) 编码的特性, 对图像的ROI进行无损压缩编码, 对次要信息区域 (如背景) 采用高压缩比的有损压缩方法。

本文在综合分析以上4种方案的基础上, 提出了基于适形离散小波变换 (SA-DWT) [1]与整数小波变换相结合的影像无损压缩算法。并应用该方案构件了智能Agent中间件。

1.3检索诊断中间件实现方案

在应用存储的数字化医学影像和影像特征进行诊断时, 需要完成大量的检索和比对处理, 为了减少网络流量, 提高检索速度, 应用了基于小波模极大值及多尺度不变矩相结合的检索算法, 并建立了算法实现的中间件, 运行效果明显, 能够较好地完成影像的检索和诊断作用。

2无损压缩算法研究

无损图像压缩是指解压缩后的图像与原来图像完全相同, 没有任何信息的损失。医学图像是医学诊断和疾病治疗的重要根据, 在临床上具有重要的应用价值。确保医学影像压缩后的高保真度是医学图像压缩首要考虑的因素。现在医学图像常采用无损压缩, 因为它能够精确地还原图像。但是无损图像压缩的缺点是压缩比低, 仅为2~4;而有损图像压缩的压缩比可高达50, 甚至更高。所以将这2种压缩法方法在保证使用要求的基础上结合起来, 在获取高的压缩质量的前提下提高压缩比。本文提出的基于SA-DWT与整数小波变换相结合的压缩算法, 就是应用SA-DWT算法确定感兴趣区域, 对该区域进行无损压缩, 其他区域进行有损压缩, 大大提高了压缩效率, 并不损失影像的医学作用。

2.1SA-DWT算法

传统的二维小波变换都是针对矩形区域进行的, 得到的变换系数个数一般会大于原始区域像素点个数, 而且由于填充, 变换后区域的边界会出现钝化, 所以限制了任意形状区域的编码效率。

现代的患者同一部位的医学影像可以应用到相关的不同的多个诊断过程中, 因此, 整幅影像中可能存在多个特征区域, 而每个区域的形状都不是规则的图形, 不适合采用传统的二维小波变换。本文采用了Li等提出的适形离散小波变换 (SA-DWT) , 该变换可以用于对任意形状的图像对象进行变换, 因此适合与对医学影像中的感兴趣区域进行编码。测试结果表明:

① 变换域的变换系数同像素域的相同;

② 只要采用的L阶小波滤波器具有完全重构特征, 并且下采样的位置已知, 就存在一个唯一的反变换, 可用于完全重构原始的影像;

③ 长度自适应的小波变换保留了分段采样点的位置, 不会产生超出边界的系数。

由于对奇数长度图像信号的剩余采样点进行了缩放, 因此这种任意长度的小波变换得到的低通系数具有相同的尺度, 这就避免了边界处小波系数的突变。

2.2提升算法原理

由Sweldens等提出来的提升方案 (Lift Scheme) 是构造紧支集双正交小波的一种新方法, 被称为“第二代小波”[2], 也叫做整数小波变换。该方法可以将整数映射到整数, 可以实现由SA-DWT算法分割的不同区域内影像的无损压缩。

对于原始信号sj, 经小波分解成为低频信号sj-1和高频细节信号dj-1两部分。有提升方法构成的小波变换包括:分裂 (Split) 、预测 (Predict) 和更新 (Update) 3个步骤。

2.2.1 分裂

此过程是将原始信号sj分裂成2个互不相交的子集sj-1和dj-1, 通常是将这个信号序列分解成偶数序列和奇数序列, 即

split (sj) = (evenj-1, oddj-1) = (sj-1, dj-1) 。

2.2.2 预测

针对数据间的相关性, 可用sj-1去预测dj-1, 故可以采用一个与数据集结构无关的预测算子P, 使得dj-1=p (sj-1) , 这样就可以用子数据集sj-1代替原始数据集sj。若再用子集dj-1与预测值p (sj-1) 之间的差值去代替dj-1, 则此差值反映了二者的逼近程度。如果预测是合理的, 则差值所包含的信息就比原始子集dj-1包含的信息要少得多。预测表达式为:

d^j-1=oddj-1-p (evenj-1) =dj-1-p (sj-1)

将数据集合分成偶数集合和奇数集合后, 最简单的一个预测算子就是用相邻2个偶数的均值来作为它们之间的奇数的预测值, 即

p (sj-1) =s (j, 2k+sj, 2k+2) /2。

由此可得预测表达式为:

d^j-1, k=dj-1, k-p (sj-1) =sj, 2k+1- (sj, 2k+sj, 2k+2/2)

2.2.3 更新

经过上述2个步骤后, 所产生的系数系数子集sj-1的某些整体性质 (如均值) 并不和原始数据中的性质一致, 因此需要采用更新过程。其目的是通过算子U产生一个更好的子数据集合s^j-1, 使之保持与原始数据集一致的特征。s^j-1定义如下:

s^j-1=evenj-1+U (d^j-1) =sj-1+U (d^j-1)

具体的更新计算的过程为:

s^j-1, k=sj, 2k+ (d^j-1+d^j-1, k-1)

对于数据子集s^j-1重复进行上述相同的3个步骤, 即将s^j-1分解成s^j-2dj-2, 经过n次分解后, 原始数据sj的小波表示为:

{s^j-n, d^j-n, d^j-n+1, , d^j-2d^j-1}

式中, s^j-n代表了信号的低频部分;{d^j-n, d^j-n+1, , d^j-2, d^j-1}代表了信号的高频部分。

重构数据时的提升为:

sj-1=s^j-1-U (d^j-1) dj-1, l=dj-1, l (1) +a-1 (sj-1, l-2-sj-1, l-1) sj=Μerge (sj-1, dj-1)

2.3整数小波变换

Sweldens已经证明在提升的基础上可以进行整数集到整数集的小波变换。一个整数集合通过小波变换得到的仍然是整数集合。在进行影像压缩编码处理过程中, 不需要对变换后的系数进行量化, 因此可以实现影像的无损压缩。

在进行影像的无损压缩时, 主要采用了S变换和S+P变换。针对影像的特点并结合Haar变换的整型表示方法, 提出如下形式:

S变换之后, 在低通系数sj-1, l的基础上进行线性预测, 以产生新的高通系数dj-1, l, 这就是S+P变换。

2.4实验与分析

在验证算法中, 主要选取了3组MR图像 (256*256*16 bits, 每组30幅) 和2组CT图像 (512*512*16 bits, 每组30幅) , 分别采用了本文提出的算法进行压缩处理, 同时用预测整数小波变换 (简称:PIWT) 、整数小波变换 (IWT) 和差分脉冲编码调制 (DPCM) 等算法对这5组序列影像进行压缩编码, 得到平均压缩率如表1所示。对其中的数据进行分析可知:本算法的压缩率分别比PIWT算法、IWT算法和DPCM算法平均提高81.15%、100.73%和67.61%。表1中的二维算法的压缩率是序列图像中个图像压缩率的平均值。

应用SA-DWT变换可以方便地找到影像中的多个感兴趣区域, 应用整型小波变换对影像象素本身灰度值进行变换, 且保持了变换前后的整数的一致性, 可以实现对感兴趣区域的无损压缩。

在进行若干次提升变换后, 再利用哈夫曼编码对变换后的系数进行编码, 将较好地去除像素间的相关性, 极大地减低了原始图像的信息量。

3结论语

DICOM标准可以方便地将医学影像处理的数据传到计算机中进行处理, HL7标准可以提高医院不同应用软件间的通信能力。根据多媒体技术和关系数据库理论, 建立医学影像数据库。在构建影像数据库和影响特征库时, 为了减少数据存储量, 提高影像传输速率, 而不影响影像的诊断效果的基础上, 本文提出了基于适形离散小波变换 (SA-DWT) 与整数小波变换相结合的影像无损压缩算法, 并构建了该算法的中间件, 在实际的验证测试中, 该算法可以较好地完成影像的压缩存储, 效果良好。

下一步的研究工作将针对目前影像压缩存储算法和影像检索的算法进行深入研究和比较, 进一步发展各种医学影像内容分析的理论和技术, 深入研究能够充分表示医学图像内容的各种特征, 进一步发展系统架构、性能评价、相似性度量方法、人机交互方式、高维度检索和智能诊断等技术。

参考文献

[1]CINKLER K.Very Low Bit-rate Wavelet Video Coding[J].IEEE Journal on Selected Areas in Communication, 1998, 16 (1) :4-11.

[2]LI Shi-peng, LI Wei-ping.Shape-adaptive Discrete Wavelet Transformfor Arbitrarily Shaped Visual Object Coding[J].IEEE Transactions on Circuits and Systems for Video Technology, 2000, 10 (5) :725-743.

无损压缩算法 篇2

1 无损压缩算法

JPEG-LS无损压缩算法的基本思想为[3,4,5]:由当前像素的几个已经出现过的近邻,用其作为当前像素的上下文,用上下文来预测误差,从几个这样的概率分布中选择一个,并根据该分布用一个特殊的Golomb码字来编码预测误差。JPEG-LS图像压缩标准规定的无损和近无损编码处理的主要组成部分如图1所示。

JPEG-LS图像压缩标准采用差分预测编码技术,同时建立了匹配上下文模型,高效地实现了One-pass编码器[6,7],具体算法实现过程如图2所示。

该编码器基于光栅扫描顺序,每次对一个像素进行编码。具体的编码方式分为两种,即正常模式和游长模式,且这两种模式之间是自适应切换的[8,9,10]。

在正常编码模式下,首先采用简单的边缘检测器初步确定一个预测值[11,12];然后再与上下文自适应的预测校正值相结合得到校正预测值;最后使用当前待编码原始像素值减去校正预测值就能得到预测残差,该预测残差的分布满足双边几何分布,利用上下文模型可求得预测残差的编码参数k,熵编码器采用参数k完成Golomb快速一元编码[13,14,15]。当编码器进入游长编码模式时,完成游长计数后,熵编码器采用效率更高的游长编码,从而对平滑图像可进行大倍率的压缩[16]。

2 JPEG-LS无损压缩算法的FPGA实现

采用标准JPEG-LS算法进行无损压缩硬件实现时存在一些不足:

(1)在计算上下文Q时,需要多步串行计算才能得到Q值,关键路径较长,难以满足实时处理的要求;

(2)在计算误差以及误差量化时,采用标准算法时用到浮点乘法,计算精度不能保证,计算复杂度较高,难以满足快速处理的要求;

(3)参数变量更新时,标准算法涉及较多的加减运算和逻辑判断,且诸多操作是串行运算,计算复杂度较高,影响了整个系统运行速度的提升。

JPEG-LS算法包括较多顺序运算步骤,如果直接按照算法实现为硬件逻辑,将会产生较大的延迟时间,严重阻碍时钟频率的提高。

针对以上问题,本文提出的JPEG-LS实现结构以提高最大吞吐量为主要目标,通过多级流水线降低每一级运算的延迟,从而满足更严格的时序约束。除流水线机制外,通过在较细的粒度上实现运算的并行,提高了每一级运算的速度。

2.1 并行运算降低硬件资源消耗

设计采用FPGA片内的Block Ram或Rom资源以存储计算所得的变量值,在JPEG-LS标准中,计算量化梯度合并时,若矢量(Q1,Q2,Q3)的第一个非零元素是一个负数,则必须将该矢量的符合反转得到(-Q1,-Q2,-Q3),此时变量SIGN被设置为-1,反之为+1;在这种可能的合并之后,矢量(Q1,Q2,Q3)以一对一的方式被映射到一个整数Q,其表示采样X的上下文。然而在JPEG-LS标准中并没有规定此映射过程的具体函数,为了能简单实现查找A[Q]、B[Q]、C[Q]、N[Q]表值,将Qi做了优化修改,根据输入的Ra、Rb、Rc、Rd分别计算Rd-Rb、Rb-Rc和Rc-Ra,根据JPEG-LS标准,以这3个梯度值为索引,查表得到3个梯度的量化梯度值id1、id2、id3,在FPGA中使用量化公式

映射后可通过Q值判断SIGN值,若Q>0,则SIGN为1,若Q<0,则SIGN为-1;变量Q则成为索引A[Q]、B[Q]、C[Q]、N[Q]的地址值,此次优化降低了算法复杂度,提高了效率。在计算得到预测值,根据预测值通过量化后得到误差值以及量化误差值的过程如下

此过程实现较为复杂,且周期较长,使得整个过程实时性降低。针对此处计算,设计查询表的方式替代原浮点乘法运算,由于误差Errval的范围在-255~+256之间,所以将Errval之间的值通过上述方法提前算好建立一张Table表存储在FPGA内部资源ROM中,每次只需以误差值为地址去ROM中查找对应的量化误差值即可。通过以上方法,将复杂的算法以及耗时的计算变为了一次查表就能完成,大幅降低了计算量,提高了实时性。

对某一像素编码的最后一步是更新变量A[Q]、B[Q]、C[Q]、N[Q],但该变量更新处理必须在编码过程的最后。为提高编码实时性,使变量的更新周期减少,设计了一种新的变量更新方式,如图3所示。

根据以上变量更新的方法,得到一组新的A[Q]、B[Q]、C[Q]、N[Q]值,并且将其分别存储在FPGA内存双口RAM中,在下一次计算来临时可根据当前计算得到的Q值作为地址,从4个双口RAM中读取上一次更新的A[Q]、B[Q]、C[Q]、N[Q]值,再通过变量更新模块获得新的更新值存入RAM中。

2.2 算法流水线结构

为提高硬件平台操作速率以及考虑到系统的实时性,选用流水线结构是实现此算法的必要途径,如图4所示。为了完全实现此流水线结构,使用了10个时钟周期的流水线阶段。为避免结构图过于复杂,此处仅是正常模式下的流水线结构图,并未给出游程模式结构图。运用此流水线模式可使得硬件电路操作频率达到120 MHz。

如图4所示,10个流水线阶段分别完成以下步骤:

阶段1完成预测值计算以及局部梯度值计算;

阶段2局部梯度值量化;

阶段3查询变量Q地址;

阶段4读取环境变量(上下文)值;

阶段5更新环境变量值;

阶段6~8 3个周期除法器;

阶段9以及预测误差值计算;

阶段10误差映射及产生bit流输出。

在FPGA中利用流水线的方式来实现算法,各模块的计算复杂度基本相同,且几个模块可同时进行计算,减少了每一级的运算时间,提高了系统实时性。

3 实验及结果

为完成整个编码系统,包括预测器和熵编码器两部分功能,选用Altera公司Stratix系列FPGA,在Quartus软件环境下使用Verilog HDL语言进行编程实现。将传统硬件实现方法和前流水线的JPEG-LS硬件实现的内存消耗、消耗逻辑门单元和硬件操作频率做对比,对比结果如表1所示。

由表1可知,采用了全流水线结构来实现JPEG-LS算法,大幅降低了FPGA内存空间占用,内存空间占用被降低了26%。该流水线模式也使得硬件电路操作频率由105 MHz提高到120 MHz,满足严格的时序约束,且提高了压缩算法的实时性。

4 结束语

为满足高速图像传感器系统的吞吐量需求,本文在FPGA中采用全流水线结构,降低了每一级运算的延迟,实现了JPEG-LS无损/近无损图像压缩算法。该算法已在FPGA平台通过验证,实现了大吞吐量的无损图像压缩,可应用于高速图像传输系统中。

摘要:针对采用传统硬件方法实现JPEG-LS无损图像压缩算法时延时较多、实时性较差的问题,文中提出了一种基于FPGA的全流水线结构来实现JPEG-LS算法。该结构以提高最大吞吐量为主要目标,通过多级流水线降低每一级运算的延迟,大幅提高了压缩算法的实时性,硬件电路操作频率可达120 MHz。

无损压缩算法 篇3

为了保留珍贵的遥感图像信息, 系统一般采用无损压缩[1—3]方法。同时由于星载遥感图像压缩条件的特殊性, 对核心压缩算法的选择更倾向于成熟性、可靠性。1997年, CCSDS推出了无损压缩标准CCSDS 121.0-B-1[4], 该标准采用一维预测器和Rice熵编码器, 压缩性能不甚理想。随后又在2005年推出了星载图像压缩标准CCSDS 122.0-B-1[5], 该标准利用离散小波变换和位平面编码方法对图像进行压缩, 兼顾了压缩性能和压缩速度。此外, ISO和IEC联合开发了一种无损和近无损压缩标准JPEG-LS[6], 此标准采用二维预测、上下文预测和限长Golomb熵编码器, 压缩效果好, 而且可以高效运行在PC机上;但该标准是针对连续色调静止图像的, 不适用于三维立体的多光谱图像。2012年5月, CCSDS提出了专门针对多光谱/高光谱图像的无损压缩标准CCSDS 123.0-B-1[7], 该标准采用三维三阶线性自适应预测器和Golomb熵编码器;并兼容了Rice熵编码。由于该标准刚刚出现, CCSDS尚未发布对应的技术指导书, 相关资料和研究极少。因此本文对该标准所涉及算法进行了理论分析, 并提出了利用V型扫描对预测方式进行改进。

1 算法原理分析

压缩系统包括预测编码和熵编码两部分, 如图1所示。

1.1 预测编码

针对多光谱图像特有的谱间冗余, 本文算法中采用的是三维三阶自适应预测方法。根据待预测像素所在波段以及该波段前面若干个波段附近邻域内的像素值对当前像素进行预测, 从而去除空间冗余和谱间冗余。然后将预测误差映射为一个与输入图像的像素数据位数相同的无符号整数, 即映射预测残差。具体方法参见文献[7]。

预测器的核心是基于一种改进最小均方 (LMS) 算法的自适应滤波器[8], 结构如图2所示。

输入信号是差向量Uz (t) , 输出信号是局部差^dz (t) , 误差是预测残差Δz (t) , 滤波系数是权向量。权向量的更新表达式如下:

式中权重更新因子ρ (t) 决定了权值每次调整的步进, 步长大则算法的收敛速度快, 步长小则算法的收敛速度慢[9]。同时, 步长参数也决定了算法的稳态误差, 步长大则算法的稳态误差大, 步长小则算法的稳态误差小, 这就使收敛速度和稳态误差发生了矛盾。对预测残差Δz (t) 进行符号算法可以有效地解决这种矛盾。

另外一个可调LMS参数, 滤波器阶数对应预测器所用参考波段数P。在LMS理论中, 滤波器阶数过小, 会带来较大误差, 可能导致LMS算法发散, 选择过大又会带来较大的计算量。另外, 滤波器阶数越高, 收敛条件越严格。综合考虑, 推荐P取值为3。

最后一个可调LMS参数是权值初始值。LMS算法就是为了让权值向量以最快的速度趋近于最优解, 即误差性能曲面的最低点。在其它参数相同的情况下, 整个收敛过程实际是由权值向量的初始值决定的。初始值离最优解越近, 权向量的收敛时间越短。CCSDS 123.0-B-1推荐了两种权值初始化方式, 即默认方式和自定义方式。若对观测场景有先验知识, 可用自定义方式设置合理的权值初始值。这种情况在遥感卫星上很难出现, 故本文采用默认方式初始化权值。

1.2 熵编码

熵编码[10]部分主要是为了消除图像的统计冗余, 基本原理是出现概率高的符号用短码字表示, 概率低的用长码字表示。常见的熵编码方式有算术编码、霍夫曼编码、Rice编码和Golomb编码。本文算法所用的是Golomb编码, 其基本思想是用要编码的数据除以一个已知的整数, 对商和余数分别进行保存。特别地, 当该整数为2的整数次幂时, 商和余数可以简单地通过移位方式获得。CCSDS 123.0-B-1所用的熵编码就是基于此原理, 每个映射预测残差用一个不超过Umax+D位的可变长度的二进制码字编码, 其中Umax为用户自定义整数, 范围为8≤Umax≤32, D是图像像素的数据位数, 取值范围为2≤D≤16。具体方法参见文献[8]。

2 基于V型扫描的预测方式

为了更有效地去除空间冗余, 本文结合多光谱成像的特点对预测方式进行改进。由于焦距较长, 遥感卫星的光学相机通常采用电荷耦合元件 (CCD) +分色棱镜获得各谱段成像。线阵CCD能比面阵CCD获得较大的成像幅宽, 所以星载多光谱成像仪常采用线阵CCD结合飞行平台的平行运动来完成二维空间的成像, 成像原理如图3所示[11]。

可见, 在同一平面内, 每波段图像的每一行与传感器飞行方向是近似垂直的, 行方向上的每个像素对应不同的CCD像元 (各像元工艺和电子响应不一致可能会导致条带效应) , 每一列像素由对应通道上的单个CCD像元响应而成, 因此列方向上的相关性应当比行方向上的更平稳。

为了反映多光谱图像的谱内行列相关性, 本文采用相关系数对其进行描述。相关系数定义为:

式中, X、Y为待计算相关系数的两个向量, 分别为X、Y的均值。依次计算图像每行像素与相邻行像素的相关性, 即可得到图像的相邻行相关性曲线。同理可得列相关性曲线。

本文对CCSDS的标准测试图像coastal (即下文中的测试图IMG3) 的3个波段进行了行列相关系数测试, 结果如图4所示, 其中图4 (a) 是三个波段相邻列的相关性曲线, 图4 (b) 是三个波段相邻行的相关性曲线。可见相邻列的相关系数较均匀的分布在0.6~1范围内, 相邻行的相关系数则分散在0.3~1范围内。

结合以上分析可推测, 压缩器输入采用如图5 (a) 所示的V型扫描比采用如图5 (b) 所示的Z型扫描, 应当有更好的空间预测效果。

3 实验结果和分析

3.1 压缩性能比较

本文在VC6.0平台下实现了基于V型扫描方式的CCSDS 123.0-B-1标准无损压缩算法。并对V型扫描方式的CCSDS123.0-B-1、Z型扫描方式的CCSDS123.0-B-1、CCSDS 121.0-B-1、CCSDS 122.0-B-1及JPEG-LS标准算法的压缩率分别进行了测试。实验对象为长和宽相等的多光谱图像IMG1到IMG5, 如图6所示, 标明了图像的长×波段数×位深。由于获取的CCSDS 122.0-B-1和JPEG-LS算法软件只能对单波段图像进行压缩, 故只能测试每幅图像的平均压缩率, 测试结果见表1。

从表1可以看出, V型扫描方式的CCSDS123.0-B-1平均压缩率比Z型扫描方式的CCSDS123.0-B-1的高6.7%左右, 比JPEG-LS的高12.9%左右, 比122.0-B-1高21.8%左右, 比122.0-B-1高68.9%左右。特别是对变化平坦的图像, 如海岸线、平原等, 压缩率提高效果明显。

3.2 算法复杂度分析

由LMS理论可知, L阶LMS算法在一次迭代中只需要2L+1次乘法和2L次加法, 计算复杂度为O (L) , 与滤波器的阶数L呈线性增长。同理可知, 用P波段进行预测时, 每次只需经过2P+1次乘法和2P次加法即可得到一个预测值, 计算复杂度为O (P) 。此外, LMS算法还有性能稳定, 结构简单等优点。

4 结语

本文对CCSDS 123.0-B-1标准进行了深入研究, 重点分析了权值更新因子、参考波段数和权值初始值对压缩系统性能的影响;并根据多光谱遥感CCD推扫成像的特点, 提出了基于V型扫描的星载多光谱图像压缩算法。实验结果表明, 该算法的压缩率高于传统无损压缩标准算法;且算法复杂度低, 适合用于资源受限的星上压缩系统。本文下一步工作是分析多光谱图像特点, 获取先验知识, 用于自定义权向量初始值。

摘要:为了实现星载多光谱图像的无损压缩, 深入研究了空间数据系统咨询委员会 (CCSDS) 建议的123.0-B-1标准;并结合CCD多光谱遥感成像特点, 提出了利用V型扫描对预测方式进行改进;最后在VC6.0平台下实现了该算法。实验结果表明, 该算法的平均压缩率比Z型扫描方式的CCSDS 123.0-B-1、CCSDS 121.0-B-1、CCSDS 122.0-B-1、JPEG-LS标准算法的平均压缩率分别高6.7%、68.9%、21.8%和12.9%。该算法复杂度低, 适合运用于星上系统。

关键词:多光谱,无损压缩,CCSDS 123.0-B-1,CCD遥感成像,V型扫描

参考文献

[1] Grossberg M, Gottipati S, Gladkova I, et al.A comparative study of lossless compression algorithms on multispectral imager data.Proc of SPIE, 2009;7334:733408

[2] 万建伟, 粘永健, 苏令华, 等.高光谱图像压缩技术研究进展.信号处理, 2010;26 (009) :1397—1407Wan Jianwei, Nian Yongjian, Su Linghua, et al.Rearch progress on hyperspectral imagery compression technique.Signal Processing, 2010;26 (009) :1397—1407

[3] Magli E.Multiband lossless compression of hyperspectral images.Geoscience and Remote Sensing, IEEE Transactions on, 2009;47 (4) :1168—1178

[4] CCSDS 121.0-B-1, Lossless data compression, 1997

[5] CCSDS 122.0-B-1, Image date compression, 2005

[6] BS ISO/IEC 14495-1, Information technology—Lossless and nearlossless compression of continuous-tone still images, 2001

[7] CCSDS 123.0-B-1, Lossless multispectral&hyperspectral image compression, 2012

[8] Yadav J, Kumar M, Saxena R, et al.Performance analyis of LMS adaptive FIR filter and RLS adaptive filter for noise cancellation.Signal&Image Processing, 2013;4 (3) :45—56

[9] AugéE, Sánchez J E, Kiely A, et al.Performance impact of parameter tuning on the CCSDS-123 lossless multi-and hyperspectral image compression standard.Journal of Applied Remote Sensing, 2013;7 (1) :074594—074594

[10] Wu X, Zhai G, Yang X, et al.Adaptive sequential prediction of multidimensional signals with applications to lossless image coding.IEEE Transactions on Image Processing, 2011;20 (1) :36—42

无损压缩算法 篇4

随着卫星遥感图像技术的发展, 人们对遥感图像的质量要求越来越高, 由于航天图像分辨率的要求, 数据的存储量和传输量也在急剧增加, 而卫星通道带宽有限, 要有效地传输图像信息, 必须对图像进行高效压缩。

JPEG-LS是针对连续图像无损或近无损压缩的ISO/ITU标准, 它是近年来JPEG对于图像无损压缩拟订的标准。目前, 在天文观测、航空航天、以及医学摄像等领域都得到了广泛的应用, 它能将无损图像无失真地还原出来。该算法在无损压缩领域具有高保真度和低复杂度等特点[1], 便于硬件实现的, 同目前流行的JPEG、JPEG2000、CCSDS等无损图像压缩算法相比较, 在硬件实现方面具有明显的优势。随着产业的发展、科技的进步以及图像数据量的“爆炸”似增长, 研究更高效的图像压缩技术已迫在眉睫, 各种先进的压缩技术优化的编码算法层出不穷。本文中对JPEG-LS静态图像压缩算法采用C语言实现, 并对该算法进行了优化, 使所编写的程序更适合于硬件描述语言的实现。

1 JPEG-LS图像数据压缩算法

JPEG-LS无损图像压缩算法采用自适应预测、上下文建模和Golomb编码算法, 对于图像中的平坦区域采用游程模式编码[2,3], 否则采用常规模式编码。在无损压缩模式下, JPEG-LS编码模式与JPEG无失真模式相比较, 区别主要在于JPEG-LS利用了Golomb行程编码, 并且引入了误差可以控制的近无损 (near-lossless) 图像压缩。

JPEG-LS无损图像压缩的主要编码原则[4]如图1所示, 原始图像数据以预定的扫描模式依次输入编码器, 无损图像压缩被看做是一个归纳推理的过程, 在编码当前像素时需先扫描过去的数据, 给当前像素值分配一个条件概率P, 就可以推断出当前的像素值, 这种推断的模式称为建模, 当前取样像素值的平均码长分布为-log2P。对于近无损图像压缩则采用重建值代替原始值作为条件数据。在编码过程中, 越短的码长分配越大的概率值。

2 JPEG-LS图像数据压缩算法的编码过程

2.1 上下文建模

所谓上下文建模就是指利用当前待编码数据的邻居与当前像素之间的相关性对其建模。假设当前像素值为x, 与其相邻的四个像素值分别为a、b、c、d, 利用这四个像素样本来确定x的编码方式, 即是采用常规编码还是游程长度编码。

2.2 样值编码模式的选择

通过对图像数据样本进行从左到右, 从上到下的编码后, 样本x也被编码。x的重建值由a、b、c、d样本先前的重建值Ra、Rb、Rc、Rd来决定, 因为是无损压缩, 重建值与原始值相同。上下文确定的步骤为:梯度计算:上下文确定程序的第一步应该是计算梯度值D1、D2、D3

计算公式如:

模式选择:如果当地梯度值D1、D2、D3全为0时 (对于无损压缩) 或者全小于等于NEAR (近无损压缩的压缩比控制因子) 时, 编码选择游长模式编码, 否则选择常规模式编码。

2.3 常规模式编码

常规模式编码分三个步骤进行:第一步, 预测;第二步, 预测误差编码;第三步, 变量更新。对这三个步骤又可以详细划分, 如图2所示:

预测:在进行预测之前先进行梯度量化和梯度合并预测分为四个部骤进行, 首先是边界检测, 预测值Px由样本重建值Ra、Rb、Rc来确定, 具体计算公式如下:

得出预测值之后, 就要进行预测值的修正, 修正过程取决于SIGN (决定上下文符号的临时变量) 和C[Q]的值, C[Q]的值需要在变量更新这一步骤中计算出来:

新的Px值应该约束在[0…MAXVAL (一幅图像中像素的最大可能值) ]这一范围内, 如果Px>MAXVAL, 则令Px=MAXVAL, 如果Px<0, 则令Px=0。MAXVAL取决于图像的精度, 如果图像的精度P=8, 则MAXVAL=28-1。

预测误差编码:得到预测值Px之后, 要计算预测误差Errval, x像素的的实际值用Ix表示, 则Errval=Ix-Px, 如果SIGN=-1, 则令Errval=-Errval。在无损压缩中 (NEAR=0) , 重建值Rx=Ix, 在近无损压缩中 (NEAR>0) , 要对Errval进行量化, 量化后再重建Rx的值。具体计算公式如下:

计算Rx后, 再对它进行边界修正, 即若Rx<0, 则令Rx=0, 若Rx>MAXVAL, 则令Rx=MAXVAL。修正Rx后, Errval的值也要被约束在相应的范围内, 即:

对Errval进行编码, 首先要求出Golomb编码变量k (k值定义为误差映射值MErrval的最不重要位) , 由变量A[0…364]和N[0…364]来计算k值, 通过k值来决定误差的映射。

误差映射之后, 对MErrval进行编码, 具体编码过程如下, MErrval由重要位和不重要位组成 (如图3) , 如果m<LIMIT-qbpp-1, LIMIT为常规模式编码中glimit的值, qbpp为一个映射误差值需要的比特数, 那么由m所形成的数字的编码应该由m个二进制0和1位二进制1组成 (如图4) ;k位不重要位的编码, 按照原来的比特位依次输出。

对于高位重要位, 如果m≥LIMIT-qbpp-1, 则输出LIMIT-qbpp-1个0和1个1, 对于k位不重要位的编码, 则输出qbpp位二进制码, 具体数字输出为MErrval-1的qbpp位最不重要位, 如图5:

下面是LIMIT和qbpp的计算公式:

bpp:MAXVAL的比特数;RANGE:预测误差的范围。

变量更新:常规编码模式的最后一步就是对变量A[Q]、B[Q]、C[Q]和N[Q]的值进行更新, 更新公式如下:

如果N[Q]=RESET (RESET为A[Q]、B[Q]和N[Q]取一半时的门限值) , A[Q]、B[Q]的更新值都取原值的一半, N[Q]的更新值取一半后再加1。

C[Q]的更新取决于B[Q]和N[Q]的更新值, 如果B[Q]≤-N[Q], 则B[Q]=B[Q]+N[Q], 若此时还满足B[Q]≤-N[Q], 那么B[Q]=1-N[Q];如果B[Q]>0, 则B[Q]=B[Q]-N[Q], 若此时还满足B[Q]>0, 那么B[Q]=0。C[Q]的计算公式如下:

常数MIN_C为C[Q]的最小的允许值, MAX_C为C[Q]的最大允许值, 对于8位精度的图像来说, MIN_C为-128, MAX_C为127。

2.4 游程长度编码

游程长度编码[5]是当信源出现连续相同的符号, 或者连续出现的符号在允许失真的范围内, 常使用的一种有效的编码方法。如果指定a样本作为游程模式的开始, 样本值为Ra, 扫描的下一个值为Ix, 若|Ix-Ra|≤NEAR, 则游程继续, 否则游程中断。游程编码步骤如图6:

游程扫描:游程模式的第一步就是扫描图像数据, 一般是行扫描, 得到x的实际值Ix, 若|Ix-Ra|≤NEAR, 则继续扫描, 游程长度计数变量RUNcnt加1, 令Rx=RUNval (扫描的图像数据值) , 如果行结束, 则中断扫描。

游程长度编码:得到游程长度RUNcnt, 就要对它进行编码。当RUNcnt≥2J[RUNIndex], 输出码字‘1’, 且RUNcnt=RUNcnt-2J[RUNIndex], J[0…31]为显示游程长度代码的32个变量;如果RUNIndex<31, RUNIndex减1, 然后进行下一轮的循环, RUNIndex为游程编码时的指针变量, 指向J[0…31]的数据。

如果游程在一行的结尾被中止, 并且RUNcnt>0, 则输出码字‘1’, 然后取样下一个值再进行梯度判断;否则就输出码字‘0’, 将RUNcnt写成二进制的形式, 接着输出J[RUNIndex]个RUNcnt的量化值, RUNIndex减1, 进行下一轮循环。

游程中断编码:如果游程不是在图像行尾结束, 对于这个新的中断值要进行编码。首先按下面公式得出游程中断标志RItype:

通过RItype的值计算出预测值Px, 以及预测误差Errval:

如果NEAR>0, 采用常规编码模式下Errval的编码方法进行量化并计算出Errval的约束值。同样游程编码也要计算Golomb变量k, 它的计算要用到变量TEMP (游程中断编码中用来计算Golomb变量的辅助变量) 、A[Q]和N[Q] (上、下文出现频率的367个计数器) 的值, 其中Q=RItype+365, TEMP的值由下面公式计算:

然后由表3 (用TEMP的值代替A[Q]的值) 得出k的值。在获得Errval和k的值之后, 再求出Errval的映射值, 首先求出误差映射的映射标志map。

误差映射值的计算:

EMErrval的编码方法与常规模式编码中MErrval的编码方法一样。

以上两种编码方式都采用C语言实现, 并对一些实现流程和算法流程进行表格化, 使所编写的程序适合于硬件描述语言VHDL的实现。

3 测试结果

对于JPEG-LS算法的压缩比, 通过C语言对该算法进行编程实现, 并对几幅图像进行了无损压缩, 得到的压缩比见图7。从图中可以看出, 图像的平滑度对图像的压缩比有较大的影响, 主要因为游程长度编码对图像的平滑度要求较高, 因为是灰度图像的无损压缩, 压缩比并不大, 因此可以通过改变图像平滑滤波的方法来改善压缩比[6]。

摘要:本文针对JPEG-LS无损图像压缩算法展开研究, 算法采用C语言实现, 并进一步优化, 使其适合于硬件实现。分析其中的关键技术, 常规模式编码、预测误差编码和游长模式编码, 并将这些算法以公式和表格的形式详尽表示, 降低了算法的复杂度, 便于硬件描述语言编程实现。最后针对不同的图像进行了测试, 得出了不同的压缩比, 仿真结果表明图像的平滑度对图像的压缩比有较大的影响。

关键词:JPEG-LS无损图像压缩,常规模式编码,游长模式编码

参考文献

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

[2]ISO/ICE FCD 14495.Lossless and near-lossless coding of continuous tone still images (JPEG-LS) [S].

[3]ISO/IEC International standard 15444-1, ITU Recommendation T.88, 2000.Information technology-JPEG2000 image coding system[S].

[4]曹青, 吴乐南.静止图像无失真编码的新标准JPEG-LS[J].电子工程师, 1999, 2:12-14.

[5]王海荣.JPEG-LS多路并行译码算法的硬件实现[D].海南大学, 2010.

数字影像技术中无损压缩模式应用 篇5

1 图像压缩

图像在压缩的过程中有以下2大类: (1) 有损压缩; (2) 无损压缩。从有损压缩角度来看, 主要利用分形以及多分辨率编码, 从无损压缩角度来看, 主要包括字典以及预测等方法[3]。目前来看, 对图像的处理有许多的方法, 因此在应用效果方面较为理想。从信息论的角度来看, 图像是一个信源, 是描述海量数据的综合方式。图像压缩主要是将多余的不需要的信息进行处理。通过输入图像-变换器-熵编码器-压缩图像等方式来进行相关处理, 其中变换器主要值得是利用DPCM (整数差分脉码调制) 以及ritiwt (可逆整数小波变换) 来有效减少图像数据的相关性;熵编码器 (算术编码器、LZ系列编码器) 主要利用1个模型来确定概率是个的编码, 继而让输出的编码能够小于输入流。

2 可逆变换算法

2.1 预测方法

预测方法主要是通过对每一个像素信息进行编码和提取, 继而能够消除部分多余而无用的消息, 为了能够有效实现预测的可逆性, 因此需要对整个结果进行提取。其主要公式为: (1) en=X (n) -X’ (n) ; (2) X (n) =en+X’ (n) .从上述公式来看, 其中X’ (n) 是预测器根据相关预测结果得到的数据, 而预测器则主要是根据M个像素的线性组合生成的。利用预测编码的相关优点进行计算能够比较容易实现, 但是, 预测编码也存在一定的劣势, 主要表现在某个像素之间与同一组像素之间产生较大的差异时会相应的扩大预测误差, 继而在一定程度上影响到了预测结果。

2.2 可逆整数小波变换

可逆整数小波变换的方案在很大程度上提高了整数到整数的小波变换, 继而使得小波变换能够有效应用于无损压缩的领域当中, 根据JPEG1844 (静止图像标准) 可以采用 (5, 4) 整数小波变换来实现无损压缩。可逆整数小波变换的方案能够将小波变换的多分辨特性发挥得淋漓尽致, 在一定程度上放弃了平移和升缩, 此类方案既能够分解相关信号, 也能够通过预测计算以及更新结算进行基本的提高[4]。

3 熵编码计算方法

3.1 LZW编码

LZW编码是字典方法的一种, 其最早是由LZ77以及LZ78发展而来[5]。LZW编码的主要原理是利用字典把每个字符串编码为1个标识, 在此基础上, 找出重复出现的编码字符, 并且以标识来代替字符串, 在最后达到压缩的目的。总而言之, LZW编码的基本原理是通过字符的读取, 一旦在字典中找到适合的匹配, 自然也能够用字典复制代替找到的字符, 在完成此种工序后把字符加入到字典中读出下一个相关的字符, 并且直到循环结束才完成此项工作。

基本的编码流程表现在以下几个方面:

初始化的字典常常使用8位字符, 置码字CODE, 搜索字S;

在编码器内输入下一个字符F, 输完之后则停止;

S=Sc, 将字符c串接在S后;

搜索字符S, 成功结束后则转向;

输出CODE, 将Sc添加到字典中去;

S=CODE转到编码器内输入下一个字符F, 输完之后则停止。

从上述具体步骤来看, 字典质量的高低决定了压缩效果的质量高低, 简而言之字典中的词条越短则压缩比就会越低, 总而言之, 加大字典的压缩容量就能够加大压缩比但是字典的容量。从另外一个角度来看, 字典中的容量会受到计算机内存的限制, 而字典也存在被填满的可能性, 因此当字典不能再加入新的词条之后, 旧的字典则很难保证比较高的压缩比。

3.2 HUFFMAN编码

HUFFMAN编码属于统计压缩方法 (此方法采用的是变长编码) , 长编码是出现概率最小的符号, 短编码是出现概率最大的符号, 继而能够使得其平均编码实现压缩。HUFFMAN编码的主要流程体现在以下几个方面: (1) 统计灰度频率; (2) 建立灰度序列表W; (3) 在W序列中选出最小的概率。

4 结束语

综上所述, 数字图像技术应用无损压缩模式中的可逆整数小波变换方法是最理想的。除此之外, 由于每种方法都有其特点, 所以应该根据图像的具体特点来进行相关选择, 以期能够达到最好的应用效果。

参考文献

[1]路建方, 王新赛, 贺明等.基于ADV212芯片的红外视频无损压缩研究[J].红外, 2013, 34 (1) :2001-2004, 1000.

[2]王春洁, 沈燕飞, 卢毓海等.无损压缩中基于块的梯度预测模式[J].计算机工程, 2013, 16 (6) :2900-2904, 1211.

[3]周雨田, 左芝勇, 张天序等.基于空间-时间多预测模式的无损压缩方法[J].计算机与数字工程, 2015, 11 (8) :1481-1485.

[4]罗坚, 赵苏璇, 姜勇强等.气象格点资料的准无损压缩方法[J].数据采集与处理, 2011, 26 (3) :3200-3205, 1244.

无损压缩算法 篇6

高光谱遥感技术是20世纪80年代兴起的新型对地观测技术, 它将确定物质或地物性质的光谱与把握其空间和几何关系的图像革命性地结合在一起[1]。光谱连续特点使其获取的数据提供了丰富的地物细节, 在国民经济的各个方面获得了广泛应用。随着谱间和空间分辨率的不断增加, 成像光谱仪获取的高光谱数据越来越大, 限制了它在实际中的应用, 必须采用高效的压缩方法对其进行压缩。高光谱数据的获取非常昂贵, 其后续应用主要集中于特征提取、目标检测与分类等领域, 因而无损压缩则成为首选方案。

高光谱数据可以看作准三维图像, 在二维图像的基础上, 增加一维光谱信息。信息冗余来源于空间和谱间的相关性, 其中空间相关性较低, 而谱间具有较强的相关性。现有去除空间相关性的技术已经比较成熟, 如何有效去除谱间相关性, 已成为提高压缩性能的关键。高光谱图像无损压缩方法可以分为基于预测的方法[2,3,4], 基于整数变换的方法[5,6], 基于矢量量化的方法[7], 或者多种方法结合使用。基于预测的方法应用于有损压缩会产生误码传递[8]。Mielikainen J等人提出了基于聚类DPCM (differential pulse code modulation) 的高光谱图像无损压缩算法, 在使用较多参考波段情况下取得了较好的压缩效果, 但算法的复杂度偏高[7]。Zhang J等人将预测误差反馈机制引入谱间预测中, 提高了预测性能[8]。目前, 较多基于预测的方法都结合了聚类、神经网络等技术, 运算量过大, 并且产生了大量附加信息。本文提出一种基于波段分组的高光谱图像无损压缩算法, 为了减少了波段排序算法的计算量, 它根据相邻波段相关性预先进行分组。通过对波段排序算法性能进行研究, 以及对各组波段进行最佳后向排序, 谱间预测结合了最小二乘准则的最优预测, 仿真结果证明了算法的有效性。

1 波段分组

由于波段的自然顺序无法取得较好的预测性能, 根据高光谱图像的特点对波段重新排序非常必要。直接对全部波段进行整体排序, 计算量较大。实验发现, 若波段之间相距较远, 其相关性一般较差, 若预先进行波段分组GOB (group of bands) , 之后对各组进行排序, 可显著减少波段的搜索范围, 从而降低排序算法的计算量。本文根据相邻波段之间相关性来确定GOB的大小, 相关系数的定义如下:

Ri, j=i, j (Xi-X¯) (Yj-Y¯) i (Xi-X¯) 2j (Yj-Y¯) 2 (1)

式中:XiYj为两个不同波段数据;X¯Y¯分别为相应的波段均值。根据式 (1) 计算OMIS-I型高光谱图像相邻波段的相关系数可知, 该型数据的第64波段、第79波段、第98波段和第113波段附近的相关性较差。这些波段与其相邻波段之间不适合进行谱间预测, 采用谱内压缩反而会得到较好的效果。借鉴文献[10]的分组思路, 给出如下波段分组方法:

(1) 计算相邻波段的相关系数Ri, i+1 (0≤iD-2) , 其中D为总的波段数;设置阈值T, 若RT, 则将该两个波段归为同一GOB, 否则置于不同的GOB;

(2) 若GOB中的波段数大于P, 则将GOB中每P个波段作为一个波段子集SOB (subset of bands) ;若有剩余波段, 则单独作为一个SOB。

2 波段排序

为了提高预测精度, 需要对各个GOB (SOB) 进行波段排序。波段排序是指定义一个波段排列顺序, 指定先编码的波段, 并作为后续待编码波段的参考波段。目前采用较多的排序算法为:单调前向排序、单调后向排序、最佳前向排序、最佳后向排序以及最小生成树排序 (Prim算法) [11]。单调前向 (后向) 排序是指当前波段仅利用与其相邻之前 (或之后) 的波段进行预测;而最佳前向 (后向) 排序指当前波段在其之前 (或之后) 的所有波段中搜索最佳预测波段。若i表示当前要预测的波段, 则σ (i) (0≤i<D) 为排序函数, 上述几种排序算法及运算复杂度的描述如表1所示。

最小生成树排序是将用最小预测误差原则选择最优参考波段问题归结到搜索一个图结构的最小加权生成树的优化问题, 可以获得理论上最优的预测效果。由于需要计算任意两个波段之间的预测误差均方值, 故计算量较大。文献[11]给出的实验结果表明, 后向排序的预测效果优于前向排序的预测效果, 最佳后向排序可以获得接近最小生成树的预测效果。考虑预测性能和复杂度两方面因素, 本文采用最佳后向排序算法对各个GOB (SOB) 进行波段排序, 利用波段之间的互相关系数代替MSE作为搜索原则, 可显著提高搜索速度。对于GOB中存在多个SOB的情况, 除最后一个SOB外, 其他SOB的最后一个波段均在与其相邻的后一个SOB中搜索最佳参考波段, 使得每个GOB中只有一个波段采用谱内压缩方式。对于用特定光谱成像仪获取的高光谱图像, 波段之间的相关性是由遥感器决定的, 与图像内容无关, 因而上述波段的分组和排序结果, 可以应用于大部分用该光谱成像仪获取的高光谱图像。

3 基于最小二乘准则的谱间最优预测

高光谱图像的内容比较丰富, 纹理较为细密, 利用波段内所有像素计算预测系数不可取。通常的做法是先对波段进行聚类, 对各个分类分别计算最佳的预测系数, 但聚类算法计算量较大, 并且会导致较多的附加信息。在当前像素的局部邻域范围内可以认为是平稳的, 利用邻域像素进行预测可以获得较好的效果。本文采用与当前像素具有相同空间位置的参考波段像素进行谱间线性预测, 同时在参考波段和当前波段中选取具有相同空间位置的邻域结构, 在该邻域内利用最小二乘准则求得最优谱间预测系数。具体算法:若pk (i, j) 表示第k个波段中第i行、第j列的像素值;p^k (i, j) 表示其预测值;ek (i, j) 表示预测误差, 则当前像素pk (i, j) 的谱间线性预测值为:

p^k (i, j) =m=1Lαmpk-m (i, j) +β (2)

式中:L为预测阶数。预测误差ek (i, j) 表示为:

ek (i, j) =|pk (i, j) -p^k (i, j) | (3)

在当前波段中选取与pk (i, j) 相邻的K点局部邻域, 该局部邻域中的像素表示为[qk, 1, …, qk, K]T, 按照下式给出的准则计算预测系数α=[α1, α2, …, αL, β]T

arg (minα (n=1Κ[qk, n-q^k, n]2) ) (4)

上式可表示为:

ψ= (Qα-C) Τ (Qα-C) (5)

式中:

Q=[qk-1, 1qk-L, 11qk-1, Κqk-L, Κ1];C=[qk, 1qk, Κ] (6)

预测目标在于使式 (5) 最小化, 由此可以得到最佳预测系数:

α= (QΤQ) -1 (QΤC) (7)

由式 (7) 可知, 求解α的运算量随着KL的增大而增加。综合考虑压缩性能和运算量两方面因素, 选取K=4, L=1。图1所示为参考波段与当前波段相同位置上的邻域结构。其中, Y为当前波段待预测像素;XY具有相同的空间位置;Y1~Y4和X1~X4分别对应qk, 1~qk, 4与qk-1, 1~qk-1, 4。

由于利用当前像素之前的已编码邻点进行预测, 预测系数无需作为附加信息进行传输。采用该邻域结构的另一个优点是可以采用逐行处理方式来降低对变换内存的要求。由于JPEG-LS无损压缩标准具有较高的压缩性能和运算效率, 故采用该标准对参考波段和预测残差进行无损压缩。需要指出的是, 在对预测残差进行JPEG-LS压缩前, 需要将残差图像映射到非负空间。若M表示映射函数, ek表示第k波段的预测残差最小值, 则映射后的数据表示为:

Μ[ek (i, j) ]={ek (i, j) ek0ek (i, j) -ekek<0

4 实验结果与讨论

为验证所提算法的有效性, 利用VC++软件对128波段OMIS型高光谱图像进行了仿真实验。实用型模块化成像光谱仪 (OMIS) 是我国自行研制的成像光谱仪, 它覆盖了从可见光到热红外的波段范围。图2给出了压缩后各波段的bpp曲线图。

可以看出, 多波段预测算法压缩后个别波段bpp要高于谱内JPEG-LS压缩。本文算法进行了波段分组, 很好地解决了这一问题。

5 结 语

本文提出了一种基于波段分组的无损压缩算法。在波段分组的基础上, 对各组进行最佳后向排序, 谱间预测结合了最小二乘的最优预测, 实验结果表明了算法的有效性。多波段预测较多地应用于无波段排序的压缩算法中, 由于预先进行了波段排序, 采用一个参考波段即可获得较好的压缩效果。此外, 本文对波段排序算法性能的研究对后续相关工作具有参考价值。基于上述实验结果, 算法还可以从以下2个方面进行研究:

(1) 高光谱图像内容比较丰富, 不同地物边界处的像素应该单独进行预测;

(2) 谱间只进行前向预测, 双向谱间预测是一种更具潜力的压缩思路, 这也是下一步的研究内容。

摘要:高光谱图像海量数据给存储和传输带来极大困难, 必须对其进行有效压缩。针对高光谱图像不同频谱波段间相关性不同的特点, 提出一种基于波段分组的高光谱图像无损压缩算法。为了降低波段排序算法的计算量, 根据相邻波段相关性大小预先进行分组, 采用最佳后向排序算法对各组波段进行重新排序。在当前波段和参考波段中选取具有相同空间位置的邻域结构, 在最小二乘准则下, 利用邻域像素对当前预测像素进行最优谱间预测。参考波段和预测残差数据进行JPEG-LS压缩。对OMIS-Ⅰ型高光谱图像进行实验的结果表明, 与基于多波段预测算法相比, 该算法可进一步降低压缩后的平均比特率。

关键词:高光谱图像,无损压缩,波段分组,波段排序

参考文献

[1]浦瑞良, 宫鹏.高光谱遥感及其应用[M].北京:高等教育出版社, 2000.

[2]苏令华, 吕韶昱, 万建伟.基于多预测器的高光谱图像无损压缩[J].国防科技大学学报, 2007, 29 (1) :44-48.

[3]MIELIKAINEN J.Lossless compression of hyperspectralimages using lookup tables[J].IEEE Signal ProcessingLetter, 2006, 13 (3) :157-160.

[4]孙蕾, 谷德峰, 罗建书.最佳递归双向预测的高光谱图像无损压缩[J].光学精密工程, 2009, 17 (11) :2864-2870.

[5]DU Q, FOWLER J E.Hyperspectral image compressionusing JPEG2000 and principle component analysis[J].IEEE Geoscience and Remote Sensing Letters, 2007, 4 (2) :201-205.

[6]粘永健, 辛勤, 孙蕾, 等.基于3D SPIHT的高光谱图像压缩技术[J].光学精密工程, 2008, 16 (6) :1146-1151.

[7]付文秀, 王世刚, 高燕梅, 等.结合矢量量化的SPIHT算法用于多光谱图像压缩[J].通信学报, 2004, 25 (6) :110-114.

[8]孙蕾, 罗建书, 谷德峰.基于谱间预测和码流预分配的高光谱图像压缩算法[J].光学精密工程, 2008, 16 (6) :1146-1151.

[9]MIELIKAINEN J, TOIVANEN P.Clustered DPCM forthe lossless compression of hyperspectral images[J].IEEETransactions on Geoscience and Remote Sensing, 2003, 41 (12) :2943-2946.

[10]ZHANG J, LIU G Z.An efficient reordering prediction-based lossless compression algorithm for hyperspectral im-ages[J].IEEE Geoscience and Remote Sensing Letters, 2007, 4 (2) :283-287.

无损压缩算法 篇7

心电压缩方法有无损压缩和有损压缩之分。有损压缩往往能达到比无损压缩高得多的压缩比。有损压缩是对原始信号的一个近似值,可能引起心电信号中有效特征的丢失[1],而且这种丢失对于心电信号诊断特征信息的影响无法进行精确评估[2]。根据有些国家(如美国)的法律,经过有损压缩的医学信号不能用于临床诊断[3]。相对于有损压缩,无损压缩的缺点是压缩率很难有大的提高,但可以保证采集后的心电信息无损失地保存、传输。

显然,保持心电诊断信息的完整性,应当是心电压缩中首要考虑的因素,其次才是数据的压缩率。因此,虽然在有损压缩方面进行了大量的研究,但心电信号的无损压缩对临床上的诊断更有意义,也是本课题研究的目标。国内外的心电无损压缩集中在滤波组[4]、优化编码算法[58]、线性预测[9~10]和小波技术[11]等研究。心电信号是一种准周期信号,其波形呈现某种相似性,因而是一种冗余度较大、而信息熵较小的信号,从理论上来讲,应该具有较大的压缩比。而以往的无损压缩方法大都没有考虑到这种相似性冗余,因而压缩比受到很大的限制。

1 一维二维相结合的心电压缩方法

心电信号是一种准周期的随机信号,每个心跳周期主要由QRS复合波、P波、T波、ST段和基线等组成,其中QRS复合波部分心电信号变化幅度较大,但相邻QRS波之间常具有较大相似性冗余,心跳周期其余部分信号变化幅度相对较缓,适用于直接预测压缩编码。本文首先对心电数据进行一阶差分处理,可以将心电数据存储位数由12位降低到8位。在对心电数据进行一阶差分的基础上,为了有效提取心拍间周期性的相似性,首先通过QRS波形检测算法找出QRS差分波形的峰值位置,将差分后的心电数据按心拍分段进行压缩。本压缩方法的整体流程如图1所示。

其中为了尽可能多地利用心拍周期间的相似性,以平均RR间期的4/5长度作为标准去剔除过小的RR间期(把后一个R波位置去除)。最终的心电压缩结果由图1中的输出1、输出2和输出3共同组成。具体主要步骤分述如下。

1.1 相邻采样点间差分

消除采样点之间的冗余最好的方法是进行差分,这对于采样频率越高的心电数据,效果越好。本文主要以MIT-BIH心律失常数据库的48个数据作为实验对象,这些数据的采样频率是360 Hz,保存精度是12位。正常的心电波形(非噪声影响)在足够高的采样频率下,采样点之间的变化总是比最高与最低幅值的差值要小很多,以MIT-BIH心律失常数据库为例,经过实验,所有数据一阶差分以后的最大值与最小值之间的幅度都小于或等于255。对等于255的数据进行分析发现,该情况出现在被噪声严重干扰,无法辨别QRS波形的区域。因此,可以认为12位保存精度的心电数据在360 Hz以上采样频率,差分后的值可以用8位的数据进行描述,差分对数据的压缩效果是12/8=1.5。差分后的数据范围相对集中,适合进一步使用Huffman熵编码。

对于差分后幅值超过8位的数据,需要考虑一种编码方式,使之兼容8位的差分编码模式。本文将255作为转义字符序列,即大于和等于255的序列将使用转义字符加(差分数值-255)的双字节(即16位)的编码方式,同时考虑到保持差分波形的平滑效果,转义符后的数值将采用反码的方式进行表达,如255表示为0xFF0xFF,256表示为0xFF 0xFE。这样的双字节编码在整个差分序列中很少出现,因此它对差分编码的压缩率几乎没有影响。

1.2 R波波峰检测

在心电图中,R波具有波形陡峭、幅度大、宽度窄的特点。本文选择R波实时检测中比较有代表性的Hamilton[12]阈值检测法。该算法对R波检测率非常高,对MIT-BIH心律失常数据库的检测率高达99.69%,而且简单、快速。将所有检测出的R波位置,同样进行一阶差分,然后对差分结果进行Huffman熵编码。

1.3 二维无损压缩

心电信号是一种准周期信号,心拍与心拍之间存在一定的相似性。为减少这种相似性冗余,本文将心电信号按心拍周期分段组成二维矩阵,用心电信号幅度值表示为图像的灰度值,使用二维图像的压缩方法消除心拍之间的空间冗余。取R波左右固定长度的心电差分后数据(选择R峰前后各2/5的平均心拍长度的采样点),逐行排列,这样心拍之间的相似性映射到二维图像相邻行之间的相似性,心拍内部采样点之间的变化趋势(即差分后的8位数值)映射到二维8位灰度图像相邻列之中,如图2所示。因此,可以将二维图像的压缩方法,应用到一维心电信号的压缩上来。

2 实验评价

本文对MIT-BIH心律失常数据库中的所有48个数据的第一导联,检测R峰后,将差分QRS复合波构成48幅8位灰度级的二维图像矩阵。为了验证方便,将它们统一保存为8位的无压缩格式的灰度位图格式。然后,分别使用常见的二维图像无损压缩方法:JPEG无损压缩模式、JPEG-LS和JPEG2000压缩进行实验对比,结果如表1。

实验结果表明,JPEG2000和JPEG-LS对于QRS差分波形组构成的二维灰度图像有着良好的压缩效果,因为它们的压缩方法比较充分的利用了波形之间的相关性,即图像的空间冗余度。由于JPEG2000的应用比JPEG-LS要广泛得多,因此本文选择JPEG2000作为心电波形的二维无损压缩方法。

心电压缩中使用JPEG2000技术,已有文献报道,如Ali等[13]和杨圣等[14]将JPEG2000压缩技术应用于心电一维信号的压缩,但一方面它们使用的不是无损压缩,另一方面它们压缩的对象是原始的心电信号,信号中存在大幅噪声(如基线漂移)对压缩效果影响比较大。这些文献侧重于讨论QRS的准周期性对压缩的影响,同时为了二维信号对齐而补位,增加了压缩成本。这与本文的研究方法是很不同的。

本文进行评估的计算机配置如下:C P U为Pentium(R)4 3.00 GHz主频;内存为512 MB;操作系统为Microsoft Windows XP Professional Service Pack2。测试数据为MIT-BIH心律失常数据库。MIT-BIH心律失常数据库一共有48个记录,每个记录是从24小时的心电记录中选取了具有代表性的30分钟的数据片段(一共有650000个采样点)组成数据库。每条记录均包含2个通道的数据。数据的采样频率为360 Hz,采样精度为11位(采样的数据范围在02047之间),但数据保存时使用的是12位。

原始的1个M I T-B I H心电记录数据大小为650000×2×12个字节。本文设计的一维、二维相结合的心电无损压缩方法主要部分在Matlab 7.0中实现,输出Bitmap灰度图像后,利用软件Kakadu5.2.5[15]对其进行JPEG2000无损压缩,根据生成的JPEG2000图像(*.jp2)文件大小,以及一维差分信息的Huffman编码结果,很容易计算得到本文方法的无损压缩率。选择了几种无损心电压缩方法与本文方法进行比较,具体结果如表2,其中WinRAR是Windows平台最流行的压缩程序。

进一步实验比较表明,本文提出的一维二维相结合的心电无损压缩效果总体优于国内外已有的很多心电无损压缩方法[3~11]。此外,在JPEG2000无损压缩后的图像中,还包含了一部分公共的文件头信息,如JPEG2000图像的层数等,如将这部分信息去除,本文方法的压缩率仍有提高的空间。

压缩方法的解压所占时间主要由两部分组成:一是对jp2图像进行解压的时间,另一是Huffman解码的时间。本文中,前者用Kakadu软件完成对jp2文件的解压,后者使用自编Huffman解码模块完成。对于一个完整的MIT-BIH心律失常数据库中压缩后的单导联心电数据,其解压总时间平均在1秒以内。

3 结束语

基于同样的测试数据集,本文的心电无损压缩方法与其他心电无损压缩方法进行了比较,表明本文的方法在压缩效果上优于其他方法,具体体现在压缩比的最小值和平均值均高于其他方法。

MIT-BIH心律失常数据库中所有数据使用本文的心电无损压缩方法,其平均压缩比达到3.16,优于其他相同测试集的压缩方法。测试集中单条记录最差的压缩比2.67,也优于其他相同测试集的压缩方法。因此本文方法针对各类心电信号都会具有较好的压缩效果。

上一篇:生活中的角色下一篇:拖拉机液压悬架系统论文