From 2aaa220e0f1e6343abe4c160313d85e02aba1689 Mon Sep 17 00:00:00 2001 From: linkai Date: Mon, 29 Mar 2021 14:11:15 +0800 Subject: [PATCH] [Improvement]Fix loss of permissibleRatio calcaulation accuracy. The previous method performs exponential calculation after natural logarithm and subtraction operation, which brings loss of calculation accuracy. So it is recommended to modify this method from the perspective of scientific calculation. Change-Id: Id6c7ca3c222226d642bd075519da693a8538dba6 Signed-off-by: linkai --- .../android/server/display/BrightnessMappingStrategy.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/display/BrightnessMappingStrategy.java b/services/core/java/com/android/server/display/BrightnessMappingStrategy.java index 6f12155c5ec6d..6a407e99f1e4d 100644 --- a/services/core/java/com/android/server/display/BrightnessMappingStrategy.java +++ b/services/core/java/com/android/server/display/BrightnessMappingStrategy.java @@ -440,9 +440,8 @@ public abstract class BrightnessMappingStrategy { } private float permissibleRatio(float currLux, float prevLux) { - return MathUtils.exp(MAX_GRAD - * (MathUtils.log(currLux + LUX_GRAD_SMOOTHING) - - MathUtils.log(prevLux + LUX_GRAD_SMOOTHING))); + return MathUtils.pow((currLux + LUX_GRAD_SMOOTHING) + / (prevLux + LUX_GRAD_SMOOTHING), MAX_GRAD); } protected float inferAutoBrightnessAdjustment(float maxGamma, float desiredBrightness,