CN103840835A - 一种数据解压缩方法及装置 - Google Patents

一种数据解压缩方法及装置 Download PDF

Info

Publication number
CN103840835A
CN103840835A CN201210487062.0A CN201210487062A CN103840835A CN 103840835 A CN103840835 A CN 103840835A CN 201210487062 A CN201210487062 A CN 201210487062A CN 103840835 A CN103840835 A CN 103840835A
Authority
CN
China
Prior art keywords
data
byte
translation
decompression
register
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
CN201210487062.0A
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.)
YILUN SEMICONDUCTOR TECHNOLOGY Co Ltd
Original Assignee
YILUN SEMICONDUCTOR 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 YILUN SEMICONDUCTOR TECHNOLOGY Co Ltd filed Critical YILUN SEMICONDUCTOR TECHNOLOGY Co Ltd
Priority to CN201210487062.0A priority Critical patent/CN103840835A/zh
Publication of CN103840835A publication Critical patent/CN103840835A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明为一种数据解压缩方法及装置,该装置包括:压缩数据接收单元,用于接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:至少一个字节的用于指示压缩重复数据字的转换数据,转换数据未出现在原始数据中;解压缩单元,用于加载转换数据到转换数据寄存器,将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据字或未压缩的数据字;数据接收寄存单元,用于存储解压缩单元得到的解压缩的重复数据字和/或未压缩数据字。

Description

