使用霍夫曼编码压缩iPhone相机拍摄的图像

问题描述 投票:1回答:2

我正在考虑使用霍夫曼编码来制作一个可以直接从iPhone相机拍摄并压缩它的应用程序。硬件是否可以处理复杂的计算并构建树?换句话说,它可行吗?

谢谢

ios swift huffman-code image-compression
2个回答
4
投票

如果你的意思是图像文件(如jpg,png等),那么你应该知道它们已经被特定于图像的算法压缩了。如果有的话,生成的文件不会压缩很多。

如果您的意思是要获取UIImage原始像素数据并对其进行压缩,则可以这样做。我相信iPhone可以处理它。

如果这是一个有趣的项目,那就去吧。如果您希望这是一个有用且使用过的应用程序,那么您将遇到一些挑战

  1. Huffman不太可能比JPG,PNG等中使用的标准图像压缩更好。
  2. Apple已经看到需要更好的压缩并在iOS 11中实现HEIF.WWDC Video about HEIF
  3. 他们在操作系统和照片应用程序中做了很多工作,以确保在本地使用HEIF,但如果你分享照片,它会把它变成任何人都可以使用的东西(例如JPG)
  4. 它们实现的所有压缩都使用硬件加速。你也可以这样做,但代码比霍夫曼难得多。

因此,对于学习和娱乐,这是一个很好的项目 - 它可能更容易做一个Mac应用程序,但对于一些意味着真实的东西,要克服上述问题将是非常困难的。


0
投票

编码和解码分为两部分。编码过程涉及构造树或基于表的树的表示。解码过程包括从huff编码字节读取和撤消delta。与PNG相比,在编码中可能难以获得更多的速度优势,但是对于解码,可以通过使用Metal将解码逻辑移动到GPU来看到非常有效的加速。您可以查看一个示例的完整源代码,该示例仅对github Metal Huffman上的灰度图像执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.