Converting from Linear sRGB Tiff to openEXR acescg with oiiotool

Hi there,

I’m trying to convert from a Linear sRGB .tiff File to openEXR 16 Bit preferred using the oiiotool, however I fail either with gamma or with colour, also maybe I have a whitebalance issue. My sample-data can be found here: WeTransfer - Send Large Files & Share Photos Online - Up to 2GB Free

This is my syntax:

oiiotool small.tiff --colorconvert rec709_camera acescg -o small.exr

Thank you for helping me out on that!

Hello and welcome here,
rec709_camera doesn’t sound like a “linear sRGB colorspace” so I would look for another colorspace.
What OCIO config are you using (set in the OCIO env variable) ?
If you have a recent OIIO version (>=2.4.6) you can use the --colorconfiginfo flag to check the available colorspaces.

Hi Liam,

thank you for getting in touch.

This is the output of the colorconfiginfo:

oiiotool --colorconfiginfo                                 
OpenColorIO 2.2.1
Color config: /Users/king/OpenColorIO-Configs/aces_1.0.3/config.ocio
Known color spaces: 
    - "ACES - ACES2065-1" (linear)
    - "ACES - ACEScc"
    - "ACES - ACEScct"
    - "ACES - ACESproxy"
    - "ACES - ACEScg" (linear)
    - "Input - ADX - ADX10"
    - "Input - ADX - ADX16"
    - "Input - ARRI - V3 LogC (EI160) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI200) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI250) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI320) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI400) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI500) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI640) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI800) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI1000) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI1280) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI1600) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI2000) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI2560) - Wide Gamut"
    - "Input - ARRI - V3 LogC (EI3200) - Wide Gamut"
    - "Input - ARRI - Curve - V3 LogC (EI800)"
    - "Input - ARRI - Linear - ALEXA Wide Gamut" (linear)
    - "Input - Canon - Canon-Log - Rec. 709 Daylight"
    - "Input - Canon - Canon-Log - Rec. 709 Tungsten"
    - "Input - Canon - Canon-Log - DCI-P3 Daylight"
    - "Input - Canon - Canon-Log - DCI-P3 Tungsten"
    - "Input - Canon - Canon-Log - Cinema Gamut Daylight"
    - "Input - Canon - Canon-Log - Cinema Gamut Tungsten"
    - "Input - Canon - Canon-Log - Rec. 2020 Daylight"
    - "Input - Canon - Canon-Log - Rec. 2020 Tungsten"
    - "Input - Canon - Canon-Log2 - Rec. 2020 Daylight"
    - "Input - Canon - Canon-Log2 - Rec. 2020 Tungsten"
    - "Input - Canon - Canon-Log2 - Cinema Gamut Daylight"
    - "Input - Canon - Canon-Log2 - Cinema Gamut Tungsten"
    - "Input - Canon - Canon-Log3 - Rec. 2020 Daylight"
    - "Input - Canon - Canon-Log3 - Rec. 2020 Tungsten"
    - "Input - Canon - Canon-Log3 - Cinema Gamut Daylight"
    - "Input - Canon - Canon-Log3 - Cinema Gamut Tungsten"
    - "Input - Canon - Curve - Canon-Log"
    - "Input - Canon - Curve - Canon-Log2"
    - "Input - Canon - Curve - Canon-Log3"
    - "Input - Canon - Linear - Canon Rec. 709 Daylight" (linear)
    - "Input - Canon - Linear - Canon Rec. 709 Tungsten" (linear)
    - "Input - Canon - Linear - Canon DCI-P3 Daylight" (linear)
    - "Input - Canon - Linear - Canon DCI-P3 Tungsten" (linear)
    - "Input - Canon - Linear - Canon Cinema Gamut Daylight" (linear)
    - "Input - Canon - Linear - Canon Cinema Gamut Tungsten" (linear)
    - "Input - Canon - Linear - Canon Rec. 2020 Daylight" (linear)
    - "Input - Canon - Linear - Canon Rec. 2020 Tungsten" (linear)
    - "Input - Generic - sRGB - Texture"
    - "Input - GoPro - Protune Flat - Protune Native - Experimental"
    - "Input - GoPro - Curve - Protune Flat"
    - "Input - GoPro - Linear - Protune Native - Experimental" (linear)
    - "Input - Panasonic - V-Log - V-Gamut"
    - "Input - Panasonic - Curve - V-Log"
    - "Input - Panasonic - Linear - V-Gamut" (linear)
    - "Input - RED - REDlogFilm - DRAGONcolor"
    - "Input - RED - REDlogFilm - DRAGONcolor2"
    - "Input - RED - REDlogFilm - REDcolor"
    - "Input - RED - REDlogFilm - REDcolor2"
    - "Input - RED - REDlogFilm - REDcolor3"
    - "Input - RED - REDlogFilm - REDcolor4"
    - "Input - RED - REDLog3G10 - REDWideGamutRGB"
    - "Input - RED - Curve - REDlogFilm"
    - "Input - RED - Curve - REDLog3G10"
    - "Input - RED - Linear - DRAGONcolor" (linear)
    - "Input - RED - Linear - DRAGONcolor2" (linear)
    - "Input - RED - Linear - REDcolor" (linear)
    - "Input - RED - Linear - REDcolor2" (linear)
    - "Input - RED - Linear - REDcolor3" (linear)
    - "Input - RED - Linear - REDcolor4" (linear)
    - "Input - RED - Linear - REDWideGamutRGB" (linear)
    - "Input - Sony - S-Log1 - S-Gamut"
    - "Input - Sony - S-Log2 - S-Gamut"
    - "Input - Sony - S-Log2 - S-Gamut Daylight"
    - "Input - Sony - S-Log2 - S-Gamut Tungsten"
    - "Input - Sony - S-Log3 - S-Gamut3.Cine"
    - "Input - Sony - S-Log3 - S-Gamut3"
    - "Input - Sony - Curve - S-Log1"
    - "Input - Sony - Curve - S-Log2"
    - "Input - Sony - Curve - S-Log3"
    - "Input - Sony - Linear - S-Gamut" (linear)
    - "Input - Sony - Linear - S-Gamut Daylight" (linear)
    - "Input - Sony - Linear - S-Gamut Tungsten" (linear)
    - "Input - Sony - Linear - S-Gamut3.Cine" (linear)
    - "Input - Sony - Linear - S-Gamut3" (linear)
    - "Output - DCDM (P3 gamut clip)"
    - "Output - DCDM"
    - "Output - P3-D60 ST2084 (1000 nits)"
    - "Output - P3-D60 ST2084 (2000 nits)"
    - "Output - P3-D60 ST2084 (4000 nits)"
    - "Output - Rec.2020 ST2084 (1000 nits)"
    - "Output - P3-D60"
    - "Output - P3-DCI"
    - "Output - Rec.2020"
    - "Output - Rec.709"
    - "Output - Rec.709 (D60 sim.)"
    - "Output - sRGB"
    - "Output - sRGB (D60 sim.)"
    - "Utility - LMT Shaper"
    - "Utility - Log2 48 nits Shaper"
    - "Utility - Log2 48 nits Shaper - AP1"
    - "Utility - Log2 1000 nits Shaper"
    - "Utility - Log2 1000 nits Shaper - AP1"
    - "Utility - Log2 2000 nits Shaper"
    - "Utility - Log2 2000 nits Shaper - AP1"
    - "Utility - Log2 4000 nits Shaper"
    - "Utility - Log2 4000 nits Shaper - AP1"
    - "Utility - Dolby PQ 10000"
    - "Utility - Dolby PQ 48 nits Shaper"
    - "Utility - Dolby PQ 48 nits Shaper - AP1"
    - "Utility - Dolby PQ 1000 nits Shaper"
    - "Utility - Dolby PQ 1000 nits Shaper - AP1"
    - "Utility - Dolby PQ 2000 nits Shaper"
    - "Utility - Dolby PQ 2000 nits Shaper - AP1"
    - "Utility - Dolby PQ 4000 nits Shaper"
    - "Utility - Dolby PQ 4000 nits Shaper - AP1"
    - "Utility - Curve - Rec.1886"
    - "Utility - Curve - Rec.2020"
    - "Utility - Curve - Rec.709"
    - "Utility - Curve - sRGB"
    - "Utility - Linear - Adobe RGB" (linear)
    - "Utility - Linear - Adobe Wide Gamut RGB" (linear)
    - "Utility - Linear - P3-D60" (linear)
    - "Utility - Linear - P3-D65" (linear)
    - "Utility - Linear - P3-DCI" (linear)
    - "Utility - Linear - RIMM ROMM (ProPhoto)" (linear)
    - "Utility - Linear - Rec.2020" (linear)
    - "Utility - Linear - Rec.709" (linear)
    - "Utility - Linear - sRGB" (linear)
    - "Utility - Rec.2020 - Camera"
    - "Utility - Rec.2020 - Display"
    - "Utility - Rec.709 - Camera"
    - "Utility - Rec.709 - Display"
    - "Utility - XYZ - D60" (linear)
    - "Utility - sRGB - Texture"
    - "Utility - Raw"
    - "Utility - Look - ACES 1.0 to 0.1 emulation"
    - "Utility - Look - ACES 1.0 to 0.2 emulation"
    - "Utility - Look - ACES 1.0 to 0.7 emulation"
    - "Role - reference"
    - "Role - compositing_linear" (linear)
    - "Role - compositing_log"
    - "Role - rendering" (linear)
    - "Role - scene_linear" (linear)
    - "Role - texture_paint"
    - "Role - default" (linear)
    - "Role - data"
    - "Role - matte_paint"
    - "Role - color_picking"
    - "Role - color_timing"
    - lin_ap0 (linear)
    - aces (linear)
    - acescc
    - acescc_ap1
    - acescct
    - acescct_ap1
    - acesproxy
    - acesproxy_ap1
    - acescg (linear)
    - lin_ap1 (linear)
    - adx10
    - adx16
    - logc3ei160_alexawide
    - logc3ei200_alexawide
    - logc3ei250_alexawide
    - logc3ei320_alexawide
    - logc3ei400_alexawide
    - logc3ei500_alexawide
    - logc3ei640_alexawide
    - logc3ei800_alexawide
    - logc3ei1000_alexawide
    - logc3ei1280_alexawide
    - logc3ei1600_alexawide
    - logc3ei2000_alexawide
    - logc3ei2560_alexawide
    - logc3ei3200_alexawide
    - crv_logc3ei800
    - lin_alexawide (linear)
    - canonlog_rec709day
    - canonlog_rec709tung
    - canonlog_dcip3day
    - canonlog_dcip3tung
    - canonlog_cgamutday
    - canonlog_cgamuttung
    - canonlog_rec2020day
    - canonlog_rec2020tung
    - canonlog2_rec2020day
    - canonlog2_rec2020tung
    - canonlog2_cgamutday
    - canonlog2_cgamuttung
    - canonlog3_rec2020day
    - canonlog3_rec2020tung
    - canonlog3_cgamutday
    - canonlog3_cgamuttung
    - crv_canonlog
    - crv_canonlog2
    - crv_canonlog3
    - lin_canonrec709day (linear)
    - lin_canonrec709tung (linear)
    - lin_canondcip3day (linear)
    - lin_canondcip3tung (linear)
    - lin_canoncgamutday (linear)
    - lin_canoncgamuttung (linear)
    - lin_canonrec2020day (linear)
    - lin_canonrec2020tung (linear)
    - protuneflat_protunegamutexp
    - crv_protuneflat
    - lin_protunegamutexp (linear)
    - vlog_vgamut
    - crv_vlog
    - lin_vgamut (linear)
    - rlf_dgn
    - rlf_dgn2
    - rlf_rc
    - rlf_rc2
    - rlf_rc3
    - rlf_rc4
    - rl3g10_rwg
    - crv_rlf
    - crv_rl3g10
    - lin_dgn (linear)
    - lin_dgn2 (linear)
    - lin_rc (linear)
    - lin_rc2 (linear)
    - lin_rc3 (linear)
    - lin_rc4 (linear)
    - lin_rwg (linear)
    - slog1_sgamut
    - slog2_sgamut
    - slog2_sgamutday
    - slog2_sgamuttung
    - slog3_sgamutcine
    - slog3_sgamut3
    - crv_slog1
    - crv_slog2
    - crv_slog3
    - lin_sgamut (linear)
    - lin_sgamutday (linear)
    - lin_sgamuttung (linear)
    - lin_sgamut3cine (linear)
    - lin_sgamut3 (linear)
    - out_dcdmp3gamutclip
    - out_dcdm
    - out_p3d60st20841000nits
    - out_p3d60st20842000nits
    - out_p3d60st20844000nits
    - out_rec2020st20841000nits
    - out_p3d60
    - out_p3dci
    - out_rec2020
    - out_rec709
    - out_rec709d60sim
    - out_srgb
    - out_srgbd60sim
    - crv_lmtshaper
    - crv_log248nitsshaper
    - log248nitsshaper_ap1
    - crv_log21000nitsshaper
    - log21000nitsshaper_ap1
    - crv_log22000nitsshaper
    - log22000nitsshaper_ap1
    - crv_log24000nitsshaper
    - log24000nitsshaper_ap1
    - crv_dolbypq_10000
    - crv_dolbypq48nitsshaper
    - dolbypq48nitsshaper_ap1
    - crv_dolbypq1000nitsshaper
    - dolbypq1000nitsshaper_ap1
    - crv_dolbypq2000nitsshaper
    - dolbypq2000nitsshaper_ap1
    - crv_dolbypq4000nitsshaper
    - dolbypq4000nitsshaper_ap1
    - crv_rec1886
    - crv_rec2020
    - crv_rec709
    - crv_srgb
    - lin_adobergb (linear)
    - lin_adobewidegamutrgb (linear)
    - lin_p3d60 (linear)
    - lin_p3d65 (linear)
    - lin_p3dci (linear)
    - lin_prophoto (linear)
    - lin_rimm (linear)
    - lin_rec2020 (linear)
    - lin_rec709 (linear)
    - lin_srgb (linear)
    - rec2020_camera
    - rec2020_display
    - rec709_camera
    - rec709_display
    - lin_xyz_d60 (linear)
    - srgb_texture
    - raw
    - look_aces10to01emulation
    - look_aces10to02emulation
    - look_aces10to07emulation
    - role_reference
    - role_compositing_linear (linear)
    - role_compositing_log
    - role_rendering (linear)
    - role_scene_linear (linear)
    - role_texture_paint
    - role_default (linear)
    - role_data
    - role_matte_paint
    - role_color_picking
    - role_color_timing
