Difference between revisions of "Impress/Performance"

From Apache OpenOffice Wiki
Jump to: navigation, search
(add a new performance issue)
(cleanup, mainly header levels)
Line 1: Line 1:
=== pngperf cws ===
+
== pngperf cws ==
  
The slide sorter of Impress is quite slow in some situations. Many of these [[performance]] problems have to do with the load time of huge image files and with the work to downscale those images to the much smaller sizes needed for the slide previews. The [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Id=3074 CWS pngperf] utilizes the fact that some image formats were designed with this use case in mind. It also benefits from the much smaller memory footprint of preview images compared to the original size images. The CWS was started by hdu few months ago.
+
The slide sorter of [[Impress]] is quite slow in some situations. Many of these [[performance]] problems have to do with the load time of huge image files and with the work to downscale those images to the much smaller sizes needed for the slide previews. The [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Id=3074 CWS pngperf] utilizes the fact that some image formats were designed with this use case in mind. It also benefits from the much smaller memory footprint of preview images compared to the original size images. The CWS was started by hdu few months ago.
  
'''Previews'''
+
=== CWS status ===
 +
 
 +
The CWS pngperf will be in OOo 2.1.  Of course it will be integrated into an earlier developer build (probably SRC680m184).
 +
 
 +
== Previews ==
  
 
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 [http://www.libpng.org/pub/png/pngintro.html http://www.libpng.org/pub/png/pngintro.html] for interlaced example)
 
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 [http://www.libpng.org/pub/png/pngintro.html http://www.libpng.org/pub/png/pngintro.html] for interlaced example)
  
The JPEG image format contains data stored hierarchicaly 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 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.
 
The pngperf cws adds necessary API for loading images in preview mode.
  
'''API'''
+
== API ==
  
 
So far there is API for previews, but OOo doesn't use it yet.
 
So far there is API for previews, but OOo doesn't use it yet.
Line 17: Line 21:
 
There exist slidesorter-demo-* patches in ooo-build [http://cvs.gnome.org/viewcvs/ooo-build/patches/src680/ http://cvs.gnome.org/viewcvs/ooo-build/patches/src680/] 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.
 
There exist slidesorter-demo-* patches in ooo-build [http://cvs.gnome.org/viewcvs/ooo-build/patches/src680/ http://cvs.gnome.org/viewcvs/ooo-build/patches/src680/] 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.
  
'''CWS status:'''
+
== Slide show load/save operations ==
  
The CWS pngperf will be in OOo 2.1.
 
of course it will be integrated into an earlier developer build (probably SRC680m184).
 
 
 
'''Slide show load/save operations'''
 
 
Loading or saving a presentation document is slower in OpenOffice.org than Microsoft PowerPoint.  Also, with many large images, OpenOffice.org consumes more memory and may crash.
 
Loading or saving a presentation document is slower in OpenOffice.org than Microsoft PowerPoint.  Also, with many large images, OpenOffice.org consumes more memory and may crash.
  
 
+
== TODO: ==
'''Things TODO:'''
+
  
 
* provide hints for more situations where big images are previewed
 
* provide hints for more situations where big images are previewed

Revision as of 09:08, 13 November 2006

pngperf cws

The slide sorter of Impress is quite slow in some situations. Many of these performance problems have to do with the load time of huge image files and with the work to downscale those images to the much smaller sizes needed for the slide previews. The CWS pngperf utilizes the fact that some image formats were designed with this use case in mind. It also benefits from the much smaller memory footprint of preview images compared to the original size images. The CWS was started by hdu few months ago.

CWS status

The CWS pngperf will be in OOo 2.1. Of course it will be integrated into an earlier developer build (probably SRC680m184).

Previews

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 http://www.libpng.org/pub/png/pngintro.html 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.

API

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

There exist slidesorter-demo-* patches in ooo-build http://cvs.gnome.org/viewcvs/ooo-build/patches/src680/ 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.

Slide show load/save operations

Loading or saving a presentation document is slower in OpenOffice.org than Microsoft PowerPoint. Also, with many large images, OpenOffice.org consumes more memory and may crash.

TODO:

  • 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