Gary Lucas created SANSELAN-75:
----------------------------------
Summary: Improve speed of TIFF Index-Color Palette
Key: SANSELAN-75
URL: https://issues.apache.org/jira/browse/SANSELAN-75
Project: Commons Sanselan
Issue Type: Improvement
Components: Format: TIFF
Reporter: Gary Lucas
TIFF supports an 8-bit-per-pixel, "indexed color" model in which the values in
the source data give indices into a fixed palette of color settings. Unpacking
data in this format requires two steps: (1) reading and unpacking the palette
in the source file, (2) performing a look-up operation for each pixel to map
the index value to a color. A similar approach was used in the original GIF
specification and, checking wikipedia, it appears that it is also supported by
PNG and BMP. TIFF files in this format are used extensively in mapping and
Geographic Information System implementation.
The current inplementation of the PhotometicInterpreterPalette for TIFF files
has an inefficiency in that it performs the unpacking operation from step one
each time a new pixel is read. Thus, if a file contains three million red
pixels, the byte-manipulation for the color red is repeated three million
times. It would be more efficient for the PhotometricInterpreterPalette class
to perform the unpacking operation once, in its constructor. Since there are a
maximum of 256 colors in an 8-bit palette, this approach would require moderate
use of memory.
In time tests this approach reduced the reading time for a large TIFF file by
about 13 percent (for details on the timing procedures, see Tracker Item 58):
Unmodified Code: 1204.9 ms.
After change: 1049.7 ms.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira