summaryrefslogtreecommitdiff
path: root/libs/jpegrecoverymap/recoverymapmath.cpp
diff options
context:
space:
mode:
author Dichen Zhang <dichenzhang@google.com> 2023-04-06 18:23:47 -0700
committer Dichen Zhang <dichenzhang@google.com> 2023-04-07 01:26:36 +0000
commitf7a9e1726962018b51bfe9bc66590c3697bafcb7 (patch)
treeeecaef981f319511a0f15263ed5b56520f76e745 /libs/jpegrecoverymap/recoverymapmath.cpp
parentecd41c772b9c76d6cb6f79c5b54cadc9093003d3 (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.cpp10
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);
}