gpt4 book ai didi

compression - 小型4 KB文件的最佳压缩算法是什么?

转载 作者:行者123 更新时间:2023-12-04 00:40:59 26 4
gpt4 key购买 nike

我正在尝试压缩每个约4 KB的TCP数据包。数据包可以包含任何字节(0到255)。我发现有关压缩算法的所有基准都是基于较大的文件。我没有发现可以比较小文件上不同算法的压缩率的任何东西,而这正是我所需要的。我需要它是开源的,以便可以在C ++上实现,因此不需要RAR。对于大小约4 KB的小文件,可以建议使用哪种算法? LZMAHACCZIPgzipbzip2

最佳答案

选择最快的算法,因为您可能关心实时进行此操作。通常,对于较小的数据块,算法压缩大约相同(给定或占用几个字节),这主要是因为除有效负载外,算法还需要传输字典或霍夫曼树。

出于多种原因,我强烈建议Deflate(由zlib和Zip使用)。该算法速度很快,经过了良好测试,已获得BSD许可,并且是Zip支持的唯一压缩方式(根据infozip Appnote)。除了基本知识外,当确定压缩量大于解压缩后的大小时,还有一种存储模式,该模式仅为每个数据块添加5个字节(最大块为64k字节)。除了存储模式外,Deflate还支持两种不同类型的霍夫曼表(或字典):动态表和固定表。动态表意味着霍夫曼树作为压缩数据的一部分进行传输,并且最灵活(针对各种类型的非随机数据)。固定表的优点是该表为所有解码器所知,因此不需要包含在压缩流中。解压缩(或Inflate)代码相对容易。我已经直接基于zlib编写了Java和Javascript版本,它们的性能相当好。

提到的其他压缩算法都有其优点。我更喜欢Deflate,因为它在压缩步骤,尤其是在解压缩步骤中都具有运行时性能。

需要说明的一点:Zip不是压缩类型,它是一个容器。为了进行数据包压缩,我将绕过Zip,而仅使用zlib提供的deflate / inflate API。

关于compression - 小型4 KB文件的最佳压缩算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/732578/

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