一种数据解压缩方法及装置
技术领域
本发明涉及数据压缩及解压缩技术,特别涉及现场可编程门阵列(FPGA)等芯片的数据解压缩技术,具体地讲是一种数据解压缩方法及装置。
背景技术
FPGA是一种可以在上电之后,再把需要的控制程序进行输入的芯片。因此,FPGA不是固定的电路,而是一种可以视需要而改变功能的芯片,FPGA的功能可以随着输入的数据而改变。编程引擎负责把决定FPGA功能的数据编入FPGA,并对这些决定FPGA功能的数据进行解压缩处理。因为这些输入FPGA的数据中经常有同样地值出现很多次的情况,所以在输入FPGA之前,有必要把这些数据进行压缩,以减少所需的总数据,从而减少对储存芯片的要求,并能够缩短编程的时间。
美国专利US7589648公开了一种数据解压缩方案,该数据解压缩方案的压缩运算法则是,浏览所需原始数据之后,把其中的8个字节作为一个单元组,在一个单元组中将“00”字节转换成一个比特“0”,并将不是“00”的字节转换成一个比特“1”,每8个字节的数据之前要先产生一个字节的指示数据,即上面所述的比特“0”和比特“1”构成的指示数据字节,之后再跟上不是“00”的字节,它们的顺序是跟着原始数据的顺序。例如:
原始数据是AB00001200340000,由此压缩运算法则可以转换成‘10010100’AB1234。单引号‘’所示部分为一个字节的指示数据,之后再跟上不是“00”的字节,它们的顺序是跟着原始数据的顺序。该压缩算法可以使1个字节“00”变成1个比特,所以就省下了7个比特,但是,不是“00”的字节部分就要多了1个比特来代表,所以解压缩电路就要知道“00”的字节要出现在8个字节的哪一个位置,根据指示字节来转换,同时也要知道所接收的字节是数据还是指示字节。该压缩算法需要产生1个额外的指示字节,而且它还需要知道不是“00”的字节的排列位置。
发明内容
本发明实施例提供了一种数据解压缩方法及装置,以解决在不需要额外的指示字节的情况下,实现数据压缩之后的解压缩问题。
本发明的目的之一是,提供一种数据解压缩方法,该方法包括:接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:至少一个字节的用于指示压缩重复数据的转换数据,转换数据未出现在原始数据中;加载转换数据到转换数据寄存器,将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据或未压缩的数据;将得到的解压缩的重复数据和/或未压缩的数据插入到解压数据单元组中。
本发明的目的之一是,提供一种数据解压缩装置,该装置包括:压缩数据接收单元,用于接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:至少一个字节的用于指示压缩重复数据字的转换数据,转换数据未出现在原始数据中;解压缩单元,用于加载转换数据到转换数据寄存器,将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据字或未压缩的数据字;数据接收寄存单元,用于存储解压缩单元得到的解压缩的重复数据字和/或未压缩数据字。
本发明的目的之一是,提供一种数据解压缩方法,该方法包括:接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:多个字节的用于指示对应的压缩重复数据的转换数据和未压缩数据,每个转换数据均未出现在原始数据中,且每个转换数据所指示的重复数据互不相同;加载多个字节的转换数据到转换数据寄存器,将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据或未压缩的数据;将得到的解压缩的重复数据和/或未压缩的数据插入到解压数据单元组中。
本发明的目的之一是,提供一种数据解压缩装置,该装置包括:压缩数据接收单元,用于接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:多个字节的用于指示对应的压缩重复数据的转换数据和未压缩数据,每个转换数据均未出现在原始数据中,且每个转换数据所指示的重复数据互不相同;转换数据寄存器,用于存储多个字节的转换数据;比较器,用于将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据进行比较,得到解压缩的重复数据或未压缩的数据;解压数据寄存器,用于存储比较器得到的解压缩的重复数据和/或未压缩的数据。
本发明的有益效果在于:在不需要额外的指示字节的情况下,实现数据压缩之后的解压缩处理。并且加速对所要压缩的原始数据字节来做更有效的解压缩处理,以达成用更少的数据,实现简单有效的解压缩的运算。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的数据解压缩方法流程图;
图2为本发明实施例的数据解压缩装置的结构框图;
图3为本发明实施例的具有多个转换数据的数据解压缩方法流程图;
图4为本发明实施例的数据解压缩装置电路原理图;
图5为本发明实施例的压缩数据为“AA”时8个字节的“00”一次性写入8字节数据单元组的指针跳转和数据写入控制示意图;
图6为本发明实施例的压缩数据为“BB”时4个字节的“00”一次性写入8字节数据单元组的指针跳转和数据写入控制示意图;
图7为本发明实施例的压缩数据为“CC”时2个字节的“00”一次性写入8字节数据单元组的指针跳转和数据写入控制示意图;
图8为本发明实施例的压缩数据不为“AA,BB,CC”时一个字节的解压缩数据字一次性写入8字节数据单元组的指针跳转和数据写入控制示意图;
图9为本发明实施例的将压缩数据BB56CC78解压为0000000056000078的具体流程图;
图10为本发明实施例的具有数据解压装置的FPGA的电路原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例以字节“00”(十六进制计数)做为被压缩数据,并分别以一次处理8个字节“00”,4个字节“00”,和2个字节“00”的数据压缩方案来做具体的方案描述。本实施例的例子和附图均是以8个字节单元组、三个字节的转换数据和字节“00”来做所要压缩的原始数据字节的。
在进行本实施例的数据解压缩之前,对原始数据的压缩方法包括:先把原始数据浏览一遍,把每8个字节作为一个单元组,在浏览过程中同时针对连续的“00”字节来区分它们分别是8个“00”字节、4个“00”字节以及2个“00”字节。同时要找出3个不同的字节作为转换数据,并且这三个字节的转换数据必须从未出现在原始数据当中,完成浏览之后便开始重新组合原始数据,生成数据压缩后的数据单元组。假设字节“AA”、“BB”、“CC”从未出现在原始数据中,则以字节“AA”来替换8个字节的“00”,字节“BB”来替换4个字节的“00”,字节“CC”来替换2个字节的“00”,其他的数据就依照原来的顺序,最后再把这三个字节的转换数据“AA”、“BB”、“CC”写到一个三层的转换数据寄存器中。
如图1所示,本实施例的数据解压缩方法包括以下步骤:接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:至少一个字节的用于指示压缩重复数据的转换数据,转换数据未出现在原始数据中(步骤S101);加载转换数据到转换数据寄存器,将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据或未压缩的数据(步骤S102);将得到的解压缩的重复数据和/或未压缩的数据插入到解压数据单元组中(步骤S103)。
转换数据不为二进制数据的00000000。
如图2所示,本实施例的数据解压缩装置包括:压缩数据接收单元101,用于接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:至少一个字节的用于指示压缩重复数据字的转换数据,转换数据未出现在原始数据中;解压缩单元102,用于加载转换数据到转换数据寄存器,将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据字或未压缩的数据字;数据接收寄存单元103,用于存储解压缩单元得到的解压缩的重复数据字和/或未压缩数据字。
外部的数据压缩装置(如PC机等)首先将原始数据流(比特流或字节流)经过数据压缩得到对应的压缩数据(以字节为单位)以及三个字节的转换数据;然后再将压缩数据和三个字节的转换数据经压缩数据接收单元101送到解压缩单元102中,经过解压缩单元102的解压缩运算得到原始数据,解压缩后的原始数据也是以8个字节作为一个单元组放到数据接收寄存单元103中,其中解压缩单元102接收压缩数据接收单元101的压缩数据格式指示信号(compressed_data_format),compressed_data_format标示着送到解压缩单元102中的数据是压缩的数据或是非压缩的数据(其中compressed_data_format为“1”代表压缩的数据,为“0”代表非压缩的数据)。解压缩运算由图2所示的数据解压缩装置完成。
如图3所示,本实施例的数据解压缩方法包括:接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:多个字节的用于指示对应的压缩重复数据的转换数据和未压缩数据,每个转换数据均未出现在原始数据中,且每个转换数据所指示的重复数据互不相同(步骤S201);加载多个字节的转换数据到转换数据寄存器,将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据或未压缩的数据(步骤S202);将得到的解压缩的重复数据和/或未压缩的数据插入到解压数据单元组中(步骤S203)。
如图4所示,本实施例的数据解压缩装置包括:压缩数据接收单元201,用于接收由原始数据压缩而成的压缩数据流,压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:多个字节的用于指示对应的压缩重复数据的转换数据和未压缩数据,每个转换数据均未出现在原始数据中,且每个转换数据所指示的重复数据互不相同;转换数据寄存器202,用于存储多个字节的转换数据;比较器203,用于将转换数据寄存器中的一个字节的转换数据和数据单元组中一个字节的数据进行比较,得到解压缩的重复数据或未压缩的数据;解压数据寄存器206,用于存储比较器得到的解压缩的重复数据和/或未压缩的数据。
在本实施例的数据解压缩装置中,首先通过写转换数据指令将三个字节的转换数据“AA”、“BB”、“CC”写到一个对应的三层的转换数据寄存器202中,转换数据字节不能为字节“00”;然后再将转换数据、压缩数据、控制信号symbol_8/4/2_valid(转换数据字节不为“00”时,控制信号symbol_8/4/2_valid为“1”,此信号为“1”时可以进行反压缩的操作)、压缩数据格式指示信号(compressed_data_format)(compressed_data_format为“1”代表压缩的数据,为“0”代表非压缩的数据,此信号为“1”时可以进行反压缩的操作)通过比较器203得到对应的原始数据,以及控制字节指针(byte_pointer)的跳转;最后随着字节指针的跳转将反压缩后的原始数据字节写到8个字节数据单元组206中的对应位置(反压缩后的原始数据也是以8个字节作为一个单元组)。
字节计数器204(byte_counter)和字节指针(byte_pointer)的跳转都是根据压缩数据字节和转换数据字节的比较进行的,并且由通用时钟205来控制,字节指针的初始值为零。其中所用到的通用时钟可以是多个时钟源中的某一个,如图4所示的clock1、clock2或clock3中的某一个,由时钟选择信号来做选择。当压缩数据字节为“AA”时,将8个字节的“00”写到对应的8个字节单元组中,同时字节指针维持在零;当压缩数据字节为“BB”时,将4个字节的“00”写到从当前字节指针开始的连续的4个字节位置中,同时字节指针加4;当压缩数据字节为“CC”时,将2个字节的“00”写到从当前字节指针开始的连续的2个字节位置中,同时字节指针加2;当压缩数据字节跟三个字节的转换数据都不相同时,此压缩数据字节对应的原始数据字节是其本身,此时将此压缩数据字节写到当前字节指针所指的位置,同时字节指针加1。
在图5、图6、图7和图8中,都是在转换数据为AA,BB,CC,且以字节“AA”来替换8个字节的“00”,字节“BB”来替换4个字节的“00”,字节“CC”来替换2个字节的“00”的基础上来做描述本实施例的。
如图5所示,当压缩数据为“AA”时,此压缩数据和转换数据“AA”相同,其中“AA”代表8个字节的“00”,通过字节计数器(byte_counter)、字节指针(byte_pointer)的跳转以及对应数据的写入控制,一次性地将解压缩后的8个字节的“00”写入8字节数据单元组,同时字节指针维持在零。其中,只有当起始字节指针byte_pointer为pointer_0时,压缩数据字节才可能为“AA”,此时8个字节的“00”一次性写入8字节数据单元组中,字节指针维持在pointer_0。”
如图6所示,当压缩数据为“BB”时,此压缩数据和转换数据“BB”相同,“BB”代表4个字节“00”,通过字节计数器(byte_counter)、字节指针(byte_pointer)的跳转以及对应数据的写入控制,一次性地将解压缩后的4个字节的“00”写到8字节数据单元组的从当前字节指针开始的连续的4个字节位置中,同时字节指针加4;。其中,当起始字节指针为pionter_0、pointer_1、pointer_2、pointer_3、pointer_4时,压缩数据字节才可能为“BB”,此时4个字节的“00”一次性写入8字节数据单元组中,字节指针加4。
如图7所示,当压缩数据为“CC”时,此压缩数据和转换数据“CC”相同,“CC”代表2个字节“00”,通过字节计数器(byte_counter)、字节指针(byte_pointer)的跳转以及对应数据的写入控制,一次性地将解压缩后的2个字节的“00”写到8字节数据单元组从当前字节指针开始连续的2个字节位置中,同时字节指针加2;。其中,当起始字节指针为pionter_0、pointer_1、pointer_2、pointer 3、pointer 4、pointer_5、pointer_6时,压缩数据字节才可能为“CC”,此时2个字节的“00”一次性写入8字节数据单元组中,字节指针加2。
如图8所示,当压缩数据跟三个字节的转换数据AA,BB,CC都不相同时,此压缩数据字节对应的原始数据字节是其本身,通过字节计数器(byte_counter)、字节指针(byte_pointer)的跳转以及对应数据的写入控制,将此压缩数据字节写到8字节数据单元组的当前字节指针所指的位置,同时字节指针加1。其中,当压缩数据字节跟三个字节的转换数据都不相同时,起始指针可以在任意位置,此时将此压缩数据字节(Data)写到当前字节指针所指的位置,字节指针加1。
如图9所示,将压缩数据BB56CC78经过本实施例的数据解压缩装置解压为0000000056000078的具体流程包括:字节“AA”、“BB”、“CC”为转换数据,其中字节“AA”代表8个字节的“00”,字节“BB”代表4个字节的“00”,字节“CC”代表2个字节的“00”。起始字节指针在pointer_0(byte7)。下面所述为解压缩的具体流程:
压缩数据字节“BB”对应的原始数据为4个字节的“00”,将4个字节的“00”写到从字节指针pointer_0(byte7)开始的连续的4个字节位置中,同时字节指针加4跳转到pointer_4(byte3)。
压缩数据字节“56”对应的原始数据为其本身,将字节“56”写到字节指针pointer_4(byte3)所指的字节位置,同时字节指针加1跳转到pointer_5(byte2)。
压缩数据字节“CC”对应的原始数据为2个字节的“00”,将2个字节的“00”写到从字节指针pointer_5(byte2)开始的连续的2个字节位置中,同时字节指针加2跳转到pointer_7(byte0)。
压缩数据字节“78”对应的原始数据为其本身,将字节“78”写到字节指针pointer_7(byte0)所指的字节位置,同时字节指针加1跳转到pointer_0(byte7)。
本实施例的数据解压缩装置还可进行如下的解压缩运算:
例如:将压缩数据ABCC120034CC解压缩为AB00001200340000,其中压缩数据“CC”代表2个字节的“00”。
将压缩数据AA解压缩为0000000000000000,其中压缩数据“AA”代表8个字节的“00”。
将压缩数据BB56CC78解压缩为0000000056000078,其中压缩数据“BB”代表4个字节的“00”,压缩数据“CC”代表2个字节的“00”。
将压缩数据1234BBCC解压缩为1234000000000000,其中压缩数据“BB”代表4个字节的“00”,压缩数据“CC”代表2个字节的“00”。
将压缩数据123456789ABCDEF0解压缩为123456789ABCDEF0,其中没有与转换数据相同的压缩数据字节,所以压缩数据123456789ABCDEF0中没有压缩的重复数据字,因此压缩数据123456789ABCDEF0解压缩后的原始数据还是123456789ABCDEF0。
如图10所示,本实施例的数据解压缩装置可以设置于FPGA等可编程设备中。其中,PC机输出的原始数据可经过压缩软件进行压缩,然后将压缩数据送到具有数据解压装置的FPGA中。压缩后的数据和转换数据进入到FPGA芯片,然后再进入到Config模块中的数据解压装置(DECOMP)进行解压缩处理,解压后的数据和8字节解压缩完成控制信号再送到数据移位寄存器(DSR)中,最后再把处理后的原始数据放到SRAM当中,这样就完成了FPGA芯片中数据的解压和存储过程。
本实施例不只针对字节“00”进行数据的解压缩(二进制数据为00000000),还可以对压缩的其它任意连续重复性比较大的原始数据字节进行解压缩,所要压缩的原始数据字节的个数也可以是多个,如:可以针对连续重复性比较大的字节“A5”、“B3”进行压缩和解压缩;而且不需要只针对一个字节做处理,它可以一次处理的数据字节的个数也是可以随着数据的连续重复性而变化的,比如8个字节、6个字节、5个字节、4个字节或2个字节等任意字节。
下面举例说明所要压缩的原始数据字节不是“00”和所要使用的转换数据字节为多个时的情况。
假设数据流中字节“A5”的连续重复性很大,且经常出现的连续个数为18、16、10、8、4、2,那么这个数据流就可以把18个字节作为一个单元组,选择6个从未出现在原始数据当中的字节作为转换数据,同时把字节“A5”作为所要压缩的原始数据。假设字节“77”、“88”、“99”、“AA”、“BB”、“CC”从未出现在原始数据中,则以字节“77”来替换18个字节的“A5”,字节“88”来替换16个字节的“A5”,字节“99”来替换10个字节的“A5”,字节“AA”来替换8个字节的“A5”,字节“BB”来替换4个字节的“A5”,字节“CC”来替换2个字节的“A5”,其他的数据就依照原来的顺序;然后把所要压缩的原始数据字节“A5”写到对应的原始数据寄存器中,用来指示所要压缩的原始数据字节,其中原始数据寄存器的层数可以根据所要压缩的原始数据字节的个数做相应调整;最后再把这六个字节的转换数据“77”、“88”、“99”、“AA”、“BB”、“CC”写到一个六层的转换数据寄存器中。其中转换数据寄存器的层数可以根据所使用的转换数据的个数来做相应的调整,转换数据寄存器的个数可以视所要压缩的原始数据字节的个数做相应调整。设计的复杂程度也随着所要压缩的原始数据字节的个数而变化,所要压缩的原始数据字节的个数越多,设计的复杂程度也会相应的变大。本实施例的数据解压缩装置可对上述的压缩数据进行解压缩处理。
下面的例子描述了有两个原始数据字节需要压缩时的过程。
假设数据流中字节“A5”、“B3”的连续重复性很大,且“A5”经常出现的连续个数为8、4、2,“B3”经常出现的连续个数为7、5、3,那么这个数据流就可以把8个字节作为一个单元组(单元组的长度可以视需要自己调整),选择6个从未出现在原始数据当中的字节作为转换数据,同时把字节“A5”、“B3”作为所要压缩的原始数据字节。假设字节“12”、“34”、“56”、“77”、“88”、“99”从未出现在原始数据中,则以字节“12”来替换8个字节的“A5”,字节“34”来替换4个字节的“A5”,字节“56”来替换2个字节的“A5”,字节“77”来替换7个字节的“B3”,字节“88”来替换5个字节的“B3”,字节“99”来替换3个字节的“B3”,其他的数据就依照原来的顺序;然后把所要压缩的原始数据字节“A5”、“B3”写到一个两层的原始数据寄存器中,用来指示所要压缩的原始数据字节;然后再把转换数据字节“12”、“34”、“56”写到一个三层的转换数据寄存器中,用来指示所要压缩的原始数据字节“A5”的转换数据;最后再把转换数据字节“77”、“88”、“99”写到另一个三层的转换数据寄存器中,用来指示所要压缩的原始数据字节“B3”的转换数据。如上所述,有两个原始数据字节需要压缩时,就需要一个两层的原始数据寄存器,同时需要两个相应层数的转换数据寄存器。本实施例的数据解压缩装置可对上述的压缩数据进行解压缩处理。
本实施例的原始数据压缩方案适用于任意大小的数据流,其中单元组的长度、转换数据的个数和所要压缩的原始数据字节都可以根据数据流的大小和数据的连续重复性来做相应的调整。其中单元组的长度可以为任意整数,可以适当的变大或变小。
本发明技术方案不会产生比现有技术更多的数据,它只会使数据变得比原来少,达到减少外面的数据容量要求的目的,且由于数据的减少更加速了程序的编程。
本发明实施例中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围和材料上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种数据解压缩方法,其特征是,所述的方法包括:
接收由原始数据压缩而成的压缩数据流,所述的压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:至少一个字节的用于指示压缩重复数据的转换数据,所述的转换数据未出现在所述的原始数据中;
加载所述的转换数据到转换数据寄存器,将所述转换数据寄存器中的一个字节的转换数据和所述数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据或未压缩的数据;
将得到的解压缩的重复数据和/或未压缩的数据插入到解压数据单元组中。
2.根据权利要求1所述的数据解压缩方法,其特征是,每个数据单元组包括:至少一个字节的用于指示压缩重复数据字的转换数据和未压缩数据字。
3.根据权利要求1所述的数据解压缩方法,其特征是,所述的转换数据不为二进制数据的00000000。
4.一种数据解压缩装置,其特征是,所述的装置包括:
压缩数据接收单元,用于接收由原始数据压缩而成的压缩数据流,所述的压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:至少一个字节的用于指示压缩重复数据字的转换数据,所述的转换数据未出现在所述的原始数据中;
解压缩单元,用于加载所述的转换数据到转换数据寄存器,将所述转换数据寄存器中的一个字节的转换数据和所述数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据字或未压缩的数据字;
数据接收寄存单元,用于存储所述解压缩单元得到的解压缩的重复数据字和/或未压缩数据字。
5.一种数据解压缩方法,其特征是,所述的方法包括:
接收由原始数据压缩而成的压缩数据流,所述的压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:多个字节的用于指示对应的压缩重复数据的转换数据和未压缩数据,每个转换数据均未出现在所述的原始数据中,且每个转换数据所指示的重复数据互不相同;
加载多个字节的转换数据到转换数据寄存器,将所述转换数据寄存器中的一个字节的转换数据和所述数据单元组中一个字节的数据送入比较器进行比较,得到解压缩的重复数据或未压缩的数据;
将得到的解压缩的重复数据和/或未压缩的数据插入到解压数据单元组中。
6.一种数据解压缩装置,其特征是,所述的装置包括:
压缩数据接收单元,用于接收由原始数据压缩而成的压缩数据流,所述的压缩数据流具有一连串可变数量的数据单元组,每个数据单元组包括:多个字节的用于指示对应的压缩重复数据的转换数据和未压缩数据,每个转换数据均未出现在所述的原始数据中,且每个转换数据所指示的重复数据互不相同;
转换数据寄存器,用于存储多个字节的转换数据;
比较器,用于将所述转换数据寄存器中的一个字节的转换数据和所述数据单元组中一个字节的数据进行比较,得到解压缩的重复数据或未压缩的数据;
解压数据寄存器,用于存储所述比较器得到的解压缩的重复数据和/或未压缩的数据。
7.根据权利要求6所述的数据解压缩装置,其特征是,所述的转换数据寄存器为多层寄存器,所述的多层寄存器的层数与转换数据的个数相同。
8.根据权利要求6所述的数据解压缩装置,其特征是,所述的数据解压缩装置还包括:静态随机存储器SRAM,用于存储解压缩后的原始数据。
9.根据权利要求6所述的数据解压缩装置,其特征是,所述的数据解压缩装置包含在一个现场可编程逻辑设备中或包含在一个现场可编程门阵列FPGA中。
CN201210487062.0A 2012-11-26 2012-11-26 一种数据解压缩方法及装置 Pending CN103840835A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210487062.0A CN103840835A (zh) 2012-11-26 2012-11-26 一种数据解压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210487062.0A CN103840835A (zh) 2012-11-26 2012-11-26 一种数据解压缩方法及装置

