From Apache OpenOffice Wiki
< Impress
Revision as of 17:09, 10 February 2009 by (Talk | contribs)

Jump to: navigation, search

Ongoing work


We currently evaluate possible bottlenecks and performance opportunities in the implementation of loading and saving the native OpenDocument xml formats in impress.

Please find details here


We currently work on the visual performance of the slideshow in impress.

Already detected problems we will try to address:

  • Timing problems in current implementation cause visual lag while during animations
  • Rendering speed during slideshow is too slow for complex content
    • Hardware acceleration of rendering during slideshow is desirable
      • Rework of the directx canvas for windows to use native directx calls to render geometry instead of using the slow GDI+
      • New XCanvas implementation based on pure OpenGL. A prototype is available in ooo-build [1]
    • avoid intermediate representations and conversions, by using the drawing layer primitives in slideshow as well
      • use more high-level canvas primitives, gradients are a lot faster when not decomposed into polygon strips


PNG images can be saved in interlaced mode. This increases the file size a little but it allows to load preview image up to 64 times faster. Without it you can for example end with loading few megabytes image - only to compute a small preview containing 64x64 pixels. (see for interlaced example)

The JPEG image format contains data stored hierarchically and thus can even provide higher quality preview images than a naive downsampling of the original size image. For JPEGs that have been saved in "progressive mode" only a small part of the image file has to be read for previews.

The pngperf cws adds necessary API for loading images in preview mode.

Preview API

So far there is API for previews, but OOo doesn't use it yet.

There exist slidesorter-demo-* patches in ooo-build to use pngperf API, but they have still some problems (such as impress sometimes showing preview quality images in slideshow presentation). There is problem with using that API, as Sun needs to keep API/ABI compatability, and thus it is now only possible to set parameters to png/jpeg loaders by static functions.


  • provide hints for more situations where big images are previewed
  • many more optimizations are possible...
  • make an extension to downsample large images (5megapixels is common from digital camera) to screen resolutions such as 1024x768 or 800x600
  • add image downsampling to support to [Impress Photo Album Creator extension]
Personal tools