首页> 中国专利> 一种卫星图像压缩方法及其实现装置

一种卫星图像压缩方法及其实现装置

摘要

一种卫星图像压缩方法及其实现装置,属于遥感和数字图像处理领域,解决现有图像压缩方法对编码数据传输误码率要求高、处理速度慢的问题。本发明方法,将整幅图像分为子图像,子图像独立编码,顺序进行初始化、像素冗余去除、上下文提取、预测、Golomb编码和数据聚合步骤;在进行预测和Golomb编码步骤的同时,并行顺序进行梯度计算和上下文环境参数更新步骤。本发明装置采用FPGA实现,包括坐标计算、分块控制、像素冗余去除、上下文提取、预测、Golomb编码、数据聚合、梯度计算和上下文环境参数模块。本发明提高图像压缩率,误码容忍能力强,实时性好,整体编码效率极大提升,能满足大幅面卫星图像数据实时无损压缩的要求。

著录项

  • 公开/公告号CN101771874A

    专利类型发明专利

  • 公开/公告日2010-07-07

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN200910273497.3

  • 申请日2009-12-31

  • 分类号H04N7/26(20060101);H04N7/32(20060101);H04N7/66(20060101);

  • 代理机构42201 华中科技大学专利中心;

  • 代理人方放

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-12-18 00:05:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-09-14

    授权

    授权

  • 2010-09-08

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20091231

    实质审查的生效

  • 2010-07-07

    公开

    公开

说明书

技术领域

本发明属于遥感和数字图像处理领域,具体涉及一种卫星图像压缩方法及其实现装置。

背景技术

遥感卫星获取图像的代价高,对于地面数据分析处理来说,获得的数据准确可靠和无失真非常重要。星载相机获得大量原始数据,是宝贵的原始信息,常常要求全部无损失的实时传递下来,其数据量超过我国现有数据传送设施能力,必须进行2倍左右的实时无损压缩传输。星上数据压缩一般采用单帧图像帧内压缩方法,很少采用多帧图像帧间压缩方法。变换编码和预测编码是星上数据压缩的主流方法。变换编码一般基于离散余弦变换(DCT)和离散小波变换(DWT),预测编码是无损压缩算法的常用方法,在星上数据无损压缩任务中得到广泛使用,特别是基于温博格(Weinberger)等提出的图像低复杂度无损压缩(LOCO-I,lowcomplexity lossless compression for images)思想的标准JPEG-LS算法已成为空间数据系统咨询委员会(CCSDS)推荐的无损压缩算法之一。

标准JPEG-LS算法是一般上下文模式的“低复杂度实现”,如图1所示。在宏观上,它是建立在对输入图像上下文建模基础上的逐像素处理,针对不同像素其上下文的不同点,JPEG-LS的编码流程采取两种模式:常规模式和游程模式。但卫星图像中很少会出现大块的平滑区域图像,体现不了游程编码的优点。

近年来FPGA开始应用到空间数据压缩任务中,目前在美国、澳大利亚、新加坡等国的宇航系统中,FPGA已经在很多信息处理环节处于核心地位。美国NASA的JPL实验室研究人员使用FPGA实现了标准JPEG-LS算法(FPGA-LOCO),工作频率在12MHz时,可获得1.33M像素/秒的压缩速度;澳大利亚的FedSat星上基于赛灵思公司的FPGA(型号为XQR4062)实现了一种非标准JPEG-LS算法,用于图像压缩,工作频率在2.15MHz时,获得17.2Mbps的压缩速度。

但是,美国喷气推进实验所实现的标准JPEG-LS算法及澳大利亚实现的非标准JPEG-LS算法不能满足星上大幅面图像的无损压缩的实时性和压缩速度的要求,星上无损压缩存在以下难点:

