ICEpdf
  1. ICEpdf
  2. PDF-201

Slow jpeg2000 and jbig2 decoding

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.1
    • Fix Version/s: 5.0.4
    • Component/s: Core/Parsing
    • Labels:
      None
    • Environment:
      any with image io and jai

      Description

      The file in question located on Support drive under /9361. The file take quite a lot of CPU time to decode the images in question. This bug is a placeholder so we can revisit for any potential optimization.

        Activity

        Hide
        Patrick Corless added a comment -

        Most of our image decoding slow down is related to how we go about converting the image data to RGB. There are a couple different ways we can improve the load time. The first easy optimization would be to avoid getting a pixel at a time, it is possible to copy a whole row of image data into an array which is supposed to be quite a bit faster.

        The other optimization is to move image loading to into separate thread or at the very least delay it until paint time. A separate image loading thread would improve the user experience greatly even if the today decode time didn't improve. The content parser will stall on a large image effectively blocking the display of page content until the image is loaded. If we started painting the main text content first and repainted later for a image done event the rendering core would seem a lot faster.

        Show
        Patrick Corless added a comment - Most of our image decoding slow down is related to how we go about converting the image data to RGB. There are a couple different ways we can improve the load time. The first easy optimization would be to avoid getting a pixel at a time, it is possible to copy a whole row of image data into an array which is supposed to be quite a bit faster. The other optimization is to move image loading to into separate thread or at the very least delay it until paint time. A separate image loading thread would improve the user experience greatly even if the today decode time didn't improve. The content parser will stall on a large image effectively blocking the display of page content until the image is loaded. If we started painting the main text content first and repainted later for a image done event the rendering core would seem a lot faster.
        Hide
        Patrick Corless added a comment -

        We are moving away from the jbig2 implementation provided by jpedal and are moving to the Levigo library. The library is licensed under LGPA so we won't be distributing it with the OS bundle but if added to the class path ICEpdf will try to use it.

        We licensed a special commercial version of Levigo which we are shipping with the PRO version for our enterprise customers.

        Show
        Patrick Corless added a comment - We are moving away from the jbig2 implementation provided by jpedal and are moving to the Levigo library. The library is licensed under LGPA so we won't be distributing it with the OS bundle but if added to the class path ICEpdf will try to use it. We licensed a special commercial version of Levigo which we are shipping with the PRO version for our enterprise customers.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: