ICEpdf
  1. ICEpdf
  2. PDF-801

Optimization of get/set/Pixel() methods calls.

    Details

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

      Description

      As part of the work done for PDF-332 we moved our colour conversion algorithms out into the RasterOps package. The various routines use the raster.getPixel() and raster.setPixel() which are very slow at accessing the data.

      After doing some research is most more efficient way to get at the data is to access the DataBuffer's data array. Then go about the conversion as per usual.

      In my test on a rather large JPEG image 700x9900 the raster op procedure for converting YCbCr to RB went from about 4 seconds down to 350ms. Apply this logic across our Raster Ops and Image masking algorithms seems like a no brainer as we're looking at some pretty nice performance enhancements.

        Activity

        Repository Revision Date User Message
        ICEsoft Public SVN Repository #43592 Mon Nov 24 14:06:04 MST 2014 patrick.corless PDF-801 removal of tagging library.
        Files Changed
        Commit graph DEL /icepdf/trunk/icepdf/core/src/org/icepdf/core/tag
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42574 Wed Sep 17 08:42:47 MDT 2014 patrick.corless PDF-801 touched up cachign mechanisms for different band sizes.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/Separation.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42573 Wed Sep 17 08:15:35 MDT 2014 patrick.corless PDF-801 touched up cachign mechanisms for different band sizes.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/ICCBased.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/Separation.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42569 Tue Sep 16 15:11:20 MDT 2014 patrick.corless PDF-801 updated comments
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/DeviceCMYK.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42568 Tue Sep 16 15:10:11 MDT 2014 patrick.corless PDF-801 fixed static colour table caching issue.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/ICCBased.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42536 Tue Sep 09 15:34:08 MDT 2014 patrick.corless PDF-801 reverting back to old masking method as it actually faster then the double band copy.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/ImageUtility.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42533 Tue Sep 09 12:31:40 MDT 2014 patrick.corless PDF-801 touched up applyExplicitMask exceptions.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/ImageUtility.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42532 Tue Sep 09 10:48:50 MDT 2014 patrick.corless PDF-801 removed debugging statements.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/ImageUtility.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42531 Tue Sep 09 10:40:59 MDT 2014 patrick.corless PDF-801 updated explicit mask method for applying fill colors.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/ImageUtility.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42524 Mon Sep 08 12:54:30 MDT 2014 patrick.corless PDF-801 optimization of get/setPixel with direct access to image data array.
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/DeviceCMYK.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/ICCBased.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/RasterOps/PColorSpaceRasterOp.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/RasterOps/DecodeRasterOp.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/RasterOps/YCCKRasterOp.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/RasterOps/GrayRasterOp.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/RasterOps/CMYKRasterOp.java
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/Separation.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42507 Thu Sep 04 15:37:04 MDT 2014 patrick.corless PDF-801 optimized image data access using (src.getDataBuffer()).getData()
        Files Changed
        Commit graph MODIFY /icepdf/branches/icepdf-5.0.1/icepdf/core/src/org/icepdf/core/pobjects/graphics/RasterOps/YCbCrRasterOp.java

          People

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

            Dates

            • Created:
              Updated:
              Resolved: