任何人都知道C / C ++的免费开源jpeg编码库?目前我正在使用ImageMagick,它易于使用,但速度很慢。我将其与英特尔性能基元的评估相比较,IPP的速度是疯狂的。不幸的是它也花费200美元,而且我不需要99%的IPP)。此外,它只能在英特尔上快速工作。
有人做过任何测试吗?还有比ImageMagick快的其他好的库吗?
编辑:我使用的是8位版本的ImageMagick,应该更快。
答案 0 :(得分:6)
在TigerVNC(http://www.tigervnc.com)的主干中查看libjpeg / SIMD。我们优化了64位和32位版本,在压缩/解压缩基线JPEG时几乎与IPP一样快:
http://www.mail-archive.com/tigervnc-devel@lists.sourceforge.net/msg00403.html
答案 1 :(得分:3)
我相信GIL是Boost中的一个库,它包含一种以JPEG格式保存图像数据的方法。不过,我不知道它的速度。鉴于该库是由Adobe赞助的,我希望它做得非常好。
答案 2 :(得分:3)
AND提供Framewave,这是IPP的开源替代方案。
答案 3 :(得分:2)
ImageMagick使用libjpeg(a.k.a Independent JPEG Group库)。如果你提高libjpeg的速度,ImageMagick JPEG的速度会提高。
有几个选择:
-O3 -msse2
,看看它是否可以提高你的速度。然后,您可以使用LD_LIBRARY_PATH
或其他方式加载libjpeg而不是系统。答案 4 :(得分:1)
如果您环顾四周,可能会发现旧版本的英特尔JPEG库。这不是开源,但速度很快。它的速度足以在733MHz P-III上获得25fps。
答案 5 :(得分:1)
还有Independent JPEG Group相当陈旧,我无法保证它的速度。但它应该是稳定的。
通过this page找到。
答案 6 :(得分:1)
我做了一些使用100%质量编码512x512 jpeg的时序(我知道100%不是无损的)。基本上ImageMagick只比libjpeg略慢。对于100张图像,差异大约是十分之一秒。然后我得到了带有SIMD扩展名(http://cetus.sakura.ne.jp/softlab/jpeg-x86simd/jpegsimd.html#source)的libjpeg,那个东西快了6-10倍。请注意,这实际上取决于图像的类型。有很多黑色的图像真的很快,到处都是细节的图像真的很慢 - 我相信它是编码算法。我可能不得不试试libjpeg-mmx,因为它看起来比我得到的日文版本更加维护,我甚至不知道许可证是什么。
我也试图让Framewave工作,甚至无法让它起飞。头文件缺少某些结构的定义,论坛提供绝对不支持。我不敢相信它是“由AMD赞助的。”