optimize AAC/EAAC/AAC+ encoding for ARM

Registered by Alexander Sack

 * Review AAC open-source encoders
 * Define test cases and allocate free test content
 * document performance hot spot identification mechanisms
 * create test-harness and keep track of performance numbers over time
 * hand optimize AAC encoders working together with upstream community

Blueprint information

Alexander Sack
Kan HU
Needs approval
Kan HU
Series goal:
Accepted for 11.05
Milestone target:
milestone icon 11.05-final
Started by
Alexander Sack
Completed by
Tom Gall

Related branches



[asac] drafter cannot attend UDS ... declining so we don't get a session.
[asac] the heavy lifting discussoin at UDS for codec optimizations will be done in https://blueprints.edge.launchpad.net/linaro-multimedia-wg/+spec/multimedia-linaro-optimize-codec-directions-1105 ... we might schedule this session if needed during the LDS.
[asac Nov 17]: work items each worth ~2 days of work are missing
[asac Nov 17]: wiki page needs to be renamed to have CamelCase naming scheme
[gsachin,rajeev]: workitems for 11.03 seem to be stretched , please check if some workitems need to be shifted to 11.04 and 11.05 ???
[kan]: ffmpeg aac encoder is float point and far away to achieve real-time encoding. Maybe we need switch to android aac encode for real-time requirement, need check license issue.


Work Items

Work items for 11.01:
Get a runnable i.MX51: DONE
Setup profile tools on i.MX51: DONE
Download and compile aac encoder and decoder in libavcodec only on i.MX51 arm board: DONE
Study he aac encoder algorithm: DONE

Work items for 11.02:
Choose several typical test cases for test performance and conformance and record them: DONE
Profile hot spot functions(Round 1): DONE
Check hot function(quantize_bands) implement: DONE
Optimize hot function with NEON: DONE
Evaluate AAC Encoder in Android: DONE
Create code hosting in git: DONE

Work items for 11.03:
Measure performance on typical vectors and record results: POSTPONED
Check algorithm and c code level potential optimization: POSTPONED
Optimize in algorithm and c code level: POSTPONED
Measure/Conformance test and record for optimized aac encoder: POSTPONED

Work items for 11.04:
Profile hot spot functions(Round 2): POSTPONED
Prioritise hot functions need optimized in NEON and document: POSTPONED
Implement or optimize top hot one or more functions in NEON: POSTPONED
Measure/Conformance test and document for optimized aac encoder: POSTPONED

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.