(1)大幅面高速率的图像的实时无损压缩困难。多波段高帧频的扫描相机,获得了大幅面、高速率的原始图像信息,必须全部无损失、实时地传送下来,现有技术不能满足这种大幅面高速率图像数据的实时无损压缩的要求。

(2)误码容忍能力差。复杂的星地空间传输中误码率较高,要完全正确的传输大幅面卫星图像无损压缩编码数据的每一个比特是非常困难的。现有的无损压缩方法对编码数据的传输误码率要求很高,如对存在误码的编码数据进行解码时,会因为预测链断裂,发生递推性解码错误,造成误码位置后的解码图像全部错误。

(3)很难实现全流水线结构,因此处理速度较慢。现有技术如JPEG-LS由于其固有的参数更新反馈机制,很难实现全流水线结构,压缩速度不高,不能将数据实时压缩下传。澳大利亚FedSat卫星上SAICS系统使用FPGA实现的JPEG-LS算法中就是去掉了相应的预测修正步骤,并对k值的计算采用了新的方法,规避了上下文参数的影响。但这种方法使压缩效率明显恶化,以至于不能满足实际应用的数据下传带宽要求。

发明内容

本发明提供一种卫星图像压缩方法及其实现装置,解决现有图像压缩方法对编码数据的传输误码率要求高、处理速度较慢的问题;以在有限的星上传输带宽和计算资源条件下,实现卫星图像原始数据信息的无失真压缩实时下传,并增强算法的误码容忍能力,最大限度提高图像的压缩率。

本发明的一种卫星图像压缩方法,其特征在于:将整幅图像按行分为1~10240块子图像,对每块子图像独立编码,顺序进行初始化步骤、像素冗余去除步骤、上下文提取步骤、预测步骤、Golomb编码步骤和数据聚合步骤;在进行预测步骤和Golomb编码步骤的同时,并行顺序进行梯度计算步骤和上下文环境参数更新步骤;

(1)初始化步骤:将数组A[]内的每一个值初始化为数组B[]内的每一个值初始化为0,数组C[]内的每一个值初始化为0,数组N[]内的每一个值初始化为1;M为当前图像像素比特位位宽可表示的最大值;数组A[]、B[]、C[]和N[]为四个存储器;数组A[]存储对应上下文参数索引值的已编码像素累积的预测误差绝对值之和,数组B[]存储对应上下文参数索引值的已编码像素的预测误差值之和,数组C[]存储对应上下文参数索引值的编码像素灰度值的修正值,数组N[]存储对应上下文参数索引值的已编码像素的个数;

(2)像素冗余去除步骤:检测输入卫星图像的像素灰度值比特位,当像素灰度值比特位高n位为全0或者低n位为全0时,去除高n位或者低n位;

(3)上下文提取步骤:从卫星图像的第一个像素开始,按行顺序提取卫星图像当前像素(i,j)的上下文像素灰度值f(i,j-1)、f(i-1,j-1)、f(i-1,j)、f(i-1,j+1);其中f(i,j)为图像像素(i,j)的灰度值函数,i为像素所在的行,j为像素所在的列,1≤i≤R,1≤j≤C,R为图像的行数,C为图像的列数,图像大小为R×C,R、C的大小根据需要设定;当i=1、j=1或j=C的边缘情况下,上下文像素灰度值如下取值:

(3-1)i=1时,f(i-1,j-1)=0;f(i-1,j)=0;f(i-1,j+1)=0;

(3-2)j=1时,f(i,j-1)=f(i-1,j);

(3-3)j=C时,f(i-1,j+1)=f(i-1,j);

(4)预测步骤,顺序包括:

(4-1)固定预测子步骤:基于当前像素的上下文像素灰度值预测当前像素灰度值,得到当前像素灰度预测值P:

其中,max(x,y)=x,xyy,x<y,

min(x,y)=y,xyx,x<y;

(4-2)自适应修正子步骤:对当前像素灰度预测值P进行修正,得到当前像素预测修正值PC

