LR-HDR-EXPORT: HDR AVIF (10-bit Rec. 2020 PQ)

`encode_avif_pq`: linear Rec. 2020 with SDR white at 1.0 → PQ (SDR white at
203 cd/m², BT.2408), BT.2020 NCL YCbCr 4:4:4, 10-bit, with CICP nclx
(9/16/9, full range) and a clli box. ravif fixes the sRGB curve, so this
drives the rav1e + avif-serialize it already uses (no new crates).

Export: AVIF with `hdr` renders the HDR edit in Rec. 2020 and writes PQ.
Photos without an HDR edit export as before, in every format. CoreImage
decodes the file as HDR (same 3.1 % of the frame above SDR white as the gain
map JPEG of the same edit).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
akvaithi
2026-10-09 22:40:37 -05:00
co-authored by Claude Opus 5.5
parent af06f2dbc1
commit 7828f93c32
12 changed files with 203 additions and 23 deletions
Generated
+2
View File
@@ -3026,6 +3026,7 @@ dependencies = [
name = "lightcraft-codecs"
version = "0.5.0"
dependencies = [
"avif-serialize",
"bytemuck",
"image",
"image-webp",
@@ -3039,6 +3040,7 @@ dependencies = [
"moxcms 0.9.1",
"png",
"proptest",
"rav1e",
"ravif",
"rayon",
"serde",