CN109104198A - 一种数据压缩方法、解压方法、装置及电子设备 - Google Patents

一种数据压缩方法、解压方法、装置及电子设备 Download PDF

Info

Publication number
CN109104198A
CN109104198A CN201810684792.7A CN201810684792A CN109104198A CN 109104198 A CN109104198 A CN 109104198A CN 201810684792 A CN201810684792 A CN 201810684792A CN 109104198 A CN109104198 A CN 109104198A
Authority
CN
China
Prior art keywords
data
offset
data segment
address
header
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.)
Withdrawn
Application number
CN201810684792.7A
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810684792.7A priority Critical patent/CN109104198A/zh
Publication of CN109104198A publication Critical patent/CN109104198A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明实施例提供一种数据压缩方法、解压方法、装置及电子设备,通过计算第N数据段的首地址与参考地址的第一偏移量;将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。由于该数据表头中记录了各个数据段的偏移量,进一步通过该偏移量能够实现多个数据段同时读取,并行处理,从而提高数据处理效率。

Description

一种数据压缩方法、解压方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据压缩方法、解压方法、装置及电子设备。
背景技术
在数据存储过程中,目前通常使用逐比特存储格式存储压缩数据。对于数据5,上下文可能决定对其采用3个比特进行存储,此时存储的比特为101;上下文也可能决定对其采用4个比特进行存储,此时存储的比特值为0101。当前存储器件的最小存储单元通常为字节(8个比特),因此在进行数据存储时需要对比特数据进行拼接,构成字节数据进行数据存储。例如,相邻两个数据4和5需要存储的比特数据分别为0100和0101,则将这两个比特数据拼接成一个字节01010100,并进行存储。再例如,相邻两个数据5和6需要存储的比特数据分别为00101和00110,则将两个比特数据拼接为比特数据0011000101,并对比特数据11000101构成的单元进行存储,并保留剩下的两个比特00数据,留作下一次比特数据拼接使用。在数据压缩时,由于编码表的最大长度为4096,因此当当前编码表的长度超过4096时,需要构造新的编码表对后续数据进行压缩处理。并以CLEAR(根据需要编码的数据确定)等编码标识表示当前编码表编码的结束。解码过程中,需要根据上下文确定当前数据所采用比特数,并读取相应比特数,得到压缩数据。当读取到的数据为CLEAR标记时,构造新的编码表。通常将以CLEAR标记分隔的数据成为数据段。对于最后一个数据段,以END标记标识数据的结束。
然而,发明人通过研究发现,在解压缩过程中,解压缩程序只能逐个读取各个数据段,当遇到Clear标识时,再继续读取下一个数据段,这样在解压过程只能通过串行处理的方式运行,导致数据处理速率低下。
因此,如何能够提高数据处理速率是本领域技术人员亟需解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数据压缩方法、解压方法、装置及电子设备,用于解决现有技术中数据处理速率低的问题。
为实现上述目的及其他相关目的,根据本发明的第一方面,本发明实施例提供一种数据压缩方法,该方法包括以下步骤:
计算第N数据段的首地址与参考地址的第一偏移量;
将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。
可选地,当参考地址为第M数据段的首地址时,所述计算第N数据段的首地址与参考地址的第一偏移量,包括:
当M小于N时,计算第M至第N-1数据段所有数据段的数据段长度和,根据计算出的数据段长度和,计算第一偏移量;
或者,
当M大于N时,计算第N至第M-1数据段所有数据段的数据长度和,根据计算出的数据段长度和,计算第一偏移量;
其中,M为自然数。
可选地,当参考地址为第M数据段的首地址、且编码表包括编码标识时,所述计算第N数据段的首地址与参考地址的第一偏移量,包括:
当M小于N时,计算第M至第N-1数据段所有数据段的数据段长度和以及编码标识个数,根据计算出的数据段长度和以及编码标识个数,计算第一偏移量;
或者,
当M大于N时,计算第N至第M-1数据段所有数据段的数据长度和,根据计算出的数据段长度和以及编码标识个数,计算第一偏移量;
其中,M为自然数。
可选地,当编码表包括编码标识时,该方法还包括:
根据所述编码标识计算数据段个数;
将所述数据段个数增加到所述数据表头。
根据本发明的第二方面,本发明实施例还提供一种数据解压方法,该方法包括:
从数据表头中,获取第N数据段的第一偏移量和第N+1数据段的第二偏移量,其中,所述第一偏移量为第N数据段头地址与参考地址的偏移量,第二偏移量为第N+1数据段头地址与参考地址的偏移量,其中N为自然数,所述数据表头包括依次排列的多个数据段;
根据所述参考地址、第一偏移量和第二偏移量,确定第N数据段的首尾地址,并读取所述首尾地址中的数据,以完成数据解压。
可选地,该方法还包括:
从数据表头中获取数据段个数;
根据所述数据段个数,以及线程数,将多个数据段分成数据段组;
将数据段组中的数据段分配给相应的线程,并行读取数据段数据。
根据本发明的第三方面,本发明实施例还提供一种用于数据压缩的装置,该装置包括:
计算模块,用于计算第N数据段的首地址与参考地址的第一偏移量;
添加模块,用于将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。
根据本发明的第四方面,本发明实施例还提供一种用于数据解压的装置,该装置包括:
获取模块,用于从数据表头中,获取第N数据段的第一偏移量和第N+1数据段的第二偏移量,其中,所述第一偏移量为第N数据段头地址与参考地址的偏移量,第二偏移量为第N+1数据段头地址与参考地址的偏移量,其中N为自然数,所述数据表头包括依次排列的多个数据段;
处理模块,用于根据所述参考地址、第一偏移量和第二偏移量,确定第N数据段的首尾地址,并读取所述首尾地址中的数据,以完成数据解压。
根据本发明的第五方面,本发明实施例还提供一种电子设备,该电子设备包括上述实施例所述的用于数据压缩的装置和用于数据解压的装置。
根据本发明的第六方面,本发明实施例还提供一种电子设备,电子设备包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述实施例所描述的数据压缩方法以及数据解压方法。
如上所述,本发明实施例提供的一种数据压缩方法、解压方法、装置及电子设备,具有以下有益效果:通过计算第N数据段的首地址与参考地址的第一偏移量;将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。由于该数据表头中记录了各个数据段的偏移量,进一步通过该偏移量能够实现多个数据段同时读取,并行处理,从而提高数据处理效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据压缩方法的流程示意图;
图2是本发明实施例提供的一种编码表的结构示意图;
图3是本发明实施例提供的一种数据表头的结构示意图;
图4是本发明实施例提供的一种数据解压方法的流程示意图;
图5是本发明实施例提供的一种用于数据压缩的装置的结构示意图;
图6是本发明实施例提供的一种用于数据解压的装置的结构示意图;
图7是本发明实施例提供的执行数据压缩和解压的电子设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
请参阅图1至图7。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
参见图1,是本发明实施例提供的一种数据压缩方法的流程示意图,如图1所示,本发明实施例示出了数据表头的编制过程:
步骤S101:计算第N数据段的首地址与参考地址的第一偏移量。
参见图2,是本发明实施例提供的一种编码表的结构示意图,如图2所示,该编码表包括第一编码标识“101”,通过该编码标识表征数据段的开始或结束,在本发明实施例中该编码标识占用3个比特位;该编码表还包括第一数据段“00 01 10 11”,该第一数据段占用8个比特位;该编码表还包括第二编码标识“101”用于指示第二数据段开始,也可以标识第一数据段结束;第二数据段包括“10 00 11”占用6个比特位。最后的“110”可以作为编码表结束标识,表征编码表的结尾。当然,需要说明的是,该编码表仅是一示例性结构,在具体实施时编码表中可以不包括编码标识,仅包括各个数据段;或者仅包括编码标识“101”,不包括“110”;而且,各个编码标识还可以为其他任意的数据结构,在本发明实施例中不做限定。
在一示例性实施例中,以第N数据段为例,N为自然数,可以计算第N数据段的首地址与参考地址的第一偏移量。其中,该参考地址可以为编码表中任意一个数据段的首地址例如第M数据段的首地址,或者,该参考地址可以为编码表的起始地址,当然该参考地址还可以为存储器中任意一个固定的地址。而且,需要说明的是,在计算第N数据段的偏移量时,可以在压缩过程中,进行计算,例如获取到第N数据段的首地址后,直接计算该首地址与参考地址的偏移量,并将该偏移量进行保存;在计算第N数据段的偏移量时,还可以在数据压缩完成后,根据编码标识确定第N数据段的首地址,并计算该首地址与参考地址的偏移量,并将该偏移量进行保存。
当参考地址为第M数据段的首地址时,为了获得第N数据段的第一偏移量可以包括:当M小于N时,计算第M至第N-1数据段所有数据段的数据段长度和,根据计算出的数据段长度和,进一步计算第一偏移量。在一示例性实施例中,参考地址为第1数据段的首地址,则第3数据段的偏移量计算方式可以为,参考地址增加第1数据段和第2数据段的长度和。
当M大于N时,计算第N至第M-1数据段所有数据段的数据长度和,根据计算出的数据段长度和,计算第一偏移量。在一示例性实施例中,参考地址为第3数据段的首地址,则第1数据段的偏移量计算方式可以为,参考地址减去第1数据段和第2数据段的长度和。
当参考地址为第M数据段的首地址、且编码表包括编码标识时,为了获得第N数据段的第一偏移量可以包括:当M小于N时,计算第M至第N-1数据段所有数据段的数据段长度和,根据计算出的数据段长度和以及编码标识个数,进一步计算第一偏移量。在一示例性实施例中,参考地址为第1数据段的首地址,则第3数据段的偏移量计算方式可以为,参考地址增加第1数据段和第2数据段的长度和以及2个编码标识所对应的长度。
当M大于N时,计算第N至第M-1数据段所有数据段的数据长度和,根据计算出的数据段长度和以及编码标识个数,计算第一偏移量。在一示例性实施例中,参考地址为第3数据段的首地址,则第1数据段的偏移量计算方式可以为,参考地址减去第1数据段和第2数据段的长度和以及2个编码标识所对应的长度。
而且,在具体实施时,当计算得到的第N数据段的第一偏移量后,可以进一步利用第N数据段的长度,将第一数据段的第一偏移量增加该第N数据段的长度,得到第N+1数据段的偏移量。
步骤S102:将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。
根据步骤S101计算得到第N数据段的偏移量后,可以将计算得到的第一偏移量添加到数据表头中,并按照数据段的顺序依次保存各个数据段的偏移量,完成数据表头。
参见图3,是本发明实施例提供的一种数据表头的结构示意图,如图3所示,该数据表头包括按照第1数据段至第N数据段依次排列的各个数据段的偏移量。在数据表头中存储有第1数据段的偏移量、第2数据段的偏移量,以及第N数据段的偏移量,N为自然数,各个数据段的偏移量依次存储并保存在数据表头中;其中,每个数据段的偏移量可以为每个数据段的首地址与参考地址的偏移量,这样通过参考地址和该偏移量能够读取相应的数据段,完成解码。
需要说明的是,在具体实施时可以在编码表中预留数据表头的存储空间,如图3所示,例如该预留的存储空间可以为存储数据之前的空间,在该预留的存储空间中编制该数据表头,当然该数据表头可以存储在编码表之外的存储空间,在本发明实施例中不做限定。
在另外一个示例性实施例中,该数据表头还可以包括数据段个数。在具体实施时,当编码表中包括编码标识时,可以遍历数据表,统计编码标识的个数从而得到数据段个数,并将该数据段个数增加到数据表头中。当然,在编码表构建过程中,还可以实时统计数据段个数,并将该数据段个数增加到数据表头中,在本发明实施例中不再赘述。
由上述实施例的描述可见,本发明实施例提供的一种数据压缩方法,通过计算第N数据段的首地址与参考地址的第一偏移量;将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。由于该数据表头中记录了各个数据段的偏移量,进一步通过该偏移量能够实现多个数据段同时读取,并行处理,从而提高数据处理效率。
参见图4,是本发明实施例提供的一种数据解压方法的流程示意图,如图4所示,本发明实施例示出了根据数据表头实施数据解压的过程:
步骤S201:从数据表头中,获取第N数据段的第一偏移量和第N+1数据段的第二偏移量,其中,所述第一偏移量为第N数据段头地址与参考地址的偏移量,第二偏移量为第N+1数据段头地址与参考地址的偏移量,其中N为自然数,所述数据表头包括依次排列的多个数据段。
步骤S202:根据所述参考地址、第一偏移量和第二偏移量,确定第N数据段的首尾地址,并读取所述首尾地址中的数据,以完成数据解压。
通过参考地址和第一偏移量,能够确定第N数据段的首地址,通过参考地址和第二偏移量能够确定第N数据段的尾地址,这样,通过第N数据段的首地址和尾地址,就能够实现第N数据段的读取,完成数据解压。
另外,需要说明的是,上述处理方式可以是上述处理方式可以是串行处理方式,即完成第N数据段的解压后再继续执行第N+1数据段的解压;为了提高数据解压效率,通过该数据表头,还可以实施并行处理,即同时获取第N数据段和第N+1数据段的地址,进行解压。
在一示例性实施例中,当数据表头包括数据段个数时,可以进一步根据数据段个数以及线程数,将数据段分成多个数据段组。例如当数据段个数为50,线程数为5时,可以将编码表中的数据段分成10个数据段组。在一个数据段组中包括5个数据段,将该数据段组中的各个数据段分别分配给相应的线程,从而实现并行读取解压。
由上述实施例的描述可见,本发明实施例提供的一种数据解压方法,从数据表头中,获取第N数据段的第一偏移量和第N+1数据段的第二偏移量,其中,所述第一偏移量为第N数据段头地址与参考地址的偏移量,第二偏移量为第N+1数据段头地址与参考地址的偏移量,其中N为自然数,所述数据表头包括依次排列的多个数据段;根据所述参考地址、第一偏移量和第二偏移量,确定第N数据段的首尾地址,并读取所述首尾地址中的数据,以完成数据解压。由于该数据表头中记录了各个数据段的偏移量,进一步通过该偏移量能够实现多个数据段同时读取,并行处理,从而提高数据处理效率。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
与本发明提供的数据压缩方法实施例相对应,本发明还提供了一种用于数据压缩的装置。
参见图5,是本发明实施例提供的一种用于数据压缩的装置的结构示意图,如图5所示,该装置包括:
计算模块11,用于计算第N数据段的首地址与参考地址的第一偏移量;
添加模块12,用于将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。
在一示例性实施例中,当参考地址为第M数据段的首地址时,所述计算模块11还可以用于,
当M小于N时,计算第M至第N-1数据段所有数据段的数据段长度和,根据计算出的数据段长度和,计算第一偏移量;
或者,
当M大于N时,计算第N至第M-1数据段所有数据段的数据长度和,根据计算出的数据段长度和,计算第一偏移量;
其中,M为自然数。
在一示例性实施例中,当参考地址为第M数据段的首地址、且编码表包括编码标识时,所述计算模块11还可以用于,
当M小于N时,计算第M至第N-1数据段所有数据段的数据段长度和以及编码标识个数,根据计算出的数据段长度和以及编码标识个数,计算第一偏移量;
或者,
当M大于N时,计算第N至第M-1数据段所有数据段的数据长度和,根据计算出的数据段长度和以及编码标识个数,计算第一偏移量;
其中,M为自然数。
在一示例性实施例中,所述计算模块11还可以用于,
根据所述编码标识计算数据段个数;
将所述数据段个数增加到所述数据表头。
与本发明提供的数据解压方法实施例相对应,本发明还提供了一种用于数据解压的装置。
参见图6,是本发明实施例提供的一种用于数据解压的装置的结构示意图,如图6所示,该装置包括:
获取模块21,用于从数据表头中,获取第N数据段的第一偏移量和第N+1数据段的第二偏移量,其中,所述第一偏移量为第N数据段头地址与参考地址的偏移量,第二偏移量为第N+1数据段头地址与参考地址的偏移量,其中N为自然数,所述数据表头包括依次排列的多个数据段;
处理模块22,用于根据所述参考地址、第一偏移量和第二偏移量,确定第N数据段的首尾地址,并读取所述首尾地址中的数据,以完成数据解压。
在一示例性实施例中,所述处理模块22还可以用于,
从数据表头中获取数据段个数;
根据所述数据段个数,以及线程数,将多个数据段分成数据段组;
将数据段组中的数据段分配给相应的线程,并行读取数据段数据。
图7是本发明实施例提供的执行数据压缩和解压的电子设备的硬件结构示意图,如图7所示,该设备包括:
一个或多个处理器710以及存储器720,图7中以一个处理器710为例。
执行数据压缩和解压的处理方法的设备还可以包括:输入装置730和输出装置740。
处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器720作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的数据压缩和解压的处理方法对应的程序指令/模块(例如,附图5所示的计算模块11和添加模块12,以及附图6所示的获取模块21和处理模块22)。处理器710通过运行存储在存储器720中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例数据压缩和解压的处理方法。
存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据压缩和解压的处理装置的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器720可选包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至数据压缩和解压的处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可接收输入的数字或字符信息,以及产生与数据压缩和解压的处理装置的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器720中,当被所述一个或者多个处理器710执行时,执行上述任意方法实施例中的数据压缩和解压的处理方法。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据压缩方法,其特征在于,包括以下步骤:
计算第N数据段的首地址与参考地址的第一偏移量;
将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。
2.根据权利要求1所述的数据压缩方法,其特征在于,当参考地址为第M数据段的首地址时,所述计算第N数据段的首地址与参考地址的第一偏移量,包括:
当M小于N时,计算第M至第N-1数据段所有数据段的数据段长度和,根据计算出的数据段长度和,计算第一偏移量;
或者,
当M大于N时,计算第N至第M-1数据段所有数据段的数据长度和,根据计算出的数据段长度和,计算第一偏移量;
其中,M为自然数。
3.根据权利要求1所述的数据压缩方法,其特征在于,当参考地址为第M数据段的首地址、且编码表包括编码标识时,所述计算第N数据段的首地址与参考地址的第一偏移量,包括:
当M小于N时,计算第M至第N-1数据段所有数据段的数据段长度和以及编码标识个数,根据计算出的数据段长度和以及编码标识个数,计算第一偏移量;
或者,
当M大于N时,计算第N至第M-1数据段所有数据段的数据长度和,根据计算出的数据段长度和以及编码标识个数,计算第一偏移量;
其中,M为自然数。
4.根据权利要求1所述的数据压缩方法,其特征在于,当编码表包括编码标识时,还包括:
根据所述编码标识计算数据段个数;
将所述数据段个数增加到所述数据表头。
5.一种数据解压方法,其特征在于,包括以下步骤:
从数据表头中,获取第N数据段的第一偏移量和第N+1数据段的第二偏移量,其中,所述第一偏移量为第N数据段头地址与参考地址的偏移量,第二偏移量为第N+1数据段头地址与参考地址的偏移量,其中N为自然数,所述数据表头包括依次排列的多个数据段;
根据所述参考地址、第一偏移量和第二偏移量,确定第N数据段的首尾地址,并读取所述首尾地址中的数据,以完成数据解压。
6.根据权利要求1所述的数据解压方法,其特征在于,还包括:
从数据表头中获取数据段个数;
根据所述数据段个数,以及线程数,将多个数据段分成数据段组;
将数据段组中的数据段分配给相应的线程,并行读取数据段数据。
7.一种用于数据压缩的装置,其特征在于,包括:
计算模块,用于计算第N数据段的首地址与参考地址的第一偏移量;
添加模块,用于将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量,N为自然数。
8.一种用于数据解压的装置,其特征在于,包括:
获取模块,用于从数据表头中,获取第N数据段的第一偏移量和第N+1数据段的第二偏移量,其中,所述第一偏移量为第N数据段头地址与参考地址的偏移量,第二偏移量为第N+1数据段头地址与参考地址的偏移量,其中N为自然数,所述数据表头包括依次排列的多个数据段;
处理模块,用于根据所述参考地址、第一偏移量和第二偏移量,确定第N数据段的首尾地址,并读取所述首尾地址中的数据,以完成数据解压。
9.一种电子设备,其特征在于,包括如权利要求7所述的用于数据压缩的装置,以及如权利要求8所述的用于数据解压的装置。
10.一种电子设备,其特征在于,所述电子设备包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
计算第N数据段的首地址与参考地址的第一偏移量;
将所述第一偏移量添加到数据表头,其中,所述数据表头依次排列各个数据段的偏移量;
以及,
从数据表头中,获取第N数据段的第一偏移量和第N+1数据段的第二偏移量,其中,所述第一偏移量为第N数据段头地址与参考地址的偏移量,第二偏移量为第N+1数据段头地址与参考地址的偏移量,所述数据表头包括依次排列的多个数据段;
根据所述参考地址、第一偏移量和第二偏移量,确定第N数据段的首尾地址,并读取所述首尾地址中的数据,以完成数据解压;其中N为自然数。
CN201810684792.7A 2018-06-28 2018-06-28 一种数据压缩方法、解压方法、装置及电子设备 Withdrawn CN109104198A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810684792.7A CN109104198A (zh) 2018-06-28 2018-06-28 一种数据压缩方法、解压方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810684792.7A CN109104198A (zh) 2018-06-28 2018-06-28 一种数据压缩方法、解压方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN109104198A true CN109104198A (zh) 2018-12-28

