Does anyone know how to use dithering technique to convert 16 bit bitmap image to low depth color such as 12 bpp or 8 bpp for LCD display...?
The source is RGB565 bmp format convert to RGB444 or RGB323 format.
I guess that there are many algorthm exist for PC but we would like to perform it on arm with limited resource. I don't care about dithering algorithm's efficiency, but care about the dithering algorithm's quality.
Thanks in advance.
An "algorithm" is just a method - so it would not be specific to any particular platform.
Look at the Floyd Steinberg algorithm for error diffusion. It keeps track of the error and forwards the error to comming pixels. It is most commonly used when going all the way to one-bit pixels but gives nice result with higher color resolutions too.
It is a fast algorithm in comparison to algorithms that uses a random or pseudo-random round-up/round-down. You can do it in-place with two extra scan lines stored in memory.
But as mentioned - this is general algorithms, so it doesn't really matter if you have an embedded platform or a specific chip.