CN117097346A - 一种解压器及数据解压方法、系统、设备、计算机介质 - Google Patents
一种解压器及数据解压方法、系统、设备、计算机介质 Download PDFInfo
- Publication number
- CN117097346A CN117097346A CN202311358396.2A CN202311358396A CN117097346A CN 117097346 A CN117097346 A CN 117097346A CN 202311358396 A CN202311358396 A CN 202311358396A CN 117097346 A CN117097346 A CN 117097346A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- decompressor
- recovery
- spliced
- 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.)
- Granted
Links
- 230000006837 decompression Effects 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000011084 recovery Methods 0.000 claims abstract description 108
- 238000013500 data storage Methods 0.000 claims abstract description 79
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000875 corresponding effect Effects 0.000 description 44
- 230000001276 controlling effect Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种解压器及数据解压方法、系统、设备、计算机介质,涉及数据解压缩技术领域,应用于解压器中的控制器,控制解压器中的匹配数据获取器获取两个以上的目标三元组,并根据目标三元组获取匹配数据;控制解压器中的拼接器对匹配数据进行拼接处理得到目标拼接数据,将目标拼接数据存储至解压器中的最近恢复数据存储器;控制解压器中的恢复数据存储器接收从最近恢复数据存储器传送过来的目标拼接数据。本发明中,控制器可以获取多个目标三元组对应的匹配数据,数据获取效率高,这样,拼接器可以持续对匹配数据进行拼接来得到目标拼接数据,提高了解压算法的带宽,且借助最近恢复数据存储器和恢复数据存储器进一步保证了解压算法的带宽。
Description
技术领域
本发明涉及数据解压缩技术领域,更具体地说,涉及一种解压器及数据解压方法、系统、设备、计算机介质。
背景技术
随着大数据、人工智能、云计算和5G(5th-Generation Mobile CommunicationTechnology,第五代移动通信技术)技术的创新,数据发生了爆炸性的增长,如何有效存储和更快传输数据变得越来越有挑战性。数据压缩能够降低数据的存储和传输成本,是提高I/O(Input/Output,输入/输出)性能和存储利用率的有效方法之一。然而在可计算存储领域,对于带宽的一致性要求极高,那么对于解压的硬件带宽以及其波动性也会非常严格。
综上所述,如何实现高带宽的解压算法是目前本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种数据解压方法,其能在一定程度上解决如何实现高带宽的解压算法的技术问题。本发明还提供了一种解压器及数据解压系统、设备、计算机可读存储介质。
为了实现上述目的,本发明提供如下技术方案:
一种数据解压方法,应用于解压器中的控制器,包括:
控制所述解压器中的匹配数据获取器获取两个以上的目标三元组,并根据所述目标三元组获取匹配数据;
控制所述解压器中的拼接器对所述匹配数据进行拼接处理得到目标拼接数据,将所述目标拼接数据存储至所述解压器中的最近恢复数据存储器;
控制所述解压器中的恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据。
优选的,所述根据所述目标三元组获取匹配数据,包括:
基于所述目标三元组中的数据长度值从待解压的目标数据中预取对应的待解压数据;
基于所述目标三元组中的偏移值及匹配长度值从所述最近恢复数据存储器和/或所述恢复数据存储器中获取对应的已拼接数据;
将所述待解压数据和所述已拼接数据作为所述匹配数据。
优选的,所述基于所述目标三元组中的偏移值及匹配长度值从所述最近恢复数据存储器和/或所述恢复数据存储器中获取对应的已拼接数据,包括:
若所述偏移值小于等于所述最近恢复数据存储器的数据总数值,则基于所述偏移值及所述匹配长度值从所述最近恢复数据存储器中获取所述已拼接数据;
若所述偏移值大于所述数据总数值,则基于所述偏移值和所述匹配长度值从所述恢复数据存储器中获取所述已拼接数据。
优选的,所述控制所述解压器中的恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据,包括:
若所述最近恢复数据存储器已满,则控制所述恢复数据存储器接收从所述最近恢复数据存储器传送过来的最先存储的所述目标拼接数据。
优选的,所述目标三元组包括通过LZ77算法对数据进行压缩后得到的三元组。
一种数据解压系统,应用于解压器中的控制器,包括:
第一控制模块,用于控制所述解压器中的匹配数据获取器获取两个以上的目标三元组,并根据所述目标三元组获取匹配数据;
第二控制模块,用于控制所述解压器中的拼接器对所述匹配数据进行拼接处理得到目标拼接数据,将所述目标拼接数据存储至所述解压器中的最近恢复数据存储器;
第三控制模块,用于控制所述解压器中的恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据。
一种解压器,包括控制器、匹配数据获取器,拼接器、最近恢复数据存储器和恢复数据存储器;
所述控制器控制所述匹配数据获取器获取两个以上的目标三元组,并根据所述目标三元组获取匹配数据;
所述控制器控制所述拼接器对所述匹配数据进行拼接处理得到目标拼接数据,将所述目标拼接数据存储至所述最近恢复数据存储器;
所述控制器控制所述恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据。
优选的,所述最近恢复数据存储器的位宽大于等于所述恢复数据存储器的位宽的二倍值。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述数据解压方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述数据解压方法的步骤。
本发明提供的一种数据解压方法,应用于解压器中的控制器,控制解压器中的匹配数据获取器获取两个以上的目标三元组,并根据目标三元组获取匹配数据;控制解压器中的拼接器对匹配数据进行拼接处理得到目标拼接数据,将目标拼接数据存储至解压器中的最近恢复数据存储器;控制解压器中的恢复数据存储器接收从最近恢复数据存储器传送过来的目标拼接数据。本发明中,控制器可以获取多个目标三元组对应的匹配数据,提高了匹配数据的获取效率,这样,拼接器可以持续对匹配数据进行拼接来得到目标拼接数据,提高了解压算法的带宽,且借助最近恢复数据存储器和恢复数据存储器来存储不同时间段得到的目标拼接数据,便于控制器灵活、针对性的获取匹配数据,进一步保证了解压算法的带宽。本发明提供的一种解压器及数据解压系统、电子设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种数据解压方法的第一示意图;
图2为本发明实施例提供的一种数据解压方法的第二示意图;
图3为本发明数据解压过程中的数据变化图;
图4为本发明实施例提供的一种数据解压系统的结构示意图;
图5为本发明实施例提供的一种解压器的结构示意图;
图6为本发明解压器恢复后数据的结构图;
图7为本发明实施例提供的一种数据解压方法的流程图;
图8为本发明实施例提供的一种电子设备的结构示意图;
图9为本发明实施例提供的一种电子设备的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种数据解压方法的第一示意图。
本发明实施例提供的一种数据解压方法,应用于解压器中的控制器,可以包括以下步骤:
步骤S101:控制解压器中的匹配数据获取器获取两个以上的目标三元组,并根据目标三元组获取匹配数据。
实际应用中,控制器可以先控制解压器中的匹配数据获取器获取两个以上的目标三元组,并根据目标三元组获取匹配数据,比如可以并行获取所有目标三元组所对应的匹配数据等。
需要说明的是,目标三元组可以是通过LZ77算法对数据进行压缩后得到的三元组等,且三元组可以包括数据长度值、偏移值及匹配长度值,其中,数据长度值用于表征该三元组所对应的待解压数据在压缩后数据中的长度值,偏移值用于表征对待解压数据进行解压后得到的目标数据的所处位置,匹配长度值用于表征待解压数据解压出的目标数据的个数值。还需说明的是,数据解压过程中需要应用待解压数据和之前已解压得到的数据,所以匹配数据包括对应的待解压数据和之前已解压得到的数据。
步骤S102:控制解压器中的拼接器对匹配数据进行拼接处理得到目标拼接数据,将目标拼接数据存储至解压器中的最近恢复数据存储器。
实际应用中,在应用三元组进行数据解压的过程中,需根据三元组对待解压数据和之前已解压得到的数据进行拼接来得到该三元组对应的解压后数据,所以控制器在获取匹配数据之后,可以控制解压器中的拼接器对匹配数据进行拼接处理得到目标拼接数据,不难理解,由于之前获取了多个目标三元组对应的匹配数据,所以拼接器有充足的匹配数据进行处理,也即拼接器可以连续对多个匹配数据进行处理,如此循环往复进行工作,便可以不间断的进行数据解压,与解压一组三元组后重新获取匹配数据进行处理的方案相比,提高了数据解压的带宽。
且拼接器得到目标拼接数据之后,控制器可以将目标拼接数据存储至解压器中的最近恢复数据存储器,以借助该最近恢复数据存储器存储最近恢复出的目标拼接数据,这样,控制器后续可以根据需求来快速从最近恢复数据存储器中获取三元组对应的已解压得到的数据。
步骤S103:控制解压器中的恢复数据存储器接收从最近恢复数据存储器传送过来的目标拼接数据。
实际应用中,控制器在将目标拼接数据存储至解压器中的最近恢复数据存储器之后,还可以控制解压器中的恢复数据存储器接收从最近恢复数据存储器传送过来的目标拼接数据,以借助恢复数据存储器存储较早得到的已解压得到的数据。
具体应用场景中,控制器在控制解压器中的恢复数据存储器接收从最近恢复数据存储器传送过来的目标拼接数据的过程中,可以在最近恢复数据存储器已满的情况下,控制恢复数据存储器接收从最近恢复数据存储器传送过来的最先存储的目标拼接数据。
本发明提供的一种数据解压方法,应用于解压器中的控制器,控制解压器中的匹配数据获取器获取两个以上的目标三元组,并根据目标三元组获取匹配数据;控制解压器中的拼接器对匹配数据进行拼接处理得到目标拼接数据,将目标拼接数据存储至解压器中的最近恢复数据存储器;控制解压器中的恢复数据存储器接收从最近恢复数据存储器传送过来的目标拼接数据。本发明中,控制器可以获取多个目标三元组对应的匹配数据,提高了匹配数据的获取效率,这样,拼接器可以持续对匹配数据进行拼接来得到目标拼接数据,提高了解压算法的带宽,且借助最近恢复数据存储器和恢复数据存储器来存储不同时间段得到的目标拼接数据,便于控制器灵活、针对性的获取匹配数据,进一步保证了解压算法的带宽。
请参阅图2,图2为本发明实施例提供的一种数据解压方法的第二示意图。
本发明实施例提供的一种数据解压方法,应用于解压器中的控制器,可以包括以下步骤:
步骤S201:控制解压器中的匹配数据获取器获取两个以上的目标三元组。
步骤S202:基于目标三元组中的数据长度值从待解压的目标数据中预取对应的待解压数据。
步骤S203:基于目标三元组中的偏移值及匹配长度值从最近恢复数据存储器和/或恢复数据存储器中获取对应的已拼接数据。
步骤S204:将待解压数据和已拼接数据作为匹配数据。
实际应用中,在根据目标三元组获取匹配数据的过程中,需基于目标三元组中的数据长度值从待解压的目标数据中预取对应的待解压数据;基于目标三元组中的偏移值及匹配长度值从最近恢复数据存储器和/或恢复数据存储器中获取对应的已拼接数据;将待解压数据和已拼接数据作为匹配数据。
具体应用场景中,考虑到恢复数据存储器中存储的数据比最近恢复数据存储器存储的数据的生成时刻更早,且最近恢复数据存储器已满的情况下可能需要从恢复数据存储器中获取数据,所以在基于目标三元组中的偏移值及匹配长度值从最近恢复数据存储器和/或恢复数据存储器中获取对应的已拼接数据的过程中,可以综合考虑偏移值和最近恢复数据存储器的位宽来确定已拼接数据的获取方式,也即若偏移值小于等于最近恢复数据存储器的数据总数值,则基于偏移值及匹配长度值从最近恢复数据存储器中获取已拼接数据;若偏移值大于数据总数值,则基于偏移值和匹配长度值从恢复数据存储器中获取已拼接数据。为便于理解,假设最近恢复数据存储器的大小为64B,对应的数据总数值为64,则在偏移值小于等于64的情况下,匹配数据命中最近恢复数据存储器,此时可以从最近恢复数据存储器中获取已拼接数据,而在偏移值大于64的情况下,匹配数据命中恢复数据存储器,此时需从恢复数据存储器中获取已拼接数据。
步骤S205:控制解压器中的拼接器对匹配数据进行拼接处理得到目标拼接数据,将目标拼接数据存储至解压器中的最近恢复数据存储器。
步骤S206:控制解压器中的恢复数据存储器接收从最近恢复数据存储器传送过来的目标拼接数据。
为便于理解本发明数据解压方案,假设待解压的目标数据为ABCDE,其共有两个三元组seq,分别为(1,5,1)和(3,5,4),且三元组中的第一个值表示数据长度值、第二个值表示匹配长度值,第三个值表示偏移值,则数据解压过程如图3所示;假设解压器中最近恢复数据存储器所能存储的数据总数值为5,则数据解压过程如图4所示,其中,接收剩余数据后的恢复数据中第一个数据块样式的数据块表示拼接后的解压数据,接收剩余数据后的恢复数据中第二个数据块样式的数据块表示拼接后的匹配数据,接收剩余数据后的恢复数据中最后一个数据块样式的数据块表示直接从目标数据中取出的数据,包括以下步骤:
控制器控制匹配数据获取器获取目标三元组(1,5,1)和(3,5,4);
控制器根据三元组(1,5,1)中的数据长度值1从待解压的目标数据ABCDE中预取对应的待解压数据A;根据三元组(3,5,4)中的数据长度值3从剩余的待解压的目标数据BCDE中预取对应的待解压数据BCD;
控制器先对三元组(1,5,1)对应的待解压数据A进行解压,由于三元组(1,5,1)为第一个三元组,所以已拼接数据为空,匹配数据仅为待解压数据A;
拼接器根据三元组(1,5,1)和待解压数据A进行数据拼接,由于匹配长度值为5,所以需新解压出5个数据,由于偏移值为1,所以每个解压数据的值为该值的上一数据的值,对于第一个解压数据,已拼接数据为待解压数据A,上一数据的值为A,所以第一个解压数据的值也为A,以此类推,剩余四个解压数据的值也为A,所以拼接器进行数据拼接后最终得到拼接数据AAAAAA;
在拼接器进行数据拼接的过程中,控制器需控制拼接数据AAAAAA的存储,由于最近恢复数据存储器只能存储5个数据,所以控制器还需控制恢复数据存储器接收从最近恢复存储器传送过来的未能存储的拼接数据,最终,最近恢复数据存储器中存入的拼接数据为AAAAA,恢复数据存储器中存入的拼接数据为A;
控制器继续对三元组(3,5,4)对应的待解压数据BCD进行解压,由于偏移值小于数据总数值5,所以控制器只需从最近恢复数据存储器中获取已拼接数据;
拼接器根据三元组(3,5,4)和待解压数据BCD进行数据拼接,由于匹配长度值为5,所以需新解压出5个数据,由于偏移值为4,所以每个解压数据的值为该值之前第4个数据的值,对于第一个解压数据,此时最近恢复数据存储器中存储的数据为AABCD,第一个解压数据之前第4个数据的值为A,所以第一个解压数据的值为A,对于第二个解压数据,此时最近恢复数据存储器中存储的数据为ABCDA,第二个解压数据之前第4个数据的值为B,所以第二个解压数据的值为B,以此类推,剩余三个解压数据的值为C、D、A,所以拼接器进行数据拼接后最终得到拼接数据BCDABCDA;
在拼接器进行数据拼接的过程中,控制器需控制拼接数据BCDABCDA的存储,由于最近恢复数据存储器只能存储5个数据,所以控制器还需控制恢复数据存储器接收从最近恢复存储器传送过来的未能存储的拼接数据,最终,最近恢复数据存储器中存入的拼接数据为ABCDA,恢复数据存储器中存入的拼接数据为AAAAAABCD;
此时不再有未处理的三元组,控制器获取剩余的待解压数据E,将该待解压数据E发送给拼接器进行拼接,并进行相应的存储控制,最终最近恢复数据存储器中存储拼接数据BCDAE,恢复数据存储器中存储拼接数据AAAAAABCDA,最终解压得到的原始数据为AAAAAABCDABCDAE。
请参阅图4,图4为本发明实施例提供的一种数据解压系统的结构示意图。
本发明实施例提供的一种数据解压系统,应用于解压器中的控制器,可以包括:
第一控制模块101,用于控制解压器中的匹配数据获取器获取两个以上的目标三元组,并根据目标三元组获取匹配数据;
第二控制模块102,用于控制解压器中的拼接器对匹配数据进行拼接处理得到目标拼接数据,将目标拼接数据存储至解压器中的最近恢复数据存储器;
第三控制模块103,用于控制解压器中的恢复数据存储器接收从最近恢复数据存储器传送过来的目标拼接数据。
本发明实施例提供的一种数据解压系统,应用于解压器中的控制器,第一控制模块具体用于:基于所述目标三元组中的数据长度值从待解压的目标数据中预取对应的待解压数据;基于所述目标三元组中的偏移值及匹配长度值从所述最近恢复数据存储器和/或所述恢复数据存储器中获取对应的已拼接数据;将所述待解压数据和所述已拼接数据作为所述匹配数据。
本发明实施例提供的一种数据解压系统,应用于解压器中的控制器,第一控制模块具体用于:若所述偏移值小于等于所述最近恢复数据存储器的数据总数值,则基于所述偏移值及所述匹配长度值从所述最近恢复数据存储器中获取所述已拼接数据;若所述偏移值大于所述数据总数值,则基于所述偏移值和所述匹配长度值从所述恢复数据存储器中获取所述已拼接数据。
本发明实施例提供的一种数据解压系统,应用于解压器中的控制器,第三控制模块具体用于:若所述最近恢复数据存储器已满,则控制所述恢复数据存储器接收从所述最近恢复数据存储器传送过来的最先存储的所述目标拼接数据。
本发明实施例提供的一种数据解压系统,应用于解压器中的控制器,所述目标三元组包括通过LZ77算法对数据进行压缩后得到的三元组。
请参阅图5,图5为本发明实施例提供的一种解压器的结构示意图。
本发明实施例提供的一种解压器,包括匹配数据获取器11,控制器12、拼接器13、最近恢复数据存储器14和恢复数据存储器15;
所述控制器控制所述匹配数据获取器获取两个以上的目标三元组,并根据所述目标三元组获取匹配数据;
所述控制器控制所述拼接器对所述匹配数据进行拼接处理得到目标拼接数据,将所述目标拼接数据存储至所述最近恢复数据存储器;
所述控制器控制所述恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据。
本发明实施例提供的解压器中的相应描述可以参阅上述实施例,在此不再赘述。
具体应用场景中,匹配数据获取器11,可以用于存储从目标三元组中选取的目标数量个目标子三元组,目标数量大于等于2;并在控制器12的控制下更新目标子三元组;
控制器12,可以用于对于匹配数据获取器中每个新加入的待处理三元组,基于待处理三元组中的数据长度值从待解压的目标数据中预取对应的待解压数据;对于目标子三元组中的当前待处理三元组,基于当前待处理三元组中的偏移值及匹配长度值从最近恢复数据存储器14或恢复数据存储器15中获取对应的已拼接数据,将当前待处理三元组对应的解压数据存入最近恢复数据存储器14,同时将最近恢复数据存储器14中的已存储数据转存至恢复数据存储器15中;更新当前待处理三元组及目标子三元组;
拼接器13,可以用于在控制器11的控制下,对获取的已拼接数据及对应的待解压数据进行拼接,得到当前待处理三元组对应的解压数据。
具体应用场景中,目标三元组包括基于LZ77算法对目标数据对应的原始数据进行压缩后得到的三元组,且最近恢复数据存储器可以为寄存器等。
实际应用中,LZ77算法生成的目标三元组seq包括literal length、match length和offset,其中,literal length用于记录待解压数据的长度,match length用于记录匹配长度,offset用于记录偏移值,且本发明解压器恢复后数据的结构如图6所示,其中待解压数据和匹配长度是根据seq的内容交替出现的,所以需要进行数据拼接,而当前待处理三元组中的偏移值大于寄存器的位宽时,已拼接数据被从寄存器中取出并转存至恢复数据存储器中,所以控制器基于当前待处理三元组中的偏移值及匹配长度值从寄存器或恢复数据存储器中获取对应的已拼接数据的过程中,可以判断当前待处理三元组中的偏移值是否大于寄存器的位宽;若偏移值小于等于寄存器的位宽,则基于当前待处理三元组中的偏移值及匹配长度值从寄存器中获取已拼接数据;若偏移值大于寄存器的位宽,则基于当前待处理三元组中的偏移值及匹配长度值从恢复数据存储器中获取已拼接数据。
实际应用中,三元组存储器中存储的目标子三元组的目标数量的值可以根据应用场景来确定,比如目标数量的值可以为4等,也即三元组存储器中可以存储4个待处理的三元组。
具体应用场景中,考虑到从恢复数据存储器中读写数据至少需要两个cycle(周期),而控制器是从寄存器和恢复数据存储器中读取已匹配数据的,为了解决寄存器与恢复数据存储器间的临近匹配问题,可以设置寄存器的位宽大于等于恢复数据存储器的位宽的二倍值。此外,具体应用场景中,恢复数据存储器的位宽可以包括32比特,拼接器的位宽可以包括8比特等。
需要说明的是,假设目标数量为4,拼接器的位宽为8比特,恢复数据存储器的位宽为32比特,寄存器的位宽为64比特,则在12nm(Nanometer,纳米)工艺下,为了满足1GHZ(千兆赫兹)的时钟需求,从恢复数据存储器中读写数据至少需要2个cycle,这也就意味着硬件上使用常规的方案频繁进行小颗粒度的mem copy(内存拷贝),这是非常耗时的一件事情,而本发明将数据分成了两部分,一部分是存放在寄存器中的最近恢复数据,另一部分是存储在恢复数据存储器中的数据;控制器会根据三元组中偏移值(of)来进行判断,如果of<=64,那么匹配数据会命中寄存器区域,否则需要在恢复数据存储器中提取相应的匹配数据;命中寄存器区域可以直接去进行数据恢复,减少读memory(内存)的延时;命中拼接数据存储器时,读memory的延时是难以避免的,但可以提前去进行操作;通过此种方式,本发明将所有的处理延时全部隐藏掉了,从而可以满足带宽4GB/s(每秒千兆位)的处理速度,且实际上对于大部分模型,带宽会远远大于4GB/s;而如果把解压器的位宽进行扩展,还可以进一步提升带宽。
本发明提供的一种解压器,包括控制器、匹配数据获取器,拼接器、寄存器和恢复数据存储器;匹配数据获取器,用于存储从目标三元组中选取的目标数量个目标子三元组,目标数量大于等于2;并在控制器的控制下更新目标子三元组;控制器,用于对于三元组存储器中每个新加入的待处理三元组,基于待处理三元组中的数据长度值从待解压的目标数据中预取对应的待解压数据;对于目标子三元组中的当前待处理三元组,基于当前待处理三元组中的偏移值及匹配长度值从寄存器或恢复数据存储器中获取对应的已拼接数据,将当前待处理三元组对应的解压数据存入寄存器,同时将寄存器中的已存储数据转存至恢复数据存储器中;更新当前待处理三元组及目标子三元组;拼接器,用于在控制器的控制下,对获取的已拼接数据及对应的待解压数据进行拼接,得到当前待处理三元组对应的解压数据;其中,目标三元组包括基于LZ77算法对目标数据对应的原始数据进行压缩后得到的三元组。本发明中,匹配数据获取器可以存储多个目标子三元组,控制器可以提前获取对应的待解压数据,并且可以提前从存储最近恢复出的解压数据的寄存器或从存储较早恢复出的解压数据的恢复数据存储器中获取已拼接数据,这样,拼接器可以持续对待解压数据及已拼接数据进行拼接来得到解压数据,提高了LZ77解压算法的带宽。
本发明还提供了一种电子设备及计算机可读存储介质,其均具有本发明实施例提供的一种数据解压方法具有的对应效果。请参阅图7,图7为本发明实施例提供的一种电子设备的结构示意图。
本发明实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述数据解压方法的步骤。
请参阅图8,本发明实施例提供的另一电子设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现电子设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本发明实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述数据解压方法的步骤。
本发明所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本发明实施例提供的数据解压方法、系统、电子设备及计算机可读存储介质中相关部分的说明请参见本发明实施例提供的解压器中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据解压方法,其特征在于,应用于解压器中的控制器,包括:
控制所述解压器中的匹配数据获取器获取两个以上的目标三元组,并根据所述目标三元组获取匹配数据;
控制所述解压器中的拼接器对所述匹配数据进行拼接处理得到目标拼接数据,将所述目标拼接数据存储至所述解压器中的最近恢复数据存储器;
控制所述解压器中的恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标三元组获取匹配数据,包括:
基于所述目标三元组中的数据长度值从待解压的目标数据中预取对应的待解压数据;
基于所述目标三元组中的偏移值及匹配长度值从所述最近恢复数据存储器和/或所述恢复数据存储器中获取对应的已拼接数据;
将所述待解压数据和所述已拼接数据作为所述匹配数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标三元组中的偏移值及匹配长度值从所述最近恢复数据存储器和/或所述恢复数据存储器中获取对应的已拼接数据,包括:
若所述偏移值小于等于所述最近恢复数据存储器的数据总数值,则基于所述偏移值及所述匹配长度值从所述最近恢复数据存储器中获取所述已拼接数据;
若所述偏移值大于所述数据总数值,则基于所述偏移值和所述匹配长度值从所述恢复数据存储器中获取所述已拼接数据。
4.根据权利要求1所述的方法,其特征在于,所述控制所述解压器中的恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据,包括:
若所述最近恢复数据存储器已满,则控制所述恢复数据存储器接收从所述最近恢复数据存储器传送过来的最先存储的所述目标拼接数据。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述目标三元组包括通过LZ77算法对数据进行压缩后得到的三元组。
6.一种数据解压系统,其特征在于,应用于解压器中的控制器,包括:
第一控制模块,用于控制所述解压器中的匹配数据获取器获取两个以上的目标三元组,并根据所述目标三元组获取匹配数据;
第二控制模块,用于控制所述解压器中的拼接器对所述匹配数据进行拼接处理得到目标拼接数据,将所述目标拼接数据存储至所述解压器中的最近恢复数据存储器;
第三控制模块,用于控制所述解压器中的恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据。
7.一种解压器,其特征在于,包括控制器、匹配数据获取器,拼接器、最近恢复数据存储器和恢复数据存储器;
所述控制器控制所述匹配数据获取器获取两个以上的目标三元组,并根据所述目标三元组获取匹配数据;
所述控制器控制所述拼接器对所述匹配数据进行拼接处理得到目标拼接数据,将所述目标拼接数据存储至所述最近恢复数据存储器;
所述控制器控制所述恢复数据存储器接收从所述最近恢复数据存储器传送过来的所述目标拼接数据。
8.根据权利要求7所述的解压器,其特征在于,所述最近恢复数据存储器的位宽大于等于所述恢复数据存储器的位宽的二倍值。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述数据解压方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据解压方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311358396.2A CN117097346B (zh) | 2023-10-19 | 2023-10-19 | 一种解压器及数据解压方法、系统、设备、计算机介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311358396.2A CN117097346B (zh) | 2023-10-19 | 2023-10-19 | 一种解压器及数据解压方法、系统、设备、计算机介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117097346A true CN117097346A (zh) | 2023-11-21 |
CN117097346B CN117097346B (zh) | 2024-03-19 |
Family
ID=88773862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311358396.2A Active CN117097346B (zh) | 2023-10-19 | 2023-10-19 | 一种解压器及数据解压方法、系统、设备、计算机介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117097346B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6320521B1 (en) * | 2000-05-12 | 2001-11-20 | International Business Machines Corporation | System and method for efficiently merging compressed data |
CN102244518A (zh) * | 2010-05-10 | 2011-11-16 | 百度在线网络技术(北京)有限公司 | 并行解压缩的硬件实现的系统及方法 |
US20140070966A1 (en) * | 2012-09-10 | 2014-03-13 | Canon Kabushiki Kaisha | Methods and systems for compressing and decompressing data |
US20150295652A1 (en) * | 2012-08-21 | 2015-10-15 | China Academy Of Telecommunications Technology | Method and device for data compression, transmission, and decompression |
CN110784225A (zh) * | 2018-07-31 | 2020-02-11 | 华为技术有限公司 | 数据压缩、解压方法及相关装置、电子设备、系统 |
CN112905324A (zh) * | 2021-02-10 | 2021-06-04 | 山东英信计算机技术有限公司 | 一种基于电路状态的解压缩方法、系统及介质 |
CN112988673A (zh) * | 2021-02-22 | 2021-06-18 | 山东英信计算机技术有限公司 | 一种处理解压缩过程中数据溢出的方法和设备 |
WO2021237510A1 (zh) * | 2020-05-27 | 2021-12-02 | 深圳市大疆创新科技有限公司 | 数据解压缩的方法、系统、处理器及计算机存储介质 |
US20210398325A1 (en) * | 2020-06-22 | 2021-12-23 | Advanced Micro Devices, Inc. | Delta triplet index compression |
CN114050831A (zh) * | 2021-11-14 | 2022-02-15 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于lz77的解码方法、系统、设备以及介质 |
CN116707532A (zh) * | 2023-05-09 | 2023-09-05 | 阿里巴巴(中国)有限公司 | 一种压缩文本的解压方法、装置、存储介质及电子设备 |
CN116881034A (zh) * | 2023-07-17 | 2023-10-13 | 无锡车联天下信息技术有限公司 | 一种车载数据筛选方法、装置、电子设备及存储介质 |
-
2023
- 2023-10-19 CN CN202311358396.2A patent/CN117097346B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6320521B1 (en) * | 2000-05-12 | 2001-11-20 | International Business Machines Corporation | System and method for efficiently merging compressed data |
CN102244518A (zh) * | 2010-05-10 | 2011-11-16 | 百度在线网络技术(北京)有限公司 | 并行解压缩的硬件实现的系统及方法 |
US20150295652A1 (en) * | 2012-08-21 | 2015-10-15 | China Academy Of Telecommunications Technology | Method and device for data compression, transmission, and decompression |
US20140070966A1 (en) * | 2012-09-10 | 2014-03-13 | Canon Kabushiki Kaisha | Methods and systems for compressing and decompressing data |
CN110784225A (zh) * | 2018-07-31 | 2020-02-11 | 华为技术有限公司 | 数据压缩、解压方法及相关装置、电子设备、系统 |
WO2021237510A1 (zh) * | 2020-05-27 | 2021-12-02 | 深圳市大疆创新科技有限公司 | 数据解压缩的方法、系统、处理器及计算机存储介质 |
US20210398325A1 (en) * | 2020-06-22 | 2021-12-23 | Advanced Micro Devices, Inc. | Delta triplet index compression |
CN112905324A (zh) * | 2021-02-10 | 2021-06-04 | 山东英信计算机技术有限公司 | 一种基于电路状态的解压缩方法、系统及介质 |
CN112988673A (zh) * | 2021-02-22 | 2021-06-18 | 山东英信计算机技术有限公司 | 一种处理解压缩过程中数据溢出的方法和设备 |
CN114050831A (zh) * | 2021-11-14 | 2022-02-15 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于lz77的解码方法、系统、设备以及介质 |
CN116707532A (zh) * | 2023-05-09 | 2023-09-05 | 阿里巴巴(中国)有限公司 | 一种压缩文本的解压方法、装置、存储介质及电子设备 |
CN116881034A (zh) * | 2023-07-17 | 2023-10-13 | 无锡车联天下信息技术有限公司 | 一种车载数据筛选方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117097346B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649769B2 (en) | Vehicle-mounted control device, program writing device, program generating device and program | |
CN110546628B (zh) | 用有向线缓冲器最小化存储器读取提高神经网络环境性能 | |
US10430176B2 (en) | In-vehicle control device, program update system, and program update software | |
US20150363328A1 (en) | Methods and apparatus for data processing | |
US9798745B2 (en) | Methods, devices and systems for caching data items | |
US6944740B2 (en) | Method for performing compressed I/O with memory expansion technology | |
JP6512733B2 (ja) | データ圧縮方法と、該方法を行う装置 | |
US20180300250A1 (en) | Method and apparatus for storing data | |
CN107850983B (zh) | 计算机系统、存储装置和数据的管理方法 | |
US20190272099A1 (en) | Data Operating Method, Device, and System | |
KR20230013630A (ko) | 근거리 데이터 처리를 통한 인메모리 데이터베이스 가속화 | |
US10430341B2 (en) | Log-structured storage method and server | |
US11740791B2 (en) | Data compression system using base values and methods thereof | |
WO2017188985A1 (en) | Compressed pages having data and compression metadata | |
US10795825B2 (en) | Compressing data for storage in cache memories in a hierarchy of cache memories | |
US11327929B2 (en) | Method and system for reduced data movement compression using in-storage computing and a customized file system | |
CN117097346B (zh) | 一种解压器及数据解压方法、系统、设备、计算机介质 | |
US11562241B2 (en) | Data output method, data acquisition method, device, and electronic apparatus | |
CN113377391B (zh) | 镜像文件的制作和烧录的方法、装置、设备和介质 | |
JP5100500B2 (ja) | データ書き換えシステム及び新版データ作成装置及び差分データ作成装置及び新版データ作成プログラム及び差分データ作成プログラム | |
CN114003573A (zh) | 文件系统的压缩方法、装置、设备、存储介质、程序产品 | |
CN117097442B (zh) | 一种数据解码方法、系统、设备及计算机可读存储介质 | |
CN111597076A (zh) | 操作数据的方法和装置以及管理持久化跳表的方法和装置 | |
US10324660B2 (en) | Determining whether to compress data prior to storage thereof | |
CN106575306B (zh) | 用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备 |
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 |