mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
g723.1: make scale_vector() output to a separate buffer
Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
783da0d696
commit
b2af2c4bee
@ -278,7 +278,7 @@ static int normalize_bits(int num, int width)
|
|||||||
/**
|
/**
|
||||||
* Scale vector contents based on the largest of their absolutes.
|
* Scale vector contents based on the largest of their absolutes.
|
||||||
*/
|
*/
|
||||||
static int scale_vector(int16_t *vector, int length)
|
static int scale_vector(int16_t *dst, const int16_t *vector, int length)
|
||||||
{
|
{
|
||||||
int bits, max = 0;
|
int bits, max = 0;
|
||||||
int i;
|
int i;
|
||||||
@ -292,10 +292,10 @@ static int scale_vector(int16_t *vector, int length)
|
|||||||
|
|
||||||
if (bits == 15)
|
if (bits == 15)
|
||||||
for (i = 0; i < length; i++)
|
for (i = 0; i < length; i++)
|
||||||
vector[i] = vector[i] * 0x7fff >> 3;
|
dst[i] = vector[i] * 0x7fff >> 3;
|
||||||
else
|
else
|
||||||
for (i = 0; i < length; i++)
|
for (i = 0; i < length; i++)
|
||||||
vector[i] = vector[i] << bits >> 3;
|
dst[i] = vector[i] << bits >> 3;
|
||||||
|
|
||||||
return bits - 3;
|
return bits - 3;
|
||||||
}
|
}
|
||||||
@ -791,11 +791,11 @@ static int comp_interp_index(G723_1_Context *p, int pitch_lag,
|
|||||||
int *exc_eng, int *scale)
|
int *exc_eng, int *scale)
|
||||||
{
|
{
|
||||||
int offset = PITCH_MAX + 2 * SUBFRAME_LEN;
|
int offset = PITCH_MAX + 2 * SUBFRAME_LEN;
|
||||||
int16_t *buf = p->excitation + offset;
|
const int16_t *buf = p->excitation + offset;
|
||||||
|
|
||||||
int index, ccr, tgt_eng, best_eng, temp;
|
int index, ccr, tgt_eng, best_eng, temp;
|
||||||
|
|
||||||
*scale = scale_vector(p->excitation, FRAME_LEN + PITCH_MAX);
|
*scale = scale_vector(p->excitation, p->excitation, FRAME_LEN + PITCH_MAX);
|
||||||
|
|
||||||
/* Compute maximum backward cross-correlation */
|
/* Compute maximum backward cross-correlation */
|
||||||
ccr = 0;
|
ccr = 0;
|
||||||
@ -958,8 +958,7 @@ static void formant_postfilter(G723_1_Context *p, int16_t *lpc, int16_t *buf)
|
|||||||
int scale, energy;
|
int scale, energy;
|
||||||
|
|
||||||
/* Normalize */
|
/* Normalize */
|
||||||
memcpy(temp_vector, buf_ptr, SUBFRAME_LEN * sizeof(*temp_vector));
|
scale = scale_vector(temp_vector, buf_ptr, SUBFRAME_LEN);
|
||||||
scale = scale_vector(temp_vector, SUBFRAME_LEN);
|
|
||||||
|
|
||||||
/* Compute auto correlation coefficients */
|
/* Compute auto correlation coefficients */
|
||||||
auto_corr[0] = dot_product(temp_vector, temp_vector + 1,
|
auto_corr[0] = dot_product(temp_vector, temp_vector + 1,
|
||||||
|
Loading…
Reference in New Issue
Block a user