【问题标题】:Real time compression of 32 bit RGBA image data实时压缩 32 位 RGBA 图像数据
【发布时间】:2018-07-18 21:27:05
【问题描述】:

压缩 RGBA 32 位图像数据的最快算法是什么?我正在使用 C 语言,但很高兴看到其他编程语言的示例。

现在我正在使用 LZ4,但我正在考虑运行长度/增量编码。

无损编码,混合了现实生活中的图像和计算机生成/剪贴画图像。 Alpha 通道始终存在,但通常是恒定的。

【问题讨论】:

    标签: c compression rgba


    【解决方案1】:

    我最终只使用了 LZ4。没有其他任何东西能达到如此快的速度,而且 LZ4 通常至少减小了 50% 的大小。

    【讨论】:

      【解决方案2】:

      有损还是无损?
      “真实”图像还是计算机图形?
      你真的有 Alpha 通道吗?

      如果您需要无损(或半无损),则转换为 YUV 并压缩可能会减少大约 1/2(在已经将其变为 2 字节/像素之后)尝试Huffyuv

      如果你有真实的图像,那么 H264 可以进行非常高的压缩,并且有优化的库和硬件支持,所以它可以非常快。

      如果您有计算机图形类型的图像,颜色很少但需要保留边缘,或者您实际上有一个 A 通道,那么运行长度可能会很好 - 尝试先将图像拆分为每个颜色的帧。

      【讨论】:

      • 否,但它实现了合理的压缩!如果您支持慢速高清和硬件 H264,它可能比编写未压缩视频更快
      • 是的,但是看看复杂的名称。你需要多少行?这个专利是免费的吗?
      【解决方案3】:

      LZ4 是 LZ77 系列,它只有几行代码,但我自己从未做过,但我猜你的运行长度是正确的,或者 delta 代码是最快的,也适用于图像。还有snappy算法。最近我尝试使用 exdupe 实用程序来压缩我的虚拟机。这件事也非常快:http://www.exdupe.com。 exdupe 似乎使用了 rzip 的东西:http://encode.ru/threads/1354-Data-deduplication

      【讨论】:

      • exdupe 是否在 ARM 处理器上运行?
      • 它在 Linux 上运行。应该使用正确的工具链编译武器吗?最好在 encode.ru 中询问:encode.ru/threads/1354-Data-deduplication。作者也在!?
      猜你喜欢
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      相关资源
      最近更新 更多