技术新讯 > 电子电路装置的制造及其应用技术 > LZ77编码器、LZ77编码方法和数据压缩装置与流程  >  正文

LZ77编码器、LZ77编码方法和数据压缩装置与流程

  • 国知局
  • 2024-09-05 14:33:09

本申请涉及计算机,具体涉及一种lz77编码器、lz77编码方法和数据压缩装置。

背景技术:

1、在大数据服务,数据库服务,web网络服务,存储服务中都需要使用压缩、解压缩技术来降低储存资源和传输带宽的要求,并提升数据传输的吞吐率。压缩分为有损压缩和无损压缩,有损压缩应用于视频和语音等数据,无损压缩应用于文件等必须完整还原信息的场合。deflate是一种数据无损压缩算法,包括lz77编码和霍夫曼(huffman)编码,其基本原理是先使用lz77算法找出数据中的重复片段,然后再使用霍夫曼编码对数据进行进一步压缩,这种组合压缩技术使得deflate算法在压缩效率和速度上都有不错的表现,因此被广泛应用于各种数据传输和存储场景中。

2、目前,deflate算法主要通过软件形式实现,编码过程也都是串行处理,这导致deflate算法难以满足实际应用场景中对数据压缩的高效率需求。

技术实现思路

1、有鉴于此,本公开实施例致力于提供一种lz77编码器、lz77编码方法和数据压缩装置,以提升数据压缩效率。

2、本公开的一个方面,提供了一种lz77编码器,所述lz77编码器,用于在一个时钟周期内并行化lz77编码一个字符串组以得到所述字符串组的码元信息,所述字符串组来自待压缩数据,一个字符串组包含两个或两个以上的字符串;其中,所述lz77编码器包括哈希处理模块,所述哈希处理模块中的哈希字典包括多个分区,每个分区包括多个存储块,所述存储块为实体ram,所述哈希处理模块用于:针对所述字符串组中将会发生哈希冲突的两个或两个以上字符串中的一个字符串和所述字符串组中不会发生哈希冲突的所有字符串,根据所述哈希值寻址所述哈希字典的分区与存储块以并行化哈希处理所述字符串组。

3、一些实施方式中,所述哈希处理模块,还用于并行化计算所述字符串组中各字符串的哈希值,根据各字符串的哈希值确定将会发生哈希冲突的两个或两个以上的字符串。

4、一些实施方式中,所述哈希处理模块,用于:比较所述字符串组中各字符串的哈希值,找出哈希值中第一地址域段相同的两个或两个以上的字符串,该两个或两个以上的字符串即为所述将会发生哈希冲突的两个或两个以上字符串;所述第一地址域段用于确定所述字符串的分区地址,所述分区地址用于寻址所述哈希字典中的分区。

5、一些实施方式中,所述哈希处理模块,用于针对所述字符串组中将会发生哈希冲突的两个或两个以上字符串中,与待压缩数据首字符距离相对较小的一个字符串执行所述寻址。

6、一些实施方式中,所述哈希处理模块,还用于计算所述字符串组中各字符串的位置信息,所述位置信息指示所述字符串首字符与所述待压缩数据首字符之间的距离;根据所述字符串的位置信息在所述字符串组中将会发生哈希冲突的两个或两个以上字符串中选择一个字符串执行所述寻址。

7、一些实施方式中,所述字符串组中的各字符串具有编号,所述编号按照所述字符串首字符与所述待压缩数据首字符之间的距离排序;所述哈希处理模块,用于根据所述字符串的编号在所述字符串组中将会发生哈希冲突的两个或两个以上字符串中选择一个字符串执行所述寻址。

8、一些实施方式中,所述分区包括用于写入数据的存储块和多个用于读取数据的存储块,所述多个用于读取数据的存储块为哈希链表结构。

9、一些实施方式中,所述存储块包括能够同时访问的第一ram和第二ram,所述第一ram用于存储所述字符串的内容,所述第二ram用于存储所述字符串的位置信息。

10、一些实施方式中,所述分区还包括:第一寄存器和第二寄存器;其中,所述第一寄存器用于记录块计数器的值,所述块计数器的值指示当前可写的存储块;所述第二寄存器用于存储高有效标识位的值,所述高有效标识位用于指示所述分区中所有存储块是否均可读。

