我在一个项目中使用 MiniLZO 来完成一些非常简单的压缩任务。我用一个程序压缩,用另一个程序解压缩。我想知道要为解压缓冲区分配多少空间。我对过度分配空间没有问题,如果它可以省去我必须用一个整数来注释我的输出文件的麻烦,声明解压缩数据应该占用多少空间。我怎么知道它可能需要多少空间?
经过一番思考,我认为这个问题归结为以下几点: lzo1x 压缩的最大压缩比是多少?
最佳答案
由于您同时控制压缩器和解压器,我建议您将输入压缩为固定大小的块。在我的应用程序中,我在每个块中最多压缩 64KB,然后发出压缩块的大小和压缩数据本身,因此压缩流实际上看起来像一系列压缩块:
length_of_block_1
block_1
length_of_block_2
block_2
...
解压缩器只是读取每个压缩块并将其解压缩到 64KB 缓冲区中,因为我知道该块是通过压缩 64KB 块生成的。
希望有所帮助,
埃里克·梅尔斯基
关于c - LZO 解压缓冲区大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/773962/