防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法技术

技术编号:13460147 阅读:395 留言:0更新日期:2016-08-04 09:48
本发明专利技术公开了一种防误码扩散的图像无损/近无损压缩方法:采用并行预测方式,将分块的图像通过两路并行得到预测结果,在每个预测环节,像素之间间隔一个像素时钟周期,使得由参数索引、预测修正、残差计算、参数更新反馈环路可使用流水线设计;在近无损压缩模式下,每个像素有足够的时间进行像素重建,在当前像素进行上下文建模前能刚好得到上一个像素对应的像素重建值;通过引入分块压缩与检纠错编码相结合的方法,防止了误码的大面积扩散,提高了抗信道误码性能,同时子块大小可调,检纠错编码方式可调;进行分区域近无损压缩,可根据实际应用需求,对图像的不同区域采用不同的近无损参数Near进行压缩,可进一步提高图像的整体压缩比。

【技术实现步骤摘要】


本专利技术属于图像压缩
,更具体地,涉及到一种防误码扩散的无损/近无损图像压缩方法及其硬件实现,本专利技术适用于空间运用的星载图像无损/近无损压缩系统。

技术介绍

近年来我国在外太空探索和对地观测等空间应用领域正处于高速发展阶段,传感器的性能也随之得到了极大的提升,遥感数据量日益庞大,使得有限的信道带宽和数据存储容量与传输大量遥感数据之间的矛盾日益突出。显然,数据压缩技术是解决这一问题的一个有效途径,使其在遥感领域越来越受到重视。JPEG-LS压缩算法是已建立的对于彩色及灰度图像无损压缩的标准,是基于Weinberger等提出的低复杂度的无损图像压缩方法(LOCO-I:lowcomplexitylosslesscompressionforimages),广泛应用于卫星图像无损压缩,是CCSDS推荐的无损/近无损压缩算法。作为图像数据无损/近无损压缩标准,在压缩性能和压缩效率方面具有很多优越性,因此成为目前图像无损压缩应用中最广泛被采用的方法之一。
遥感数据的极为宝贵且获取不易,因此在对遥感数据压缩时无损/近无损压缩起到了极为重要的作用。同时,在军事应用领域,实时性是遥感数据获取、传输和处理的首要指标,因此对遥感数据的压缩处理还必须满足高实时性的要求。再者,星上空间极为复杂而恶劣,电路易因单粒子翻转等出错,而星地链路则易受天气状况影响,在恶劣天气下易产生信道误码,因此压缩系统必须具有极高的可靠性。因此,JPEG-LS压缩算法的在这样的应用背景下,会存在一些技术难点:实时实现问题和误码扩散问题。
JPEG-LS算法硬件实现的主要难点在于其近无损压缩模式的实现,其中的像素重建环节引入了反馈环路,导致了算法的实时实现的困难,制约了压缩系统的处理速度。西安电子科技大学在其申请专利“JPEG-LS常规编码硬件实现方法”(专利申请号:201210198818.X,公开号:CN102724506)中公开了一种JPEG-LS图像压缩标准的硬件实现方法。这种方法只实现了JPEG-LS图像压缩标准中的无损压缩模式,回避了近无损压缩模式中的像素重建环节,但丧失了近无损压缩功能。
JPEG-LS算法进行遥感图像压缩时,若因太空的恶劣环境使得压缩码流中引入了误码,则会因码流中的上下文关联性,导致解码时出现图像错乱而失真。

技术实现思路

