libpng NEON optimization
Most applications use the libpng reference library for decoding such images. Profiling indicates NEON optimisation of selected functions would provide a significant speedup.
Optimisation targets ultimately Linux and Android. This first phase targets the first release on Linaro Ubuntu evaluation build of libpng 1.5 NEON optimised.
Blueprint information
- Status:
- Complete
- Approver:
- Kurt Taylor
- Priority:
- Medium
- Drafter:
- None
- Direction:
- Approved
- Assignee:
- Mans Rullgard
- Definition:
- Approved
- Series goal:
- Accepted for 2011.11
- Implementation:
- Implemented
- Milestone target:
- 2011.10
- Started by
- Kurt Taylor
- Completed by
- Mans Rullgard
Related branches
Related bugs
Sprints
Whiteboard
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 Items
Work items:
Add configure flag to enable NEON: DONE
Add framework for assembler optimisations: DONE
Align row buffers as needed by asm code: DONE
Call filters using function pointers: DONE
Optimise sub filter, 3bpp, 4bpp: DONE
Optimise up filter, pixel size independent: DONE
Optimise average filter, 3bpp, 4bpp: DONE
Optimise paeth filter, 3bpp, 4bpp: DONE