Displaying 6 results from an estimated 6 matches for "resampler_basic_interpolate_singl".
Did you mean:
resampler_basic_interpolate_single
2009 Jun 13
1
Resampler saturation
...ing saturation when converting back to int.
After reconverting to spx_word16_t, the fixed point version is now good, except for saturation.
Using MULT16_16 for convolution, we have 1 guard bit, which seems to be enough in resampler_basic_direct_single(), so we can saturate before storing.
But in resampler_basic_interpolate_single(), we can also saturate in the cubic interpolation part.
So I propose shifting the 32 bits accumulators 1 bit right before this operation.
--> Implemented and tested in resample4.patch
About the 4 accumulators:
Simple DSPs have only 2 accumulators, so this is really not good on DSPs for 2 re...
2009 Oct 26
1
[PATCH] Fix miscompile of SSE resampler
...State *st, spx_uint32_t c
}
sum = accum[0] + accum[1] + accum[2] + accum[3];
#else
- sum = inner_product_double(sinc, iptr, N);
+ inner_product_double(&sum, sinc, iptr, N);
#endif
out[out_stride * out_sample++] = PSHR32(sum, 15);
@@ -472,7 +472,7 @@ static int resampler_basic_interpolate_single(SpeexResamplerState *st, spx_uint3
sum = MULT16_32_Q15(interp[0],SHR32(accum[0], 1)) + MULT16_32_Q15(interp[1],SHR32(accum[1], 1)) + MULT16_32_Q15(interp[2],SHR32(accum[2], 1)) + MULT16_32_Q15(interp[3],SHR32(accum[3], 1));
#else
cubic_coef(frac, interp);
- sum = interpolate_pr...
2011 Sep 01
0
[PATCH 3/5] resample: Add NEON optimized inner_product_single for fixed point
...ingle(sinc, iptr, N);
#endif
- out[out_stride * out_sample++] = SATURATE32(PSHR32(sum, 15), 32767);
+ out[out_stride * out_sample++] = sum;
last_sample += int_advance;
samp_frac_num += frac_advance;
if (samp_frac_num >= den_rate)
@@ -470,12 +475,13 @@ static int resampler_basic_interpolate_single(SpeexResamplerState *st, spx_uint3
cubic_coef(frac, interp);
sum = MULT16_32_Q15(interp[0],SHR32(accum[0], 1)) + MULT16_32_Q15(interp[1],SHR32(accum[1], 1)) + MULT16_32_Q15(interp[2],SHR32(accum[2], 1)) + MULT16_32_Q15(interp[3],SHR32(accum[3], 1));
+ sum = SATURATE32PSHR(sum,...
2011 Sep 01
6
[PATCH 0/5] ARM NEON optimization for samplerate converter
From: Jyri Sarha <jsarha at ti.com>
I optimized Speex resampler for NEON capable ARM CPUs. The first patch
should speed up resampling on any platform that can spare the
increased memory usage. It would be nice to have these merged to the
master branch. Please let me know if there is anything I can do to
help the the merge. The patches have been rebased on top of master
branch in
2008 May 03
2
Resampler (no api)
...{
- samp_frac_num -= st->den_rate;
+ samp_frac_num -= den_rate;
last_sample++;
}
}
+
st->last_sample[channel_index] = last_sample;
st->samp_frac_num[channel_index] = samp_frac_num;
return out_sample;
@@ -417,69 +426,61 @@
static int resampler_basic_interpolate_single(SpeexResamplerState *st, spx_uint32_t channel_index, const spx_word16_t *in, spx_uint32_t *in_len, spx_word16_t *out, spx_uint32_t *out_len)
{
- int N = st->filt_len;
+ const int N = st->filt_len;
int out_sample = 0;
- spx_word16_t *mem;
int last_sample = st->last_sample[ch...
2008 May 03
0
Resampler, memory only variant
...{
- samp_frac_num -= st->den_rate;
+ samp_frac_num -= den_rate;
last_sample++;
}
}
+
st->last_sample[channel_index] = last_sample;
st->samp_frac_num[channel_index] = samp_frac_num;
return out_sample;
@@ -417,69 +426,61 @@
static int resampler_basic_interpolate_single(SpeexResamplerState *st, spx_uint32_t channel_index, const spx_word16_t *in, spx_uint32_t *in_len, spx_word16_t *out, spx_uint32_t *out_len)
{
- int N = st->filt_len;
+ const int N = st->filt_len;
int out_sample = 0;
- spx_word16_t *mem;
int last_sample = st->last_sample[ch...