CN116847095A - 一种图像压缩方法,图像解压方法和图像处理装置 - Google Patents

一种图像压缩方法,图像解压方法和图像处理装置 Download PDF

Info

Publication number
CN116847095A
CN116847095A CN202210289919.1A CN202210289919A CN116847095A CN 116847095 A CN116847095 A CN 116847095A CN 202210289919 A CN202210289919 A CN 202210289919A CN 116847095 A CN116847095 A CN 116847095A
Authority
CN
China
Prior art keywords
pixel
image
pixels
value
band
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210289919.1A
Other languages
English (en)
Inventor
孙赵亿
黄羽亮
杜齐博
孙杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210289919.1A priority Critical patent/CN116847095A/zh
Priority to PCT/CN2023/082069 priority patent/WO2023179464A1/zh
Publication of CN116847095A publication Critical patent/CN116847095A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种图像压缩方法包括:从遥感图像的第p波段图像选择M个像素;根据压缩级别标识和p确定第p波段图像中每个像素的邻域向量,根据M个像素的邻域向量生成的像素值矩阵,像素值矩阵的转置矩阵和M个像素的像素值进行线性回归运算,根据线性回归运得到的第p波段图像的模型参数值和邻域向量计算出第p波段图像的预测像素值;根据第p波段图像的像素值和预测像素值确定第p波段图像的像素残差;对所有波段的图像的像素残差编码得到残差编码数据;根据残差编码数据,压缩级别标识和所有波段图像的模型参数值生成压缩文件。该方法根据图像数据获得模型参数值更快,能提高图像压缩速度。本申请还提供能实现该图像压缩方法的图像处理装置。

Description

