Rockbox

  • Status Closed
  • Percent Complete
    100%
  • 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 MichaelGiacomelli - 2008-08-16
Last edited by MichaelGiacomelli - 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  MichaelGiacomelli
2008-09-04 19:29
Reason for closing:  Accepted
Additional comments about closing:  

r18412+r18413.

Nils Wallménius 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)

Nils Wallménius 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.

MichaelGiacomelli commented on 2008-08-16 20:02

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.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing