lexa's blog

LibRaw 0.14 Beta1

LibRaw 0.14 is stable enough for 'beta' version. In beta stage no major changes are planned, only bugfixes and cleanups.

Changes between Alpha5 and Beta1:

  • Cosmetic changes to LibRaw_file_datastream interface
  • OpenMP speedup of postprocessing steps (up to 50% for half mode and 4-core machine)

LibRaw 0.14 Alpha4

LibRaw 0.14-Alpha4 contains some major changes:
  • Imported dcraw 9.10 (1.444), support for new cameras added: ARRIRAW format, Canon SX30 IS, Leica D-LUX 5 and V-LUX2, Olympus E-P3, Panasonic G3 and GF3, Sony NEX-C3 and SLT-A35
  • Support for RedOne digital movie cameras (R3D format). To enable this support you need to:
    • install libjasper JPEG2000 support library
    • compile LibRaw with -DUSE_JASPER compiler switch (./configure will do it for you)
    • If you use own LibRaw_datastream implementation, you should implement make_jas_stream() call for your datastream. See bottom of src/libraw_cxx.cpp for implementations in datafile and mem-buffer LibRaw streams.
  • Bugfix: green matching is turned off if output image is shrinked due to wavelet filtering or aberration correction.
  • Fixed open_file()/adjust_sizes_info_only() code path
  • Removed imgdata.sizes.bottom_margin and right_margin data fields use imgdata.sizes.raw_width - width - left_margin to get right one, the same with bottom_margin.
  • Minor ./configure cleanup
  • Qmake files and Visual Studio Project files are updated.
  • New version check macros.
  • All client code should be recompiled due to internals change.

LibRaw 0.13.8

LibRaw 0.13.8 available with some minor changes:
  • Imported dcraw 9.10 (1.444), support for new cameras added: ARRIRAW format, Canon SX30 IS, Leica D-LUX 5 and V-LUX2, Olympus E-P3, Panasonic G3 and GF3, Sony NEX-C3 and SLT-A35
  • Bugfix: green matching is turned off if output image is shrinked due to wavelet filtering or aberration correction.

LibRaw 0.14 Alpha3

LibRaw 0.14-Alpha3 contains several major changes:

  • New sample samples/postprocessing_benchmark.cpp
    This sample measures postprocessing speed.
    All demosaic methods, averaged white balance, median
    filtering, wavelet filtration, highlight recovery, and
    cropping are supported.
  • LibRaw::rotate_fuji_raw() call and corresponding C-API call have been removed.
  • The LibRaw::adjust_sizes_info_only() call may be called repeated
    and mixed with dcraw_process() call.

LibRaw 0.13.7

LibRaw 0.13.7 contains several fixes for cropping code and some minor changes:
  • Changes in cropping code:
    • cropping is now works for Fuji files (instead of crash)
    • bad pixels map and dark frame subtraction is turned off if cropping enabled
    • for technical reasons, coordinates of top-left corner of crop box are rounded to multiple of 4 for Fuji files.
  • ./configure stuff fixes:
    • install static libraries only when --enable-static is set
    • compiled samples are dynamically linked if shared library not disabled.
  • OpenMP enabled for Visual Studio 2008 SP1+, but not for RTM

LibRaw 0.14 Alpha2

LibRaw 0.14 Alpha2 contains several major changes:
  • Multiple rendering (LibRaw::dcraw_process() calls) allowed without re-opening RAW file thrfough the sequence of open()/unpack() calls.
    You should be able to change any processing parameters (except shot_select parameter) between dcraw_process() calls.
    • New sample in samples/multirender_test.cpp: renders data 4 times: in half and full modes with different white balance settings.
    • Unprocessed RAW data is stored in separate data buffer: (2 bytes per pixel for all Bayer-pattern images, 8 bytes per pixel for Foveon, sRAW, and other full-color raw formats), so now LibRaw uses 25% more memory for full processing of most common Bayer images; while for just unpack memory is reduced 4 times.
    • New call LibRaw::raw2image() fills imgdata.image array with fresh copy of data. There is no need to call raw2image() separately if you use dcraw_process() or dcraw_document_mode_processing() calls.
    • New call LibRaw::free_image(), deallocates imgdata.image buffer. Use this call if current postprocessing results are not needed, but it is to early to call recycle() because dcraw_process() may be called later.
    • New call LibRaw::get_decoder_info() to determine raw data storage layout. See samples/unprocessed_raw.cpp for an example of how to use it. * New C-API calls libraw_raw2image() - C API for LibRaw::raw2image() libraw_free_image() - C API for LibRaw::free_image() libraw_get_decoder_info() - C API for LibRaw::get_decoder_info()

    If your code uses usual open()/unpack()/dcraw_process() call sequence, then NOTHING CHANGED: your program should produce same results. For interactive programs you may skip open()/unpack() calls after adjusting processing parameters, so user should see image refreshed much faster.

    If your code uses raw data (open+unpack calls), you need to call LibRaw::raw2image(), and imgdata.image will contain same bitmap as in LibRaw 0.13.x

    If you code uses access to masked borders data, you need to rewrite it. See samples/unprocessed_raw.cpp as a sample.

  • Other changes:
    • No separate imgdata.masked_pixels buffers, Bayer raw formats are read to buffer with borders. So, no ugly add_masked_border_to_bitmap() call.
    • No filtering_mode parameter. Raw tone curve is applied at unpack() stage; zero pixels removed on postprocesing stage.
    • unprocessed_raw and 4colors samples are adjusted to use new RAW data storage layout.
  • all client code should be recompiled due to internals change.

Please test new version and provide feedback (in comments, forum or via feedback form). This version is experimental (alpha) and we need your feedback before releasing beta and/or release library.

LibRaw 0.13.5

LibRaw 0.13.5 add supports for several new cameras.

Changelog:

  • Imported new dcraw 9.08/1.443:
    • New color data for Canon 600D and 1100D, Fuji S200EXR
    • New cameras supported: Fuji HS20EXR and F550EXR, Kodak Z990, Nikon D5100, Olympus E-PL1s and XZ-1, Samsung NX11, Sony A230 and 290.

Pages

Subscribe to RSS - lexa's blog