Family

ID=64845306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810684792.7A Withdrawn CN109104198A (zh) 2018-06-28 2018-06-28 一种数据压缩方法、解压方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109104198A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020215951A1 (zh) * 2019-04-26 2020-10-29 深圳前海微众银行股份有限公司 一种编解码方法、装置、计算机设备及存储介质
CN113126512A (zh) * 2021-04-01 2021-07-16 青岛海尔空调器有限总公司 用于数据上报的方法、装置和智能家电设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020215951A1 (zh) * 2019-04-26 2020-10-29 深圳前海微众银行股份有限公司 一种编解码方法、装置、计算机设备及存储介质
CN113126512A (zh) * 2021-04-01 2021-07-16 青岛海尔空调器有限总公司 用于数据上报的方法、装置和智能家电设备

Similar Documents

Publication Publication Date Title
CN109582653B (zh) 文件的压缩、解压缩方法及设备
CN107391325B (zh) 一种硬盘的测试方法、装置及终端
CN104579360B (zh) 一种数据处理的方法和设备
CN107480074B (zh) 一种缓存方法、装置及电子设备
US8502709B2 (en) Decoding variable length codes in media applications
CN107801095B (zh) 一种音视频解码方法及终端设备
JP2017519467A5 (zh)
CN108038398B (zh) 一种二维码解析能力测试方法、装置及电子设备
CN108875046A (zh) 一种存储系统访问方法、装置及电子设备
CN109104198A (zh) 一种数据压缩方法、解压方法、装置及电子设备
CN106095587B (zh) 应用程序的缓存扫描方法、装置及电子设备
CN108920353A (zh) 一种测试方法、装置及电子设备
CN110717323B (zh) 文档分章方法及装置、终端和计算机可读存储介质
CN107402720B (zh) 一种硬盘的处理方法、装置及终端
US8849051B2 (en) Decoding variable length codes in JPEG applications
CN106155840B (zh) 当重组碎片jpeg图像时使用的方法和设备
CN109146765B (zh) 一种图像处理方法、主处理器、协处理器及电子设备
CN109617708B (zh) 一种埋点日志的压缩方法、设备及系统
CN111061722B (zh) 一种数据压缩、数据解压缩方法、装置及设备
CN108848106B (zh) 通过音频流传输自定义数据方法、装置及可读存储介质
CN114372297A (zh) 一种基于消息摘要算法校验文件完整性的方法及装置
CN108388760A (zh) 一种印刷电路板布线方法、装置及电子设备
CN109164987A (zh) 一种磁盘阵列卡的控制方法、装置及电子设备
CN114071154A (zh) 一种数据解码方法、装置、电子设备及可读存储介质
CN109741756B (zh) 基于usb外接设备传输操作信号的方法及系统

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20181228