Pc=P+C[q]s=1Pc=P-C[q]s=-1Pc=MPc>MPc=0Pc<0,

式中,M为当前图像像素灰度值比特位位宽可表示的最大值,q为上下文参数索引值,s为符号位,q和s由梯度计算步骤(7)给出,C[q]为上下文参数索引值q在数组C[]中的对应值,由数组C[]的存储器中读出;

(4-3)误差预测子步骤:由当前像素灰度值f(i,j)与其预测修正值PC得到预测残差值ex

ex=f(i,j)-Pcs=1Pc-f(i,j)s=-1;

(4-4)误差映射子步骤:对预测残差值ex进行取模处理,得到预测残差模值ex′:

ex=ex+M+1ex<-M+12ex-M-1exM+12;

式中,M为当前图像像素比特位位宽可表示的最大值;

(5)Golomb编码步骤,进行Golomb编码,顺序包括:

(5-1)映射处理子步骤:

将预测残差模值ex′映射为非负值E:

E=2exex02|ex|-1ex<0

(5-2)参数计算子步骤,计算前编码长度最大值L和后编码长度k:

L=Lm-b-1,

Lm为Golomb编码的最长编码长度,b为图像像素灰度值比特位的位宽;

A[q]表示对应上下文参数索引值q的已编码像素累积的预测误差绝对值之和,由数组A[]的存储器中读出;

N[q]表示对应上下文参数索引值q的已编码像素个数,由数组N[]的存储器中读出;

(5-3)编码子步骤,包括下述过程:

A.判断是否是则转过程B,否则转过程C;

B.编码长度共个比特位,分为前后两部分:前一部分为个比特位全“0”再加一个比特位“1”;后一部分为k个比特位二进制表示的E/2k的余数;

C.进行限长Golomb编码,编码长度共Lm个比特位,分为前后两部分:前一部分为L个比特位全“0”再加一个比特位“1”;后一部分为b个比特位二进制表示的E-1;

(6)数据聚合步骤:

将当前像素的Glomb编码结果顺序放入一个定长数据包,定长数据包为N位比特位,N≥32,根据需要选择,每装满一个定长数据包便将其传出,当前像素的Glomb编码结果多出的比特位顺序放入下一个定长数据包;

(7)梯度计算步骤:计算上下文局部梯度值D[m],并映射为相应的量化值Q[m],计算出上下文参数索引值q和符号位s,包括下述子步骤:

(7-1)计算三个局部梯度值D[m],m=1、2、3:

D[1]=f(i-1,j+1)-f(i-1,j),

D[2]=f(i-1,j)-f(i-1,j-1),

D[3]=f(i-1,j-1)-f(i,j-1),

(7-2)将D[m]映射为相应的量化值Q[m],m=1、2、3:

Q[m]=0D[m]=010<D[m]<T12T1D[m]<T23T2D[m]<T34D[m]T3Q[m]=-1-T1<D[m]<0-2-T2<D[m]-T1-3-T3<D[m]-T2-4D[m]-T3

其中,比较参数T1,T2,T3的取值如下:

  图像像素灰度值比特位位宽  T1  T2  T3  ≤8  3  7  21  >8  18  67  276

(7-3)计算上下文参数索引值q和符号位s:

q=qtqt0-qtqt<0,

s=1qt0-1qt<0,

式中,qt=81×Q[1]+9×Q[2]+Q[3];等待步骤(5)的子步骤(5-1)结果,再进行步骤(8);

(8)上下文环境参数更新步骤,顺序包括下述子步骤:

(8-1)更新A[q]、B[q]:

A[q]=A[q]+|E|,

B[q]=B[q]+E;

A[q]由A[q]的存储器中读出;B[q]表示对应上下文参数索引值q的已编码像素的预测误差值,由B[q]的存储器中读出;

(8-2)判断N[q]是否大于64,是则转子步骤(8-3),否则转子

