Browse Source

Remove the history buffer from the context. It can easily be evaluated

from the lhist buffer.

Originally committed as revision 14443 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Vitor Sessak 17 years ago
parent
commit
854ce441c3
1 changed files with 7 additions and 3 deletions
  1. +7
    -3
      libavcodec/ra288.c

+ 7
- 3
libavcodec/ra288.c View File

@@ -25,7 +25,6 @@
#include "ra288.h" #include "ra288.h"


typedef struct { typedef struct {
float history[8];
float output[40]; float output[40];
float sp_lpc[36]; ///< LPC coefficients for speech data (spec: A) float sp_lpc[36]; ///< LPC coefficients for speech data (spec: A)
float gain_lpc[10]; ///< LPC coefficients for gain (spec: GB) float gain_lpc[10]; ///< LPC coefficients for gain (spec: GB)
@@ -92,7 +91,7 @@ static void decode(RA288Context *ractx, float gain, int cb_coef)
/* shift and store */ /* shift and store */
memmove(ractx->lhist, ractx->lhist - 1, 10 * sizeof(*ractx->lhist)); memmove(ractx->lhist, ractx->lhist - 1, 10 * sizeof(*ractx->lhist));


*ractx->lhist = ractx->history[ractx->phase] = 10 * log10(sum) - 32;
*ractx->lhist = 10 * log10(sum) - 32;


for (x=1; x < 5; x++) for (x=1; x < 5; x++)
for (y=x-1; y >= 0; y--) for (y=x-1; y >= 0; y--)
@@ -198,6 +197,11 @@ static void backward_filter(RA288Context *ractx)
{ {
float temp1[37]; // RTMP in the spec float temp1[37]; // RTMP in the spec
float temp2[11]; // GPTPMP in the spec float temp2[11]; // GPTPMP in the spec
float history[8];
int i;

for (i=0 ; i < 8; i++)
history[i] = ractx->lhist[7-i];


do_hybrid_window(36, 40, 35, ractx->output, temp1, ractx->sp_hist, do_hybrid_window(36, 40, 35, ractx->output, temp1, ractx->sp_hist,
ractx->sp_rec, syn_window); ractx->sp_rec, syn_window);
@@ -205,7 +209,7 @@ static void backward_filter(RA288Context *ractx)
if (!eval_lpc_coeffs(temp1, ractx->sp_lpc, 36)) if (!eval_lpc_coeffs(temp1, ractx->sp_lpc, 36))
colmult(ractx->sp_lpc, ractx->sp_lpc, syn_bw_tab, 36); colmult(ractx->sp_lpc, ractx->sp_lpc, syn_bw_tab, 36);


do_hybrid_window(10, 8, 20, ractx->history, temp2, ractx->gain_hist,
do_hybrid_window(10, 8, 20, history, temp2, ractx->gain_hist,
ractx->gain_rec, gain_window); ractx->gain_rec, gain_window);


if (!eval_lpc_coeffs(temp2, ractx->gain_lpc, 10)) if (!eval_lpc_coeffs(temp2, ractx->gain_lpc, 10))


Loading…
Cancel
Save