一种数据处理方法、装置、设备及可读存储介质与流程

文档序号:32862489发布日期:2023-01-07 01:04阅读:28来源:国知局
一种数据处理方法、装置、设备及可读存储介质与流程

1.本技术涉及计算机技术领域,特别涉及一种数据处理方法、装置、设备及可读存储介质。


背景技术:

2.目前在压缩数据时,可以查询预设字典,以构建待压缩数据的哈希链表。其中,针对任一压缩数据,会对其中的不同字符片段同时查询得到相应的哈希链表,而有的字符片段的哈希链表长,有的字符片段的哈希链表短,因此查到这些哈希链表的查询返回时间不定,也即:查询返回时间与各字符片段在压缩数据中的原顺序不一致,导致各个哈希链表乱序输出,影响数据压缩的后续处理。
3.因此,如何使待压缩数据对应的各个哈希链表顺序存储,是本领域技术人员需要解决的问题。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种数据处理方法、装置、设备及可读存储介质,以使待压缩数据对应的各个哈希链表顺序存储。其具体方案如下:第一方面,本技术提供了一种数据处理方法,应用于硬件设备,包括:获取目标字符串;在所述目标字符串中确定多个字符片段;根据各个字符片段在所述目标字符串中的位置查询各个字符片段对应的哈希链表,并确定各个哈希链表在所述硬件设备的双口ram中的写入地址;按照所述写入地址将每一哈希链表中的各链点信息写入所述双口ram。
5.可选地,所述根据各个字符片段在所述目标字符串中的位置查询各个字符片段对应的哈希链表,包括:根据各个字符片段在所述目标字符串中的位置以及位置在前先查询的规则确定各个字符片段的查询顺序;按照所述查询顺序查询各个字符片段对应的哈希链表。
6.可选地,任一字符片段对应的哈希链表的查询过程包括:计算当前字符片段的哈希值;确定所述哈希值对应的当前需读地址;判断所述当前需读地址与已查到哈希链表的字符片段的哈希值是否相同;若否,则从所述当前需读地址中读取链点信息后,为该链点信息添加链表结束标志位,并将读取到的链点信息构建为当前字符片段对应的哈希链表。
7.可选地,若所述当前需读地址与已查到哈希链表的字符片段的哈希值相同,则从所述当前需读地址中读取链点信息后,为该链点信息添加链表未结束标志位,并确定下一需读地址,并执行所述判断所述当前需读地址与已查到哈希链表的字符片段的哈希值是否
相同的步骤。
8.可选地,所述确定所述哈希值对应的当前需读地址,包括:将所述哈希值作为所述当前需读地址。
9.可选地,所述确定各个哈希链表在所述硬件设备的双口ram中的写入地址,包括:按照所述查询顺序以及先查询写入地址在前的规则确定各个哈希链表在所述双口ram中的写入地址。
10.可选地,所述双口ram为多个;相应地,任一哈希链表中的各链点信息的写入过程包括:按照所述写入地址将当前哈希链表中的各链点信息分别写入各双口ram。
11.可选地,还包括:按照所述写入地址从各双口ram中读出任一字符片段对应的哈希链表;确定当前读取的哈希链表中的各链点信息对应的编码长度,并选择编码长度最长的链点信息作为当前字符片段的压缩信息。
12.可选地,所述选择编码长度最长的链点信息作为当前字符片段的压缩信息,包括:以并行级联方式比较当前读取的哈希链表中的各链点信息对应的编码长度,以选择编码长度最长的链点信息作为当前字符片段的压缩信息。
13.可选地,还包括:若编码长度最长的链点信息有多个,则确定多个编码长度最长的链点信息对应的距离值,并选择距离值最小的链点信息作为当前字符片段的压缩信息。
14.可选地,还包括:任意双口ram中的任一ram地址写入携带有链表结束标志位的链点信息后,将该ram地址对应的状态寄存器置1;相应地,该ram地址中的数据被读出后,将该ram地址对应的状态寄存器置0。
15.可选地,任意字符片段对应的哈希链表中的链点信息的个数不超过双口ram的个数。
16.第二方面,本技术提供了一种数据处理装置,应用于硬件设备,包括:获取模块,用于获取目标字符串;确定模块,用于在所述目标字符串中确定多个字符片段;处理模块,用于根据各个字符片段在所述目标字符串中的位置查询各个字符片段对应的哈希链表,并确定各个哈希链表在所述硬件设备的双口ram中的写入地址;写入模块,用于按照所述写入地址将每一哈希链表中的各链点信息写入所述双口ram。
17.可选地,所述处理模块具体用于:根据各个字符片段在所述目标字符串中的位置以及位置在前先查询的规则确定各个字符片段的查询顺序;按照所述查询顺序查询各个字符片段对应的哈希链表。
18.可选地,所述处理模块具体用于:针对任一字符片段,计算当前字符片段的哈希值;确定所述哈希值对应的当前需读地址;判断所述当前需读地址与已查到哈希链表的字符片段的哈希值是否相同;若否,则从所述当前需读地址中读取链点信息后,为该链点信息
添加链表结束标志位,并将读取到的链点信息构建为当前字符片段对应的哈希链表。
19.可选地,所述处理模块具体用于:若所述当前需读地址与已查到哈希链表的字符片段的哈希值相同,则从所述当前需读地址中读取链点信息后,为该链点信息添加链表未结束标志位,并确定下一需读地址,并执行所述判断所述当前需读地址与已查到哈希链表的字符片段的哈希值是否相同的步骤。
20.可选地,所述处理模块具体用于:将所述哈希值作为所述当前需读地址。
21.可选地,所述处理模块还包括:地址确定单元,用于按照所述查询顺序以及先查询写入地址在前的规则确定各个哈希链表在所述双口ram中的写入地址。
22.可选地,所述双口ram为多个;相应地,写入模块具体用于:针对任一哈希链表,按照所述写入地址将当前哈希链表中的各链点信息分别写入各双口ram。
23.可选地,还包括:读取模块,用于按照所述写入地址从各双口ram中读出任一字符片段对应的哈希链表;选择模块,用于确定当前读取的哈希链表中的各链点信息对应的编码长度,并选择编码长度最长的链点信息作为当前字符片段的压缩信息。
24.可选地,所述选择模块具体用于:以并行级联方式比较当前读取的哈希链表中的各链点信息对应的编码长度,以选择编码长度最长的链点信息作为当前字符片段的压缩信息。
25.可选地,还包括:另一选择模块,用于若编码长度最长的链点信息有多个,则确定多个编码长度最长的链点信息对应的距离值,并选择距离值最小的链点信息作为当前字符片段的压缩信息。
26.可选地,还包括:地址状态更改模块,用于任意双口ram中的任一ram地址写入携带有链表结束标志位的链点信息后,将该ram地址对应的状态寄存器置1;相应地,该ram地址中的数据被读出后,将该ram地址对应的状态寄存器置0。
27.可选地,任意字符片段对应的哈希链表中的链点信息的个数不超过双口ram的个数。
28.第三方面,本技术提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序,以实现前述公开的数据处理方法。
29.第四方面,本技术提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据处理方法。
30.通过以上方案可知,本技术提供了一种数据处理方法,应用于硬件设备,包括:获取目标字符串;在所述目标字符串中确定多个字符片段;根据各个字符片段在所述目标字符串中的位置查询各个字符片段对应的哈希链表,并确定各个哈希链表在所述硬件设备的双口ram中的写入地址;按照所述写入地址将每一哈希链表中的各链点信息写入所述双口
ram。可见,本技术的有益效果为利用硬件设备获取目标字符串后,在目标字符串中确定多个字符片段,然后根据各个字符片段在目标字符串中的位置查询各个字符片段对应的哈希链表,并确定各个哈希链表在硬件设备的双口ram中的写入地址,之后按照写入地址将每一哈希链表中的各链点信息写入硬件设备中的双口ram,由此可使各个哈希链表按照其写入地址存储在双口ram中。该方案在存储各个哈希链表之前,提前按照各个字符片段在目标字符串中的位置为各个哈希链表确定了写入地址,后续在使用双口ram存储某一哈希链表时,也按照之前为该哈希链表确定的写入地址完成其中各链点信息的写入,也即:各个哈希链表可在双口ram中按照预先确定的写入地址进行存储,使得各个哈希链表在ram中的地址的顺序符合原查询顺序,而不会乱序存储,由此可实现:待压缩数据对应的各个哈希链表的顺序存储。那么后续可以按照ram地址的顺序读出各个哈希链表,而不会乱序读取各个哈希链表,也不会影响后续压缩操作。同时,本技术利用硬件设备也可加速压缩效率。
31.相应地,本技术提供的一种数据处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
32.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
33.图1为本技术公开的一种数据处理方法流程图;图2为本技术公开的一种链点写入示意图;图3为本技术公开的一种构建哈希链表的示意图;图4为本技术公开的一种并行级联比较方式与串行冒泡比较法的对比示意图;图5为本技术公开的一种比较结果递归传输示意图;图6为本技术公开的一种数据处理装置示意图;图7为本技术公开的一种电子设备示意图。
具体实施方式
34.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.目前,在压缩数据时,可以查询预设字典,以构建待压缩数据的哈希链表。其中,针对任一压缩数据,会对其中的不同字符片段同时查询得到相应的哈希链表,而有的字符片段的哈希链表长,有的字符片段的哈希链表短,因此查到这些哈希链表的查询返回时间不定,也即:查询返回时间与各字符片段在压缩数据中的原顺序不一致,导致各个哈希链表乱序输出,影响数据压缩的后续处理。为此,本技术提供了一种数据处理方案,能够使待压缩数据对应的各个哈希链表顺序存储。
36.参见图1所示,本技术实施例公开了一种数据处理方法,应用于硬件设备,包括:
s101、获取目标字符串。
37.s102、在目标字符串中确定多个字符片段。
38.在本实施例中,目标字符串为待压缩的数据。例如:目标字符串为:abcdefgh。相应地,在目标字符串中确定的多个字符片段可以为:abc、bcd、cde、def、efg、fgh。可见,字符片段一般包括3个字符。
39.适用于本实施例的压缩算法有lz77算法等。lz77算法是一种常用的字典匹配算法,利用恒定大小的“滑动窗口”来处理数据中重复出现的字符串。字典的构建及字符串的匹配目前常用的算法就是利用哈希方法,提取固定字节的个别比特,然后根据特定的哈希函数计算哈希值,将计算出的哈希值作为写地址,将链点信息进行写入。字符串匹配时再利用该字符串固定字节的个别比特进行哈希,将哈希值作为读地址,以读出链点信息,然后根据此链点信息找到原始字典的字符串进行一一比较,进而得到一个匹配长度信息;匹配距离信息可以由当前查找字符串的位置信息和从字典中读出的匹配链点的位置信息两者之差计算而来。最终可以用一个匹配长度和匹配距离的信息作为一段字符的压缩信息。
40.s103、根据各个字符片段在目标字符串中的位置查询各个字符片段对应的哈希链表,并确定各个哈希链表在硬件设备的双口ram中的写入地址。
41.参照上述示例的目标字符串abcdefgh,abc、bcd、cde、def、efg、fgh在目标字符串中的位置可以按序记录为:1、2、3、4、5、6,那么这6个字符片段的查询顺序按照1、2、3、4、5、6的顺序进行。可见,位置靠前的字符片段的查询顺序靠前。
42.在一种具体实施方式中,根据各个字符片段在目标字符串中的位置查询各个字符片段对应的哈希链表,包括:根据各个字符片段在目标字符串中的位置以及位置在前先查询的规则确定各个字符片段的查询顺序;按照查询顺序查询各个字符片段对应的哈希链表。
43.其中,任一字符片段对应的哈希链表的查询过程包括:计算当前字符片段的哈希值;确定哈希值对应的当前需读地址;判断当前需读地址与已查到哈希链表的字符片段的哈希值是否相同;若否,则从当前需读地址中读取链点信息后,为该链点信息添加链表结束标志位,并将读取到的链点信息构建为当前字符片段对应的哈希链表。若当前需读地址与已查到哈希链表的字符片段的哈希值相同,则从当前需读地址中读取链点信息后,为该链点信息添加链表未结束标志位,并确定下一需读地址,并执行判断当前需读地址与已查到哈希链表的字符片段的哈希值是否相同的步骤,直至当前需读地址与已查到哈希链表的字符片段的哈希值不同。
44.例如:上述字符片段abc对应的哈希链表为:a1,a1中包括链表结束标志位。而查询字符片段bcd的哈希链表时,字符片段bcd的哈希值与字符片段abc相同,此时以该哈希值作为当前需读地址,从中读取a1,并为a1添加链表未结束标志位(如0),之后确定下一需读地址,然后继续判断当前需读地址(此时的当前需读地址即前一步骤确定的下一需读地址)与已查到哈希链表的字符片段的哈希值是否相同;若是,则重复上述过程;若否,则从下一需读地址中读取a2,并为a2添加链表结束标志位(如1),如此可得到字符片段bcd的哈希链表:a1