步骤(8-4);

(8-3)更新A[q]、B[q]、N[q]:

(8-4)更新N[q]:N[q]=N[q]+1;

(8-5)判断是否C[q]>-128且B[q]≤-N[q],是则转子步骤(8-6),否则转子步骤(8-7);

(8-6)更新C[q]、B[q]:

C[q]=C[q]-1,B[q]=max(B[q]+N[q],1-N[q]);

(8-7)判断是否C[q]<127且B[q]>0,是则转子步骤(8-8),否则结束;

(8-8)更新C[q]、B[q]:

C[q]=C[q]+1,B[q]=min(B[q]-N[q],0);

(8-9)将更新的A[q]、B[q]、C[q]、N[q]分别写入对应的A[]、B[]、C[]、N[]四个存储器。

本发明一种实现卫星图像压缩方法的装置,采用FPGA实现,其特征在于:包括坐标计算模块、分块控制模块、像素冗余去除模块、上下文提取模块、预测模块、Golomb编码模块、数据聚合模块、梯度计算模块和上下文环境参数模块;

(1)坐标计算模块:

坐标计算模块输入图像数据,计算输入的每块子图像像素在子图像内的行列坐标值,每块子图像第一个像素坐标值为(1,1),在每块子图像的最后一个像素给出初始化信号到初始化模块;

(2)初始化模块:

接收到初始化信号后,将模块(3)~(8)中所有的存储器与寄存器初始化:全部清0;

将上下文环境参数模块中,数组A[]内的每一个值初始化为数组B[]内的每一个值初始化为0,数组C[]内的每一个值初始化为0,数组N[]内的每一个值初始化为1;M为当前图像像素比特位位宽可表示的最大值;数组A[]、B[]、C[]和N[]为四个存储器;数组A[]存储对应上下文参数索引值的已编码像素累积的预测误差绝对值之和,数组B[]存储对应上下文参数索引值的已编码像素的预测误差值之和,数组C[]存储对应上下文参数索引值的编码像素灰度值的修正值,数组N[]存储对应上下文参数索引值的已编码像素的个数;

(3)像素冗余去除模块由像素寄存器构成,检测输入卫星图像的像素灰度值比特位,当像素灰度值比特位高n位为全0或者低n位为全0时,去除高n位或者低n位;像素寄存器的宽度为输入卫星图像的像素灰度值比特位位宽;

(4)上下文提取模块由第一寄存器、先进先出存储器(FIFO)、第二寄存器、第三寄存器顺序串联组成,缓存输入的子图像数据流,从卫星图像的第一个像素开始,按行顺序提取卫星图像当前像素(i,j)的上下文像素灰度值f(i,j-1)、f(i-1,j-1)、f(i-1,j)、f(i-1,j+1);其中f(i,j)为图像像素(i,j)的灰度值函数,i为像素所在的行,j为像素所在的列,1≤i≤R,1≤j≤C,R为图像的行数,C为图像的列数,图像大小为R×C,R、C的大小根据需要设定;当i=1、j=1或j=C的边缘情况下,上下文像素灰度值如下取值:

(4-1)i=1时,f(i-1,j-1)=0;f(i-1,j)=0;f(i-1,j+1)=0;

(4-2)j=1时,f(i,j-1)=f(i-1,j);

(4-3)j=C时,f(i-1,j+1)=f(i-1,j);

当输出使能信号有效时,上下文像素灰度值从先进先出存储器FIFO与第一寄存器、第二寄存器,以及第二寄存器与第三寄存器之间的连接点输出,先进先出存储器FIFO深度为C-2,宽度为图像像素灰度值比特位位宽;

(5)预测模块,包括串联的固定预测子模块、自适应修正子模块、误差预测子模块和误差映射子模块:

(5-1)固定预测子模块:由预测值寄存器构成,基于当前像素的上下文像素灰度值预测当前像素灰度值,得到当前像素灰度预测值P:

