CN112118449B - 一种图像压缩与解压缩的方法及装置 - Google Patents

一种图像压缩与解压缩的方法及装置 Download PDF

Info

Publication number
CN112118449B
CN112118449B CN201910543823.1A CN201910543823A CN112118449B CN 112118449 B CN112118449 B CN 112118449B CN 201910543823 A CN201910543823 A CN 201910543823A CN 112118449 B CN112118449 B CN 112118449B
Authority
CN
China
Prior art keywords
color value
array
index
target image
image
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.)
Active
Application number
CN201910543823.1A
Other languages
English (en)
Other versions
CN112118449A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910543823.1A priority Critical patent/CN112118449B/zh
Publication of CN112118449A publication Critical patent/CN112118449A/zh
Application granted granted Critical
Publication of CN112118449B publication Critical patent/CN112118449B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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
    • H04N19/423Methods 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 characterised by memory arrangements

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

本发明实施例公开了一种图像压缩与解压缩方法及装置,该方法包括:获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组;根据目标图像的尺寸信息确定目标图像包含的像素位置;基于色值索引在索引值数组中的位置确定该色值索引对应的目标图像的像素位置;将索引值数组中的色值索引在色值索引数组中对应的色值信息作为该色值索引对应的像素位置的色值信息;根据目标图像的各个像素位置的色值信息还原目标图像。该方法还包括通过色值索引数组及索引值数组对目标图像进行压缩。采用本发明,可以减少图像大小的同时保证图像本身的展示效果,有效实现了图像的无损压缩,并减少图像在应用中的网络传输消耗。

Description

