aboutsummaryrefslogtreecommitdiff
path: root/src/common_audio/signal_processing_library/main/source/resample_by_2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common_audio/signal_processing_library/main/source/resample_by_2.c')
-rw-r--r--src/common_audio/signal_processing_library/main/source/resample_by_2.c135
1 files changed, 0 insertions, 135 deletions
diff --git a/src/common_audio/signal_processing_library/main/source/resample_by_2.c b/src/common_audio/signal_processing_library/main/source/resample_by_2.c
deleted file mode 100644
index 7ed4cfde09..0000000000
--- a/src/common_audio/signal_processing_library/main/source/resample_by_2.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-
-/*
- * This file contains the resampling by two functions.
- * The description header can be found in signal_processing_library.h
- *
- */
-
-#include "signal_processing_library.h"
-
-// allpass filter coefficients.
-static const WebRtc_UWord16 kResampleAllpass1[3] = {3284, 24441, 49528};
-static const WebRtc_UWord16 kResampleAllpass2[3] = {12199, 37471, 60255};
-
-// decimator
-void WebRtcSpl_DownsampleBy2(const WebRtc_Word16* in, const WebRtc_Word16 len,
- WebRtc_Word16* out, WebRtc_Word32* filtState)
-{
- const WebRtc_Word16 *inptr;
- WebRtc_Word16 *outptr;
- WebRtc_Word32 *state;
- WebRtc_Word32 tmp1, tmp2, diff, in32, out32;
- WebRtc_Word16 i;
-
- // local versions of pointers to input and output arrays
- inptr = in; // input array
- outptr = out; // output array (of length len/2)
- state = filtState; // filter state array; length = 8
-
- for (i = (len >> 1); i > 0; i--)
- {
- // lower allpass filter
- in32 = (WebRtc_Word32)(*inptr++) << 10;
- diff = in32 - state[1];
- tmp1 = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass2[0], diff, state[0] );
- state[0] = in32;
- diff = tmp1 - state[2];
- tmp2 = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass2[1], diff, state[1] );
- state[1] = tmp1;
- diff = tmp2 - state[3];
- state[3] = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass2[2], diff, state[2] );
- state[2] = tmp2;
-
- // upper allpass filter
- in32 = (WebRtc_Word32)(*inptr++) << 10;
- diff = in32 - state[5];
- tmp1 = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass1[0], diff, state[4] );
- state[4] = in32;
- diff = tmp1 - state[6];
- tmp2 = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass1[1], diff, state[5] );
- state[5] = tmp1;
- diff = tmp2 - state[7];
- state[7] = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass1[2], diff, state[6] );
- state[6] = tmp2;
-
- // add two allpass outputs, divide by two and round
- out32 = (state[3] + state[7] + 1024) >> 11;
-
- // limit amplitude to prevent wrap-around, and write to output array
- if (out32 > 32767)
- *outptr++ = 32767;
- else if (out32 < -32768)
- *outptr++ = -32768;
- else
- *outptr++ = (WebRtc_Word16)out32;
- }
-}
-
-void WebRtcSpl_UpsampleBy2(const WebRtc_Word16* in, WebRtc_Word16 len, WebRtc_Word16* out,
- WebRtc_Word32* filtState)
-{
- const WebRtc_Word16 *inptr;
- WebRtc_Word16 *outptr;
- WebRtc_Word32 *state;
- WebRtc_Word32 tmp1, tmp2, diff, in32, out32;
- WebRtc_Word16 i;
-
- // local versions of pointers to input and output arrays
- inptr = in; // input array
- outptr = out; // output array (of length len*2)
- state = filtState; // filter state array; length = 8
-
- for (i = len; i > 0; i--)
- {
- // lower allpass filter
- in32 = (WebRtc_Word32)(*inptr++) << 10;
- diff = in32 - state[1];
- tmp1 = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass1[0], diff, state[0] );
- state[0] = in32;
- diff = tmp1 - state[2];
- tmp2 = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass1[1], diff, state[1] );
- state[1] = tmp1;
- diff = tmp2 - state[3];
- state[3] = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass1[2], diff, state[2] );
- state[2] = tmp2;
-
- // round; limit amplitude to prevent wrap-around; write to output array
- out32 = (state[3] + 512) >> 10;
- if (out32 > 32767)
- *outptr++ = 32767;
- else if (out32 < -32768)
- *outptr++ = -32768;
- else
- *outptr++ = (WebRtc_Word16)out32;
-
- // upper allpass filter
- diff = in32 - state[5];
- tmp1 = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass2[0], diff, state[4] );
- state[4] = in32;
- diff = tmp1 - state[6];
- tmp2 = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass2[1], diff, state[5] );
- state[5] = tmp1;
- diff = tmp2 - state[7];
- state[7] = WEBRTC_SPL_SCALEDIFF32( kResampleAllpass2[2], diff, state[6] );
- state[6] = tmp2;
-
- // round; limit amplitude to prevent wrap-around; write to output array
- out32 = (state[7] + 512) >> 10;
- if (out32 > 32767)
- *outptr++ = 32767;
- else if (out32 < -32768)
- *outptr++ = -32768;
- else
- *outptr++ = (WebRtc_Word16)out32;
- }
-}