CN111384962B - 数据压缩解压装置和数据压缩方法 - Google Patents
数据压缩解压装置和数据压缩方法 Download PDFInfo
- Publication number
- CN111384962B CN111384962B CN201811628198.2A CN201811628198A CN111384962B CN 111384962 B CN111384962 B CN 111384962B CN 201811628198 A CN201811628198 A CN 201811628198A CN 111384962 B CN111384962 B CN 111384962B
- Authority
- CN
- China
- Prior art keywords
- value
- data
- code
- digit
- code length
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6023—Parallelization
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及一种数据压缩解压装置和数据压缩方法,可以并行压缩n个输入的数据流,且在输入和输出端均设置FIFO存储器,对输入的数据流以及输出的压缩编码结果均进行同步操作,保证了并行对待压缩数据的多个数据流进行压缩,或者对压缩数据进行解压时,输出的结果准确。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据压缩解压装置和数据压缩方法。
背景技术
数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据冗余和存储空间的一种技术方法。
然而,传统的数据压缩方法,存在效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种高效压缩数据的数据压缩解压装置和数据压缩方法。
一种数据压缩解压装置,包括:n个压缩解压操作执行组件,每一所述压缩解压操作执行组件包括输入FIFO存储器、至少一个压缩解压操作执行部件以及输出FIFO存储器,所述输入FIFO存储器与所述输出FIFO存储器之间串接所述多个压缩操作执行部件,其中,n为正整数,
各个所述输入FIFO存储器用于对接收的数据流执行同步操作,并将同步操作之后的数据流传输至连接的压缩操作执行部件;
各个所述压缩解压操作执行组件中串接的至少一个压缩解压操作执行部件,用于依次对接收的输入数据执行对应的压缩子操作,得到各个数据流的压缩编码值;
各个所述输出FIFO存储器用于接收连接的压缩解压操作执行部件发送的压缩编码值,并将接收的所述压缩编码值进行同步操作后输出。
一种数据压缩方法,所述方法包括:
将待压缩数据分割为多个数据流;
获取n个数据流,对所述n个数据流进行同步操作,并将同步操作后的所述n个数据流并行压缩,得到n个压缩编码值,其中,n为正整数;
对所述n个压缩编码值进行同步操作,并将同步操作后的所述n个压缩编码值,按照各个数据流在待压缩数据中的顺序和/或位置写出接收压缩编码值;
重复执行所述获取n个数据流至写出所述n个压缩编码值的步骤,直至单次输出压缩编码值的数量小于n,之后终止获取数据流。
上述数据压缩解压装置和数据压缩方法,可以并行压缩n个输入的数据流,且在输入和输出端均设置FIFO存储器,对输入的数据流以及输出的压缩编码结果均进行同步操作,保证了并行对待压缩数据的多个数据流进行压缩,或者对压缩数据进行解压时,输出的结果准确。
附图说明
图1为一个实施例中数据压缩解压装置的结构框图;
图2为一个实施例中数据压缩解压装置的结构框图;
图3为一个实施例中数据压缩解压装置的结构框图;
图4为一个实施例中数据压缩解压装置的结构框图;
图5为一个实施例中数据压缩解压装置的结构框图;
图6为一个实施例中数据压缩解压装置的结构框图;
图7为一个实施例中数据压缩解压装置的结构框图;
图8为一个实施例中数据压缩解压装置的结构框图;
图9为一个实施例中数据压缩解压装置的结构框图;
图10为一个实施例中数据压缩解压装置的结构框图;
图11为一个实施例中一种数据压缩方法的流程示意图;
图12为一个实施例中一种数据解压方法的流程示意图;
图13为另一个实施例中一种数据压缩方法的补充步骤的流程示意图;
图14为一个实施例中一种数据解压方法补充步骤的流程示意图;
图15为一个实施例中各个数据流进行压缩的步骤的流程示意图;
图16为一个实施例中各个数据流进行解压的步骤的流程示意图;
图17为另一个实施例中各个数据流进行压缩的步骤的流程示意图;
图18为另一个实施例中各个数据流进行解压的步骤的流程示意图;
图19为一个实施例中各个数据流进行压缩的步骤的流程示意图;
图20为一个实施例中各个数据流进行解压的步骤的流程示意图;
图21为另一个实施例中各个数据流进行压缩的步骤的流程示意图;
图22为另一个实施例中各个数据流进行解压的步骤的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1-图10所示,为本申请其中一个实施例中的数据压缩解压装置100的结构框图,图1中数据压缩解压装置100,包括:n个压缩解压操作执行组件110,每一所述压缩解压操作执行组件包括输入FIFO存储器111、至少一个压缩解压操作执行部件112以及输出FIFO存储器113,所述输入FIFO存储器111与所述输出FIFO存储器113之间串接所述多个压缩操作执行部件112,其中,n为正整数。
其中,各个所述输入FIFO存储器111用于对接收的数据流执行同步操作,并将同步操作之后的数据流传输至连接的压缩操作执行部件;各个所述压缩解压操作执行组件110中串接的至少一个压缩解压操作执行部件112,依次对接收的输入数据执行对应的压缩子操作,得到各个数据流的压缩编码结果;各个所述输出FIFO存储器用于接收连接的压缩解压操作执行部件发送的压缩编码结果,并将接收的所述压缩编码结果进行同步操作后输出。进一步地,输出FIFO存储器按照各个数据流在待压缩数据中的顺序和/或位置写出接收压缩编码结果。应当清楚的是,数据流中的数据为待压缩的数据。
可选地,该数据压缩解压装置100还可以包括数据分割电路120,用于对输入的数据进行分割,得到多个数据流。可选地,输入数据可以为待压缩数据或压缩数据。可选地,数据分割电路120分割得到的数据流的大小可以为1024kb,或者其他设定大小。
进一步地,该数据压缩解压装置100还可以对压缩数据进行解压。
具体地,数据分割电路120将压缩数据分割为多个数据流,之后各个所述输入FIFO存储器111对接收的数据流执行同步操作,并将同步操作之后的数据流传输至连接的压缩操作执行部件,各个所述压缩操作执行组件110中串接的所述多个压缩操作执行部件112,依次对接收的输入数据执行对应的解压子操作,得到各个数据流的解压结果,各个所述输出FIFO存储器113用于接收连接的压缩解压操作执行部件发送的解压结果,并将接收的所述解压结果进行同步操作后输出。
本实施例中的数据压缩解压装置,可以并行压缩或解压n个输入的数据流,且在输入和输出端均设置FIFO存储器,对输入的数据流以及输出的压缩编码结果或者解压结果均进行同步操作,保证了并行对待压缩数据的多个数据流进行压缩,或者对压缩数据进行解压时,输出的结果准确。
可选地,可以根据输入FIFO存储器111的面积以及执行的数据处理的类型设置输入位宽,其中,所述输入位宽为输入FIFO存储器单次获取数据的字节数。执行的数据处理的类型包括压缩数据或解压数据。例如,在进行数据压缩时,输入FIFO存储器的输入位宽可以为64kb等数值。在进行数据解压时,输入FIFO存储器的输入位宽可以为16kb等数值。可选地,可以根据输出FIFO存储器113的面积以及执行的数据处理的类型设置输出位宽,其中,所述输入位宽为输出FIFO存储器单次输出数据的字节数。例如,在进行数据压缩时,输出FIFO存储器的位宽16kb等数值。在进行数据压缩时,输出FIFO存储器的输入位宽可以为64kb等数值。
在其中一个实施例中,上述输入FIFO存储器111、压缩解压操作执行部件112以及输出FIFO存储器113上均设置结束信号发射器,该结束信号发射器用于发射结束信号。
具体地,在数据压缩解压装置100进行数据压缩或解压时,若n个压缩解压操作执行组件中,存在未输入数据流的压缩解压操作执行组件,则该未输入数据流的压缩解压操作执行组件的输入FIFO存储器上的结束信号发射器发射结束信号至其连接的压缩解压操作执行部件,接收到结束信号的压缩解压操作执行部件通过其安装的结束信号发射器将结束信号向后传递,直至将该结束信号传送至输出FIFO存储器,该未输入数据流的压缩解压操作执行组件的输出FIFO存储器通过其安装的结束信号发射器输出结束信号,此时,数据压缩解压装置100会终止当前执行的压缩或解压过程。
本实施例中的数据压缩解压装置根据某一压缩解压操作执行组件在压缩或解压过程中在无数据流的输入时,触发设置的结束信号发射器发射结束信号进而控制数据的压缩或解压进程,避免了数据压缩或解压过程在结束时因需补齐输入数据而造成的额外开销。
在其中一个实施例中,如图3所示,数据压缩解压装置100还可以包括数据混洗操作执行部件140。该数据混洗操作执行部件140连接压缩解压操作执行组件110的输入FIFO存储器111。该数据混洗操作执行部件140,用于接收数据混洗信号后,对通过的原始数据流进行混洗,得到数据流。可选地,该原始数据流可以来自待压缩数据,或者压缩数据。
可选地,该数据混洗操作执行部件140按照预设规则,对所述n个所述原始数据流中后段数据进行混洗,得到n个数据流,其中,所述预设规则包括:相邻m个数据流进行混洗,或者,跳过k个数据流进行混洗,所述m为正整数,所述k为正整数。
例如,n=16,设置m=4,使用序号0-15区分各个压缩解压操作执行组件110,在输入原始数据流的过程中进行1次数据混洗操作。此时,数据混洗操作执行部件140在接收对应的数据混洗信号后,对相邻的四个压缩解压操作执行组件110的原始数据流进行数据混洗,即对序号为0-3压缩解压操作执行组件进行数据混洗;对4-7压缩解压操作执行组件进行数据混洗;对8-11压缩解压操作执行组件进行数据混洗;对12-15压缩解压操作执行组件进行数据混洗。
例如,n=16,设置k=4,使用序号0-15区分各个压缩解压操作执行组件110,同样使用序号0-15区分原始数据流,在输入原始数据流的过程中进行3次数据混洗操作。此时,数据混洗操作执行部件140在接收对应的数据混洗信号后,跳过四个压缩解压操作执行组件110的原始数据流进行数据混洗,此时,序号0压缩解压操作执行组件110得到的最终的数据流包含4段子数据流,依次为序号为0、4、8、12的数据流中对应子数据流。
应当清楚的是,若未原始数据流未执行数据混洗操作,则输入FIFO中的原始数据流即为后续操作中的数据流。
本实施例中的数据压缩解压装置可以实现对输入的原始数据流进行混洗,可以克服各个压缩解压操作执行组件的原始数据流中的数据在压缩或解压效率差异较大时,造成的各个压缩解压操作执行组件执行时间差异大,降低数据压缩或解压效率的问题。
在其中一个实施例中,如图4所示,数据压缩解压装置100的各个所述压缩解压操作执行组件110中相邻的两个压缩解压操作执行部件112之间串接一存储器115,
所述相邻的两个压缩解压操作执行部件之间串接一存储器115,用于存储对应的所述相邻的两个压缩解压操作执行部件中在前的压缩解压操作执行部件的输出结果。
具体地,压缩解压操作执行组件110中相邻的两个压缩解压操作执行部件112中在后的压缩解压操作执行部件,获取连接的存储器115中的输出结果作为输入数据执行对应的压缩或解压子操作。应当清楚的是,该输出结果为在前的压缩解压操作执行部件的输出结果。
本实施例中的通过在相邻的两个压缩解压操作执行部件之间串接一存储器,使得各个压缩解压操作执行组件中各个压缩解压操作执行部件的输出结果单独存储,保证了各个压缩解压操作执行组件处理的数据流的执行结果的准确性。
在其中一个实施例中,如图5所示,数据压缩解压装置100还可以包括控制电路130,该控制电路130分别连接所述数据分割电路120和所述压缩操作执行组件110。具体地,控制电路130用于控制数据分割电路120执行分割操作。其中,控制电路130用于控制数据分割电路120对输入的待压缩数据或压缩数据按照预设数据大小执行分割操作。可选地预设数据大小可以为1024kb等数值。可选地,控制电路130还可以用于控制压缩解压操作执行组件110执行压缩操作,所述压缩操作包含至少一个压缩子操作。可选地,控制电路130还可以用于控制压缩解压操作执行组件110执行解压操作,所述解压操作包含至少一个解压子操作。
在其中一个实施例中,在进行数据压缩时,如图6所述,数据压缩解压装置100的各个压缩解压操作执行组件110中串接的压缩解压操作执行部件112,包括:依次串接的查询操作执行部件1121、比较操作执行部件1122以及加法操作执行部件1123,所述加法操作执行部件1123连接所述输出FIFO存储器113。可选地,该比较操作执行部件1122还可以连接输入FIFO存储器111。可选地,该查询操作执行部件1121还可以连接,输出FIFO存储器113。
本实施例的数据压缩解压装置100可以根据接收的控制信号,控制输入的数据流进入压缩解压操作执行组件中各个压缩解压操作执行部件的顺序。例如,在进行数据压缩时,数据流流向为:查询操作执行部件1121→较操作执行部件1122→加法操作执行部件1123。相应地,据解压时,数据流流向为:比较操作执行部件1122→加法操作执行部件1123→查询操作执行部件1121。
可选地,若该数据压缩解压装置100仅为了实现数据压缩或解压的单一操作,在进行数据压缩时各个压缩解压操作执行组件110的串接次序为:依次串接查询操作执行部件1121、比较操作执行部件1122以及加法操作执行部件1123。在进行数据解压时各个压缩解压操作执行组件110的串接次序为:依次串接比较操作执行部件1122、加法操作执行部件1123以及查询操作执行部件1121。
查询操作执行部件1121,用于依次获取所述数据流中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
比较操作执行部件1122,用于访问预设的码长边界表,根据所述数据流中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定所述数据流中每一数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长。
加法操作执行部件1123,用于根据预设的码长基础值表以及数据流中每一数字的编码码长,依次得到所述数据流中每一数字的基础值,将所述数据流中每一数字的排序值与对应的基础值相加得到所述每一数字的初始编码值,之后将各个初始编码值按照对应的编码码长进行转换,得到所述数据流中各个数字的压缩编码值,其中,所述码长基础值表包括每一所述编码码长的基础值。
可选地,比较操作执行部件1122,具体用于查找码长边界表中排序值不小于当前数字的最小的排序值,根据所述码长边界表中排序值不小于当前数字的最小的排序值和所述码长表确定当前符号的编码码长。
本实施例中的数据压缩解压装置100可以通过依次串接的查询操作执行部件、比较操作执行部件以及加法操作执行部件,依次执行查询、比较以及加法操作,替换传统的查表操作对待压缩数据进行压缩编码,由于本实施例中,使用的符号序列表、码长边界表、码长表以及码长基础值表中的数据量小,因此,该数据压缩解压装置100可以高效的进行数据压缩。由于该数据压缩方法得到的压缩数据的压缩效率与传统的Huffman编码基本一致,为方便表达,在下文提及该数据压缩方法时使用“改进的Huffman编码”表示该数据压缩方法。
可选地,上述实施例中的符号序列表,可以根据如下步骤进行设定:
根据待压缩数据中各个数字的出现概率,降序排列所述待压缩数字中的各个数字,得到各个所述数字的排序值,使用各个所述数字以及对应的排序值构建符号序列表。
可选地,上述实施例中的码长表,可以根据如下步骤进行设定:
首先,将待压缩数据中各个数字的Huffman编码的码长,将其作为待压缩数据中各个数字的编码码长。可选地,可以首先根据待压缩数据中各个数字的出现概率得到对应的Huffman树。之后,再根据各个数字在该Huffman树中对应的叶子结点到根结点的路径长度,得到待压缩数据中各个数字的编码码长。在一示例中:待压缩数据中包括的数字:10、20、30、40、50,对应的出现概率为:0.4、0.1、0.2、0.2、0.1。控制电路110根据待压缩数据中各个数字的出现概率得到的Huffman树如图7所示。由该图7可得,10、20、30、40、50对应的叶子结点到根据结点的路径长度分别为2、3、2、2、3,由于Huffman树中各个叶子结点到根结点的路径长度对应Huffman编码的编码码长,因此,编码电路130在该示例中得到的10、20、30、40、50对应的编码码长分别为2、3、2、2、3。可选地,还可以直接待压缩数据中各个数字的Huffman编码的编码码长,得到待压缩数据中各个数字的编码码长。承接上述示例,根据上述10、20、30、40、50的出现概率构建的Huffman树,得到的Huffman编码(约定Huffman书中指向左子树的分支表示“0”,指向右子树的分支表示“1”)分别为:00、010、10、11、011。应当清楚的是本实施例进行压缩编码时各个数字的编码码长与Huffman编码一致。
之后,统计待压缩数据中各个数字的编码码长的种类,待压缩数据中所有种类的编码码长组成码长表。可选地,将码长表中的编码码长升序排列,并使用序号依次标识升序排列的各个编码码长。
可选地,上述实施例中的码长边界表,可以根据如下步骤进行设定:
首先,获取符号序列表以及符号序列表中各数字的编码码长。之后,查找符号序列表中每种编码码长对应的最大排序值,并使用这些最大排序值构建所述码长边界表,其中,最大排序值是各种编码码长的数字的排序值的最大值。进一步地,将码长边界表中的各个最大排序值升序排列,得到所述码长边界表。更进一步的,使用与码长表对应的序号标识升序排列的码长边界表中的各个排序值。
可选地,上述实施例中的码长基础值表,可以根据如下步骤进行设定:
将码长边界表中各个最大排序值对应的编码值减去排序值,得到每种编码码长的基础值。可选地,升序排列码长基础值表中的各个基础值,并使用与码长表对应的序号标识升序排列的码长基础值表中的各个基础值。
进一步地,待压缩数据中各个数字的编码值通过下述步骤设置:
依次访问码长序列表中的数字,若当前数字的编码码长与上一排序值的数字的编码码长相同,则将所述上一排序值的数字的编码值加1得到所述当前数字的编码值;若当前数字的编码码长与上一排序值的数字的编码码长不同,则将所述上一排序值的数字的编码值加1得到的数值补充尾数0得到所述当前数字的编码值。循环执行上述设置编码值的步骤,直至得到符号序列表中最后一个数字的编码值。
例如:上述示例中,40编码码长为2比特的数字中最大排序值的数字,其排序值为2,50编码码长为3比特的数字中最大排序值的数字,其排序值为4。将2、4升序排列,得到的码长边界表为[2,4]。上述示例中,40为编码码长为2比特的数字中最大排序值的数字,其排序值为2,其编码值为10(二进制,对应十进制的数值2),因此,该示例中可以得到的编码码长为2比特的基础值为0;50为编码码长为3比特的数字中最大排序值的数字,其排序值为4,其编码值为111(二进制,对应十进制的数值7),因此,该示例中可以得到的编码码长为4比特的基础值为3。编码电路130在该示例中得到的码长基础值表为[0,3]。
相应地,在进行数据解压时,如图6所示的数据压缩解压装置100的查询操作执行部件1122,可以用于依次获取所述数据流中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
其比较操作执行部件1122,可以用于访问预设的编码值范围表和预设的码长表,依次得到输入的数据流中各编码值的码长,其中,所述编码值范围表包含多种编码码长的最大编码值,所述码长编码包含所述多种编码码长。
加法操作执行部件1123,可以用于依次获取数据流中每一编码值的有效值作为各所述编码值的初始编码值,并根据所述数据流中每一编码值的编码码长以及预设的码长基础值表得到所述数据流中每一编码值的基础值,将所述数据流中每一编码值的初始编码值与基础值的差值作为所述数据流中各个编码值的排序值,其中,所述码长基础值表包含每一所述编码码长的基础值。
其查询操作执行部件1121,可以用于根据所述数据流中每一编码值的排序值,在预设的符号序列表中查询,得到与数据流中每一编码值对应的数字,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
本实施例中的数据压缩解压装置100可以通过依次串接的比较操作执行部件、加法操作执行部件以及查询操作执行部件,依次执行比较、加法以及查询、操作,替换传统的查表操作对压缩数据进行解码,由于本实施例中,使用的符号序列表、编码值范围表、码长表以及码长基础值表中的数据量小,进行的加法运算,运算速度快,因此,该数据压缩解压装置100可以高效的进行数据压缩。
本实施例中的使用的符号序列表、码长表以及码长基础值表的与数据压缩过程一致,其具体设置方式可以参见上述实施例,在此不再做详述。
可选地,编码值范围表可以通过下述方式进行设置:
获取符号序列表中各个数字的编码值;查找所述符号序列表中每种编码码长的最大编码值,之后使用这些最大编码值构建编码值范围表。进一步地,升序排列编码值范围表中的编码值。可选地,使用与码长表对应的符号表示升序排列的编码值范围表中的编码值。
本实施中的设置的各个数字的编码值的方法,由于通过简单的加1或者加1补尾数0的操作,实施简单,出错概率低,且规律性强,容易被转化为上述的查表结合加法的格式获取数字的编码值的数据编码实现形式,利于提高数据压缩的效率和准确性。
在一可选地实施例中,如图8所示,数据压缩解压装置100的各个压缩解压操作执行组件110中串接的压缩解压操作执行部件112,包括:与连接输入FIFO存储器的游程编码执行部件1124。进一步地,该游程编码执行部件1124还可以连接输出FIFO存储器。
在其中一个可选地实施例中,在进行数据压缩时,如图8所示的数据压缩解压装置100中的游程编码执行部件1124,用于根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程,以及将所述数据组的起始数字按照预设数值位宽进行转换得到各数据组中起始数字的编码值;将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,并按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值。
例如,输入的数据流为{0,0,0,0,2,0,3,0,0},设定游程位宽为2bit,指定数字为0,预设数值位宽为8bit。
数据流分割结果为:0,0,0,0,2,0,3,0,0。编码结果为:00000000,11,00000010, 01,00000011,10。其中,游程11表示输入数据中连续排列的三个0;用游程01表示输入数据中的一个0;用游程10表示输入数据中连续排列的两个0。
应当清楚的是,游程编码执行部件1124可以每分割出一个数据组即对该数据组起始数字按照预设数值位宽进行转换,以及对该数据组的指定数字进行游程编码,当然,可选的游程编码执行部件1124可以对数据流分割完成得到所有的数据组后,再对该数据组起始数字按照预设数值位宽进行转换,以及对数据组的指定数字进行游程编码。其可以根据需求灵活选择,本实施例不作具体限定。
本实施例的数据压缩解压装置通过将待压缩数据中的指定数字进行游程编码,并用使用游程表示连续排列的指定数字,该方法能够对大量连续出现的数字进行数据压缩,有效节省带宽资源。
在其中一个可选地实施例中,在进行数据解压时,如图8所示的数据压缩解压装置100中的游程编码执行部件1124,还可以用于根据数据流中的游程,得到解压数组,将所述解压数组中除游程以外的数字进行转化,得到所述解压数组有效数字,将所述解压数组中的游程解码为指定数字,将所述解压数组的有效数字和指定数字作为所述解压数组的解压数字。
例如,输入的数据流为:00000000,11,00000010,01,00000011,10。其中,游程11表示输入数据中连续排列的三个0;用游程01表示输入数据中的一个0;用游程10表示输入数据中连续排列的两个0。
数据流分割结果为:00000000,11,00000010,01,00000011,10。得到的解压结果为:0,0,0,0,2,0,3,0,0。
本实施例的数据压缩解压装置通过将待压缩数据中的指定数字进行游程编码,并用使用游程表示连续排列的指定数字,该方法能够对大量连续出现的数字进行数据压缩,有效节省带宽资源。
在其中一个实施中,在进行数据压缩时,如图9所示,数据压缩解压装置100的各个压缩解压操作执行组件110中串接的压缩解压操作执行部件112,还可以包括:设置于所述游程编码执行部件与所述输出FIFO存储器之间的替换操作执行部件1125。可选地,该替换操作执行部件1125还可以连接输出FIFO存储器。
具体地,在数据压缩解压装置100进行数据压缩时,该替换操作执行部件1125用于使用预设数字,替换起始值为所述指定数字且游程为最大值的数据组的编码值。应当清楚的是,在指定数字为确定数字,且游程位宽确定时指定数字且游程为最大值的数据组的编码值,为确定的数字加游程的组合。即替换操作执行部件1125实际是使用预设数字替换得到的游程编码中固定的数字加游程的组合。
例如:承接上述示例,得到的游程编码结果:00000000,11,00000010,01,00000011,10,预设使用01000000(二进制数字,对应十进制的64)替换起始值为所述指定数字且游程为最大值的数据组的编码值。本示例中,替换操作执行部件1125实际是使用01000000替换上述游程编码结果中的00000000,11。
具体地,在数据压缩解压装置100进行数据解压,且得到的时,该替换操作执行部件1125用于根据所述编码值范围表中不小于当前编码值的最小的编码值和预设的码长表得到所述当前编码值的编码码长。应当清楚的是,在指定数字为确定数字,且游程位宽确定时指定数字且游程为最大值的数据组的编码值,为确定的数字加游程的组合。即替换操作执行部件1125实际是使用预设数字替换得到的游程编码中固定的数字加游程的组合。
例如:承接上述示例,在对游程编码结果使用预设数字进行替换操作之后得到的结果为:01000000,00000010,01,00000011,10。在对其进行解压时,需先将预设数字01000000替换00000000,11。得到游程编码的压缩编码结果00000000,11,00000010,01,00000011,10。之后在使用游程编码对该结果进行解码,得到解压数据。使用游程编码对该结果进行解码的具体过程可参见上述游程解码的实施例,在此不再做详述。
本实施例的数据压缩解压装置在对指定数字进行游程编码得到压缩编码结果的基础上,进一步使用预设数字替换该压缩编码结果中固定的数字加游程的组合,由于游程编码得到压缩编码结果中存在大量的这一数字加游程的组合,每被替换一次,该压缩编码结果即可减少游程位宽个字节,因此该方案可以更加有效的节省带宽资源。
在其中一个实施例中,如图10所示,数据压缩解压装置100的各个压缩解压操作执行组件110中串接的压缩解压操作执行部件112,可以包括:依次串接的依次串接的游程编码执行部件1124、替换操作执行部件1125、查询操作执行部件1121、比较操作执行部件1122以及加法操作执行部件1123,所述加法操作执行部件连接所述输出FIFO存储器。可选地,该替换操作执行部件1125可以连接输入FIFO存储器111。可选地,该游程编码执行部件1124还可以连接比较操作执行部件1122。可选地,该查询操作执行部件1121还可以连接输出FIFO存储器130。
本实施例的数据压缩解压装置100可以根据接收的控制信号,控制输入的数据流进入压缩解压操作执行组件中各个压缩解压操作执行部件的顺序。例如,在进行数据压缩时,数据流流向为:游程编码执行部件1124→替换操作执行部件1125→查询操作执行部件1121→比较操作执行部件1122→加法操作执行部件1123。相应地,据解压时,数据流流向为:替换操作执行部件1125→游程编码执行部件1124→比较操作执行部件1122→加法操作执行部件1123→查询操作执行部件1121。
应当清楚的是,若该装置仅为了实现数据压缩或解压的单一操作,则在进行数据压缩时,该数据压缩解压装置100的各个压缩解压操作执行组件110中游程编码执行部件1124、替换操作执行部件1125、查询操作执行部件1121、比较操作执行部件1122以及加法操作执行部件1123的串接关系为:依次串接的依次串接的游程编码执行部件1124、替换操作执行部件1125、查询操作执行部件1121、比较操作执行部件1122以及加法操作执行部件1123。在进行数据解压时,该数据压缩解压装置100的各个压缩解压操作执行组件110中游程编码执行部件1124、替换操作执行部件1125、查询操作执行部件1121、比较操作执行部件1122以及加法操作执行部件1123的串接关系为:替换操作执行部件1125、游程编码执行部件1124、比较操作执行部件1122、加法操作执行部件1123以及查询操作执行部件1121。
进一步地,图10所示数据压缩解压装置100,还可以根据实际需求选择是否设置替换操作执行部件1125。若不设置操作执行部件1125,则图10中的游程编码执行部件1124需设置与输入FIFO存储器111与查询操作执行部件1121之间,以实现相应的数据压缩操作。进一步地,该游程编码执行部件1124还可以连接比较操作执行部件1122,以实现对应的数据解压操作。
进一步地,图10所示数据压缩解压装置100中的查询操作执行部件1121、比较操作执行部件1122均可以连接至输入FIFO存储器111。该装置中的游程编码执行部件1124、替换操作执行部件1125也均可以连接至输出FIFO存储器113。此时,数据压缩解压装置100可以根据接收的控制信号,选择接收的数据流在进行压缩或解压时执行的具体子操作。
例如,该装置需进行游程加替换并结合改进的Huffman编码时,数据压缩解压装置100按照游程编码执行部件1124→替换操作执行部件1125→查询操作执行部件1121→比较操作执行部件1122→加法操作执行部件1123的次序对接收的数据流进行处理。具体地,数据压缩解压装置100进行游程加替换并结合改进的Huffman编码进行数据压缩时,各个压缩解压操作执行部件具体用于:
游程编码执行部件1124,用于根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程,以及将所述数据组的起始数字按照预设数值位宽进行转换得到各数据组中起始数字的编码值;将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值。
替换操作执行部件1125,用于获取所述数据组的编码值,并使用预设数字,替换起始值为所述指定数字且游程为最大值的数据组的编码值,得到所述数据流的替换编码。
查询操作执行部件1121,用于获取所述数据流的替换编码,并依次获取所述数据流的替换编码中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
比较操作执行部件1122,用于访问预设的码长边界表,根据所述数据流的替换编码中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定各个所述数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长。
加法操作执行部件1123,用于根据预设的码长基础值表以及数据流的替换编码中每一数字的编码码长,依次得到所述数据流的替换编码中每一数字的基础值,将所述数据流的替换编码中每一数字的排序值与对应的基础值相加得到所述替换编码中每一数字初始编码值,之后将所述初始编码值按照对应的编码码长进行转换,得到替换编码中每一数字的压缩编码值,其中,所述码长基础值表包括每一所述编码码长的基础值。
相应地,该装置需进行游程加替换并结合改进的Huffman解码时,数据压缩解压装置100按照替换操作执行部件1125→游程编码执行部件1124→比较操作执行部件1122→加法操作执行部件1123→查询操作执行部件1121的次序对接收的数据流进行处理。具体地,数据压缩解压装置100进行游程加替换并结合改进的Huffman编码进行数据解压时,各个压缩解压操作执行部件具体用于:
替换操作执行部件1125,用于使用指定数字和预设游程替换所述数据流中的预设数字,所述预设游程为预设的游程位宽对应的最大数值。
游程编码执行部件1124,用于根据获取数据中的游程,得到解压数组,将所述解压数组中除游程以外的数字进行转化,得到所述解压数组有效数字,将所述解压数组中的游程解码为指定数字,将所述解压数组的有效数字和指定数字作为所述数据流的中间编码结果,所述中间编码结果包含多个中间编码值。
比较操作执行部件1122,用于获取所述中间编码结果,并访问预设的编码值范围表和预设的码长表,依次得到所述中间编码结果中每一中间编码值的码长,其中,所述编码值范围表包含多种编码码长的最大编码值,所述码长编码包含所述多种编码码长。
加法操作执行部件1123,用于依次获取中间编码结果中每一中间编码值的有效值作为各所述中间编码值的初始编码值,并根据所述中间编码结果中每一中间编码值的编码码长以及预设的码长基础值表得到所述中间编码结果中每一中间编码值的基础值,将所述中间编码结果中每一中间编码值的初始编码值与基础值的差值作为所述中间编码结果中各个中间编码值的排序值,其中,所述码长基础值表包含每一所述编码码长的基础值。
查询操作执行部件1121,用于根据所述中间编码结果中每一编码值的排序值,在预设的符号序列表中查询,得到与中间编码结果中每一编码值对应的数字,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
例如,该装置需仅进行游程编码实现数据压缩,数据压缩解压装置100可以控制数据流进入游程编码执行部件1124执行相关操作后,直接将得到的压缩编码数据发送至输出FIFO存储器。
相应地,该装置需仅进行游程编码实现数据解压,数据压缩解压装置100可以控制数据流进入游程编码执行部件1124执行相关操作后,直接将得到的解压数据发送至输出FIFO存储器。
需要说明的是,上述进行游程加替换并结合改进的Huffman编码进行数据压缩,以及仅进行游程编码仅为本实施的数据压缩解压装置可以实现的两种数据压缩的具体方式,该装置还可以基于用户的需求,灵活的将该装置在不同的压缩解压执行部件进行结合,实现多样的数据压缩方案,具体实现形式,可以在灵活选择压缩解压执行部件的基础上,参见上述实施例中的内容,即可得出具体的数据压缩方案,在此不再做详述。
本实施例中的数据压缩装置,可以根据不同的需求,通过控制不同的压缩解压操作执行部件执行相应的压缩子操作,实现不同的数据压缩方案。
基于同样的发明构思,如图11所示,本申请还提出了一种数据压缩方法,该数据压缩方法,被应用于上述数据压缩解压装置,该方法具体包括:
步骤S101,将待压缩数据分割为多个数据流。
具体地,数据分割电路120将待压缩数据分割为多个数据流。可选地,该数据流的大小可以为1024kb。可选地,可以根据待压缩数据的大小以及数据压缩解压装置100中压缩解压执行组件110的数量确定数据流的大小。
步骤S102,获取n个数据流,对所述n个数据流进行同步操作,并将同步操作后的所述n个数据流并行压缩,得到n个压缩编码结果,其中,n为正整数。
具体地,获取n个数据流,并将该n个数据流输入数据压缩解压装置100的n个压缩解压执行组件110中,在进行同步操作后,并行执行压缩操作,得到n个压缩编码结果。更具体地,获取n个数据流,并将该n个数据流输入每一压缩解压执行组件110的输入FIFO存储器111,该输入FIFO存储器111对接收的数据流进行同步操作后,将同步操作后的所述n个数据流发送至其连接的压缩解压操作执行部件,各个压缩解压操作执行部件依次执行相应的压缩子操作后,得到的n个压缩编码结果。
步骤S103,对所述n个压缩编码进行同步操作,并将同步操作后的所述n个压缩编码结果,按照各个数据流在待压缩数据中的顺序和/或位置写出接收压缩编码结果。
具体地,得到n个压缩编码值的压缩解压操作执行部件,将其得到的压缩编码结果传输至其连接的输出FIFO存储器,各个输出FIFO存储器对接收的压缩编码结果进行同步操作后,按照各个数据流在待压缩数据中的顺序和/或位置写出接收压缩编码结果。
重复执行步骤101-S103,直至单次输出压缩编码结果的数量小于n。之后执行步骤S104,终止获取数据流。
具体地,若某次数据压缩解压装置100的n个压缩解压执行组件110输出的压缩编码结果的数量小于n,终止获取数据流。
相应地,如图12所示,本申请还提出了一种数据解压方法,该数据解压方法,也被应用于上述数据压缩解压装置,该方法具体包括:
S201,将压缩数据分割为多个数据流。
具体地,数据分割电路120将压缩数据分割为多个数据流。可选地,该数据流的大小可以为1024kb。可选地,可以根据压缩数据的大小以及数据压缩解压装置100中压缩解压执行组件110的数量确定数据流的大小。
S202,获取n个数据流,对所述n个数据流进行同步操作,并将同步操作后的所述n个数据流并行解压,得到n个解压子结果,其中,n为正整数。
具体地,获取n个数据流,并将该n个数据流输入数据压缩解压装置100的n个压缩解压执行组件110中,在进行同步操作后,并行执行压缩操作,得到n个解压子结果。更具体地,获取n个数据流,并将该n个数据流输入每一压缩解压执行组件110的输入FIFO存储器111,该输入FIFO存储器111对接收的数据流进行同步操作后,将同步操作后的所述n个数据流发送至其连接的压缩解压操作执行部件,各个压缩解压操作执行部件依次执行相应的解压子操作后,得到的n个解压子结果。
S203,对所述n个解压数字进行同步操作,并将同步操作后的所述n个解压子结果,按照各个数据流在待压缩数据中的顺序和/或位置写出解压子结果。
具体地,得到n个解压子结果的压缩解压操作执行部件,将其得到的解压子结果传输至其连接的输出FIFO存储器,各个输出FIFO存储器对接收的解压子结果进行同步操作后,按照各个数据流在压缩数据中的顺序和/或位置写出接收解压子结果。
重复执行所述获取n个数据流至写出所述n个解压子结果的步骤,直至单次解压子结果的数量小于n,之后执行S204,终止获取数据流。
具体地,若某次数据压缩解压装置100的n个压缩解压执行组件110输出的解压子结果的数量小于n,终止获取数据流。
本实施例的数据压缩方法,可以并行压缩或解压n个输入的数据流,且在输入和输出端均设置FIFO存储器,对输入的数据流以及输出的压缩编码值或者解压结果均进行同步操作,保证了并行对待压缩数据的多个数据流进行压缩,或者对压缩数据进行解压时,输出的结果准确。
作为一种可选地实施方式,如图13所示,在进行数据压缩时,在步骤S102之前,还包括:
步骤S105,获取的n个所述原始数据流,并在接收数据混洗信号后,对所述n个所述原始数据流中后段数据进行混洗,得到n个数据流,其中,所述后段数据为接收数据混洗信号之后还未获取到的各个所述原始数据流中的数据。
需要说明的是,本实施例中将数据分割电路分割待压缩数据得到的数据流称之为原始数据流,从输入FIFO存储器中输出的数据流称之为数据流。具体地,数据压缩解压装置100的数据混洗操作执行部件140在接收数据混洗信号后,对所述n个所述原始数据流中后段数据进行混洗,得到n个数据流。
同理,在进行数据解压时,如图14所示,在步骤S202之前,也可以包括该步骤S105。此时将数据分割电路分割压缩数据得到的数据流称之为原始数据流。
进一步地,步骤S105可以包括:按照预设规则,对所述n个所述原始数据流中后段数据进行混洗,得到n个数据流,其中,所述预设规则包括:相邻m个数据流进行混洗,或者,跳过k个数据流进行混洗,所述m为正整数,m小于等于n,所述k为正整数,m小于n。
具体地,数据混洗操作执行部件140按照预设规则,对所述n个所述原始数据流中后段数据进行混洗,得到n个数据流。
本实施例可以通过对数据流混洗,克服各个压缩解压操作执行组件的原始数据流中的数据在压缩效率差异较大时,造成的各个压缩解压操作执行组件执行时间差异大,降低数据压缩效率的问题。
在其中一个实施例中,上述数据压缩方法或者数据解压方法还可以包括:若获取的所述原始数据流和/或所述数据流的数量小于n,则输出结束信号。该结束信号用于终止获取数据流。
具体地,在数据压缩解压装置100进行数据压缩或解压时,若n个压缩解压操作执行组件中,存在未输入数据流的压缩解压操作执行组件,则该未输入数据流的压缩解压操作执行组件的输入FIFO存储器上的结束信号发射器发射结束信号至其连接的压缩解压操作执行部件,接收到结束信号的压缩解压操作执行部件通过其安装的结束信号发射器将结束信号向后传递,直至将该结束信号传送至输出FIFO存储器,该未输入数据流的压缩解压操作执行组件的输出FIFO存储器通过其安装的结束信号发射器输出结束信号,此时,数据压缩解压装置100会终止当前执行的压缩或解压过程。
在其中一个实施例中,如图15所示,步骤S102可以包括:
S1021a,依次获取所述数据流中数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
具体地,查询操作执行部件1121依次获取所述数据流中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
S1022a,访问预设的码长边界表,根据所述数据流中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定所述数据流中每一数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长。
具体地,比较操作执行部件1122,用于访问预设的码长边界表,根据所述数据流中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定所述数据流中每一数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长。
进一步地,比较操作执行部件1122首先查找码长边界表中排序值不小于当前数字的最小的排序值;之后根据所述码长边界表中排序值不小于当前数字的最小的排序值和所述码长表确定当前符号的编码码长。
S1023a,根据预设的码长基础值表以及数据流中各个数字的编码码长,依次得到所述数据流中各个数字的基础值,其中,所述码长基础值表包括每一所述编码码长的基础值。将所述数据流中每一数字的排序值与对应的基础值相加得到所述每一数字的初始编码值,之后将各个初始编码值按照对应的编码码长进行转换,得到所述数据流中各个数字的压缩编码值。
具体地,加法操作执行部件1123根据预设的码长基础值表以及数据流中每一数字的编码码长,依次得到所述数据流中每一数字的基础值,将所述数据流中每一数字的排序值与对应的基础值相加得到所述每一数字的初始编码值,之后将各个初始编码值按照对应的编码码长进行转换,得到所述数据流中各个数字的压缩编码值,其中,所述码长基础值表包括每一所述编码码长的基础值。
相应地,在其中一个实施例中,如图16所示,对图15所示的数据压缩方法得到的压缩数据进行解压时,步骤S202可以包括:
S2021a,访问预设的编码值范围表和预设的码长表,依次得到输入的数据流中各编码值的码长,其中,所述编码值范围表包含多种编码码长的最大编码值,所述码长编码包含所述多种编码码长。
具体地,比较操作执行部件1122访问预设的编码值范围表和预设的码长表,依次得到输入的数据流中各编码值的码长,其中,所述编码值范围表包含多种编码码长的最大编码值,所述码长编码包含所述多种编码码长。
进一步地,根据所述编码值范围表中不小于当前编码值的最小的编码值和预设的码长表得到所述当前编码值的编码码长。
具体地,比较操作执行部件1122根据所述编码值范围表中不小于当前编码值的最小的编码值和预设的码长表得到所述当前编码值的编码码长。
S2022a,依次获取数据流中每一编码值的有效值作为各所述编码值的初始编码值,并根据所述数据流中每一编码值的编码码长以及预设的码长基础值表得到所述数据流中每一编码值的基础值,将所述数据流中每一编码值的初始编码值与基础值的差值作为所述数据流中各个编码值的排序值,其中,所述码长基础值表包含每一所述编码码长的基础值。
具体地,加法操作执行部件1123依次获取数据流中每一编码值的有效值作为各所述编码值的初始编码值,并根据所述数据流中每一编码值的编码码长以及预设的码长基础值表得到所述数据流中每一编码值的基础值,将所述数据流中每一编码值的初始编码值与基础值的差值作为所述数据流中各个编码值的排序值,其中,所述码长基础值表包含每一所述编码码长的基础值。
S2023a,根据所述数据流中每一编码值的排序值,在预设的符号序列表中查询,得到与数据流中每一编码值对应的数字,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
具体地,查询操作执行部件1121根据所述数据流中每一编码值的排序值,在预设的符号序列表中查询,得到与数据流中每一编码值对应的数字,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
本实施例中数据压缩方法或解压方法,使用的符号序列表、码长边界表/编码值范围表、码长表以及码长基础值表中的数据量小,因此,使用这些数据量小的表进行数据压缩或解压数据处理效率高。
在另一个实施例中,如图17所示,步骤S102也可以包括:
S1021b,根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组。
S1022b,对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程。
S1023b,将所述数据组的起始数字按照预设数值位宽进行转换得到各数据组中起始数字的编码值。
S1024b,将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,并按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值。
具体地,游程编码执行部件1124根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程,以及将所述数据组的起始数字按照预设数值位宽进行转换得到各数据组中起始数字的编码值;将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,并按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值。
相应地,在其中一个实施例中,如图18所示,对图17所示的数据压缩方法得到的压缩数据进行解压时,步骤S202可以包括:
S2021b,根据获取数据流中的游程,得到解压数组。
S2022b,将所述解压数组中除游程以外的数字进行转化,得到所述解压数组有效数字,将所述解压数组中的游程解码为指定数字;将所述解压数组的有效数字和指定数字作为所述解压数组的解压数字。
S2023b,按照所述解压数组在所述数据流中的次序依次写出所述解压数组的解压数字。
具体地,游程编码执行部件1124根据数据流中的游程,得到解压数组,将所述解压数组中除游程以外的数字进行转化,得到所述解压数组有效数字,将所述解压数组中的游程解码为指定数字,将所述解压数组的有效数字和指定数字作为所述解压数组的解压数字。
本实施例的数据压缩方法,对指定数字进行游程编码,并用使用游程表示连续排列的指定数字,该方法能够对大量连续出现的数字进行数据压缩,有效节省带宽资源。
在另一个实施例中,如图19所示,步骤S1024b之后,所述方法还包括:
S1025b,使用预设数值,替换起始值为所述指定数字且游程为最大值的数据组的编码值。
具体地,替换操作执行部件1125使用预设数字,替换起始值为所述指定数字且游程为最大值的数据组的编码值。应当清楚的是,在指定数字为确定数字,且游程位宽确定时指定数字且游程为最大值的数据组的编码值,为确定的数字加游程的组合。即替换操作执行部件1125实际是使用预设数字替换得到的游程编码中固定的数字加游程的组合。
例如:得到的游程编码结果:00000000,11,00000010,01,00000011,10,预设使用01000000(二进制数字,对应十进制的64)替换起始值为所述指定数字且游程为最大值的数据组的编码值。本示例中,替换操作执行部件1125实际是使用01000000替换上述游程编码结果中的00000000,11。
相应地,在其中一个实施例中,如图20所示,对图19所示的数据压缩方法得到的压缩数据进行解压时,在步骤S2021b之前可以包括:
S2024b,使用指定数字和预设游程替换所述数据流中的预设数字,所述预设游程为预设的游程位宽对应的最大数值。
具体地,替换操作执行部件1125根据所述编码值范围表中不小于当前编码值的最小的编码值和预设的码长表得到所述当前编码值的编码码长。应当清楚的是,在指定数字为确定数字,且游程位宽确定时指定数字且游程为最大值的数据组的编码值,为确定的数字加游程的组合。即替换操作执行部件1125实际是使用预设数字替换得到的游程编码中固定的数字加游程的组合。
例如:承接上述示例,在对游程编码结果使用预设数字进行替换操作之后得到的结果为:01000000,00000010,01,00000011,10。在对其进行解压时,需先将预设数字01000000替换00000000,11。得到游程编码的压缩编码结果00000000,11,00000010,01,00000011,10。之后在使用游程编码对该结果进行解码,得到解压数据。使用游程编码对该结果进行解码的具体过程可参见上述游程解码的实施例,在此不再做详述。
本实施例的数据压缩方法,对指定数字进行游程编码得到压缩编码结果的基础上,进一步使用预设数字替换该压缩编码结果中固定的数字加游程的组合,由于游程编码得到压缩编码结果中存在大量的这一数字加游程的组合,每被替换一次,该压缩编码结果即可减少游程位宽个字节,因此该方案可以更加有效的节省带宽资源。
在一个实施例中,如图21所示,步骤S102也可以包括:
S1021c,根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程,以及将所述数据组的起始数字按照预设数值位宽进行二进制转换得到各数据组中起始数字的编码值;将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值。
具体地,游程编码执行部件1124根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程,以及将所述数据组的起始数字按照预设数值位宽进行转换得到各数据组中起始数字的编码值;将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值。
S1022c,获取所述数据组的编码值,并使用预设数值,替换起始值为所述指定数字且游程为最大值的数据组的编码值,得到所述数据流的替换编码。
具体地,替换操作执行部件1125获取所述数据组的编码值,并使用预设数字,替换起始值为所述指定数字且游程为最大值的数据组的编码值,得到所述数据流的替换编码。
S1023c,获取所述数据流的替换编码,并依次获取所述数据流的替换编码中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
具体地,查询操作执行部件1121获取所述数据流的替换编码,并依次获取所述数据流的替换编码中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
S1024c,访问预设的码长边界表,根据所述数据流的替换编码中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定各个所述数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长。
具体地,比较操作执行部件1122访问预设的码长边界表,根据所述数据流的替换编码中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定各个所述数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长。
S1025c,根据预设的码长基础值表以及数据流的替换编码中每一数字的编码码长,依次得到所述数据流的替换编码中每一数字的基础值,将所述数据流的替换编码中每一数字的排序值与对应的基础值相加得到所述替换编码中每一数字初始编码值,之后将所述初始编码值按照对应的编码码长进行转换,得到替换编码中每一数字的压缩编码值,其中,所述码长基础值表包括每一所述编码码长的基础值。
具体地,加法操作执行部件1123根据预设的码长基础值表以及数据流的替换编码中每一数字的编码码长,依次得到所述数据流的替换编码中每一数字的基础值,将所述数据流的替换编码中每一数字的排序值与对应的基础值相加得到所述替换编码中每一数字初始编码值,之后将所述初始编码值按照对应的编码码长进行转换,得到替换编码中每一数字的压缩编码值,其中,所述码长基础值表包括每一所述编码码长的基础值。
相应地,在其中一个实施例中,如图22所示,对图22所示的数据压缩方法得到的压缩数据进行解压时,步骤S202可以包括:
S2021c,使用指定数字和预设游程替换所述数据流中的预设数字,所述预设游程为预设的游程位宽对应的最大数值。
具体地,替换操作执行部件1125使用指定数字和预设游程替换所述数据流中的预设数字,所述预设游程为预设的游程位宽对应的最大数值。
S2022c,根据获取数据中的游程,得到解压数组,将所述解压数组中除游程以外的数字进行转化,得到所述解压数组有效数字,将所述解压数组中的游程解码为指定数字,将所述解压数组的有效数字和指定数字作为所述数据流的中间编码结果,所述中间编码结果包含多个中间编码值。
具体地,游程编码执行部件1124根据获取数据中的游程,得到解压数组,将所述解压数组中除游程以外的数字进行转化,得到所述解压数组有效数字,将所述解压数组中的游程解码为指定数字,将所述解压数组的有效数字和指定数字作为所述数据流的中间编码结果,所述中间编码结果包含多个中间编码值。
S2023c,访问预设的编码值范围表和预设的码长表,依次得到所述中间编码结果中每一中间编码值的码长,其中,所述编码值范围表包含多种编码码长的最大编码值,所述码长编码包含所述多种编码码长。
具体地,比较操作执行部件1122获取所述中间编码结果,并访问预设的编码值范围表和预设的码长表,依次得到所述中间编码结果中每一中间编码值的码长,其中,所述编码值范围表包含多种编码码长的最大编码值,所述码长编码包含所述多种编码码长。
S2024c,依次获取中间编码结果中每一中间编码值的有效值作为各所述中间编码值的初始编码值,并根据所述中间编码结果中每一中间编码值的编码码长以及预设的码长基础值表得到所述中间编码结果中每一中间编码值的基础值,将所述中间编码结果中每一中间编码值的初始编码值与基础值的差值作为所述中间编码结果中各个中间编码值的排序值,其中,所述码长基础值表包含每一所述编码码长的基础值。
具体地,加法操作执行部件1123依次获取中间编码结果中每一中间编码值的有效值作为各所述中间编码值的初始编码值,并根据所述中间编码结果中每一中间编码值的编码码长以及预设的码长基础值表得到所述中间编码结果中每一中间编码值的基础值,将所述中间编码结果中每一中间编码值的初始编码值与基础值的差值作为所述中间编码结果中各个中间编码值的排序值,其中,所述码长基础值表包含每一所述编码码长的基础值。
S2025c,根据所述中间编码结果中每一编码值的排序值,在预设的符号序列表中查询,得到与中间编码结果中每一编码值对应的数字,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
具体地,查询操作执行部件1121根据所述中间编码结果中每一编码值的排序值,在预设的符号序列表中查询,得到与中间编码结果中每一编码值对应的数字,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值。
本实施例的数据压缩方法,结合使用了游程编码结合数字替换以及改进的Huffman编码,该方法可以结合上述几种编码及操作的优点,数据压缩效率高。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (18)
1.一种数据压缩解压装置,其特征在于,包括:n个压缩解压操作执行组件,每一所述压缩解压操作执行组件包括输入FIFO存储器、至少一个压缩解压操作执行部件以及输出FIFO存储器,所述输入FIFO存储器与所述输出FIFO存储器之间串接多个压缩操作执行部件,其中,n为正整数,
各个所述输入FIFO存储器用于接收数据流并对接收的所述数据流执行同步操作,并将同步操作之后的数据流传输至连接的压缩操作执行部件;
各个所述压缩解压操作执行组件中串接的至少一个压缩解压操作执行部件,用于依次对接收的输入数据执行对应的压缩子操作,得到各个数据流的压缩编码值;
各个所述输出FIFO存储器用于接收连接的压缩解压操作执行部件发送的压缩编码值,并将接收的所述压缩编码值进行同步操作后输出;
所述输入FIFO存储器的输入位宽是基于所述输入FIFO存储器的面积以及执行的数据处理的类型设置的,所述输入位宽为所述输入FIFO存储器单次获取数据的字节数;
所述输出FIFO存储器的输出位宽是基于所述输出FIFO存储器的面积以及执行的数据处理的类型设置的,其中,所述输出位宽为所述输出FIFO存储器单次输出数据的字节数。
2.根据权利要求1所述的装置,其特征在于,所述输入FIFO存储器、所述压缩解压操作执行部件以及输出FIFO存储器上均设置结束信号发射器,所述结束信号发射器用于发射结束信号。
3.根据权利要求1或2所述的装置,其特征在于,各个所述压缩解压操作执行组件中相邻的两个压缩解压操作执行部件之间串接一存储器,
所述相邻的两个压缩解压操作执行部件之间串接一存储器,用于存储对应的所述相邻的两个压缩解压操作执行部件中在前的压缩解压操作执行部件的输出结果。
4.根据权利要求3所述的装置,其特征在于,所述相邻的两个压缩解压操作执行部件中在后的压缩解压操作执行部件,获取连接的存储器中的输出结果作为输入数据执行对应的压缩或解压子操作。
5.根据权利要求1或2所述的装置,其特征在于,所述装置还包括:控制电路和数据分割电路,所述控制电路分别连接所述数据分割电路和所述压缩操作执行组件中的输入FIFO存储器,
所述数据分割电路用于对输入数据执行分割操作,得到多个数据流;
所述控制电路用于控制所述数据分割电路执行分割操作,以及控制所述压缩解压操作执行组件执行压缩操作,所述压缩操作包含至少一个压缩子操作。
6.根据权利要求1或2所述的装置,其特征在于,所述各个所述压缩解压操作执行组件中串接的压缩解压操作执行部件,包括:依次串接的查询操作执行部件、比较操作执行部件以及加法操作执行部件,所述加法操作执行部件连接所述输出FIFO存储器,其中,
所述查询操作执行部件,用于依次获取所述数据流中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值;
所述比较操作执行部件,用于访问预设的码长边界表,根据所述数据流中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定所述数据流中每一数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长;
所述加法操作执行部件,用于根据预设的码长基础值表以及数据流中每一数字的编码码长,依次得到所述数据流中每一数字的基础值,将所述数据流中每一数字的排序值与对应的基础值相加得到所述每一数字的初始编码值,之后将各个初始编码值按照对应的编码码长进行转换,得到所述数据流中各个数字的压缩编码值,其中,所述码长基础值表包括每一所述编码码长的基础值。
7.根据权利要求6所述的装置,其特征在于,
所述比较操作执行部件,具体用于查找码长边界表中排序值不小于当前数字的最小的排序值,根据所述码长边界表中排序值不小于当前数字的最小的排序值和所述码长表确定当前符号的编码码长。
8.根据权利要求1或2所述的装置,其特征在于,所述各个所述压缩解压操作执行组件中串接的压缩解压操作执行部件,包括:与连接所述输入FIFO存储器的游程编码执行部件,
所述游程编码执行部件,用于根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程,以及将所述数据组的起始数字按照预设数值位宽进行转换得到各数据组中起始数字的编码值;将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,并按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值。
9.根据权利要求8所述的装置,其特征在于,所述各个所述压缩解压操作执行组件还包括:设置于所述游程编码执行部件与所述输出FIFO存储器之间的替换操作执行部件,
所述替换操作执行部件,用于使用预设数字,替换起始值为所述指定数字且游程为最大值的数据组的编码值。
10.根据权利要求1或2所述的装置,其特征在于,所述各个所述压缩解压操作执行组件中串接的压缩操作执行部件,包括:依次串接的依次串接的游程编码执行部件、替换操作执行部件、查询操作执行部件、比较操作执行部件以及加法操作执行部件,所述加法操作执行部件连接所述输出FIFO存储器,其中,
所述游程编码执行部件,用于根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程,以及将所述数据组的起始数字按照预设数值位宽进行转换得到各数据组中起始数字的编码值;将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值;
所述替换操作执行部件,用于获取所述数据组的编码值,并使用预设数字,替换起始值为所述指定数字且游程为最大值的数据组的编码值,得到所述数据流的替换编码;
所述查询操作执行部件,用于获取所述数据流的替换编码,并依次获取所述数据流的替换编码中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值;
所述比较操作执行部件,用于访问预设的码长边界表,根据所述数据流的替换编码中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定各个所述数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长;
所述加法操作执行部件,用于根据预设的码长基础值表以及数据流的替换编码中每一数字的编码码长,依次得到所述数据流的替换编码中每一数字的基础值,将所述数据流的替换编码中每一数字的排序值与对应的基础值相加得到所述替换编码中每一数字初始编码值,之后将所述初始编码值按照对应的编码码长进行转换,得到替换编码中每一数字的压缩编码值,其中,所述码长基础值表包括每一所述编码码长的基础值。
11.根据权利要求5所述的装置,其特征在于,所述数据分割电路具体用于:根据输入数据的大小以及所述数据压缩解压装置中压缩解压执行组件的数量确定数据流的大小,基于所述数据流的大小对所述输入数据执行分割操作,得到多个数据流。
12.一种数据压缩方法,其特征在于,所述方法包括:
将待压缩数据分割为多个数据流;
基于输入FIFO存储器的面积以及执行的数据处理的类型设置所述输入FIFO存储器的输入位宽,所述输入FIFO存储器基于所述输入位宽获取n个数据流,对所述n个数据流进行同步操作,所述输入位宽为所述输入FIFO存储器单次获取数据的字节数;
将同步操作后的所述n个数据流并行压缩,得到n个压缩编码值,其中,n为正整数;
基于输出FIFO存储器的面积以及所述执行的数据处理的类型设置所述输出FIFO存储器的输出位宽,所述输出FIFO存储器基于所述输出位宽接收所述n个压缩编码值并对所述n个压缩编码值进行同步操作,并将同步操作后的所述n个压缩编码值,按照各个数据流在待压缩数据中的顺序和/或位置写出接收压缩编码值,所述输出位宽为所述输出FIFO存储器单次输出数据的字节数;
重复执行所述获取n个数据流至写出所述n个压缩编码值的步骤,直至单次输出压缩编码值的数量小于n,之后终止获取数据流。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
若获取的数据流的数量小于n,则输出结束信号,其中,所述结束信号用于终止接收数据流。
14.根据权利要求12或13所述的方法,其特征在于,对所述n个数据流中的各个数据流进行压缩,包括:
依次获取所述数据流中数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值;
访问预设的码长边界表,根据所述数据流中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定所述数据流中每一数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长;
根据预设的码长基础值表以及数据流中各个数字的编码码长,依次得到所述数据流中各个数字的基础值,其中,所述码长基础值表包括每一所述编码码长的基础值;
将所述数据流中每一数字的排序值与对应的基础值相加得到所述每一数字的初始编码值,之后将各个初始编码值按照对应的编码码长进行转换,得到所述数据流中各个数字的压缩编码值。
15.根据权利要求14所述的方法,其特征在于,所述访问预设的码长边界表,根据所述数据流中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定所述数据流中每一数字的编码码长,包括:
查找码长边界表中排序值不小于当前数字的最小的排序值;
根据所述码长边界表中排序值不小于当前数字的最小的排序值和所述码长表确定当前符号的编码码长。
16.根据权利要求12或13所述的方法,其特征在于,对所述n个数据流中的各个数据流进行压缩,包括:
根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;
对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程;
将所述数据组的起始数字按照预设数值位宽进行二进制转换得到各数据组中起始数字的编码值;
将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,并按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值。
17.根据权利要求16所述的方法,其特征在于,在按照所述数据组在所述输入的数据流中的次序,写出所述数据组的起始数字和游程之后,所述方法还包括:
使用预设数值,替换起始值为所述指定数字且游程为最大值的数据组的编码值。
18.根据权利要求12或13所述的方法,其特征在于,对所述n个数据流中的各个数据流进行压缩,包括:
根据预设的游程位宽,以及输入的数据流中的指定数字和其他数字,分割所述输入的数据流,得到数据组;对所述数据组中除起始数字之外的其他数字进行游程编码,得到所述数据组的游程,以及将所述数据组的起始数字按照预设数值位宽进行二进制转换得到各数据组中起始数字的编码值;将所述数据组中起始数字的编码值与游程作为所述数据组的编码值,按照所述数据组在所述输入的数据流中的次序写出所述数据组的编码值;
获取所述数据组的编码值,并使用预设数值,替换起始值为所述指定数字且游程为最大值的数据组的编码值,得到所述数据流的替换编码;
获取所述数据流的替换编码,并依次获取所述数据流的替换编码中每一数字在预设的符号序列表中的排序值,其中,所述符号序列表包含多个数字,以及基于所述多个数字的出现概率得到的各个数字的排序值;
访问预设的码长边界表,根据所述数据流的替换编码中每一数字在所述符号序列表中的排序值、预设的码长表,依次确定各个所述数字的编码码长,其中,所述码长边界表包含多种编码码长,以及每一所述编码码长的数字的最大排序值,所述码长表包含预设的多种编码码长;
根据预设的码长基础值表以及数据流的替换编码中每一数字的编码码长,依次得到所述数据流的替换编码中每一数字的基础值,将所述数据流的替换编码中每一数字的排序值与对应的基础值相加得到所述替换编码中每一数字初始编码值,之后将所述初始编码值按照对应的编码码长进行转换,得到替换编码中每一数字的压缩编码值,其中,所述码长基础值表包括每一所述编码码长的基础值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811628198.2A CN111384962B (zh) | 2018-12-28 | 2018-12-28 | 数据压缩解压装置和数据压缩方法 |
PCT/CN2019/121056 WO2020114283A1 (zh) | 2018-12-07 | 2019-11-26 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811628198.2A CN111384962B (zh) | 2018-12-28 | 2018-12-28 | 数据压缩解压装置和数据压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111384962A CN111384962A (zh) | 2020-07-07 |
CN111384962B true CN111384962B (zh) | 2022-08-09 |
Family
ID=71222260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811628198.2A Active CN111384962B (zh) | 2018-12-07 | 2018-12-28 | 数据压缩解压装置和数据压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111384962B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114697673B (zh) * | 2020-12-30 | 2023-06-27 | 中国科学院计算技术研究所 | 基于流间数据混洗的神经网络量化压缩方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5140321A (en) * | 1991-09-04 | 1992-08-18 | Prime Computer, Inc. | Data compression/decompression method and apparatus |
CN1126411A (zh) * | 1995-01-06 | 1996-07-10 | 大宇电子株式会社 | 并行编码/解码数字视频信号的装置 |
CN1889185A (zh) * | 2006-07-25 | 2007-01-03 | 华中科技大学 | 用于高密度光盘的调制码的编码方法 |
CN103237219A (zh) * | 2013-04-24 | 2013-08-07 | 南京龙渊微电子科技有限公司 | 二维离散余弦变换/逆离散余弦变换电路及方法 |
CN104349168A (zh) * | 2014-08-11 | 2015-02-11 | 大连戴姆科技有限公司 | 一种超高速图像实时压缩方法 |
CN105828083A (zh) * | 2015-01-06 | 2016-08-03 | 中兴通讯股份有限公司 | 数据流的解码方法及装置 |
CN108873062A (zh) * | 2018-05-08 | 2018-11-23 | 吉林大学 | 一种基于fpga的多编码器高速地震数据并行无损压缩方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0128244B1 (ko) * | 1992-09-23 | 1998-04-02 | 배순훈 | 병렬 구조를 갖는 부호 화상 데이타의 복호 장치 |
KR0119899B1 (ko) * | 1994-11-15 | 1997-10-30 | 양승택 | 비디오 데이터의 압축/복원회로 |
CN1156171C (zh) * | 1997-04-07 | 2004-06-30 | 松下电器产业株式会社 | 提高处理效率的图象声音处理装置 |
JP2004061646A (ja) * | 2002-07-25 | 2004-02-26 | Fujitsu Ltd | Tfo機能を有する音声符号化器および方法 |
DE10301362B4 (de) * | 2003-01-16 | 2005-06-09 | GEMAC-Gesellschaft für Mikroelektronikanwendung Chemnitz mbH | Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche |
JP4854309B2 (ja) * | 2006-01-23 | 2012-01-18 | シャープ株式会社 | データ格納制御装置 |
US7436330B2 (en) * | 2006-03-24 | 2008-10-14 | The University Of Mississippi | High-speed data compression based on set associative cache mapping techniques |
CN105812841B (zh) * | 2014-12-31 | 2018-07-13 | 京微雅格(北京)科技有限公司 | 一种cvbs信号压缩/解压缩方法、发射/接收机及系统 |
-
2018
- 2018-12-28 CN CN201811628198.2A patent/CN111384962B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5140321A (en) * | 1991-09-04 | 1992-08-18 | Prime Computer, Inc. | Data compression/decompression method and apparatus |
CN1126411A (zh) * | 1995-01-06 | 1996-07-10 | 大宇电子株式会社 | 并行编码/解码数字视频信号的装置 |
CN1889185A (zh) * | 2006-07-25 | 2007-01-03 | 华中科技大学 | 用于高密度光盘的调制码的编码方法 |
CN103237219A (zh) * | 2013-04-24 | 2013-08-07 | 南京龙渊微电子科技有限公司 | 二维离散余弦变换/逆离散余弦变换电路及方法 |
CN104349168A (zh) * | 2014-08-11 | 2015-02-11 | 大连戴姆科技有限公司 | 一种超高速图像实时压缩方法 |
CN105828083A (zh) * | 2015-01-06 | 2016-08-03 | 中兴通讯股份有限公司 | 数据流的解码方法及装置 |
CN108873062A (zh) * | 2018-05-08 | 2018-11-23 | 吉林大学 | 一种基于fpga的多编码器高速地震数据并行无损压缩方法 |
Non-Patent Citations (2)
Title |
---|
An Area- and Energy-Efficient FIFO Design Using Error-Reduced Data Compression and Near-Threshold Operation for Image/Video Applications;Seyed Mohammad Ali Zeinolabedin;《IEEE Transactions on Very Large Scale Integration (VLSI) Systems》;20141126;2408-2416 * |
无人飞行器超低延时高速并行图像压缩系统;李其虎;《光学精密工程》;20131130;2914-2921 * |
Also Published As
Publication number | Publication date |
---|---|
CN111384962A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7031828B2 (ja) | 意味論的値のデータ圧縮及び解凍のための方法、装置、及びシステム | |
US8456331B2 (en) | System and method of compression and decompression | |
Vestergaard et al. | Lossless compression of time series data with generalized deduplication | |
CN102244518A (zh) | 并行解压缩的硬件实现的系统及方法 | |
KR20110007865A (ko) | 데이터의 압축방법 | |
CN111384962B (zh) | 数据压缩解压装置和数据压缩方法 | |
US6748520B1 (en) | System and method for compressing and decompressing a binary code image | |
CN111384963B (zh) | 数据压缩解压装置和数据解压方法 | |
US11309909B2 (en) | Compression device, decompression device, and method | |
CN114157305A (zh) | 一种基于硬件快速实现gzip压缩的方法及其应用 | |
CN111384964B (zh) | 数据压缩解压装置和数据压缩方法 | |
CN111384968B (zh) | 数据压缩解压装置和数据解压方法 | |
CN103746701A (zh) | 一种用于Rice无损数据压缩的快速编码选项选择方法 | |
CN112217521B (zh) | 一种基于gzip的大文件分布式压缩方法 | |
US10931303B1 (en) | Data processing system | |
CN114429200A (zh) | 规范化哈夫曼编解码方法及神经网络计算芯片 | |
EP2883326A1 (en) | Short string compression | |
JP7305609B2 (ja) | 受信したデータを処理する装置 | |
CN117200805B (zh) | 一种mcu的低内存占用的压缩和解压方法及装置 | |
US12108064B2 (en) | Memory system | |
Subathra et al. | Performance analysis of dictionary based data compression algorithms for high speed networks | |
CN117465471A (zh) | 一种针对文本文件的无损压缩系统及其压缩方法 | |
CN116996077A (zh) | 面向时序浮点数据的有损压缩方法、解压方法及设备 | |
CN115510010A (zh) | 压缩雪花id集合的数据结构、数据压缩方法和查找方法 | |
JP2013211643A (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 |