其中,max(x,y)=x,xyy,x<y,

min(x,y)=y,xyx,x<y;

预测值寄存器的宽度为当前像素灰度值比特位位宽,存储当前像素灰度预测值P;

(5-2)自适应修正子模块:由修正值寄存器构成,对当前像素灰度预测值P进行修正,得到当前像素预测修正值PC

Pc=P+C[q]s=1Pc=P-C[q]s=-1Pc=MPc>MPc=0Pc<0,

式中,M为当前图像像素灰度值比特位位宽可表示的最大值,q为上下文参数索引值,s为符号位,q和s由梯度计算模块(7)给出,C[q]为上下文参数索引值q在数组C[]中的对应值,由数组C[]的存储器中读出;

修正值寄存器的宽度为当前像素灰度值比特位位宽,存储当前像素预测修正值PC

(5-3)误差预测子模块:由残差值寄存器构成,当前像素灰度值f(i,j)与其预测修正值PC得到预测残差值ex

ex=f(i,j)-Pcs=1Pc-f(i,j)s=-1;

残差值寄存器的宽度为当前像素灰度值比特位位宽,存储当前像素预测残差值ex

(5-4)误差映射子模块:由残差模值寄存器构成,对预测残差值ex进行取模处理,得到预测残差模值ex′:

ex=ex+M+1ex<-M+12ex-M-1exM+12;

式中,M为当前图像像素比特位位宽可表示的最大值;

残差模值寄存器的宽度为当前像素灰度值比特位位宽,存储当前像素预测残差模值ex′;

(6)Golomb编码模块,进行Golomb编码,包括串联的映射处理子模块、参数计算子模块、编码子模块:

(6-1)映射处理子模块,由映射寄存器构成:

将预测残差模值ex′映射为非负值E:

E=2exex02|ex|-1ex<0,

计算结果,送给上下文环境参数更新模块;映射寄存器的宽度为当前像素灰度值比特位位宽,存储非负值E;

(6-2)参数计算子模块,由后编码寄存器构成,计算前编码长度最大值L和后编码长度k:

L=Lm-b-1,

Lm为Golomb编码的最长编码长度,b为图像像素灰度值比特位的位宽;

A[q]表示对应上下文参数索引值q的已编码像素累积的预测误差绝对值之和,由数组A[]的存储器中读出;

N[q]表示对应上下文参数索引值q的已编码像素个数,由数组N[]的存储器中读出;

后编码寄存器的宽度为当前像素灰度值比特位位宽,存储后编码长度k;

(6-3)编码子模块,由b个码字只读存储器构成,编码过程如下:

A.判断是否是则转过程B,否则转过程C;

B.编码长度共个比特位,分为前后两部分:前一部分为个比特位全“0”再加一个比特位“1”;后一部分为k个比特位二进制表示的E/2k的余数;前后两部分组成Golomb编码的码字;

C.进行限长Golomb编码,编码长度共Lm个比特位,分为前后两部分:前一部分为L个比特位全“0”再加一个比特位“1”;后一部分为b个比特位二进制表示的E-1;前后两部分组成Golomb编码的码字;

将Golomb编码的码字转化为长度为Lm+L1的定长冗余Golomb编码码字,并存储在b个码字只读存储器中,k的大小作为b个码字只读存储器的片选信号,E为地址信号,在b个码字只读存储器中索引对应的定长冗余Golomb码字;定长冗余Golomb码字定义为:对过程B的编码结果,高L1比特位存储数值中间位比特位为“0”,低位存储对应的Golomb编码的码字;

对于过程C的编码,高L1比特位存储数值Lm,低Lm位存储对应的Golomb编码的码字;

(7)数据聚合模块,由两个N位比特位的移位寄存器构成,N≥32;

