LibRaw 0.15.4

Among the few existing implementations of RAW converters, those based on the dcraw utility by Dave Coffin are the most used. It is hard to find a more or less popular camera that is not supported by this utility; while the implementation of RAW data extraction in dcraw is of a very high quality. However, developers and enthusiasts who use or are going to use dcraw for fulfilling the above-listed and similar objectives encounter a number of difficulties. First, the author of dcraw refuses to turn his product into a handy library, yet permitting anybody else to do so. Besides, dcraw contains a number of questionable features which may hinder its use without modifications, as well as instances of distortions in the photographic sense of it. As a result, once every several months, virtually all developers, part of them listed on the dcraw Web site, independently convert each subsequent release of the software into the library. As for enthusiasts, the "entry cost" of verifying their own ideas and implementing their own algorithms is often unreasonably high: they have to either use the dcraw command line, thus being forced to use the unavoidable early processing stages, or understand the source code and maintain their own library based on it. Thus, the inconveniences of dcraw make the developers` community quite small and halt further evolution and improvement of RAW format converters. Goals and Objectives We are going to create LibRaw in order to "get a library based on dcraw, only better". Thus:

  • To "librarize" dcraw, i.e., to develop a stable and consistent API suitable for other applications (RAW converters, data analyzers, panorama stitchers, etc.).

  • To divide processing into independent parts (groups of API calls)

    • Reading, decoding, and unpacking of RAW data: this is the main functionality of LibRaw

    • Data conversions: interpolation, white balance, etc.

    • File output of the processing results.

    The latter two groups of functions are maintained primarily for dcraw compatibility testing.

  • To improve the procedures of RAW data retrieval and decoding (see below for details)

  • To supply other developers with a "framework" (freeware and open-source), e.g., for experimenting with their own methods of RAW data processing (interpolation, noise reduction, white balance, etc.; some directions of the possible efforts are listed above), so that they could create their own GUI programs and interfaces without developing the entire RAW converter.

  • To ensure easy modification for code synchronization with dcraw releases.

  • LibRaw Support Principles
  • To reproduce the functionality of dcraw using its source code as the basis for our work; to achieve binary identity of results generated by dcraw and by LibRaw-based utilities, provided the same processing settings are used.

  • To eliminate the shortcomings of dcraw (see sections Implemented Improvements of dcraw and Planned Improvements).

  • To monitor future improvements in dcraw (support of new cameras, error correction, use of better algorithms) and import them from dcraw to LibRaw.

  • API modifications: the planned improvements will require extending of the API. Such changes will be introduced in the form of large change-sets, while the compatibility mode supporting older applications based on the legacy API set will be preserved as long as possible.

  • Implemented Improvements of dcraw As of the time of writing, additional improvements to the dcraw source code have been introduced into LibRaw:

    • All global variables have been removed (while linking the thread-safe version, static variables of functions have been removed as well).

    • Thread safety. An example of its use in the multithreaded model is included into the library distribution package.

    • Data extracted from a RAW file is already somewhat structured: geometry is separated from color data. This work has not yet been completed; it will be continued simultaneously with the work on improvement of EXIF processing.

    • Retrieval of RAW data and thumbnail can be performed in two or three API calls with a very simple program interface.

    • Work with color information: color data (white balance coefficients, tone curve, etc.) has flags referencing the source of this information: retrieved from RAW data, calculated from the image itself, or taken from the code as constants.

    • ICC profile is extracted (for those RAW files that contain it).

    • The image itself and the thumbnail can be retrieved by successive calls, without reopening the file or relaunching the library.

    • The required amount of RAM is somewhat lower.

    • Work with masked pixels and black subtraction:: it is possible to turn off all data filtering and black level subtraction.

    • Processing of the black frame: data read from the black frame (or two black frames, for cameras that have two) is accessible from the calling application (this may be necessary, e.g., for suppression of certain artifacts, including banding).

    • Processing the extremes of the value range: minimum values (often referred to as black point) and maximum values (saturation point).

      • The black point is not subtracted from the data at the unpacking stage, in contrast to the implementation found in dcraw: the calling application may have its own plans, e.g., channel-wise subtraction of the minimum.

      • The maximum values are calculated on per-channel basis. Calculation of the maximum values for a given camera sample at a specified sensitivity (converter calibration) is to be done in the application that calls LibRaw.

    Planned Improvements The Dcraw Code Needs Significant Modifications And Additions:

    • Output of unpacked data in various memory layouts: depending on the requirements of the calling program, the results of RAW unpacking will be output in one of the following runtime-selected formats:

      • Four-component pixels (internal dcraw data format)

      • Bayer format: 2D array with each element corresponding to a pixel in the matrix

      • 4 two-dimensional arrays (one per component).

    • Single-pass unpacking of RAW files containing several image variants/planes: for applicable cameras (Fuji cameras, cameras with 4-shot/16-shot modes), several planes of the same image will be extracted.

    • Data unpacking verifications for the widest possible set of file formats. According to some studies, dcraw does not completely ensure correct unpacking of some data formats.

    • Processing of the EXIF/Makernote data: retrieval of large data amounts, including

      • Extraction of the maximum possible amount of color data (white balance settings, profile, tone curve, contrast settings, etc.)

      • Color data generalization: reduction of color data from different cameras "to a common denominator" in order to facilitate color processing (without loss of quality)

      • Extraction of camera data (firmware version, serial number)

      • Extraction of photographic data (lens used, focusing distance, focus points and their coordinates, etc.)

      • Extraction of the bulk EXIF data set without analyzing the structure in order to facilitate copying of that EXIF data to output files.

    • Generalization of work with complex formats, including

      • RAW files from Fuji cameras (with two sets of sensors)

      • RAW files from digital backs with 4-shot and 16-shot modes.

    • Technical improvements, including

      • Extraction of ICC profile (for those RAW files that contain it)

      • Cutting down on the size of the allocated memory - in cases where post-processing will not be performed in the same buffer as the one used for reading the RAW data.

    At the same time, we are not planning any modifications or extensions of the dcraw data processing code (de-Bayer, color conversions, etc.); all of this is up to the calling application. Standard processing modes included in dcraw will be preserved for an indefinite time in the set of dcraw-emulating API calls, with the exception of LCMS and libjpeg support, as well as certain processing stages of minor importance.

    User's rating:

    • Currently 2.87/5
    • 1
    • 2
    • 3
    • 4
    • 5
    Download 1.3MB LibRaw

    Download Direct

    (1.3MB, Extension: GZ)

    Download alternate to LibRaw solution

    Look at the free or trial alternatives and similar apps to LibRaw software by the tags. It's possible also to find substitutes for the most popular titles in the Graphics & Design category.

    | Raw Image Decoder | Raf | Nef | Libraw | Dng | Crw | Cr2 |

    History updates (Complete changelogs since the listing on this site)

    0.15.4 [08-30-13]

    • Additional checks to data to prevent broken file opening
    • New camera/format support:
      • Richon GR
      • Panasonic LF1
      • Canon EOS 70D
      • Sony RX100II, RX1R
      • Olympus E-P5

    Other versions : 0.15.3 0.15.2 0.14.7

    v0.15.3 [07-05-13]

    • New camera/format support:
      • OmniVision OV5647 (Raspberry Pi)
      • Nikon D5200
      • Panasonic DMC-GF6
    • Fixed decoding error for some Canon sRAW files.

    v0.15.2 [05-29-13]

    • Fixed possible double-free() on error recovery on damaged full-color (Foveon, sRAW) files.
    • wchar_t* file interface disabled for MinGW32 compilation

    v0.14.7 [12-31-12]

    • 11 new cameras supported:
      • Canon 6D and EOS M
      • Casio EX-ZR100
      • Fujifilm X-E1
      • Leica D-LUX6 and V-LUX4
      • Nikon P7700
      • Olympus XZ-2
      • Panasonic G5
      • Samsung EX2F
      • Sony RX-1

    Average review rating :

    Useful independent reviews and opinions of the users

    Review LibRawWrite a review « Be the first to post a review for LibRaw download!

    Predicted future versions and notices:

    The constantly monitors the update of all programs, including information from the LibRaw 0.15.5 changelog file, however sometimes it can happen that data are not complete or are outdated.We assume that author continue's to develop 0.16.0 version with further advanced features, and soon you will be informed. Equally important 1.0.0 upgrades of the program we will continue to monitor. Full LibRaw description has been compared with the overall software database and our algorithm has found the following applications (are showed below).