c - LZO 解压缓冲区大小

标签 c compression lzo

我在一个项目中使用 MiniLZO 来完成一些非常简单的压缩任务。我用一个程序压缩,用另一个程序解压缩。我想知道为解压缓冲区分配多少空间。我对过度分配空间没有意见,如果它可以省去我必须用整数注释我的输出文件的麻烦,声明解压缩数据应该占用多少空间。我如何计算出它可能占用多少空间?

经过一番思考,我认为这个问题可以归结为:lzo1x压缩的最大压缩比是多少?

最佳答案

由于您同时控制压缩器和解压缩器,我建议您将输入压缩为固定大小的 block 。在我的应用程序中,我在每个 block 中压缩多达 64KB,然后发出压缩 block 的大小和压缩数据本身,因此压缩流实际上看起来像一系列压缩 block :

length_of_block_1
block_1
length_of_block_2
block_2
...

解压缩器只读取每个压缩 block 并将其解压缩到 64KB 缓冲区中,因为我知道该 block 是通过压缩 64KB block 生成的。

希望对你有帮助,

埃里克梅尔斯基

关于c - LZO 解压缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/773962/

相关文章:

c - 使用中序遍历查找二叉树中的最大元素

extract - 反编译/提取微软代理?

c# - 游戏的网络消息序列化

apache-spark - Spark SQL - gzip 与 snappy 与 lzo 压缩格式之间的区别

javascript - 如何使用 js-ctypes Firefox 扩展调用 native C 代码?

c - 数组作为函数参数

c - 在堆中搜索元素后删除元素时出现段错误

java - 如何将整数转换为 base64 (0-9A-Za-z)

java - Hadoop-LZO strange native-lzo library not available 错误

amazon-web-services - 将压缩 (lzo) 数据从 s3 导入配置单元