Experimenting with Mantiuk's Chroma Compression Method

I recently proposed the chroma compression algorithm by Mantiuk and now I’d like to share my DCTL for DaVinci Resolve, which can be used with the Color Managed or manual workflow (Timeline color space must be set to DaVinci WG/Intermediate). The results are stunning considering how simple it is. The SDR/HDR match is great too, if it weren’t for that little issue with yellow desaturating too early in SDR.

I think that yellow desaturates too early because it’s just a light color by nature. So my idea was to reduce the luminance of yellow colors and use this reduced luminance to calculate the contrast, which is then used to calculate the final saturation adjustment. My hope was to generate a signal that better reflects exposure rather than perceived brightness. This is inspired by the black & white filter in Photoshop (with weights set to 50%):
Rainbow to Black&White

This works quite well but unfortunately, I fail with the implementation of the inversion. I tried to find the Inversion with the help of Matlab but it could not find a solution. Maybe I’m on the wrong track. :disappointed: Any suggestions are welcome!

You can find the DCTL here: https://github.com/HD1080ide/DCTL_Experiments/tree/main

Please keep in mind that:

  • You also need the hellwig_lib.h file from Nick Shaw’s GitHub repo
  • The parameters k1 and k2 still need to be fine-tuned (Desmos plot)
  • The DCTL currently lacks out-of-gamut compression
  • It is ZCAM based (not because I like it better)
1 Like