Brotli压缩多线程

前端之家收集整理的这篇文章主要介绍了Brotli压缩多线程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的理解是 Brotli将块大小的信息存储在元块头中,只有块的最终未压缩大小,并且没有关于压缩长度的信息( 9.2).我猜想需要创建一个包装器才能将它用于多个线程,或者可能类似于Mark Adler的 pigz.

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

解决方法

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

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

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

原文链接:https://www.f2er.com/java/239814.html

猜你在找的Java相关文章