我知道Floyd-Steinberg 抖动算法不能用像素着色器实现,因为该算法是严格顺序的。但也许存在一些高度并行的抖动算法,其视觉输出类似于 Floyd-Steinberg 算法?
所以问题是 - 哪些抖动算法适合在像素着色器(最好是 GLSL)上实现并且输出质量(非常)类似于 Floyd-Steinberg 抖动?
顺便提一句。允许多遍算法,直到不超过 2 遍并且这些遍之间的 CPU 开销很小。
有任何想法吗 ?
编辑:
我需要从 24 位颜色抖动到 21 位颜色。
(也就是说 - 我需要从 8 位/通道转换为 7 位/通道。)
编辑 2
也许我没有很好地解释问题。所以我会尝试扩展一下确切的问题。问题是这样的 - 考虑我们有这张图片:
我们有上面的图片,但是用抖动算法处理:
现在这是测试你的抖动是否适合我的程序:
1. 将这些图片加载到 Photoshop 中作为一张图片和 2层。
2.选择图层混合模式为“差异”。
3. 对图层执行“合并可见”操作,只得到一个图层。
4. 执行操作 => Image/Adjustments/Equalize
之后你必须得到这样的图像:
如您所见 - 单调红色的中间像素根本没有抖动。左右图像区域的抖动也有点不同。尝试用这种行为重建抖动算法。