本文总结工作中使用过的数据压缩方法,主要有zlib,qatzip,igzip等
最后还进行了针对大规模数据多线程解压缩加速的分析
zlib库
zlib是用于数据压缩的函数库,使用deflate算法
deflate...uLong sourceLen);
压缩方法,将源缓冲中的数据压缩并放入目的缓冲区
注意目的缓冲区的大小有可能比压缩前还要大,因此destLen要留够空间,至少比sourceLen加12字节之后还大0.1%...,针对genomic data比如bam sam数据,在几乎不降低压缩率的情况下,速度提升约4倍
igzip_github代码仓库
igzip的代码和isa-l代码仓库在一起
igzip使用代码示例:...ID,extra field添加压缩前和后的bytes大小;以zlib压缩举例
压缩后,更新extra filed中压缩前后数据长度
解压缩的时候,首先找到第一个block,读入头信息,获取当前block...,则直接将10个block的二进制数据连续输出到磁盘文件即可,多个block可以直接cat到一起而不影响解压缩
参考文档
zlib压缩数据
zlib官网
High Performance DEFLATE