|High-quality image scaling|
|Release target||Firefox 7|
|Status note||Landed in Firefox 6 for NEON devices, and in Firefox 7 for non-NEON (Tegra) devices.|
|Product manager||Thomas Arend|
|Directly Responsible Individual||Jeff|
|Lead engineer||Matt Brubeck|
|QA lead||Andreea Pod [e-mail]|
|Product marketing lead||`|
Stage 1: Definition
1. Feature overview
Mobile Firefox 5 and earlier always used nearest-neighbor interpolation because its high-quality scaling algorithms weren't fast enough to keep up with fast scrolling or zooming on ARM-based mobile hardware. This feature is about switching to high-quality image scaling while balancing the impact on page rendering speed.
Firefox 6 (currently on the beta channel) now has a high-quality "bilinear" interpolation algorithm implemented in optimized assembly using NEON, a SIMD instruction set supported by most recent ARM cores except for the Nvidia Tegra core found in the most other Honeycomb tablets, and also some recent high-end phones). Images look much nicer in Firefox 6 on most current Android phones, but not on Tegra-based tablets or phones. For some details, see bug 598736.
For Tegra devices like the Xoom, we don't have fast bilinear interpolation code. On the Aurora channel for Firefox 7 we are switching to bilinear scaling anyway; this makes images look nicer but the also take longer to render when scrolling or zooming. See bug 669851 for discussion of this change.
It may also be possible to do high-quality scaling on all devices without regressing our rendering speed, either by writing separate optimized ARM code for Tegra devices, or by turning on OpenGL accelaration and doing image scaling on the GPU bug 650988.
2. Users & use cases
Stage 2: Design
5. Functional specification
6. User experience design
Stage 3: Planning
7. Implementation plan
Quality Assurance review
Stage 4: Development
bug 598736(FIXED for Firefox 6) - Use higher-quality software scaling on devices with NEON support
bug 669851(FIXED for Firefox 7) - Use higher-quality software scaling on devices without NEON support
- bug 650988 - Do image scaling on the GPU with OpenGL layers
- Depends on Platform/Features/GLESAcceleratedLayers
Stage 5: Release
10. Landing criteria
|Theme / Goal||Experience|
Team status notes