Releases: jedypod/gamut-compress
Releases · jedypod/gamut-compress
Gamut Compress v0.7
- Update compression method to use a parabolic function.
See this acescentral post for details. See this desmos plot for a comparison with the previous Power(P) compression function.
- Advantages of the parabolic compression function
- More even distribution of compressed values between threshold and distance limit.
- More robust inverse transform.
- Works much better at threshold values closer to the gamut boundary, so it's easier to leave surface colors unaffected.
- Remove shadow rolloff, since the parabolic compression curve fixes the invertibility issues it was trying to prevent.
- Add distance presets for common digital cinema camera source gamuts in Nuke nodes.
Gamut Compress v0.36 - The Kitchen Sink Version
"Everything but the kitchen sink" version. This is a bugfix release
- Fix some issues with negative color components not being preserved through the gamut compression.
- Default shadow rolloff to 0.0
- Rename threshold sliders from rgb to cmy in some implementaions.
Gamut Compress v0.6
- Remove hexagonal mode. Inversion did not work as expected, and is non-trivial to fix. Hexagonal mode did a better job at preserving hues around primary colors, however it also introduced artifacts in smooth gradients due to the mach bands, and is more complex. The idea might be worth pursueing further, but needs more work to really make it useable.
- Change shadow rolloff default to 0.0. After more testing and discussion, having this feature disabled by default is more sensible. With it enabled, care had to be taken to ensure no important features with out of gamut colors in the image were below the shd_rolloff threshold value. If there were such features, the effect of the gamut compression would be reduced on them. In simple terms, the image had to be well exposed for problems not to ocurr. With shadow rolloff disabled by default, exposure invariance is preserved and the algorithm is more robust. I am not removing the feature entirely however, as it could still be useful. When exact inversion is required, the large distance values found in shadow grain can be problematic. Even setting a very low shadow rolloff value like 0.008 can dramatically help these differences.
- Bugfixes: There were some issues with negative color components not being preserved through the gamut compression which have been resolved.
Gamut Compress v0.35 - The Kitchen Sink Version
"Everything but the kitchen sink" version.
- Includes all compression functions including power(p).
- Add ACEScc to the working space options in the DCTL and Matchbox versions.
- Threshold adjustment per component for all versions of the tool.
- Add @nick-shaw's variation of the algorithm that compresses primary and secondary colors. This is exposed as the "hexagonal" checkbox.
Gamut Compress v0.5
- Add ACEScc to the working space options in the DCTL and Matchbox versions.
- Threshold adjustment per component for all versions of the tool.
- Add hexagonal compression mode based on @nick-shaw's variation. Instead of only compressing primary colors (RGB), secondary colors (CMY) are compressed as well. This results in less hue skew near the primary color vector.
GamutCompress v0.4
- Remove all compression methods except @JamesEggleton's Power(p) compression method.
- Move max distance calculation to a separate node, available in the utilities folder.
GamutCompress v0.3
- Add Fuse version of GamutCompress tool. Works in Blackmagic Fusion Studio, DaVinci Resolve Studio, and DaVinci Resolve Lite. Thanks to Jacob Danell for the help!
- Add Matchbox version of GamutCompress tool for Filmlight's Baselight, Autodesk Flame and Assimilate Scratch thanks to @nick-shaw's contribution!
- Add Shadow Rolloff parameter. This reduces the effect of the gamut compression below the specified achromatic value. The idea is to reduce gamut compression of shadow grain. Shadow grain can have very large distances from achromatic, which can result in differences when inverting the transform. Altering shadow grain may also not be desirable in vfx workflows, especially in the inverse direction.
- Add helper function to the Nuke nodes which assists in calculating the maximum distance from achromatic.
- The max distance ratios have a big effect on the resulting RGB ratios, which will become hue once the image is processed through a display rendering transform. Depending on the original camera gamut, and the distances of that camera gamut's primaries from the destination gamut's primaries, these hue ratios may be slightly different. Therefore it may be desirable to optimize the max distance values according to the source gamut.
- Calculating the max distance values from a source image is also possible.
- Update default max distance values according to most common digital cinema source gamuts. See this post on acescentral for more information.
GamutCompress v0.2
- Additional distance compression options. Here is a comparison plotting the difference of the curve shoulder with a threshold at 0.7 and the y=1 intersect at 1.5. In the user interface these options are sorted by how aggressive the curve is starting with the lowest.
- log - Natural logarithm
- reinhard - simple Reinhard style compression curve
- exp - Natural exponent compression curve
- atan - Arc tangent compression curve. Has C2 continuity (that is, the 2nd derivative of the curve is smooth
- tanh - Hyperbolic tangent compression curve. Has C2 continuity. Very aggressive slope, has issues with inverse transform the farther the max distance limit is set.
GamutCompress v0.1
Initial release.
- Only Simple Reinhard distance compression implemented.
- Inversion working.
- Resolve DCTL and Nuke Blinkscript