~kiko/pixman/trunk

Viewing all changes in revision 2095.

  • Committer: Bryce Harrington
  • Author(s): Basile Clement
  • Date: 2019-05-25 14:30:19 UTC
  • Revision ID: git-v1:cb2ec4268fbde0df3b588ce5cbe2e43e04654520
Ordered dithering with blue noise, v2

On some screens (typically low quality laptop screens), using Bayer
ordered dithering has been observed to cause color changes depending on
*where the gradient is rendered on the screen*, causing visible
flickering when moving an image on the screen.

To alleviate the issue, this patch adds support for ordered dithering
using a 64x64 matrix tuned from blue noise.  In addition to being devoid
of the positional dependency on screen, the blue noise matrix also
generates more pleasing and less discernable patterns.  As such, it is
now the method used for PIXMAN_DITHER_GOOD and PIXMAN_DITHER_BEST
dithering methods.

The 64x64 blue noise matrix has been generated using the provided
`pixman/dither/make-blue-noise.c` script, which uses the
void-and-cluster method.

Changes since v1 (thanks Bill):
 - Use uint16_t for the blue noise matrix for lower memory usage
 - Use bitwise computation for array index

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: