• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Codecs
  • Assigned To No-one
  • Operating System SW-codec
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by saratoga - 2008-08-16
Last edited by saratoga - 2008-09-04

FS#9285 - Unified IMDCT library for Vorbis, WMA, and AAC

I’ve removed the Vorbis, WMA and AAC IMDCT code and replaced it with a single IMDCT called from the codeclib which is based on the IMDCT used by Vorbis. Because Vorbis and WMA already used this code, there should be no functional changes for these codecs. AAC gains a surprisingly small increase in speed (178%→202% realtime or a savings of about 5.3MHz on the 192k test track from the CodecPerformanceComparison page with Sansa e200). Unless I’m missing something, the enormously complex FFT used in FAAD may not have been so slow afterall, though the the Vorbis IMDCT is faster still.

My 1 test album sounds fine on PP, but I’d appreciate any testing on Coldfire. Benchmarks would also be nice.

Closed by  saratoga
2008-09-04 19:29
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407


nls commented on 2008-08-16 08:17

Hi i tried this out on my h300.
First two small problems, there’s a mistake in lib/SOURCES which makes it assemble the arm assembler version for everything and there’s a warning about discarded qualifiers in mdc2.c

It does sound fine on ogg and aac on my player, i seem to have lost my wma track.
Performance in ogg didn’t change and my aac track went from 140.9 % realtime to 184.7% a nice 31% speedup :) (the file is ~300kbps)

I also tried building the codeclib with O2 but that made no difference (codeclib is built with the same -O as the core so -Os for coldfire and -O for arm)

nls commented on 2008-08-16 08:21

one more little thing, building a sim fails in lib/misc.h, seems like just a missed ogg_uint32_t.

Fixed the issues listed by nls.
Added some additional clean up of filterbank.c and decoder.c to avoid allocating memory for structures that were no longer needed.


Available keyboard shortcuts


Task Details

Task Editing