Publications (1)

Publication Number Publication Date
CN103840835A true CN103840835A (zh) 2014-06-04

Family

ID=50804033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210487062.0A Pending CN103840835A (zh) 2012-11-26 2012-11-26 一种数据解压缩方法及装置

Country Status (1)

Country Link
CN (1) CN103840835A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656195A (zh) * 2015-11-04 2017-05-10 北京信威通信技术股份有限公司 数据压缩、解压缩的方法及系统
CN109637111A (zh) * 2018-12-25 2019-04-16 歌尔科技有限公司 红外信号压缩方法、装置、用户设备及存储介质
CN112486885A (zh) * 2020-12-07 2021-03-12 珠海优特智厨科技有限公司 数据帧的生成方法、存储介质及计算机设备
CN113407237A (zh) * 2021-08-23 2021-09-17 杭州炬华科技股份有限公司 电能表通讯数据压缩方法与系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949670A (zh) * 2005-10-10 2007-04-18 中兴通讯股份有限公司 一种数据压缩及解压缩方法
CN101483778A (zh) * 2009-01-19 2009-07-15 威盛电子股份有限公司 用以译码数据位流的译码方法与装置
US7589648B1 (en) * 2005-02-10 2009-09-15 Lattice Semiconductor Corporation Data decompression
WO2012090564A1 (ja) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データ要素列を処理する装置及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7589648B1 (en) * 2005-02-10 2009-09-15 Lattice Semiconductor Corporation Data decompression
CN1949670A (zh) * 2005-10-10 2007-04-18 中兴通讯股份有限公司 一种数据压缩及解压缩方法
CN101483778A (zh) * 2009-01-19 2009-07-15 威盛电子股份有限公司 用以译码数据位流的译码方法与装置
WO2012090564A1 (ja) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データ要素列を処理する装置及び方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656195A (zh) * 2015-11-04 2017-05-10 北京信威通信技术股份有限公司 数据压缩、解压缩的方法及系统
CN109637111A (zh) * 2018-12-25 2019-04-16 歌尔科技有限公司 红外信号压缩方法、装置、用户设备及存储介质
CN112486885A (zh) * 2020-12-07 2021-03-12 珠海优特智厨科技有限公司 数据帧的生成方法、存储介质及计算机设备
CN112486885B (zh) * 2020-12-07 2024-06-07 珠海优特智厨科技有限公司 数据帧的生成方法、存储介质及计算机设备
CN113407237A (zh) * 2021-08-23 2021-09-17 杭州炬华科技股份有限公司 电能表通讯数据压缩方法与系统

