Revision 1184042
Go back to digest for 10th October 2010Optimization in Graphics
update internal LibRaw to 0.11-beta4
Changes:
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
- /trunk/KDE/kdegraphics/libs/libkdcraw/libraw
- /Changelog.txt
- /COPYRIGHT
- /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