一种图像压缩与解压缩的方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种图像压缩与解压缩的方法及装置。
背景技术
随着互联网的急速发展,人们的娱乐、学习、工作等都离不开互联网,因此出现了越来越多的网站或应用等,以满足人们各方面的需求。正因为网站或应用等的增多,在同一领域一般都不止一个互联网产品,而使用该领域的互联网产品的人数一般不会变化特别大,对于这些互联网产品就需要从功能及视觉等方面进行优化以增强用户粘性,从而提高流量。从研究表明,人们一般对图像、视频等的记忆或印象更为深刻,也就使得更多的互联网产品会更加注重自己的页面展示效果,但是由于图像或视频等的显示效果越好,自身的存储体积就越大,所需要的传输耗时就越长,所以一般会对存储或传输的图像进行压缩操作,以节省存储体积,减少传输耗时。
其中,png图因其高压缩比的无损压缩而十分适合网络传输,但现有的png图存储方案并非最佳的存储策略,所以对其进行压缩处理,现如今大多都是采用png8格式处理图片以对png格式图像进行压缩,然而png8格式的图像只有一位alpha通道(不透明度),使得压缩后的图像只存在完全透明和完全不透明两种情况,虽然节省了存储空间,但不支持透明度的渲染,影响图像的显示效果。
发明内容
基于此,本申请提供了一种图像压缩与解压缩的方法及装置,以期提高对动态图像无损压缩的效果。
本发明实施例第一方面提供了一种图像解压缩方法,该方法包括:
获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,其中所述色值索引数组中包含所述目标图像中出现的所有N个色值信息,并且所述N个色值信息互不相同,所述索引值数组包括多个色值索引,每个色值索引均对应所述色值索引数组中的一个色值信息;
根据所述目标图像的尺寸信息确定所述目标图像包含的像素位置;
基于色值索引在所述索引值数组中的位置确定所述色值索引对应的目标图像的像素位置;
将所述索引值数组中的色值索引在所述色值索引数组中对应的色值信息作为所述色值索引对应的像素位置的色值信息;
根据所述目标图像的各个像素位置的色值信息还原所述目标图像。
其中,所述获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,包括:
从所述图像压缩文件中的第一指定位置获取目标图像的尺寸信息;
根据所述目标图像的尺寸信息确定索引值数组包括的色值索引的数量,根据所述色值索引的数量确定所述图像压缩文件的第二位置,从所述图像压缩文件的第二位置获取所述索引值数组;
根据所述第一指定位置和所述第二位置,确定所述图像压缩文件中所述第一指定位置与所述第二位置之间的第三位置,并从所述图像压缩文件的第三位置获取色值索引数组。
其中,所述图像压缩文件包括多个连续排序的像素点的色值信息;
所述第一指定位置为所述图像压缩文件中的第一指定像素点的色值信息,所述第一指定像素点为所述多个连续排序的像素点中的一个像素点或至少两个连续排序的像素点;
所述根据所述色值索引的数量确定所述图像压缩文件的第二位置包括:
根据所述色值索引的数量确定所述第二位置包含的像素点数量M,并将所述多个连续排序的像素点中包含第二指定像素点在内的连续排序的M个像素点的色值信息作为所述第二位置;
所述根据所述第一指定位置和所述第二位置,确定所述图像压缩文件中所述第一指定位置与所述第二位置之间的第三位置包括:
将第一指定像素点与所述第二位置包含的M个像素点之间的像素点的色值信息作为第三位置。
其中,所述获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组之前,还包括:
获取所述图像压缩文件对应的二次压缩数据,所述二次压缩数据包括多个连续排序的压缩像素点的色值信息;
根据所述多个连续排序的压缩像素点的色值信息得到多个压缩字典数组,其中每个所述压缩字典数组包括位置数值、匹配长度数值以及首位未匹配数值;
根据所述多个压缩字典数组中的第一压缩字典数组还原得到第一压缩子数组,根据第n个压缩字典数组以及当前的已还原压缩子数组还原得到第n压缩子数组,直至还原得到所有压缩字典数组对应的压缩子数组;
将所述所有压缩字典数组对应的压缩子数组进行顺序拼接得到压缩数组;
基于所述压缩数组确定所述图像压缩文件中的多个连续排序的像素点的色值信息。
本发明实施例第二方面提供了一种图像压缩方法,该方法包括:
获取目标图像中每个像素点的色值信息;
生成所述目标图像的色值索引数组,其中所述目标图像的色值索引数组中包含所述目标图像中出现的所有色值信息,并且所述色值索引数组中的色值信息互不相同;
记录所述目标图像中各个像素点的色值信息在所述色值索引数组中的色值索引,得到索引值数组,所述色值索引为所述各个像素点的色值信息在所述色值索引数组中的位置;
根据所述目标图像的尺寸信息、所述色值索引数组及所述索引值数组生成图像压缩文件。
其中,所述生成所述目标图像的色值索引数组,包括:
获取所述目标图像中第i个像素点的色值信息Si,将所述色值信息Si与所述色值索引数组进行对比;i为正整数,i不大于所述目标图像中像素点的个数;
若所述色值索引数组中不存在色值信息Si,则记录所述色值信息Si
若所述色值索引数组中存在色值信息Si,则获取下一个像素点的色值信息Si+1,直至获取到所述目标图像中所有像素点的色值信息;
将记录的色值信息组成色值索引数组。
其中,所述根据所述目标图像的尺寸信息、所述色值索引数组及所述索引值数组生成图像压缩文件,包括:
将所述目标图像的尺寸信息的数据格式转换为所述色值信息的数据格式;
将转换后的尺寸信息、所述色值索引数组及所述索引值数组进行拼接,生成所述目标图像对应的图像压缩文件。
其中,所述方法之后,还包括:
获取所述图像压缩文件中的各个数值,所述各个数值为多个连续排序的像素点的色值信息;
确定第一遍历窗口的长度与第二遍历窗口的长度,所述第一遍历窗口与所述第二遍历窗口间存在分隔符,所述第一遍历窗口与所述第二遍历窗口相邻;
将所述分隔符置于所述图像压缩文件的首位数值之前,确定所述图像压缩文件中所述第一遍历窗口与所述第二遍历窗口中相同数值的匹配长度数值,根据所述相同数值相对于所述分隔符的位置数值、所述匹配长度数值及首位未匹配数值生成第一个压缩字典数组,所述首位未匹配数值为所述相同数值后的第一个数值;
移动所述分隔符L位数值,生成下一个压缩字典数组,直至所述第一遍历窗口与所述第二遍历窗口间的所述分隔符位于所述像素差异数据的末尾字符之后,其中L是基于所述匹配长度数值所确定的;
根据生成的各个压缩字典数组,生成所述图像压缩文件对应的二次压缩数据,所述二次压缩数据包括多个连续排序的压缩像素点的色值信息。
本发明实施例第三方面提供了一种图像解压缩装置,包括:
第一获取模块,用于获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,其中所述色值索引数组中包含所述目标图像中出现的所有N个色值信息,并且所述N个色值信息互不相同,所述索引值数组包括多个色值索引,每个色值索引均对应所述色值索引数组中的一个色值信息;
第一确定模块,用于根据所述目标图像的尺寸信息确定所述目标图像包含的像素位置;
所述第一确定模块,还用于基于色值索引在所述索引值数组中的位置确定所述色值索引对应的目标图像的像素位置;
设置模块,用于将所述索引值数组中的色值索引在所述色值索引数组中对应的色值信息作为所述色值索引对应的像素位置的色值信息;
第一生成模块,用于根据所述目标图像的各个像素位置的色值信息还原所述目标图像。
其中,所述第一获取模块包括:
获取单元,用于从所述图像压缩文件中的第一指定位置获取目标图像的尺寸信息;
确定单元,用于根据所述目标图像的尺寸信息确定索引值数组包括的色值索引的数量,根据所述色值索引的数量确定所述图像压缩文件的第二位置;
所述获取单元,还用于从所述图像压缩文件的第二位置获取所述索引值数组;
所述确定单元,还用于根据所述第一指定位置和所述第二位置,确定所述图像压缩文件中所述第一指定位置与所述第二位置之间的第三位置;
所述获取单元,还用于从所述图像压缩文件的第三位置获取色值索引数组。
其中,所述图像压缩文件包括多个连续排序的像素点的色值信息;
所述第一指定位置为所述图像压缩文件中的第一指定像素点的色值信息,所述第一指定像素点为所述多个连续排序的像素点中的一个像素点或至少两个连续排序的像素点;
在所述根据所述色值索引的数量确定所述图像压缩文件的第二位置方面,所述确定单元包括:
第一确定子单元,用于根据所述色值索引的数量确定所述第二位置包含的像素点数量M;
第二确定子单元,用于将所述多个连续排序的像素点中包含第二指定像素点在内的连续排序的M个像素点的色值信息作为所述第二位置;
在所述根据所述第一指定位置和所述第二位置,确定所述图像压缩文件中所述第一指定位置与所述第二位置之间的第三位置方面,所述确定单元包括:
第三确定子单元,用于将第一指定像素点与所述第二位置包含的M个像素点之间的像素点的色值信息作为第三位置。
其中,所述装置还包括:
第二获取模块,用于获取所述图像压缩文件对应的二次压缩数据,所述二次压缩数据包括多个连续排序的压缩像素点的色值信息;
第二生成模块,用于根据所述多个连续排序的压缩像素点的色值信息得到多个压缩字典数组,其中每个所述压缩字典数组包括位置数值、匹配长度数值以及首位未匹配数值;
还原模块,用于根据所述多个压缩字典数组中的第一压缩字典数组还原得到第一压缩子数组,根据第n个压缩字典数组以及当前的已还原压缩子数组还原得到第n压缩子数组,直至还原得到所有压缩字典数组对应的压缩子数组;
拼接模块,用于将所述所有压缩字典数组对应的压缩子数组进行顺序拼接得到压缩数组;
第二确定模块,用于基于所述压缩数组确定所述图像压缩文件中的多个连续排序的像素点的色值信息。
本发明实施例第四方面提供了一种图像压缩装置,包括:
第一获取模块,用于获取目标图像中每个像素点的色值信息;
第一生成模块,用于生成所述目标图像的色值索引数组,其中所述目标图像的色值索引数组中包含所述目标图像中出现的所有色值信息,并且所述色值索引数组中的色值信息互不相同;
记录模块,用于记录所述目标图像中各个像素点的色值信息在所述色值索引数组中的色值索引,得到索引值数组,所述色值索引为所述各个像素点的色值信息在所述色值索引数组中的位置;
第二生成模块,用于根据所述目标图像的尺寸信息、所述色值索引数组及所述索引值数组生成图像压缩文件。
其中,所述第一生成模块包括:
获取单元,用于获取所述目标图像中第i个像素点的色值信息Si,将所述色值信息Si与所述色值索引数组进行对比;i为正整数,i不大于所述目标图像中像素点的个数;
记录单元,用于若所述色值索引数组中不存在色值信息Si,则记录所述色值信息Si
所述获取单元,还用于若所述色值索引数组中存在色值信息Si,则获取下一个像素点的色值信息Si+1,直至获取到所述目标图像中所有像素点的色值信息;
组成单元,用于将记录的色值信息组成色值索引数组。
其中所述第二生成模块,包括:
转换单元,用于将所述目标图像的尺寸信息的数据格式转换为所述色值信息的数据格式;
生成单元,用于将转换后的尺寸信息、所述色值索引数组及所述索引值数组进行拼接,生成所述目标图像对应的图像压缩文件。
其中,所述装置还包括:
第二获取模块,用于获取所述图像压缩文件中的各个数值,所述各个数值为多个连续排序的像素点的色值信息;
第一确定模块,用于确定第一遍历窗口的长度与第二遍历窗口的长度,所述第一遍历窗口与所述第二遍历窗口间存在分隔符,所述第一遍历窗口与所述第二遍历窗口相邻;
第二确定模块,用于将所述分隔符置于所述图像压缩文件的首位数值之前,确定所述图像压缩文件中所述第一遍历窗口与所述第二遍历窗口中相同数值的匹配长度数值;
第三生成模块,用于根据所述相同数值相对于所述分隔符的位置数值、所述匹配长度数值及首位未匹配数值生成第一个压缩字典数组,所述首位未匹配数值为所述相同数值后的第一个数值;
所述第三生成模块,还用于移动所述分隔符L位数值,生成下一个压缩字典数组,直至所述第一遍历窗口与所述第二遍历窗口间的所述分隔符位于所述像素差异数据的末尾字符之后,其中L是基于所述匹配长度数值所确定的;
压缩模块,用于根据生成的各个压缩字典数组,生成所述图像压缩文件对应的二次压缩数据,所述二次压缩数据包括多个连续排序的压缩像素点的色值信息。
本发明实施例第五方面提供了一种电子设备,其特征在于,包括处理器、存储器、收发器;
所述处理器分别与所述存储器和所述收发器相连,其中,所述收发器用于数据交互,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本发明实施例中第一方面所述的图像解压缩方法或执行如本发明实施例中第二方面所述的图像压缩方法。
本发明实施例第六方面提供了计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如本发明实施例中第一方面所述的图像解压缩方法或执行如本发明实施例中第二方面所述的图像压缩方法。
实施本发明实施例,将具有如下有益效果:
本发明实施例在获取到目标图像中每个像素点的色值信息,该色值信息为对应像素点的RGBA值,提取该目标图像中互不相同的色值信息,将互不相同的色值信息组成色值索引数组,具体来说是将目标图像中的所有不同种类的色值信息组成色值索引数组,该不同种类具体是指RGBA值不同,记录目标图像中各个像素点的色值信息在色值索引数组中的色值索引,得到索引值数组,该色值索引为对应色值信息在色值索引数组中的位置,一个色值索引对应一个色值信息,根据目标图像的尺寸信息、色值索引数组及索引值数组生成图像压缩文件,从而通过该图像压缩文件将目标图像中的每个像素点的色值信息都存储下来,有效实现了对目标图像的压缩,且不影响图像的显示效果。并且根据索引值数组中每个色值索引在色值索引数组中对应的色值信息,并结合目标图像的尺寸信息,从而可以确定目标图像中每个像素点的像素位置,及在该像素位置上的色值信息,实现对目标图像压缩后的图像压缩文件的解压缩操作,实现对目标图像的无损解压,对png图像进行进一步的无损压缩,减少png图像的存储大小,更有利于png图像的网络传输和存储。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1是本发明实施例提供的一种图像压缩及解压缩过程的交互示意图;
图2是本发明实施例提供的一种图像解压缩示意图;
图3是本发明实施例提供的一种图像解压缩的方法流程示意图;
图4是本发明实施例提供的一种图像压缩文件中的数据示意图;
图5是本发明实施例提供的一种图像解压缩方法的具体实现流程示意图;
图6是本发明实施例提供的一种字符串的还原示意图;
图7是本发明实施例提供的一种图像压缩流程示意图;
图8是本发明实施例提供的一种字符串的压缩示意图;
图9是本发明实施例提供的一种图像压缩场景示意图;
图10是本发明实施例提供的一种图像解压缩装置;
图11是本发明实施例提供的一种图像压缩装置;
图12是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
其中,本发明实施例中所提到的一些专有名词的解释如下:
1、RGBA,Red-Green-Blue-Alpha的色彩空间,仅仅是RGB模型附加了额外的信息,采用的颜色是RGB,可以属于任何一种RGB颜色空间,使得alpha渲染和alpha合成变得可能,该alpha来源于线性插值方程αA+(1-α)B所用的希腊字母。其中,红色通道Red、绿色通道Green、蓝色通道Blue的取值范围为0~255,不透明度Alpha的取值范围可以是0~1(表示不透明度的百分比)或0~255,在本发明实施例中使用0~255的取值范围。
2、像素,为整个图像中不可分割的单位或元素,是以一个单一颜色的小格存在,每一个点阵图像包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。
3、nodejs,是一个让JavaScript运行在服务端的开发平台,对一些特殊用例进行优化,提供替代的应用程序编程接口(Application Programming Interface,API)。
4、png:便携式网络图形(Portable Network Graphics,png)是一种无损压缩的位图图形格式,支持索引、灰度、RGB三种颜色方案及alpha通道等特性。
请参见图1,是本发明实施例提供的一种图像压缩及解压缩过程的交互示意图。如图1所示,当服务器10接收到显示界面20发送的目标图像201时,通过对目标图像201进行图像压缩,通过获取目标图像201中的各个像素点的色值信息,该色值信息为对应的像素点的RGBA值,每个色值信息包括4个0~255范围内的数值,分别表示该像素点的R值(red通道)、G值(green通道)、B值(blue通道)及A值(alpha通道),提取该目标图像201中各个像素点的色值信息中互不相同的色值信息,组成色值索引数组2022。并根据目标图像201中的像素点的色值信息在色值索引数组中的位置得到该像素点的色值索引,将目标图像201中各个像素点的色值索引组成索引值数组2023,从而根据目标图像的尺寸信息2021、色值索引数组2022及索引值数组2023组成目标图像201对应的图像压缩文件202,将该图像压缩文件202存储在服务器10中,用于网络间传输。
当服务器10接收到显示界面20对目标图像201的显示请求时,对目标图像201对应的图像压缩文件202进行图像解压缩,以得到目标图像201,通过该显示界面20显示出来。其中,图像压缩文件202包括目标图像201的尺寸信息2021、色值索引数组2022及索引值数组2023。具体的参见图2,图2是本发明实施例提供的一种图像解压缩示意图。如图2所示,当服务器10获取到图像压缩文件202后,获取该图像压缩文件202中的目标图像的尺寸信息2021,根据该目标图像的尺寸信息2021确定目标图像的形状,即确定目标图像轮廓2011,具体是确定目标图像的宽和高,可以认为是确定目标图像的二维数组,用以得到目标图像中各个像素点的像素位置。再获取目标图像中的色值索引数组2022和索引值数组2023,依次读取索引值数组2023中的色值索引,根据每个色值索引在色值索引数组2022中对应的色值信息,将该色值索引对应的色值信息设置为对应的目标图像中的像素位置的色值信息,得到目标图像中的图案信息2012,从而将图像压缩文件202还原为目标图像201,将该目标图像201发送给显示界面20进行显示。
进一步地,请参见图3,本发明实施例提供的一种图像解压缩的方法流程示意图。如图3所示,上述方法包括如下步骤:
步骤S301,获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组。
具体的,图像压缩文件为对目标图像进行压缩后得到的,该图像压缩文件包括目标图像的尺寸信息、色值索引数组及索引值数组,该目标图像的尺寸信息为目标图像的宽度信息和高度信息,色值索引数组中包含目标图像中出现的所有N个色值信息,并且N个色值信息互不相同,且目标图像中包含的色值信息均存在于色值索引数组中,索引值数组包括多个色值索引,每个色值索引均对应色值索引数组中的一个色值信息。
具体的,参见图4,图4是本发明实施例提供的一种图像压缩文件中的数据示意图,该图像压缩文件202包括目标文件的尺寸信息2021、色值索引数组2022及索引值数组2023,其中目标文件的尺寸信息2021,包括高位x4011、低位x4012、高位y4013及低位y4014,其中高位x4011和低位x4012表示目标图像的高度信息,高位y4013和高位y4014表示目标图像的宽度信息;色值索引数组2022包括多个互不相同的色值信息,该多个互不相同的色值信息包含了目标图像中出现的所有色值信息,每个色值信息包括R值4021、G值4022、B值4023及A值4024;索引值数组2023包括多个色值索引,该色值索引的数量为目标图像中包含的像素点的数量,每个色值索引对应色值索引数组2022中的一个色值信息。举例来说,索引值数组2023中的色值索引1可以在色值索引数组2022中找到唯一对应的一个色值信息,即色值索引数组2022中的第一个色值信息。
其中,当图像压缩文件为图像格式时,通过nodejs对该图像压缩文件进行解析,提取该图像压缩文件中每个像素点的色值信息,该色值信息为对应像素点的RGBA值,即每个色值信息包括四个数值,将每个像素点的色值信息组成的数值数组进行划分,划分成三部分,一部分为目标图像的尺寸信息,一部分为目标图像的色值索引数组,还有一部分为目标图像的索引值数组。
步骤S302,根据目标图像的尺寸信息确定目标图像包含的像素位置。
具体的,根据获取到的目标图像的尺寸信息确定该目标图像的像素位置,可以参见图2中所示由目标图像的尺寸信息2021确定如目标图像轮廓2011所示中各个像素点对应的像素位置。确定的目标图像中的像素点对应的像素位置,包括(1,1)表示目标图像中第一行的第一个像素点对应的像素位置、(1,2)表示目标图像中中第一行的第二个像素点对应的像素位置,(1,3)表示目标图像中第一行的第三个像素点对应的像素位置,以此类推,其中(u,v)表示目标图像中第u行的第v个像素点对应的像素位置,u、v均为正整数,u的值不大于该目标图像的高度信息,该高度信息是通过高位x4011和低位x4012得到,v的值不大于该目标图像的宽度信息,该宽度信息是通过高位y4013和高位y4014得到。
其中,目标图像的高度信息表示目标图像中每一列所包含的像素点的个数,目标图像的宽度信息表示目标图像中每一行所包含的像素点的个数。举例来说,若目标图像为300*500大小,则该目标图像的宽度信息为500像素,即每一行包含500个像素点;该目标图像的高度信息为300像素,即每一列包含300个像素点,该目标图像包含300*500个像素点。
步骤S303,基于色值索引在索引值数组中的位置确定色值索引对应的目标图像中的像素位置。
具体的,基于色值索引在索引值数组中的位置确定色值索引对应的目标图像中的像素位置,该像素位置为每个像素点在目标图像中的所在行和所在列。可以认为,索引值数组中的第一个色值索引对应的目标图像中的像素位置为(1,1),索引值数组中的第二个色值索引对应的目标图像中的像素位置为(1,2),索引值数组中的第三个色值索引对应的目标图像中的像素位置为(1,3),…,索引值数组中的最后一个色值索引对应的目标图像中的像素位置为(c,d)。其中,c的值等于目标图像中的高度信息,d的值等于目标图像中的宽度信息,表示该目标图像中的最后一行最后一列。
步骤S304,将索引值数组中的色值索引在色值索引数组中对应的色值信息作为该色值索引对应的像素位置的色值信息。
具体的,根据索引值数组中的色值索引,在色值索引数组中获取该色值索引对应的色值信息,将该色值信息作为该色值索引对应的像素位置的色值信息。具体来说,该色值索引为色值信息在色值索引数组中的位置,根据该色值索引获取在色值索引数组中的对应位置处的色值信息,将该色值信息作为该色值索引在索引值数组中的位置对应的像素位置的色值信息。
举例来说,假设在索引值数组中的第一个位置处的色值索引为5,则在色值索引数组中获取第五个色值信息,将第五个色值信息作为索引值数组中的第一个位置对应的像素位置(1,1)的色值信息。
步骤S305,根据目标图像的各个像素位置的色值信息还原目标图像。
具体的,根据步骤S304中得到的各个像素位置的色值信息进行绘制,进行还原得到目标图像。其中,各个像素位置组成了目标图像的所有像素位置,在得到目标图像中各个像素位置的色值信息后,绘制该目标图像的各个像素点,以得到目标图像。
本发明实施例提供了一种图像解压缩方法,通过获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,色值索引数组中包括了目标图像中出现的所有不同的色值信息,即包括了目标图像中出现的所有颜色,且每种颜色出现一次,索引值数组包括目标图像中各个像素点的色值信息对应的色值索引,该色值索引为对应的色值信息在色值索引数组中的位置。从而根据目标图像的尺寸信息确定目标图像的宽度和高度,得到每个像素点的像素位置,通过该像素位置在索引值数组中对应的色值索引在色值索引数组中获取色值信息,从而得到该像素位置应该填充的色值信息,进而绘制目标图像,实现对目标图像的无损解压还原,有效提高图像的无损压缩。
其中,本发明实施例提供了一种图像解压缩方法的具体实现流程示意图。如图5所示,该方法包括如下步骤:
步骤S501,将图像压缩文件对应的二次压缩数据进行解压,得到图像压缩文件中的各个像素点的色值信息。
具体的,若图像压缩文件在压缩过程中进行了二次压缩,得到了对应的二次压缩数据,在解压过程中需要对该二次压缩数据进行解压操作。具体的,该二次压缩数据是以图像格式进行存储的,获取到图像压缩文件对应的二次压缩数据,该二次压缩数据包括多个连续排序的压缩像素点的色值信息,根据多个连续排序的压缩像素点的色值信息得到多个压缩字典数组,其中每个压缩字典数组包括位置数值、匹配长度数值以及首位未匹配数值;根据多个压缩字典数组中的第一压缩字典数组还原得到第一压缩子数组,根据第n个压缩字典数组以及当前的已还原压缩子数组还原得到第n压缩子数组,直至还原得到所有压缩字典数组对应的压缩子数组;将所有压缩字典数组对应的压缩子数组进行顺序拼接得到压缩数组;基于压缩数组确定图像压缩文件中的多个连续排序的像素点的色值信息。
具体的,该二次压缩数据为图像压缩文件对应的二次压缩图像中的多个连续排序的压缩像素点的色值信息,通过nodejs对二次压缩图像进行解析,获取该二次压缩图像中每个压缩像素点的色值信息,具体是获取每个压缩像素点的RGBA值,根据该每个压缩像素点的RGBA值进行解压缩,以得到图像压缩文件中的多个连续排序的像素点的色值信息。
由于对于图像格式来说,每个像素点的色值信息为RGBA值,包括四个数值,而每个压缩字典数组包括三个数值,分别为位置数值、匹配长度数值以及首位未匹配数值,其中,位置数值为出现相同数值时的起始位置,该位置数值是对于已还原的数值中最后一个数值而言的相对位置,匹配长度数值为出现的相同数值的数量,首位未匹配数值为出现的相同数值之后的首位数值。因此,一种可能的情况,一个像素点存储一个压缩字典数组,并在R值或A值处补零,在该情况下,获取每个像素点的色值信息,并根据存储时的设置,从每个像素点的色值信息中提取每个像素点中存储的压缩字典数组,对提取到的各个压缩字典数组进行还原操作,得到各个压缩字典数组对应的压缩子数组,将得到的各个压缩子数组进行顺序拼接得到压缩数组,得到的压缩数组中每四个数值组成一个像素点的色值信息,从而确定图像压缩文件中的多个连续排序的像素点的色值信息;另一种可能的情况,将各个压缩字典数组中的数值依次写入二次压缩图像中的像素点中,使得一个像素点的色值信息中不止包括一个压缩字典数组,举例来说,就是二次压缩图像中的第一个像素点的色值信息中R值、G值、B值组成第一个压缩字典数组,第一个像素点的色值信息中A值和第二个像素点的色值信息中R值及G值组成第二个压缩字典数组,以此类推,每三个连续排序的数值组成一个压缩字典数组,将每个压缩字典数组进行还原,得到各个压缩字典数组对应的压缩子数组,将得到的各个压缩子数组进行顺序拼接得到压缩数组,得到的压缩数组中每四个数值组成一个像素点的色值信息,从而确定图像压缩文件中的多个连续排序的像素点的色值信息。
其中,参见图6,图6是本发明实施例提供的一种字符串的还原示意图,以一个字符串的还原过程为例,假定得到了[(,0,a)、(1,1,c)、(3,4,b)、(3,3,a)、(1,1,)]的五个压缩字典数组,根据第一个压缩字典数组(,0,a)得到对应的压缩子数组(a);根据第二个压缩字典数组(1,1,c)及当前已还原的压缩子数组(a),从a开始第一位的字符a开始重复一个字符,从而得到第二个压缩子数组(a,c);根据第三个压缩字典数组(3,4,b)及当前已还原的压缩子数组(a,a,c),从c开始第三位的字符a开始重复四个字符,从而得到第三个压缩子数组(a,a,c,a,b);同理得到第四个压缩字典数组(3,3,a)对应的第四个压缩子数组(c,a,b,a);得到第五个压缩字典数组(1,1,)对应的第五个压缩子数组(a)。将得到的各个压缩子数组进行拼接得到压缩数组(a,a,c,a,a,c,a,b,c,a,b,a,a),从而得到还原后的字符串。其中,对上述二次压缩数据进行还原,得到图像压缩文件中的多个连续排序的像素点的色值信息如该图6中所示字符串的还原过程,在此不再进行赘述。
步骤S502,从图像压缩文件的第一指定位置获取目标图像的尺寸信息,根据该目标图像的尺寸信息获取色值索引数组及索引值数组。
具体的,从图像压缩文件中的第一指定位置获取目标图像的尺寸信息;根据目标图像的尺寸信息确定索引值数组包括的色值索引的数量,根据色值索引的数量确定图像压缩文件的第二位置,从图像压缩文件的第二位置获取索引值数组;根据第一指定位置和所述第二位置,确定图像压缩文件中所述第一指定位置与第二位置之间的第三位置,并从图像压缩文件的第三位置获取色值索引数组。
具体的,第一指定位置为图像压缩文件中的第一指定像素点的色值信息,该第一指定像素点为多个连续排序的像素点中的一个像素点或至少两个连续排序的像素点;根据色值索引的数量确定图像压缩文件的第二位置包含的像素点数量M,并将多个连续排序的像素点中包含第二指定像素点在内的连续排序的M个像素点的色值信息作为第二位置;将第一指定像素点与第二位置包含的M个像素点之间的像素点的色值信息作为第三位置。
举例来说,如图4中所示,若第一指定像素点为第一个像素点,获取该第一个像素点的色值信息,该色值信息中的RGBA值为目标图像的尺寸信息,其中该第一个像素点的R值为高位x4011,G值为低位x4012,B值为高位y4013,A值为低位y4014,根据R值和G值得到该目标图像的高度信息c,c的值为(255*高位x的值+低位x的值),根据B值和A值得到该目标图像的宽度信息d,d的值为(255*高位y的值+低位y的值)。根据该目标图像的尺寸信息确定索引值数组包括的色值索引的数量为(c*d),并根据色值索引的数量(c*d)确定第二位置包含的像素点数量M。将图像压缩文件中除第一指定像素点及第二位置包含的M个像素点之间的像素点的色值信息作为第三位置,该第三位置为色值索引数组。其中,由于色值索引的取值范围不确定,所以在得到第三位置时,需要将第三位置中包含的像素点的数量与色值索引的取值范围进行对比,以确定色值索引的取值范围及第三位置。例如,若目标图像的尺寸信息为300*500时,先假定色值索引的取值范围为0~255,每个色值索引的存储位数为8位,在该假定情况下,每四个色值索引组成一个像素点的色值信息,从而该索引值数组的第二位置包含的像素点数量M为(300*500/4=37500),根据第一指定像素点和第二位置包含的M个像素点确定第三位置,若第三位置包含的像素点的数量不大于256,则表示色值索引的存储位数为8位,若第三位置包含的像素点的数量大于256,则表示色值索引的存储位数不为8位,则假设该色值索引的存储位数为16位,直至确定色值索引的存储位数及第三位置包含的像素点的数量,从而从图像压缩数组中获取到色值索引数组及索引值数组。
在这里假定获取到的图像压缩文件包含的多个连续排序的像素点的数量为37741,第一指定位置为(1,45,1,245),则确定该目标图像的高度信息为(255*1+45=300)像素,宽度信息为(255*1+245=500)像素,根据高度信息及宽度信息确定第二位置包含的像素点的数量M为(300*500/4=37500),并根据第一指定像素点及第二位置包含的M个像素点确定色值索引数组中包含的像素点数量为(37741-1-37500=240),即目标图像中存在240种颜色,从而得到目标图像的尺寸信息、色值索引数组及索引值数组,该目标图像的尺寸信息为第一个像素点的色值信息,色值索引数组由从第二个像素点开始连续顺序240个像素点的色值信息组成,索引值数组由从第242个像素点开始连续顺序37500个像素点的色值信息组成。
步骤S503,根据目标图像的尺寸信息确定目标图像包含的像素位置。
具体的,根据目标图像的尺寸信息确定目标图像中包含的各个像素点对应的像素位置,具体参见图3中步骤S302所示。
以步骤S502中所示例子,若确定了目标图像为300*500大小的图像,则可以确定该目标图像中包含的各个像素点对应的像素位置包括(1,1),(1,2),…,(1,500),……,(300,500)。
步骤S504,基于色值索引在索引值数组中的位置确定色值索引对应的目标图像中的像素位置。
具体的,基于色值索引在索引值数组中的位置确定该位置处的色值索引对应目标图像中的像素位置,具体参见图3中步骤S303所示。
举例来说,色值索引数组中的第一个色值索引对应的目标图像中的像素位置为(1,1),色值索引数组中的第二个色值索引对应的目标图像中的像素位置为(1,2),…,色值索引数组中的第[(u-1)*b+v]个色值索引对应的目标图像中的像素位置为(u,v),从而基于色值索引在色值索引数组中的位置确定色值索引在目标图像中的对应像素位置,其中b为目标图像的宽度。
步骤S505,将索引值数组中的色值索引在色值索引数组中对应的色值信息作为该色值索引对应的像素位置的色值信息。
具体的,根据索引值数组中的色值索引在色值索引数组中对应位置处存储的色值信息,将该色值信息确定为该色值索引对应的像素位置的色值信息,具体参见图3中步骤S304所示。
举例来说,假定步骤S502中确定的目标图像的索引值数组包括(1,1,2,3,4,…,230),则该索引值数组中第一个色值索引1在色值索引数组中对应第一个色值信息,将第一个色值信息作为该第一个色值索引对应的像素位置(1,1)的色值信息;该索引值数组中第二个色值索引1在色值索引数组中对应第一个色值信息,将第一个色值信息作为该第二个色值索引对应的像素位置(1,2)的色值信息;该索引值数组中第三个色值索引2在色值索引数组中对应第二个色值信息,将第二个色值信息作为该第三个色值索引对应的像素位置(1,3)的色值信息;以此类推,直至确定该索引值数组中最后一个色值索引230在色值索引数组中对应第230个色值信息,将第230个色值信息作为最后一个色值索引对应的像素位置(300,500)的色值信息。
步骤S506,根据目标图像的各个像素位置的色值信息还原目标图像。
具体的,得到目标图像中各个像素点对应的像素位置的色值信息,依次将各个像素位置的色值信息绘制到对应的像素位置上,以得到目标图像。具体可以通过nodejs中的图像绘制方法进行绘制,如canvas方法中的图像处理应用程序编程接口(ApplicationProgramming Interface,API)。
本发明实施例在对目标图像进行压缩时,先通过提取目标图像中的不重复色值信息及每个像素点的色值索引得到图像压缩文件,再对图像压缩文件进行二次压缩,当获取到图像压缩文件对应的二次压缩数据后,对该二次压缩数据进行解压缩处理,得到图像压缩文件中包含的多个连续顺序的像素点的色值信息,从而从该图像压缩文件中提取目标图像的尺寸信息、色值索引数组及索引值数组,通过目标图像的尺寸信息确定该目标图像中各个像素点的像素位置,该像素位置与索引值数组中的各个位置一一对应,通过获取每个像素位置在索引值数组对应位置处的色值索引,并根据该色值索引在色值索引数组中对应位置处的色值信息确定该像素位置的色值信息,从而确定目标图像中每个像素位置的色值信息,以得到目标图像。从而通过实现对图像压缩文件的二次压缩数据进行解压缩,并对图像压缩文件进行还原得到目标图像,从而进一步提高了图像的压缩率,减少了图像的存储大小。
请参见图7,图7是本发明实施例提供的一种图像压缩流程示意图。如图7所示,该方法包括如下步骤:
步骤S701,获取目标图像中每个像素点的色值信息。
具体的,获取到目标图像后,对目标图像进行解析,得到该目标图像中每个像素点的色值信息,该色值信息为对应像素点的RGBA值。具体可以认为是获取到目标图像中每个像素位置的RGBA值,在获取每个像素点的色值信息的同时,可以得到该目标图像的尺寸信息,包括目标图像的高度信息和宽度信息,其中,每个像素点对应的像素位置是根据目标图像的尺寸信息得到的。
举例来说,假定目标图像为300*500大小的图像,通过对目标图像进行解析,提取目标图像中每个像素点的色值信息,同时在获取目标图像包含的各个像素点的色值信息的时获取到目标图像的高度信息为300,宽度信息为500,得到每个像素点对应的像素位置的色值信息。假定获取到目标图像中第一个像素点的像素位置(1,1)处的色值信息为(255,255,255,245),第二个像素点的像素位置(1,2)处的色值信息为(255,255,255,245),第三个像素点的像素位置(1,3)处的色值信息为(255,240,232,210),…,最后一个像素点的像素位置(300,500)处的色值信息为(26,30,45,50)。
步骤S702,生成目标图像的色值索引数组。
具体的,根据目标图像中各个像素点的色值信息,提取目标图像中互不相同的色值信息,将这些互不相同的色值信息组成目标图像的色值索引数组,可以认为,该色值索引数组中包含目标图像中出现过的所有色值信息,且每种色值信息在色值索引数组中存储一次,即色值索引数组中的色值信息互不相同。
具体的,获取目标图像中第i个像素点的色值信息Si,将色值信息Si与所述色值索引数组进行对比;i为正整数,i不大于目标图像中像素点的个数;若色值索引数组中不存在色值信息Si,则记录色值信息Si;若色值索引数组中存在色值信息Si,则获取下一个像素点的色值信息Si+1,直至获取到目标图像中所有像素点的色值信息;将记录的色值信息组成色值索引数组。
举例来说,对于步骤S702中的例子,获取到第一个像素点的像素位置(1,1)处的色值信息(255,255,255,245),与色值索引数组进行对比后,色值索引数组中不存在该色值信息,则在该色值索引数组中的第一个位置处存储色值信息(255,255,255,245);获取到第二个像素点的像素位置(1,2)处的色值信息为(255,255,255,245),在色值索引数组中存在,则获取第三个像素点的像素位置(1,3)处的色值信息为(255,240,232,210),与色值索引数组进行对比后,色值索引数组中不存在该色值信息,则在该色值索引数组中的第二个位置处存储色值信息(255,240,232,210),…,直至获取到最后一个像素点的像素位置(300,500)处的色值信息为(26,30,45,50),在色值索引数组中存在,结束获取色值信息的过程,生成色值索引数组。
步骤S703,记录目标图像中各个像素点的色值信息在色值索引数组中的色值索引,得到索引值数组。
具体的,获取目标图像中各个像素点的色值信息,根据像素位置从色值索引数组中查找该像素位置的色值信息,确定该色值信息在色值索引数组中的位置,以得到该色值信息对应的色值索引,将该色值索引作为该像素位置的色值索引,根据各个像素点对应的色值索引组成索引值数组。
举例来说,当获取到第一个像素点的色值信息为色值索引数组中的第一个色值信息时,则该第一个像素点的色值索引为1;获取到第二个像素点的色值信息为色值索引数组中的第一个色值信息时,则该第二个像素点的色值索引为1;获取到第三个像素点的色值信息为色值索引数组中的第二个色值信息时,则该第三个像素点的色值索引为2;…;获取到最后一个像素点的色值信息为色值索引数组中的第230个色值信息时,则最后一个像素点的色值索引为230,从而根据各个像素点的色值索引生成索引值数组(1,1,2,…,230)。
其中,步骤S702和步骤S703可以同时执行,当获取到目标图像中的第i个像素点的色值信息Si,将色值信息Si与所述色值索引数组进行对比。若色值索引数组中存在该色值信息Si,则将该色值信息Si在色值索引数组中的位置作为第i个像素点的色值索引;若色值索引数组中不存在该色值信息Si,则将该色值信息Si写入色值索引数组中,并将该色值信息Si在色值索引数组中写入的位置作为第i个像素点的色值索引。获取第(i+1)个像素点的色值信息Si+1,执行上述更新色值索引数组及索引值数组的过程,直至获取到目标图像中的所有色值信息,得到该目标图像的色值索引数组及索引值数组。
步骤S704,根据目标图像的尺寸信息、色值索引数组及索引值数组生成图像压缩文件。
具体的,将目标图像的尺寸信息、色值索引数组及索引值数组进行拼接,生成图像压缩文件。当图像压缩文件以图像格式进行存储时,由于图像中每个色值信息包含的各个数值的取值范围为0~255,由于目标图像的尺寸一般情况下大于255,因此需要对该目标图像的尺寸信息进行数据格式转换。在本方案中,通过使用一个像素点对目标图像的尺寸信息进行存储,以该像素点中的两个数值存储目标图像的高度信息,以该像素点中的另外两个数值存储目标图像的宽度信息。
举例来说,获取到的目标图像的尺寸信息为300*500,这里通过四个数值对目标图像的尺寸信息进行存储,包括高位x、低位x、高位y及低位y,当低位进行存储时,逢256向高位进1,具体参见图4中所示目标图像的尺寸信息2021,其中,高位x和低位x表示目标图像的高度信息,高位y和低位y表示目标图像的宽度信息。已知目标图像的高度信息为300,大于255,则在低位x存储时向高位x进一,从而得到高位x为1,低位x为45;目标图像的宽度信息为500,大于255,则在低位y存储时向高位y进一,从而得到高位y为1,低位y为245。结合步骤S702得到的色值索引数组和步骤S703中得到的索引值数组,得到图像压缩文件,如图4所示。该图像压缩文件包含多个连续顺序的像素点的色值信息,用于存储目标图像的尺寸信息、色值压缩数组及索引值数组。
可选的,在获取色值索引数组之后,还可以确定色值索引的取值范围。若该色值索引数组中包含的色值信息的数量小于256,则索引值数组中包含的每个色值索引的取值范围为1~255,可以直接用8位进行存储,即此时可以认为每四个色值索引组成一个像素点的色值信息;若该色值索引数组中包含的色值信息的数量大于256且小于65536种时,则索引值数组中包含的每个色值索引的取值范围为1~65535,需要用16位进行存储,即此时可以认为每两个色值索引组成一个像素点的色值信息;当色值索引数组中包含的色值信息的数量大于65536且小于16777216种时,需要用24位进行存储,即此时可以认为每个色值索引占一个像素点的色值信息中的三个数值,当色值索引数组中包含的色值信息的数量为其他数值范围时,以同理进行存储。当色值索引数组中包含的色值信息的数量大于索引阈值,则不适用于本发明实施例。其中,当色值索引占多个8位时,可以在无数值的位置补零,例如当色值索引占16位时,色值索引为1时,存储为(0,1)。
可选的,当得到图像压缩文件之后,可以对该图像压缩文件进行二次压缩,具体是通过获取图像压缩文件中的各个数值,各个数值为多个连续排序的像素点的色值信息;确定第一遍历窗口的长度与第二遍历窗口的长度,第一遍历窗口与第二遍历窗口间存在分隔符,第一遍历窗口与所述第二遍历窗口相邻;将该分隔符置于所述图像压缩文件的首位数值之前,确定图像压缩文件中第一遍历窗口与第二遍历窗口中相同数值的匹配长度数值,根据相同数值相对于所述分隔符的位置数值、匹配长度数值及首位未匹配数值生成第一个压缩字典数组,首位未匹配数值为相同数值后的第一个数值;移动分隔符L位数值,生成下一个压缩字典数组,直至第一遍历窗口与第二遍历窗口间的分隔符位于像素差异数据的末尾字符之后,其中L是基于匹配长度数值所确定的;根据生成的各个压缩字典数组,生成图像压缩文件对应的二次压缩数据,该二次压缩数据包括多个连续排序的压缩像素点的色值信息。
举例来说,如图8中字符串的压缩示意图所示,对该无损压缩过程进行描述。具体如下:
通过(q,l,e)表示第二遍历窗口中字符串的匹配长度数值的匹配结果,其中,q表示最长匹配时,字符开始时的位置,相对于分隔符的位置,l表示匹配长度数值,e表示第二遍历窗口中匹配长度数值对应的匹配字符结束时的下一字符,移动分隔符时移动的位数为最新记录的(q,l,e)中的l加一。其中,第一遍历窗口用于存储历史字符,第二遍历窗口用于遍历待压缩的字符。以字符串(a,a,c,a,a,c,a,b,c,a,b,a,a)为例,第一遍历窗口的长度为6,第二遍历窗口的长度为4,将分隔符置于该字符串的首位字符之前,确定第二遍历窗口中不存在与第一遍历窗口中相同字符,记为(,0,a);移动分隔符1位字符,对比第一遍历窗口(a)和第二遍历窗口(a,c,a,a),存在一个相同字符,匹配长度数值为1,记为(1,1,c);移动分隔符2位,对比第一遍历窗口(a,a,c)和第二遍历窗口(a,a,c,a),存在四个相同字符,匹配长度数值为4,记为(3,4,b);移动分隔符5位,对比第一遍历窗口(c,a,a,c,a,b)和第二遍历窗口(c,a,b,a),存在三个相同字符,匹配长度数值为3,记为(3,3,a);移动分隔符4位,对比第一遍历窗口(a,b,c,a,b,a)和第二遍历窗口(a),存在一个相同字符,匹配长度数值为1,记为(1,1,);移动分隔符2位,此时分隔符位于字符串的末尾字符,完成对字符串的压缩。
具体对于图像压缩文件中包含的各个连续顺序的像素点的色值信息包括的各个数值进行压缩的过程如上述字符串(a,a,c,a,a,c,a,b,c,a,b,a,a)的压缩过程。可选的,该压缩过程也可以在步骤S704中生成图像压缩文件后,将该图像压缩文件绘制成图像时,使用绘制成的图像格式本身的无损压缩算法进行实现,如png格式自身的无损压缩算法,在此不做限定。
在本发明实施例中,通过获取到目标图像中出现的所有色值信息,组成色值索引数组,且该色值索引数组中包含的各个色值信息互不相同,根据目标图像中每个像素点的色值信息在该色值索引数组中的位置,确定每个像素点的色值索引,从而根据目标图像的尺寸信息、色值索引数组及索引值数组生成目标图像对应的图像压缩文件,以减少目标图像的存储大小,从而有效实现了对图像的无损压缩,更有利于目标图像的网络传输。进一步地,还可以通过对目标图像对应的图像压缩文件进行二次压缩,进一步减少目标图像的存储大小,提高目标图像的网络传输效率。
其中,以一张300*500大小的图像为例,原始图像的存储空间为300*500*32=4800000。若图像中包括256种色值信息时,则通过本发明实施例进行单次压缩后的图像压缩文件的存储空间为32+256*32+300*500*8=1208224,节省了74.83%的存储空间;若图像中包括65536种色值信息时,则通过本发明实施例进行单次压缩后的图像压缩文件的存储空间为32+65536*32+300*500*16=4497184,节省了6.31%的存储空间。当对图像压缩文件进行进一步无损压缩后,可以进一步提高压缩率。而且当目标图像的存储空间越大,包括的色值信息越少时,通过本发明实施例进行压缩后,压缩率会越高。
进一步地,参见图9,图9是本发明实施例提供的一种图像压缩场景示意图。如图9所示,当获取到目标图像901时,该目标图像901为300*500大小的图像,通过对目标图像901进行解析得到目标图像的色值信息表902,该色值信息表902中包括每个像素点的色值信息,依次获取目标图像901中各个像素点的色值信息,当该色值信息在色值索引数组903中不存在,则将该色值信息加入色值索引数组903中,并将该色值信息在色值索引数组903中的位置作为索引值数组904中对应位置处的色值索引,直至获取该目标图像的色值信息表902中的所有色值信息的色值索引。如图9中所示,可以认为该索引值数组904中第一个色值索引为1,对应色值索引数组903中的第一个色值信息,索引值数组904中第二个色值索引为1,对应色值索引数组903中的第一个色值信息等等。根据目标图像的尺寸信息、色值索引数组903及索引值数组904进行拼接,得到目标图像对应的图像压缩文件905。可选的,可以进一步地对图像压缩文件905进行无损压缩,得到二次压缩数据。
其中,在本发明实施例中,得到图像压缩文件中包括的多个连续排序的像素点的色值信息时,可以在每个像素点中的每个色值通道可以取255种数值(1~255),0作为当某一色值通道处无实际含义的数值时进行补充的数值,也可以取256种数值(0~256),可以根据需要进行设定,在此不做限定。其中,色值通道包括该像素点的Red通道、Green通道、Blue通道及Alpha通道。
可选的,参见图10,图10是本发明实施例提供的一种图像解压缩装置。如图10所示,该图像解压缩装置可以用于上述图2至图6所对应实施例中的电子设备,具体的该图像解压缩装置1a包括第一获取模块10a、第一确定模块20a、设置模块30a和生成模块40a。
第一获取模块10a,用于获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,其中所述色值索引数组中包含所述目标图像中出现的所有N个色值信息,并且所述N个色值信息互不相同,所述索引值数组包括多个色值索引,每个色值索引均对应所述色值索引数组中的一个色值信息;
第一确定模块20a,用于根据所述目标图像的尺寸信息确定所述目标图像包含的像素位置;
所述第一确定模块20a,还用于基于色值索引在所述索引值数组中的位置确定所述色值索引对应的目标图像的像素位置;
设置模块30a,用于将所述索引值数组中的色值索引在所述色值索引数组中对应的色值信息作为所述色值索引对应的像素位置的色值信息;
第一生成模块40a,用于根据所述目标图像的各个像素位置的色值信息还原所述目标图像。
其中,所述第一获取模块10a包括:
获取单元101a,用于从所述图像压缩文件中的第一指定位置获取目标图像的尺寸信息;
确定单元102a,用于根据所述目标图像的尺寸信息确定索引值数组包括的色值索引的数量,根据所述色值索引的数量确定所述图像压缩文件的第二位置;
所述获取单元101a,还用于从所述图像压缩文件的第二位置获取所述索引值数组;
所述确定单元102a,还用于根据所述第一指定位置和所述第二位置,确定所述图像压缩文件中所述第一指定位置与所述第二位置之间的第三位置;
所述获取单元101a,还用于从所述图像压缩文件的第三位置获取色值索引数组。
其中,所述图像压缩文件包括多个连续排序的像素点的色值信息;
所述第一指定位置为所述图像压缩文件中的第一指定像素点的色值信息,所述第一指定像素点为所述多个连续排序的像素点中的一个像素点或至少两个连续排序的像素点;
在所述根据所述色值索引的数量确定所述图像压缩文件的第二位置方面,所述确定单元102a包括:
第一确定子单元1021a,用于根据所述色值索引的数量确定所述第二位置包含的像素点数量M;
第二确定子单元1022a,用于将所述多个连续排序的像素点中包含第二指定像素点在内的连续排序的M个像素点的色值信息作为所述第二位置;
在所述根据所述第一指定位置和所述第二位置,确定所述图像压缩文件中所述第一指定位置与所述第二位置之间的第三位置方面,所述确定单元102a包括:
第三确定子单元1023a,用于将第一指定像素点与所述第二位置包含的M个像素点之间的像素点的色值信息作为第三位置。
其中,所述装置1a还包括:
第二获取模块50a,用于获取所述图像压缩文件对应的二次压缩数据,所述二次压缩数据包括多个连续排序的压缩像素点的色值信息;
第二生成模块60a,用于根据所述多个连续排序的压缩像素点的色值信息得到多个压缩字典数组,其中每个所述压缩字典数组包括位置数值、匹配长度数值以及首位未匹配数值;
还原模块70a,用于根据所述多个压缩字典数组中的第一压缩字典数组还原得到第一压缩子数组,根据第n个压缩字典数组以及当前的已还原压缩子数组还原得到第n压缩子数组,直至还原得到所有压缩字典数组对应的压缩子数组;
拼接模块80a,用于将所述所有压缩字典数组对应的压缩子数组进行顺序拼接得到压缩数组;
第二确定模块90a,用于基于所述压缩数组确定所述图像压缩文件中的多个连续排序的像素点的色值信息。
本发明实施例提供了一种图像解压缩装置,上述装置通过获取图像压缩文件中目标图像的尺寸信息,以确定目标图像的形状,获取索引值数组中的各个色值索引在色值索引数组中对应的色值信息,以确定目标图像中对应像素位置处的色值信息,从而还原得到目标图像。进一步地,目标图像还进行了二次压缩,得到了图像压缩文件的二次压缩数据,从而在获取图像压缩文件中目标图像的尺寸信息等之前,先对二次压缩数据进行还原。在本发明中,一方面通过色值索引对目标图像中的各个像素点进行压缩,另一方面还可以对压缩后的图像压缩文件进行二次压缩,从这两方面进一步提高了对目标图像的压缩率,减少了目标图像压缩后的存储大小,而不影响目标图像的显示效果。
可选的,参见图11,图11是本发明实施例提供的一种图像压缩装置。如图11所示,该图像压缩装置可以用于上述图7至图9所对应实施例中的电子设备,具体的该图像压缩装置1b包括第一获取模块10b、第一生成模块20b、记录模块30b和第二生成模块40b。
第一获取模块10b,用于获取目标图像中每个像素点的色值信息;
第一生成模块20b,用于生成所述目标图像的色值索引数组,其中所述目标图像的色值索引数组中包含所述目标图像中出现的所有色值信息,并且所述色值索引数组中的色值信息互不相同;
记录模块30b,用于记录所述目标图像中各个像素点的色值信息在所述色值索引数组中的色值索引,得到索引值数组,所述色值索引为所述各个像素点的色值信息在所述色值索引数组中的位置;
第二生成模块40b,用于根据所述目标图像的尺寸信息、所述色值索引数组及所述索引值数组生成图像压缩文件。
其中,所述第一生成模块20b包括:
获取单元201b,用于获取所述目标图像中第i个像素点的色值信息Si,将所述色值信息Si与所述色值索引数组进行对比;i为正整数,i不大于所述目标图像中像素点的个数;
记录单元202b,用于若所述色值索引数组中不存在色值信息Si,则记录所述色值信息Si
所述获取单元201b,还用于若所述色值索引数组中存在色值信息Si,则获取下一个像素点的色值信息Si+1,直至获取到所述目标图像中所有像素点的色值信息;
组成单元203b,用于将记录的色值信息组成色值索引数组。
其中所述第二生成模块40b,包括:
转换单元401b,用于将所述目标图像的尺寸信息的数据格式转换为所述色值信息的数据格式;
生成单元402b,用于将转换后的尺寸信息、所述色值索引数组及所述索引值数组进行拼接,生成所述目标图像对应的图像压缩文件。
其中,所述装置1b还包括:
第二获取模块50b,用于获取所述图像压缩文件中的各个数值,所述各个数值为多个连续排序的像素点的色值信息;
第一确定模块60b,用于确定第一遍历窗口的长度与第二遍历窗口的长度,所述第一遍历窗口与所述第二遍历窗口间存在分隔符,所述第一遍历窗口与所述第二遍历窗口相邻;
第二确定模块70b,用于将所述分隔符置于所述图像压缩文件的首位数值之前,确定所述图像压缩文件中所述第一遍历窗口与所述第二遍历窗口中相同数值的匹配长度数值;
第三生成模块80b,用于根据所述相同数值相对于所述分隔符的位置数值、所述匹配长度数值及首位未匹配数值生成第一个压缩字典数组,所述首位未匹配数值为所述相同数值后的第一个数值;
所述第三生成模块80b,还用于移动所述分隔符L位数值,生成下一个压缩字典数组,直至所述第一遍历窗口与所述第二遍历窗口间的所述分隔符位于所述像素差异数据的末尾字符之后,其中L是基于所述匹配长度数值所确定的,具体L是基于上一个压缩字典数组中的匹配长度数值所确定的;
压缩模块90b,用于根据生成的各个压缩字典数组,生成所述图像压缩文件对应的二次压缩数据,所述二次压缩数据包括多个连续排序的压缩像素点的色值信息。
本发明实施例提供了一种图像压缩装置,该装置通过获取到目标图像后,提取目标图像中出现过的所有种类的色值信息,该色值信息为RGBA值,生成色值索引数组,且在目标图像中重复出现的色值信息在色值索引数组中只出现一次,并根据目标图像中每个像素点的色值信息在色值索引数组中存储的位置,以确定目标图像中每个像素点的色值索引,得到目标图像的索引值数组,根据目标图像的尺寸信息、色值索引数组及索引值数组生成图像压缩文件,从而将目标图像中每个像素点的存储空间由原来的四个数值减少为小于四个数值,进一步地还可以对首次压缩后得到的图像压缩文件进行二次压缩,以进一步提高压缩率,目标图像中出现的色值信息种类越少,图像的压缩率会越高,实现对目标图像的无损压缩。由于在图像压缩文件中对于目标图像的尺寸信息及每个像素点的色值信息都可以进行获取还原,实现了对目标图像的无损压缩,从而在不影响目标图像的显示效果的同时,减少了目标图像的存储空间,更有利于目标图像的网络传输。
参见图12,图12是本发明实施例提供的电子设备的结构示意图。如图12所示,本实施例中的终端设备可以包括:一个或多个处理器1201、存储器1202和收发器1203。上述处理器1201、存储器1202和收发器1203通过总线1204连接。存储器1202用于存储计算机程序,该计算机程序包括程序指令,收发器1203用于连接终端设备,与上述电子设备进行数据交互;处理器1201用于执行存储器1202存储的程序指令,执行如下操作:
获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,其中所述色值索引数组中包含所述目标图像中出现的所有N个色值信息,并且所述N个色值信息互不相同,所述索引值数组包括多个色值索引,每个色值索引均对应所述色值索引数组中的一个色值信息;
根据所述目标图像的尺寸信息确定所述目标图像包含的像素位置;
基于色值索引在所述索引值数组中的位置确定所述色值索引对应的目标图像的像素位置;
将所述索引值数组中的色值索引在所述色值索引数组中对应的色值信息作为所述色值索引对应的像素位置的色值信息;
根据所述目标图像的各个像素位置的色值信息还原所述目标图像。
或者,处理器1201用于执行如下操作:
获取目标图像中每个像素点的色值信息;
生成所述目标图像的色值索引数组,其中所述目标图像的色值索引数组中包含所述目标图像中出现的所有色值信息,并且所述色值索引数组中的色值信息互不相同;
记录所述目标图像中各个像素点的色值信息在所述色值索引数组中的色值索引,得到索引值数组,所述色值索引为所述各个像素点的色值信息在所述色值索引数组中的位置;
根据所述目标图像的尺寸信息、所述色值索引数组及所述索引值数组生成图像压缩文件。
在一些可行的实施方式中,上述处理器1201可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1202可以包括只读存储器和随机存取存储器,并向处理器1201和收发器1203提供指令和数据。存储器1202的一部分还可以包括非易失性随机存取存储器。例如,存储器1202还可以存储设备类型的信息。
具体实现中,上述电子设备可通过其内置的各个功能模块执行如上述图2至图9各个步骤所提供的实现方式,具体可参见上述图2至图9中各个步骤所提供的实现方式,在此不再赘述。
本发明实施例通过提供一种电子设备,包括:处理器、收发器、存储器,通过处理器获取存储器中的计算机指令,执行上述图2至图9中所示方法的各个步骤,进行获取目标图像,提取目标图像中出现过的所有色值信息,组成色值索引数组,该色值索引数组中包含的各个色值信息互不相同,并将目标图像中的各个像素点的色值信息压缩为该色值信息在色值索引数组中的位置,作为该像素点的色值索引,组成索引值数组,从而根据目标图像的尺寸信息、色值索引数组及索引值数组,生成目标图像对应的图像压缩文件,进一步地还可以对该图像压缩文件进行二次压缩,以提高对目标图像的压缩率,减少目标图像的存储大小,更有利于目标图像的网络传输。并提供了一种对该目标图像压缩后的图像进行解压缩的方法,通过每个像素点的色值索引在色值索引数组中对应的色值信息,实现对目标图像的无损解压缩。在压缩或解压缩过程中不存在数据的删除,且由于将一个像素点存储一个像素点的色值信息压缩成存储多个像素点的色值信息,使得图像所占的存储大小减少,并且不影响显示效果,减少传输耗时。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图2至图9中各个步骤所提供的确定查阅文本数据的用户的方法,具体可参见上述图2至图9各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的图像解压缩及压缩的装置或者上述终端设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本发明实施例的说明书和权利要求书及附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (12)

