如何解码 LZ4 中的最后一个块
How to decode last block in LZ4
我想了解 LZ4 如何压缩序列中的最后一个块。 According to LZ4 block format,终止区块需要特定的规则。
这是一个小例子:
原始数据(末尾包含换行符):
abcdabcdabcd\n
封装在 LZ4 帧中的压缩数据的 xxd 转储(块以 0x8061 开始,以 0x640a 结束):
00000000: 0422 4d18 6440 a70d 0000 8061 6263 6461 ."M.d@.....abcda
00000010: 6263 6461 6263 640a 0000 0000 8f1a 578b bcdabcd.......W.
根据上面的例子,压缩后的数据只有一个block,没有偏移
我该如何解读这个区块?
我找到了解决方案 here。
问题是我误解了帧格式。该块未压缩,因为 block size field in the frame 的最高位设置为 1。
我想了解 LZ4 如何压缩序列中的最后一个块。 According to LZ4 block format,终止区块需要特定的规则。
这是一个小例子:
原始数据(末尾包含换行符):
abcdabcdabcd\n
封装在 LZ4 帧中的压缩数据的 xxd 转储(块以 0x8061 开始,以 0x640a 结束):
00000000: 0422 4d18 6440 a70d 0000 8061 6263 6461 ."M.d@.....abcda
00000010: 6263 6461 6263 640a 0000 0000 8f1a 578b bcdabcd.......W.
根据上面的例子,压缩后的数据只有一个block,没有偏移
我该如何解读这个区块?
我找到了解决方案 here。
问题是我误解了帧格式。该块未压缩,因为 block size field in the frame 的最高位设置为 1。