Google is working on an automatic white balance adjustment feature like Apple’s True Tone, possibly for the Pixel 4
In 2016, Apple introduced the iPad Pro with Apple’s True Tone display technology to dynamically adjust the white balance based on the ambient brightness. It’s a simple, yet very effective feature which enhances the reading experience at all brightness levels. Among Android device makers, only OnePlus and most recently, LG, have attempted to mimic True Tone, though only the latter has done so successfully. Now, we’ve found evidence that Google is working on such a display feature, and it’ll likely appear on the upcoming Google Pixel 4 series.
According to Dylan Raga, XDA’s Display Analyst, the basis of TrueTone in Apple devices comes from “the concept of chromatic adaptation in the human visual system, which allows an object to appear the same color even when viewed under different-colored lighting. This applies to reflective surfaces, such as any real-world object, but smartphone screens are emissive. Screens often appear overly-blue when viewed under warmer lighting. This is because the perceived white balance of the display changes with the color of the ambient lighting around you. To achieve the same visually-adapting property, the display should change its color temperature towards the color of the ambient lighting so that it appears that the screen’s surface is being illuminated by the color of the ambient lighting. This makes the screen appear consistent regardless of the color of ambient lighting.” If implemented on the Google Pixel 4 and Pixel 4 XL, this is how it’ll most likely work.
The evidence for the inclusion of this feature dates back to the leaked build that we obtained in January. In that build, we found that Android Q had a placeholder setting to toggle the “display white balance.” Back then and even today, it still does nothing. After doing some digging, we’ve found out why: It requires an entirely new sensor not present on existing Google Pixel smartphones. That sounds similar to another likely Pixel 4 feature we just posted about earlier today.
17) Google is testing a new “display white balance” display setting and the ability to restrict individual permissions. Both are disabled by default – I had to use an overlay to enable them. The former doesn’t work while the latter is implemented. pic.twitter.com/Ad4SmF6kBO
— Mishaal Rahman (@MishaalRahman) February 22, 2019
Within the Settings app in Android Q, there’s a new class called
DisplayWhiteBalancePreferenceController. It checks whether the boolean framework value
config_displayWhiteBalanceAvailable is set to true before allowing the above toggle to be shown in Display settings. It also requires that the current color mode on the Pixel isn’t set to “2,” which corresponds to “Saturated” on the Pixel 2 and “Adaptive” on the Pixel 3. According to Dylan Raga, the feature “doesn’t work on the Saturated color profile since that profile is not properly color managed and not calibrated”, meaning it “most likely does not have the calibration data to properly perform the necessary color space transformations.” Besides the preference controller class, there’s nothing else in Settings or SystemUI for this new feature.
However, within the framework are multiple integers, integer arrays, string arrays, and finally a string that confirm this feature is for dynamically adjusting the white balance based on brightness, and that it requires a new sensor. The following integers, integer arrays, and string arrays confirm that the “
displayWhiteBalance” feature sets a different white balance value based on the ambient color temperature and brightness level.
displayWhiteBalance resources in framework-res
<array name="config_displayWhiteBalanceAmbientColorTemperatures" />[[!!]]<array name="config_displayWhiteBalanceBaseThresholds">[[!!]]<item>0.0</item>[[!!]]</array>[[!!]]<array name="config_displayWhiteBalanceDecreaseThresholds">[[!!]]<item>0.1</item>[[!!]]</array>[[!!]]<array name="config_displayWhiteBalanceDisplayColorTemperatures" />[[!!]]<string-array name="config_displayWhiteBalanceDisplayNominalWhite">[[!!]]<item>0.950456</item>[[!!]]<item>1.000000</item>[[!!]]<item>1.089058</item>[[!!]]</string-array>[[!!]]<string-array name="config_displayWhiteBalanceDisplayPrimaries">[[!!]]<item>0.412315</item>[[!!]]<item>0.212600</item>[[!!]]<item>0.019327</item>[[!!]]<item>0.357600</item>[[!!]]<item>0.715200</item>[[!!]]<item>0.119200</item>[[!!]]<item>0.180500</item>[[!!]]<item>0.072200</item>[[!!]]<item>0.950633</item>[[!!]]<item>0.950456</item>[[!!]]<item>1.000000</item>[[!!]]<item>1.089058</item>[[!!]]</string-array>[[!!]]<array name="config_displayWhiteBalanceIncreaseThresholds">[[!!]]<item>0.1</item>[[!!]]</array>[[!!]][[!!]]<integer name="config_displayWhiteBalanceBrightnessFilterHorizon">10000</integer>[[!!]]<integer name="config_displayWhiteBalanceBrightnessSensorRate">250</integer>[[!!]]<integer name="config_displayWhiteBalanceColorTemperatureDefault">6500</integer>[[!!]]<integer name="config_displayWhiteBalanceColorTemperatureFilterHorizon">10000</integer>[[!!]]<integer name="config_displayWhiteBalanceColorTemperatureMax">8000</integer>[[!!]]<integer name="config_displayWhiteBalanceColorTemperatureMin">4000</integer>[[!!]]<integer name="config_displayWhiteBalanceColorTemperatureSensorRate">250</integer>[[!!]]<integer name="config_displayWhiteBalanceDecreaseDebounce">5000</integer>[[!!]]<integer name="config_displayWhiteBalanceIncreaseDebounce">5000</integer>
What’s more telling, however, is the following string which confirms that the feature requires a new Google sensor:
This sensor isn’t found on any of the existing Google Pixel smartphones, so it could be new to the Google Pixel 4 series. Furthermore, we’ve seen other Google sensors with the “com.google.sensor” naming scheme such as Active Edge (
com.google.sensor.elmyra) and Pixel Stand (
com.google.sensor.dreamliner). Thus, there’s a good chance this “
com.google.sensor.color” refers to an ambient light sensor capable of measuring color data.
The TMD2725 in the Google Pixel 3 doesn’t seem capable, but maybe whatever sensor is used in the Pixel 4 will be. The ToF sensor on the LG G8 ThinQ is paired with an ambient light sensor capable of detecting color, which Dylan says is something that ambient light sensor vendors are starting to do. Perhaps the Google Pixel 4 will include such a package—after all, we’re expecting the Pixel 4 to support secure facial recognition.