wswartzendruber
29th July 2020, 04:07
I have a Rust project that converts raw PQ frames into HLG. It follows the BBC R&D method for doing so and is quite primitive. I am contemplating extending it with the following approach:
1. Determine the reference white level of the movie by sampling how bright the credits are.
* RGB48 (PQ, Rec.2020) comes in from FFMPEG. *
2. Globally adjust the brightness of each frame as a whole such that the credits (if white) sit at 203 nits (linear scaling of each color channel).
3. Apply Kim-Kautz tone mapping to push everything down to within 1,000 nits.
4. Apply the inverse HLG EOTF function.
* RGB48 (HLG, Rec.2020) goes back out to FFMPEG. *
Given that I want a Good™ HLG encode of something, does this seem like a good way to go about it?
1. Determine the reference white level of the movie by sampling how bright the credits are.
* RGB48 (PQ, Rec.2020) comes in from FFMPEG. *
2. Globally adjust the brightness of each frame as a whole such that the credits (if white) sit at 203 nits (linear scaling of each color channel).
3. Apply Kim-Kautz tone mapping to push everything down to within 1,000 nits.
4. Apply the inverse HLG EOTF function.
* RGB48 (HLG, Rec.2020) goes back out to FFMPEG. *
Given that I want a Good™ HLG encode of something, does this seem like a good way to go about it?