Known roles:
    - color_picking -> "Output - Rec.709"
    - color_timing -> "ACES - ACEScc"
    - compositing_linear -> "ACES - ACEScg"
    - compositing_log -> "Input - ADX - ADX10"
    - data -> "Utility - Raw"
    - default -> "ACES - ACES2065-1"
    - matte_paint -> "Utility - sRGB - Texture"
    - reference -> "Utility - Raw"
    - rendering -> "ACES - ACEScg"
    - scene_linear -> "ACES - ACEScg"
    - texture_paint -> "ACES - ACEScc"
Known displays: (* indicates default)
    - ACES (*)
      views: sRGB (*), DCDM, "DCDM P3 gamut clip", P3-D60, "P3-D60 ST2084 1000 nits", "P3-D60 ST2084 2000 nits", "P3-D60 ST2084 4000 nits", P3-DCI, Rec.2020, "Rec.2020 ST2084 1000 nits", Rec.709, "Rec.709 D60 sim.", "sRGB D60 sim.",
      Raw, Log

Thanks!

Edit: I’m on mac and installed oiio via homebrew. Maybe this is an outdated source as you mention a much more recent version than I have installed?

No it looks like you have a recent oiio versions as the command doesn’t return an error.
The 2.2.1 is the version of OpenColorIO, not OpenImageIO.
With that I then recommend to use lin_srgb instead, if you are sure your tiff is encoded as linear sRGB.

Hi,

I tried that, makes more sense. However with this I have a gamma-issue as it seems. My expectation would be that input and output are identical when I open them both in affinity photo e.g.
Here are the new sample files:
we.tl/t-BMXOlUwSEU

I actually downloaded the file and it looks like your tif is not linear sRGB. As it’s a 16bit tiff the data is probably not linear at all.
So your rec709_camera was actually closer. However, I still don’t think rec709_camera is the correct transform and you should rather use srgb_texture.
Once done, if you compare the exr and the tiff in Affinity of course they will not match "color " wise, because Affinity can’t know your EXR is ACEScg if you don’t specify it.
In an ACES workflow you could verify everything works by :

  • importing the tiff as Utility - sRGB texture
  • importing the converted exr as ACES - ACEScg or scene_linear
  • previewing both under the ACES ODT corresponding to your display
  • they should both match

Thank you, so this seems to work which is great.
The last issue remaining for this has more to do with understanding. Right now we do the conversion in houdini and when we take the same settings with the oiio-tool then we get different results, however both houdini and oiio use the same library. Any ideas why that is?
I enclose the screenshot of houdini with the settings we use.

Not sure what is going on but Utility - Raw means “apply no transformation” so actually this node is doing nothing.