Warning, /graphics/digikam/core/libs/rawengine/libraw/README.md is written in an unsupported language. File is not indexed.

0001 # LibRaw
0002 ## Library for reading and processing of RAW digicam images
0003 
0004  The LibRaw library provides a simple and unified interface for extracting out of RAW files generated by digital photo cameras the following:
0005 
0006 * RAW data (_pixel values)_
0007 * Metadata necessary for processing RAW (_geometry, CFA / Bayer pattern, black level, white balance, etc.)_
0008 * Embedded preview / thumbnail.
0009 
0010 The library is intended for use with programs that work with RAW files, such as:
0011 
0012 * RAW viewers
0013 * RAW converters
0014 * RAW data analyzers
0015 * Software for stitching and compositing multi-frame aggregates like panoramas and image stacks.
0016 
0017 Using the LibRaw library allows one to focus on the substantive part of processing the data contained in RAW files, without getting distracted by the wide variety of RAW file and metadata formats, compression algorithms, etc.
0018 
0019 The library’s development is focused on:
0020 
0021 * Support for new cameras and formats
0022 * Improving extraction of metadata necessary for RAW processing
0023 * Providing an interface for reading other types of metadata.
0024 
0025 Additionally, the LibRaw library offers some basic RAW conversion, intended for cases when such conversion is not the main function of the LibRaw-using application _(for example: a viewer for 500+ graphic file formats, including RAW)._ These methods are inherited from the Dave Coffin’s dcraw.c utility _(see below the “Project history” section);_ their further development is not currently planned, because we do not consider production-quality rendering to be in the scope of LibRaw’s functionality _(the methods are retained for compatibility with prior versions and for rapid-fire testing of RAW support and other aspects)._
0026 
0027 ## Licensing
0028 
0029 
0030 The LibRaw library is distributed free of charge and with open-source code subject to two licenses:
0031 
0032 1\. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
0033 
0034 2\. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
0035 
0036 To use the LibRaw library in an application, you can choose the license that better suits your needs.
0037 
0038 If you modify/add/improve the LibRaw source code, then your patches can only be included into the library’s official source code if you agree to it being distributed under both of the above licenses.
0039 
0040 We do not guarantee that the licensing will not change in future versions of LibRaw.
0041 
0042 ## Update policy
0043 
0044 
0045 ### Major/minor releases
0046 
0047 * Major releases _(for example, 0.20)_ are published once every year and a half to two years.
0048 * When the first public beta version of a major release is published, the list of supported cameras and formats is frozen; we try (but do not guarantee) to freeze the API/ABI as well.
0049 * The public major release contains only that code which has been sufficiently tested on a wide user base (including in our commercial products). Something very new may not be included in it (but it will probably be included in a public snapshot, see below).
0050 * Minor updates _(0.20.1, 0.20.2…)_ do not change the API/ABI and new cameras are not added; generally they are just bugfixes.
0051 * Bugfixes are published as soon as possible in the [public GitHub repository](https://github.com/LibRaw/LibRaw).
0052 * Minor version increments: these are generally published if a serious error has been fixed, one that potentially affects many library users (for example, a possible stack overflow).
0053 
0054 ### Public snapshots
0055 
0056 * Public snapshots are published every 7-9 months in the [public GitHub repository](https://github.com/LibRaw/LibRaw).
0057 * These versions contain support for new cameras that was added after the previous major release. The API/ABI of public snapshots is not frozen, and may change.
0058 * Public snapshots are always tested on a fairly large user base, and may be considered suitable for use in programs that work with files with known origins (that is, recorded directly by users’ digital cameras). However, public snapshots should not be considered sufficiently reliable for processing files that are specially constructed for vulnerability testing; that is, they should not be used in public services that allow for anonymous processing of files of unknown provenance
0059 
0060 ## Support and feedback
0061 
0062 * You can submit a bug report in one of the following ways:
0063     * [Issues](https://github.com/LibRaw/LibRaw/issues) on GitHub
0064     * The libraw.org [forum](https://www.libraw.org/forum)
0065     * [Feedback form](https://www.libraw.org/contact) on libraw.org
0066     * E-mail us at [info@libraw.org](mailto:info@libraw.org)
0067 * Questions can be asked on the forum, through the feedback form, and via the email indicated above.  
0068     Please do not use Issues on GitHub for questions; it is intended specifically for problem reports.
0069 * We prefer to process additions to the source code via the [Pull Requests](https://github.com/LibRaw/LibRaw/pulls) on GitHub.
0070 
0071 We cannot guarantee any response to requests submitted via the above methods. If you need a guaranteed response for a bug report and/or for extending technical support, please use the Extended Support option.
0072 
0073 ## Project history
0074 
0075 
0076 The LibRaw project was launched in 2008, based on the [dcraw.c](https://www.dechifro.org/dcraw/) (Dave Coffin) utility, with its goals being to:
0077 
0078 * Convert dcraw.c into a library that could be used by other programs, while also somewhat improving the structure of dcraw.c (removing global variables, making it thread-safe, etc.)
0079 * Import changes made to dcraw.c
0080 * Improve/expand the extraction of metadata.
0081 
0082 Unfortunately, support for dcraw.c was reduced to a minimum in 2015, and completely ceased in 2018. Since then, support for new cameras (including support for new formats) has been done entirely by the LibRaw team.
0083 
0084 The code that implements rendering of RAW to RGB is inherited from dcraw.c, without major changes (though a set of changes was implemented to speed up and parallelize this code).
0085 
0086 In the early-to-mid 2010s, we gladly expanded post-processing implemented in LibRaw, and readily accepted the input of outside developers (new/improved methods for debayerization/demosaicing, systematic noise reduction etc.).
0087 
0088 Experience has shown that the LibRaw team cannot support this added code on their own, while contributors do not provide support and development of the code they suggest and it ends up abandoned. As such, the majority of the modifications that are implemented by people outside the LibRaw team was moved to the [LibRaw-demosaic-pack-….](https://github.com/LibRaw?tab=repositories), where they remain in their original form (but these projects are still present in our GitHub).
0089 
0090 Thus, we arrive at our current status, described in the first part of this text.
0091 
0092 ## Copyrights and Acknowledgements
0093 
0094 Copyright (C) 2008-2021 LibRaw LLC
0095 
0096 LibRaw uses code from Dave Coffin’s dcraw.c utility (without RESTRICTED/GPL2 code):
0097 
0098 Copyright 1997-2018 by Dave Coffin, dcoffin a cybercom o net
0099 
0100 LibRaw uses DCB demosaic code by Jaceck Gozdz distributed under BSD license:
0101 
0102 Copyright (C) 2010, Jacek Gozdz (mailto:cuniek@kft.umcs.lublin.pl)
0103 
0104 LibRaw uses Roland Karlsson’s X3F tools source code, licensed under BSD license:
0105 
0106 Copyright (c) 2010, Roland Karlsson (roland@proxel.se)