相关疑难解决方法(0)

压缩与Python中的最佳比例?

Python中哪种压缩方法具有最佳压缩率?

常用的zlib.compress()是最好的还是有更好的选择?我需要获得最佳的压缩比.

我正在压缩字符串并通过UDP发送它们.压缩的典型字符串大约有1,700,000个字节.

python compression

7
推荐指数
2
解决办法
8910
查看次数

Python解压相对性能?

TLDR;的python中提供的各种压缩算法 gzipbz2lzma,等,具有最佳的减压性能?

完整讨论:

Python 3 有各种用于压缩/解压缩数据的模块, 包括gzipbz2lzmagzip并且bz2还可以设置不同的压缩级别。

如果我的目标是平衡文件大小(/压缩比)和解压缩速度(压缩速度不是问题),哪个是最佳选择?解压缩速度比文件大小更重要,但由于有问题的未压缩文件每个大约 600-800MB(32 位 RGB .png 图像文件),而且我有十几个,我确实想要一些压缩。

  • 我的用例是我从磁盘加载一打图像,对它们进行一些处理(作为一个 numpy 数组),然后在我的程序中使用处理过的数组数据。

    • 图像永远不会改变,我只需要在每次运行我的程序时加载它们。
    • 处理所需的时间与加载时间大致相同(几秒钟),因此我试图通过保存处理过的数据(使用pickle)而不是每次加载原始的、未处理的图像来节省一些加载时间。最初的测试很有希望——加载原始/未压缩的腌制数据只需要不到一秒钟,而加载和处理原始图像则需要 3 或 4 秒——但如前所述导致文件大小约为 600-800MB,而原始 png 图像是只有大约 5MB。所以我希望通过以压缩格式存储选择的数据,我可以在加载时间和文件大小之间取得平衡。
  • 更新:情况实际上比我上面描述的要复杂一些。我的应用程序使用PySide2,所以我可以访问这些Qt库。

    • 如果我读取图像并使用pillow( PIL.Image)转换为 numpy 数组,实际上我不需要做任何处理,但将图像读入数组的总时间约为 4 秒。
    • 相反,如果我使用QImage读取图像,那么我必须对结果进行一些处理,以使其可用于我的程序的其余部分,因为QImage加载数据的方式的字节序- 基本上我必须交换位顺序和然后旋转每个“像素”,使 alpha 通道(显然是由 QImage 添加的)出现在最后而不是第一个。这整个过程只需约3.8秒,所以稍微比只使用PIL更快。
    • 如果我保存numpy未压缩的数组,那么我可以在 0.8 …

python performance gzip lzma bz2

7
推荐指数
2
解决办法
4253
查看次数

标签 统计

python ×2

bz2 ×1

compression ×1

gzip ×1

lzma ×1

performance ×1