Chromium Code Reviews
DescriptionImplement InterpolationMedium to filter animated images
Since r168759 we use bilinear filtering for animated images. There
are complaints about the drop in image quality. However we don't want to
spend a lot of CPU cycles doing high quality animations for upscaling.
This change is a compromise for animated images: we do a cheaper
mipmapping for downscaling and bilinear for upscaling. There is a
noticable quality improvement.
This change implements InterpolationMedium for GraphicsContext. It used
to be equivalent to InterpolationLow and is now a higher quality option.
All GraphicsContext::drawSomething() methods have |useLowQualityScale|
removed. This gives a much cleaner code.
I also discovered/fixed a couple small issues with interpolation levels:
* It is apparent now that InterpolationDefault means InterpolationHigh
on desktop and InterpolationLow on Android.
* Default for canvas elements used to InterpolationMedium but it
really meant InterpolationLow.
* There is a bug for rendering images in canvas that InterpolationNone
should be used but it has been InterpolationLow all along. I didn't
fix in this change but added a FIXME.
The new interpolation level does not affect non-animated images. There
is no need to rebaseline any pixel test. I added a test GIF file that
loops two identical frames. This is used to test the image quality.
BUG=353251
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=169585
Patch Set 1 #
Total comments: 24
Patch Set 2 : remove InterpolationQuality #Patch Set 3 : only ode change #Messages
Total messages: 14 (0 generated)
|