[tremor] [PATCH] another additional 15% performance gain

timmy brolin timmy at home.se
Wed Oct 9 16:50:19 PDT 2002



May I suggest that you also include the linear interpolation of the large 4096 and 8192 size sin and cos mdct tables under the _LOW_ACCURACY_ define, and keep the full tables by default?
After all, linear interpolation does result in lower accuracy.


---
Timmy

-----Original Message-----
From: Nicolas Pitre <nico at cam.org>
To: tremor at xiph.org
Date: Wed, 9 Oct 2002 14:29:44 -0400 (EDT)
Subject: [tremor] [PATCH] another additional 15% performance gain

<p>This is the completion of my 32 bit only multiply operation patch.  It is
faster for sure but also less accurate than 64 bit multiplications.  Might
be handy for slow CPUs or without native 64 bit multiplications, or for
those out there with poor compilers (any EVC user wants to try out?).

The patch adds a --enable-low-accuracy configure option so this is 
configurable before compiling.  For those not using the configure script you 
need to globally define _LOW_ACCURACY_ to enable this feature.  Otherwise 
the resulting code remains just like before by default.

Although the audio degradation is mostly inaudible it is still there
nevertheless.  So this is not recommended if absolute high quality audio is
needed.  On the other hand some people will still find the audio quality
more than acceptable for their use.  This is a price to pay for faster code.

With _LOW_ACCURACY_ enabled there was also a nice opportunity for text size 
reduction:

Default configuration:

   text    data     bss     dec     hex filename
  49607   45256    4160   99023   182cf ivorbisfile_example

With ./configure --enable-low-accuracy:

   text    data     bss     dec     hex filename
  47655   14632    4160   66447   1038f ivorbisfile_example

The patch is available from:

ftp://ftp.arm.linux.org.uk/pub/linux/arm/people/nico/vorbis/low_accuracy.diff.gz

Although the patch itself is largish, the actual code addition is quite 
small.  The bulk of the patch consists of the addition of a X() on table 
values to preshift them when _LOW_ACCURACY_ is defined.

I'd like to see this patch merged in the CVS at some point.  Monty?

<p>Nicolas

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'tremor-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

<p><p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'tremor-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.




More information about the Tremor mailing list