I missed out setting internal texture format as GL_RGBA16UI_EXT.
It displays the 16 bit image but many pixels appear saturated. look like there is an internal
BYTE conversion. I think ImageUtils always creates image with GL_UNSIGNED_BYTE inside the function createEmptyImage.
If change in it, will display 16 bit without any degrade?