Revision 1184042

Go back to digest for 10th October 2010

Optimization in Graphics

Gilles Caulier committed changes in /trunk/KDE/kdegraphics/libs/libkdcraw/libraw:

update internal LibRaw to 0.11-beta4

1) Exception-and-OpenMP patch (already tested by me)
2) LibRaw I/O is now C++ iostreams based instead of plain old FILE* I/O. Thanks to Adam Hooper's efforts on LibRaw speed-up.

Iostreams are MUCH faster in multi-threaded envirionment. On Linux and MacOS I see 10-15% improvement on dcraw_emu -h (half_size processing). So LibRaw::unpack() is about 1.5 times faster or so. On Windows (and Intel Parallel Studio compiler) I see about 3x times improvement on LibRaw::unpack() and big Canon .CR2 file, but under Windows I estimate timings via VTune profiler, in the wild improvement may be less.

On the other side, iostreams may create compatibility problems. Yes, streams are in C++ standard library for decades, but it is possible to meet problematic compiler.

Please report any comolation problem to backport later this patch on KDE 4.5 branch

File Changes

Modified 9 files
  • /trunk/KDE/kdegraphics/libs/libkdcraw/libraw
  •   /Changelog.txt
  •   /internal/dcraw_common.cpp
  •   /internal/dcraw_fileio.cpp
  •   /internal/var_defines.h
  •   /libraw/libraw_datastream.h
  •   /libraw/libraw_version.h
  •   /samples/half_mt_win32.c
  •   /src/libraw_cxx.cpp
9 files changed in total