E-Ink 16-Level Grayscale Map

Quantize actual normalized grayscale to sixteen levels with half-up ties and explicit device code polarity; no e-ink waveform/ghosting model, RGB luminance interpretation or specific panel protocol.

Description

Sixteen-level grayscale quantization needs a declared code polarity.

Sixteen-level grayscale quantization needs a declared code polarity. Reconstructed gray is independent of that device convention.1

Enter normalized gray fractions 0–1 and black-is-zero boolean. Return half-up quantized codes and reconstructed level/15; empty inputs are allowed.

When to use E-Ink 16-Level Grayscale Map

Use E-Ink 16-Level Grayscale Map when you need to evaluate the supplied records under the calculation and evidence rules below. No RGB luminance conversion, e-ink waveform, ghosting or panel protocol is inferred.

Prepare colors in the stated color space and scale. Use encoded RGB fractions, linear RGB, Lab, xy, byte values or ink percentages exactly as requested; supply caller tolerances and reference conditions.

How to use E-Ink 16-Level Grayscale Map and understand its results

  1. Prepare colors in the stated color space and scale. Use encoded RGB fractions, linear RGB, Lab, xy, byte values or ink percentages exactly as requested; supply caller tolerances and reference conditions.
  2. Enter normalizedGrayFractions, callerBlackIsZero using the field table and calculation rules, then run the tool.
  3. Read sixteenLevelCodes, reconstructedGrayFractions. The explanation below defines the units, signs, ordering and any flags or placeholder values.
  4. If the tool reports an input issue, correct the values and run it again. Apply the stated assumptions when interpreting a successfully returned result.
Input fieldMeaningValue type; see rules belowRequirement
normalizedGrayFractionsNormalized gray fractionslist of numberRequired
callerBlackIsZeroCaller black is zerobooleanRequired

Enter normalized gray fractions 0–1 and black-is-zero boolean. Return half-up quantized codes and reconstructed level/15; empty inputs are allowed.

level=round(15×gray); code=level or15−level

Units, indexing, boundary conditions and exceptional cases are defined in the calculation rules above.

Output fieldMeaningValue type
sixteenLevelCodesSixteen level codeslist of number
reconstructedGrayFractionsReconstructed gray fractionslist of number
json
{
  "input": {
    "normalizedGrayFractions": [
      0,
      0.5,
      1
    ],
    "callerBlackIsZero": true
  },
  "output": {
    "sixteenLevelCodes": [
      0,
      8,
      15
    ],
    "reconstructedGrayFractions": [
      0,
      0.5333333333333333,
      1
    ]
  }
}

Limitations and assumptions

No RGB luminance conversion, e-ink waveform, ghosting or panel protocol is inferred.

Numeric inputs, where present, must be finite. Follow the calculation-specific rules for overflow, underflow and exceptional cases. Numeric lists are limited to 10,000 entries; string lists to 128 strings of at most 128 characters each. The rules above may impose smaller limits. Missing required fields, extra fields, wrong value types and violations of the calculation rules are input errors.

Alternative or Complementary methods

Use Web-Safe 216 Nearest Index: The legacy web-safe palette is a six-level RGB cube. Channel rounding gives an explicit red-major index. For a complementary task, use Bayer 4×4 Dither Threshold Matrix Lookup: Bayer ordered dithering repeats a 4×4 threshold pattern. A tile origin controls alignment without error diffusion.

References

  1. E-Ink 16-Level Grayscale Map — tool.io

Similar or alternative tools

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies