blob: ac62201220c263d26333cc38a134be3114f0ef89 [file] [log] [blame]
/**********************************************************************
* date programmers comment *
* 25. 6.92 Toshiyuki Ishino Ver 1.0 *
* 29.10.92 Masahiro Iwadare Ver 2.0 *
* 17. 4.93 Masahiro Iwadare Updated for IS Modification *
* *
*********************************************************************/
#ifndef L3_SIDE_H
#define L3_SIDE_H
#include "encoder.h"
#include "machine.h"
/* Layer III side information. */
typedef FLOAT8 D576[576];
typedef int I576[576];
typedef FLOAT8 D192_3[192][3];
typedef int I192_3[192][3];
typedef struct {
FLOAT8 l[SBPSY_l + 1];
FLOAT8 s[SBPSY_s + 1][3];
} III_psy_xmin;
typedef struct {
III_psy_xmin thm;
III_psy_xmin en;
} III_psy_ratio;
typedef struct {
unsigned part2_3_length;
unsigned big_values;
unsigned count1;
unsigned global_gain;
unsigned scalefac_compress;
unsigned window_switching_flag;
unsigned block_type;
unsigned mixed_block_flag;
unsigned table_select[3];
int /* unsigned */ subblock_gain[3];
unsigned region0_count;
unsigned region1_count;
unsigned preflag;
unsigned scalefac_scale;
unsigned count1table_select;
unsigned part2_length;
unsigned sfb_lmax;
unsigned sfb_smax;
unsigned count1bits;
/* added for LSF */
unsigned *sfb_partition_table;
unsigned slen[4];
} gr_info;
typedef struct {
int main_data_begin; /* unsigned -> int */
unsigned private_bits;
int resvDrain;
unsigned scfsi[2][4];
struct {
struct gr_info_ss {
gr_info tt;
} ch[2];
} gr[2];
} III_side_info_t;
/* Layer III scale factors. */
/* note: there are only SBPSY_l=(SBMAX_l-1) and SBPSY_s=(SBMAX_s-1) scalefactors.
* Dont know why these would be dimensioned SBMAX_l and SBMAX-s */
typedef struct {
int l[SBMAX_l]; /* [cb] */
int s[SBMAX_s][3]; /* [window][cb] */
} III_scalefac_t; /* [gr][ch] */
#endif