What parameters and equations define ACES 2.0 chroma compression, gamut compression and the AP1 reach mode, and where do the docs and the reference code differ?
Corrected 2026-10-23 - see C3-B686-01; the original statements below are kept for history and are superseded where the correction says so. At aces-docs 7c34c210 and aces-core 069b0bc3, chroma-compression constants agree between docs and CTL (1.3, 0.69, 0.5, 2.4, 3.3 with log10(peak/100) scaling), but the gamut-compression docs describe a constant lower-hull gamma of 1.14 and an unscaled focusDistance while the CTL computes lower_hull_gamma = 1.14 + 0.07*log_peak and scales focus distance with log_peak; the gamma change dates from aces-core commit cd5017c5 (30 Aug 2024, CA-B095).
At aces-docs 7c34c210 and aces-core 069b0bc3, chroma-compression constants agree between docs and CTL (1.3, 0.69, 0.5, 2.4, 3.3 with log10(peak/100) scaling), but the gamut-compression docs describe a constant lower-hull gamma of 1.14 and an unscaled focusDistance while the CTL computes lower_hull_gamma = 1.14 + 0.07*log_peak and scales focus distance with log_peak; the gamma change dates from aces-core commit cd5017c5 (30 Aug 2024, CA-B095).
Curator correction 2026-10-23 (discovery audit record C3-B686-01; sources re-fetched 2026-10-23, excerpts re-located by curator GET): Problem. C2-B57-K1-04 describes chroma compression as using 'fixed constants (expand 1.3, compress 2.4 ...)' and cites a 'power-p curve p=1.0' and the docs. Conditions. Anyone implementing or porting the ACES 2.0 output transform from the reference CTL at aces-core 069b0bc. Method. Re-read the CTL: chroma_expand 1.3 and chroma_compress 2.4 are base constants only; the values actually used are derived per peak luminance (p.sat = max(0.2, chroma_expand - chroma_expand*chroma_expand_fact*log_peak); p.compr = chroma_compress + chroma_compress*chroma_compress_fact*log_peak), so 'fixed' is overstated. The 0.75 compression threshold, 1.14/0.07 lower-hull gamma and focus-distance scaling in the earlier finding do match the CTL. The gamut remap in the CTL is a threshold plus reinhard_remap; the phrase 'power-p, p=1.0' and every statement about what 'the docs' say come from documents that are not among the four cited URLs (all CTL or OCIO code), so they are unverified from the cited sources. Failure modes. Treating 2.4 and 1.3 as the final values gives wrong chroma compression for any peak other than the 100-nit base. Limitations. I did not re-fetch the ACES docs, so I cannot say whether the docs statements are right, only that they are not backed by the cited URLs. Version and date. aces-core 069b0bc, read 2026-10-23.
Curator qualifications: Gamut-compression invertibility, reach mode and OCIO v2.5.0 parity (E6-E9, F2-F3) not reinspected. Whether newer aces-docs commits fixed the text was not checked. Static reading only; no transform evaluated.
Limitations: Static reading only; no transform evaluated.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://raw.githubusercontent.com/aces-aswf/aces-core/069b0bc3e1f6c62820f19fdae2fecec3f4fc0f80/lib/Lib.Academy.OutputTransform.ctl",
"note": "aces-docs chroma-compression/index.md lines 140-190 at 7c34c210; Lib.Academy.OutputTransform.ctl lines 74-78, 1653-1661 at 069b0bc3; gamut-compression/index.md lines 79, 214"
},
{
"url": "https://raw.githubusercontent.com/AcademySoftwareFoundation/OpenColorIO/592a122b37467c3376f2387fbbdbe7b571fad39f/src/OpenColorIO/ops/fixedfunction/ACES2/Transform.cpp",
"note": "aces-docs chroma-compression/index.md lines 140-190 at 7c34c210; Lib.Academy.OutputTransform.ctl lines 74-78, 1653-1661 at 069b0bc3; gamut-compression/index.md lines 79, 214"
},
{
"url": "https://raw.githubusercontent.com/aces-aswf/aces-docs/7c34c2100c8da55cd6f94301125d57e38079fc62/docs/system-components/output-transforms/technical-details/chroma-compression/index.md",
"note": "aces-docs chroma-compression/index.md lines 140-190 at 7c34c210; Lib.Academy.OutputTransform.ctl lines 74-78, 1653-1661 at 069b0bc3; gamut-compression/index.md lines 79, 214"
},
{
"url": "https://raw.githubusercontent.com/aces-aswf/aces-docs/7c34c2100c8da55cd6f94301125d57e38079fc62/docs/system-components/output-transforms/technical-details/gamut-compression/index.md",
"note": "aces-docs chroma-compression/index.md lines 140-190 at 7c34c210; Lib.Academy.OutputTransform.ctl lines 74-78, 1653-1661 at 069b0bc3; gamut-compression/index.md lines 79, 214"
}
]
}Evidence claims
- [sourced_fact] At aces-docs 7c34c210 and aces-core 069b0bc3, chroma-compression constants agree between docs and CTL (1.3, 0.69, 0.5, 2.4, 3.3 with log10(peak/100) scaling), but the gamut-compression docs describe a constant lower-hull gamma of 1.14 and an unscaled focusDistance while the CTL computes lower_hull_gamma = 1.14 + 0.07*log_peak and scales focus distance with log_peak; the gamma change dates from aces-core commit cd5017c5 (30 Aug 2024, CA-B095). · locator: aces-docs chroma-compression/index.md lines 140-190 at 7c34c210; Lib.Academy.OutputTransform.ctl lines 74-78, 1653-1661 at 069b0bc3; gamut-compression/index.md lines 79, 214 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://raw.githubusercontent.com/AcademySoftwareFoundation/OpenColorIO/592a122b37467c3376f2387fbbdbe7b571fad39f/src/OpenColorIO/ops/fixedfunction/ACES2/Transform.cpp
- cites → https://raw.githubusercontent.com/aces-aswf/aces-core/069b0bc3e1f6c62820f19fdae2fecec3f4fc0f80/lib/Lib.Academy.OutputTransform.ctl
- cites → https://raw.githubusercontent.com/aces-aswf/aces-docs/7c34c2100c8da55cd6f94301125d57e38079fc62/docs/system-components/output-transforms/technical-details/chroma-compression/index.md
- cites → https://raw.githubusercontent.com/aces-aswf/aces-docs/7c34c2100c8da55cd6f94301125d57e38079fc62/docs/system-components/output-transforms/technical-details/gamut-compression/index.md