[xiph-commits] r13992 - trunk/speex/libspeex

jm at svn.xiph.org jm at svn.xiph.org
Mon Oct 15 16:06:39 PDT 2007


Author: jm
Date: 2007-10-15 16:06:39 -0700 (Mon, 15 Oct 2007)
New Revision: 13992

Modified:
   trunk/speex/libspeex/resample.c
Log:
Some comments on implementations details and link to the original Julius O.
Smith paper.


Modified: trunk/speex/libspeex/resample.c
===================================================================
--- trunk/speex/libspeex/resample.c	2007-10-15 23:06:26 UTC (rev 13991)
+++ trunk/speex/libspeex/resample.c	2007-10-15 23:06:39 UTC (rev 13992)
@@ -42,12 +42,15 @@
    isn't stable and I can actually promise that I *will* change the API
    some time in the future.
 
-TODO list:
-      - Variable calculation resolution depending on quality setting
-         - Single vs double in float mode
-         - 16-bit vs 32-bit (sinc only) in fixed-point mode
-      - Make sure the filter update works even when changing params 
-             after only a few samples procesed
+   This algorithm is based on this resampling algorithm by Julius O. Smith:
+   http://ccrma.stanford.edu/~jos/resample/
+   There is one main difference, though. This resampler uses cubic 
+   interpolation instead of linear interpolation in the above paper. This
+   makes the table much smaller and makes it possible to compute that table
+   on a per-stream basis. In turn, having a table for each stream makes it
+   possible to both reduce complexity on simple ratios (e.g. 2/3), and get
+   rid of the rounding operations in the inner loop. The latter both reduces
+   CPU time and makes the algorithm more SIMD-friendly.
 */
 
 #ifdef HAVE_CONFIG_H



More information about the commits mailing list