11、一些实施方式中,所述哈希处理模块用于采用如下方式寻址所述哈希字典中的分区与存储块:根据所述字符串的哈希值确定所述字符串对应的分区地址和ram行地址,所述分区地址用于寻址所述哈希字典中的分区,所述ram行地址用于寻址所述存储块的ram行。

12、本公开的一个方面,提供了一种lz77编码方法,所述lz77编码方法通过上述的lz77编码器执行。

13、本公开的一个方面,提供了一种数据压缩装置,包括前述的lz77编码器和霍夫曼编码器,所述霍夫曼编码器用于对所述字符串组的码元信息进行霍夫曼编码以得到所述字符串组的编码码流。

14、一些实施方式中,数据压缩装置还包括如下之一或多项:

15、输入缓冲单元,用于按照预先配置的并行窗口尺寸从待压缩数据的串行字符串中例化得到所述字符串组;

16、码流打包单元,用于对霍夫曼编码器编码得到的编码码流进行打包对齐字节边界以得到压缩数据;

17、输出缓冲单元,可用于将所述码流打包单元打包得到的压缩数据进行输出缓冲。

18、根据本公开实施例,哈希字典采用实体ram形成,能够同时对多个字符串进行并行化lz77编码,有效提升数据压缩效率。

技术特征:

1.一种lz77编码器,其特征在于,所述lz77编码器,用于在一个时钟周期内并行化lz77编码一个字符串组以得到所述字符串组的码元信息,所述字符串组来自待压缩数据,一个字符串组包含两个或两个以上的字符串;

2.根据权利要求1所述的lz77编码器,其特征在于,所述哈希处理模块,还用于并行化计算所述字符串组中各字符串的哈希值,根据各字符串的哈希值确定将会发生哈希冲突的两个或两个以上的字符串。

3.根据权利要求2所述的lz77编码器,其特征在于,所述哈希处理模块,用于:

4.根据权利要求1所述的lz77编码器,其特征在于,

5.根据权利要求1或4所述的lz77编码器,其特征在于,

6.根据权利要求1或4所述的lz77编码器,其特征在于,

7.根据权利要求1所述的lz77编码器,其特征在于,所述分区包括用于写入数据的存储块和多个用于读取数据的存储块,所述多个用于读取数据的存储块为哈希链表结构。

8.根据权利要求5所述的lz77编码器,其特征在于,

9.根据权利要求1所述的lz77编码器,其特征在于,

10.根据权利要求1所述的lz77编码器,其特征在于,所述哈希处理模块用于采用如下方式寻址所述哈希字典中的分区与存储块:

11.一种lz77编码方法,其特征在于,所述lz77编码方法通过权利要求1~10任一项所述的lz77编码器执行。

12.一种数据压缩装置,其特征在于,包括如权利要求1-10任一项所述的lz77编码器和霍夫曼编码器,所述霍夫曼编码器用于对所述字符串组的码元信息进行霍夫曼编码以得到所述字符串组的编码码流。

13.根据权利要求12所述的装置,其特征在于,还包括如下之一或多项:

技术总结本公开提供了一种LZ77编码器、LZ77编码方法和数据压缩装置。本公开实施例的LZ77编码器用于在一个时钟周期内并行化LZ77编码一个字符串组以得到字符串组的码元信息,字符串组来自待压缩数据,一个字符串组包含两个或两个以上的字符串;其中,LZ77编码器包括哈希处理模块,哈希处理模块中的哈希字典包括多个分区,每个分区包括多个存储块,存储块为实体RAM,哈希处理模块用于:针对字符串组中将会发生哈希冲突的两个或两个以上字符串中的一个字符串和字符串组中不会发生哈希冲突的所有字符串,根据哈希值寻址哈希字典的分区与存储块以并行化哈希处理字符串组。本公开实施例能够实现并行化LZ77编码和数据压缩,有效提升数据压缩效率。技术研发人员:杨俊,邓宇,李永进,谢星浩受保护的技术使用者:飞腾信息技术有限公司技术研发日:技术公布日:2024/9/2

本文地址:https://www.jishuxx.com/zhuanli/20240905/286904.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。