All versions of Android prior to 8.0 Oreo did not support color management whatsoever. The operating system was built for sRGB, and assumed that every smartphone display was sRGB compliant. This meant that when you viewed an image, Android assumed it was sRGB, ignored any color profile, and sent the raw color information to the display. Several generations ago, display technology - particularly Samsung AMOLED, but LCDs as well - progressed to the point where gamuts wider than sRGB could be produced. As Android could only ever push raw information to the display, these uncalibrated wide gamut displays would take sRGB images and effectively ’expand’ them to the wider gamut they could display. The result? Oversaturation and increased vibrancy. Over the past few years, this behaviour has become the standard among high-end smartphones. The Galaxy S8, for example, can produce 144% of the sRGB gamut, which results in serious oversaturation of sRGB imagery. But the perception among many users is that this behaviour is visually pleasing, as colors pop more, saturation is increased, and in general things look ‘better’ (if less accurate). Note that some smartphones, like the Galaxy S8, do have different display modes that restrict the display from outputting at its full gamut, thus reducing oversaturation and creating a more accurate output. But without color management baked in to Android, there was no way to get the best of both worlds: you couldn’t have a phone that displayed sRGB images within the sRGB gamut, but then used the full gamut of the screen to display DCI-P3 or other wide-gamut images. Android 8.0 Oreo introduces this key component - color management - for the first time. It’s a bit of a work in progress right now, but the process for true color management has begun. To cut a long story short, the way color management currently works is that developers must flag they want to use wider gamuts in their apps. If they don’t enable the wide gamut flag, their apps will output at sRGB by default. Currently, no app in Android appears to use this wide gamut flag, even Google’s stock apps, so Oreo is stuck using the sRGB gamut for now. Here’s where the Pixel 2 XL comes in. Its display is supposedly capable of 100% DCI-P3 color reproduction. This gamut is mapped to the wide gamut feature of Android 8.0’s color management system, while sRGB is mapped to the standard mode. In other words, when apps want wide gamut, the Pixel 2 XL’s display will push up into the DCI-P3 color space, but most of the time it will use sRGB.
The key difference between this implementation and previous smartphones like the Galaxy S8, is there is no expanding of sRGB images to a wider gamut, thus there is no oversaturation. This makes the Pixel 2 XL’s display much more accurate, but it does look less vibrant compared to a smartphone that does expand images to a wider gamut. Place the Pixel 2 XL next to basically any recently-released flagship phone, and the Pixel 2 XL’s display will look undersaturated in comparison. But it’s not the Pixel 2 XL that is wrong. It’s the other, more saturated display that is producing incorrect colors. When the Pixel 2 XL gets wide-gamut imagery, correctly flagged as more vibrant than sRGB, it will display it correctly and it too will look saturated and beautiful. So this is all nice, right? The Pixel 2 XL’s display is more accurately displaying imagery, but it can produce wide gamuts when requested? Isn’t that good news? Well not quite. Firstly, many users prefer the oversaturated look of modern smartphones. The Pixel 2 XL cannot provide this by default, so it looks undersaturated in comparison. However, you can move to an oversaturated look through a display mode setting, more on that later.
Secondly, and most importantly, the Pixel 2 XL’s display is not actually sRGB accurate. Yes, it’s more accurate than many competing smartphones with oversaturated colors and strong blue tints, but it’s not perfectly accurate. The Pixel 2’s display comprehensively beats it across the board, with better sRGB accuracy, and as a result it just looks better. In fact I love the color reproduction on the Pixel 2, and it seems many others do too: there aren’t nearly as many complaints about the Pixel 2 display, even though it too appears undersaturated compared to the oversaturated standard of most flagships. This presents an interesting question: if both the Pixel 2 and Pixel 2 XL are more accurate than most other flagships, then why is it only the Pixel 2 XL that looks bad? If it was sRGB accuracy and its apparent undersaturation causing complaints, why are people only complaining about the Pixel 2 XL and not both handsets? To answer this question, I’m going to highlight a range of issues specific to the Pixel 2 XL’s color reproduction.
The gamut of the Pixel 2 XL is below sRGB, even in the default ‘boosted’ mode. Google says the boosted mode is supposed to increase saturation by 10%, while turning to natural mode produces sRGB accurate colors. This is true on the Pixel 2: you’ll get 114% of the sRGB gamut in boosted mode, compared to 96% when in natural mode. The Pixel 2 XL, however, produces just 97% in the boosted mode, and 92% when in the natural mode. So in neither of these modes do you get full sRGB reproduction. The key issue here is blue reproduction, which fails to hit the maximum saturation of sRGB in the boosted mode, while other colors can be oversaturated at times. Blue is a key color throughout the OS, apps, and photos, so when it is undersaturated, the display can look washed out. Even more critical is blue performance at low luminance levels, which is muted and downright terrible. This contributes to poor blue performance overall, and I think this is the key aspect that causes people to complain of washed out and disappointing colors. Again, this is not an issue on the Pixel 2, which has a far superior display.
The other problem is color temperature and white balance across the full greyscale range. At full white, the Pixel 2 XL isn’t bad, with a temperature of 6893K (slightly blue). But greys below about 70% white are tinted yellow, which leads to an average color temperature of 6317K. In many cases this tint is quite unpleasant, especially compared to accurate displays or displays with an average temperature above 6500K, like the Pixel 2. If you’re looking at a photo and wondering why everything looks a bit too yellow, this is why.
In general, the Pixel 2 XL has decent dE2000 averages in tests like greyscale (2.67), saturation (2.36) and our custom ColorChecker test (3.04), where most phones push above the 4.0 mark. But it’s key aspects like a yellow tint overall, and poor blue performance at lower luminances, that lead to a poor viewing experience.
Some of these issues can be fixed by switching from the boosted or natural modes, to the new saturated mode Google implemented in a software update. Here, sRGB coverage extends from 97% to 145%, with a corresponding boost in saturation. This makes the Pixel 2 XL’s display significantly less accurate, but it does help make the display look more like the vibrant, saturated OLED panels you’re used to. The saturated mode also solves the aforementioned issue with blue saturation at low luminance levels, which makes the display look significantly less dull across the board. While it’s not the default mode, most people will probably prefer switching into this display mode for the ‘best’ (though least accurate) viewing experience. However, it does not solve the issues with white balance, so in general there is still a yellow tint across the board. It doesn’t solve the most critical hardware issues with the display either. I also think the new saturated mode is a bit of a quick hack rather than a true solution to the problem. The display is capable of better performance in the boosted and natural modes, particularly if Google updates these modes to address white balance and low luminance blues. The boosted mode could also be updated to truly support 110% of the sRGB gamut, rather than forcing people to jump from sub 100% coverage up to a hugely oversaturated 145%. If Google fixes the boosted and natural modes, the Pixel 2 XL would deliver a great mix of accuracy and saturation, with the ability to push up into the DCI-P3 color space when apps request to do so. Right now, though, the phone is left with a quick hack oversatured mode that compromises Google’s accuracy and color management goals, without even solving every issue. It does make the display look better than by default, but it’s an interim step, and I hope Google keeps working on improving the Pixel 2 XL’s display performance.