nvcomp压缩算法原理

Cascade:Novel high-throughput compressor ideal for analytical or structured/tabular data.

Cascade:新型高吞吐量压缩器,非常适合分析结构化/表格数据。

高效压缩整形数据。

由RLE、Delta encoding、Bit-packing组合

RLE:1,1,1,1,3,3  =》  值(1,3)  数(4,2);

Delta:1,3,2,4,3   =》  1,2,-1,2,-1        相对前一个数的偏移量;

Bit-packing:5,6,9,5   =》   5(0,1,4,0)   相对基数的偏移量;

LZ4: General-purpose no-entropy byte-level compressor well-suited for a wide range of datasets.

LZ4:通用无熵字节级压缩器,非常适合多种类型的数据集。

面向byte数据。 简单高速。适用于任意数据。

LZ4通过匹配重复字符串进行压缩,不是全文匹配,只是在一定范围内进行匹配。

经LZ4压缩后的数据结构包括:

Header:1Byte;前4位存literal的长度(0-15);后4位存literal匹配成功的长度(4-19),匹配上的长度至少为4;

Literal linear small-integer codes:如果literal长度超过15,用此值表示;如果未超过15,省略此项;

Literals:无法被压缩的字符串;

Offset:匹配成功的位置相对于Literal末尾的偏移量;1Byte:0-65535;

Match LCIS:如果匹配成功的长度超过19,用此值表示;如果未超过19,省略此项。

ANS: Proprietary entropy encoder based on asymmetric numeral systems (ANS).

ANS:基于非对称数字系统(ANS)的专有熵编码器。

“ANS 算法基于香农熵理论“信息程度与熵呈正相关”以及“平均 1 比特信息要 1 比特消息存储”,推理出 x'≈​​​​​x​​/Ps 的约等式。再根据“x 比特信息量等于从 x 物体选 1 的信息量” 联想到 “x’ 为 第 x 个 s”,从而依靠概率分布表实现在一个数字 x’ 中同时保存 x 和 s 的信息。因此,它有 AC 算法的压缩率,但是比它快(只需要一个 x 记录所有信息,AC 要两个)。它也有 Huffman 的速度,但是比它压缩率高(它可能以小数点个比特来记录新信息,Huffman 必须是整数个)。”引用自

Bitcomp: Proprietary compressor designed for floating point data in Scientific Computing applications.

Bitcomp:为科学计算应用中的浮点数据设计的专有压缩器。

Snappy: Similar to LZ4, this byte-level compressor is a popular existing format used for tabular data.

Snappy:与LZ4类似,这个字节级压缩器大家都愿意用于表格数据。

LZ77的优化,与LZ4类似。

相比于LZ4,snappy将压缩后的内容分为两种基本单位,模式串和匹配串。

第一个bit表示该单位为模式串或者匹配串。

模式串为不可压缩部分。匹配串是与模式串的重复部分。

于是匹配串可以保存为与模式串的关系。

 “Snappy 是谷歌基于 LZ77 算法思想编写出的压缩解压缩库,其目标并非最大压缩率或与其他压缩程序库的兼容性,而是非常高的速度和合理的压缩率。”引用自

GDeflate: Proprietary compressor with entropy encoding and LZ77, high compression ratios on arbitrary data.

GDeflate:熵编码和LZ77的专用压缩器,对任意数据具有高压缩比。

找不到资料,相似搜索deflate

 deflate结合LZ77和Huffman。LZ77与snappy类似。

“deflate 压缩器在怎样压缩数据上有非常大的灵活性. 程序员必须处理设计聪明的算法所面临的问题以做出正确的选择. 但是压缩器的确有一些选择.
压缩器有三种压缩模型:
1. 不压缩数据, 对于已经压缩过的数据,这是一个明智的选择. 这样的数据会会稍稍增加, 但是会小于在其上再应用一种压缩算法.
2. 压缩, 先用Lz77, 然后用huffman编码. 在这个模型中压缩的树是Deflate 规范规定定义的, 所以不需要额外的空间来存储这个树.
3. 压缩, 先用LZ77, 然后用huffman编码. 压缩树是由压缩器生成的, 并与数据一起存储.

数据被分割成不同的块, 每个块使用单一的压缩模式. 如过压缩器要在这三种压缩模式中相互切换, 必须先结束当前的块, 重新开始一个新的块.

关于Lz77和huffman如何一起工作的细节需要更进一步的检查. 一旦原始数据被转换成了字符和长度距离对组成的串, 这些数据必须由huffman编码表示.”引用自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值