Hi all, in the process of making the screens and sprites for Q-Word, I started updating my BMP2PIC program that now sports two- way conversion (from and to) QL Screens (PIC and SCR) Mode 32 and 33 as well as Mode 256. (Mode 16 not yet supported) and 24 bit BMPs (I plan on implementing the full array of bitdepths available on the bmps).
For the 24 bit to 15/16 bit conversion the method proposed by Malcolm Lear (on whose program mine is loosely based) -To chop off the 2 high bits from the colour components works rather well (I added a little bit more logic to support the intensity bit on the Q40/60 more completely) but I plan on implementing 24bit/16bit to 8 bit in more than one ways. For non-dithering operations I use, a colour weight average method (with or without perceptional colour coefficients -USER selectable-) but for dithering I need some advise from other users that have some relative experience. Malcolm uses the random pattern diffusion dither to bring down 24 bit images to Mode 8 and 4 but I find it very unpleasing to the eye... I will be implementing that (heck the code is already there why shouldn't I use it then ;-) but by investigating a little further I found a huge cache of research on dithering and colour perception. My favourite pick is the Floyd-Steinberg error diffusion method but there are others with Pattern matching, Bit enlarging etc. In any case all of them are rather slow but I was wondering if anyone has already done the research (Floyd-Steinberg for example employs some nice differential equations in it... nothing too fancy but all too interesting) so he could point me to the right direction... I apparently cannot due to time constraints code every single one of the algorithms in existence (There are more than 100 that I know of) but three to five that work well is a logical number to include. I don't need code but rather info based on your own experience or pointers for my own research.... After all this is rather exciting don't you think? Regards, Phoebus
