Releases: AcademySoftwareFoundation/rawtoaces
Releases · AcademySoftwareFoundation/rawtoaces
v2.1.0
This version is API-compatible but not ABI-compatible with the previous versions.
MAIN CHANGES:
- Lens correction. This version introduces lens correction functionality, utilising the lensfun library (adds compile time dependency on lensfun). The following types of lens phenomena are supported: chromatic aberration, distortion, vignetting.
- Adds functionality to fetch missing metadata using exiftool (adds runtime dependency on exiftool).
- Adds in-memory transform cache to speed up conversion of multiple images using the same camera settings.
API changes:
- Adds new properties to the existing classes:
rta::util::ImageConverter::Settings.lens_correction_typesrta::util::ImageConverter::Settings.require_lens_correctionrta::util::ImageConverter::Settings.custom_lens_makerta::util::ImageConverter::Settings.custom_lens_modelrta::util::ImageConverter::Settings.custom_aperturerta::util::ImageConverter::Settings.custom_focal_lengthrta::util::ImageConverter::Settings.custom_focus_distancerta::util::ImageConverter::Settings.disable_cacherta::util::ImageConverter::Settings.disable_exiftoolrta::util::ImageConverter.statusrta::util::ImageConverter.last_error_messagerta::core::SpectralSolver.last_error_message
- Adds new methods to the existing classes:
rta::util::ImageConverter.get_supported_formats()rta::util::ImageConverter.apply_lens_correction()
- Adds an optional parameter
error_messageto the methodrta::core::SpectralData.load()
All changes:
- feat: lens correction #255
- feat: implement transform cache #236
- feat: fetch metadata using ExifTool #242
- improvement: use OIIO RAW extensions for file validation #231
- refactor: refactor error handling to separate library and CLI error messages #237
- refactor: refactor logging, verbosity levels #247, #249, #252
- python: more python bindings for ImageConverter #223
- python: python bindings for core library #248
- doc: implement developer documentation builds #222
- doc: documentation updates #224
- tests: spectral data tests #220
- tests: improve unit test coverage #226, #227, #228, #235, #241
- analysis: implement dynamic analysis #233
- analysis: fix analysis warnings #230, #239, #246
- build: add options to disable unittests and data installation #244
- build: fix build issues #234
- ci: improve caching #225, #232
- ci: CI runners maintenance #240, #243, #245, #253, #254, #256
- admin: add OpenSSF Best Practices badge #238
v2.0.0
Release 2.0.0 (December 8 2025) -- compared to 1.1.0
This version is not API- or ABI-compatible with the previous versions.
MAIN CHANGES:
The core library (rawtoaces-idt):
- The core library has been renamed from
rawtoaces_idttorawtoaces_core. - The
Idtclass has been renamed torta::core::SpectralSolver, the public interface of the class has been cleaned up. Refer to core_usage.cpp for usage examples. - The
DNGIdtclass has been renamed torta::core::MetadataSolver, the public interface of the class has been cleaned up. Refer to util_usage.cpp for usage examples. - Reshaping of spectral data has been added, so camera curves with other than 380..780nm with 5nm step sampling can be used.
- The dependency on boost::json has been removed in favour of nlohmann-json.
The util library (rawtoaces-util):
- The
AcesRenderclass has been renamed torta::util::ImageConverter, the public interface of the class has been cleaned up. - The dependency on Libraw has been removed in favour of OpenImageIO.
- The dependency on AcesContainer has been removed in favour of OpenImageIO.
- The proprietary command line parcer has been replaced with OpenImageIO.
The command line tool (rawtoaces):
- Because of the new command line parser, all command line parameters have been changed. Please refer to
rawtoaces --help, or README for more info. - The switch to using OpenImageIO instead of Libraw directly required us to drop some optional command line parameters, since those options are not exposed in OpenImageIO yet. We had to drop the functionality, like providing black frames or dead pixel masks, etc. We will look at reintroducing those options on the OpenImageIO side in the future, if a need arises. Here is the list of dropped parameters:
-P- bad pixel mask-K- dark frame-j- fuji-rotate-m- median filter-f- four-colour RGB-T- print Libraw-supported cameras-F- use big file-s- image index in the file-G- green_matching() filter
- Functionality added: multiple crop modes supported via
--crop-mode. - Functionality added: specify output directories via
--output-dir. - Functionality added: automatically create missing output directories via
--create-dirs. - Functionality changed:
rawtoacesdoes not overwrite existing files by default any more. Use--overwriteto override.
Other:
- Removed dependencies: boost, Libraw, AcesContainer.
- Added dependencies: OpenImageIO, nlohmann-json.
- The data files are now being installed into
/usr/local/share, not/usr/local/include. The old path is still being resolved for backward compatibility. - The database (external rawtoaces-data repo) dependency has been switched to v1.0.0, which changes the data schema version to v1.0.0 and adds multiple new camera measurements, see
All changes:
- feat: implement a data class for storing spectral curves, replace boost:json with nlohmann-json #164
- feat: add
--data-dirargument andautomatrix method #189 - feat: Python bindings - WIP, not fully functional yet #205, #208
- api: further tweaks to the public API #178, #183, #215, #219
- api: switch to rawtoaces-data v1.0.0 which also bumps the supported data schema version to v1.0.0 #221
- fix: install to /usr/local/share, not /usr/local/include #172
- fix: reading of data folders from env #171
- fix: fix command line parsing error 186
- refactor: remove dependency on Libraw from the core library #162
- refactor: rename rawtoaces_idt to rawtoaces_core #160
- refactor: cleanup public interfaces #159, #169, #173
- refactor: refactor the usage timer #165, #166
- deps: replace libraw and aces_container with OIIO #167
- deps: replace proprietary command line parser with OIIO #168
- deps: replace boost::unittest with oiio::unittest #170
- deps: replace boost::filesystem with std::filesystem #161
- ci: fix CI broken on aswf-2024+ images #163
- ci: various CI fixes #179, #209, #210, #213, #214, #217
- ci: improve Windows CI performance by caching #218
- tests: improve unittest coverage #190, #192, #193, #194, #200, #207, #212, #216
- tests: test coverage report with badge and logo by #188
- analysis: add static analysis #206, #211
- build: fix build issues caused by the order of OIIO includes #198
- cleanup: code cleanup #174, #182, #185, #195, #197
- admin Add CONTRIBUTING and other documents #199
v1.1.0
Release 1.1.0 (August 11 2025) -- compared to 1.0.0
- feat: Implement custom matrix mode #109
- fix: Incorrect XYZ to ACES matrix #108
- fix: Build issues with libraw 0.20.0 #120, #127
- fix: Remove hardcoded path #133
- fix: Fix math error in matrix multiplication #135
- admin: The codebase has been re-licenced to the Apache licence v2.0 #147
- admin: The data files have been split into a separate repository #149, #113
- admin: Switch from AMPAS_DATA_PATH to RAWTOACES_DATA_PATH environment variable #156
- docs: various changes to README.md #107, #110, #119, #145, #148, #152
- ci: various changes and fixes to the CI runners #129, #130, #132, #140, #146
- build: Add docker container #118, #131, #142
- build: various changes and fixes to the cmake scripts #96, #128, #151, #153, #154, #158
- build: clang-format #126
- build: headers cleanup #134