Adobe RGB 1998 Output in OCIO config

Dear community,

I’ve decided to write here because I didn’t find a solution on the net to this kind of problem.
I’m a 3D artist as well as a photographer, I worked for years with the standard photographic process (lightroom, C1, Photoshop) to develop real photographs using Adobe RGB wide gamut for print.
Since the improvement of OCIO config in render engines, I started working with ACEScg color space and take advantage of the wider color space but I was wondering why Adobe RGB and Prophoto are not included in the view transform list.
Since that sRGB, rec 709, and rec 2020 are included, is teorycally possible to also develop custom view transform like Adobe RGB and Prophoto?
If yes where can I start to study to figure out the way?

Thanks a lot to all

I recall seeing AdobeRGB being implemented in the OCIO config of Redshift or C4D. You may pull it from there if you can access it. ProPhotoRGB as a view transform doesn’t make a whole lot of sense because there isn’t a display that reaches this.

You’ll need to know your way around editing OCIO config files a bit to make it work but hope this gives you some direction to start in.

1 Like

Hello @alessandroconsonni,

When the OCIO Configs VWG reviewed the previous config and its usage, we did it with the intent of drastically reduce the number of colourspaces and LUTs shipped. Here is the spreadsheet that reflect those decisions: OpenColorIO-Config-ACES "CG and Studio" Transforms - v2 - Google Sheets

This does not mean that we will not add them back in the future. Feel free to create an issue on the repo where it is going to have more visibility: Issues · AcademySoftwareFoundation/OpenColorIO-Config-ACES · GitHub

Cheers,

Thomas

1 Like

I downloaded the redshift trial for c4d but I can’t find Adobe RGB output, also google doesn’t help that much, can you please give me more info on how to find it?

Thanks

On Windows the config is located here:
C:\ProgramData\Redshift\Data\OCIO

I would assume a similar location on mac, wherever Redshift itself is installed.

Sharing it from my Dropbox as well:

I had a look at how they implemented it.
I’m not really sure how they got to their data because the values are different from when I check the matrix to go from AP0 to AdobeRGB through this site.
I also thought AdobeRGB gamma is 2.2 but theirs is slightly lower. Not exactly sure why.

  - !<ColorSpace>
    name: AdobeRGB
    family:
    description: |
      AdobeRGB
    isdata: false
    categories: [ file-io ]
    encoding: sdr-video
    from_display_reference: !<GroupTransform>
      children:
        - !<MatrixTransform> {matrix: [ 2.041587903811, -0.565006974279, -0.344731350778, 0, -0.969243636281, 1.875967501508, 0.041555057407, 0, 0.013444280632, -0.118362392231, 1.015174994391, 0, 0, 0, 0, 1 ]}
        - !<ExponentTransform> {value: 2.19921875, direction: inverse}
        - !<RangeTransform> {min_in_value: 0., min_out_value: 0., max_in_value: 1., max_out_value: 1.}

I’d say use at your own discretion and do plenty of tests :slight_smile: .

Thanks! I’m not sure on how to add it to my usual ocio config but before to bother you I’ll do some research and try. Thanks a lot for your help!

If you check the Adobe 1998 spec, you will see that the exponent is in fact 2\frac{51}{256}=2.19921875, not 2.2.

The matrix given is the XYZ D65 to Adobe 1998 matrix, as XYZ D65, not AP0, is the display reference space. The spec gives the matrix to five decimal places, but I assume the version there is calculated from the primaries to a higher precision.

Edit: corrected the denominator in the fraction to 256 instead of 255, because I copied it wrong!

1 Like

Thanks for the explanation! Totally makes sense now.

Looks like the colourspace uses from_display_reference, so the values are from CIE-XYZ-D65 to AdobeRGB and appear to be correct. AdobeRGB defines its transfer function as 2 + 51/256 = 2.19921875 how those numbers were derived, couldn’t tell you. Either way, useful to now have links, thanks Shebbe.

As a nonprofessional in color science, I tried to find out a “handcrafted” way to implement Adobe RGB output without luck. I know it’s pretty annoying but can someone suggest to me at least a software to use to rewrite OCIO code? with text edit it’s incredibly difficult to do.

Happy to update this post with a few thoughts:
using colour-science.org website as suggested by @Shebbe, I generated the following code from ACEScg to Adobe RGB (1998) using XYZ scaling and Open Color IO inside the formatter section.
Seems to work inside Vray witch use ACEScg as internal color space but the problem is the output gamma that is in linear instead of 2.1999.

I tried some clumsy techniques to add the gamma inverse transform but adding or changing lines from the original code make the ocio file unusable.

I also tried @shebbe code but doesn’t work and the redshift one just give the chance to use adobe rgb as input not as view transform.

Any help will be very appreciated

Thanks

  • !
    name: Linear Adobe RGB (1998)
    aliases: []
    family: Utility
    equalitygroup: “”
    bitdepth: 32f
    description: |
    Convert from ACEScg to Linear Adobe RGB (1998)
    isdata: false
    encoding: scene-linear
    allocation: uniform
    from_scene_reference: !
    name: ACEScg to Linear Adobe RGB (1998)
    children:
    - ! {matrix: [1.1835392997, -0.1189041302, -0.0646347319, 0.0000000000, -0.1311536465, 1.1391032350, -0.0079382511, 0.0000000000, -0.0289401736, -0.0727787284, 1.1017117865, 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 1.0000000000]}