[Closed] ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Want to submit a new feature, an enhancement ? Do it here !
porg
Posts: 554
Joined: Tue Apr 05, 2022 1:04 pm
Country: Austria

[Closed] ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by porg »

Status Quo: How color profile or colorspace information can be in image files

I) Colorspace reference: The most common colorspaces sRGB and AdobeRGB1998 can be referred to by ID/number/flag combinations. This is REALLY space efficient, just adds one or very few bytes. ( EXIF 0xa001 ColorSpace and 0x0001 InteropIndex.
• GC supports colorspace references for handling the opening of files at: Preferences > Open > Color Profiles.

II) Color profile embedding: This makes sense for custom calibrations. But embedding a standard color space such as sRGB or AdobeRGB1998 into thousands of file? Adds in the range of 3-10 KB.
• Not too much, but if it comes to web optimizations also that counts. And more importantly: The color managed web browser needs to evaluate each profile individually. In case of the reference this surely also saves a bit. Rendering time matters. Also for Google Search rankings.


Status Quo: Saving color profiles in GC.

1) The Info Dialog already differentiates: Assigned by user, Assigned by preference, Profile in file. But the later case is indifferent whether a color profile is really embedded (3-10 KB) or just referred (few bytes).

2) The various file formats have the option "Include ICC".

a) JPEG has two related format options:
a1) ☑️ ICC profile
a2) ☑️ Don't embed sRGB profile
I interpret it like this: Embed an ICC profile into the metadata header (extra 3-10KB) unless it's sRGB, in that case only a flag/reference (few bytes) into the metadata header.

b) PNG and WEBP and JPEG2000 don't have such differentiated options

3) Also there's the batch action "Chance Color Profile" which on files without a color profile information just assigns the profile and if it has a color profile assigns the target color profile and changes the pixel RGB values accordingly.


Proposals

Ad 1) Ideal would be to further differentiate in the Info Window between "Color profile embedded in metadata" displayed in the window as an attribute line e.g. as "sRGB (color profile embedded)" vs. "Colorspace reference in metadata" displayed as e.g. "Adobe RGB (1998) (colorspace reference)".

Ad 2) If "Don't embed sRGB profile" works how I interpreted it then please rename/restructure like below and add it as format options for all the common image formats: JPG, PNG, WEBP. JPEG2000 and JXL somewhen later maybe.

Do not embed color profile but only add colorspace reference for: ☑️ sRGB ☑️ Adobe RGB (1998)

Ad 3) Add the same option from 2) here into the redesigned action "Chance Color Profile".
Last edited by porg on Sat Nov 26, 2022 2:05 am, edited 1 time in total.
User avatar
forum_adm
Site Admin
Posts: 1814
Joined: Fri Dec 23, 2016 9:41 am
Location: Germany
Country: Germany
Contact:

Re: ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by forum_adm »

Only ColorSpace = 1 for sRGB is standardized by the Exif specifications.

Uncalibrated = Adobe RGB is a defacto standard.

So, it is only save to add an option for sRGB.
porg
Posts: 554
Joined: Tue Apr 05, 2022 1:04 pm
Country: Austria

Re: ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by porg »

Ok. So in all cases for writing color profile information as a reference only offer the sRGB option. (One checkbox). If the standards get extended one day we can extend it by further checkboxes. Or for AdobeRGB1998 de facto fans, as an option it could be offered already now. It's an opt-in option anyways.

With that clarified I'd appreciate if you could give feedback on my proposals 1-3. Thanks!
porg
Posts: 554
Joined: Tue Apr 05, 2022 1:04 pm
Country: Austria

Re: ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by porg »

@forum_adm I'd appreciate an answer. Thanks!
porg
Posts: 554
Joined: Tue Apr 05, 2022 1:04 pm
Country: Austria

Re: ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by porg »

ℹ️ From this and other your answers it got clear to me:
- Only sRGB is a real standard in Exif as a flag
- Setting references to other color spaces via flags is far fetched. If it comes one day, then it comes.

✅ Closing this issue:
- The help text regarding color profiles in PNG now clearly differentiates "embedded ICC color profile" vs. "color profile reference/flag".
- I made a followup issue to bring that clarity to the file format option dialogs of all common file formats.
es
Posts: 114
Joined: Sun Dec 04, 2022 6:24 pm

Re: [Closed] ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by es »

porg wrote: Wed Nov 09, 2022 12:10 am II) Color profile embedding: This makes sense for custom calibrations. But embedding a standard color space such as sRGB or AdobeRGB1998 into thousands of file? Adds in the range of 3-10 KB.
or just 410 / 374 bytes :)
(sRGB / AdobeRGB1998) from https://github.com/saucecontrol/Compact-ICC-Profiles
porg
Posts: 554
Joined: Tue Apr 05, 2022 1:04 pm
Country: Austria

Re: [Closed] ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by porg »

Cool to know!

@forum_adm: What do you think about adding these compact ICC profiles to GC's color profile folder?
User avatar
forum_adm
Site Admin
Posts: 1814
Joined: Fri Dec 23, 2016 9:41 am
Location: Germany
Country: Germany
Contact:

Re: [Closed] ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by forum_adm »

Thanks for the note.

But setting the ColorSpace Exif tag is much more efficient. It takes with the complete Exif record less than 100 bytes.
es
Posts: 114
Joined: Sun Dec 04, 2022 6:24 pm

Re: [Closed] ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by es »

forum_adm wrote: Sun Dec 11, 2022 9:32 am But setting the ColorSpace Exif tag is much more efficient. It takes with the complete Exif record less than 100 bytes.
Of course it is, but then you can only do that for two color profiles :( (and it's a pity that the design is so poor and doesn't allow you apply the same efficiency to all the most commonly used profiles instead of dealing with this embedding stuff)
porg
Posts: 554
Joined: Tue Apr 05, 2022 1:04 pm
Country: Austria

Re: [Closed] ColorSync: Differentiate "Embed color profile" vs. "Set color profile reference"

Post by porg »

https://exiftool.org/TagNames/EXIF.html
Exif tag ColorSpace (ID 0xa001) is of the data type "int16u:"

So 2^16 possible colorspace flags! 😉

Quite some scope left for extending the color profile catalog without the need to break the data structure. 😂
Only thing left is some widespread industry consensus on a standard which color profile shall get what number. Shouldn't be too hard. 🤔

Amazing, otherwise all those IT giants like Amazon, Apple, Google, Meta, Netflix & Co perform a lot of efforts to save data everywhere in order to manage their ever increasing data loads they push around all the time. But this quite low hanging fruit, nobody picked it to use it.

Just think to what lengths all this web compression libraries go, which pack multiple icons into one large iconset (to have only one request) or embed it right into HTML (more and more often done with SVG, but sometimes also PNGs get packed into the HTML document as base64), only to save that extra HTTP request.

But likely nobody went to extend that ColorSpace tag because sRGB is sufficient so far, so no need to extend.

If wide gamut displays get more common, the need to add more color profile flags may arise.

What are your bets on this over the course of the next 3 years? Will that catalog be extended?
Post Reply