| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
原始链接: https://news.ycombinator.com/item?id=43675309
Hacker News 上的一篇帖子讨论了一篇关于用 Racket 编写抖动算法的博客文章。评论者们指出了潜在的改进,包括在线性亮度空间中执行抖动以修正非线性 sRGB 值,原作者承认了这一点并计划解决。 人们提出了关于误差扩散模式和分布矩阵的建议。一位评论者分享了他自己一些不实用的抖动算法和其他关于抖动的资源链接。缩放抖动图像可能会引入伪影,因此建议在客户端进行抖动以获得像素完美的渲染效果。讨论还涉及到是否可以找到一个客观的抖动质量度量标准,考虑到感知细节和审美偏好的主观性和特定于用例的性质。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Me, I adjusted Atkinson a few years ago as I prefer the "blown out" effect: https://github.com/KodeMunkie/imagetozxspec/blob/master/src/...
A similar custom approach to prevent second pass diffusion is in the code too; it is slightly different implementation - processes the image in 8x8 pixel "attribute" blocks, where the error does not go out of these bounds. The same artifacts occur there too but are more distinct as a consequence. https://github.com/KodeMunkie/imagetozxspec/blob/3d41a99aa04...
Nb. 8x8 is not arbitrary, the ZX Spectrum computer this is used for only allowed 2 colours in every 8x8 block so this seeing the artifact on a real machine is less important as the whole image potentially had 8x8 artifacts anyway.
reply