Revert to same quantization thresholds as in upstream

This commit is contained in:
jpirnay
2026-05-07 20:25:57 +02:00
parent ce9e0d83ec
commit 1ca18c4575
2 changed files with 17 additions and 20 deletions
+1 -4
View File
@@ -52,11 +52,8 @@ int adjustPixel(int gray) {
return gray; return gray;
} }
// Simple quantization without dithering — evenly-spaced midpoint thresholds for factory LUT // Simple quantization without dithering — thresholds tuned to X4 display brightness
uint8_t quantizeSimple(int gray) { uint8_t quantizeSimple(int gray) {
// Midpoint thresholds for 4 levels would be: 0-63=0, 64-127=1, 128-191=2, 192-255=3
// Crosspoint thresholds for 4 levels: 0-44=0, 45-69=1, 70-139=2, 140-255=3
// (slightly brighter to compensate for quantization)
if (gray < 45) { if (gray < 45) {
return 0; return 0;
} else if (gray < 70) { } else if (gray < 70) {
+16 -16
View File
@@ -127,21 +127,21 @@ class AtkinsonDitherer {
if (adjusted < 0) adjusted = 0; if (adjusted < 0) adjusted = 0;
if (adjusted > 255) adjusted = 255; if (adjusted > 255) adjusted = 255;
// Quantize to 4 levels — evenly-spaced midpoint thresholds for factory LUT // Quantize to 4 levels — thresholds tuned to X4 display brightness
uint8_t quantized; uint8_t quantized;
int quantizedValue; int quantizedValue;
if (adjusted < 43) { if (adjusted < 30) {
quantized = 0; quantized = 0;
quantizedValue = 0; quantizedValue = 15;
} else if (adjusted < 128) { } else if (adjusted < 50) {
quantized = 1; quantized = 1;
quantizedValue = 85; quantizedValue = 30;
} else if (adjusted < 213) { } else if (adjusted < 140) {
quantized = 2; quantized = 2;
quantizedValue = 170; quantizedValue = 80;
} else { } else {
quantized = 3; quantized = 3;
quantizedValue = 255; quantizedValue = 210;
} }
// Calculate error (only distribute 6/8 = 75%) // Calculate error (only distribute 6/8 = 75%)
@@ -215,21 +215,21 @@ class FloydSteinbergDitherer {
if (adjusted < 0) adjusted = 0; if (adjusted < 0) adjusted = 0;
if (adjusted > 255) adjusted = 255; if (adjusted > 255) adjusted = 255;
// Quantize to 4 levels — evenly-spaced midpoint thresholds for factory LUT // Quantize to 4 levels — thresholds tuned to X4 display brightness
uint8_t quantized; uint8_t quantized;
int quantizedValue; int quantizedValue;
if (adjusted < 43) { if (adjusted < 30) {
quantized = 0; quantized = 0;
quantizedValue = 0; quantizedValue = 15;
} else if (adjusted < 128) { } else if (adjusted < 50) {
quantized = 1; quantized = 1;
quantizedValue = 85; quantizedValue = 30;
} else if (adjusted < 213) { } else if (adjusted < 140) {
quantized = 2; quantized = 2;
quantizedValue = 170; quantizedValue = 80;
} else { } else {
quantized = 3; quantized = 3;
quantizedValue = 255; quantizedValue = 210;
} }
// Calculate error // Calculate error