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. |
{{#set:Feature name=High-quality image scaling
|Feature stage=Landed |Feature status=Complete |Feature version=Firefox 7 |Feature health=OK |Feature 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 | ` |
{{#set:Feature product manager=Thomas Arend
|Feature feature manager=Jeff |Feature lead engineer=Matt Brubeck |Feature security lead=` |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=Andreea Pod [e-mail] |Feature ux lead=` |Feature product marketing lead=` |Feature operations lead=` |Feature 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 supportbug 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
` {{#set:Feature open issues and risks=` |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.
|Feature users and use cases=`
|Feature dependencies=`
|Feature requirements=`
|Feature non-goals=`
|Feature functional spec=`
|Feature ux design=`
|Feature implementation plan=`
|Feature security review=`
|Feature privacy review=`
|Feature localization review=`
|Feature accessibility review=`
|Feature qa review=* Fennec/Features/imgscale/testplan
|Feature operations review=`
|Feature implementation notes=* 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
|Feature landing criteria=` }}
Feature details
Priority | P1 |
Rank | 999 |
Theme / Goal | Experience |
Roadmap | Firefox Mobile |
Secondary roadmap | ` |
Feature list | Mobile |
Project | ` |
Engineering team | Graphics |
{{#set:Feature priority=P1
|Feature rank=999 |Feature theme=Experience |Feature roadmap=Firefox Mobile |Feature secondary roadmap=` |Feature list=Mobile |Feature project=` |Feature engineering team=Graphics }}
Team status notes
status | notes | |
Products | ` | ` |
Engineering | ` | ` |
Security | fuzzing | fuzzing? |
Privacy | ` | ` |
Localization | ` | ` |
Accessibility | ` | ` |
Quality assurance | ` | ` |
User experience | ` | ` |
Product marketing | ` | ` |
Operations | ` | ` |
{{#set:Feature products status=`
|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=fuzzing |Feature security health=` |Feature security notes=fuzzing? |Feature privacy status=` |Feature privacy notes=` |Feature localization status=` |Feature localization notes=` |Feature accessibility status=` |Feature accessibility notes=` |Feature qa status=` |Feature qa notes=` |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}