一种图像压缩方法,图像解压方法和图像处理装置
技术邻域
本申请涉及图像处理领域,尤其涉及一种图像压缩方法,图像解压方法和图像处理装置。
背景技术
遥感技术是用高空的多光谱图像传感器进行探测的技术,使用遥感技术可以生成多光谱图像。随着技术发展,产生了海量的遥感图像数据,现有的空中数据存储系统和地空传输带宽难以满足实际需求,因此对遥感数据进行压缩成为一个重要课题。
目前有一种由太空资讯系统咨询委员会设计的卫星遥感专用数据压缩方法称为CCSDS方法。该方法可以将多个波段的图像输入经验模型,根据经验模型预测每个像素的像素值之后,计算出每个像素的像素残差,根据像素残差对经验模型的模型参数值进行递归更新,直至像素残差小于预设阈值,然后对像素残差进行熵编码,根据编码数据生成压缩文件。
上述CCSDS方法的吞吐量在10兆字节每秒(MBps),压缩速度慢,因此应用场景有限。
发明内容
本申请提供一种图像压缩方法,能够对多个邻域像素值和像素值线性回归运算,得到各波段图像的模型参数值,与递归方法计算模型参数值相比,能够减少计算时长,从而提高压缩效率。本申请还提供相应的图像解压方法和图像处理装置。
第一方面提供一种图像压缩方法,该方法包括:获取遥感图像后,从遥感图像的第p波段图像选择多个像素,再根据压缩级别标识和p确定第p波段图像中每个像素的邻域向量,根据多个像素的邻域向量生成像素值矩阵,接着对像素值矩阵,像素值矩阵的转置矩阵和多个像素的像素值进行线性回归运算,线性回归运算的结果为第p波段图像的模型参数值,然后根据第p波段图像的模型参数值,第p波段图像中每个像素的邻域向量计算出第p波段图像中每个像素的预测像素值;根据第p波段图像的所有像素值和第p波段图像的所有预测像素值确定第p波段图像中每个像素的像素残差;根据所有波段的图像中每个像素的像素残差生成像素残差集合;将像素残差集合进行编码得到残差编码数据;根据残差编码数据,压缩级别标识和所有波段图像的模型参数值生成压缩文件。遥感图像包括多个波段的图像数据,一个像素的邻域向量包括该像素的邻域像素值和偏置项。该像素的邻域像素值包括当前波段的像素值或相邻波段的像素值。这样根据1~2个波段的像素值可以确定一个波段的模型参数值,而无需递归运算,因此可以提高计算模型参数值的速度,从而提高图像压缩速度。
在一种可能的实现方式中,从第p波段图像选择多个像素值包括:从第p波段图像中选取多个像素方格之后,从多个像素方格的相同位置各选取一个像素,以得到多个像素。这样提供了一种间隔选择像素的方法。
在另一种可能的实现方式中,根据压缩级别标识和p确定第p波段图像中每个像素的邻域向量包括:当p等于1时,从第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定目标像素所在的第一像素方格,然后确定目标像素的邻域像素包括第一像素方格中除了目标像素之外的其他像素;当p大于1时,从第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定第一像素方格和第二像素方格,然后确定目标像素的邻域像素包括第二像素方格和第一像素方格中除了目标像素之外的其他像素,根据每个像素的邻域像素值和偏置项生成每个像素的邻域向量。邻域像素值是指邻域像素的像素值。第一像素方格和第二像素方格大小相同且第一像素方格在第p波段图像的位置与第二像素方格在第p-1波段图像的位置相同。对于第一波段的像素,其邻域像素包括波段内的像素。对于其他波段的像素,其邻域像素包括两个波段的像素,这样提供了一种获取邻域像素和邻域向量的方法。
在另一种可能的实现方式中,压缩级别标识为压缩级别序号,压缩级别序号与第一像素方格的行数线性相关。可选的,压缩级别序号与第一像素方格的行数线性正相关。另一可选的,压缩级别序号与第一像素方格的行数线性负相关。
在另一种可能的实现方式中,根据第p波段图像的模型参数值,第p波段图像中每个像素的邻域向量计算出第p波段图像中每个像素的预测像素值包括:将第p波段图像的模型参数值与2的k次幂进行乘法运算后,将乘法运算结果取整,再将第p波段图像中每个像素的邻域向量与取整后的乘法运算结果进行矩阵乘法运算,最后将矩阵乘法运算结果向右移k位,以得到第p波段图像中每个像素的预测像素值。k为正整数。k大于或等于像素值的小数位占用的位数,像素值的小数位占用的位数可以是但不限于8。该方法能够将像素值转换为整数,然后进行整数运算。与浮点运算相比,上述方法能减少预测像素值的计算量,提高计算速度。
在另一种可能的实现方式中,将像素残差集合进行编码得到残差编码数据包括:根据像素残差集合的中位数从预设序列中选取大于中位数的目标数值之后,确定目标差值等于目标数值减去中位数;将像素残差集合的每个像素残差与目标差值进行加法运算,再将每个加法运算结果分成高位部分和低位部分,接着使用有限状态熵编码算法将所有加法运算结果的低位部分编码为低位残差编码数据;使用有限状态熵编码算法将所有加法运算结果的高位部分编码为高位残差编码数据;将低位残差编码数据和高位残差编码数据组成残差编码数据。预设序列中每个数值是128的奇数倍,这样能够将残差分布的中心从中位数平移到128的奇数倍。当高位部分和低位部分各占一个字节的情况下,由于相同的高位部分比不同的高位部分的熵更低,对高位部分进行有限状态熵编码时可以提高压缩率。
第二方面提供一种图像解压方法,该方法包括:获取压缩文件后,根据解压缩指令从压缩文件中获取残差编码数据,压缩级别标识和所有波段图像的模型参数值,将残差编码数据解码为像素残差集合,再按照波段顺序和像素顺序选择待处理像素;根据压缩级别标识和待处理像素的波段序号获取待处理像素的邻域向量,根据待处理像素的邻域向量和第p波段图像的模型参数值确定待处理像素的预测像素值,接着根据待处理像素的预测像素值和待处理像素的像素残差确定待处理像素的像素值,然后根据所有波段图像的像素值生成遥感图像。其中,邻域向量包括邻域像素值和偏置项。该图像解压方法可以根据模型预测结果和像素残差还原像素,从而提供一种无损解压方法。
在一种可能的实现方式中,将残差编码数据解码为像素残差集合包括:将残差编码数据分成高位残差编码数据和低位残差编码数据之后,使用有限状态熵编码算法将高位残差编码数据解码为高位部分集合,以及使用有限状态熵编码算法将低位残差编码数据解码为低位部分集合,然后根据高位部分集合和低位部分集合生成目标值集合,将目标值集合的每个值减去目标差值以得到像素残差集合。像素残差集合的中位数与目标差值之和为128的奇数倍。对于添加了目标差值的像素残差,该方法可以还原得到实际的像素残差。
第三方面提供一种图像处理装置,可以具有实现第一方面中图像压缩方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面提供一种图像处理装置,可以具有实现第二方面中图像解压方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面提供一种图像处理装置,其包括处理器和存储器,所述存储器用于存储程序;所述处理器通过执行程序用于实现上述各方面的方法。
第六方面提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第七方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第八方面提供了一种芯片系统,包括至少一个处理器,所述处理器和存储器耦合,所述存储器用于存储计算机程序或指令,所述处理器用于执行所述计算机程序或指令,以实现上述各方面的方法。
附图说明
图1为本申请实施例中图像处理系统的一个示意图;
图2为本申请实施例中图像压缩过程的一个示意图;
图3为本申请实施例中图像压缩方法的一个流程图;
图4为本申请实施例中一个波段的像素值分布直方图;
图5为本申请实施例中一个波段的像素残差分布直方图;
图6为本申请实施例中第一个波段的像素和邻域像素的一个示意图;
图7为本申请实施例中第二个波段的像素和邻域像素的一个示意图;
图8为本申请实施例中第一个波段的像素和邻域像素的另一个示意图;
图9为本申请实施例中第二个波段的像素和邻域像素的另一个示意图;
图10为本申请实施例中残差编码方法的一个流程图;
图11为本申请实施例中图像解压方法的一个流程图;
图12为本申请实施例中图像压缩方法的另一个流程图;
图13为本申请实施例中图像解压方法的一个流程图;
图14为本申请实施例中图像处理装置的一个结构图;
图15为本申请实施例中图像处理装置的另一个结构图;
图16为本申请实施例中图像处理装置的另一个结构图。
具体实施方式
本申请的图像压缩方法和图像解压方法可以应用于包括遥感图像的场景,例如气象预测,地质勘探和地图测绘等。
参阅图1,在一个实施例中,本申请的图像处理系统包括功能即服务(function asa services,FaaS)平台10,存储系统20,影像缩减主控模块30,文件格式插件模块40,压缩器插件模块50,视频存储公共模块60等。
功能即服务平台10可以根据用户输入的操作指令执行相应的功能,操作指令可以是但不限于创建指令、读取指令、更新指令和删除指令。
存储系统20可以是但不限于分布式存储系统。
影像缩减主控模块30可以包括命令行服务,FaaS服务,插件动态加载,任务执行,KPI统计,索引序列化,多线程并发等功能模块。
压缩器插件模块30包括Fractal-CM插件,HZRA插件,Fractal RS插件,deflate插件,bz2插件,webp插件,zstd插件,lzw插件,jpegls插件,jpegxl插件,magickCube插件,jpeg2000插件,flif插件,ccsds插件,fpzip插件等。
文件格式插件模块40可以进行文件格式转换。文件格式插件模块40可以是但不限于MRC文件格式插件,标签图像文件格式(tag image file format,TIFF)插件或未经加工(RAW)文件格式插件。MRC文件格式插件能够将其他格式的图像转换为MRC文件格式,MRC文件格式是电子显微镜成像领域常用的数据文件格式。MRC文件格式插件和TIFF文件格式插件都可以包括元数据解析,文件切块,多帧聚合等功能。RAW文件格式插件可以包括元数据解析,文件切块,多通道聚合功能。
视频存储公共模块60包括接口类,工具类,数据预处理类,第三方库等。接口类包括文件格式接口,压缩器接口等。工具类包括线程池,IO读写,日志和定时器等。数据预处理类包括位深切分,通道切分,大小端转换,波段顺序(band sequential,BSQ)格式转换,波段按像元交叉(band interleaved by pixel,BIP)转换,多通道去冗余等。第三方库包括数据序列化,日志,JSON解析,通用压缩(如zlib或zstd等),图像压缩(如charls/webp/jpegxl等)。
在一个实例中,当用户登录功能即服务平台10后,可以触发功能即服务平台10从存储系统20获取卫星遥感图像的事件,根据该事件可以从存储系统20读取卫星遥感图像。可以将卫星遥感图像输入影像缩减主控模块30。动态加载文件格式插件模块40可以从影像缩减主控模块30动态加载卫星遥感图像,将卫星遥感图像进行图像格式转换。压缩器插件模块30可以从影像缩减主控模块30动态加载卫星遥感图像,可以将卫星遥感图像进行图像压缩。视频存储公共模块60可以存储用户上传的卫星遥感图像,转格式的图像或压缩后的文件。视频存储公共模块60可以将存储的图像或文件存储到存储系统20,或者从存储系统20读取数据。
下面基于图1所示的图像处理系统对本申请的图像压缩过程进行描述,参阅图2,用户通过第三方应用程序从存储系统20获取卫星遥感图像后,将卫星遥感图像输入影像缩减主控模块30,影像缩减主控模块30包括缩减任务管理单元,文件格式分析单元,数据预处理单元,数据切分单元和数据压缩单元。卫星遥感图像经过缩减任务管理单元,文件格式分析单元,数据预处理单元,数据切分单元和数据压缩单元处理后生成压缩文件。影像缩减主控模块30还可以包括但不限于资源调度单元,插件管理单元或面向产品非功能性属性的设计(design for X,DFX)。
由于现有的CCSDS方法的经验模型是根据历史遥感图像生成的,该经验模型在处理新的遥感图像时需要采用递归方法更新模型参数值,才能使像素残差不高于预设阈值。然而递归方法的步骤多,导致更新经验模型的效率低。对此,本申请提供一种压缩速度更快的图像压缩方法,参阅图3,本申请的图像压缩方法的一个实施例包括:
步骤301、获取遥感图像。遥感图像可以是BSQ格式,BIP格式或波段交叉(bandinterleaved by line,BIL)格式的图像。遥感图像包括P个波段的图像,P为正整数。p为变量且p∈[1,P]。遥感图像可以是航天遥感图像,航空遥感图像(如卫星遥感图像)或地面遥感图像。
步骤302、从遥感图像的第p波段图像选择M个像素。M为正整数。
步骤303、根据压缩级别标识和p确定第p波段图像中每个像素的邻域向量。
在一个示例中,当压缩级别标识为1且p=1时,的邻域像素包括/>当压缩级别标识为1且p>1时,确定/>的邻域像素包括 和/>表示第p个波段中第i行第j列的像素,表示第p-1个波段中第i行第j列的像素,其他像素可以依此类推。
在另一个示例中,当压缩级别标识为2且p=1时,邻域像素个数为15。当压缩级别标识为2且p>1时,邻域像素个数为31。目标像素的邻域像素属于目标像素所在的波段图像或前一波段的图像,且邻域像素与目标像素的距离值小于预设距离值。对于每个像素,根据邻域像素的像素值和偏置项可以生成邻域向量。
步骤304、根据M个像素的邻域向量生成像素值矩阵。
可选的,像素值矩阵A可以为:
N为一个像素对应的邻域像素数。P′i,j表示第i个像素的第j个邻域像素值。
[P′1,1 ... P′1,N 1]为M个像素中第1个像素的邻域向量。
[P′M,1 ... P′M,N 1]为M个像素中第M个像素的邻域向量。其他像素的邻域向量可依此类推。
步骤305、对像素值矩阵,像素值矩阵的转置矩阵和M个像素的像素值进行线性回归运算,线性回归运算结果为第p波段图像的模型参数值。
生成像素值矩阵A后,根据像素值矩阵A计算出该像素值矩阵的转置矩阵AT,然后根据公式进行线性回归运算。该公式为:AATx=ATb。b包括M个像素的像素值。x为第p个波段图像的模型参数值,即由多个系数构成的向量。线性回归运算的方法可以是科列斯基分解法。
步骤306、根据第p波段图像的模型参数值,第p波段图像中每个像素的邻域向量计算出第p波段图像中每个像素的预测像素值。
步骤305和步骤306的线性回归运算和矩阵运算都包括大量的加法运算指令和乘法运算指令。本申请中,对于独立的乘法运算指令和加法运算指令可以采用单指令流多数据流(single instruction multiple data,SIMD)指令,使得指令并行处理,以提高运算速度。
步骤307、根据第p波段图像的所有像素值和第p波段图像的所有预测像素值确定第p波段图像中每个像素的像素残差。
下面对像素值分布和像素残差分布进行介绍,图4为一个波段的像素值分布直方图,横轴表示像素值,纵轴表示像素值的个数。图5为图4所示像素值的像素残差分布直方图,横轴表示像素残差,纵轴表示像素残差的个数。参阅图4和图5,像素值基本处于[1000,1600],像素残差基本处于[-20,20]。从图4和图5可以看出,像素残差的分布比像素值分布更为集中,因此零阶熵更低,压缩率更高。本申请的压缩率等于压缩前的数据量除以压缩后的数据量。
步骤308、根据所有波段的图像中每个像素的像素残差生成像素残差集合。
步骤309、将像素残差集合进行编码得到残差编码数据。
步骤310、根据残差编码数据,压缩级别标识和所有波段图像的模型参数值生成压缩文件。在一个可选实施例中,压缩文件的头部包括压缩级别标识和所有波段图像的模型参数值,以及残差编码数据存储在压缩文件的其他数据空间。需要说明的是,压缩文件的头部还可以包括但不限于遥感图像格式。
本实施例中,对遥感图像中1~2个波段的像素进行线性回归运算,得到线性回归模型的模型参数值,这样不需要递归运算,可以提高图像压缩效率。
其次,由于本实施例的像素与模型适配,因此可以达到无损压缩的效果。
可选的,步骤302包括:将第p波段图像划分为M个像素方格;从M个像素方格的相同位置各选取一个像素,以得到M个像素。可选的,M个像素方格中任意两个像素方格不重叠。
在一个示例中,像素方格包括4个像素,4个像素的位置分别记为(i,j),(i+1,j),(i,j+1)和(i+1,j+1)。从M个像素方格的相同位置各选取一个像素,可以得到M个像素。例如,从M个像素方格的第(i+1,j+1)位置各选取一个像素,可以得到M个像素。
在另一些示例中,像素方格包括9个像素或16个像素。本申请对像素方格的像素数量不作限定,具体可以根据实际情况进行选择。本申请还可以按照其他方式进行间隔采样,例如2个像素中选取一个,3个像素中选取一个,具体可根据实际情况设置,本申请不作限定。
在一个可选实施例中,步骤303包括:当p等于1时,从第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定目标像素所在的第一像素方格,确定目标像素的邻域像素包括目标像素所在的第一像素方格中除了目标像素之外的其他像素;当p大于1时,从第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定第一像素方格和第p-1波段图像的第二像素方格,确定目标像素的邻域像素包括第二像素方格和第一像素方格中除了目标像素之外的其他像素。
其中,第一像素方格和第二像素方格大小相同且第一像素方格在第p波段图像的位置与第二像素方格在第p-1波段图像的位置相同。目标像素是指第p波段中被选中的像素。
可选的,压缩级别标识为压缩级别序号,压缩级别序号与第一像素方格的行数线性相关。
在一个示例中,压缩级别序号与第一像素方格的行数线性正相关。压缩级别序号、第一像素方格的行数和第二像素方格的行数的关系可以如表1所示:
压缩级别序号 第一像素方格的行数 第二像素方格的行数
1 2 2
2 3 3
3 4 4
4 5 5
表1
应理解,压缩级别序号和第一像素方格的行数不限于表1的例子,具体可以根据实际情况进行设置。在另一些实施例中,压缩级别序号与第一像素方格的行数线性负相关。
可选的,当压缩级别标识为1时,每个像素方格包括4个像素。
参阅图6,第1个波段的图像61包括像素方格611,像素方格612,像素方格613和像素方格614。像素方格611包括像素6111,像素6112,像素6113和像素6114。像素6114的邻域像素包括像素6111,像素6112,像素6113。应理解,第1个波段的图像61还包括未示出的其他像素方格。在图像61中其他像素方格的邻域像素和像素方格61的邻域像素相似。
对于第1个波段的图像中第一行的像素,可以设置若干像素值为0的像素作为其邻域像素,从而构造出该像素对应的像素方格。例如,像素6111的邻域像素包括3个像素值为0的像素。像素6112的邻域像素包括像素6111和2个像素值为0的像素。第一行的其他像素可依此类推。
参阅图7,第1个波段的图像61包括像素方格611,像素方格612,像素方格613和像素方格614。第2个波段的图像62包括像素方格621,像素方格622,像素方格623和像素方格624。像素方格621包括像素6211,像素6212,像素6213,像素6214。像素6214的邻域像素包括像素6211,像素6212,像素6213,像素6111,像素6112,像素6113和像素6114。依此类推,可以确定在其他像素方格中一个像素的邻域像素。在后续波段(如第3个波段等)的邻域像素与第2波段的邻域像素相似。对于其他波段的图像中第一行的像素,该像素的像素方格与第1个波段的第一行像素的像素方格相似。
另一个可选的,当压缩级别标识为2时,每个像素方格包括16个像素。
参阅图8,第1个波段图像81包括像素方格811,像素方格812,像素方格813和像素方格814。像素方格811包括16个像素,第16个像素的邻域像素包括像素方格811的剩余15个像素。应理解,第1个波段的图像81还包括未示出的其他像素方格。
对于第1~3行的像素,可以设置若干像素值为0的像素作为其邻域像素,从而构造出该像素对应的像素方格。例如,像素方格811中第1个像素的邻域像素可以包括15个像素值为0的像素。像素方格811中第2个像素的邻域像素可以包括第1个像素和14个像素值为0的像素。其他像素可依此类推。
参阅图9,第1个波段图像81包括像素方格811,像素方格812,像素方格813和像素方格814,第2个波段的图像82包括像素方格821,像素方格822,像素方格823和像素方格824。像素方格821中第16个像素的邻域像素包括像素方格811的全部像素和像素方格821中的前15个像素。应理解,在第2波段的图像82中,其他像素方格的邻域像素和像素方格81的邻域像素相似。在后续波段的图像(如第3个波段的图像等)中像素方格的邻域像素与像素方格81的邻域像素相似。对于其他波段的图像中第1~3行的像素,该像素的像素方格与第1个波段的第1~3行像素的像素方格相似。
在一个可选实施例中,步骤306包括:将第p波段图像的模型参数值与每个像素的邻域向量进行矩阵乘法运算,以得到第p波段图像中每个像素的预测像素值。
模型参数值通常为浮点数,而浮点运算需要的计算开销较大。本申请可以提供一种方法能够减少计算开销。在另一个可选实施例中,步骤306包括:将第p波段图像的模型参数值与2的k次幂进行乘法运算;将乘法运算结果取整;将第p波段图像中每个像素的邻域向量与取整后的乘法运算结果进行矩阵乘法运算;将矩阵乘法运算结果向右移k位,以得到第p波段图像中每个像素的预测像素值。
本实施例中,由于步骤306计算出的第p个波段图像的模型参数值是浮点数,本申请可以将模型参数值与2的k次幂进行乘法运算,将乘法运算结果取整即可得到放大的模型参数值。当k=8时,一个波段图像的模型参数值x和放大的模型参数值x′如表2所示:
x -0.0660 0.1116 -0.2887 0.2433 0.0757 0.0995 0.0410 -0.1433
x′ -68 114 -296 249 78 102 42 -147
表2
上述过程可以将浮点数转换为整数,这样进行矩阵乘法运算时执行整数乘法,不需要进行浮点运算,因此可以减少计算量,提高计算预测像素值的速度。矩阵乘法运算结果是放大后的预测像素值,将矩阵乘法运算结果向右移k位,可以得到预测像素值。应理解,在将矩阵乘法运算结果向右移k位之后,还可以进行取整,将取整得到值作为预测像素值。k为正整数。k大于或等于像素值的小数位占用的位数,像素值的小数位占用的字节可以是但不限于1个字节。
在一个可选实施例中,步骤308包括:将像素残差集合的每个像素残差分成高位部分和低位部分;使用有限状态熵编码算法将所有加法运算结果的低位部分编码为低位残差编码数据,使用有限状态熵编码算法将所有加法运算结果的高位部分编码为高位残差编码数据,将低位残差编码数据和高位残差编码数据组成残差编码数据。
在一些实施例中,有限状态熵编码算法只能处理一个字节。按照本实施例的方法可以对2个字节的像素残差进行编码。对更多字节的像素残差进行编码的方法可依此类推。
在高低位拆分时,不同像素残差的高位部分可能不一致,这样存在熵。对此本申请提供一种方法可以减熵,从而提高压缩率。参阅图10,在另一个可选实施例中,步骤308包括:
步骤1001、根据像素残差集合的中位数从预设序列中选取大于中位数的目标数值。
步骤1002、确定目标差值等于目标数值减去中位数。
步骤1003、将像素残差集合的每个像素残差与目标差值进行加法运算。
步骤1004、将每个加法运算结果分成高位部分和低位部分。
步骤1005、使用有限状态熵编码算法将所有加法运算结果的低位部分编码为低位残差编码数据。
步骤1006、使用有限状态熵编码算法将所有加法运算结果的高位部分编码为高位残差编码数据。
应理解,步骤1006可以在步骤1005之前执行,或者步骤1005和步骤1006并行执行。
步骤1007、将低位残差编码数据和高位残差编码数据组成残差编码数据。
本实施例中,预设序列中每个数值都是128的奇数倍,例如128,384等。将像素残差集合的每个像素残差与目标差值进行加法运算,可以理解为将像素残差集合平移。在生成压缩文件时,可以将目标差值加入压缩文件的头部。
第i行第j列的像素残差记为Δi,j,像素残差的长度为2字节时,像素残差的范围为[-216+1,216-1],通常最大和最小值的差小于216-1。如在极端情况下超过216-1,本实施例亦提供了补充方案。
对于一般情形,最大和最小值的差小于216-1。由于像素残差的范围超出8位整数,受限于熵编码模块的单字节处理能力,需对平移后的像素残差值进行高低位切分。切分结果以两个8位整数为例,若像素残差集合的中位数在256的整数倍附近,会使得切分后的高位数值较为随机。例如像素残差集合为{128,129,…,383},中位数为256,高位会随机出现0和1,低位熵与原始熵等同,对高位编码会产生更多的额外代价。若将像素残差集合平移到以128的奇数倍为中心,例如将每个像素残差加上128,则高位切分后全是1,其熵为0,低位切分后与原始熵相同,不会造成额外的熵增。
对于特殊情形,即最大和最小值的差大于216-1,我们将残差符号单独保存,于是绝对值部分便会落在16位整数范围内,再采用上述操作。
当遥感图像大于内存可用空间时,可以将遥感图像切成多个数据块,每个数据块包括P个波段的图像且每个数据块的大小不超过内存容量。每个数据块的压缩方法与图3所示实施例的图像压缩方法相似。对于多个数据块的压缩过程可以并行执行,以提高压缩效率。
以上对图像压缩过程进行了介绍,下面对本申请的图像解压缩过程进行介绍。参阅图11,本申请的图像解压方法的一个实施例包括:
步骤1101、获取压缩文件。
步骤1102、根据解压缩指令从压缩文件中获取残差编码数据,压缩级别标识和所有波段图像的模型参数值。
步骤1103、将残差编码数据解码为像素残差集合。
步骤1104、按照波段顺序和像素顺序选择待处理像素。
该波段顺序是指遥感数据中波段的顺序。像素顺序是逐行逐列的像素排列顺序。
步骤1105、根据压缩级别标识和待处理像素的波段序号获取待处理像素的邻域向量。
邻域向量包括邻域像素值和偏置项。偏置项是预设的,具体取值可以是但不限于1。
在一个示例中,在压缩级别标识为1且p=1的情况下,待处理像素记为它的邻域像素包括/>和/>
当i=1且j=1时,的3个邻域像素值都是0。当i=1且j>1时,在/>的邻域像素值中,/>的像素值和/>的像素值都是0,另一个邻域像素值即/>的像素值。当i>1且j>1时,/>的邻域像素值包括/>的像素值,/>的像素值和/>的像素值。
在压缩级别标识为1且p>1的情况下,待处理像素记为它的邻域像素包括 和/>表示第p个波段中第i行第j列的像素,表示第p-1个波段中第i行第j列的像素,其他像素可以依此类推。
当i=1且j=1时,在的邻域像素值中除了/>之外其他6个像素值都是0。当i=1且j>1时,在/>的邻域像素值中除了/>之外其他4个像素值都是0。当i>1且j>1时,/>的邻域像素包括/>和/>
在另一个示例中,在压缩级别标识为2且p=1的情况下,当待处理像素的像素方格包括不属于第1个波段的像素时,其中不属于第1个波段的像素的像素值都是0。当待处理像素的像素方格属于第1个波段的图像时,第1个波段的邻域像素包括第1个波段的15个像素。
在压缩级别标识为2且p>1的情况下,当待处理像素的像素方格包括不属于第p个波段的像素时,其中不属于第1个波段的像素的像素值都是0。当待处理像素的像素方格属于第p个波段的图像时,待处理像素的邻域像素包括第p个波段的15个像素和第p-1个波段的16个像素。当邻域像素个数为其他值时,依此类推可以获取相应的邻域像素。
步骤1106、根据待处理像素的邻域向量和第p波段图像的模型参数值确定待处理像素的预测像素值。
步骤1107、根据待处理像素的预测像素值和待处理像素的像素残差确定待处理像素的像素值。按照步骤1104至步骤1007可以确定每个波段的全部像素。
步骤1108、根据所有波段图像的像素值生成遥感图像。
本实施例中,由于图像解压过程所采用的压缩级别标识,模型参数值和像素残差与图像压缩过程采用的压缩级别标识,模型参数值和像素残差都相同,因此提供了一种无损的图像解压方法。应理解,解压过程不需要计算模型参数值,因此比压缩速度更快。
在一个可选实施例中,步骤1103包括:将残差编码数据分成高位残差编码数据和低位残差编码数据;使用有限状态熵编码算法将高位残差编码数据解码为高位部分集合;使用有限状态熵编码算法将低位残差编码数据解码为低位部分集合;根据高位部分集合和低位部分集合生成目标值集合;将目标值集合的每个值减去目标差值,得到像素残差集合。
本实施例中,压缩文件还包括目标差值。具体的,根据高位部分集合和低位部分集合生成目标值集合包括:将第i个高位部分和第i个低位部分组成第i个目标值,根据所有目标值生成目标值集合。
本实施例中,残差编码数据是根据图10所示实施例的步骤获取的,像素残差集合的中位数与目标差值之和为128的奇数倍。对于该残差编码数据进行分割,解码,拼接和减法运算可以还原所有波段的像素残差。
下面以另一个实施例对本申请的图像压缩方法进行介绍,参阅图12,本申请的图像压缩方法的另一个实施例包括:
步骤1201、读取遥感图像。
步骤1202、确认压缩级别标识。
压缩级别标识可以预设的,也可以是由用户输入的。
步骤1203、根据压缩级别标识确定残差计算函数。
步骤1204、分配数据空间。该数据空间是指为遥感图像分配的数据空间。
步骤1205、将遥感图像之外的剩余空间进行填充。剩余空间是指数据空间中除了遥感图像之外的空间部分。
步骤1206、分配压缩数据空间。
步骤1207、线性回归模型采样。具体的,根据压缩级别标识和波段序号确定多个像素的邻域像素值,进而得到多个像素的邻域向量。
步骤1208、确定线性回归模型参数值。
对采样得到的邻域向量和像素值进行线性回归运算,得到的系数矩阵即线性回归模型参数值。分别运算出第一波段的模型参数值和其他波段的模型参数值。
本申请可以对部分像素的邻域向量和像素值进行线性回归运算,以得到原始的模型参数值。然后根据更多像素的邻域向量和像素值进行线性回归运算后,可以得到新的模型参数值。用新的模型参数值代替旧模型参数值,实现分步更新模型参数值。
步骤1209、模型参数值量化。
模型参数值是指线性回归模型参数值。得到线性回归模型参数值后,可以将线性回归模型参数值放大和取整。应理解,在计算过程中需要为参与计算的数据分配空间,对齐数据类型。
步骤1210、预测像素。
具体的,根据量化后的模型参数值和邻域向量确定每个像素的预测像素值。
步骤1211、根据残差计算函数确定像素残差。
将各像素的像素值和预测像素值输入残差计算函数可以确定每个像素的像素残差。
步骤1212、平移像素残差。
具体的,将每个像素残差加上目标差值就可以平移像素残差,使得平移后的像素残差的高位部分相同。
步骤1213、高低位拆分。
将平移后的像素残差进行高低位拆分可以得到高位部分和低位部分。
步骤1214、低位编码。
步骤1215、高位编码。
具体的,使用编码方法将所有高位部分编码为高位残差编码数据,以及使用编码方法将所有低位部分编码为低位残差编码数据。编码方法可以是但不限于有限状态熵编码(finite state entropy,FSE)方法。
步骤1216、保存压缩级别标识,模型参数值和编码数据。
编码数据包括高位残差编码数据和低位残差编码数据。将压缩级别标识,模型参数值和编码数据保存在缓存中,然后根据压缩级别标识,模型参数值和编码数据生成压缩文件。应理解,压缩文件还可以包括但不限于遥感图像的头部信息。
下面以另一个实施例对本申请的图像解压方法进行介绍,参阅图13,本申请的图像压缩方法的另一个实施例包括:
步骤1301、读取压缩文件。
步骤1302、检查压缩文件大小。
当压缩文件的大小正确时,执行步骤1303,否则结束。压缩文件包括残差编码数据,压缩级别标识和所有波段图像的模型参数值,本申请还可以检查模型参数值的大小是否正确,如果不正确,则结束。
步骤1303、读取模型参数值。
步骤1304、分配数据空间。具体的,为参与解码的数据分配数据空间。
步骤1305、残差解码。具体的,使用FSE方法分别对高位残差编码数据和低位残差编码数据进行解码,得到高位部分集合和低位部分集合。
步骤1306、高低位合并。
将高位部分集合和低位部分集合合并位目标值集合。
步骤1307、平移。具体的,将目标值集合中的每个值减去目标差值,得到像素残差集合。
步骤1308、重构图像。具体的,根据模型参数值和每个像素的邻域向量获取预测像素值,根据预测像素值和像素残值可以得到像素值。
步骤1309、去除填充。得到所有像素值后,去除填充的像素就得到了遥感图像。在实际应用中可以释放数据空间,以减少内存占用。
下面用一组具体数据对本申请的图像压缩效果和图像解压效果进行介绍。对于一张包括15个波段的卫星遥感图片,当选择压缩等级为1级时,图像压缩信息和图像解压信息如表3所示:
卫星遥感图片的大小 304.25MB
压缩文件的大小 83.58MB
压缩率 3.64
单核单线程压缩速度 57.00MBps
单核单线程解压速度 113.32MBps
表3
现有CCSDS的吞吐量约为10MB/s,即图像压缩速度和图像解压速度都在10MB/s左右。与其相比,本申请的图像压缩速度和图像解压速度均得到极大提高。
本申请还提供用于用户输入不同的压缩参数的接口。
在一个实施例中,用户输入指令为:fractalrs[-d][-s D H W][-1 level][-ooutput_file][-h][-r]input_file,其中,fractalrs表示指令类型。-d表示解压。-s DH W表示文件的深度,高度和宽度。-r表示按照反向字节顺序读或写。-1表示压缩级别标识为1,1为默认的压缩级别标识。-o表示输出文件的前缀,默认前缀为output.bin。-h表示帮助信息。input_file表示输入文件。
本实施例中,通过上述指令后,图像处理装置可以根据输入的压缩参数对输入文件进行压缩或解压,压缩方法可参阅图3所示实施例中的图像压缩方法,解压方法可参阅图11所示实施例中的图像解压方法。应理解,用户可以根据实际需要输入上述指令包含的一个或多个压缩参数。
下面用另一组具体数据对本申请的图像压缩效果和图像解压效果进行介绍。对于一张包括8个波段的卫星遥感图片,当选择压缩等级为1级时,图像压缩信息和图像解压信息如表4所示:
卫星遥感图片的大小 322.53MB
压缩文件的大小 112.22MB
压缩率 2.87
单核单线程压缩速度 61.60MBps
单核单线程解压速度 107.85MBps
表4
本申请还提供能够实现上述图像压缩方法的图像处理装置1400。参阅图14,在一个实施例中,图像处理装置1400包括:
获取单元1401,用于获取遥感图像,遥感图像包括多个波段的图像;
选择像素单元1402,用于从第p波段图像选择多个像素,p为正整数;
向量单元1403,用于根据压缩级别标识和p确定第p波段图像中每个像素的邻域向量,邻域向量包括邻域像素值和偏置项;
模型单元1404,用于根据多个像素的邻域向量生成像素值矩阵;对像素值矩阵,像素值矩阵的转置矩阵和多个像素的像素值进行线性回归运算,以得到第p波段图像的模型参数值;
预测单元1405,用于根据第p波段图像的模型参数值,第p波段图像中每个像素的邻域向量计算出第p波段图像中每个像素的预测像素值;
计算残差单元1406,用于根据第p波段图像的所有像素值和第p波段图像的所有预测像素值确定第p波段图像中每个像素的像素残差;
编码单元1407,用于根据所有波段的图像中每个像素的像素残差生成像素残差集合;将像素残差集合进行编码得到残差编码数据;
压缩文件单元1408,用于根据残差编码数据,压缩级别标识和所有波段图像的模型参数值生成压缩文件。
在一个可选实施例中,选择像素单元1402具体用于从第p波段图像中选取多个像素方格,从多个像素方格的相同位置各选取一个像素,以得到多个像素。
在另一个可选实施例中,向量单元1403具体用于当p等于1时,从第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定目标像素所在的第一像素方格,确定目标像素的邻域像素包括第一像素方格中除了目标像素之外的其他像素;当p大于1时,从第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定第一像素方格和第二像素方格,确定目标像素的邻域像素包括第二像素方格和第一像素方格中除了目标像素之外的其他像素,第一像素方格和第二像素方格大小相同且第一像素方格在第p波段图像的位置与第二像素方格在第p-1波段图像的位置相同;根据每个像素的邻域像素值和偏置项生成每个像素的邻域向量。
在另一个可选实施例中,压缩级别标识为压缩级别序号,压缩级别序号与第一像素方格的行数线性相关。
在另一个可选实施例中,预测单元1405具体用于将第p波段图像的模型参数值与2的k次幂进行乘法运算,k为正整数;将乘法运算结果取整;将第p波段图像中每个像素的邻域向量与取整后的乘法运算结果进行矩阵乘法运算;将矩阵乘法运算结果向右移k位,以得到第p波段图像中每个像素的预测像素值。
在另一个可选实施例中,
编码单元1407具体用于根据像素残差集合的中位数从预设序列中选取大于中位数的目标数值,预设序列中每个数值是128的奇数倍;确定目标差值等于目标数值减去中位数;将像素残差集合的每个像素残差与目标差值进行加法运算;将每个加法运算结果分成高位部分和低位部分;使用有限状态熵编码算法将所有加法运算结果的低位部分编码为低位残差编码数据;使用有限状态熵编码算法将所有加法运算结果的高位部分编码为高位残差编码数据;将低位残差编码数据和高位残差编码数据组成残差编码数据。
本申请还提供一种能够实现上述图像解压方法的图像处理装置1500。参阅图15,在一个实施例中,图像处理装置1500包括:
获取单元1501,用于获取压缩文件;根据解压缩指令从压缩文件中获取残差编码数据,压缩级别标识和所有波段图像的模型参数值;
解码单元1502,用于将残差编码数据解码为像素残差集合;
图像处理单元1503,用于按照波段顺序和像素顺序选择待处理像素;根据压缩级别标识和待处理像素的波段序号获取待处理像素的邻域向量,邻域向量包括邻域像素值和偏置项;根据待处理像素的邻域向量和第p波段图像的模型参数值确定待处理像素的预测像素值;根据待处理像素的预测像素值和待处理像素的像素残差确定待处理像素的像素值;根据所有波段图像的像素值生成遥感图像。
在一个可选实施例中,解码单元1502具体用于在压缩文件包括目标差值的情况下将残差编码数据分成高位残差编码数据和低位残差编码数据;使用有限状态熵编码算法将高位残差编码数据解码为高位部分集合;使用有限状态熵编码算法将低位残差编码数据解码为低位部分集合;根据高位部分集合和低位部分集合生成目标值集合;将目标值集合的每个值减去目标差值以得到像素残差集合,像素残差集合的中位数与目标差值之和为128的奇数倍。
本申请提供一种能够实现上述图像压缩方法和图像解压方法的图像处理装置1600。参阅图16,在一个实施例中,图像处理装置1600包括处理器1601,内存1602和输入输出设备1603。处理器1601,内存1602和输入输出(input/ourput,I/O)设备1603的数量可以是一个或多个。
在本申请实施例中,处理器1601可以是中央处理器(central processing unit,CPU),可以是其他特定集成电路(application specific integrated circuit,ASIC)。处理器1601还可以是是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
内存1602是图像处理装置1600的主存。通常采用动态随机存取存储器(DynamicRandom Access Memory,DRAM)作为内存1602。处理器1601能够通过内存控制器高速访问内存1602,对内存1602中的任意一个存储单元进行读操作和写操作。除了DRAM之外,内存1602还可以是其他随机存取存储器,例如静态随机存取存储器(Static Random AccessMemory,SRAM)等。另外,内存1602也可以是只读存储器(Read Only Memory,ROM)。而对于只读存储器,举例来说,可以是可编程只读存储器(Programmable Read Only Memory,PROM)、可抹除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)等。本实施例不对内存1602的数量和类型进行限定。此外,可对内存1602进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,存储器中存储的数据也不会丢失。具有保电功能的内存1602被称为非易失性存储器。
输入输出设备1603是指可以进行数据传输的硬件,也可以理解为与I/O接口对接的设备。常见的I/O设备有网卡、打印机、键盘、鼠标等。所有的外存也可以作为I/O设备,如硬盘、软盘、光盘等。
处理器1601和内存1602通过总线1604连接,处理器1601和输入输出设备1603通过总线1605连接。总线1604可以是但不限于双倍速率(double data rate,DDR)总线,总线1605可以是但不限于PCIe总线。这里,不同的内存1602可能采用不同的数据总线与处理器1601通信,因此DDR总线1604也可以替换为其他类型的数据总线,本申请实施例不对总线类型进行限定。
本实施例中,内存1602用于存储程序,处理器1601通过调用内存1602存储的程序可以执行图3所示实施例的图像压缩方法或图11所示实施例中的图像解压方法。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例或可选实施例中的通信方法。
本申请还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如上述所示实施例或可选实施例中的通信方法。
本申请还提供一种芯片系统,该芯片系包括相互耦合的处理器和存储器。存储器用于存储的计算机程序或指令,该处理单元用于执行存储器存储的计算机程序或指令,以使路由设备执行上述实施例中由第一路由设备、目标路由设备或第二路由设备执行的步骤。可选地,存储器为芯片内的存储器,如寄存器、缓存等,存储器还可以是站点内的位于芯片外部的存储器,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,专用集成电路(application specificintegrated circuit,ASIC)或一个或多个用于实现上述通信方法的集成电路。
另外需说明的是,以上所描述的装置实施例只是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例的附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属邻域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本邻域的普通技术人员应当理解:其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例的技术方案的范围。

