]> code.delx.au - pulseaudio/commit
sbc: ARMv6 optimized version of analysis filter for SBC encoder
authorSiarhei Siamashka <siarhei.siamashka@nokia.com>
Mon, 14 Mar 2011 18:35:03 +0000 (15:35 -0300)
committerLuiz Augusto von Dentz <luiz.dentz-von@nokia.com>
Mon, 14 Mar 2011 18:45:27 +0000 (15:45 -0300)
commit82ef8346d8b962fedff58b6cd579b1bb25227c49
tree5903a4876d6c60a17a374dcbc511d714634ad98b
parent51d5f3c9fda454e78e87e05029a34b56b0815186
sbc: ARMv6 optimized version of analysis filter for SBC encoder

The optimized filter gets enabled when the code is compiled
with -mcpu=/-march options set to target the processors which
support ARMv6 instructions. This code is also disabled when
NEON is used (which is a lot better alternative). For additional
safety ARM EABI is required and thumb mode should not be used.

Benchmarks from ARM11:

== 8 subbands ==

$ time ./sbcenc -b53 -s8 -j test.au > /dev/null

real    0m 35.65s
user    0m 34.17s
sys     0m 1.28s

$ time ./sbcenc.armv6 -b53 -s8 -j test.au > /dev/null

real    0m 17.29s
user    0m 15.47s
sys     0m 0.67s

== 4 subbands ==

$ time ./sbcenc -b53 -s4 -j test.au > /dev/null

real    0m 25.28s
user    0m 23.76s
sys     0m 1.32s

$ time ./sbcenc.armv6 -b53 -s4 -j test.au > /dev/null

real    0m 18.64s
user    0m 15.78s
sys     0m 2.22s
src/Makefile.am
src/modules/bluetooth/sbc/sbc_primitives.c
src/modules/bluetooth/sbc/sbc_primitives_armv6.c [new file with mode: 0644]
src/modules/bluetooth/sbc/sbc_primitives_armv6.h [new file with mode: 0644]