Similar Documents

Publication Publication Date Title
US10972126B2 (en) Data compression and storage
CN101095284B (zh) 用于有选择地压缩和解压缩数据的设备与方法
EP4012928B1 (en) Methods, devices and systems for semantic-value data compression and decompression
US20120182163A1 (en) Data compression devices, operating methods thereof, and data processing apparatuses including the same
CN106503165A (zh) 压缩、解压方法、装置以及设备
CN111008230B (zh) 数据存储方法、装置、计算机设备及存储介质
US20140189279A1 (en) Method of compressing data and device for performing the same
US11791838B2 (en) Near-storage acceleration of dictionary decoding
CN110784225A (zh) 数据压缩、解压方法及相关装置、电子设备、系统
CN103840835A (zh) 一种数据解压缩方法及装置
CN106708468B (zh) 一种除法运算装置
US10944423B2 (en) Verifying the correctness of a deflate compression accelerator
CN110266316A (zh) 一种数据压缩、解压方法、装置和设备
CN108141225B (zh) 使用simd引擎的通用数据压缩
EP3295568B1 (en) Improved compressed caching in a virtual memory system
WO2017007550A1 (en) Systems and methods for providing non-power-of-two flash cell mapping
US9287893B1 (en) ASIC block for high bandwidth LZ77 decompression
Yuan et al. Test data compression for system-on-a-chip using count compatible pattern run-length coding
US7446679B1 (en) Compression and decompression of configuration data for programmable logic devices
JP2021111320A (ja) データ出力方法、データ取得方法、装置および電子機器
US8018359B2 (en) Conversion of bit lengths into codes
CN105931278B (zh) 用于二维块比特流压缩和解压的方法和装置
Mamun et al. Hardware Approach of Lempel-Ziv-Welch Algorithm for Binary Data Compression
RU2482604C1 (ru) Способ сжатия цифровой информации с помощью эталонного электрического сигнала
CN115333544B (zh) 一种数据解压缩电路及其方法、芯片及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140604

WD01 Invention patent application deemed withdrawn after publication