summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2011-08-12 05:46:09 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2013-07-29 06:21:50 -0400
commit2cd907930a906ccc050013d71397a869ead76861 (patch)
tree710ba399fc7cf8be7d7e096b3aa575f80c294003
parentc04155cc4def8de41e2e3fc056832c13095d5b17 (diff)
Generalization of void/cluster
-rw-r--r--docs/yuv-dither.txt16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/yuv-dither.txt b/docs/yuv-dither.txt
index 3b1e7cfc..34be7382 100644
--- a/docs/yuv-dither.txt
+++ b/docs/yuv-dither.txt
@@ -32,6 +32,22 @@ sidesteps the issue of gray-levels.
The noise quality of doing this may not be good enough though, so it
could still be useful to do the whole graylevel optimization.
+Generalization of void-and-cluster:
+
+ - Generate white noise
+ - Maintain array with noise, and array with perceptually filtered
+ noise
+ - find pair (a, b) such that (noise[a] > noise[b]) and
+ (filtered[a] - filtered[b]) is maximal.
+ - swap them
+
+repeat until it converges. Note that we can maintain a sorted version
+of the filtered array, and then starting from each end of that,
+compare the corresponding noise entries, and if those don't satisfy
+the noise[a] > noise[b] condition, move the pointer that would change
+the filtered difference the least. Repeat until the pointers meat.
+
+(Why do we not want to use a perceptual filter for binary void/cluster?)
Finally, convert to RGB. (Maybe do subpixel sampling?)