本专利技术针对当今空间应用领域对低功耗、低复杂度、高实时性、高可靠性图像数据压缩系统的迫切需要提出。本专利技术通过在JPEG-LS常规编码模式的基础上引入图像分块压缩的方法,同时该方法与检纠错编码(2DECC编码和RS编码)相结合,极大地增强了JPEG-LS抗误码扩散的性能。本专利技术采用并行预测方式,将分块的图像通过两路并行得到预测结果,在每个预测环节,像素之间间隔一个像素时钟周期,使得在确保参数及时更新的同时消除了反馈回路数据依赖对流水线的阻塞,因此由参数索引、预测修正、残差计算、参数更新反馈环路可使用流水线设计。并行预测的结果最终转换为单路串行方式进行Golomb编码。同时,像素之间间隔一个像素时钟周期使得在近无损模式下,每个像素能够有足够的时间计算出对应的像素重建值供下一个像素进行上下文建模,使得图像压缩系统能够在无损压缩和近无损压缩模式间自由切换。并且,可以以图像子块为最小编码单元,针对图像不同区域采用不同的近无损度参数Near进行压缩,因此可对感兴趣的目标区域进行无损压缩,对其他区域进行有损压缩,这样可以在不损失感兴趣目标区域的信息的前提下提高压缩比,减小数据传输带宽的压力。整个压缩系统不需要对算法进行任何会导致压缩比下降的改进即可在确保各环节具有充足时序裕量的同时,完整实现了真正的全流水设计,由此达到极高的处理速度。
本专利技术包括以下步骤:
(1)预设参数
(1.1)读入像素位宽参数pixel_width。本专利技术支持两种量化比特数的图像的压缩:10bit和12bit;
(1.2)读入子块大小参数:子块行数row_size和子块列数column_size,确定最小编码单元MCU(Minimum_Coded_Unit)——子块大小;
(1.3)读入检纠错模式选择参数correction_mode,选通所需的检纠错编码方式:RS编码或者屏蔽检纠错编码;
(1.4)利用图像的帧同步信号对上述参数进行锁定,保持在一幅图像进行压缩的时候,子块大小参数和检纠错模式选择这两种参数不变;
(2)输入像素值和近无损度参数Near,进行图像分块
(2.1)将需要压缩的图像像素数据和与每一个像素对应的近无损度参数Near一起输入至图像缓存与分块模块中;
(2.2)根据读入的子块大小参数控制图像的缓存量,当存储器中图像的行数等于子块行数时,通过控制读地址按照设定好的子块大小参数逐块读出图像像素Ix和与该像素所对应的近无损度参数Near,通过这种方式将整幅图像分成若干子块,并以子块作为最小编码单元进行压缩编码。
(3)以图像子块为单位,将串行数据转换为两路并行数据
(3.1)像素数据和与之对应的近无损度参数Near按子块为单位串行输入到4个FIFO所组成的结构中。第1个子块的像素按照像素时钟连续写入FIFO1中,写完一个子块后,第2个子块的像素按照像素时钟连续写入FIFO3中,以此类推,第3个子块的像素按照像素时钟连续写入FIFO2中,之后第4个子块的像素按照像素时钟连续写入FIFO4中,后续子块按照以上顺序依次写入四个FIFO中;
(3.2)像素数据按子块为单位分为并行两路输出到两路预测编码模块。FIFO1和FIFO2以图像子块为单位交替输出像素Ix和与该像素所对应的近无损度参数Near至预测编码模块1,并且每个像素之间间隔一个像素时钟周期。同样的,FIFO3和FIFO4以图像子块为单位交替输出像素Ix和与该像素所对应的近无损度参数Near至预测编码模块2,并且每个像素之间间隔一个像素时钟周期;
(3.3)上下文参数RAM初始化。在每一个子块的像素写入FIFO之前,对该子块所对应的近无损度参数Near值进行采样,并对上下文参数RAM进行初始化操作。
(4)并行预测编码模块。采用空间并行原理,设置两路预测编码模块,同时进行预测编码,生成Golomb编码所需的变量。
(4.1)上下文建模。把重建后的像素值Rx(即步骤4.3)中数据预处理环节计算得到的像素重建值)输入到“FIFO+寄存器”缓存结构中,根据子块大小参数控制FIFO的读时机,当已经缓存了子块中一行的像素后,开始从FIFO中读出数据,从寄存器上依次获得当前像素值的近邻a、c、b、d,同时统计当前像素在子块中的坐标值。根据行列计数得到当前像素的坐标值,并读取每一个子块的第一个像素,即首像素Fp。再根据当前像素值的行列坐标和子块大小参数对当前像素的4个近邻进行边缘处理,获得重建值Ra、Rc、Rb、Rd:当前像素的坐标为子块的第一行第一列时,Ra、Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块的第一行非第一列时,Ra等于对应坐标的像素值a,而Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块的第一列非第一行时,Ra与Rb等于b,Rc等于Ra在前一行时的重建值;当前像素的坐标为子块的最后一本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/CN105828070.html" title="防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法原文来自X技术">防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方法</a>

