16 bits per pixel grey scale.

How can OpenGL help me to scale a 16 BPP image into a 8 BPP image? (Grey scale images)

Image8bpp = fn(Image16bpp, low, high)
//Values below low are 0.
//Values above high are 255.
//Everything else is scaled between.

I need to update this image in real time…