It is great to have a direct contact to Onyx. I subscribed to the Chinese forum months ago, but I cannot post.
Please add the BBS category “Feature Requests”!
Onyx implements the Floyd-Steinberg dithering in A2 (Fast) mode, and it is great. It is what allows playing video, for example. It is also the effect that appears using the Monitor embedded software.
The dithering can be improved, in two directions.
For “green” I mean “ecological” - cheap, efficient.
The dithering on A2 as implemented by Onyx make beautiful still images, but does not consider animation, the flow of time, the next frame. It is stateless.
We want the next frame to change as little as possible when using EPD, Electrophoretic displays. Every time we change a dot, we use energy - we consume battery. We want the change of dots to be conservative, frame to frame.
Instead, the black dots and the white dots of a next frame are random, if compared to a previous frame. If you look at them during an animation (may be video, may be a user interface), they look like a swarm of insects.
Onyx should implement a dithering algorithm that minimizes the changes of dots in time.
The Floyd-Steinberg dithering is only implemented in A2 (Fast) mode. But also normal, Greyscale Update mode benefits from dithering.
Suppose you are looking at a picture. Normal rendering will “posterize” the image, creating flat bands of grey. Instead, you want to simulate a gradient by distributing the dots of different lightness.
Dithering in normal, Greyscale Update mode should be optional.
Here are examples of making a greyscale image with the simple algorithm of “nearest grey”, and making the same image greyscale using a dithering algorithm: