L3SIDE.H
上传用户:njqiyou
上传日期:2007-01-08
资源大小:574k
文件大小:3k
源码类别:

mpeg/mp3

开发平台:

C/C++

  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. #ifndef L3_SIDE_H
  21. #define L3_SIDE_H
  22. /* Layer III side information. */
  23. /* #define CBLIMIT_SHORT 12 */
  24. void l3deco();
  25. typedef double D576[576];
  26. typedef int I576[576];
  27. typedef double D192_3[192][3];
  28. typedef int I192_3[192][3];
  29. typedef struct {
  30. unsigned cbl_max;
  31. unsigned cbs_start;
  32. } III_cb_info;
  33. typedef struct {
  34. double l[2][2][21];
  35. double s[2][2][12][3];
  36. } III_psy_ratio;
  37. typedef struct {
  38. double l[2][2][21];
  39. double s[2][2][12][3];
  40. } III_psy_xmin;
  41. typedef struct {
  42. double xr[576];
  43. double xr_s[3][192];
  44. double xmin[21];
  45. double xmin_s[3][192];
  46. int ix[576];
  47. int ix_s[3][192];
  48. } III_input3; /* ch */
  49. typedef struct {
  50. unsigned part2_3_length;
  51. unsigned big_values;
  52. unsigned count1;
  53.   unsigned global_gain;
  54. unsigned scalefac_compress;
  55. unsigned window_switching_flag;
  56. unsigned block_type;
  57. unsigned mixed_block_flag;
  58. unsigned table_select[3];
  59. int /* unsigned */ subblock_gain[3];
  60. unsigned region0_count;
  61. unsigned region1_count;
  62. unsigned preflag;
  63. unsigned scalefac_scale;
  64. unsigned count1table_select;
  65. unsigned part2_length;
  66. unsigned sfb_lmax;
  67. unsigned sfb_smax;
  68. unsigned address1;
  69. unsigned address2;
  70. unsigned address3;
  71. double quantizerStepSize;
  72. /* added for LSF */
  73. unsigned *sfb_partition_table;
  74. unsigned slen[4];
  75. } gr_info;
  76. typedef struct {
  77. int main_data_begin; /* unsigned -> int */
  78. unsigned private_bits;
  79. int resvDrain;
  80. unsigned scfsi[2][4];
  81. struct {
  82. struct gr_info_s {
  83. gr_info tt;
  84. } ch[2];
  85. } gr[2];
  86. } III_side_info_t;
  87. /* Layer III scale factors. */
  88. typedef struct {
  89. int l[2][2][22];            /* [cb] */
  90. int s[2][2][13][3];         /* [window][cb] */
  91. } III_scalefac_t;  /* [gr][ch] */
  92. #endif