imageresing.net 社区和开发人员。
请澄清一下有关 imageresing.net 内部的一些细节。
imageresing.net 是否使用 .NET 绘图库重新压缩 jpeg?如果不是 - 它是否使用第 3 方引擎或一些内部算法?
是否有性能基准?我想将 imageresing.net 与其他库进行比较:libjpeg、Intel Integrated Performance Primitives 等。
提前致谢,
安东
imageresing.net 社区和开发人员。
请澄清一下有关 imageresing.net 内部的一些细节。
imageresing.net 是否使用 .NET 绘图库重新压缩 jpeg?如果不是 - 它是否使用第 3 方引擎或一些内部算法?
是否有性能基准?我想将 imageresing.net 与其他库进行比较:libjpeg、Intel Integrated Performance Primitives 等。
提前致谢,
安东
ImageResizer 提供 3 个成像管道。
您可以混合和匹配编码器、解码器和(在某种程度上)调整大小的算法。出于质量原因,一些算法是在内部实现的,而大多数是在依赖项中用 C/C++ 实现的。
如果您关心照片质量,那么端到端比较基准测试有点荒谬,因为您永远无法将苹果与苹果进行比较。早在2011 年,我在 GDI+ 和 WIC 之间做了一些基准测试,但是摄影师和图形设计师往往会发现 WIC 图像质量不可接受,所以这不是特别公平。
我们定期对每个管道进行自我基准测试,以检测性能改进或回归,但比较管道可能具有欺骗性,原因有很多:
您可以理解微基准(在相同情况下,libjpeg-turbo 比 libjpeg 快 40% 等)。您甚至可以在排除编码、解码和颜色转换后比较某些简单的低质量图像大小调整过滤器(最近邻、框、双线性)。
问题是真正高质量的大小调整非常复杂,而且从来没有两次以相同的方式实现。有极少数高质量的实现,甚至更少的具有亚秒级性能的实现。我订购了十几本关于图像处理的教科书,看看是否能找到参考实现,但这个话题……大多数人都熟练地回避了,其他人只是简单地触及到了这个话题。从未提及边缘像素处理、预过滤和性能优化。
我已经资助了很多关于快速高质量图像调整大小的研究,但我们还无法匹配 GDI+。ImageResizer 的默认配置在许多类型的图像上往往优于 Photoshop 质量。
在不久的将来,第四个管道可能会添加到 ImageResizer,基于我们的 libgd 分支和自定义调整大小算法。目前还没有承诺,但我们可能拥有与 GDI+几乎一样高的质量,具有类似的单线程(但更好的并发)性能。
我们所有的源代码都在 GitHub 上,因此,如果您发现想要快速演示为插件或替代管道的东西,我们很乐意听到。