ICEpdf
  1. ICEpdf
  2. PDF-765

ICC color profile optimizations

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.6_P01
    • Fix Version/s: 5.0.7
    • Component/s: Core/Parsing
    • Labels:
      None
    • Environment:
      any

      Description

      A client has sent in a PDF that has a medium sized image (2496x3216) and corresponding image mask. The images however use a n ICC color profile which has very expensive colour look ups.

      When working with ICC color profiles for CMYK pallets I found that the Java Implementation was too slow for doing image lookups. I think it's time to revisit this issue both for ICCBase and DeviceCMYK colour spaces. There is a good chance we could create a local lookup cache that would improve performance as well as getting better colour accuracy.

        Activity

        Patrick Corless created issue -
        Patrick Corless made changes -
        Field Original Value New Value
        Fix Version/s 5.0.7 [ 11470 ]
        Arran Mccullough made changes -
        Support Case References Support Case #12899 - https://icesoft.my.salesforce.com/5007000000dDkSK
        Support Case #12805 - https://icesoft.my.salesforce.com/5007000000duevw
        Arran Mccullough made changes -
        Workaround Description use org.icepdf.core.cmyk.disableICCProfile=true to improve performance
        Workaround Exists Yes [ 10007 ]
        Patrick Corless made changes -
        Fix Version/s 5.1 [ 10675 ]
        Fix Version/s 5.0.7 [ 11470 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42058 Fri Aug 01 07:15:56 MDT 2014 patrick.corless PDF-765 added a basic lookup cache for previously calculated ICC color values. Improves speed significantly, ICC lookup can still be disabled if more speed is needed.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/DeviceCMYK.java
        Hide
        Patrick Corless added a comment -

        Added a HashMap based cache for previously looked up ICC color values. The key generation is a bit rudimentary but is adequate for now as the result is a significant speed up when using the ICC profiles for CMYK.

        Show
        Patrick Corless added a comment - Added a HashMap based cache for previously looked up ICC color values. The key generation is a bit rudimentary but is adequate for now as the result is a significant speed up when using the ICC profiles for CMYK.
        Patrick Corless made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 5.0.7 [ 11470 ]
        Fix Version/s 5.1 [ 10675 ]
        Resolution Fixed [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42061 Fri Aug 01 09:51:51 MDT 2014 patrick.corless PDF-765 added concurrency protection to to the color lookup cache and image pool.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/ImagePool.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/DeviceCMYK.java
        Patrick Corless made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Patrick Corless
            Reporter:
            Patrick Corless
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: