libpng NEON optimisation - phase 2: Auto-detecting NEON

Registered by Ilias Biris

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:
milestone icon 2011.11
Started by
Ilias Biris
Completed by
Ilias Biris

Related branches

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

This blueprint contains Public information 
Everyone can see this information.