libpng NEON optimization

Registered by Kurt Taylor

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:
milestone icon 2011.10
Started by
Kurt Taylor
Completed by
Mans Rullgard

Related branches

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

This blueprint contains Public information 
Everyone can see this information.