Contact emails
vmp...@chromium.org, eri...@chromium.org, p...@chromium.org
Spec
This is left to the user agent in https://drafts.csswg.org/css-images-3/#the-image-rendering
Summary
We'd like to switch the default image upscaling algorithm from bicubic to bilinear.
Motivation
Switching to bilinear interpolation for upscales will be faster, use less memory, and match other browsers. The memory savings come from an implementation detail of how we cache upscaled images: the bilinear codepath caches only the original image whereas the bicubic codepath caches the upscaled image. In addition, by unifying our image pipeline to use bilinear everywhere, we will be able to remove the ImageQualityController which is responsible for the visual "pop" as an animating image changes quality (https://crbug.com/503040).
Bilinear: 
Bilinear: 
Interoperability and Compatibility Risk
I tested Safari/WebKit, Firefox/Gecko, and Edge, and found they all appear to use bilinear for upscales. For posterity, I've archived these tests at https://docs.google.com/document/d/1tYMrIcvNP1H0eecO-fc0-km9DxlVlIAvAA90_mXyiJ8/.
Ongoing technical constraints
None.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
This change will only affect desktop platforms. Android is already special-cased to use bilinear interpolation.
OWP launch tracking bug
Link to entry on the feature dashboard
No entry, this is a relatively small change.
Requesting approval to ship?
Yes.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJgFLLvgoN-WvRwGsDkVF-FvEWLsW8JGwvXBA0a1gw58kcqXJg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdikfDdEULZSreW0nJ8Q4Y%3Dzgf1Cnc%3DghLY-fv5xGfuTg%40mail.gmail.com.
--
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMGbLiGxxdinED-kg%3DRtk1J%2BAejevM7egaVuPjZ2boAA0C0o_w%40mail.gmail.com.
--
I assume downsampling is unaffected? What is used for downsampling these days?
On Fri, Jul 7, 2017 at 1:40 PM, Brett Wilson <bre...@chromium.org> wrote:I assume downsampling is unaffected? What is used for downsampling these days?You're right that downsampling is unaffected in this case. For downsampling we use mipmaps to do the scaling. Specifically, in software rasterization, we get the mip level at or above desired scale and then use bilinear interpolation. For gpu rasterization, we generate the full mip chain and use trilinear interpolation. There are some more special cases when it comes to gpu rasterization on android, in which case we may use bilinear interpolation similar to software rasterization.