2 ms·
This just screams challenge to me. You have a 16*16, 8 colour image in 768 bits. So the question is, how much can the format be changed to allow for a wider
by Lerc 13y ago
This just screams challenge to me. You have a 16*16, 8 colour image in 768 bits.
So the question is, how much can the format be changed to allow for a wider range of expressibility?
The obvious place to start is increasing the resolution by somehow reducing the bits per pixel.
768/(16x16) = 3 (current resolution makes 3 bits per pixel)
768/(17x17) = 2.657
768/(18x18) = 2.370
768/(19x19) = 2.127
768/(20x20) = 1.920
768/(21x21) = 1.741
768/(24x24) = 1.333
768/(26x26) = 1.136
768/(32x32) = 0.75
Of course, once you get a higher resolution with fewer bits you lose the ability to be able to make each individual pixel any colour you want. Once you go below 1 bit per pixel you lose the ability to refer to pixels individually altogether.
Most pixel artists would take some degree of hit though, in fact much of the beauty of pixel art is in massaging the restrictions.
A lot of 8 bit systems used 8x8 cells at 1 bit with a colour attribute byte to bring it up to 1.125 bits per pixel.
The spectrum used that to make things like http://fc05.deviantart.net/images3/i/2004/116/3/d/ZX_Spectrum_gallery_1997_2003.png http://fc05.deviantart.net/images3/i/2004/116/3/d/ZX_Spectru...
You could quite easily support a 24x24 image in that form, but with only 3 cells across the colour restrictions would be a bit harsh.
My preference would be to try for 21x21 using 3x3 cells. Being restricted to only 2 colours per cell is much less of a problem when the cell size is small. A quick and easy approach would be a 2 byte per cell structure where the first byte defined the foreground an background colours and the second byte defined the pixels. That gets you a palette of 16 colours overall, any two in each cell. It is marginally over the required limit (21x21 at 1.778bpp) though, so would require a little more cleverness to eek out that extra little bit. dropping back to an 8 colour palette would do it easily, but 1.778 is so close to 1.741 that those bits can surely squeezed out from somewhere.
- TheZenPsycho 13y agoThanks. It did occur to me that I could get pretty close to a black and white 32x32 picture by replacing the 8 colors with 8 patterns. You'd have to make impossible some patterns, but constraints breed creativity!
- Lerc 13y agoI made a mode like this for a dcpu16 emulator as a mode proposal. http://fingswotidun.com/dcpu16/GraphicsMode1.png http://fingswotidun.com/dcpu16/GraphicsMode1.png There's potential for extra data in the situation where the two colour attributes are the same. Possibly have a second compliment palette where if A==B { colourA:=pallette[A]; colourB:=compliment[A]; } That allows for an extra set of colour pairs, to help out in unusual cases. You don't gain ability to set the bottom right pixel of each cell to the compliment colour, so even though it gives you another 16 colours to play with you get some interesting restrictions rewarding clever use.