| /********************************************************************** |
| * 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 |