【技术保护点】
一种防误码扩散的JPEG‑LS图像无损/近无损压缩算法硬件实现方法,其特征在于,包括以下步骤:(1)预设参数(1.1)读入像素位宽参数pixel_width;(1.2)读入子块大小参数:子块行数row_size和子块列数column_size,确定最小编码单元MCU(Minimum_Coded_Unit)子块大小;(1.3)读入检纠错模式选择参数correction_mode,选通所需的检纠错编码方式:RS编码或者屏蔽检纠错编码;(1.4)利用图像的帧同步信号对上述参数进行锁定,保持在一幅图像进行压缩的时候,子块大小参数和检纠错模式选择这两种参数不变;(2)输入像素值和近无损度参数Near,进行图像分块(2.1)将需要压缩的图像像素数据和与每一个像素对应的近无损度参数Near一起输入至图像缓存与分块模块中;(2.2)根据读入的子块大小参数控制图像的缓存量,当存储器中图像的行数等于子块行数时,通过控制读地址按照设定好的子块大小参数逐块读出图像像素Ix和与该像素所对应的近无损度参数Near,通过这种方式将整幅图像分成若干子块,并以子块作为最小编码单元进行压缩编码;(3)以图像子块为单位,将串行数据转换为两路并行数据(3.1)像素数据和与之对应的近无损度参数Near按子块为单位串行输入到4个FIFO所组成的结构中;第1个子块的像素按照像素时钟连续写入FIFO1中,写完一个子块后,第2个子块的像素按照像素时钟连续写入FIFO3中,以此类推,第3个子块的像素按照像素时钟连续写入FIFO2中,之后第4个子块的像素按照像素时钟连续写入FIFO4中,后续子块按照以上顺序依次写入四个FIFO中;(3.2)像素数据按子块为单位分为并行两路输出到两路预测编码模块;FIFO1和FIFO2以图像子块为单位交替输出像素Ix和与该像素所对应的近无损度参数Near至预测编码模块1,并且每个像素之间间隔一个像素时钟周期;同样的,FIFO3和FIFO4以图像子块为单位交替输出像素Ix和与该像素所对应的近无损度参数Near至预测编码模块2,并且每个像素之间间隔一个像素时钟周期;(3.3)上下文参数RAM初始化:在每一个子块的像素写入FIFO之前,对该子块所对应的近无损度参数Near值进行采样,并对上下文参数RAM进行初始化操作;(4)并行预测编码模块:采用空间并行原理,设置两路预测编码模块,同时进行预测编码,生成Golomb编码所需的变量;(4.1)上下文建模:把重建后的像素值Rx输入到“FIFO+寄存器”缓存结构中,根据子块大小参数控制FIFO的读时机,当已经缓存了子块中一行的像素后,开始从FIFO中读出数据,从寄存器上依次获得当前像素值的近邻a、c、b、d,同时统计当前像素在子块中的坐标值;根据行列计数得到当前像素的坐标值,并读取每一个子块的第一个像素,即首像素Fp;再根据当前像素值的行列坐标和子块大小参数对当前像素的4个近邻进行边缘处理,获得重建值Ra、Rc、Rb、Rd:当前像素的坐标为子块的第一行第一列时,Ra、Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块的第一行非第一列时,Ra等于对应坐标的像素值a,而Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块的第一列非第一行时,Ra与Rb等于b,Rc等于Ra在前一行时的重建值;当前像素的坐标为子块的最后一列时,Rb、Rd等于b的像素值,Ra、Rc等于a、c的像素值;在其他位置时,Ra、Rc、Rb、Rd依次等于a、c、b、d;(4.2)分为两个计算环节同时进行:索引值计算和像素预测像素预测:根据JPEG‑LS算法原理,通过上下文建模中Ra值、Rb值以及Rc计算出像素预测值Px,用寄存器输出;索引值计算:(4.2.1)根据上下文建模的结果计算三个梯度值:Rd与Rb相减得到梯度一D[0];Rb与Rc相减得到梯度二D[1];Rc与Ra相减得到梯度三D[2];(4.2.2)根据初始化得到的梯度量化阈值(T1、T2、T3)分别对三个梯度进行量化,具体处理方法为:将三个梯度值分别并行地与八个阈值(‑T3、‑T2、‑T1、‑NEAR、NEAR、T1、T2、T3)作比较,每个比较结果对应于8位的最终比较结果中的一位,三个梯度生成3个8bit的比较结果;即若梯度大于门限第i级门限,但小于或等于该级门限,则8bit的比较结果的0~i‑1位均为1,i~7位为0;(4.2.3)根据比较结果即可知道梯度位于哪个门限区间内,由此把该区间对应的量化值赋给量化结果即可得到三个量化结果Q_0,Q_1,Q_2;(4.2.4)梯度修正与符号判断:分别判断三个梯度量化值Q_0,Q_1,Q_2是否为负数,若三个量化值从左到右第一个不为0的数是负数,那么就把三个量化值的绝对值赋给三个梯度修正值Q0,Q1,Q2,同时符号标志SIGN等于‑1,否...

