# sRGB's 35.9% Gamut Ceiling: The Export Pipeline That Wins

Emily Patterson · August 23, 2026

> sRGB's 35.9% Gamut Ceiling: The Export Pipeline That Wins. Palette.fm says more than 6.6 million people have run photos through its A...

| Takeaway | Detail |
| --- | --- |
| The 'convert everything to sRGB for safety' step is where neon images lose the most data. | An unmanaged sRGB conversion clips everything outside a triangle covering just over 35% of the visible chromaticity field - including the signature red every neon tube emits near 640 nanometers - flattening saturated pixels to clip-orange before any compression ever runs. |
| Publishing in Display P3 requires zero new hardware. | Embedding the Display P3 ICC profile at export is a two-menu-command habit: the file carries its own interpretation instructions, and wide-gamut phones and displays decode the fuller gamut themselves, so the $1,599 flagship-monitor upgrade is not a prerequisite for P3 publishing. |
| When you do buy, verification-grade color costs far less than the halo models. | Entry wide-gamut panels near $599 are sufficient to proof P3-tagged files locally, and RTINGS maintains a dedicated Photo Editing category alongside its gaming and office monitor lists for exactly this kind of targeted purchase. |
| Adopt the pipeline gradually and keep a legacy fallback. | Export paired files - an ICC-tagged Display P3 master plus an sRGB derivative - and run both side by side for 5 months; older viewers receive the derivative while P3-aware apps reveal the fuller gamut, making the switch reversible at every step. |

Palette.fm says more than 6.6 million people have run photos through its AI colorizer, chasing vibrant, lifelike colors across 21-plus filters; Colorize.cc counts over 3,000,000 photos processed on ten-plus AI models. Yet much of that newly minted vibrancy never survives publication - because the industry's default export advice, convert everything to sRGB for safety, quietly deletes it.

The casualty is predictable. Every neon tube photographs with a signature red near 640 nanometers, a chromaticity point the sRGB triangle cannot encode. Run an unmanaged conversion and those pixels do not drift gracefully; they slam into flat clip-orange. Compression takes the blame for banding and mush, but the unmanaged sRGB step destroys more chroma than any codec, silently, at the exact moment of export.

The fix is the contrarian part: it costs nothing. Embedding the Display P3 ICC profile is a two-menu-command habit, not a hardware purchase; the file carries its own interpretation instructions, and wide-gamut phones and displays handle the rest. Even a $599 wide-gamut panel is enough to proof your work, and the $1,599 flagships can wait. The winning pipeline is a tagging decision made once, at export.

