Fennec/Features/imgscale
Status
High-quality image scaling | |
Stage | Landed |
Status | Complete |
Release target | Firefox 7 |
Health | OK |
Status note | Landed in Firefox 6 for NEON devices, and in Firefox 7 for non-NEON (Tegra) devices. |
Team
Product manager | Thomas Arend |
Directly Responsible Individual | Jeff |
Lead engineer | Matt Brubeck |
Security lead | ` |
Privacy lead | ` |
Localization lead | ` |
Accessibility lead | ` |
QA lead | Andreea Pod [e-mail] |
UX lead | ` |
Product marketing lead | ` |
Operations lead | ` |
Additional members | ` |
Open issues/risks
`
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
`
3. Dependencies
`
4. Requirements
`
Non-goals
`
Stage 2: Design
5. Functional specification
`
6. User experience design
`
Stage 3: Planning
7. Implementation plan
`
8. Reviews
Security review
`
Privacy review
`
Localization review
`
Accessibility
`
Quality Assurance review
Operations review
`
Stage 4: Development
9. Implementation
-
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
`
Feature details
Priority | P1 |
Rank | 999 |
Theme / Goal | Experience |
Roadmap | Firefox Mobile |
Secondary roadmap | ` |
Feature list | Mobile |
Project | ` |
Engineering team | Graphics |
Team status notes
status | notes | |
Products | ` | ` |
Engineering | ` | ` |
Security | fuzzing | fuzzing? |
Privacy | ` | ` |
Localization | ` | ` |
Accessibility | ` | ` |
Quality assurance | ` | ` |
User experience | ` | ` |
Product marketing | ` | ` |
Operations | ` | ` |