libpng NEON optimisation - phase 2: Auto-detecting NEON
Most applications use the libpng reference library for decoding such images. Profiling indicates NEON optimisation of selected functions would provide a significant speedup. This second phase of the work will include auto-detection of NEON as well as improving filters for pixel sizes other than 3bpp or 4bpp which were implemented in the first phase (11.10 release)
Optimisation targets Linux (Ubuntu) for start.
Blueprint information
- Status:
- Complete
- Approver:
- Ilias Biris
- Priority:
- Medium
- Drafter:
- Mans Rullgard
- Direction:
- Needs approval
- Assignee:
- Mans Rullgard
- Definition:
- New
- Series goal:
- Accepted for 2011.11
- Implementation:
- Implemented
- Milestone target:
- 2011.11
- Started by
- Ilias Biris
- Completed by
- Ilias Biris
Related branches
Related bugs
Sprints
Whiteboard
[ibiris, 21Nov2011: postponing work related to other pixel sizes - those are not very useful as they are rare. Also moving checksum calculation and excessive memcpy optimisations to new blueprint]
Headline:
PNG is the standard format for non-photographic images on the web. These optimisations allow faster rendering of web pages using less power.
Acceptance:
Improved decoding speed in benchmarks, exact speedup depending on source image. No regressions. Work will be carried on top of the 11.10 linaro release and covers libpng v1.5.
Work Items
Work items:
Auto-detect whether to enable NEON: DONE
Runtime NEON detection: DONE
Optimise sub filter, other pixel size: POSTPONED
Optimise average filter, other pixel sizes: POSTPONED
Optimise paeth filter, other pixel sizes: POSTPONED
Release code to Linaro Ubuntu evaluation build: DONE
Submit upstream: DONE