saucecontrol / Compact-ICC-Profiles

Minimal ICC Profiles intended for embedding in image files
Creative Commons Zero v1.0 Universal
195 stars 7 forks source link

Generator #1

Open signalwerk opened 4 years ago

signalwerk commented 4 years ago

Hey! This is super awesome! I just came across your repo and I already love your small profiles! Just out of curiosity: Is the code to produce the profiles also opensource?

saucecontrol commented 4 years ago

Howdy! Thanks for the kind words!

I'm afraid the software never made it out of the prototype stage, so I haven't published the source code anywhere. As of now, I have 3 separate utilities, in various states of refinement:

1) A curve-fitting and evaluation utility. This process involves a judgement call on the optimal balance of size/accuracy, so the process is highly manual and the utility is very rough. 2) A utility to calculate and nudge/balance color matrices. This one is much more straightforward and could probably be automated, but I haven't done so because of the need to tweak matrices with negative profile-adjusted XYZ values. 3) A utility to calculate and write the profile ID. This just calculates and writes an MD5 hash without touching the data since other profile editors that do this would destroy the custom packing.

All of the profiles in the collection were hand assembled in a hex editor because the optimal packing was different depending on profile contents. I then verified them using ICC tools. V4 profiles would be easy to automate, but V2 would take a bit of work.

Coincidentally, I just this week found myself in need of a couple of new profiles for video colorspaces, so I'll probably take a look at automating more of the process. I'll update here if I get anywhere with that.