snappy算法的详细解析
发布时间
阅读量:
阅读量
1. 获取原始数据大小N,将N存储到输出结果开头位置,占用1-5个字节不等:
- N < (1 << 7)时,占1个字节
out[0] = N
- N < (1 << 14)时,占2个字节
out[0] = N | 128; out[1] = N >> 7;
- N < (1 << 21)时,占3个字节
out[0] = N | 128; out[1] = (N >> 7) | 128; out[2] = N >> 14;
- N < (1 << 28)时,占4个字节
out[0] = N | 128; out[1] = (N >> 7) | 128; out[2] = (N >> 14) | 128; out[3] = N >> 21;
- other
out[0] = N | 128; out[1] = (N >> 7) | 128; out[2] = (N >> 14) | 128; out[3] = (N >> 21) | 128; out[4] = N >> 28;
2. 将数据切分为65536字节的块,循环处理各个块
(1)建立一个类型定义为uint16的哈希表,并将其初始值设为零;
该
全部评论 (0)
还没有任何评论哟~
