Any copyright is dedicated to the Public Domain. https://creativecommons.org/publicdomain/zero/1.0/ All images here are either exported directly from Lightroom Classic 15.3 on Mac or exported from Lightroom Classic 15.3 on Mac and then postprocessed possibly by exiftool and cjxl 0.11.2. 2020-pq-limit*-recompressed.jxl corresponds most closely to my usual workflow and, therefore, is the case I care about the most. I expect p3-gainmap-* to also be of interest to folks, since it conceptually it corresponds what iPhone has been doing albeit in a different format. I'm using Rec. 2020 primaries with PQ instead of P3 primaries, because in my testing when HDR support in Lightroom Classic was new and JPEG XL support in Apple Photos was new, indicated that Rec. 2020 primaries worked consistently but P3 primaries with PQ exhibited bugs on some Apple devices but not others. Also, at the time the WWDC examples for converting from Display P3 + gain map used Rec. 2100 as the expansion target. When generating an SDR image using Rec. 2020 primaries, including as the base image with a gain map, Lightroom Classic uses the Rec. 709 transfer function instead of the sRGB transfer function. This seems more bug-prone than Display P3 with gain map. # Legend 2020: Rec. 2020 / Rec. 2100 primaries p3: P3 primaries srgb: sRGB / Rec. 709 primaries pq: PQ transfer function with BT.2408 (203 PQ nits) reference white gainmap: SDR base image (sRGB tranfer function with P3 primaries and Rec. 709 transfer function with Rec. 2020 primaries) plus gain map limit2_3: Lightroom Classic's default HDR limit of 2.3 stops over SDR white limit3: HDR limit of 3 stops over SDR white, which matches Apple's "HDR Photography" preset per the Studio Display XDR whitepaper limit4: HDR limit of 4 over SDR white, which matches what Lightroom Classic can show in its histogram limit8: The highest limit permitted by Lightroom Classic. AFAICT, this is effectively no limit but PQ itself, since with 203-nit reference white the 10000-nit limit of PQ is somewhere between 5 and 6 stops over SDR white if I'm doing the math correctly. -modular.jxl: Lossless modular mode JPEG XL directly from Lightroom Classic. -vardct.jxl: Lossy (quality 84) VarDCT JPEG XL directly from Lightroom Classic. -recompressed.jxl: My workflow: Export from Lightroom Classic as VarDCT JPEG XL with quality 100, metadata rewritten by exiftool, and the result recompressed with cjxl distance 1.4 and effort 8. -viapng.jxl: Export from Lightroom Classic as PNG recompressed cjxl distance 1.4 and effort 8. This flow doesn't get JPEG XL HDR metadata from Lightroom Classic. Instead, cjxl set intensity_target to the PQ maximum of 10000 nits. .avif: Lossy AVIF (quality 90) directly from Lightroom Classic.