[ https://issues.apache.org/jira/browse/SANSELAN-75?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Lucas updated SANSELAN-75: ------------------------------- Attachment: IndexColorPalette.tif Tracker_Item_75_23_Apr_2012.patch The attached patch addresses the issue. Since there are no TIFF format files of the relevant type in the Sanselan test suite, I am also attaching one. > 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 > Attachments: IndexColorPalette.tif, Tracker_Item_75_23_Apr_2012.patch > > Original Estimate: 0h > Remaining Estimate: 0h > > 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