Zstd: 可以拆分吗?

创建于 2016-09-01  ·  4评论  ·  资料来源: facebook/zstd

我可以对压缩文件进行分区并分块读取还是压缩格式对整个文件进行编码

question

最有用的评论

您可以将原始文件分成多个块,将每个块独立压缩到 Zstandard 框架中(使用zstd CLI),然后连接每个框架。 这在 Zstandard 格式的眼中仍然有效。 然后,您将能够将压缩文件分解为组件框架并独立解压缩每个框架。

唯一的问题是 Zstandard 不编码每个帧的大小,只编码每个块的大小。 因此,要找到下一帧的开始位置,您必须执行以下两项操作之一:

  1. 一次在帧中寻找一个块,直到找到下一帧。
  2. 将一些额外信息编码到压缩数据中以指示每帧的大小。 您可以使用由 Zstandard 格式定义的可跳过框架来执行此操作。

所有4条评论

该格式允许附加多个帧。
它们将以相同的顺序重新生成,就好像它是一个单一的内容一样。

所以是的,它可以将文件切成任意大小的块。

您可以将原始文件分成多个块,将每个块独立压缩到 Zstandard 框架中(使用zstd CLI),然后连接每个框架。 这在 Zstandard 格式的眼中仍然有效。 然后,您将能够将压缩文件分解为组件框架并独立解压缩每个框架。

唯一的问题是 Zstandard 不编码每个帧的大小,只编码每个块的大小。 因此,要找到下一帧的开始位置,您必须执行以下两项操作之一:

  1. 一次在帧中寻找一个块,直到找到下一帧。
  2. 将一些额外信息编码到压缩数据中以指示每帧的大小。 您可以使用由 Zstandard 格式定义的可跳过框架来执行此操作。

代码

问题合并到#395

此页面是否有帮助?
0 / 5 - 0 等级