quantize-pvt.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. #ifndef LOOP_PVT_H
  2. #define LOOP_PVT_H
  3. #define IXMAX_VAL 8206 /* ix always <= 8191+15.    see count_bits() */
  4. #define PRECALC_SIZE (IXMAX_VAL+2)
  5. extern FLOAT masking_lower;
  6. extern int convert_mdct, convert_psy, reduce_sidechannel;
  7. extern unsigned nr_of_sfb_block[6][3][4];
  8. extern int pretab[21];
  9. struct scalefac_struct
  10. {
  11.    int l[1+SBMAX_l];
  12.    int s[1+SBMAX_s];
  13. };
  14. extern struct scalefac_struct scalefac_band;
  15. extern struct scalefac_struct sfBandIndex[6];
  16. extern FLOAT8 pow43[PRECALC_SIZE];
  17. #define Q_MAX 256
  18. extern FLOAT8 pow20[Q_MAX];
  19. extern FLOAT8 ipow20[Q_MAX];
  20. #ifdef RH_ATH
  21. extern FLOAT8 ATH_mdct_long[576], ATH_mdct_short[192];
  22. #endif
  23. FLOAT8 ATHformula(lame_global_flags *gfp,FLOAT8 f);
  24. void compute_ath(lame_global_flags *gfp,FLOAT8 ATH_l[SBPSY_l],FLOAT8 ATH_s[SBPSY_l]);
  25. void ms_convert(FLOAT8 xr[2][576],FLOAT8 xr_org[2][576]);
  26. void on_pe(lame_global_flags *gfp,FLOAT8 pe[2][2],III_side_info_t *l3_side,
  27. int targ_bits[2],int mean_bits, int gr);
  28. void reduce_side(int targ_bits[2],FLOAT8 ms_ener_ratio,int mean_bits);
  29. void outer_loop( lame_global_flags *gfp,
  30.                 FLOAT8 xr[576],     /*vector of the magnitudees of the spectral values */
  31.                 int bits,
  32. FLOAT8 noise[4],
  33.                 III_psy_xmin *l3_xmin, /* the allowed distortion of the scalefactor */
  34.                 int l3_enc[576],    /* vector of quantized values ix(0..575) */
  35.  III_scalefac_t *scalefac, /* scalefactors */
  36.  gr_info *,
  37.                 FLOAT8 xfsf[4][SBPSY_l],
  38. int ch);
  39. void iteration_init( lame_global_flags *gfp,III_side_info_t *l3_side, int l3_enc[2][2][576]);
  40. int inner_loop( lame_global_flags *gfp,FLOAT8 xrpow[576],
  41.                 int l3_enc[576],
  42.                 int max_bits,
  43.                 gr_info *cod_info);
  44. int calc_xmin( lame_global_flags *gfp,FLOAT8 xr[576],
  45.                III_psy_ratio *ratio,
  46.                gr_info *cod_info,
  47.                III_psy_xmin *l3_xmin);
  48. int scale_bitcount( III_scalefac_t *scalefac, gr_info *cod_info);
  49. int scale_bitcount_lsf( III_scalefac_t *scalefac, gr_info *cod_info);
  50. int calc_noise1( FLOAT8 xr[576],
  51.                  int ix[576],
  52.                  gr_info *cod_info,
  53.                  FLOAT8 xfsf[4][SBPSY_l], 
  54.  FLOAT8 distort[4][SBPSY_l],
  55.                  III_psy_xmin *l3_xmin,
  56.  III_scalefac_t *,
  57.                  FLOAT8 *noise, FLOAT8 *tot_noise, FLOAT8 *max_noise);
  58. int loop_break( III_scalefac_t *scalefac, gr_info *cod_info);
  59. void amp_scalefac_bands(FLOAT8 xrpow[576],
  60. gr_info *cod_info,
  61. III_scalefac_t *scalefac,
  62. FLOAT8 distort[4][SBPSY_l]);
  63. void quantize_xrpow( FLOAT8 xr[576],
  64.                int  ix[576],
  65.                gr_info *cod_info );
  66. void quantize_xrpow_ISO( FLOAT8 xr[576],
  67.                int  ix[576],
  68.                gr_info *cod_info );
  69. int
  70. new_choose_table( int ix[576],
  71.   unsigned int begin,
  72.   unsigned int end, int * s );
  73. int bin_search_StepSize2(lame_global_flags *gfp,int desired_rate, int start, int ix[576],
  74.                          FLOAT8 xrspow[576], gr_info * cod_info);
  75. int count_bits(lame_global_flags *gfp,int  *ix, FLOAT8 xr[576], gr_info *cod_info);
  76. int quant_compare(int type,
  77. int best_over,FLOAT8 best_tot_noise,FLOAT8 best_over_noise,FLOAT8 best_max_over,
  78. int over,FLOAT8 tot_noise, FLOAT8 over_noise,FLOAT8 max_noise);
  79. int VBR_compare(
  80. int best_over,FLOAT8 best_tot_noise,FLOAT8 best_over_noise,FLOAT8 best_max_over,
  81. int over,FLOAT8 tot_noise, FLOAT8 over_noise,FLOAT8 max_noise);
  82. void best_huffman_divide(int gr, int ch, gr_info *cod_info, int *ix);
  83. void best_scalefac_store(lame_global_flags *gfp,int gr, int ch,
  84.  int l3_enc[2][2][576],
  85.  III_side_info_t *l3_side,
  86.  III_scalefac_t scalefac[2][2]);
  87. int init_outer_loop(
  88.     lame_global_flags *gfp,
  89.     FLOAT8 xr[576],        /*  could be L/R OR MID/SIDE */
  90.     gr_info *cod_info);
  91. #define LARGE_BITS 100000
  92. #endif