Exemplo n.º 1
0
/*=============================================================*/
void
L3table_init ( int sr_index_arg, int h_id_arg, int band_limit_arg )
{
    int i;
    ARRAY8 *csa;

/* save for band table generator */
    sr_index = sr_index_arg;
    h_id = h_id_arg;
    band_limit = band_limit_arg;

/*================ antialias ===============================*/
    csa = xingenc_alias_init_addr (  );
    for ( i = 0; i < 8; i++ )
    {
        csa[0][i] = ( float ) ( 1.0 / sqrt ( 1.0 + Ci[i] * Ci[i] ) );
        csa[1][i] = ( float ) ( Ci[i] / sqrt ( 1.0 + Ci[i] * Ci[i] ) );
    }

/*================ mdct ===============================*/
    mdct_init (  );

/*--- hybrid windows ------------*/
    hwin_init (  );

}
Exemplo n.º 2
0
/*=============================================================*/
int L3table_init(MPEG *m)
{
   int i;
   float *x;
   LS *ls;
   int scalefact_scale, preemp, scalefac;
   double tmp;
   PAIR *csa;

/*================ quant ===============================*/

/* 8 bit plus 2 lookup x = pow(2.0, 0.25*(global_gain-210)) */
/* extra 2 for ms scaling by 1/sqrt(2) */
/* extra 4 for cvt to mono scaling by 1/2 */
   x = quant_init_global_addr(m);
   for (i = 0; i < 256 + 2 + 4; i++)
      x[i] = (float) pow(2.0, 0.25 * ((i - (2 + 4)) - 210 + GLOBAL_GAIN_SCALE));


/* x = pow(2.0, -0.5*(1+scalefact_scale)*scalefac + preemp) */
   ls = quant_init_scale_addr(m);
   for (scalefact_scale = 0; scalefact_scale < 2; scalefact_scale++)
   {
      for (preemp = 0; preemp < 4; preemp++)
      {
	 for (scalefac = 0; scalefac < 32; scalefac++)
	 {
	    ls[scalefact_scale][preemp][scalefac] =
	       (float) pow(2.0, -0.5 * (1 + scalefact_scale) * (scalefac + preemp));
	 }
      }
   }

/*--- iSample**(4/3) lookup, -32<=i<=31 ---*/
   x = quant_init_pow_addr(m);
   for (i = 0; i < 64; i++)
   {
      tmp = i - 32;
      x[i] = (float) (tmp * pow(fabs(tmp), (1.0 / 3.0)));
   }


/*-- pow(2.0, -0.25*8.0*subblock_gain)  3 bits --*/
   x = quant_init_subblock_addr(m);
   for (i = 0; i < 8; i++)
   {
      x[i] = (float) pow(2.0, 0.25 * -8.0 * i);
   }

/*-------------------------*/
// quant_init_sf_band(sr_index);   replaced by code in sup.c


/*================ antialias ===============================*/
   csa = alias_init_addr(m);
   for (i = 0; i < 8; i++)
   {
      csa[i][0] = (float) (1.0 / sqrt(1.0 + Ci[i] * Ci[i]));
      csa[i][1] = (float) (Ci[i] / sqrt(1.0 + Ci[i] * Ci[i]));
   }


/*================ msis ===============================*/
   msis_init(m);
   msis_init_MPEG2(m);

/*================ imdct ===============================*/
   imdct_init(m);

/*--- hybrid windows ------------*/
   hwin_init(m);

   return 0;
}