【问题标题】:Image compression and CPU usage图像压缩和 CPU 使用率
【发布时间】:2020-10-03 19:27:53
【问题描述】:

Android 和具有 Compress 方法 (see here) 的 Bitmap 类。

Compress 有一个quality parameter。根据文档,压缩为JPEG时:

压缩为 JPEG 格式。质量为 0 表示压缩为 最小的尺寸。 100 表示压缩以获得最大视觉质量。

我的问题是:使用较高的值(例如 100)会比较低的值(例如 50)使用更多的 CPU(即花费更长的时间)吗?

我希望答案是,“是的,因为进行更多压缩需要更长的时间”......但我真的不知道。

【问题讨论】:

    标签: android bitmap image-compression


    【解决方案1】:

    在 Jpeg 中,更高的质量意味着更少的压缩,因此更少的 CPU 使用率。

    更高的质量并不意味着它会使照片更好,这是一种误解。在 Jpeg 中,更高质量意味着不要压缩太多并尽可能保持与原始照片接近的质量。压缩会降低当前质量。

    接近 100 意味着更少的压缩以保持质量,因此它使用更少的 CPU 时间,因为它需要更少的压缩。 接近 0 意味着更多的压缩以换取质量,因此它使用更多的 CPU 时间,因为它需要更多的压缩。

    • 更多压缩(方向为 0)= 质量更低、文件更小、CPU 使用率更高。
    • 更少的压缩(方向为 100)= 更高的质量、更大的文件大小、更少的 CPU 使用率。

    您需要考虑的是,在 Android 中 Jpeg 压缩是在 C/C++ 中本地实现的,因此速度非常快。因此,考虑到您应该在后台线程中压缩以获得最佳性能,CPU 时间并不是一个需要过多考虑的重要因素。

    此外,您应该避免在大多数情况下使用 100% 质量,最好是 80% 到 95% 之间的任何值。

    100% 质量意味着根本没有压缩(因此质量最好),但因此可能会产生巨大的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-22
      相关资源
      最近更新 更多