More silk/ resampler cleanup.
authorGregory Maxwell <greg@xiph.org>
Thu, 29 Sep 2011 20:20:38 +0000 (16:20 -0400)
committerGregory Maxwell <greg@xiph.org>
Thu, 29 Sep 2011 20:20:38 +0000 (16:20 -0400)
silk/resampler_private.h
silk/resampler_private_ARMA4.c [deleted file]
silk/resampler_private_IIR_FIR.c
silk/silk_common.vcxproj
silk/silk_common.vcxproj.filters
silk_sources.mk

index 9273637..36292c6 100644 (file)
@@ -88,16 +88,6 @@ void silk_resampler_private_AR2(
     opus_int32                        len                /* I:    Signal length                            */
 );
 
-/* Fourth order ARMA filter */
-void silk_resampler_private_ARMA4(
-    opus_int32                        S[],            /* I/O: State vector [ 4 ]                        */
-    opus_int16                        out[],            /* O:    Output signal                            */
-    const opus_int16                    in[],            /* I:    Input signal                            */
-    const opus_int16                    Coef[],            /* I:    ARMA coefficients [ 7 ]                 */
-    opus_int32                        len                /* I:    Signal length                            */
-);
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/silk/resampler_private_ARMA4.c b/silk/resampler_private_ARMA4.c
deleted file mode 100644 (file)
index 73bcf59..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/***********************************************************************
-Copyright (c) 2006-2011, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-***********************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "SigProc_FIX.h"
-#include "resampler_private.h"
-
-/* Fourth order ARMA filter                                             */
-/* Internally operates as two biquad filters in sequence.               */
-
-/* Coeffients are stored in a packed format:                                                        */
-/*    { B1_Q14[1], B2_Q14[1], -A1_Q14[1], -A1_Q14[2], -A2_Q14[1], -A2_Q14[2], gain_Q16 }            */
-/* where it is assumed that B*_Q14[0], B*_Q14[2], A*_Q14[0] are all 16384                           */
-
-void silk_resampler_private_ARMA4(
-    opus_int32                        S[],            /* I/O: State vector [ 4 ]                        */
-    opus_int16                        out[],            /* O:    Output signal                            */
-    const opus_int16                    in[],            /* I:    Input signal                            */
-    const opus_int16                    Coef[],            /* I:    ARMA coefficients [ 7 ]                 */
-    opus_int32                        len                /* I:    Signal length                            */
-)
-{
-    opus_int32 k;
-    opus_int32 in_Q8, out1_Q8, out2_Q8, X;
-
-    for( k = 0; k < len; k++ ) {
-        in_Q8  = silk_LSHIFT32( (opus_int32)in[ k ], 8 );
-
-        /* Outputs of first and second biquad */
-        out1_Q8 = silk_ADD_LSHIFT32( in_Q8,   S[ 0 ], 2 );
-        out2_Q8 = silk_ADD_LSHIFT32( out1_Q8, S[ 2 ], 2 );
-
-        /* Update states, which are stored in Q6. Coefficients are in Q14 here */
-        X      = silk_SMLAWB( S[ 1 ], in_Q8,   Coef[ 0 ] );
-        S[ 0 ] = silk_SMLAWB( X,      out1_Q8, Coef[ 2 ] );
-
-        X      = silk_SMLAWB( S[ 3 ], out1_Q8, Coef[ 1 ] );
-        S[ 2 ] = silk_SMLAWB( X,      out2_Q8, Coef[ 4 ] );
-
-        S[ 1 ] = silk_SMLAWB( silk_RSHIFT32( in_Q8,   2 ), out1_Q8, Coef[ 3 ] );
-        S[ 3 ] = silk_SMLAWB( silk_RSHIFT32( out1_Q8, 2 ), out2_Q8, Coef[ 5 ] );
-
-        /* Apply gain and store to output. The coefficient is in Q16 */
-        out[ k ] = (opus_int16)silk_SAT16( silk_RSHIFT32( silk_SMLAWB( 128, out2_Q8, Coef[ 6 ] ), 8 ) );
-    }
-}
-
-
index 7450dc4..9c9ffca 100644 (file)
@@ -74,13 +74,9 @@ void silk_resampler_private_IIR_FIR(
     while( 1 ) {
         nSamplesIn = silk_min( inLen, S->batchSize );
 
-        if( S->input2x == 1 ) {
-            /* Upsample 2x */
-                silk_resampler_private_up2_HQ( S->sIIR, &buf[ RESAMPLER_ORDER_FIR_144 ], in, nSamplesIn );
-        } else {
-            /* Fourth-order ARMA filter */
-            silk_resampler_private_ARMA4( S->sIIR, &buf[ RESAMPLER_ORDER_FIR_144 ], in, S->Coefs, nSamplesIn );
-        }
+        silk_assert( S->input2x );
+        /* Upsample 2x */
+        silk_resampler_private_up2_HQ( S->sIIR, &buf[ RESAMPLER_ORDER_FIR_144 ], in, nSamplesIn );
 
         max_index_Q16 = silk_LSHIFT32( nSamplesIn, 16 + S->input2x );         /* +1 if 2x upsampling */
         out = silk_resampler_private_IIR_FIR_INTERPOL(out, buf, max_index_Q16, index_increment_Q16);
index 616103b..76bd1c1 100644 (file)
     <ClCompile Include="resampler_down2.c" />\r
     <ClCompile Include="resampler_down2_3.c" />\r
     <ClCompile Include="resampler_private_AR2.c" />\r
-    <ClCompile Include="resampler_private_ARMA4.c" />\r
     <ClCompile Include="resampler_private_down_FIR.c" />\r
     <ClCompile Include="resampler_private_IIR_FIR.c" />\r
     <ClCompile Include="resampler_private_up2_HQ.c" />\r
index 27bc670..42d1f64 100644 (file)
     <ClCompile Include="resampler_private_AR2.c">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="resampler_private_ARMA4.c">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="resampler_private_down_FIR.c">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
index 78a3ec5..05d9636 100644 (file)
@@ -71,7 +71,6 @@ silk/resampler.c \
 silk/resampler_down2_3.c \
 silk/resampler_down2.c \
 silk/resampler_private_AR2.c \
-silk/resampler_private_ARMA4.c \
 silk/resampler_private_down_FIR.c \
 silk/resampler_private_IIR_FIR.c \
 silk/resampler_private_up2_HQ.c \