home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Sound / LAME / Source / l3side.h < prev    next >
C/C++ Source or Header  |  1999-04-30  |  3KB  |  109 lines

  1. /**********************************************************************
  2.  * ISO MPEG Audio Subgroup Software Simulation Group (1996)
  3.  * ISO 13818-3 MPEG-2 Audio Encoder - Lower Sampling Frequency Extension
  4.  *
  5.  * $Id: l3side.h,v 1.1 1996/02/14 04:04:23 rowlands Exp $
  6.  *
  7.  * $Log: l3side.h,v $
  8.  * Revision 1.1  1996/02/14 04:04:23  rowlands
  9.  * Initial revision
  10.  *
  11.  * Received from Mike Coleman
  12.  **********************************************************************/
  13. /**********************************************************************
  14.  *   date   programmers                comment                        *
  15.  * 25. 6.92  Toshiyuki Ishino          Ver 1.0                        *
  16.  * 29.10.92  Masahiro Iwadare          Ver 2.0                        *
  17.  * 17. 4.93  Masahiro Iwadare          Updated for IS Modification    *
  18.  *                                                                    *
  19.  *********************************************************************/
  20.  
  21. #ifndef L3_SIDE_H
  22. #define L3_SIDE_H
  23.  
  24. /* Layer III side information. */
  25.  
  26. /* #define CBLIMIT_SHORT 12 */
  27.  
  28. void l3deco();
  29.  
  30. typedef double    D576[576];
  31. typedef int    I576[576];
  32. typedef double    D192_3[192][3];
  33. typedef int    I192_3[192][3];
  34.  
  35. typedef struct {
  36.     unsigned cbl_max;
  37.     unsigned cbs_start;
  38. } III_cb_info;
  39.  
  40.  
  41. typedef struct {
  42.     double    l[2][2][21];
  43.     double    s[2][2][12][3];
  44. } III_psy_ratio;
  45.  
  46. typedef struct {
  47.     double    l[2][2][21];
  48.     double    s[2][2][12][3];
  49. } III_psy_xmin;
  50.  
  51. typedef struct {
  52.     double    xr[576];
  53.     double    xr_s[3][192];
  54.     double    xmin[21];
  55.     double    xmin_s[3][192];
  56.     int    ix[576];
  57.     int    ix_s[3][192];
  58.     } III_input3; /* ch */
  59.  
  60. typedef struct {
  61.     unsigned part2_3_length;
  62.     unsigned big_values;
  63.     unsigned count1;
  64.      unsigned global_gain;
  65.     unsigned scalefac_compress;
  66.     unsigned window_switching_flag;
  67.     unsigned block_type;
  68.     unsigned mixed_block_flag;
  69.     unsigned table_select[3];
  70. int /*    unsigned */ subblock_gain[3];
  71.     unsigned region0_count;
  72.     unsigned region1_count;
  73.     unsigned preflag;
  74.     unsigned scalefac_scale;
  75.     unsigned count1table_select;
  76.  
  77.     unsigned part2_length;
  78.     unsigned sfb_lmax;
  79.     unsigned sfb_smax;
  80.     unsigned address1;
  81.     unsigned address2;
  82.     unsigned address3;
  83.     double quantizerStepSize;
  84.     /* added for LSF */
  85.     unsigned *sfb_partition_table;
  86.     unsigned slen[4];
  87. } gr_info;
  88.  
  89. typedef struct {
  90.     int main_data_begin; /* unsigned -> int */
  91.     unsigned private_bits;
  92.     int resvDrain;
  93.     unsigned scfsi[2][4];
  94.     struct {
  95.         struct gr_info_s {
  96.             gr_info tt;
  97.             } ch[2];
  98.         } gr[2];
  99.     } III_side_info_t;
  100.  
  101. /* Layer III scale factors. */
  102.  
  103. typedef struct {
  104.     int l[2][2][22];            /* [cb] */
  105.     int s[2][2][13][3];         /* [window][cb] */
  106.     } III_scalefac_t;  /* [gr][ch] */
  107.  
  108. #endif
  109.