【技术实现步骤摘要】
本专利技术属于图像压缩
,更具体地,涉及到一种防误码扩散的无损/近无损图像压缩方法及其硬件实现,本专利技术适用于空间运用的星载图像无损/近无损压缩系统。
技术介绍
近年来我国在外太空探索和对地观测等空间应用领域正处于高速发展阶段,传感器的性能也随之得到了极大的提升,遥感数据量日益庞大,使得有限的信道带宽和数据存储容量与传输大量遥感数据之间的矛盾日益突出。显然,数据压缩技术是解决这一问题的一个有效途径,使其在遥感领域越来越受到重视。JPEG-LS压缩算法是已建立的对于彩色及灰度图像无损压缩的标准,是基于Weinberger等提出的低复杂度的无损图像压缩方法(LOCO-I:lowcomplexitylosslesscompressionforimages),广泛应用于卫星图像无损压缩,是CCSDS推荐的无损/近无损压缩算法。作为图像数据无损/近无损压缩标准,在压缩性能和压缩效率方面具有很多优越性,因此成为目前图像无损压缩应用中最广泛被采用的方法之一。
遥感数据的极为宝贵且获取不易,因此在对遥感数据压缩时无损/近无损压缩起到了极为重要的作用。同时,在军事应用领域,实时性是遥感数据获取、传输和处理的首要指标,因此对遥感数据的压缩处理还必须满足高实时性的要求。再者,星上空间极为复杂而恶劣,电路易因单粒子翻转等出错,而星地链路则易受天气状况影响,在恶劣天气下易产生信道误码,因此压缩系统必须具有极高的可靠性。因此,JPEG-LS压缩算法的在这样的应用背景下,会存在一些技术难点:实时实现问题和误码扩散问题。
JPEG- ...
【技术保护点】
一种防误码扩散的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)以图像子块为单位,将 ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。