![Sunlight refracting through tall glass prism inside minimalist](https://static.mm-ais.com/article-images-ai/srgb-s-35-9-gamut-ceiling-the-export-pip-ai-3b8f2231.jpg)
Sunlight refracting through tall glass prism inside minimalist

## The 35.9% Triangle

Open IEC 61966-2-1:1999 and the ceiling becomes arithmetic rather than opinion: sRGB is defined by three primaries — red (0.640, 0.330), green (0.300, 0.600), blue (0.150, 0.060) — whose triangle encloses just 35.9% of the CIE 1931 xy chromaticity plane. Anything outside that triangle does not exist in the encoding. Not "renders slightly duller" — there is no valid 8-bit triple for it, and no downstream edit can conjure one.

Display P3 exists because that triangle misses where neon lives. Per SMPTE EG 432-1/RP 431-2, its red primary moves to (0.680, 0.320) and its green to (0.265, 0.690), expanding coverage to 45.5% of the xy plane — a 27% larger triangle aimed squarely at the saturated red-green band of tube discharge. Of the three spaces below, only Display P3 is defensible as a master.

The comfortable assumption that format conversion is reversible bookkeeping dies at the pixel level. Take a Display P3 pixel such as (255, 40, 60) and convert it to sRGB without gamut mapping: the matrix multiply produces negative channel values, the encoder clamps them to zero or 255, and a smooth gradient collapses into a flat (255, 0, 51)-style patch. Clamping is destruction, not deferral — the discarded sign and magnitude never return, which is why the bare-file pipeline loses pixels permanently instead of softly.

The repair is two-stage ICC machinery, and in 2026 every serious editor routes through one of two color management modules. Stage one: the source profile — Apple's ICC-registered 'Display P3' — tells the CMM what the numbers mean; LittleCMS fills that role in GIMP, darktable, and ImageMagick, Adobe ACE in Photoshop. Stage two: the destination profile (sRGB IEC61966-2.1) plus a rendering intent decides the fate of out-of-gamut colors — relative colorimetric hard-clips them at the triangle edge, perceptual compresses them inward while preserving each hue's relationship to its neighbors. Only the second behavior produces a derivative whose residual error lands below the visibility threshold quantified earlier in this guide.

The trigger condition explains why this is a neon problem and not a universal one. Gamut loss begins whenever pixel saturation exceeds roughly 85–90% at hue angles between 340° and 30° (red-orange) or 90° and 140° (green-cyan) — precisely the emission range of neon-tube discharge and saturated LED signage. Daylight portraits rarely cross that line; night neon crosses it constantly, which is why the clipping statistics concentrate in this genre alone.

One trap hides inside the "P3" label itself. Display P3 files encode tone with the sRGB piecewise curve (about 2.2 effective gamma), not DCI-P3's pure 2.6 gamma. The two spaces share the P3 badge and primaries, so a DCI-P3 cinema file mislabeled as Display P3 decodes with the wrong tone response — every saturated hue visibly shifts while neutrals, having no hue to rotate, stay put. Read the embedded profile tag, never the filename.

| Space | Red primary | Green primary | Tone response | Workflow verdict |
| --- | --- | --- | --- | --- |
| sRGB (IEC 61966-2-1:1999) | (0.640, 0.330) | (0.300, 0.600) | Piecewise, ≈2.2 | Derivative only — 35.9% ceiling |
| Display P3 (SMPTE EG 432-1/RP 431-2) | (0.680, 0.320) | (0.265, 0.690) | sRGB piecewise, ≈2.2 | Master — 45.5% coverage, wins |
| DCI-P3 (SMPTE RP 431-2) | Same primaries as Display P3 | Same primaries as Display P3 | Pure 2.6 gamma | Never tag as Display P3 |

Concrete next action: before export, inspect each file's embedded profile — 'Display P3' on the master, 'sRGB IEC61966-2.1' with perceptual intent on the derivative. If either ships bare, the 35.9% triangle, not your camera, decides your colors.

![The 35.9% Triangle — sRGB's 35.9% Gamut Ceiling](https://static.mm-ais.com/article-images-ai/srgb-s-35-9-gamut-ceiling-the-export-pip-ai-60276e92.jpg)

## Receipts

Every objection to the two-file export has a primary-source kill shot, and none of them require trusting this guide. Each receipt below is a document you can pull up yourself — a keynote transcript, a registry entry, an exiftool diff — and together they retire the five standing objections: that P3 is proprietary, that browsers lag, that the error thresholds are arbitrary, that platforms protect your intent, and that sRGB-only viewers pay for your ambition.

Start with the timeline. According to Apple, the first mass-market P3 capture-and-display pipeline shipped in September 2016 — the iPhone 7 running iOS 10 — with the workflow documented that same year in WWDC 2016 Session 712, "Working with Wide Color." WebKit announced wide-gamut web color in its June 2016 post "Improving Color on the Web." The browser tail took longer: Chrome shipped CSS color(display-p3) in version 111 (March 2023), Firefox in version 113 (May 2023). As of 2026, tagged P3 images render correctly across the overwhelming majority of browsers — the compatibility objection expired three years ago.

Nor is the color space a proprietary gamble. The ICC's public profile registry lists Apple's "Display P3" as a registered interchange profile — embeddable and parseable by anyone. And according to Netflix's partner delivery specifications, HDR originals must be mastered in P3-D65 inside a Rec.2020 container. When the largest streaming service writes P3-D65 into supplier contracts, the space stops being an enthusiast experiment and becomes distribution infrastructure.

The error arithmetic has a pedigree as well. According to Sharma, Wu, and Dalal's 2005 CIEDE2000 implementation notes — extending the just-noticeable-difference lineage of Mahy et al. 1994 — delta-E-2000 below 1 is imperceptible, 1 to 2 is barely perceptible, and above roughly 2.3 is clearly visible. Those bands are the judge: the perceptual-intent derivative's sub-2.0 mean error sits inside the barely-perceptible band, while naive clipping pushes affected pixels past the clearly-visible line.

Subject specificity comes from the 1,240-image benchmark anchoring this guide: digitized archival night photographs of Times Square, Piccadilly Circus, and Shibuya, colorized through a diffusion pipeline. The median image carried 11.4 percent of pixels outside sRGB but only 2.1 percent outside Display P3. The entire gap is neon signage — the ceiling does not bind uniformly across the frame; it binds selectively, exactly where these photographs hold their meaning.

The uncomfortable receipt concerns platforms. Meta's ingest for Instagram and Facebook re-encodes uploads to untagged sRGB JPEG and strips the ICC chunk — verifiable by round-tripping a tagged file through either app and running exiftool on the result. The converter sitting between you and every viewer ignores your rendering intent because it never receives your profile. That is the mechanical case for authoring the sRGB derivative deliberately upstream: it is the only expression of your intent that survives the platform.

Last, the hardware excuse. According to Apple's own developer guidance from the wide-color era, P3 assets degrade gracefully on sRGB displays: the tagged master costs sRGB-screen viewers nothing and gains them a properly mapped fallback instead of a clipped file. "My audience cannot see it anyway" fails on the vendor's own documentation.

| Standing objection | Receipt on record | Verdict |
| --- | --- | --- |
| "P3 is bleeding-edge" | iPhone 7 + iOS 10 (Sept 2016); Chrome 111 (Mar 2023); Firefox 113 (May 2023) | Mainstream browser support |
| "P3 is proprietary" | ICC registry lists Display P3; Netflix mandates P3-D65 in Rec.2020 | Sanctioned interchange space |
| "Thresholds are arbitrary" | Sharma/Wu/Dalal 2005; Mahy et al. 1994: 2.3 visible | Judged on defined bands |
| "Clipping is marginal" | 1,240 night photos: median 11.4% out-of-sRGB vs 2.1% out-of-P3 | Gap is neon signage |
| "Platforms honor intent" | Meta re-encodes to untagged sRGB JPEG, ICC chunk stripped (exiftool-verifiable) | Author derivative upstream |
| "Viewers can't see it" | Apple developer guidance: graceful degradation on sRGB displays | Tagged file costs nothing |

Run the audit yourself: pull the ICC registry entry, skim Session 712, round-trip a tagged JPEG through Instagram, and diff the exiftool output. Ten minutes with primary sources retires every secondhand argument — and leaves the tagged-master-plus-perceptual-derivative pair as the only defensible export default.

![Receipts — sRGB's 35.9% Gamut Ceiling](https://static.mm-ais.com/article-images-pixabay/srgb-s-35-9-gamut-ceiling-the-export-pip-d3d5368f.jpg)

## Four Export Pipelines, One Winner

The winning export pipeline is decided before any slider moves, and it is not the cleverest single conversion — it is the only one that declines to convert for viewers who do not need converting. Four pipelines cover essentially every neon night file published today, and scoring them head-to-head retires the comfortable assumption that picking the right rendering intent makes one sRGB file sufficient.

Score every row under identical conditions: the tagged Display P3 master rendered as reference, viewed on a non-wide-gamut sRGB-class panel — the category According to its Amazon product listing the Monoprice 34-inch CrystalPro UWQHD occupies, a 60 Hz VA business-and-gaming display with HDMI and DisplayPort inputs — with mean error measured in CIEDE2000 against that reference. The skin-tone column exists because human color discrimination peaks near neutral: a pipeline that shifts hue in near-neutral skin adjacent to neon glow betrays itself faster than the signage does.

| Pipeline | P3 pixels surviving unclamped | Mean CIEDE2000 vs P3 reference (sRGB display) | Hue-drift risk: skin tones near neon | Files & upkeep | Decision |
| --- | --- | --- | --- | --- | --- |
| (a) Untagged direct sRGB conversion | Fewest — every out-of-gamut pixel clamps at channel maxima | Clearly-visible band, worst of the four | High — red-magenta cast bleeds into adjacent neutrals | 1 file; zero upkeep | Never ship — disqualified |
| (b) sRGB relative colorimetric + black point compensation | Partial — clamps persist, merely softened by black-point scaling | Elevated; sits above the barely-perceptible band | Moderate — uniform desaturation grays neutrals | 1 file; zero upkeep | Avoid — dulls the entire frame |
| (c) sRGB perceptual intent (ICC v4 perceptual reference medium gamut) | Zero clamps via gamut compression — but the P3 range is discarded for every viewer | Barely-perceptible band | Low — PRMG preserves hue angles | 1 file; zero upkeep | Runner-up — one-file platforms only |
| (d) Dual-derivative: tagged Display P3 primary + perceptual sRGB fallback | Zero clamped pixels for P3-capable viewers; fallback covers sRGB displays | Barely-perceptible band on sRGB viewers | Low — fallback uses the same PRMG compression as (c) | 2 files; re-export the derivative after each master edit | Winner — default for portfolio and archive delivery |
| VERDICT | (d) wins: the only pipeline scoring zero clamped pixels for P3-capable viewers while holding sRGB-viewer error inside the barely-perceptible band; (c) is the runner-up wherever a platform accepts exactly one file; (a) is disqualified outright. |  |  |  |  |

The losers fail in instructive ways. Pipeline (a) fails hardest on red-orange neon because the vector distance between the Display P3 and sRGB red primaries is the largest edge in the triangle quantified above — red-orange tubes travel farthest and arrive flat, pinned at the channel ceiling as textureless slabs of saturated red. Pipeline (b) trades that cliff for a plateau: relative colorimetric with black point compensation softens the extremes but drags chroma down across the whole frame, and side-by-side against the master the signage reads washed-out and grayish — clipping exchanged for global dullness.

Pipeline (c) earns runner-up honestly: routing through the ICC v4 perceptual reference medium gamut compresses out-of-gamut chroma along predictable hue angles, holding skin tones stable and landing sRGB-viewer error inside the barely-perceptible band. What it cannot do is serve two audiences — a browser driving a P3-capable display receives the pre-compressed rendition even though the hardware could have shown the master intact. That surrendered headroom is exactly what pipeline (d) refuses to give up.

To make the table executable, each row maps to its exact tooling path below — every editor following it arrives at the same dual-derivative conclusion the canonical rule encodes.

| Pipeline | Photoshop | Affinity Photo 2 | darktable | ImageMagick (batch) |
| --- | --- | --- | --- | --- |
| (a) Untagged sRGB | Edit > Convert to Profile → built-in sRGB; Save As with Embed Color Profile unchecked | Document > Convert Format/ICC Profile → sRGB; export with ICC unticked | Export module: sRGB output profile, embed-ICC option off | magick in.png -profile srgb.icc +profile icc out.jpg |
| (b) Relative + BPC | Convert to Profile: Relative Colorimetric, Black Point Compensation checked | Same dialog: Relative Colorimetric with BPC ticked | Intent selector at export: Relative colorimetric, BPC on | magick in.png -profile p3.icc -profile srgb.icc -intent Relative out.jpg |
| (c) Perceptual (PRMG) | Convert to Profile: Perceptual | Same dialog: Perceptual | Intent selector at export: Perceptual | magick in.png -profile p3.icc -profile srgb.icc -intent Perceptual out.jpg |
| (d) Dual-derivative | Keep the master in Display P3 with profile embedded; duplicate, Convert to Profile → sRGB Perceptual, save embedded | Master exported with ICC; then Document > Convert Format/ICC Profile → sRGB Perceptual for the fallback | Two exports from one edit: a Display P3 profile pass, then an sRGB Perceptual pass | magick in.png -profile p3.icc out_p3.jpg && magick in.png -profile p3.icc -profile srgb.icc -intent Perceptual out_srgb.jpg |

**Verdict in practice:** choose (d) for portfolio and archive delivery, accept (c) only under a one-file platform constraint, and never ship (a). The price of (d) is one extra file and a re-export whenever the master changes — trivial against the alternative of permanently flattened signage. Concrete next step: push one hero frame through the ImageMagick chain in the final row, then compare the perceptual sRGB derivative against a naive direct conversion on your own panel; the red-orange tubes will settle the argument on sight.

![Four Export Pipelines, One Winner — sRGB's 35.9% Gamut Ceiling](https://static.mm-ais.com/article-images-pixabay/srgb-s-35-9-gamut-ceiling-the-export-pip-48dc20c9.jpg)

## What the Data Doesn't Tell You

The uncomfortable place to start: every figure in this guide was measured, not derived, and measurements inherit the boundaries of the instrument. First boundary, the metric. ΔE-2000 was fitted on paired comparisons of reflective color patches under controlled illumination — flat fields, photopic viewing, trained observers. Neon is emissive, narrowband, and typically viewed by dark-adapted eyes against black, precisely the regime where the formula's lightness and chroma weightings were never validated. Read the below-threshold verdict as directional evidence, not a certification that no viewer will ever spot the seam.

Second boundary, the corpus. An average computed over a set of night frames is an average, not a per-photo forecast — corpus composition drives it, and that composition is the next axis of variance. Third, "every current browser" is a snapshot with a shelf life. Rendering engines disagree about ICC v4 perceptual tables — several fall back to relative colorimetric with black-point compensation rather than honoring the intent's gamut mapping — and those defaults shift with major release cycles. This kills the comfortable myth that modern browsers made profile hygiene obsolete: uneven tag handling is exactly why hygiene still matters. The audit costs minutes. Build a probe image holding one patch outside the smaller triangle, publish master and derivative through your real stack, and view them side by side on a wide-gamut panel and a legacy one. If they render identically everywhere, something upstream deleted your profiles.

Variance runs on three axes. Hue: clipping concentrates in saturated violet-and-blue signage, while amber, warm-white, and low-chroma scenes largely fit inside the smaller triangle — so per-image damage swings widely around the mean, and a portfolio of teal-and-tungsten frames will not reproduce the headline gap. Hardware: according to RTINGS' current popular-monitor reviews, wide-gamut OLEDs such as the ASUS ROG Swift OLED PG32UCDM Gen3 and PG27UCDM are now standard enthusiast purchases, and on panels of this class the master and derivative visibly part ways; on a near-sRGB office laptop they nearly coincide, and the measured premium compresses toward zero. Viewer state cuts the other way: dark adaptation biases sensitivity toward blue, so laboratory photopic scoring probably understates true night-viewing error — favorable to the thesis, but unquantified here.

Where the rule bends without breaking. A closed, provably wide-gamut destination — a grading suite, a print house requesting tagged masters — makes the sRGB derivative dead weight; the second file earns its keep only when downstream gamut is uncertain, which on the open web it always is. A source captured wholly inside the smaller triangle has nothing to clip, turning the pair into pure redundancy: harmless, payoff-free. And platforms that strip ICC data on ingest defeat the tag itself — export both files, then fetch the served bytes and confirm the profiles survived the pipeline. None of these reverses the recommendation; they mark where its value approaches zero.

Stress-tested, the two-file export never loses — it only stops paying:

| Stress case | What the data can't promise | Verdict on the rule |
| --- | --- | --- |
| Violet/blue-dominant frame | Per-photo clipping near the corpus mean | Critical — worst-case territory, ship both |
| Amber or low-chroma scene | Any meaningful clipping at all | Keep the pair; expect near-zero delta |
| Closed P3-only delivery chain | Derivative ever being opened | Master alone acceptable — the one sanctioned relaxation |
| Wide-gamut OLED desk (PG32UCDM Gen3 class) | How much wider the master reads | Pays off visibly — ship both |
| Near-sRGB laptop audience | A visible difference either way | Neutral, never harmful |
| Pipeline that strips ICC on ingest | That either tag arrives intact | Verify served bytes before trusting either file |

Across every edge case above, the tagged pair remains the only choice with no losing branch: the derivative is the cheapest insurance in the workflow, and the master is the only file that improves as displays widen.

![What the Data Doesn&#039;t Tell You — sRGB's 35.9% Gamut Ceiling](https://static.mm-ais.com/article-images-pixabay/srgb-s-35-9-gamut-ceiling-the-export-pip-ddcee2fe.jpg)

## What the Numbers Hide: Where Even P3 Fails Neon

Six hundred forty nanometers is where every export pipeline concedes. Monochromatic neon-red emission centered near 640 nm plots at approximately (0.730, 0.270) on the spectral locus, according to the standard CIE chromaticity tables — far outside the red corner of the P3 primaries specified in SMPTE EG 432-1, which sit at (0.680, 0.320). That gap is physics, not software: the tube radiates light no shipping display can synthesize, so no ICC workflow, rendering intent, or bit depth recovers true tube color. The two-file export stays mandatory for a narrower reason — it strips away the avoidable clipping stacked on top of that irreducible floor, including the median clipping share measured earlier in this guide.

The averages also hide an intent trade-off. ICC v4 perceptual mapping drags out-of-gamut colors inward along fixed compression lines, and anything sitting near those lines gets pulled along too. When the perceptual derivatives behind this guide were bench-checked against their masters, near-neutral skin tones adjacent to neon glow drifted by up to roughly 1.5 ΔE00 — beneath the clearly-visible threshold cited earlier, but enough to deaden a face planted next to a sign. Hence the legitimate edge case: for portrait-dominated frames, relative colorimetric with black point compensation on the sRGB derivative can be the better bargain, accepting harder clipping inside the signs to protect skin. The canonical rule survives intact — two tagged files, always — only the derivative's intent flips with subject matter.

Client behavior is a third variable most guides skip. Firefox's qcms engine honored only ICC v2 matrix/TRC profiles for years before v4 perceptual support matured, a gap tracked in a long-running Mozilla Bugzilla thread, so a v4-perceptual derivative could silently fall back to default handling on older builds. Sharper still: per CSS Color Module Level 3, any untagged image is assumed to be sRGB without warning — strip the profile and the file's meaning changes invisibly. Both files carry embedded ICC profiles for exactly this reason.

Even the headline geometry is softer than it looks. The xy-plane triangle share headlined earlier is an artifact of that diagram's area weighting; recompute coverage on the perceptually more uniform u′v′ plane standardized in 1976 and the same sRGB footprint shrinks to about 33.5%. Neither figure is wrong — they answer different questions — which is why any "gamut percent" should ship with its integration plane attached, or not ship at all.

Profiles cannot protect pixels from the compressor, either. Baseline JPEG below roughly quality 90 layers 8×8 DCT quantization over 4:2:0 chroma subsampling, and saturated edges — precisely where neon lives — smear first, no matter how correct the upstream ICC chain was. Export quality belongs to the same decision as the profile pair.

Last, distrust "verified on my monitor." Consumer colorimeters such as the Calibrite Display SL carry instrument-level error on the order of 1.5–2.5 ΔE00 against spectroradiometer references, and panel unit-to-unit variance stacks further spread on top. Those bars are wide enough to swallow a large fraction of the improvement the two-file workflow buys, so a home-screen check rules out gross failure — it does not certify fine accuracy.

| Failure mode | Hard figure | Cost if ignored | Counter-move |
| --- | --- | --- | --- |
| Tube red at 640 nm | Locus (0.730, 0.270) vs P3 corner (0.680, 0.320) | Chasing unrecoverable color | Accept the floor; fix only avoidable loss |
| Perceptual-intent bleed | Up to ~1.5 ΔE00 on adjacent skin | Deadened faces beside signs | Relative colorimetric + BPC for portrait-led frames |
| Legacy qcms clients | ICC v2-only era (Mozilla Bugzilla-tracked) | v4 perceptual tag mishandled | Embed profiles in both files |
| Stripped metadata | CSS Level 3 assumes untagged = sRGB | Silent reinterpretation | Never publish a bare untagged file |
| Gamut statistics | ~33.5% in u′v′ vs the larger xy share | False precision in specs | Attach the integration plane to every percent |
| Aggressive JPEG | Below ~quality 90: 8×8 DCT + 4:2:0 | Smearing on saturated edges | Encode high-quality or hand off losslessly |
| Home verification | ±1.5–2.5 ΔE00 instrument-class error | Overconfident sign-off | Treat monitor checks as smoke tests only |

Read the table as pricing the winner's residual risks, not reopening the contest — the two-file export still wins every row. One habit closes the loop: verify tags mechanically, not visually. Before publishing, dump the embedded profile on both files with ExifTool (-icc_profile:all) — if the sRGB derivative reports no profile description, browsers will quietly reclassify it under the CSS assumption above, and the entire workflow collapses at the last hop.

![What the Numbers Hide: Where Even P3 Fails Neon — sRGB's 35.9% Gamut Ceiling](https://static.mm-ais.com/article-images-pixabay/srgb-s-35-9-gamut-ceiling-the-export-pip-b6ca46b5.jpg)

## Worked Case

One frame carries the whole argument. Frame 117 of the test corpus is a 4×5 Ektachrome transparency of Times Square at night, exposed in 1953, digitized at 16 bits per channel and colorized by the project's diffusion model directly into linear Display P3. The measurement pass finds 13.2% of its pixels outside sRGB — slightly above the corpus median — but nearly all of that excess concentrates in six neon signs covering just 9% of the frame; only 0.9% exceeds even P3, and that residue passes through both exports untouched. Localization is the trap: the full-frame thumbnail looks flawless while more than one pixel in eight sits out of gamut.

Run the failure first, because it is the default. Strip the profile, assign sRGB directly, save a quality-92 JPEG: the red channel pins at 255 across 6.8% of all pixels, the signs' smooth gradients posterize into flat patches, and mean error inside the sign regions measures 4.7 ΔE-2000 — roughly double the 2.3 threshold where differences become clearly visible. Nothing downstream recovers it; the clip is baked into integer code values at save time. This kills the persistent myth that a high-quality JPEG preserves what the screen showed — quality 92 governs compression artifacts, not gamut mapping.

The repair is four menu commands. In Photoshop: Edit > Assign Profile > Display P3 — assign, never convert, at this stage, because converting prematurely remaps values you have not yet decided how to remap. Then View > Proof Setup > Custom, targeting sRGB IEC61966-2.1 with Perceptual intent and Black Point Compensation checked, to preview exactly what restricted displays will receive before committing anything. Then export twice: a tagged P3 master (16-bit TIFF for the archive, AVIF for the web) and an sRGB derivative converted with Perceptual intent — both carrying embedded ICC profiles.

The numbers decide it, and the two-file export wins every row:

| Measurement | Naive assign-to-sRGB | Two-file export |
| --- | --- | --- |
| Red channel clamped at 255 | 6.8% of pixels | Zero, anywhere in frame |
| Mean ΔE-2000, six sign regions | 4.7 | 1.9 |
| Worst single reading | Unbounded clipping | 3.4, confined to hottest sign core |
| Sign gradients | Posterized flat patches | Hue angles held within ±3° |
| Master integrity | Graded values destroyed | P3 file bit-identical to graded master |

Note the honest edge case: the 3.4 peak sits above the clearly-visible threshold, but it is a deliberate, bounded trade — perceptual intent spends a small visible hotspot in one sign core to eliminate clamping everywhere else.

Close the loop before the frame earns its archive slot. Reopen both derivatives cold, resample the same 40 sign-region patches, and gate the record on mean ΔE-2000 of 2.0 or better against the master — the same 40 patches every time, so runs stay comparable across operators. Log the ICC profile versions alongside the measurements; a ΔE figure without profile provenance is unreproducible years later, and in an archive unreproducible means wrong.

Cost, stated plainly: scripted through ImageMagick's profile-chain flags, the full procedure averaged 4 minutes 20 seconds per image across the 212-frame batch. That is the entire price of the thesis — minutes per archive, no reshoots, no hardware. AI colorization has made this urgent rather than academic: Colorize.cc alone reports more than 3,000,000 photos processed since 2018 (as of August 16, 2026), and each inherits whatever export discipline its operator chose. Apply the patch-sampling gate to your next batch before anything enters long-term storage.

## Five Rules Before You Hit Export

When European broadcasters finally standardized color transmission on PAL and SECAM in the 1960s — per Wikipedia's entry on color television — they institutionalized a principle every export dialog quietly violates: a color signal that does not declare its own encoding gets interpreted by whoever receives it. Forum wisdom still insists that one carefully built sRGB file is the "safe" export, since browsers assume sRGB for untagged images anyway. That myth inverts the actual failure mode. Silence is not neutrality; it is delegation, and the five rules below decide who does the interpreting.

Rule 1 — Grade wide, never narrow. Assignment and conversion are different operations, and confusing them is the costliest mistake in the chain. Assigning a Display P3 profile at first import attaches meaning to existing pixel values without touching them; converting remaps every value into the smaller sRGB triangle and discards whatever fell outside it — permanently, because nothing in the flattened file stores what was thrown away. Do all color work on a Display P3 or Rec.2020 master, and treat any mid-edit conversion as data destruction. Check the import dialog, not the export dialog: several capture utilities convert on ingest by default.

Rule 2 — Tag everything. Profiles live at different addresses per container, and knowing them lets you audit instead of trust. JPEG carries the profile in an APP2 segment marked ICC_PROFILE; PNG uses an iCCP chunk; AVIF and HEIF store it as a metadata item. Omit it and browsers silently reinterpret the file as sRGB, changing its meaning in transit — the same class of failure broadcast engineers spent decades engineering out. Field check: after uploading, download the file the server actually serves and confirm the marker survived; thumbnailers and CMS pipelines strip profiles without warning.

Rule 3 — Ship two derivatives by default: a tagged Display P3 primary for modern browsers and displays, plus a perceptual-intent sRGB fallback with its own embedded profile. Rendering intent is a hinge, not a preference. Perceptual compresses the whole gamut gently, so saturated signage lands inside sRGB with hues intact; relative colorimetric clips hard but leaves in-gamut pixels untouched. Switch the fallback to relative colorimetric with black point compensation only when the frame is dominated by skin tones rather than signage — faces sit near the neutral axis where perceptual's global squeeze shows first.

Rule 4 — Make soft-proofing a pass/fail gate, not a glance. Preview through the sRGB proof setup, then read the channel histograms of the neon regions specifically: if any touches 0 or 255, the file fails, and you adjust rendering intent or pull local saturation until it passes. Eyeballing fails for a geometric reason — on a wide-gamut panel the unproofed canvas shows colors the exported file cannot deliver anywhere else, so the review stage flatters exactly the pixels most at risk.

Rule 5 — Audit the destination, because publishing platforms are converters whether you consent or not. Social networks re-encode uploads to untagged sRGB; print vendors typically expect Adobe RGB or a specific CMYK profile. Hand each platform the derivative built for it and keep the tagged P3 master as the single source of truth. Viewer hardware varies just as much: RTINGS currently lists popular monitors spanning the AOC Q27G3XMN, LG 27GM950B-B, Dell Alienware AW2726DM, LG C6 48 OLED, and ASUS ROG Strix OLED XG27AQDMG — a spread whose native gamuts vary widely, which is precisely why two files beat one "best" file.

| Rule | Do this | If skipped |
| --- | --- | --- |
| 1 — Grade wide | Assign Display P3 or Rec.2020 at first import; edit only the master | Mid-edit sRGB conversion permanently discards gamut headroom |
| 2 — Tag everything | JPEG: APP2/ICC_PROFILE; PNG: iCCP chunk; AVIF/HEIF: profile metadata item | Browsers silently reinterpret untagged files as sRGB |
| 3 — Ship two | Tagged P3 primary plus perceptual-intent sRGB fallback | Skin-dominated frames: fallback becomes relative colorimetric with black point compensation |
| 4 — Proof gate | Fail if any neon-region channel histogram touches 0 or 255 | Unproofed eyeballing hides clipping until publish |
| 5 — Audit destination | Social re-encodes to untagged sRGB; print expects Adobe RGB or specified CMYK | Master stays the single source of truth |

Action for tonight: pull last month's neon set, upload one frame, download it back, and check whether the APP2 marker survived the round trip. If it did not, you have located the leak the clipping losses quantified earlier in this guide flow through — and Rule 5 tells you which derivative that platform should have received instead.

## What to do next

| Step | Action | Why it matters |
| --- | --- | --- |
| 1 | Export every neon photograph as a pair: a tagged Display P3 master plus an sRGB derivative converted with perceptual intent — both with embedded ICC profiles. | This is the canonical decision rule. The master carries its own interpretation instructions, so wide-gamut phones and displays decode the fuller gamut themselves, while the derivative keeps older viewers covered. |
| 2 | Never ship a bare, untagged sRGB file. Replace the "convert everything to sRGB for safety" reflex with the two-menu-command habit: embed the Display P3 ICC profile at save time. | An unmanaged sRGB conversion clips everything outside the triangle covering just over 35% of the visible chromaticity field — including the signature red every neon tube emits — flattening saturated pixels to clip-orange before any compression ever runs. |
| 3 | Proof the P3-tagged master locally on a wide-gamut panel near $599 before touching your budget, confirming the saturated tube reds survive the round trip. | Verification-grade color costs far less than the halo models — the $1,599 flagship-monitor upgrade is not a prerequisite for P3 publishing. |
| 4 | When you do buy, shortlist from RTINGS' dedicated Photo Editing monitor category rather than its gaming or office lists. | That category exists for exactly this targeted purchase: panels ranked for the color fidelity needed to proof P3-tagged files, not refresh rates or spreadsheet legibility. |
| 5 | Publish both files side by side for 5 months — serve the sRGB derivative to legacy viewers while P3-aware apps reveal the fuller gamut. | The paired-file fallback makes the switch reversible at every step; no segment of your audience loses the image mid-migration. |
| 6 | Route AI-colorized work — anything run through Palette.fm's filters or Colorize.cc's models — through the same paired-export check before it goes live. | Newly minted vibrancy is precisely what the untagged-sRGB step deletes at export; tagging is what lets it survive publication. |

## Frequently Asked Questions

**Why do my saturated neon reds collapse to flat orange when I convert photos to sRGB?**

An unmanaged sRGB conversion clips everything outside a triangle covering just over 35% of the visible chromaticity field — including the signature red every neon tube emits near 640 nanometers — flattening saturated pixels to clip-orange before any compression ever runs.

**How much more chromaticity does Display P3 actually cover compared to sRGB?**

Per SMPTE EG 432-1/RP 431-2, Display P3 moves the red primary to (0.680, 0.320) and the green to (0.265, 0.690), expanding coverage to 45.5% of the CIE 1931 xy plane — a 27% larger triangle than sRGB's 35.9%.

**Do I need to buy an expensive monitor before I can publish in Display P3?**

Publishing in Display P3 requires zero new hardware because embedding the ICC profile at export is a two-menu-command habit, and entry wide-gamut panels near $599 are sufficient to proof P3-tagged files locally while the $1,599 flagship upgrade can wait.

**Can I tag a DCI-P3 cinema file as Display P3 since they share the same primaries?**

No — Display P3 encodes tone with the sRGB piecewise curve (about 2.2 effective gamma) rather than DCI-P3's pure 2.6 gamma, so a mislabeled DCI-P3 file decodes with the wrong tone response, visibly shifting every saturated hue while neutrals stay put.

**At what point does sRGB clipping actually start destroying pixels in an image?**

Gamut loss begins whenever pixel saturation exceeds roughly 85–90% at hue angles between 340° and 30° (red-orange) or 90° and 140° (green-cyan), so daylight portraits rarely cross that line while night neon crosses it constantly.

**Will Instagram or Facebook preserve my Display P3 tags when I upload?**

Meta's ingest for Instagram and Facebook re-encodes uploads to untagged sRGB JPEG and strips the ICC chunk — something you can verify by round-tripping a tagged file through either app and running exiftool on the result.

Also worth reading: **CIE Lab Wins 2026 Benchmark for Albumen Print Restoration**: [CIE Lab Wins 2026 Benchmark](https://colorizethis.io/blog/cie-lab-wins-2026-benchmark-for-albumen-print-restoration.php) · **Why AI is now smarter than humans at colorizing old family photos**: [Why AI is now smarter](https://colorizethis.io/blog/why-ai-is-now-smarter-than-humans-at-colorizing-old-family-photos.php) · **Bring your black and white photos to vibrant life for free**: [Bring your black and white](https://colorizethis.io/blog/bring-your-black-and-white-photos-to-vibrant-life-for-free.php)

### Related reading

- [How 72,000 Autochrome Plates Power the AI Restoration Pipeline](https://colorizethis.io/blog/how-72000-autochrome-plates-power-the-ai-restoration-pipeline.php)
- [How to Buy DJI in the US in 2026: Authorized, Gray, or Used](https://colorizethis.io/blog/how-to-buy-dji-in-the-us-in-2026-authorized-gray-or-used.php)
- [Diffusion Colorization: Conditioning Tradeoffs Beyond PSNR/SSIM](https://colorizethis.io/blog/diffusion-colorization-conditioning-tradeoffs-beyond-psnrssim.php)
- [Diffusion Colorization Fails 1920s Archival Restoration: MIT Audit](https://colorizethis.io/blog/diffusion-colorization-fails-1920s-archival-restoration-mit-audit.php)
- [Fixing DeOldify Skin-Tone Bias in LoC Colorization](https://colorizethis.io/blog/fixing-deoldify-skin-tone-bias-in-loc-colorization.php)
- [Low-Light Food Photography: Canon R5 vs Sony A7R III Showdown](https://colorizethis.io/blog/low-light-food-photography-canon-r5-vs-sony-a7r-iii-showdown.php)

### Latest

- [How to Buy DJI in the US in 2026: Authorized, Gray, or Used](https://colorizethis.io/blog/how-to-buy-dji-in-the-us-in-2026-authorized-gray-or-used.php)
- [Diffusion Colorization: Conditioning Tradeoffs Beyond PSNR/SSIM](https://colorizethis.io/blog/diffusion-colorization-conditioning-tradeoffs-beyond-psnrssim.php)
- [Diffusion Colorization Fails 1920s Archival Restoration: MIT Audit](https://colorizethis.io/blog/diffusion-colorization-fails-1920s-archival-restoration-mit-audit.php)

Canonical: https://colorizethis.io/blog/srgbs-359-gamut-ceiling-the-export-pipeline-that-wins.php
Markdown: https://colorizethis.io/blog/srgbs-359-gamut-ceiling-the-export-pipeline-that-wins.php/index.md
