AcademySoftwareFoundation / AcademySoftwareFoundation/OpenImageIO
feat: Color Interop IDs and related color space improvements
- Dominant language
- C++
- Stars
- 2.4k
- Forks
- 698
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 47
Description
Discussion is happening in #4787 and various pull requests. This is an issue to keep track of concrete tasks and design decisions (not as another place for discussion).
### Color Interop IDs
* [x] Scene referred color interop IDs support in I/O
* [x] #4971
* [x] #5387
* [x] #5388
* [x] #5390
* [x] #5391
* [x] #5396
* [ ] Refactor reading color space metadata to share logic
* [ ] Prefer display color space interop IDs when reading files?
* [ ] Treat g22_rec709_display as sRGB rather than gamma 2.2?
* [ ] Do or do not write interop IDs for scene referred?
* [ ] Default to scene referred interop IDs for texture system and maketx?
* [ ] Preference as `config` instead of global attribute, for multithreaded apps
* [ ] Change texture system defaults? But how, `ImageCache` is used for other things.
* [ ] Changes needed for namespaced interop IDs
* [ ] Look up interop IDs in default config if current config does not have them
### Color Space Metadata
* OpenEXR `colorInteropID`
* [x] Read support
* [x] #4967
* CICP
* [x] #4964
* [x] PNG support
* [x] HEIF support
* [x] #4968
* [ ] Handle more interop IDs through custom primaries, white point and gamma.
* [ ] Ultra HDR support
* [x] Write scene linear spaces as half (#5335)
* [ ] Write PQ and HLG as integer
* [ ] Supply separate SDR and HDR images
* ICC profiles
* [ ] Use ICC profile associated with color spaces in OCIO 2.5 configs in image writing
* [ ] Bundle ICC profiles for display interop IDs and automatically write them to file?
* [ ] Read `cicpTag` from ICC profile, or other ways to detect interop ID from ICC profile?
* [ ] Determine interop ID from ICC profile by comparing OCIO transforms?
* [ ] Deferred and unified resolution of color interop ID from metadata
### HDR Metadata
* [ ] Mastering Display Color Volume metadata read and write
* [ ] HDR reference white metadata read and write (SMPTE ST 2094-50)
Contributor guide
Research direction
Start by reading discussion #4787 and the listed related pull requests, then choose one unchecked color interop, metadata, or HDR task. The issue names no files, tests, or entry points; done would require narrowing a task, recording the design decision, and adding the corresponding implementation and validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100