The API is called HAPI and does file loading and creates the window for me. It gives me a pointer to the screen, which is in 32bit colors. So im not sure if I can use 16bit.16 bit colour can still look nice, but you will lose your alpha channel. In the 2d APIs I have used you can set the bit depth when setting up the screen. The parameters usually go something like: graphics width, graphics height, bit depth, display mode. However, without knowing what api you are using its impossible for anyone to answer that accurately.
Looks like this is going to be to complicated for me to pull of.
EDIT:
What I will try to do is first trying the pre-processing you posted about before. After that I will try to take two 32bit colors into a 64bits variable. (My processor is 64bit, so I assume that would be the same as taking two 16 bits on a 32bits processor?)