a2,在此链表中,a1、a2为其链点信息,a1中包括链表未结束标志位,a2中包括链表结束标志位。可见,预先存有包括所有链点信息的字典,而查询某一字符片段对应的哈希链表,就是确定当前字符片段可对应哪些链点信息。
45.其中,确定哈希值对应的当前需读地址,包括:将哈希值作为当前需读地址。下一需读地址可按照预设算法或策略确定。一个哈希链表最少包括1个链点信息,最多包括预设值个链点信息。其中,预设值不大于双口ram的个数。可见,将一个字符片段的哈希值作为需读地址,从此地址中可读到该字符片段的偏移地址,该偏移地址为该字符片段的哈希链表的其中一个链点信息。
46.s104、按照各个哈希链表在硬件设备的双口ram中的写入地址将每一哈希链表中的各链点信息写入双口ram。
47.如上所述,位置靠前的字符片段的查询顺序靠前,而查询顺序靠前的字符片段的写入地址靠前。可见,查询顺序和写入地址依赖于字符片段在目标字符串中的位置。因此在一种具体实施方式中,确定各个哈希链表在硬件设备的双口ram中的写入地址,包括:按照查询顺序以及先查询写入地址在前的规则确定各个哈希链表在双口ram中的写入地址。
48.在一种具体实施方式中,双口ram为多个;相应地,任一哈希链表中的各链点信息的写入过程包括:按照写入地址将当前哈希链表中的各链点信息分别写入各双口ram。
49.请参见图2,若双口ram有6个,分别为:ram0、ram1、ram2、ram3、ram4、ram5,则按照字符片段abc、bcd、cde、def、efg、fgh的位置:1、2、3、4、5、6,它们的写入地址可以是地址0、地址1、地址2、地址3、地址4、地址5。也即:当abc对应的哈希链表为:a1时,a1写入ram0的地址0,而ram1-ram5的地址0不写数据。当bcd对应的哈希链表为:a1

