我正在开发一个定制的瘦客户端服务器,为客户端提供呈现的网页。服务器运行在多核 Linux 机器上,Webkit 提供 html 渲染引擎。
唯一的问题是客户端显示受限于 4 位(16 色)灰度调色板。我目前正在使用 LibGraphicsMagick 对图像进行抖动处理(RGB->4 位灰度),这显然是服务器性能的瓶颈。分析显示超过 70% 的时间花在运行 GraphicsMagick 抖动函数上。
我探索了 stackoverflow 和 Interwebs 以获得良好的高性能解决方案,但似乎没有人对各种图像处理库和抖动解决方案进行任何基准测试。
我会更高兴地发现:
- 在将 RGB 图像抖动/半色调/量化为 4 位灰度方面,性能最高的库是什么。
- 是否有任何专门的抖动库或任何公共(public)域代码片段可以指点我?
- 就高性能而言,您更喜欢使用哪些库来处理图形?
C语言库优先。
最佳答案
抖动将花费相当多的时间,具体取决于所选的算法。
实现 Bayer (Matrix) 相当简单和 Floyd-Steinberg (Diffusion) dithering .
当使用 MMX/SSE 编码来处理并行像素时,拜耳过滤可以变得非常快。您也可以使用 GPU 着色器进行抖动/转换。
FWIW,您已经在使用 GraphicsMagick,但有一整套 OSS 图形库 here
关于c - C 中最快的抖动/半色调库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487517/