什么是位打包?
像 LZ4 这样的传统压缩方案并不真正适合有效地解决这个问题。相反,这个问题有不同的解决方案系列。
最直接和最有效的方法之一是bitpacking:
整数首先被分组为固定大小的块(例如128,当使用 SSE2 实现时)。
b如果不可用,则计算可以表示所有整数的最小位数。换句话说,最小b使得块中的所有整数都严格小于 2 b。
然后,位压缩表示是限制在其最低有效位的整数串联的某种变体b。
例如,假设4在编码时有一个 ,块4, 9, 3, 2。假设块中的最大值是 9 b = 4,. 然后,所有值将被编码为 4 位,如下所示。