UFPF: U12F and UFPP - October 2011
There has been no changes on this project for quite a time.
But following needs to address the recording of transmittance for scanned film a new "variable" has
been added to this family of unsigned floating point formats
WARNING THE CVS feature is DISABLED
DOWNLOAD THE LATEST VERSION TO GET UFPP OR USE SUBVERSION
U12F (Unsigned Floating Point Format)
It is a C++ variable tentatively used to store temporary or "permanent" pixel values on a 16 bits format.
In this format the code is providing "u12f" a 16 bits variable with 4 bits for exponent and 12 bits for
mantissa. (I like to pronounce "utwelf" for short)
WARNING: there are certainly bugs in this code (especially the right- and left-shift - which are not
interesting after all) despite the heavy usage I have been making of it.
UFPP (Unsigned Floating Point Pixel)
That is the new addition to this "family". (I call it UFO for short - like it or not).
It is based on the same principle as the ufpf with a combination of 4 bits for exponent and 12 bits for
mantissa but the exponent bias is chosen to do a mapping of the ]0. ; 1.[ interval to codes [0 ; 65535].
There are three source files for UFPP:
ufpp.c : a code containing direct and reverse mapping function in C language (from float to unsigned
short code and from unsigned short code to float)
ufpp.H : a C++ class definition with inline functions allowing the required coding and adding nice
ufpp_cpp_example.C : a C++ code showing how to use indirection by UFPP value to obtain fast conversion
of "transmittance" values to the Academy APD/ADX coding format