Merge "DWB Bias splines ignore default ambient CCT" into qt-r1-dev

This commit is contained in:
TreeHugger Robot
2019-06-28 17:02:54 +00:00
committed by Android (Google) Code Review
2 changed files with 31 additions and 2 deletions

View File

@@ -356,13 +356,15 @@ public class DisplayWhiteBalanceController implements
float ambientBrightness = mBrightnessFilter.getEstimate(time); float ambientBrightness = mBrightnessFilter.getEstimate(time);
if (mLowLightAmbientBrightnessToBiasSpline != null) { if (ambientColorTemperature != -1.0f &&
mLowLightAmbientBrightnessToBiasSpline != null) {
float bias = mLowLightAmbientBrightnessToBiasSpline.interpolate(ambientBrightness); float bias = mLowLightAmbientBrightnessToBiasSpline.interpolate(ambientBrightness);
ambientColorTemperature = ambientColorTemperature =
bias * ambientColorTemperature + (1.0f - bias) bias * ambientColorTemperature + (1.0f - bias)
* mLowLightAmbientColorTemperature; * mLowLightAmbientColorTemperature;
} }
if (mHighLightAmbientBrightnessToBiasSpline != null) { if (ambientColorTemperature != -1.0f &&
mHighLightAmbientBrightnessToBiasSpline != null) {
float bias = mHighLightAmbientBrightnessToBiasSpline.interpolate(ambientBrightness); float bias = mHighLightAmbientBrightnessToBiasSpline.interpolate(ambientBrightness);
ambientColorTemperature = ambientColorTemperature =
(1.0f - bias) * ambientColorTemperature + bias (1.0f - bias) * ambientColorTemperature + bias

View File

@@ -359,6 +359,33 @@ public final class AmbientLuxTest {
} }
} }
@Test
public void testLowLight_DefaultAmbient() throws Exception {
final float lowerBrightness = 10.0f;
final float upperBrightness = 50.0f;
setBrightnesses(lowerBrightness, upperBrightness);
setBiases(0.0f, 1.0f);
DisplayWhiteBalanceController controller =
DisplayWhiteBalanceFactory.create(mHandler, mSensorManagerMock, mResourcesSpy);
final float ambientColorTemperature = -1.0f;
setEstimatedColorTemperature(controller, ambientColorTemperature);
controller.mBrightnessFilter = spy(controller.mBrightnessFilter);
for (float t = 0.0f; t <= 1.0f; t += 0.1f) {
setEstimatedBrightnessAndUpdate(controller,
mix(lowerBrightness, upperBrightness, t));
assertEquals(controller.mPendingAmbientColorTemperature, ambientColorTemperature,
0.001);
}
setEstimatedBrightnessAndUpdate(controller, 0.0f);
assertEquals(controller.mPendingAmbientColorTemperature, ambientColorTemperature, 0.001);
setEstimatedBrightnessAndUpdate(controller, upperBrightness + 1.0f);
assertEquals(controller.mPendingAmbientColorTemperature, ambientColorTemperature, 0.001);
}
void mockThrottler() { void mockThrottler() {
when(mResourcesSpy.getInteger( when(mResourcesSpy.getInteger(
R.integer.config_displayWhiteBalanceDecreaseDebounce)).thenReturn(0); R.integer.config_displayWhiteBalanceDecreaseDebounce)).thenReturn(0);