从Golomb编码模块的b个码字只读存储器中读出对应的定长冗余Golomb码字,通过分析高L1比特位的数值确定Golomb编码的码字,顺序放入第一个移位寄存器,装满第一个移位寄存器便将其中的数据传出,再将该寄存器值清0;当前像素的Glomb编码结果多出的比特位顺序放入第二个移位寄存器;装满第二个移位寄存器便将其中的数据传出,再将该寄存器值清0,当前像素的Glomb编码结果多出的比特位顺序放入第一个移位寄存器;

(8)梯度计算模块,由三个梯度值寄存器、三个量化值寄存器、索引值寄存器和符号位寄存器构成,进行下述过程:

(8-1)计算三个局部梯度值D[m],m=1、2、3:

D[1]=f(i-1,j+1)-f(i-1,j),

D[2]=f(i-1,j)-f(i-1,j-1),

D[3]=f(i-1,j-1)-f(i,j-1),

三个梯度值寄存器的宽度为当前像素灰度值比特位位宽,分别存储三个局部梯度值;

(8-2)将D[m]映射为相应的量化值Q[m],m=1、2、3:

Q[m]=0D[m]=010<D[m]<T12T1D[m]<T23T2D[m]<T34D[m]T3Q[m]=-1-T1<D[m]<0-2-T2<D[m]-T1-3-T3<D[m]-T2-4D[m]-T3

其中,比较参数T1,T2,T3的取值如下:

  图像像素灰度值比特位位宽  T1  T2  T3  ≤8  3  7  21  >8  18  67  276

三个量化值寄存器的宽度为当前像素灰度值比特位位宽,分别存储三个量化值;

(8-3)计算上下文参数索引值q和符号位s:

q=qtqt0-qtqt<0,

s=1qt0-1qt<0,

式中,qt=81×Q[1]+9×Q[2]+Q[3];计算结果,送给上下文环境参数更新模块;

索引值寄存器的宽度≥9位,符号位寄存器的宽度为1位,分别存储上下文参数索引值q和符号位s;

(9)上下文环境参数更新模块,包括四个临时参数寄存器和四个双口随机存取存储器,对上下文环境参数进行更新和存储;

四个临时参数寄存器的宽度≥当前像素灰度值比特位位宽+6位,用于更新过程中A[q]、B[q]、C[q]、N[q]四个数值的存储;

四个双口随机存取存储器的宽度≥当前像素灰度值比特位位宽+6位,分别存储A[]、B[]、C[]、N[]四个数组,需要索引上下文参数时,从双口随机存取存储器的一个口读取上下文参数以供编码模块与预测模块使用;更新的上下文参数从双口随机存取存储器的另一个口写入,读取和写入两个过程互不干扰;

更新和存储顺序进行下述过程:

(9-1)更新A[q]、B[q]:

A[q]=A[q]+|E|,

B[q]=B[q]+E;

A[q]由A[q]的临时参数存储器中读出;B[q]表示对应上下文参数索引值q的已编码像素的预测误差值,由B[q]的临时参数存储器中读出;

(9-2)判断N[q]是否大于64,是则转过程(9-3),否则转过程(9-4),N[q]由N[q]的临时参数存储器中读出;

(9-3)更新A[q]、B[q]、N[q]:

(9-4)更新N[q]:N[q]=N[q]+1;

(9-5)判断是否C[q]>-128且B[q]≤-N[q],是则转过程(9-6),否则转过程(9-7),C[q]由C[q]的临时参数存储器中读出;

(9-6)更新C[q]、B[q]:

C[q]=C[q]-1,B[q]=max(B[q]+N[q],1-N[q]);

(9-7)判断是否C[q]<127且B[q]>0,是则转过程(9-8),否则转过程(9-9);

(9-8)更新C[q]、B[q]:

C[q]=C[q]+1,B[q]=min(B[q]-N[q],0);

(9-9)将更新的A[q]、B[q]、C[q]、N[q]分别写入A[]、B[]、C[]、N[]对应的四个双口随机存取存储器。