a2时,a1写入ram0的地址1,a2写入ram1的地址1,而ram2-ram5的地址1不写数据。当def对应的哈希链表有5个链点信息时,这5个链点信息分别写入ram0的地址3、ram1的地址3、ram2的地址3、ram3的地址3、ram4的地址3。可见,任意字符片段对应的哈希链表中的链点信息的个数不能超过双口ram的个数,否则哈希链表无法被完全存储。
50.需要说明的是,基于各个字符片段对应的哈希链表可确定其压缩信息。在一种具体实施方式中,还包括:按照写入地址从各双口ram中读出任一字符片段对应的哈希链表;确定当前读取的哈希链表中的各链点信息对应的编码长度,并选择编码长度最长的链点信息作为当前字符片段的压缩信息。若编码长度最长的链点信息有多个,则确定多个编码长度最长的链点信息对应的距离值,并选择距离值最小的链点信息作为当前字符片段的压缩信息。其中,一个链点信息对应有一个编码长度和一个距离值。
51.其中,选择编码长度最长的链点信息作为当前字符片段的压缩信息,包括:以并行级联方式比较当前读取的哈希链表中的各链点信息对应的编码长度,以选择编码长度最长的链点信息作为当前字符片段的压缩信息。选择一个链点信息作为某一字符片段的压缩信息,表示:该链点信息对应的编码长度和距离值可以用于解压缩出相应字符片段。
52.本实施例中的双口ram具有两套完全独立的数据线、地址线和读写控制线,可用于提高ram的吞吐率。为了实现读写控制,本实施例在任意双口ram中的任一ram地址写入携带有链表结束标志位的链点信息后,将该ram地址对应的状态寄存器置1;相应地,该ram地址中的数据被读出后,将该ram地址对应的状态寄存器置0。
53.可见,本技术利用硬件设备获取目标字符串后,在目标字符串中确定多个字符片段,然后根据各个字符片段在目标字符串中的位置查询各个字符片段对应的哈希链表,并确定各个哈希链表在硬件设备的双口ram中的写入地址,之后按照写入地址将每一哈希链表中的各链点信息写入硬件设备中的双口ram,由此可使各个哈希链表按照其写入地址存
储在双口ram中。该方案在存储各个哈希链表之前,提前按照各个字符片段在目标字符串中的位置为各个哈希链表确定了写入地址,后续在使用双口ram存储某一哈希链表时,也按照之前为该哈希链表确定的写入地址完成其中各链点信息的写入,使得各个哈希链表在ram中的地址的顺序符合原查询顺序,而不会乱序存储,由此可实现:待压缩数据对应的各个哈希链表的顺序存储。那么后续可以按照ram地址的顺序读出各个哈希链表,而不会乱序读取各个哈希链表,也不会影响后续压缩操作。同时,本技术利用硬件设备也可加速压缩效率。
54.下述实施例使用fpga这一硬件设计实现本技术,也能够解决哈希匹配存在的乱序输出问题,同时以并行级联比较方式有效提高了链点筛选效率,还可以基于rtl(register transfer level,寄存器转换级电路)方便在各个平台移植。
55.一般哈希查表选取字符串的前三个字节的个别比特位进行哈希运算。假设需要查表的字符串为abcdefg