Claims (17)

1.一种图像压缩方法,其特征在于,包括:
获取遥感图像,所述遥感图像包括多个波段的图像;
从第p波段图像选择多个像素,所述p为正整数;
根据压缩级别标识和p确定所述第p波段图像中每个像素的邻域向量,所述邻域向量包括邻域像素值和偏置项;
根据所述多个像素的邻域向量生成像素值矩阵;
对所述像素值矩阵,所述像素值矩阵的转置矩阵和所述多个像素的像素值进行线性回归运算,以得到第p波段图像的模型参数值;
根据所述第p波段图像的模型参数值,第p波段图像中每个像素的邻域向量计算出第p波段图像中每个像素的预测像素值;
根据第p波段图像的所有像素值和第p波段图像的所有预测像素值确定所述第p波段图像中每个像素的像素残差;
根据所有波段的图像中每个像素的像素残差生成像素残差集合;
将所述像素残差集合进行编码得到残差编码数据;
根据所述残差编码数据,压缩级别标识和所有波段图像的模型参数值生成压缩文件。
2.根据权利要求1所述的方法,其特征在于,所述从第p波段图像选择多个像素值包括:
从第p波段图像中选取多个像素方格;
从多个像素方格的相同位置各选取一个像素,以得到多个像素。
3.根据权利要求1所述的方法,其特征在于,所述根据压缩级别标识和p确定第p波段图像中每个像素的邻域向量包括:
当p等于1时,从所述第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定所述目标像素所在的第一像素方格,确定目标像素的邻域像素包括所述第一像素方格中除了目标像素之外的其他像素;
当p大于1时,从所述第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定所述第一像素方格和第二像素方格,确定所述目标像素的邻域像素包括第二像素方格和所述第一像素方格中除了目标像素之外的其他像素,所述第一像素方格和所述第二像素方格大小相同且所述第一像素方格在第p波段图像的位置与所述第二像素方格在第p-1波段图像的位置相同;
根据每个像素的邻域像素值和偏置项生成每个像素的邻域向量。
4.根据权利要求3所述的方法,其特征在于,所述压缩级别标识为压缩级别序号,所述压缩级别序号与所述第一像素方格的行数线性相关。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第p波段图像的模型参数值,第p波段图像中每个像素的邻域向量计算出所述第p波段图像中每个像素的预测像素值包括:
将所述第p波段图像的模型参数值与2的k次幂进行乘法运算,所述k为正整数;
将乘法运算结果取整;
将第p波段图像中每个像素的邻域向量与取整后的乘法运算结果进行矩阵乘法运算;
将矩阵乘法运算结果向右移k位,以得到第p波段图像中每个像素的预测像素值。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述将所述像素残差集合进行编码得到残差编码数据包括:
根据所述像素残差集合的中位数从预设序列中选取大于所述中位数的目标数值,预设序列中每个数值是128的奇数倍;
确定目标差值等于所述目标数值减去所述中位数;
将所述像素残差集合的每个像素残差与所述目标差值进行加法运算;
将每个加法运算结果分成高位部分和低位部分;
使用有限状态熵编码算法将所有加法运算结果的低位部分编码为低位残差编码数据;
使用有限状态熵编码算法将所有加法运算结果的高位部分编码为高位残差编码数据;
将所述低位残差编码数据和所述高位残差编码数据组成残差编码数据。
7.一种图像解压方法,其特征在于,包括:
获取压缩文件;
根据解压缩指令从压缩文件中获取残差编码数据,压缩级别标识和所有波段图像的模型参数值;
将所述残差编码数据解码为像素残差集合;
按照波段顺序和像素顺序选择待处理像素;
根据压缩级别标识和待处理像素的波段序号获取待处理像素的邻域向量,所述邻域向量包括邻域像素值和偏置项;
根据所述待处理像素的邻域向量和第p波段图像的模型参数值确定待处理像素的预测像素值;
根据所述待处理像素的预测像素值和所述待处理像素的像素残差确定所述待处理像素的像素值;
根据所有波段图像的像素值生成遥感图像。
8.根据权利要求7所述的方法,其特征在于,所述压缩文件还包括目标差值;
所述将所述残差编码数据解码为像素残差集合包括:
将所述残差编码数据分成高位残差编码数据和低位残差编码数据;
使用有限状态熵编码算法将高位残差编码数据解码为高位部分集合;
使用有限状态熵编码算法将低位残差编码数据解码为低位部分集合;
根据所述高位部分集合和所述低位部分集合生成目标值集合;
将所述目标值集合的每个值减去目标差值以得到像素残差集合,所述像素残差集合的中位数与所述目标差值之和为128的奇数倍。
9.一种图像处理装置,其特征在于,包括:
获取单元,用于获取遥感图像,所述遥感图像包括多个波段的图像;
选择像素单元,用于从第p波段图像选择多个像素,所述p为正整数;
向量单元,用于根据压缩级别标识和p确定所述第p波段图像中每个像素的邻域向量,所述邻域向量包括邻域像素值和偏置项;
模型单元,用于根据所述多个像素的邻域向量生成像素值矩阵;对所述像素值矩阵,所述像素值矩阵的转置矩阵和所述多个像素的像素值进行线性回归运算,以得到第p波段图像的模型参数值;
预测单元,用于根据所述第p波段图像的模型参数值,第p波段图像中每个像素的邻域向量计算出第p波段图像中每个像素的预测像素值;
计算残差单元,用于根据第p波段图像的所有像素值和第p波段图像的所有预测像素值确定所述第p波段图像中每个像素的像素残差;
编码单元,用于根据所有波段的图像中每个像素的像素残差生成像素残差集合;将所述像素残差集合进行编码得到残差编码数据;
压缩文件单元,用于根据所述残差编码数据,压缩级别标识和所有波段图像的模型参数值生成压缩文件。
10.根据权利要求9所述的图像处理装置,其特征在于,
所述选择像素单元具体用于从第p波段图像中选取多个像素方格,从多个像素方格的相同位置各选取一个像素,以得到多个像素。
11.根据权利要求9所述的图像处理装置,其特征在于,
所述向量单元具体用于当p等于1时,从所述第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定所述目标像素所在的第一像素方格,确定目标像素的邻域像素包括所述第一像素方格中除了目标像素之外的其他像素;当p大于1时,从所述第p波段图像中依次选取目标像素,根据压缩级别标识和目标像素的位置确定所述第一像素方格和第二像素方格,确定所述目标像素的邻域像素包括第二像素方格和所述第一像素方格中除了目标像素之外的其他像素,所述第一像素方格和所述第二像素方格大小相同且所述第一像素方格在第p波段图像的位置与所述第二像素方格在第p-1波段图像的位置相同;根据每个像素的邻域像素值和偏置项生成每个像素的邻域向量。
12.根据权利要求11所述的图像处理装置,其特征在于,所述压缩级别标识为压缩级别序号,所述压缩级别序号与所述第一像素方格的行数线性相关。
13.根据权利要求9所述的图像处理装置,其特征在于,
所述预测单元具体用于将所述第p波段图像的模型参数值与2的k次幂进行乘法运算,所述k为正整数;将乘法运算结果取整;将第p波段图像中每个像素的邻域向量与取整后的乘法运算结果进行矩阵乘法运算;将矩阵乘法运算结果向右移k位,以得到第p波段图像中每个像素的预测像素值。
14.根据权利要求9至13中任一项所述的图像处理装置,其特征在于,
所述编码单元具体用于根据所述像素残差集合的中位数从预设序列中选取大于所述中位数的目标数值,所述预设序列中每个数值是128的奇数倍;确定目标差值等于所述目标数值减去所述中位数;将像素残差集合的每个像素残差与所述目标差值进行加法运算;将每个加法运算结果分成高位部分和低位部分;使用有限状态熵编码算法将所有加法运算结果的低位部分编码为低位残差编码数据;使用有限状态熵编码算法将所有加法运算结果的高位部分编码为高位残差编码数据;将所述低位残差编码数据和所述高位残差编码数据组成残差编码数据。
15.一种图像处理装置,其特征在于,包括:
获取单元,用于获取压缩文件;根据解压缩指令从所述压缩文件中获取残差编码数据,压缩级别标识和所有波段图像的模型参数值;
解码单元,用于将所述残差编码数据解码为像素残差集合;
图像处理单元,用于按照波段顺序和像素顺序选择待处理像素;根据压缩级别标识和待处理像素的波段序号获取待处理像素的邻域向量,所述邻域向量包括邻域像素值和偏置项;根据所述待处理像素的邻域向量和第p波段图像的模型参数值确定待处理像素的预测像素值;根据待处理像素的预测像素值和待处理像素的像素残差确定待处理像素的像素值;根据所有波段图像的像素值生成遥感图像。
16.根据权利要求15所述的图像处理装置,其特征在于,所述解码单元具体用于在压缩文件还包括目标差值的情况下,将残差编码数据分成高位残差编码数据和低位残差编码数据;使用有限状态熵编码算法将高位残差编码数据解码为高位部分集合;使用有限状态熵编码算法将低位残差编码数据解码为低位部分集合;根据所述高位部分集合和所述低位部分集合生成目标值集合;将所述目标值集合的每个值减去目标差值,得到像素残差集合,所述像素残差集合的中位数与所述目标差值之和为128的奇数倍。
17.一种计算机可读存储介质,存储有指令,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至8中任一项所述的方法。
CN202210289919.1A 2022-03-23 2022-03-23 一种图像压缩方法,图像解压方法和图像处理装置 Pending CN116847095A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210289919.1A CN116847095A (zh) 2022-03-23 2022-03-23 一种图像压缩方法,图像解压方法和图像处理装置
PCT/CN2023/082069 WO2023179464A1 (zh) 2022-03-23 2023-03-17 一种图像压缩方法,图像解压方法和图像处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210289919.1A CN116847095A (zh) 2022-03-23 2022-03-23 一种图像压缩方法,图像解压方法和图像处理装置