本发明具有以下优点:

(1)判别图像冗余信息,提高压缩率。当图像中每个像素灰度值的高n位或低n位为全0时,这些0像素位实际上是不含任何信息的,滤除这些冗余信息并提高了图像压缩率。

(2)误码容忍能力强。采用分块编码,将图像数据按行分为1~10240个子图像,将全图预测链断开,经过这种处理,传输误码只对其所在的子图像有影响,这一子图像因预测链的断裂会发生递推性解码错误,但对其他子图像的解码不会产生影响,造成的错误只是局部的,不会造成全图性扩散。

(3)流水线结构。不等待本次参数更新完毕就进行下一像素的预测和编码处理,这种处理方式会对压缩率产生影响,但其综合效应可以用一个准则公式来衡量:编码效率=压缩率×实时性,这里实时性可用压缩速度来表示。由几组卫星图像对本发明参数更新方式进行评估,其对压缩比的影响不到±0.1%,但编码速度达到了60M像素/秒(600Mbps),处理延时为21~52个工作时钟周期,相对于美国喷气推进实验所基于FPGA的1.33M像素/秒、澳大利亚17.2Mbps的压缩速度,整体编码效率得到了极大提升。

本发明提高图像压缩率,误码容忍能力强,实时性好,整体编码效率极大提升,能满足大幅面卫星图像数据实时无损压缩的要求。

附图说明

图1为标准JPEG-LS算法的常规模式编码流程示意图;

图2为本发明卫星图像压缩方法的流程示意图;

图3为本发明实现卫星图像压缩方法的装置总体结构示意图;

图4为待编码的卫星图像;

图5为像素冗余去除模块处理流程示意图;

图6为上下文提取模块结构示意图;

图7为上下文像素位置示意图;

图8为定长冗余Golomb码字示意图;

图9为数据聚合模块结构框图;

图10为上下文环境参数更新模块结构框图;

图11为传输误码时未采用分块处理的效果图;

图12为传输误码时采用分块处理的效果图.

具体实施方式

如图2所示,本发明采用分块编码的方式对图像进行处理,包括初始化步骤、像素冗余去除步骤、上下文提取步骤、梯度计算步骤、预测步骤、Golomb编码步骤、数据聚合步骤和上下文环境参数更新步骤。

如图3所示,本发明可以在FPGA内部实现,包括坐标计算模块、初始化模块、像素冗余去除模块、上下文提取模块、预测模块、Golomb编码模块、数据聚合模块、梯度计算模块和上下文环境参数更新模块。

图4为待编码的卫星图像,将整幅图像分为160块子图像,每块子图像包括m行n列,去除冗余后的图像像素灰度值位宽为8比特,因此M=255。

初始化模块,在每块子图像开始编码之前进行以下初始化:数组A[]对应的双口随机存取存储器中的每一个值初始化为4,数组B[]对应的双口随机存取存储器中的每一个值初始化为0,数组C[]对应的双口随机存取存储器中的每一个值初始化为0,数组N[]对应的双口随机存取存储器中的每一个值初始化为1;其他各模块存储器与寄存器全部清0。

像素冗余去除模块,由像素寄存器构成,宽度为10位,检测输入卫星图像的像素灰度值比特位,当像素灰度值比特位高2位为全0或者低2位为全0时,去除高2位或者低2位;

如图5所示,输入图像像素灰度值比特位存在高2位为0的情况,去除高2位,将低8位传出送入下一模块。

如图6所示,上下文提取模块,由第一寄存器、先进先出存储器(FIFO)、第二寄存器、第三寄存器顺序串联组成,缓存输入的图像数据流;当输出使能信号有效时,上下文像素灰度值从先进先出存储器FIFO与第一寄存器、第二寄存器,以及第二寄存器与第三寄存器之间的连接点输出,先进先出存储器FIFO深度为8192,宽度为图像像素灰度值比特位位宽8比特。