1.一种图像解压缩方法,其特征在于,包括:
获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,其中所述色值索引数组中包含所述目标图像中出现的所有N个色值信息,并且所述N个色值信息互不相同,所述索引值数组包括多个色值索引,每个色值索引均对应所述色值索引数组中的一个色值信息;
根据所述目标图像的尺寸信息确定所述目标图像包含的像素位置;
基于色值索引在所述索引值数组中的位置确定所述色值索引对应的目标图像的像素位置;
将所述索引值数组中的色值索引在所述色值索引数组中对应的色值信息作为所述色值索引对应的像素位置的色值信息;
根据所述目标图像的各个像素位置的色值信息还原所述目标图像。
2.如权利要求1所述的方法,其特征在于,所述获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,包括:
从所述图像压缩文件中的第一指定位置获取目标图像的尺寸信息;
根据所述目标图像的尺寸信息确定索引值数组包括的色值索引的数量,根据所述色值索引的数量确定所述图像压缩文件的第二位置,从所述图像压缩文件的第二位置获取所述索引值数组;
根据所述第一指定位置和所述第二位置,确定所述图像压缩文件中所述第一指定位置与所述第二位置之间的第三位置,并从所述图像压缩文件的第三位置获取色值索引数组。
3.如权利要求2所述的方法,其特征在于,所述图像压缩文件包括多个连续排序的像素点的色值信息;
所述第一指定位置为所述图像压缩文件中的第一指定像素点的色值信息,所述第一指定像素点为所述多个连续排序的像素点中的一个像素点或至少两个连续排序的像素点;
所述根据所述色值索引的数量确定所述图像压缩文件的第二位置包括:
根据所述色值索引的数量确定所述第二位置包含的像素点数量M,并将所述多个连续排序的像素点中包含第二指定像素点在内的连续排序的M个像素点的色值信息作为所述第二位置;
所述根据所述第一指定位置和所述第二位置,确定所述图像压缩文件中所述第一指定位置与所述第二位置之间的第三位置包括:
将第一指定像素点与所述第二位置包含的M个像素点之间的像素点的色值信息作为第三位置。
4.如权利要求3所述的方法,其特征在于,所述获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组之前,还包括:
获取所述图像压缩文件对应的二次压缩数据,所述二次压缩数据包括多个连续排序的压缩像素点的色值信息;
根据所述多个连续排序的压缩像素点的色值信息得到多个压缩字典数组,其中每个所述压缩字典数组包括位置数值、匹配长度数值以及首位未匹配数值;所述位置数值为出现相同数值时的起始位置,所述位置数值是对于已还原的数值中最后一个数值而言的相对位置,所述匹配长度数值为出现的相同数值的数量,所述首位未匹配数值为出现的相同数值之后的首位数值;
根据所述多个压缩字典数组中的第一压缩字典数组还原得到第一压缩子数组,根据第n个压缩字典数组以及当前的已还原压缩子数组还原得到第n压缩子数组,直至还原得到所有压缩字典数组对应的压缩子数组;
将所述所有压缩字典数组对应的压缩子数组进行顺序拼接得到压缩数组;
基于所述压缩数组确定所述图像压缩文件中的多个连续排序的像素点的色值信息。
5.一种图像压缩方法,其特征在于,包括:
获取目标图像中每个像素点的色值信息;
生成所述目标图像的色值索引数组,其中所述目标图像的色值索引数组中包含所述目标图像中出现的所有色值信息,并且所述色值索引数组中的色值信息互不相同;
记录所述目标图像中各个像素点的色值信息在所述色值索引数组中的色值索引,得到索引值数组,所述色值索引为所述各个像素点的色值信息在所述色值索引数组中的位置;
根据所述目标图像的尺寸信息、所述色值索引数组及所述索引值数组生成图像压缩文件。
6.如权利要求5所述的方法,其特征在于,所述生成所述目标图像的色值索引数组,包括:
获取所述目标图像中第i个像素点的色值信息Si,将所述色值信息Si与所述色值索引数组进行对比;i为正整数,i不大于所述目标图像中像素点的个数;
若所述色值索引数组中不存在色值信息Si,则记录所述色值信息Si
若所述色值索引数组中存在色值信息Si,则获取下一个像素点的色值信息Si+1,直至获取到所述目标图像中所有像素点的色值信息;
将记录的色值信息组成色值索引数组。
7.如权利要求5所述的方法,其特征在于,所述根据所述目标图像的尺寸信息、所述色值索引数组及所述索引值数组生成图像压缩文件,包括:
将所述目标图像的尺寸信息的数据格式转换为所述色值信息的数据格式;
将转换后的尺寸信息、所述色值索引数组及所述索引值数组进行拼接,生成所述目标图像对应的图像压缩文件。
8.如权利要求5所述的方法,其特征在于,所述方法之后,还包括:
获取所述图像压缩文件中的各个数值,所述各个数值为多个连续排序的像素点的色值信息;
确定第一遍历窗口的长度与第二遍历窗口的长度,所述第一遍历窗口与所述第二遍历窗口间存在分隔符,所述第一遍历窗口与所述第二遍历窗口相邻;
将所述分隔符置于所述图像压缩文件的首位数值之前,确定所述图像压缩文件中所述第一遍历窗口与所述第二遍历窗口中相同数值的匹配长度数值,根据所述相同数值相对于所述分隔符的位置数值、所述匹配长度数值及首位未匹配数值生成第一个压缩字典数组,所述首位未匹配数值为所述相同数值后的第一个数值;
移动所述分隔符L位数值,生成下一个压缩字典数组,直至所述第一遍历窗口与所述第二遍历窗口间的所述分隔符位于像素差异数据的末尾字符之后,其中L是基于所述匹配长度数值所确定的;
根据生成的各个压缩字典数组,生成所述图像压缩文件对应的二次压缩数据,所述二次压缩数据包括多个连续排序的压缩像素点的色值信息。
9.一种图像解压缩装置,其特征在于,所述装置包括:
获取模块,用于获取图像压缩文件中目标图像的尺寸信息、色值索引数组及索引值数组,其中所述色值索引数组中包含所述目标图像中出现的所有N个色值信息,并且所述N个色值信息互不相同,所述索引值数组包括多个色值索引,每个色值索引均对应所述色值索引数组中的一个色值信息;
确定模块,用于根据所述目标图像的尺寸信息确定所述目标图像包含的像素位置;
所述确定模块,还用于基于色值索引在所述索引值数组中的位置确定所述色值索引对应的目标图像的像素位置;
设置模块,用于将所述索引值数组中的色值索引在所述色值索引数组中对应的色值信息作为所述色值索引对应的像素位置的色值信息;
生成模块,用于根据所述目标图像的各个像素位置的色值信息还原所述目标图像。
10.一种图像压缩装置,其特征在于,所述装置包括:
获取模块,用于获取目标图像中每个像素点的色值信息;
确定模块,用于生成所述目标图像的色值索引数组,其中所述目标图像的色值索引数组中包含所述目标图像中出现的所有色值信息,并且所述色值索引数组中的色值信息互不相同;
记录模块,用于记录所述目标图像中各个像素点的色值信息在所述色值索引数组中的色值索引,得到索引值数组,所述色值索引为所述各个像素点的色值信息在所述色值索引数组中的位置;
生成模块,用于根据所述目标图像的尺寸信息、所述色值索引数组及所述索引值数组生成图像压缩文件。
11.一种电子设备,其特征在于,包括处理器、存储器、收发器;
所述处理器分别与所述存储器和所述收发器相连,其中,所述收发器用于数据交互,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以使得所述电子设备执行权利要求1-4任一项所述的方法,或者执行权利要求5-8任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行权利要求1-4任一项所述的方法,或者执行权利要求5-8任一项所述的方法。
CN201910543823.1A 2019-06-21 2019-06-21 一种图像压缩与解压缩的方法及装置 Active CN112118449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910543823.1A CN112118449B (zh) 2019-06-21 2019-06-21 一种图像压缩与解压缩的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910543823.1A CN112118449B (zh) 2019-06-21 2019-06-21 一种图像压缩与解压缩的方法及装置

