如何解码 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。