gpt4 book ai didi

c++ - 使用 BCL 进行文件压缩

转载 作者:行者123 更新时间:2023-11-27 22:39:36 24 4
gpt4 key购买 nike

4.5 霍夫曼压缩

Syntax:

outsize = Huffman_Compress(in,out,insize)

outsize Size of output buffer after compression
in Pointer to the input buffer (uncompressed data)
out Pointer to the output buffer (compressed data)
insize Size of input buffer
The output buffer must be able to hold insize * 101 / 100 + 320 bytes.

4.6 霍夫曼解压语法:

Huffman_Uncompress(输入、输出、尺寸、尺寸)

in Pointer to the input buffer (compressed data)
out Pointer to the output buffer (uncompressed data)
insize Size of input buffer
outsize Size of output buffer
The output buffer must be able to hold outsize bytes

应该使用多大的输出缓冲区?我试图找到一些例子,但一无所获

最佳答案

有了关于 Huffman_Compress 的更多信息,就可以确定最大压缩率和开销。有了它,您就可以计算由于解压缩而导致的最大可能扩展,并相应地分配一个输出缓冲区。但是,您不会喜欢大型压缩输入的答案。

既然解压缩需要在一次调用中完成,您应该将未压缩的长度与压缩数据一起发送。只需在压缩数据前加上包含未压缩长度的八个字节。在另一端,读取八字节长度,分配一个该大小的缓冲区,并将剩余部分解压到该缓冲区中。

关于c++ - 使用 BCL 进行文件压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50096230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com