Publications (2)

Publication Number Publication Date
CN112118449A CN112118449A (zh) 2020-12-22
CN112118449B true CN112118449B (zh) 2022-03-25

Family

ID=73796486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910543823.1A Active CN112118449B (zh) 2019-06-21 2019-06-21 一种图像压缩与解压缩的方法及装置

Country Status (1)

Country Link
CN (1) CN112118449B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112700507A (zh) * 2020-12-28 2021-04-23 统信软件技术有限公司 一种图片显示方法、计算设备和存储介质
CN113362254B (zh) * 2021-06-30 2023-01-20 广东电网有限责任公司 一种图像还原方法、装置、设备及存储介质
CN115098171A (zh) * 2022-05-20 2022-09-23 智绘微电子科技(南京)有限公司 一种vbios中优化图片压缩处理的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009212933A1 (en) * 2009-09-02 2011-03-17 Canon Kabushiki Kaisha Methods of storing and retrieving images
CN102542270A (zh) * 2010-11-16 2012-07-04 手持产品公司 操作地处理彩色图像数据的方法和系统
CN103886623A (zh) * 2012-12-19 2014-06-25 华为技术有限公司 一种图像压缩方法、设备及系统
WO2015054812A1 (en) * 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
CN105335989A (zh) * 2014-06-11 2016-02-17 富士通株式会社 图像编码方法和图像编码装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009212933A1 (en) * 2009-09-02 2011-03-17 Canon Kabushiki Kaisha Methods of storing and retrieving images
CN102542270A (zh) * 2010-11-16 2012-07-04 手持产品公司 操作地处理彩色图像数据的方法和系统
CN103886623A (zh) * 2012-12-19 2014-06-25 华为技术有限公司 一种图像压缩方法、设备及系统
WO2015054812A1 (en) * 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
CN105335989A (zh) * 2014-06-11 2016-02-17 富士通株式会社 图像编码方法和图像编码装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
真彩色图像自适应回溯索引算法;江开耀;《西北纺织工学院学报》;19941230;全文 *

