Review: added ociobuildicc app


Malcolm Humphreys <malcolmh...@...>
 

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit quantization errors in the
CLUT of the AToB0Tag. These errors are less with the matte paint allocation as the distance
to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags which should make this
problem go away (http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't
get it too work reliably so I pulled it out till I can.

.malcolm


Malcolm Humphreys <malcolmh...@...>
 

Attaching some slightly larger examples :)

On 28/01/2011, at 5:46 PM, Malcolm Humphreys wrote:

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit quantization errors in the
CLUT of the AToB0Tag. These errors are less with the matte paint allocation as the distance
to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags which should make this
problem go away (http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't
get it too work reliably so I pulled it out till I can.

.malcolm



<ocioicc_softp_off.jpeg><ocioicc_softp_on.jpeg>


Malcolm Humphreys <malcolmh...@...>
 

On 28/01/2011, at 5:49 PM, Malcolm Humphreys wrote:

Attaching some slightly larger examples :)


On 28/01/2011, at 5:46 PM, Malcolm Humphreys wrote:

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit quantization errors in the
CLUT of the AToB0Tag. These errors are less with the matte paint allocation as the distance
to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags which should make this
problem go away (http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't
get it too work reliably so I pulled it out till I can.

.malcolm



<ocioicc_softp_off.jpeg><ocioicc_softp_on.jpeg>
<ocioicc_softp_off.jpeg><ocioicc_softp_on.jpeg>


"dbr/Ben" <b...@...>
 

This is great :D

I generated a LUT without issue, and it was as close as I would expect from Photoshop...

Only nitpick'y problem I can see is the --outputfile argument seems to be redundant given the positional "outputprofile.icc" arg

On 28/01/2011, at 5:16 PM, Malcolm Humphreys wrote:

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit quantization errors in the
CLUT of the AToB0Tag. These errors are less with the matte paint allocation as the distance
to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags which should make this
problem go away (http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't
get it too work reliably so I pulled it out till I can.

.malcolm



<ocioicc_softp_off.jpeg><ocioicc_softp_on.jpeg>


Jeremy Selan <jeremy...@...>
 

Committed.

(Additional argument tweaks can come as needed later).

-- Jeremy


Joseph Slomka <jsl...@...>
 

Malcolm,

When building ICC profiles I've found it very helpful to use the InputTables of the AtoB0 to hold an intermediate conversion, for instance the a 1024 entry 1-d conversion from Cineon to video . The CLUT can then just hold the 3d portion of the conversion I found the match was much improved going that way without having to create a large 3d lut. It's really helps out if you are working with linear space source files in Photoshop.

It may be handy to specify that intermediate space to be placed in Add3GammaCurves()

So for example,
Source=Cineon
DST=Srgb_Film
Intermediate=video10

could be broken into 2 OCIO transformations
one transformation from Cineon to video10. (This transformation would be 1024 entries and placed into the 52nd byte of the Lut16 structure)
The next transformation would be the video10 to Srgb_Film, placed in the CLUT , at the end of the InputTables list.

It looks like that you are creating a gamma 1.0 table in that spot right now.

Let me know if that makes sense.

-Joseph

-----Original Message-----
From: ocio...@googlegroups.com [mailto:ocio...@googlegroups.com] On Behalf Of Malcolm Humphreys
Sent: Thursday, January 27, 2011 11:00 PM
To: ocio...@googlegroups.com
Subject: Re: [ocio-dev] Review: added ociobuildicc app

Also added Little CMS to LICENSE file

Commit:
https://github.com/malcolmhumphreys/OpenColorIO/commit/8ff296f8ab234ea7b06704036037bf2a132ebd6a

.malcolm

On 28/01/2011, at 5:49 PM, Malcolm Humphreys wrote:

Attaching some slightly larger examples :)


On 28/01/2011, at 5:46 PM, Malcolm Humphreys wrote:

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10
f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit
quantization errors in the CLUT of the AToB0Tag. These errors are
less with the matte paint allocation as the distance to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags
which should make this problem go away
(http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't get it too work reliably so I pulled it out till I can.

.malcolm



<ocioicc_softp_off.jpeg><ocioicc_softp_on.jpeg>
<ocioicc_softp_off.jpeg><ocioicc_softp_on.jpeg>


Joseph Slomka <jsl...@...>
 

Malcolm,

This is slightly off topic.

Is there a new ICC standard support for the MPE tags? The newest document I found on this was http://ntust-ciic.no-ip.info/ciic/Phil_Green-Taiwan-Presentations/ITRI-ICC-6-10-09.pdf That document is not even a proposal.

It still looks like the D2Bx tags are not officially supported. In your expecience do most CMM's and applications implement D2Bx support?

-Joseph

-----Original Message-----
From: ocio...@googlegroups.com [mailto:ocio...@googlegroups.com] On Behalf Of Malcolm Humphreys
Sent: Thursday, January 27, 2011 10:47 PM
To: OpenColorIO Developers
Subject: [ocio-dev] Review: added ociobuildicc app

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit quantization errors in the CLUT of the AToB0Tag. These errors are less with the matte paint allocation as the distance to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags which should make this problem go away (http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't get it too work reliably so I pulled it out till I can.

.malcolm


Malcolm Humphreys <malcolmh...@...>
 

Hi Joesph,

It has been approved but not added to a new spec yet.

http://www.color.org/icc_specs2.xalter
--snip--
Approved revisions since ICC.1:2004-10
25 Feb 2010 Dictionary Type and Metadata TAG Definition
7 Nov 2007 Deletion of mediaBlackPointTag
11 Apr 2007 Colorimetric Intent Image State tag
11 Apr 2007 Profile Sequence Identifier tag
2 Nov 2006 Floating Point Device Encoding Range
13 Jun 2006 Motion Picture technology tags
22 Feb 2005 Perceptual Intent Reference Medium Color Gamut
--snip--

It's also referenced in the book 'Color Management: Understanding and Using ICC Profiles'. Both http://sourceforge.net/projects/sampleicc/ and littleCMS support MPE tags, and the book also suggests that their is a version of Adobe CMM that also supports MPE.

I have only recently been aware of the new MPE tags and haven't gotten it to work in photoshop, would be nice if it did work. I'm sure their is some secrete sauce lying around somewhere that will make it work.

.malcolm

On 01/02/2011, at 12:49 PM, Joseph Slomka wrote:

Malcolm,

This is slightly off topic.

Is there a new ICC standard support for the MPE tags? The newest document I found on this was http://ntust-ciic.no-ip.info/ciic/Phil_Green-Taiwan-Presentations/ITRI-ICC-6-10-09.pdf That document is not even a proposal.

It still looks like the D2Bx tags are not officially supported. In your expecience do most CMM's and applications implement D2Bx support?

-Joseph

-----Original Message-----
From: ocio...@googlegroups.com [mailto:ocio...@googlegroups.com] On Behalf Of Malcolm Humphreys
Sent: Thursday, January 27, 2011 10:47 PM
To: OpenColorIO Developers
Subject: [ocio-dev] Review: added ociobuildicc app

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit quantization errors in the CLUT of the AToB0Tag. These errors are less with the matte paint allocation as the distance to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags which should make this problem go away (http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't get it too work reliably so I pulled it out till I can.

.malcolm


Malcolm Humphreys <malcolmh...@...>
 

Hi Joesph,

When building ICC profiles I've found it very helpful to use the InputTables of the AtoB0 to hold an intermediate conversion, for instance the a 1024 entry 1-d conversion from Cineon to video . The CLUT can then just hold the 3d portion of the conversion I found the match was much improved going that way without having to create a large 3d lut. It's really helps out if you are working with linear space source files in Photoshop.
Effectively this is what is being done with our matte painting allocation, and it does help out a lot.

It does bring up something, I'm looking at replacing the lut builder (non icc luts) I wrote before the switch to OCIO, with OCIO. I was hoping to implement a 1D Sampler (prelut/shaper) and a 3D Sampler for the cube. It would be cool to be able to tag a colorspace as being able to used for the 1D Samplers.

I was thinking about some group of allocation spaces?

.malcolm

-Joseph

-----Original Message-----
From: ocio...@googlegroups.com [mailto:ocio...@googlegroups.com] On Behalf Of Malcolm Humphreys
Sent: Thursday, January 27, 2011 11:00 PM
To: ocio...@googlegroups.com
Subject: Re: [ocio-dev] Review: added ociobuildicc app

Also added Little CMS to LICENSE file

Commit:
https://github.com/malcolmhumphreys/OpenColorIO/commit/8ff296f8ab234ea7b06704036037bf2a132ebd6a

.malcolm

On 28/01/2011, at 5:49 PM, Malcolm Humphreys wrote:

Attaching some slightly larger examples :)


On 28/01/2011, at 5:46 PM, Malcolm Humphreys wrote:

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10
f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit
quantization errors in the CLUT of the AToB0Tag. These errors are
less with the matte paint allocation as the distance to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags
which should make this problem go away
(http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't get it too work reliably so I pulled it out till I can.

.malcolm



<ocioicc_softp_off.jpeg><ocioicc_softp_on.jpeg>
<ocioicc_softp_off.jpeg><ocioicc_softp_on.jpeg>


Malcolm Humphreys <malcolmh...@...>
 

Using the Probev2_ICCv4 Profile (http://www.color.org/probeprofile.xalter) Photoshop CS5 doesn't seem to support the MPE tags.

boo

.malcolm

On 01/02/2011, at 4:08 PM, Malcolm Humphreys wrote:

Hi Joesph,

It has been approved but not added to a new spec yet.

http://www.color.org/icc_specs2.xalter
--snip--
Approved revisions since ICC.1:2004-10
25 Feb 2010 Dictionary Type and Metadata TAG Definition
7 Nov 2007 Deletion of mediaBlackPointTag
11 Apr 2007 Colorimetric Intent Image State tag
11 Apr 2007 Profile Sequence Identifier tag
2 Nov 2006 Floating Point Device Encoding Range
13 Jun 2006 Motion Picture technology tags
22 Feb 2005 Perceptual Intent Reference Medium Color Gamut
--snip--

It's also referenced in the book 'Color Management: Understanding and Using ICC Profiles'. Both http://sourceforge.net/projects/sampleicc/ and littleCMS support MPE tags, and the book also suggests that their is a version of Adobe CMM that also supports MPE.

I have only recently been aware of the new MPE tags and haven't gotten it to work in photoshop, would be nice if it did work. I'm sure their is some secrete sauce lying around somewhere that will make it work.

.malcolm

On 01/02/2011, at 12:49 PM, Joseph Slomka wrote:

Malcolm,

This is slightly off topic.

Is there a new ICC standard support for the MPE tags? The newest document I found on this was http://ntust-ciic.no-ip.info/ciic/Phil_Green-Taiwan-Presentations/ITRI-ICC-6-10-09.pdf That document is not even a proposal.

It still looks like the D2Bx tags are not officially supported. In your expecience do most CMM's and applications implement D2Bx support?

-Joseph

-----Original Message-----
From: ocio...@googlegroups.com [mailto:ocio...@googlegroups.com] On Behalf Of Malcolm Humphreys
Sent: Thursday, January 27, 2011 10:47 PM
To: OpenColorIO Developers
Subject: [ocio-dev] Review: added ociobuildicc app

Added ociobuildicc app which will build a soft-proofing icc profile for a given working space.
(added LCMS2 into ext)

Commits:
https://github.com/malcolmhumphreys/OpenColorIO/commit/1b0d39fb10db10f4edbf1fb0fed124b548b836d9

Attached is an example of two profiles in action.

From the left
* sRGB reference image (ocio cpu)
* matte paint allocation space
* log space image.

The visual difference in the log image is most likely caused by 16bit quantization errors in the CLUT of the AToB0Tag. These errors are less with the matte paint allocation as the distance to travel is less.

I did play around with supporting the new MPE D2Bx and B2Dx tags which should make this problem go away (http://www.color.org/ICCSpecRevision_02_11_06_Float.pdf) but couldn't get it too work reliably so I pulled it out till I can.

.malcolm


Gerardo <gerard...@...>
 

Hello,

Just to say thanks and let you know that last versions of LittleCMS are able to perform color conversions in unbounded full floating point mode and generates ICC v4.3 profiles. latest LCMS version is 2.6/2.7
v4.3 profiles (including cLUT profiles) are able to work in unbounded FP domain, so results won't be clipped to 16-bpc.

Greetings,



Gerardo