Rockbox

Tasklist

FS#2817 - Tremor codec optimizations

Attached to Project: Rockbox
Opened by Brandon Low (lostlogic) - Saturday, 10 December 2005, 16:17 GMT
Last edited by Brandon Low (lostlogic) - Wednesday, 21 December 2005, 22:57 GMT
Task Type Patches
Category
Status Closed
Assigned To No-one
Operating System
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

This patch improves Tremor performance by a few percent
compared to what is in CVS currently.

I created this patch based on advice from devs, and
profiling results. The strategy I followed was to put
all data arrays into IRAM first, except those which
were identified as not being used in current encodings
by IRC:Lear. Then I used profiling results, and nm
-BnS output to determing which parts of code were
causing cache thrashing, and moved those parts to IRAM
where they could be called rapidly without trashing the
cache for other more often used or smaller functions.
Finally, I inlined two of the three remaining most
called functions by combining bitwise.c and codebook.c
into codebook.c. The remaining most called function
was not easily inlinable, it is vorbis_book_decodevv_add.

That function and oggpack_look and oggpack_adv would be
great candidates for further optimization, along with
the mdct that I believe someone is already working on.
This task depends upon

Closed by  Brandon Low (lostlogic)
Wednesday, 21 December 2005, 22:57 GMT
Reason for closing:  Out of Date
Additional comments about closing:  Logged In: YES
user_id=838556

This is out of date. Making new patch.
Comment by Anonymous Submitter - Sunday, 18 December 2005, 13:47 GMT

I got approx 10% less boost with this patch on -q4 Vorbis
files :)

However when applying this patch i believe there is a
linking problem, i got a problem building and had to delete
libTremor.a and rebuild.
Comment by ep0ch (ep0ch1978) - Sunday, 18 December 2005, 13:49 GMT

I got approx 10% less boost with this patch on -q4 Vorbis
files :)

However when applying this patch i believe there is a
linking problem, i got a problem building and had to delete
libTremor.a and rebuild.
Comment by Brandon Low (lostlogic) - Sunday, 18 December 2005, 15:16 GMT

Yes, a clean rebuild of libTremor.a will be required with
this patch, because it removes bitwise.c (merged with
codebook.c to vacilitate inlining).

I have some more optimizations that I'll incorporate with
this pretty soon :)
Comment by Brandon Low (lostlogic) - Monday, 19 December 2005, 14:15 GMT

Yes, a clean rebuild of libTremor.a will be required with
this patch, because it removes bitwise.c (merged with
codebook.c to vacilitate inlining).

I have some more optimizations that I'll incorporate with
this pretty soon :)
Comment by Brandon Low (lostlogic) - Wednesday, 21 December 2005, 22:57 GMT

This is out of date. Making new patch.

Loading...