Rockbox

  • Status Unconfirmed
  • Percent Complete
    0%
  • Task Type Patches
  • Category Codecs
  • Assigned To No-one
  • Operating System PortalPlayer-based
  • Severity Low
  • Priority Very Low
  • Reported Version Version 3.1
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by stripwax - 2009-03-29

FS#10071 - Trying out Tremolo optimisations for tremor on ARM

This first patch is a merge of Tremolo’s bitwise.c and bitwiseARM.s code into rockbox libtremor. As a naive version of the merge, I have taken out the previous rockbox optimisations to huffman decode (originally implemented in  FS#6848 ). Versus svn, decoding speed is worse with this patch. However something that incorporates both  FS#6848  and the Tremolo bitwise optimisations for little-endian ARM may well turn out better. This patch is seriously not committable, the arch-specific stuff is not done cleanly in the headers or the makefile

including missing bitwiseARM.s from previous file. should go into apps/codecs/libtremor
Quick note on the patch - bitwise.c and bitwiseARM.s are unchanged from the Tremolo versions (so contains all the original testing code etc by the Tremolo author) - not a very clean patch in any case.

According to test_codec - vorbis_500 worse by about 9MHz over current svn, vorbis_096 worse by about 2MHz over current svn

Slightly saner / smaller version of patch

Updated patch to preserve the vorbis_book_decodevv_add_2ch_even and decode_packed_block functions from  FS#6848  (but significantly does NOT include the optimisation of the packed reads that were implemented in decode_packed_block in  FS#6848  i.e. we always just call back to decode_packed_entry_number ). Still noticeably worse than svn forall but the lowest bitrates (e.g. vorbis_500 worse by ~6MHz; vorbis_096 worse by 1.4MHz)

Also attaching runs of test_codec from current svn build (all codecs actually) and run of test_codec on vorbis with just this patch

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing