首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C中最快的抖动/半调库

C中最快的抖动/半调库
EN

Stack Overflow用户
提问于 2009-09-28 06:57:26
回答 5查看 7K关注 0票数 5

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

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

我探索过堆栈溢出和Interweb,以获得一个好的高性能解决方案,但似乎没有人对各种图像操作库和抖动解决方案做过任何基准测试。

我会更乐意知道:

  1. 在抖动/半色调/量化RGB图像到4位灰度方面,性能最高的库是什么?
  2. 是否有任何特定的抖动库或任何公共域代码片段,您可以指向我吗?
  3. 在高性能方面,您喜欢使用哪些库来操作图形?

首选C语言库。

EN

回答 5

Stack Overflow用户

发布于 2009-09-28 11:47:30

根据选择的算法,抖动将花费相当长的时间。

实现拜耳(矩阵)弗洛伊德-斯坦伯格(扩散)抖动相当简单。

使用MMX/SSE编码处理并行像素时,Bayer滤波可以非常快。您也可以使用GPU着色器进行抖动/转换。

FWIW,您已经在使用GraphicsMagick了,但是有一个完整的开放源码软件图形库这里列表

票数 2
EN

Stack Overflow用户

发布于 2009-10-27 00:32:32

从Adisak提供的列表来看,没有任何测试,我会押注于AfterImage。后继的人们痴迷于速度,同时也描述了一个聪明的算法。

如果您的服务器能够配备一个体面的PCI-express图形卡,并以OpenGL为特征,您可以采取另一种方法。这里是来自Nvidia的一些规范。搜索“索引模式”。您可以做的是选择16或256彩色显示模式,将图像呈现为平面多边形(如立方体的一侧)上的纹理,然后将帧读回。

当从OpenGL卡读取帧时,从卡中读取带宽是很重要的,因此需要PCI。如文档所述,您还必须在索引模式下选择颜色,以获得良好的效果。

票数 2
EN

Stack Overflow用户

发布于 2009-10-02 02:34:05

我知道这不是一个C库,但这让我对.NET在20年前在一个项目中使用的错误扩散功能感到好奇。我找到了,特别是这个方法

但要想有所帮助:)我找到了这个C库

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1487517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文