,那么首先选取abc进行哈希,得到哈希值a1,读取地址a1对应的哈希表内容a1,将a1写入ram1。如果存在哈希冲突,那么继续向后查找,得到a2、a3

a8等。每查询到一个对应的链点信息就把对应的链点信息写入对应的双口ram。同理,bcdefg

字符串进行查表时,选取前三个字节bcd进行哈希,得到哈希值b1,读取地址b1对应的哈希表内容b1,若不存在哈希冲突,则直接将b1写入双口ram。其他以此类推,将以cde、def、efg

开头的字符串匹配到的链点信息写入双口ram。
56.可见,abc的哈希值a1即为当前读地址,从此地址中可读到abc的偏移地址,该偏移地址为abc的哈希链表的第一个链点信息。如图3所示,如果abc的偏移地址为0000,其存储在ram中的地址a1中,该地址a1为abc的哈希值,且abc的哈希链表仅包括0000。如果下一字符片段bcd的哈希值也是a1,那么先在地址a1中查到0000作为第一个链点,然后按照预设算法确定下一地址x,在地址x中查出另一链点0030;如果x不与其他字符片段的哈希冲突,那么确定字符片段bcd的哈希链表为:0000

0030。
57.其中,写入双口ram的数据格式为一个比特的表示链表是否结束的标志位加链点信息。若当前链点为最后一个链点,则该标志为1;否则该标志位为0。当写入一个链表的最后一个链点信息至ram地址,则该地址对应的地址状态寄存器置1。
58.双口ram的读控制是根据后级数据处理通道的个数顺序读取的,例如:后级为双通道处理,则每次读取两个地址的ram数据。读取一个链表的最后一个链点信息之后,相应地址的地址状态寄存器要置0。可见,从双口ram每次读几个地址的数据,取决于后级数据处理通道的个数。其中,双口ram的深度取决于链表长度(即链表中的链点总数)。双口ram的地址宽度为一个比特的链点结束标志加上8个比特的链点数据,共9比特。
59.具体的实现步骤包括:(1)将字符片段的相对偏移位置作为双口ram的写地址信息,将哈希匹配的链点信息和一个比特的链点是否结束标志信息写入对应的双口ram。
60.(2)当一个ram地址存储一个链表的最后一个链点信息时,写入后将此地址状态寄存器对应的标志置为1。
61.(3)根据后级的数据处理通道顺序读取双口ram中的链点数据。
62.(4)读取一个链表的最后一个链点后,将对应地址的状态寄存器的标志位置0。
63.读取得到一条哈希链表后,对其中的链点进行比较,以选取一个最优的链点。其中,一个链点对应有一个编码长度和一个距离,选编码长度最长的链点为最优链点。若存在
多个长度最长的链点,从中选取距离相对最短的链点。其中,比较一条哈希链表中的链点时,采用并行级联比较方式,此方式相对于传统的串行冒泡比较法,可以提高链点筛选的速率。请参见图4,当哈希链表长度为8时,纵向示意的串行冒泡比较法需要7个时钟周期,而横向示意的并行级联比较法仅需要3个时钟周期。并且,并行级联比较方式相对于完全并行比较,中间增加的时序逻辑能够有效改善模块时序。
64.如果一条链表中的链点少于8,则比较得到结果后,在后续时钟周期内直接传递比较结果,而无需在后续时钟周期内进行比较。如图5所示,一条链表中的链点只有a1和a2这两个,那么在第一个时钟内得到a21这一比较结果后,在后续第2、3个时钟内,直接传递a21到a31、a41。
65.可见,本实施例利用fpga内部的双口ram,通过读写控制逻辑,能够使原本乱序输出的链表顺序输出。同时链点比较模块对多个相同地址的链点进行并行级联比较,有效缩短了链点筛选速率,提高了最终的压缩效率。
66.下面对本技术实施例提供的一种数据处理装置进行介绍,下文描述的一种数据处理装置与上文描述的一种数据处理方法可以相互参照。
67.参见图6所示,本技术实施例公开了一种数据处理装置,应用于硬件设备,包括:获取模块601,用于获取目标字符串;确定模块602,用于在目标字符串中确定多个字符片段;处理模块603,用于根据各个字符片段在目标字符串中的位置查询各个字符片段对应的哈希链表,并确定各个哈希链表在硬件设备的双口ram中的写入地址;写入模块604,用于按照写入地址将每一哈希链表中的各链点信息写入双口ram。
68.在一种具体实施方式中,处理模块具体用于:根据各个字符片段在目标字符串中的位置以及位置在前先查询的规则确定各个字符片段的查询顺序;按照查询顺序查询各个字符片段对应的哈希链表。
69.在一种具体实施方式中,处理模块具体用于:针对任一字符片段,计算当前字符片段的哈希值;确定哈希值对应的当前需读地址;判断当前需读地址与已查到哈希链表的字符片段的哈希值是否相同;若否,则从当前需读地址中读取链点信息后,为该链点信息添加链表结束标志位,并将读取到的链点信息构建为当前字符片段对应的哈希链表。
70.在一种具体实施方式中,处理模块具体用于:若当前需读地址与已查到哈希链表的字符片段的哈希值相同,则从当前需读地址中读取链点信息后,为该链点信息添加链表未结束标志位,并确定下一需读地址,并执行判断当前需读地址与已查到哈希链表的字符片段的哈希值是否相同的步骤。
71.在一种具体实施方式中,处理模块具体用于:将哈希值作为当前需读地址。
72.在一种具体实施方式中,处理模块还包括:地址确定单元,用于按照查询顺序以及先查询写入地址在前的规则确定各个哈希链表在双口ram中的写入地址。
73.在一种具体实施方式中,双口ram为多个;相应地,写入模块具体用于:针对任一哈希链表,按照写入地址将当前哈希链表中的各链点信息分别写入各双口ram。
74.在一种具体实施方式中,还包括:读取模块,用于按照写入地址从各双口ram中读出任一字符片段对应的哈希链表;选择模块,用于确定当前读取的哈希链表中的各链点信息对应的编码长度,并选择编码长度最长的链点信息作为当前字符片段的压缩信息。
75.在一种具体实施方式中,选择模块具体用于:以并行级联方式比较当前读取的哈希链表中的各链点信息对应的编码长度,以选择编码长度最长的链点信息作为当前字符片段的压缩信息。
76.在一种具体实施方式中,还包括:另一选择模块,用于若编码长度最长的链点信息有多个,则确定多个编码长度最长的链点信息对应的距离值,并选择距离值最小的链点信息作为当前字符片段的压缩信息。
77.在一种具体实施方式中,还包括:地址状态更改模块,用于任意双口ram中的任一ram地址写入携带有链表结束标志位的链点信息后,将该ram地址对应的状态寄存器置1;相应地,该ram地址中的数据被读出后,将该ram地址对应的状态寄存器置0。
78.在一种具体实施方式中,任意字符片段对应的哈希链表中的链点信息的个数不超过双口ram的个数。
79.其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
80.可见,本实施例提供了一种数据处理装置,能够实现:待压缩数据对应的各个哈希链表的顺序存储。
81.下面对本技术实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种数据处理方法及装置可以相互参照。
82.参见图7所示,本技术实施例公开了一种电子设备,包括:存储器701,用于保存计算机程序;处理器702,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
83.进一步的,本技术实施例还提供了一种服务器来作为上述电子设备。该服务器,具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的数据处理方法中的相关步骤。
84.本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
85.另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
86.其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现
处理器对存储器中数据的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序除了包括能够用于完成前述任一实施例公开的数据处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括虚拟机等数据外,还可以包括虚拟机的开发商信息等数据。
87.进一步的,本技术实施例还提供了一种终端来作为上述电子设备。该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
88.通常,本实施例中的终端包括有:处理器和存储器。
89.其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
90.存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的数据处理方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括windows、unix、linux等。数据可以包括但不限于应用程序的更新信息。
91.在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
92.下面对本技术实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种数据处理方法、装置及设备可以相互参照。
93.一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的数据处理方法。
94.本技术涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
95.需要说明的是,在本技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的
结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
96.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
97.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的可读存储介质中。
98.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1