本发明专利技术公开了一种图像无损压缩方法及系统,属于图像处理技术领域,包括:获取原始图像;采用算术编码方法计算原始图像的残差,统计出残差中每个符号出现的次数,并存入数组counts[];根据数组counts[],循环组建出霍夫曼树,并使用限制长度的方法,对霍夫曼树各个叶节点进行编码,得到霍夫曼编码表;利用霍夫曼编码表对原始图像的残差进行压缩,得到编码数据以供解码处理。本发明专利技术提出融合算术编码和通用文本压缩方法的无损压缩方法,在实现在保障压缩率的同时,拥有通用文本方法的解码速度。
A lossless image compression method and system
【技术实现步骤摘要】
一种图像无损压缩方法及系统
本专利技术涉及图像处理
,特别涉及一种图像无损压缩方法及系统。
技术介绍
图像无损压缩是指数据经过压缩后信息不受损失,还能完全恢复到压缩前的原样,目前的图像无损压缩方案一般包括基于算术编码的方案和基于通用文本的方案,两者各有优缺点,算术编码方案具有较好的压缩率,但是解码速度却偏慢,通用文本的方案解码速度很快,但压缩率较低。如果将图像无损压缩算法移植到FPGA上,压缩图像的时候只能按行一行一行的压缩;如果使用通用文本的方法,由于按行压缩数据太少,导致压缩率将降低至1.0~1.2之间。
技术实现思路
本专利技术的目的在于克服现有技术存在的缺陷,在保证压缩率的同时,提高解码速度。为实现以上目的,本专利技术采用一种图像无损压缩方法,包括如下步骤:获取原始图像;采用算术编码方法计算原始图像的残差,并统计出残差中每个符号出现的次数,并存入数组counts[];根据数组counts[],循环组建出霍夫曼树,并使用限制长度的方法,对霍夫曼树各个叶节点进行编码,得到霍夫曼编码表;利用霍夫曼编码表对原始图像的残差进行压缩,得到编码数据以供解码处理。进一步地,所述采用算术编码方法计算原始图像的残差,并统计出残差中每个符号出现的次数,并存入数组counts[],包括:采用线性模型,基于所述原始图像上编码的像素位置,对待编码的值进行预测,得到待编码像素的预测值pred(X);根据待编码像素的预测值pred(X)和待编码像素X,计算所述原始图像的残差;统计出残差中每个符号出现的次数,并存入数组counts[]。进一步地,所述采用线性模型,基于所述原始图像上编码的像素位置,对待编码的值进行预测,得到待编码像素的预测值,包括:判断所述待编码像素X的位置;若所述待编码像素X为所述原始图像的首行像素的首像素,则所述待编码像素X的预测值pred(X)=0;若所述待编码像素X为所述原始图像的非首行像素的首像素,则所述待编码像素X的预测值pred(X)=B,B为X的上一行最近邻像素值;若所述待编码像素X为所述原始图像的剩余位置像素,则所述待编码像素X的预测值pred(X)=A,A为X的左最近邻像素值。进一步地,所述根据待编码像素的预测值和待编码像素,计算所述原始图像的残差,包括:利用所述待编码像素真实值减去所述待编码像素的预测值,得到所述原始图像的残差Rp=X-pred(X);令所述原始图像的残差Rp为Rm,Rm=(X-pred(X))mod2N;令为Rm为R,以使残差满足指数下降分布。进一步地,所述根据数组counts[],循环组建出霍夫曼树,并使用限制长度的方法,对霍夫曼树各个叶节点进行编码,得到霍夫曼编码表,包括:根据数组counts[],循环组建出所述霍夫曼树,并统计所述霍夫曼树各个叶节点的bit长度;使用限制长度的方法,对霍夫曼树各个叶节点进行编码,重新分配各个叶节点的bit长度;对重新分配bit长度的各个叶节点分配编码,得到霍夫曼编码表。进一步地,所述利用霍夫曼编码表对原始图像的残差进行压缩,得到编码数据以供解码处理,包括:利用所述霍夫曼编码表对所述原始图像的残差进行压缩,得到所述编码数据;对所述霍夫曼编码表进行压缩,得到压缩后的编码表;利用压缩后的编码表和编码数据进行解码。进一步地,所述对所述霍夫曼编码表进行压缩,得到压缩后的编码表,包括:结合ZSTD算法和游程编码,对所述霍夫曼编码表进行压缩,得到压缩后的编码表。进一步地,还包括:预先在线下训练得到所述霍夫曼编码表,并利用霍夫曼编码表对原始图像的残差进行压缩,得到编码数据以供解码处理。进一步地,所述预先在线下训练得到所述霍夫曼编码表,包括:按行读取训练数据,并以一行数据作为一个训练样本;对所述训练样本计算其残差;判断所述训练样本的残差是否只有一个符号;若是,则将所述训练样本去除;若否,则将所述训练样本保留,并计算保留下来的训练样本的残差符号出现的次数,存入数组counts[256];将数组counts[256]的所有值加1并归一化数组counts[256];根据数组counts[256],预先计算出所述霍夫曼编码表。另一方面,采用一种图像无损压缩系统,包括:获取模块、算术编码模块、文本编码模块和解码模块;获取模块用于获取原始图像;算术编码模块用于采用算术编码方法计算原始图像的残差,并统计出残差中每个符号出现的次数,并存入数组counts[];文本编码模块用于根据数组counts[],循环组建出霍夫曼树,并使用限制长度的方法,对霍夫曼树各个叶节点进行编码,得到霍夫曼编码表;解码模块用于利用霍夫曼编码表对原始图像的残差进行压缩,得到编码数据以供解码处理。与现有技术相比,本专利技术存在以下技术效果:由于单一的一类无损压缩算法无法兼顾压缩率和解码速度,本专利技术提出融合算术编码和通用文本压缩方法的无损压缩方法,首先使用算术编码算法对原始图像进行残差计算,然后使用霍夫曼编码压缩残差,实现在保障压缩率的同时,拥有通用文本方法的解码速度,且本方案采用受限制长度的霍夫曼编码,可方便向FPGA移植。附图说明下面结合附图,对本专利技术的具体实施方式进行详细描述:图1是一种图像无损压缩方法的流程示意图;图2是待编码的像素位于非首行像素的首像素示意图;图3是待编码的像素不在行首位置的示意图;图4是未变换前的残差Rp的概率分布图和变换后的残差Rm的概率分布图;图5是残差R的概率分布图;图6是霍夫曼编码中概率最小的符号中任意两个组成一个节点的示意图;图7是由节点组成的子叶示意图;图8是组建出的霍夫曼树的结构示意图;图9是改变后的霍夫曼树的结构示意图;图10是不同场景数据的缩略图;图11是一种图像无损压缩系统的结构示意图。具体实施方式为了更进一步说明本专利技术的特征,请参阅以下有关本专利技术的详细说明与附图。所附图仅供参考与说明之用,并非用来对本专利技术的保护范围加以限制。如图1所示,本实施例公开了一种图像无损压缩方法,包括如下步骤S1至S4:S1、获取原始图像;需要说明的是,该原始图像为一行图像数据或多行图像数据RowSymbols。S2、采用算术编码方法计算原始图像的残差,统计出残差中每个符号出现的次数,并存入数组counts[];S3、根据数组counts[],循环组建出霍夫曼树,并使用限制长度的方法,对霍夫曼树各个叶节点进行编码,得到霍夫曼编码表;S4、利用霍夫曼编码表对原始图像的残差进行压缩,得到编码数据以供解码处理。需要说明的是,本实施例中选用的通用文本方法是受限制长度的霍夫曼编码(本文档来自技高网...
【技术保护点】
1.一种图像无损压缩方法,其特征在于,包括:/n获取原始图像;/n采用算术编码方法计算原始图像的残差,统计出残差中每个符号出现的次数,并存入数组counts[];/n根据数组counts[],循环组建出霍夫曼树,并使用限制长度的方法,对霍夫曼树各个叶节点进行编码,得到霍夫曼编码表;/n利用霍夫曼编码表对原始图像的残差进行压缩,得到编码数据以供解码处理。/n
【技术特征摘要】
1.一种图像无损压缩方法,其特征在于,包括:
获取原始图像;
采用算术编码方法计算原始图像的残差,统计出残差中每个符号出现的次数,并存入数组counts[];
根据数组counts[],循环组建出霍夫曼树,并使用限制长度的方法,对霍夫曼树各个叶节点进行编码,得到霍夫曼编码表;
利用霍夫曼编码表对原始图像的残差进行压缩,得到编码数据以供解码处理。
2.如权利要求1所述的图像无损压缩方法,其特征在于,所述采用算术编码方法计算原始图像的残差,并统计出残差中每个符号出现的次数,并存入数组counts[],包括:
采用线性模型,基于所述原始图像上编码的像素位置,对待编码的值进行预测,得到待编码像素的预测值pred(X);
根据待编码像素的预测值pred(X)和待编码像素X,计算所述原始图像的残差;
统计出残差中每个符号出现的次数,并存入数组counts[]。
3.如权利要求2所述的图像无损压缩方法,其特征在于,所述采用线性模型,基于所述原始图像上编码的像素位置,对待编码的值进行预测,得到待编码像素的预测值,包括:
判断所述待编码像素X的位置;
若所述待编码像素X为所述原始图像的首行像素的首像素,则所述待编码像素X的预测值pred(X)=0;
若所述待编码像素X为所述原始图像的非首行像素的首像素,则所述待编码像素X的预测值pred(X)=B,B为X的上一行最近邻像素值;
若所述待编码像素X为所述原始图像的剩余位置像素,则所述待编码像素X的预测值pred(X)=A,A为X的左最近邻像素值。
4.如权利要求2所述的图像无损压缩方法,其特征在于,所述根据待编码像素的预测值和待编码像素,计算所述原始图像的残差,包括:
利用所述待编码像素真实值减去所述待编码像素的预测值,得到所述原始图像的残差Rp=X-pred(X);
令所述原始图像的残差Rp为Rm,Rm=(X-pred(X))mod2N;
令为Rm为R,以使残差满足指数下降分布。
5.如权利要求1所述的图像无损压缩方法,其特征在于,所述根据数组counts[],循环组建出霍夫曼树,并使用限制长度的方法,对霍夫曼树各个叶节点进行编码,得到霍夫曼编码表,包括:
根据数组counts[],循环组建出...
【专利技术属性】
技术研发人员:祖慈,邵云峰,李博川,
申请(专利权)人:合肥埃科光电科技有限公司,
类型:发明
国别省市:安徽;34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。