diff options
| author | 2023-04-06 18:23:47 -0700 | |
|---|---|---|
| committer | 2023-04-07 01:26:36 +0000 | |
| commit | f7a9e1726962018b51bfe9bc66590c3697bafcb7 (patch) | |
| tree | eecaef981f319511a0f15263ed5b56520f76e745 /libs/jpegrecoverymap/recoverymapmath.cpp | |
| parent | ecd41c772b9c76d6cb6f79c5b54cadc9093003d3 (diff) | |
JPEG/R Optimization: remove repeating log2() calculation
Bug: 264715926
Test: jpegr_test.cpp recoverymapmath_test.cpp
Change-Id: If135b1003b7835c9c59418f61842c26724eb6e80
Diffstat (limited to 'libs/jpegrecoverymap/recoverymapmath.cpp')
| -rw-r--r-- | libs/jpegrecoverymap/recoverymapmath.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libs/jpegrecoverymap/recoverymapmath.cpp b/libs/jpegrecoverymap/recoverymapmath.cpp index 2cffde3c54..8808b55b0c 100644 --- a/libs/jpegrecoverymap/recoverymapmath.cpp +++ b/libs/jpegrecoverymap/recoverymapmath.cpp @@ -443,6 +443,12 @@ ColorTransformFn getHdrConversionFn(jpegr_color_gamut sdr_gamut, jpegr_color_gam //////////////////////////////////////////////////////////////////////////////// // Recovery map calculations uint8_t encodeRecovery(float y_sdr, float y_hdr, jr_metadata_ptr metadata) { + return encodeRecovery(y_sdr, y_hdr, metadata, + log2(metadata->minContentBoost), log2(metadata->maxContentBoost)); +} + +uint8_t encodeRecovery(float y_sdr, float y_hdr, jr_metadata_ptr metadata, + float log2MinContentBoost, float log2MaxContentBoost) { float gain = 1.0f; if (y_sdr > 0.0f) { gain = y_hdr / y_sdr; @@ -451,8 +457,8 @@ uint8_t encodeRecovery(float y_sdr, float y_hdr, jr_metadata_ptr metadata) { if (gain < metadata->minContentBoost) gain = metadata->minContentBoost; if (gain > metadata->maxContentBoost) gain = metadata->maxContentBoost; - return static_cast<uint8_t>((log2(gain) - log2(metadata->minContentBoost)) - / (log2(metadata->maxContentBoost) - log2(metadata->minContentBoost)) + return static_cast<uint8_t>((log2(gain) - log2MinContentBoost) + / (log2MaxContentBoost - log2MinContentBoost) * 255.0f); } |