【技术特征摘要】
1.一种防误码扩散的JPEG-LS图像无损/近无损压缩算法硬件实现方
法,其特征在于,包括以下步骤:
(1)预设参数
(1.1)读入像素位宽参数pixel_width;
(1.2)读入子块大小参数:子块行数row_size和子块列数column_size,
确定最小编码单元MCU(Minimum_Coded_Unit)子块大小;
(1.3)读入检纠错模式选择参数correction_mode,选通所需的检纠错
编码方式:RS编码或者屏蔽检纠错编码;
(1.4)利用图像的帧同步信号对上述参数进行锁定,保持在一幅图像
进行压缩的时候,子块大小参数和检纠错模式选择这两种参数不变;
(2)输入像素值和近无损度参数Near,进行图像分块
(2.1)将需要压缩的图像像素数据和与每一个像素对应的近无损度参
数Near一起输入至图像缓存与分块模块中;
(2.2)根据读入的子块大小参数控制图像的缓存量,当存储器中图像
的行数等于子块行数时,通过控制读地址按照设定好的子块大小参数逐块
读出图像像素Ix和与该像素所对应的近无损度参数Near,通过这种方式将
整幅图像分成若干子块,并以子块作为最小编码单元进行压缩编码;
(3)以图像子块为单位,将串行数据转换为两路并行数据
(3.1)像素数据和与之对应的近无损度参数Near按子块为单位串行输
入到4个FIFO所组成的结构中;第1个子块的像素按照像素时钟连续写入
FIFO1中,写完一个子块后,第2个子块的像素按照像素时钟连续写入FIFO3
中,以此类推,第3个子块的像素按照像素时钟连续写入FIFO2中,之后
第4个子块的像素按照像素时钟连续写入FIFO4中,后续子块按照以上顺
序依次写入四个FIFO中;
(3.2)像素数据按子块为单位分为并行两路输出到两路预测编码模块;
FIFO1和FIFO2以图像子块为单位交替输出像素Ix和与该像素所对应的近无
损度参数Near至预测编码模块1,并且每个像素之间间隔一个像素时钟周期;
同样的,FIFO3和FIFO4以图像子块为单位交替输出像素Ix和与该像素所对
应的近无损度参数Near至预测编码模块2,并且每个像素之间间隔一个像素
时钟周期;
(3.3)上下文参数RAM初始化:在每一个子块的像素写入FIFO之前,
对该子块所对应的近无损度参数Near值进行采样,并对上下文参数RAM进
行初始化操作;
(4)并行预测编码模块:采用空间并行原理,设置两路预测编码模块,
同时进行预测编码,生成Golomb编码所需的变量;
(4.1)上下文建模:把重建后的像素值Rx输入到“FIFO+寄存器”缓
存结构中,根据子块大小参数控制FIFO的读时机,当已经缓存了子块中一
行的像素后,开始从FIFO中读出数据,从寄存器上依次获得当前像素值的
近邻a、c、b、d,同时统计当前像素在子块中的坐标值;根据行列计数
得到当前像素的坐标值,并读取每一个子块的第一个像素,即首像素Fp;
再根据当前像素值的行列坐标和子块大小参数对当前像素的4个近邻进行
边缘处理,获得重建值Ra、Rc、Rb、Rd:当前像素的坐标为子块的第一
行第一列时,Ra、Rc、Rb、Rd均等于首像素Fp;当前像素的坐标为子块
的第一行非第一列时,Ra等于对应坐标的像素值a,而Rc、Rb、Rd均等于
首像素Fp;当前像素的坐标为子块的第一列非第一行时,Ra与Rb等于b,
Rc等于Ra在前一行时的重建值;当前像素的坐标为子块的最后一列时,Rb、
Rd等于b的像素值,Ra、Rc等于a、c的像素值;在其他位置时,Ra、Rc、
Rb、Rd依次等于a、c、b、d;
(4.2)分为两个计算环节同时进行:索引值计算和像素预测
像素预测:
根据JPEG-LS算法原理,通过上下文建模中Ra值、Rb值以及Rc计算出
像素预测值Px,用寄存器输出;
索引值计算:
(4.2.1)根据上下文建模的结果计算三个梯度值:Rd与Rb相减得到
梯度一D[0];Rb与Rc相减得到梯度二D[1];Rc与Ra相减得到梯度三D[2];
(4.2.2)根据初始化得到的梯度量化阈值(T1、T2、T3)分别对三个
梯度进行量化,具体处理方法为:将三个梯度值分别并行地与八个阈值(-T3、
-T2、-T1、-NEAR、NEAR、T1、T2、T3)作比较,每个比较结果对应于8
位的最终比较结果中的一位,三个梯度生成3个8bit的比较结果;即若梯
度大于门限第i级门限,但小于或等于该级门限,则8bit的比较结果的
0~i-1位均为1,i~7位为0;
(4.2.3)根据比较结果即可知道梯度位于哪个门限区间内,由此把该
区间对应的量化值赋给量化结果即可得到三个量化结果Q_0,Q_1,Q_2;
(4.2.4)梯度修正与符号判断:分别判断三个梯度量化值Q_0,Q_1,
Q_2是否为负数,若三个量化值从左到右第一个不为0的数是负数,那么
就把三个量化值的绝对值赋给三个梯度修正值Q0,Q1,Q2,同时符号标志
SIGN等于-1,否则直接把三个量化值依次赋给梯度修正值Q0,Q1,Q2,
同时符号标志SIGN等于1,SIGN值用寄存器输出;
(4.2.5)索引地址计算:把三个梯度值依Q0,Q1,Q2依次与81、9、
1相乘,再把三个乘积相加,算出索引值Q,用寄存器输出至流水线下一级;
同时,寄存器输出之前,索引值Q直接作用至“上下文参数RAM”,以数据
伴随的有效信号为读使能,读出索引值Q所对应的A、B、C、N四个参数;
(4.3)数据预处理:包含上下文参数C、N选择,预测值修正,残差
计算,残差量化,像素重建,残差取模以及N参数更新;
(4.3.1)索引值Q不经过任何计算直接用寄存器锁存一级输出至下一
级,以供步骤4.4中使用;
(4.3.2)上下文参数C、N选择:在步骤4.2中,索引值Q和数据有
效信号作用于“上下文参数RAM”一周期后,参数A、B、C、N输出;根
据“冲突控制”模块输出的“冲突指示信号”collosion,从步骤4.5回传
的更新后的参数C_update、N_update和刚从“上下文参数RAM”读出的参数
C、N当中进行选择,输出需要使用的参数C_sel、N_sel;当collosion
为0时,选择从“上下文参数RAM”读出的参数C、N,而collosion为1
时,选择从步骤4.5回传的更新后的参数C_update、N_update;参数选择
采用组合逻辑实现;参数A和B不做任何计算,由寄存器锁存一级输出;
(4.3.3)N参数更新:根据JPEG-LS标准,使用符号标志SIGN与步骤
“上下文参数C、N选择”所获取的参数N_sel进行N参数的更新,更新后
得到N_update;当N参数进行更新时,若N_sel==RESET条件满足时,将
N_flag置1,否则置0;根据JPEG-LS标准,上下文参数更新时,
N_sel==RESET这一条件的满足与否会影响参数A、B的更新选择,因此
N_flag随N_update一起通过寄存器输出至下一级,以供上下文参数A、B、
C更新时使用;N_sel也用寄存器输出至下一级;
(4.3.4)预测值修正:根据JPEG-LS标准,使用符号标志SIGN与步骤
“上下文参数C、N选择”所获取的参数C_sel对预测值Px进行修正,获得
预测修正值Px_c;
(4.3.5)残差计算:根据JPEG-LS标准,利用符号标志SIGN、当前像
素值Ix与预测修正值Px_c运算获得残差值Errval;
(4.3.6)残差量化:根据JPEG-LS标准,对残差值Errval进行量化,
得到残差量化值Errval_q;
(4.3.7)像素重建:根据JPEG-LS标准,通过符号标志SIGN、当前像
素值Ix、残差量化值Errval_q以及近无损度参数Near值计算得到像素重建
值Rx,再将像素重建值Rx反馈至上下文建模模块中,用来提供步骤4.1中
当前像素上下文建模的环境模板;在无损压缩模式下,像素重建值Rx等于

