CN114077554A - 一种数据解码方法、系统、设备及介质 - Google Patents
一种数据解码方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN114077554A CN114077554A CN202210063461.8A CN202210063461A CN114077554A CN 114077554 A CN114077554 A CN 114077554A CN 202210063461 A CN202210063461 A CN 202210063461A CN 114077554 A CN114077554 A CN 114077554A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- cache
- modules
- reference data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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
-
- 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/6005—Decoder aspects
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/221—Static RAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种数据解码方法、系统、设备及介质,该方法包括:数据处理模块获取待解码数据;当确定特征数据为相对数据,若确定参考数据中的第一参考数据的存储位置在存储模块,向至少两个第一数据搬运模块发送读数据请求,以使得第一数据搬运模块并行从存储模块获取第一参考数据并将获取到的至少两个第一参考数据分别存储于与第一数据搬运模块对应的第二缓存模块中,数据处理模块从第二缓存模块读出第一参考数据,并写入第一缓存模块。本发明的方法通过采用至少两个第一数据搬运模块并行的读取存储模块中的参考数据,从而可以节约间接访问存储模块的总时间。搭配内存较小的第一缓存模块,就能获得较高的解码速度,节省硬件成本。
Description
技术领域
本发明涉及数据压缩技术领域,尤其涉及一种数据解码方法、系统、设备及介质。
背景技术
相关技术中,从节省硬件成本且兼顾解码效率考虑,硬件解码通常是将数据距离较近的字典数据存放在静态随机存储器中,优点是解码时可以快速访问,数据距离较远的字典数据存放在动态随机存储器中,但解码时采用间接访问耗时长。现有的技术方案多是采用串行取字典数据的方式,即解码得到一个数据并将数据处理完后,再解码处理下一个数据。此时解码速度完全受限于所设计的字典数据静态随机存储器的大小。当静态随机存储器的数据较小时解码速度极低,若要获得可观的解码速度则需要大量的静态随机存储器,增加了硬件成本。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种数据解码实现方法、系统、设备及介质,能够有效提高解码速度,还能减少硬件成本。
根据本发明的第一方面实施例的一种数据解码方法,应用于数据解码系统,所述数据解码系统包括数据处理模块、第一缓存模块、至少两个第二缓存模块、存储模块、至少两个第一数据搬运模块,所述数据处理模块并行连接所述第一缓存模块和至少两个所述第二缓存模块,所述第二缓存模块与所述第一数据搬运模块一一对应连接,所述存储模块与至少两个所述第一数据搬运模块并行连接,所述方法包括:
所述数据处理模块获取待解码数据,所述待解码数据包括多个特征数据;
当确定所述特征数据为相对数据,所述数据处理模块根据所述特征数据的距离值和长度值判断参考数据的存储位置,其中,所述参考数据为对应于所述特征数据的解码数据;
若确定所述参考数据中的第一参考数据的存储位置在所述存储模块,所述数据处理模块向至少两个所述第一数据搬运模块发送读数据请求,以使得所述第一数据搬运模块并行从所述存储模块获取所述第一参考数据,所述第一数据搬运模块将获取到的至少两个所述第一参考数据分别存储于与所述第一数据搬运模块对应的所述第二缓存模块中,所述第一参考数据是所述参考数据中的至少一部分;
所述数据处理模块从所述第二缓存模块读出所述第一参考数据,并写入所述第一缓存模块。
根据本发明实施例的一种数据解码方法,至少具有如下有益效果:通过采用至少两个第一数据搬运模块并行的读取存储模块中的参考数据,从而可以节约间接访问存储模块的总时间。达到用较小的第一缓存模块存储数据距离较近字典数据的同时,获得较高的解码速度,节省硬件成本。
根据本发明的一些实施例,所述参考数据还包括第二参考数据,所述方法还包括:
若所述第二参考数据的存储位置在所述第一缓存模块,所述数据处理模块从所述第一缓存模块读出所述第二参考数据,并写入所述第一缓存模块。
根据本发明的一些实施例,所述方法还包括:
若所述第一参考数据的存储位置在所述第一缓存模块,所述数据处理模块从所述第一缓存模块中读出所述第一参考数据,并将所述第一参考数据写入所述第一缓存模块。
根据本发明的一些实施例,所述第一数据搬运模块将所述第一参考数据写入与所述第一数据搬运模块对应的所述第二缓存模块后,所述第一数据搬运模块向所述数据处理模块发送反馈信号;所述方法还包括:
所述数据处理模块接收所述第一数据搬运模块发送的反馈信号;
所述数据处理模块从所述第二缓存模块读出所述第一参考数据,并写入所述第一缓存模块。
根据本发明的一些实施例,所述数据解码系统还包括第二数据搬运模块,所述第二数据搬运模块分别与所述第一缓存模块和所述存储模块连接,所述方法还包括:
当所述第一缓存模块的存储空间小于所述第一参考数据或所述第二参考数据的大小,所述数据处理模块通过所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块;
或者,
当把所述第一参考数据或所述第二参考数据写入所述第一缓存模块的解码操作完成,所述数据处理模块通过所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块。
根据本发明的一些实施例,所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块后,所述第二数据搬运模块向所述数据处理模块发送反馈信号;所述方法还包括:
所述数据处理模块接收所述第二数据搬运模块发送的反馈信号;
所述数据处理模块继续进行解码操作或处理下一个待解码数据。
根据本发明的第二方面实施例的一种数据解码系统,包括数据处理模块、第一缓存模块、至少两个第二缓存模块、存储模块、至少两个第一数据搬运模块,所述数据处理模块并行连接第一缓存模块和至少两个所述第二缓存模块,所述第二缓存模块与所述第一数据搬运模块一一对应连接,所述存储模块与至少两个所述第一数据搬运模块并行连接,其中,所述数据处理模块获取待解码数据,所述待解码数据包括多个特征数据;
当确定所述特征数据为相对数据,所述数据处理模块根据所述特征数据的距离值和长度值判断参考数据的存储位置,其中,所述参考数据为对应于所述特征数据的解码数据;
若确定所述参考数据中的第一参考数据的存储位置在所述存储模块,所述数据处理模块向至少两个所述第一数据搬运模块发送数据请求,以使得所述第一数据搬运模块并行从所述存储模块获取所述第一参考数据,所述第一数据搬运模块将获取到的至少两个所述第一参考数据分别存储于与所述第一数据搬运模块对应的所述第二缓存模块中,所述第一参考数据是所述参考数据中的至少一部分;
所述数据处理模块从所述第二缓存模块读出所述第一参考数据,并写入所述第一缓存模块。
根据本发明第二方面的一些实施例,还包括第二数据搬运模块,所述第二数据搬运模块分别与所述第一缓存模块和所述存储模块连接,其中,所述数据处理模块还用于:
当所述第一缓存模块的存储空间小于所述第一参考数据的大小,通过所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块;
或者,
当把所述第一参考数据写入所述第一缓存模块的解码操作完成,通过所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块。
根据本发明的第三方面实施例的一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明第一方面实施例中任意一项所述的方法。
根据本发明的第四方面实施例的一种存储介质,所述存储介质为计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如本发明第一方面实施例中任意一项所述的方法。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
下面结合附图和实施例对本发明做进一步的说明,其中:
图1为本发明实施例提供的一种数据解码系统的结构示意图;
图2为本发明实施例提供的一种数据解码方法的整体流程图;
图3为本发明实施例提供的一种数据解码方法的第一流程图;
图4为本发明实施例提供的一种数据解码方法的第二流程图;
图5为本发明示例一提供的一种数据解码方法的一个流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
本发明的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
Lz77压缩算法的解码过程中可以得到两类特征数据,一类是绝对数据,可以做为结果直接输出;一类是相对数据,用来记录新数据与已经解码得到历史数据的关系,用数据距离和数据长度两个值表示。通过数据距离和数据长度从已经保存的历史数据(相当于字典,最大支持32K字节的数据距离)中读取相应长短数据(参考数据)即可得到该笔解码的真实数据。因此lz77硬件解码需要将最近的32K字节历史数据进行保存,以便作为字典参考查询。
硬件设计中,字典的保存方式存在三种方案。第一种是将字典数据保存在sram(静态随机存储器)中,优点是解码模块可以快速访问,缺点是sram成本高。第二种是采用dram(动态随机存储器)进行保存,优点是dram成本低,缺点是解码模块采用间接访问耗时长。第三种是成本和速度折中方案,数据距离近的字典数据保存在sram中,数据距离远的字典数据保存在dram中。可以知道,sram中存放的数据越多,解码过程访问dram的概率越小,这样解码速度越快。
现关技术中,从节省硬件成本且兼顾解码效率考虑,硬件解码通常考虑是将数据距离较近的字典数据存放在sram中,数据距离较远的字典数据存在dram中。但是现有的技术方案多是采用串行取字典数据的方式,即解码得到一个绝对数据/相对数据并将数据处理完后,再解码处理下一个绝对数据/相对数据。此时解码速度完全受限于所设计的字典数据sram的大小。当sram较小时解码速度极低,若要获得可观的解码速度则需要大量的sram,增加了硬件成本。
基于此,本申请提出了一种数据解码方法、系统、设备及介质,通过采用至少两个第一数据搬运模块并行的读取存储模块(字典dram)中的参考数据,从而可以节约间接访问存储模块(字典dram)的总时间。达到用较小的第一缓存模块(字典sram)存储数据距离较近的字典数据的同时,获得较高的解码速度,节省硬件成本。
在对本发明实施例中提供的数据解码方法进行说明之前,首先对本发明中的数据解码系统的组成结构进行介绍。
请参照图1,图1是本发明实施例提供的一种数据解码系统的结构示意图,具体地,包括数据处理模块、第一缓存模块、至少两个第二缓存模块、存储模块、至少两个第一数据搬运模块,数据处理模块并行连接第一缓存模块和至少两个第二缓存模块,第二缓存模块与第一数据搬运模块一一对应连接,存储模块与至少两个第一数据搬运模块并行连接。
需要说明的是,数据解码系统还包括第二数据搬运模块,第二数据搬运模块分别与第一缓存模块和存储模块连接。
图2是本发明实施例提供的一种数据解码方法的整体流程图,该数据解码方法应用于数据解码系统,数据解码系统包括数据处理模块、第一缓存模块、至少两个第二缓存模块、存储模块、至少两个第一数据搬运模块,数据处理模块并行连接第一缓存模块和至少两个第二缓存模块,第二缓存模块与第一数据搬运模块一一对应连接,存储模块与至少两个第一数据搬运模块并行连接,参照图2,该数据解码方法包括但不限于步骤S110至步骤S140。
步骤S110,数据处理模块获取待解码数据,待解码数据包括多个特征数据;
步骤S120,当确定特征数据为相对数据,数据处理模块根据特征数据的距离值和长度值判断参考数据的存储位置,其中,参考数据为对应于特征数据的解码数据;
步骤S130,若确定参考数据中的第一参考数据的存储位置在存储模块,数据处理模块向至少两个第一数据搬运模块发送读数据请求,以使得第一数据搬运模块并行从存储模块获取第一参考数据,第一数据搬运模块将获取到的至少两个第一参考数据分别存储于与第一数据搬运模块对应的第二缓存模块中,第一参考数据是参考数据中的至少一部分;
步骤S140,数据处理模块从第二缓存模块读出第一参考数据,并写入第一缓存模块。
在步骤S110中,一个待解码数据会分为多个特征数据,这些特征数据的类别有的是绝对数据,有的是相对数据。绝对数据可直接写入第一缓存模块中,但相对数据还需要得到对应的参考数据。
在步骤S120中,当确定特征数据为相对数据,说明需要得到与该特征数据对应的参考数据。在本发明实施例中,参考数据的存储位置可能是第一缓存模块和存储模块中的至少一个,所以需要根据特征数据的距离值和长度值判断到底该参考数据位于哪个位置。
在步骤S130中,若确定参考数据中的第一参考数据的存储位置在存储模块,若是直接访问存储模块获取第一参考数据则就会存在访问时间过长的问题,因此在本步骤中是数据处理模块通过对至少两个第一数据搬运模块发送读数据请求,以使得第一数据搬运模块并行从存储模块获取第一参考数据。在一实施例中,通过多个并行的第一数据搬运模块,在单个特征数据是相对数据,并且参考数据在存储模块以及需要进行多笔请求才能完成取数时,可以同时发起多笔取数据请求,然后逐一写入,减少单个特征数据取数等待时间。
需要说明的是,一个第一数据搬运模块接受一笔数据请求,多个第一数据搬运模块并行从存储模块中获取到多笔第一参考数据,第一数据搬运模块将获取到的至少两个第一参考数据分别存储于与第一数据搬运模块对应的第二缓存模块中,这样大大减少了因间接访问存储模块带来的访问时间长、解码速度慢等问题。需要说明的是,第一参考数据是参考数据中的至少一部分,也可以是参考数据的全部。
在步骤S140中,数据处理模块从第二缓存模块读出第一参考数据,并写入第一缓存模块。在此步骤中,第一参考数据已经被第一数据搬运模块写入了第二缓存模块,因此数据处理模块可以从多个第二缓存模块中得到多笔第一参考数据。不需要将一个相对数据处理完才能处理下一个数据,在本步骤中,由于存在多个第二缓存模块,可以同时写入多笔数据,减少等待时间,提高解码速度。
可以理解的是,本发明实施例所指的读数据请求是与特征数据一一对应的,也就是说若确定特征数据为相对数据,且该特征数据的参考数据中的至少一部分在存储模块,那么数据处理模块将通过向第一数据搬运模块发送读数据请求的方式,得到该特征数据的第一参考数据。多个特征数据就是多笔读数据请求,通过设置多个第一数据搬运模块以使得响应更多的读数据请求。在本实施例中,多笔读数据请求互不影响,可以并行发出,以使得多个第一数据搬运模块并行从存储模块中获取第一参考数据,相较于现有技术的按顺序执行,有效提高了解码速度。
需要说明的是,确定是相对数据的多个特征数据中都有一一对应的参考数据,其中每个参考数据中的第一参考数据的存储位置并不一定相同。当第一参考数据确定存储在存储模块的特征数据,由数据处理模块向第一数据搬运模块发送数据请求,多个特征数据对应生成多个请求。不再需要解决完一个特征数据在处理下一个特征数据的方式,在一实施例中,相邻多个特征数据是相对数据,并且多个特征数据的第一参考数据在存储模块,可以同时发起多笔取数据请求,然后逐一写入,减少多个特征数据间取数等待时间。本发明实施例并行获取第一参考数据的解码方式,有效提高间接访问获取存储模块参考数据的效率。
在一实施例中,在使用较小的第一缓存模块(数千字节)加上极小的至少两个第二缓存模块(数百字节)的情况下达到其他方案(数万字节第一缓存模块)的效率,在节省硬件资源的同时提高解码速度。
在一实施例中,参考数据还包括第二参考数据,参照图3,该数据解码方法还包括但不限于步骤S210。
步骤S210,若第二参考数据的存储位置在第一缓存模块,数据处理模块从第一缓存模块读出第二参考数据,并写入第一缓存模块。
在步骤S210中,对第一缓存模块进行数据的读取是可以快速访问的,因此若第二参考数据的存储位置在第一缓存模块,则不需要经过第一数据搬运模块,直接从第一缓存模块读出第二参考数据,并写入第一缓存模块,实现特征数据的解码操作。
可以理解的是,当参考数据还包括第二参考数据,说明第一参考数据是参考数据的一部分,第二参考数据也是参考数据的一部分。第一参考数据与第二参考数据并不重复,但并不是说参考数据只能包括第一参考数据和第二参考数据。可以理解的是,可能还有第三参考数据,本发明实施例不做具体限制。
可以理解的是,在参考数据只包括第一参考数据和第二参考数据的情况下,存在以下三种情况:若第一参考数据位于存储模块,而第二参考数据位于第一缓存模块,说明参考数据的存储位置横跨了第一缓存模块和存储模块。若第一参考数据位于存储模块,而第二参考数据也位于存储模块,说明参考数据的存储位置只在存储模块。若第一参考数据位于第一缓存模块,而第二参考数据也位于第一缓存模块,说明参考数据的存储位置只在第一缓存模块。
需要说明的是,若第一参考数据的存储位置在第一缓存模块,则不需要经过第一数据搬运模块,数据处理模块直接从第一缓存模块读出第一参考数据,并写入第一缓存模块,实现特征数据的解码操作。
在一实施例中,参照图4,第一数据搬运模块将第一参考数据写入与第一数据搬运模块对应的第二缓存模块后,第一数据搬运模块向数据处理模块发送反馈信号,该数据解码方法还包括但不限于步骤S310至S320。
步骤S310,数据处理模块接收第一数据搬运模块发送的反馈信号;
步骤S320,数据处理模块从第二缓存模块读出第一参考数据,并写入第一缓存模块。
在步骤S310至步骤S320中,一个第一数据搬运模块接受一笔数据请求,数据处理模块采用一个时段内对多个第一数据搬运模块发出多笔数据请求方式,经过一段时间后连续返回获得多笔数据。因为有多个第一数据搬运模块,因此数据处理模块可以在第一次反馈信号回来之前,继续处理下一个从数据判别模块发出的特征数据(可能是相对数据或者绝对数据),若是绝对数据就直接写进第一缓存模块中,若是相对数据再对另一个第一数据搬运模块发出数据请求,直到待写进第一缓存模块的数据准备好之后再分别进行写操作即可。相应的第二缓存模块只需要满足lz77协议单笔参考数据最长258字节即可。
在一实施例中,数据解码系统还包括第二数据搬运模块,第二数据搬运模块分别与第一缓存模块和存储模块连接,该数据解码方法还包括但不限于:
当第一缓存模块的存储空间小于第一参考数据或第二参考数据的大小,通过第二数据搬运模块将第一缓存模块内缓存的数据移位至存储模块;
或者,
当把第一参考数据或第二参考数据写入第一缓存模块的解码操作完成,通过第二数据搬运模块将第一缓存模块内缓存的数据移位至存储模块。
具体的,当第一缓存模块数据写满或者解码操作完成,数据处理模块会向第二数据搬运模块发送写数据请求,然后第二数据搬运模块响应于写数据请求将第一缓存模块的数据搬运到存储模块中。
可以理解的是,数据处理模块还可以接收来自第二数据搬运模块发送的反馈信号,数据处理模块响应于反馈信号继续进行解码操作或处理下一个待解码数据。
下面提出本发明的两个具体示例。
示例一,请参照图5,一种数据解码方法,该方法主要应用数据解码系统,该方法包括:
数据处理模块获取待解码数据,待解码数据包括多个特征数据;
当数据处理模块判断特征数据是绝对数据时,数据处理模块将特征数据直接写进第一缓存模块;
当数据处理模块判断特征数据是相对数据时,此时需要数据处理模块对从字典数据中回读参考数据才能得到真实的数据。此时,数据处理模块根据相对数据的距离值和长度值判断要回读的参考数据的存储位置是第一缓存模块还是存储模块;若参考数据在第一缓存模块,可直接对第一缓存模块的参考数据进行先读后写。若参考数据在存储模块中,数据处理模块向第一数据搬运模块发出读数据请求,第一数据搬运模块收到读数据请求后从存储模块中读取相应参考数据保存到对应的第二缓存模块,然后发送反馈信号给数据处理模块,数据处理模块收到反馈信号后从对应的第二缓存模块中读取参考数据再写到第一缓存模块。若参考数据横跨存储模块和第一缓存模块,数据处理模块向第一数据搬运模块发出读数据请求,第一数据搬运模块收到读数据请求后从存储模块读取相应参考数据保存到对应的第二缓存模块然后发送反馈信号给数据处理模块,数据处理模块收到反馈信号后从对应的第二缓存模块读取参考数据再写到第一缓存模块,然后再从第一缓存模块读取剩余部分相应的参考数据再写回第一缓存模块中。
示例二,一种数据解码方法,该方法在示例一的基础上还包括:
当数据写满或数据解码操作完成,数据处理模块向第二搬运模块发送写数据请求,第二数据搬运模块响应于写数据请求将第一缓存模块存储的数据移位至存储模块。
本发明实施例还提供了一种数据解码系统,包括数据处理模块、第一缓存模块、至少两个第二缓存模块、存储模块、至少两个第一数据搬运模块,数据处理模块并行连接第一缓存模块和至少两个第二缓存模块,第二缓存模块与第一数据搬运模块一一对应连接,存储模块与至少两个第一数据搬运模块并行连接,其中,数据处理模块获取待解码数据,待解码数据包括多个特征数据;
当确定特征数据为相对数据,数据处理模块根据特征数据的距离值和长度值判断参考数据的存储位置,其中,参考数据为对应于特征数据的解码数据;
若确定参考数据中的第一参考数据的存储位置在存储模块,数据处理模块向至少两个第一数据搬运模块发送数据请求,以使得第一数据搬运模块并行从存储模块获取第一参考数据,第一数据搬运模块将获取到的至少两个第一参考数据分别存储于与第一数据搬运模块对应的第二缓存模块中,第一参考数据是参考数据中的至少一部分;
数据处理模块从第二缓存模块读出第一参考数据,并写入第一缓存模块。
在本实施例的数据解码系统中,数据处理模块通过并行处理数据,增加多个第一数据搬运模块和第二缓存模块,提高间接访问获取存储模块(字典dram)字典数据的效率。在使用较小的第一缓存模块(数千字节)加上极小的至少两个第二缓存模块(数百字节)的情况下达到其他方案(数万字节缓存模块)的效率,在节省硬件资源的同时提高解码速度。
本发明实施例还提供了一种数据解码系统,还包括第二数据搬运模块,第二数据搬运模块分别与第一缓存模块和存储模块连接,其中,数据处理模块还用于:
当第一缓存模块的存储空间小于第一参考数据的大小,通过第二数据搬运模块将第一缓存模块内缓存的数据移位至存储模块;
或者,
当把第一参考数据写入第一缓存模块的解码操作完成,通过第二数据搬运模块将第一缓存模块内缓存的数据移位至存储模块。
具体的,当第一缓存模块数据写满或者解码操作完成,数据处理模块会向第二数据搬运模块发送写数据请求,然后第二数据搬运模块将第一缓存模块的数据写到存储模块中。
本发明实施例的数据解码系统各个模块通过执行数据解码方法,提高了数据解码的速度,节约了硬件资源。
其中,一种数据解码系统的具体执行步骤参照上述一种数据解码方法,此处不再赘述。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述任一项方法实施例中的方法。
此外,本发明的一个实施例还提供了一种存储介质,该存储介质为计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,一个或多个控制处理器执行上述方法实施例中的方法,例如,执行以上描述的图2中的方法步骤S110至S140、图3中的方法步骤S210、图4中的方法步骤S310至S320。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络节点上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本公开实施例描述的实施例是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,实施例示出的技术方案并不构成对本公开实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本发明的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机可读存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
Claims (10)
1.一种数据解码方法,其特征在于,应用于数据解码系统,所述数据解码系统包括数据处理模块、第一缓存模块、至少两个第二缓存模块、存储模块、至少两个第一数据搬运模块,所述数据处理模块并行连接所述第一缓存模块和至少两个所述第二缓存模块,所述第二缓存模块与所述第一数据搬运模块一一对应连接,所述存储模块与至少两个所述第一数据搬运模块并行连接,所述方法包括:
所述数据处理模块获取待解码数据,所述待解码数据包括多个特征数据;
当确定所述特征数据为相对数据,所述数据处理模块根据所述特征数据的距离值和长度值判断参考数据的存储位置,其中,所述参考数据为对应于所述特征数据的解码数据;
若确定所述参考数据中的第一参考数据的存储位置在所述存储模块,所述数据处理模块向至少两个所述第一数据搬运模块发送读数据请求,以使得所述第一数据搬运模块并行从所述存储模块获取所述第一参考数据,所述第一数据搬运模块将获取到的至少两个所述第一参考数据分别存储于与所述第一数据搬运模块对应的所述第二缓存模块中,所述第一参考数据是所述参考数据中的至少一部分;
所述数据处理模块从所述第二缓存模块读出所述第一参考数据,并写入所述第一缓存模块。
2.根据权利要求1所述的一种数据解码方法,其特征在于,所述参考数据还包括第二参考数据,所述方法还包括:
若所述第二参考数据的存储位置在所述第一缓存模块,所述数据处理模块从所述第一缓存模块读出所述第二参考数据,并写入所述第一缓存模块。
3.根据权利要求1所述的一种数据解码方法,其特征在于,所述方法还包括:
若所述第一参考数据的存储位置在所述第一缓存模块,所述数据处理模块从所述第一缓存模块中读出所述第一参考数据,并将所述第一参考数据写入所述第一缓存模块。
4.根据权利要求1所述的一种数据解码方法,其特征在于,所述第一数据搬运模块将所述第一参考数据写入与所述第一数据搬运模块对应的所述第二缓存模块后,所述第一数据搬运模块向所述数据处理模块发送反馈信号;所述方法还包括:
所述数据处理模块接收所述第一数据搬运模块发送的反馈信号;
所述数据处理模块从所述第二缓存模块读出所述第一参考数据,并写入所述第一缓存模块。
5.根据权利要求2所述的一种数据解码方法,其特征在于,所述数据解码系统还包括第二数据搬运模块,所述第二数据搬运模块分别与所述第一缓存模块和所述存储模块连接,所述方法还包括:
当所述第一缓存模块的存储空间小于所述第一参考数据或所述第二参考数据的大小,所述数据处理模块通过所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块;
或者,
当把所述第一参考数据或所述第二参考数据写入所述第一缓存模块的解码操作完成,所述数据处理模块通过所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块。
6.根据权利要求5所述的一种数据解码方法,其特征在于,所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块后,所述第二数据搬运模块向所述数据处理模块发送反馈信号;所述方法还包括:
所述数据处理模块接收所述第二数据搬运模块发送的反馈信号;
所述数据处理模块继续进行解码操作或处理下一个待解码数据。
7.一种数据解码系统,其特征在于,包括数据处理模块、第一缓存模块、至少两个第二缓存模块、存储模块、至少两个第一数据搬运模块,所述数据处理模块并行连接所述第一缓存模块和至少两个所述第二缓存模块,所述第二缓存模块与所述第一数据搬运模块一一对应连接,所述存储模块与至少两个所述第一数据搬运模块并行连接,
其中,所述数据处理模块获取待解码数据,所述待解码数据包括多个特征数据;
当确定所述特征数据为相对数据,所述数据处理模块根据所述特征数据的距离值和长度值判断参考数据的存储位置,其中,所述参考数据为对应于所述特征数据的解码数据;
若确定所述参考数据中的第一参考数据的存储位置在所述存储模块,所述数据处理模块向至少两个所述第一数据搬运模块发送数据请求,以使得所述第一数据搬运模块并行从所述存储模块获取所述第一参考数据,所述第一数据搬运模块将获取到的至少两个所述第一参考数据分别存储于与所述第一数据搬运模块对应的所述第二缓存模块中,所述第一参考数据是所述参考数据中的至少一部分;
所述数据处理模块从所述第二缓存模块读出所述第一参考数据,并写入所述第一缓存模块。
8.根据权利要求7所述的一种数据解码系统,其特征在于,还包括第二数据搬运模块,所述第二数据搬运模块分别与所述第一缓存模块和所述存储模块连接,其中,所述数据处理模块还用于:
当所述第一缓存模块的存储空间小于所述第一参考数据的大小,通过所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块;
或者,
当把所述第一参考数据写入所述第一缓存模块的解码操作完成,通过所述第二数据搬运模块将所述第一缓存模块内缓存的数据移位至所述存储模块。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述的方法。
10.一种存储介质,所述存储介质为计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210063461.8A CN114077554B (zh) | 2022-01-20 | 2022-01-20 | 一种数据解码方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210063461.8A CN114077554B (zh) | 2022-01-20 | 2022-01-20 | 一种数据解码方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114077554A true CN114077554A (zh) | 2022-02-22 |
CN114077554B CN114077554B (zh) | 2022-06-21 |
Family
ID=80284703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210063461.8A Active CN114077554B (zh) | 2022-01-20 | 2022-01-20 | 一种数据解码方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114077554B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115801019A (zh) * | 2023-02-08 | 2023-03-14 | 广州匠芯创科技有限公司 | 并行加速lz77解码方法及其装置、电子设备 |
CN116166830A (zh) * | 2023-04-21 | 2023-05-26 | 北京象帝先计算技术有限公司 | 数据处理系统、电子组件、电子设备及数据处理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078647A (zh) * | 2013-01-15 | 2013-05-01 | 中国科学院计算技术研究所 | 一种lz77压缩算法的硬件解码实现系统及方法 |
CN103916131A (zh) * | 2013-01-02 | 2014-07-09 | 三星电子株式会社 | 压缩数据的方法和用于执行该方法的设备 |
CN104202054A (zh) * | 2014-09-16 | 2014-12-10 | 东南大学 | 一种硬件lzma压缩实现系统及方法 |
US20160210245A1 (en) * | 2015-01-21 | 2016-07-21 | Mstar Semiconductor, Inc. | Circuit for accessing memory and associated accessing method |
CN107145454A (zh) * | 2017-05-15 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种数据读写的方法与装置 |
CN107515829A (zh) * | 2016-06-17 | 2017-12-26 | 龙芯中科技术有限公司 | 高速缓冲存储器的访问方法和装置 |
CN108415668A (zh) * | 2018-02-06 | 2018-08-17 | 珠海市杰理科技股份有限公司 | 芯片激励方法、装置、系统、计算机设备和存储介质 |
CN110413540A (zh) * | 2019-06-28 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种fpga数据缓存的方法、系统、设备及存储介质 |
-
2022
- 2022-01-20 CN CN202210063461.8A patent/CN114077554B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916131A (zh) * | 2013-01-02 | 2014-07-09 | 三星电子株式会社 | 压缩数据的方法和用于执行该方法的设备 |
CN103078647A (zh) * | 2013-01-15 | 2013-05-01 | 中国科学院计算技术研究所 | 一种lz77压缩算法的硬件解码实现系统及方法 |
CN104202054A (zh) * | 2014-09-16 | 2014-12-10 | 东南大学 | 一种硬件lzma压缩实现系统及方法 |
US20160210245A1 (en) * | 2015-01-21 | 2016-07-21 | Mstar Semiconductor, Inc. | Circuit for accessing memory and associated accessing method |
CN107515829A (zh) * | 2016-06-17 | 2017-12-26 | 龙芯中科技术有限公司 | 高速缓冲存储器的访问方法和装置 |
CN107145454A (zh) * | 2017-05-15 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种数据读写的方法与装置 |
CN108415668A (zh) * | 2018-02-06 | 2018-08-17 | 珠海市杰理科技股份有限公司 | 芯片激励方法、装置、系统、计算机设备和存储介质 |
CN110413540A (zh) * | 2019-06-28 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种fpga数据缓存的方法、系统、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115801019A (zh) * | 2023-02-08 | 2023-03-14 | 广州匠芯创科技有限公司 | 并行加速lz77解码方法及其装置、电子设备 |
CN115801019B (zh) * | 2023-02-08 | 2023-05-12 | 广州匠芯创科技有限公司 | 并行加速lz77解码方法及其装置、电子设备 |
CN116166830A (zh) * | 2023-04-21 | 2023-05-26 | 北京象帝先计算技术有限公司 | 数据处理系统、电子组件、电子设备及数据处理方法 |
CN116166830B (zh) * | 2023-04-21 | 2023-08-11 | 北京象帝先计算技术有限公司 | 数据处理系统、电子组件、电子设备及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114077554B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114077554B (zh) | 一种数据解码方法、系统、设备及介质 | |
CN108733344B (zh) | 数据读写方法、装置以及环形队列 | |
US8738861B2 (en) | Data prefetching method for distributed hash table DHT storage system, node, and system | |
US20200218662A1 (en) | Data caching device and control method therefor, data processing chip, and data processing system | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
CN107590099B (zh) | 一种多主机访问从机的方法、扩展装置及存储介质 | |
CN112486852B (zh) | 一种固态硬盘及其地址映射方法 | |
US10649905B2 (en) | Method and apparatus for storing data | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
US20190332540A1 (en) | Storage management method, electronic device and computer readable medium | |
CN106960054B (zh) | 数据文件的存取方法及装置 | |
CN112486913B (zh) | 一种基于集群环境下的日志异步存储方法和设备 | |
CN115576505B (zh) | 一种数据存储方法、装置、设备及可读存储介质 | |
CN117632043B (zh) | Cxl内存模组、控制芯片、数据处理方法、介质和系统 | |
CN112035524B (zh) | 列表数据查询方法、装置、计算机设备及可读存储介质 | |
CN116431080B (zh) | 一种数据落盘方法、系统、设备及计算机可读存储介质 | |
CN116361031A (zh) | 消息的传输方法、系统、装置、处理器以及电子设备 | |
CN103870204A (zh) | 一种cache中数据写入和读取方法、cache控制器 | |
KR20200126155A (ko) | 명령 머지 동작을 수행하는 반도체 메모리 장치 및 그 동작 방법 | |
CN110362769B (zh) | 一种数据处理方法及装置 | |
CN103491124A (zh) | 一种对彩信数据进行处理的方法及分布式缓存系统 | |
CN111930675A (zh) | 一种数据传输管理方法、系统及装置 | |
CN116705101B (zh) | 多psram颗粒芯片的数据处理方法、电子设备及存储介质 | |
CN110658999A (zh) | 一种信息更新方法、装置、设备及计算机可读存储介质 | |
CN113792074B (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 |