【问题标题】:Streaming mode vs block mode流模式与块模式
【发布时间】:2017-06-07 21:52:50
【问题描述】:

我无法弄清楚现代压缩/解压缩算法(例如 ZStandard 或 LZ4)提供的流模式到底是什么以及如何利用它。

例如,假设我有4x16KB 文件。我可以(单独)压缩每个文件并获得4xDifferentCompressedLength 文件。但是,我可以使用 流模式 将所有 4 个文件一起压缩(按顺序发送,对吗?)并获得 1xCompressedLength 并期望压缩比更好。

我可以只解压(比如说)第三个文件而不解压之前的所有文件吗? 流模式会在我附加的文件之间引入依赖关系吗?

【问题讨论】:

    标签: compression data-compression lossless-compression


    【解决方案1】:

    是的,流式传输会在文件之间引入依赖关系。 在您的示例中,解码file3 需要先解码file1,然后再解码file2

    另请注意,数据将显示为附加数据,文件之间没有特定标记。因此,如果每个文件很重要,就需要一种方法来了解每个文件的开始和结束位置。有时它是隐含的(例如:固定的 16KB 大小),有时它可以从数据本身中扣除(特定的标记结束),有时它需要额外的元数据。这完全取决于应用程序。

    您是正确的,C(4xFiles) 的压缩率预计会比4xC(File) 好,特别是如果这 4 个文件有些相关(例如,如果它们都是文本文件)。

    【讨论】:

    • 谢谢(亚恩)。以更好的压缩率传输(流式传输!)数据的好功能。
    • 如何将 STREAM/BLOCK 映射到 STATEFUL/STATELESS?
    猜你喜欢
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 2022-01-23
    • 2019-09-25
    • 2021-11-27
    • 1970-01-01
    • 2014-05-19
    相关资源
    最近更新 更多