如图7所示,当前像素(i,j)的上下文像素灰度值f(i,j-1)、f(i-1,j-1)、f(i-1,j)、f(i-1,j+1);其中f(i,j)为图像像素(i,j)的灰度值函数,i为像素所在的行,j为像素所在的列。

预测模块包括固定预测子模块、自适应误差子模块、误差预测子模块、误差映射子模块:

(1)固定预测子模块:由预测值寄存器构成,基于当前像素的上下文像素灰度值预测当前像素灰度值,得到当前像素灰度预测值P:

其中,max(x,y)=x,xyy,x<y,

min(x,y)=y,xyx,x<y;

(2)自适应修正子模块:由修正值寄存器构成,把q作为从双口RAM中索引预测修正值C[q]的地址值,从双口RAM中读出预测修正值C[q],得到当前像素预测修正值PC

Pc=P+C[q]s=1Pc=P-C[q]s=-1Pc=255Pc>255Pc=0Pc<0,

式中,q和s由梯度计算模块给出,C[q]由上下文参数更新模块的数组C[]的存储器中读出;

(3)误差预测子模块:由残差值寄存器构成,当前像素灰度值f(i,j)与其预测修正值PC得到预测残差值ex

ex=f(i,j)-Pcs=1Pc-f(i,j)s=-1;

(4)误差映射子模块:由残差模值寄存器构成,对预测残差值ex进行取模处理,得到预测残差模值ex′:

ex=ex+128ex<-128ex-128ex128.

Golomb编码模块进行Golomb编码,再将Golomb编码的码字转化为长度为48的定长冗余Golomb编码码字,将全部的定长冗余Golomb编码码字按k值不同分为8组,存储在8个码字只读存储器中,k的大小作为8个码字只读存储器的片选信号,E为地址信号,在8个码字只读存储器中索引对应的定长冗余Golomb码字;如图8所示,定长冗余Golomb码字定义为:高8比特位为码长信息位,存储Golomb编码码字长度值;低40位比特位从最低位开始存储Golomb编码码字,中间未使用的比特位全部补“0”。

如图9所示,数据聚合模块由两个32位比特位的移位寄存器构成,从Golomb编码模块的8个码字只读存储器中读出对应的定长冗余Golomb码字,通过分析高8比特位的数值确定Golomb编码的码字,顺序放入第一个移位寄存器,装满第一个移位寄存器便将其中的数据传出,再将该寄存器值清0;当前像素的Glomb编码结果多出的比特位顺序放入第二个移位寄存器;装满第二个移位寄存器便将其中的数据传出,再将该寄存器值清0,当前像素的Glomb编码结果多出的比特位顺序放入第一个移位寄存器;

梯度计算模块,由三个梯度值寄存器、三个量化值寄存器、索引值寄存器和符号位寄存器构成,在计算出梯度D[m](m=1,2,3)后计算相应的应设置Q[m],由于处理的像素精度为8bit位宽,因此,T1=3,T2=7,T3=21,同时根据量化所得的Q[i]值进行符号转变处理得到上下文参数索引值q,并以此来确定符号标志位s。

如图10所示,上下文参数模块包括四个临时参数寄存器和四个双口随机存取存储器,对上下文环境参数进行更新和存储;

四个临时参数寄存器的宽度为32比特位,用于更新过程中A[q]、B[q]、C[q]、N[q]四个数值的存储;

四个双口随机存取存储器的宽度为32比特位,深度为512,分别存储A[]、B[]、C[]、N[]四个数组。

参照图4,图11为传输卫星图像时未分块的误码效果,未分块时,自传输误码的像素起,后面所有图像像素灰度值全部出错,图12为传输卫星图像时分块的误码效果。自传输误码的像素起,误码像素所在的子图像块全部出错,如图中中间的乱码,但不会影响到后续子图像。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号