c - C 中最快的抖动/半色调库

标签 c image-processing quantization dithering

我正在开发一个定制的瘦客户端服务器,为客户端提供呈现的网页。服务器运行在多核 Linux 机器上,Webkit 提供 html 渲染引擎。

唯一的问题是客户端显示受限于 4 位(16 色)灰度调色板。我目前正在使用 LibGraphicsMagick 对图像进行抖动处理(RGB->4 位灰度),这显然是服务器性能的瓶颈。分析显示超过 70% 的时间花在运行 GraphicsMagick 抖动函数上。

我探索了 stackoverflow 和 Interwebs 以获得良好的高性能解决方案,但似乎没有人对各种图像处理库和抖动解决方案进行任何基准测试。

我会更高兴地发现:

  1. 在将 RGB 图像抖动/半色调/量化为 4 位灰度方面,性能最高的库是什么。
  2. 是否有任何专门的抖动库或任何公共(public)域代码片段可以指点我?
  3. 就高性能而言,您更喜欢使用哪些库来处理图形?

C语言库优先。

最佳答案

抖动将花费相当多的时间,具体取决于所选的算法。

实现 Bayer (Matrix) 相当简单和 Floyd-Steinberg (Diffusion) dithering .

当使用 MMX/SSE 编码来处理并行像素时,拜耳过滤可以变得非常快。您也可以使用 GPU 着色器进行抖动/转换。

FWIW,您已经在使用 GraphicsMagick,但有一整套 OSS 图形库 here

关于c - C 中最快的抖动/半色调库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487517/

相关文章:

C语言如何修复我的调用函数

c - 在C中的/bin和/sbin中查找Argv[i]

python - opencv imwrite中的色度子采样

matlab - 如何使用matlab平滑图片的边缘

python - 如何在 tensorflow 2.0 中为自定义量化反向传播?

python - 在 FPGA/纯 python 上运行量化的 tensorflow 模型

c - printf ("%d","Hello"+1); 的输出是什么?

image-processing - 如何获取用于对象检测的模型的xml文件?

python - 如何使用 python 将 float 转换为具有预定义位数的定点数

c - PE 文件部分 - SizeOfRawData 或 VirtualSize