Publications (1)

Publication Number Publication Date
CN116847095A true CN116847095A (zh) 2023-10-03

Family

ID=88099881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210289919.1A Pending CN116847095A (zh) 2022-03-23 2022-03-23 一种图像压缩方法,图像解压方法和图像处理装置

Country Status (2)

Country Link
CN (1) CN116847095A (zh)
WO (1) WO2023179464A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118037870A (zh) * 2024-04-08 2024-05-14 中国矿业大学 一种兼容Zdepth的并行化深度图像压缩算法、装置及终端设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469069B2 (en) * 2003-05-16 2008-12-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding image using image residue prediction
US8428372B2 (en) * 2010-04-09 2013-04-23 The Boeing Company Method, apparatus and computer program product for compressing data
CN104202607B (zh) * 2014-08-26 2018-11-02 西安电子科技大学 一种图像无损压缩方法和电子设备
CN110691242B (zh) * 2019-09-16 2020-08-28 华中科技大学 一种大幅面遥感图像无损压缩方法
CN113240761A (zh) * 2021-05-10 2021-08-10 长光卫星技术有限公司 一种适用于遥感卫星的高位深图像无损压缩方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118037870A (zh) * 2024-04-08 2024-05-14 中国矿业大学 一种兼容Zdepth的并行化深度图像压缩算法、装置及终端设备
CN118037870B (zh) * 2024-04-08 2024-06-07 中国矿业大学 一种兼容Zdepth的并行化深度图像压缩算法、装置及终端设备