Also Published As

Publication number Publication date
CN112118449A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN102523367B (zh) 基于多调色板的实时图像压缩和还原方法
CN1681330B (zh) 自适应2n叉树生成方法及3D体数据编码和解码方法和设备
EP1285399B1 (en) Enhanced compression of gray-level images
CN112118449B (zh) 一种图像压缩与解压缩的方法及装置
CN110113617B (zh) 图像压缩与解压缩的方法、装置、电子设备及存储介质
US7248735B2 (en) Compression and decompression method of image data
KR100573527B1 (ko) 그래픽 이미지 압축 및 복원 방법
JP2000049619A (ja) 2チャネルhvq圧縮方法
KR100834439B1 (ko) 그래픽 데이터 압축 및 복원 장치와 그 방법
JPH1188700A (ja) カラー画像信号の符号化方法、復号化方法およびカラー画像処理装置
JP3462867B2 (ja) 画像圧縮方法および装置、画像圧縮プログラムならびに画像処理装置
US7286264B2 (en) None-of-the-above digital halftone compression and decompression
JPH07322074A (ja) ディザリングされた2レベル・イメージ・ファイルを処理するためのデータ処理装置および方法
CN110619667B (zh) 一种png图片的压缩方法及其系统
JPH0215782A (ja) 画像符号化方式
JP2703223B2 (ja) カラー画像処理装置
JP2000049618A (ja) 90°回転と組合わせたhvq圧縮方法
JP3347488B2 (ja) 画像処理装置およびその方法
JP4034385B2 (ja) マルチカラー画像の符号化装置およびその方法ならびにマルチカラー画像の復号化装置およびその方法
JP2737869B2 (ja) 画像処理方法
EP0552544A1 (en) An improved method for decoding compressed images
JP2798025B2 (ja) 動画像符号化方法及び装置
JPH05260322A (ja) 2値画像圧縮方式
JPS61198877A (ja) コンピユ−タ・アニメ−シヨンにおけるデ−タ圧縮符号化法
JP2006203832A (ja) 画像送受信システム、画像送受信方法、並びに画像送信手順と画像受信表示手順を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant