加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Brotli压缩多线程

发布时间:2020-12-15 01:00:05 所属栏目:Java 来源:网络整理
导读:我的理解是 Brotli 将块大小的信息存储在元块头中,只有块的最终未压缩大小,并且没有关于压缩长度的信息( 9.2).我猜想需要创建一个包装器才能将它用于多个线程,或者可能类似于Mark Adler的 pigz . 相同的线程原则是否适用于Brotli,就像在这种情况下使用gzip一
我的理解是 Brotli将块大小的信息存储在元块头中,只有块的最终未压缩大小,并且没有关于压缩长度的信息( 9.2).我猜想需要创建一个包装器才能将它用于多个线程,或者可能类似于Mark Adler的 pigz.

相同的线程原则是否适用于Brotli,就像在这种情况下使用gzip一样,或者在多线程实现方面是否有任何可预见的问题需要注意?

解决方法

您可以将brotli格式用于此目的.我让他们添加了将元数据放入空元块的选项(其中“空”表示元块产生零未压缩数据).您可以将标记放在元数据中以帮助查找元块.插入的空元块也在字节边界处开始下一个元块.

每个元块可以独立于其他元块.如果以这种方式构造流,那么在压缩或单独解压缩它们时没有问题.可能依赖的区域是所使用的最后四个距离的环形缓冲区,以及经过当前元块开始的向后引用.对于并行使用,可以且必须构造元块以便不依赖于最后四个距离,而不是指向环形缓冲器,直到它已经填充了距当前元块的距离.此外,不允许在当前元块之前返回的距离(其中不包括静态引用).最后,您将附加一个空元数据或元数据元块,以将序列带到字节边界以便于连接.

顺便说一句,看起来你正在链接到草稿格式的旧版本.这是一个link to the current version.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读