Also Published As

Publication number Publication date
WO2023179464A1 (zh) 2023-09-28

Similar Documents

Publication Publication Date Title
US7800519B2 (en) Method and apparatus for compressing and decompressing data
CN109379598B (zh) 一种基于fpga实现的图像无损压缩方法
CN107565971B (zh) 一种数据压缩方法及装置
US7554464B1 (en) Method and system for processing data having a pattern of repeating bits
CN101449462A (zh) 基于集合关联高速缓存映射技术的高速数据压缩
WO2023179464A1 (zh) 一种图像压缩方法,图像解压方法和图像处理装置
US11595057B2 (en) Reducing error in data compression
US20100166328A1 (en) Image encoder and image encoding method
WO2021012278A1 (zh) 一种数据的处理方法、系统、编码器及解码器
Funasaka et al. Adaptive loss‐less data compression method optimized for GPU decompression
US6518895B1 (en) Approximate prefix coding for data compression
US10601442B2 (en) Memory compression method and apparatus
WO2020113827A1 (zh) 图像压缩方法
CN108880559B (zh) 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备
US9479195B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device
CN110209598B (zh) 一种高速缓冲存储器、一种数据读写控制方法及系统
CN116302670A (zh) 编解码方法、编解码器、芯片、硬盘、通讯系统
US20220392117A1 (en) Data compression and decompression system and method thereof
Paixao et al. Matrix compression methods
CN115567058A (zh) 一种结合预测与编码的时序数据有损压缩方法
CN115603758A (zh) 一种客户号压缩和解压方法及装置
CN108848383A (zh) 一种视频、图像数据的压缩方法
CN114286104A (zh) 基于频域分层的图像压缩方法、设备及存储介质
Swanepoel et al. Multi-threaded compression of Earth observation time-series data
CN112200301B (zh) 卷积计算装置及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication