GoPro Protune Transforms
The following are a series of GoPro Protune Input Transforms (IDT) and Output Transforms (ODT) for DaVinci Resolve.
Depending on the chosen Color Science, they can be used either in ACES or in DaVinci YRGB.
The Protune gamma curve is based off the Technicolor CineStyle gamma.
All files with the exception of the ACES IDTs & ODTs use the following naming convention:
GoPro_Protune_<CAMERA-COLOR-SPACE>_<DESTINATION-COLOR-SPACE>_<DESTINATION-GAMMA>.dctl
The Legacy Transforms are based off the color primaries identified from the colour dataset that has been reverse engineered: https://colour.readthedocs.io/en/v0.3.10/colour.models.rgb.dataset.gopro.html
These older transforms have now been moved into a Legacy directory for backwards compatibility.
The v2 transforms are based off the Native to sRGB color transform matrix revealed in an old instance of GoPro Studio (v2.5.11).
All subsequent transforms have been developed using the Native to XYZ matrix values derived from this source.
As confirmed by David Newman from GoPro, the Native to sRGB matrix was calculated with the IMX117 sensor which was used for earlier GoPro models up to Hero 5.
Recent GoPro camera releases have different sensors but they appear to use the same color matrix data. #
# Important: Whilst all GoPros appear to use the same Color Matrices, the raw gains applied for Native White Balance are different between the various imaging sensors and even within the models using the same sensors.
The resulting XYZ Matrix will be different for each GoPro model.
There will be slight color variations when the "Native" color transforms (based off the IMX117 sensor & HERO5 Black) are used across the different GoPro iterations.
The Rec.709 Gamut based transforms should work across all variations regardless.
The imaging sensors and their associated GoPro models are listed below:
Sensor | Camera |
---|---|
IMX117 | Hero 3 Black Hero 3+ Black Hero 4 Black Hero 5 Black |
IMX277 | Hero 6 Black Hero 7 Black Hero 8 Black |
IMX677(L) | Hero 9 Black Hero 10 Black Hero 11 Black Hero 12 Black |
The Native to XYZ matrix (for IMX117 based GoPro HERO5) is derived as below *:
[ 0.501918 0.294524 0.154014 ]
[ 0.138173 0.913553 -0.051725 ]
[ 0.078774 -0.320766 1.331049 ]
* A slight margin of error must be factored in due to the 3 decimal place rounding on the source Native to sRGB matrix data.
For camera specific profiles, including WIDE=1, custom LOGB parameters and Tungsten presets, refer to the commercially available GP-Tune Transform instead: https://xtremestuff.net/store/gp-tune-transform/
See Discussion for more information.
The DCTL files contain ACES IDTs, ODTs and various Gamma/Gamut transforms.
Older instances of the transforms with the colour derived matrices are contained in the Legacy folder.
Installation can be done automatically by using the included Windows batch file and/or the *nix (Linux/Unix) shell script.
Manual installation details are listed in the sections below.
Save the non-ACES DCTL files in the LUT folder to the relevant location based on the host Operating System as noted below:
C:\ProgramData\Blackmagic Design\DaVinci Resolve\Support\LUT\
/Library/Application Support/Blackmagic Design/DaVinci Resolve/LUT
LUT folder located within DaVinci Resolve App
/home/resolve/LUT
or
/opt/resolve/LUT
Note: If using Resolve 16 or below, copy the ACES DCTL files in the IDT folder to the designated LUT folder mentioned above.
If using Resolve 17 or above, The ACES DCTL files in the IDT folder must be copied to the appropriate IDT directory based on the host Operating System:
%APPDATA%\Blackmagic Design\DaVinci Resolve\Support\ACES Transforms\IDT\
~/Library/Application Support/Blackmagic Design/DaVinci Resolve/ACES Transforms/IDT/
ACES Transforms/IDT/ folder within DaVinci Resolve App folder structure
If the folders do not exist, they may need to be created manually.
Not possible with older iPad releases. Follow instructions to use via LUT Menu instead
~/.local/share/DaVinciResolve/ACES Transforms/IDT/
Note: If using Resolve 16 or below, copy the ACES DCTL files in the ODT folder to the designated LUT folder mentioned above.
If using Resolve 17 or above, The ACES DCTL files in the ODT folder must be copied to the appropriate IDT directory based on the host Operating System:
%APPDATA%\Blackmagic Design\DaVinci Resolve\Support\ACES Transforms\ODT\
~/Library/Application Support/Blackmagic Design/DaVinci Resolve/ACES Transforms/ODT/
ACES Transforms/ODT/ folder within DaVinci Resolve App folder structure
If the folders do not exist, they may need to be created manually.
Not possible with older versions.
~/.local/share/DaVinciResolve/ACES Transforms/ODT/
The Protune Gamma curve is defined within the 0 - 1 range with the peak being equivalent to SDR Peak White. Despite this, the curve has a significantly higher Middle Gray value of 68% IRE. A significant portion of the curve is allocated to the lower code values under Middle Gray. This means that when footage is corrected using the transforms, anything under-exposed will be pushed further towards the shadows. To counteract this, the footage should either be exposed correctly, or under-exposed by 1-2 stops when recording and adjusted in Resolve accordingly after applying the transform.
Select the relevant dctl file via the LUT menu (or DaVinci CTL if using Resolve 16 or below). Ensure Input Color Space is set to Bypass (or Same as Timeline) for the relevant clip. Ensure the selected DCTL matches with the project's Timeline Color Space and Gamma. Input DRT should be set to None.
As of Resolve 17, the IDT can be loaded as an Input Transform via the Project settings and the ODT can also be loaded as an Output Transform via the Project settings.
As of Resolve 17.2, the IDT files can be selected as ACES Input Transforms for individual clips.
The IDT and ODT can be used through Resolve's ACES Transforms OFX plugin
To use in ACES via the LUT menu (or DaVinci CTL if using Resolve 16 or below), copy the IDT folder contents to the LUT folder and comment out the first few lines as follows:
//#if (__RESOLVE_VER_MAJOR__ >= 17)
//DEFINE_ACES_PARAM(IS_PARAMETRIC_ACES_TRANSFORM: 0)
//#endif
Ensure Input Transform is set to None for each clip.
IDT for ACES using Protune (FLAT) Gamma with Native Color Space - with CAT02 Chromatic Adaptation for use in DaVinci Resolve
IDT for ACES using Protune (FLAT) Gamma with Rec.709 (non-Native) Color Space - with CAT02 Chromatic Adaptation for use in DaVinci Resolve
IDT for ACES using Protune (FLAT) LogB=400 Custom Gamma with Rec.709 (non-Native) Color Space - with CAT02 Chromatic Adaptation for use in DaVinci Resolve
Legacy IDT for ACES using Protune (FLAT) Gamma with Native Color Space - with Bradford Chromatic Adaptation (For test purposes only)
Legacy IDT for ACES using Protune (FLAT) Gamma with Rec.709 (non-Native) Color Space - with Bradford Chromatic Adaptation (For test purposes only)
ODT for ACES with output to Protune (FLAT) Gamma with Native Color Space - with CAT02 Chromatic Adaptation for use in DaVinci Resolve
Input Transform for YRGB using Protune (FLAT) Gamma with Native Color Space - output to DaVinci Wide Gamut and DaVinci Intermediate
Input Transform for YRGB using Protune (FLAT) Gamma with Native Color Space - output to Rec.2020 and DaVinci Intermediate
Input Transform for YRGB using Protune (FLAT) Gamma with Rec.709 Color Space - output to DaVinci Wide Gamut and DaVinci Intermediate
Input Transform for YRGB using Protune (FLAT) Gamma with Rec.709 Color Space - output to Rec.2020 and DaVinci Intermediate
Input Transform for YRGB using Protune (FLAT) LogB=400 Custom Gamma with Rec.709 Color Space - output to DaVinci Wide Gamut and DaVinci Intermediate
Input Transform for YRGB using Protune (FLAT) LogB=400 Custom Gamma with Rec.709 Color Space - output to Rec.2020 and DaVinci Intermediate
Input Transform for YRGB using Protune (FLAT) Gamma with Native Color Space - output to Rec.709 Scene
Input Transform for YRGB using Protune (FLAT) Gamma with Native Color Space - output to Rec.709 Gamma 2.2
Input Transform for YRGB using Protune (FLAT) Gamma with Native Color Space - output to Rec.709 Gamma 2.4
Input Transform for YRGB using Protune (FLAT) Gamma with Native Color Space - output to Rec.709 Gamma 2.6
Input Transform for YRGB using Protune (FLAT) Gamma with Native Color Space - output to P3-D65 Scene
Input Transform for YRGB using Protune (FLAT) Gamma with Rec.709 Color Space - output to Rec.709 Scene
Input Transform for YRGB using Protune (FLAT) Gamma with Rec.709 Color Space - output to Rec.709 Gamma 2.2
Input Transform for YRGB using Protune (FLAT) Gamma with Rec.709 Color Space - output to Rec.709 Gamma 2.4
Input Transform for YRGB using Protune (FLAT) Gamma with Rec.709 Color Space - output to Rec.709 Gamma 2.6
Input Transform for YRGB using Protune (FLAT) LogB=400 Custom Gamma with Rec.709 Color Space - output to Rec.709 Scene
Input Transform for YRGB using Protune (FLAT) LogB=400 Custom Gamma with Rec.709 Color Space - output to Rec.709 Gamma 2.2
Input Transform for YRGB using Protune (FLAT) LogB=400 Custom Gamma with Rec.709 Color Space - output to Rec.709 Gamma 2.4
Input Transform for YRGB using Protune (FLAT) LogB=400 Custom Gamma with Rec.709 Color Space - output to Rec.709 Gamma 2.6