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