\t原像素值Ix;
(4.3.8)残差取模:根据JPEG-LS标准,利用残差取模范围RANGE对
残差量化值Errval_q进行取模,使残差映射到取模范围内,得到残差取模值
Errval_Mod,并用寄存器输出至下一级;
(4.4)上下文参数更新,包含两个环节:上下文参数A、B选择,上下
文参数A、B、C更新;
(4.4.1)上下文参数A、B选择:根据“冲突控制”模块输出的“冲
突指示信号”collosion,从步骤4.6回传的更新后的参数A_update、
B_update和步骤4.3输出的参数A、B当中进行选择,输出需要使用的参数
A_sel、B_sel;当collosion为0时,选择步骤4.3输出的参数A、B,
而collosion为1时,选择从步骤4.6回传的更新后的参数A_update、
B_update;参数选择采用组合逻辑实现;
(4.4.2)上下文参数A、B、C更新:根据JPEG-LS标准,使用残差
取模值Errval_Mod,选择后的参数A_sel、B_sel、C_sel,以及步骤4.3中N
参数更新后输出的N_flag信号,采用组合逻辑对上下文参数选择后获取的
A、B、C参数进行更新计算(每一个子块所对应的近无损度参数Near会伴
随像素进入预测编码流水线中,根据当前使用的近无损度参数Near进行参
数更新计算),得到更新的参数A_update、B_update、C_update,连同步骤
4.3中输出过来的N_update一起,写入“上下文参数RAM”,伴随的数据有
效信号作为RAM的“写使能”信号,步骤4.3中输出的索引值Q作为RAM
的“写地址”;与此同时,A_update、B_update、C_update、N_update通过
寄存器输出至下一级;筛选后的用来进行参数更新的三个参数A_sel、B_sel、
N_sel和残差取模值Errval_Mod也通过寄存器输出至下一级,以供残差映射
和K值计算使用;
(4.5)包括主要的两个环节,即残差映射和K值计算;
(4.5.1)Stage4输出的C_update、N_update参数直接回传至步骤4.3

\t参与预处理运算中的上下文参数C、N选择;A_update、B_update参数则直
接经寄存器输出至步骤4.6;
(4.5.2)残差映射:根据JPEG-LS标准,使用残差取模值Errval_Mod,
选择后的参数A_sel、B_sel计算出映射后的残差值MErrval,经寄存器输出
至步骤4.6;
(4.5.3)K值计算:JPEG-LS标准中实现方法为比较A与
向左移位后的N,当A=N时,则K=0;当N<A≤(N<<...

【专利技术属性】
技术研发人员:颜露新张天序陈立群桑红石钟胜李军
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1