loop-pvt.h
上传用户:bjsgzm
上传日期:2007-01-08
资源大小:256k
文件大小:5k
源码类别:

mpeg/mp3

开发平台:

Visual C++

  1. /*
  2. (c) Copyright 1998, 1999 - Tord Jansson
  3. =======================================
  4. This file is part of the BladeEnc MP3 Encoder, based on
  5. ISO's reference code for MPEG Layer 3 compression, and might
  6. contain smaller or larger sections that are directly taken
  7. from ISO's reference code.
  8. All changes to the ISO reference code herein are either
  9. copyrighted by Tord Jansson (tord.jansson@swipnet.se)
  10. or sublicensed to Tord Jansson by a third party.
  11. BladeEnc is free software; you can redistribute this file
  12. and/or modify it under the terms of the GNU Lesser General Public
  13. License as published by the Free Software Foundation; either
  14. version 2.1 of the License, or (at your option) any later version.
  15. */
  16. /**********************************************************************
  17.  * ISO MPEG Audio Subgroup Software Simulation Group (1996)
  18.  * ISO 13818-3 MPEG-2 Audio Encoder - Lower Sampling Frequency Extension
  19.  *
  20.  * $Id: loop-pvt.h,v 1.1 1996/02/14 04:04:23 rowlands Exp $
  21.  *
  22.  * Private interface declarations for loop.c
  23.  *
  24.  * $Log: loop-pvt.h,v $
  25.  * Revision 1.1  1996/02/14 04:04:23  rowlands
  26.  * Initial revision
  27.  *
  28.  * Received from Mike Coleman
  29.  **********************************************************************/
  30. #ifndef LOOP_PVT_H
  31. #define LOOP_PVT_H
  32. /*
  33.   Revision History:
  34.   Date        Programmer                Comment
  35.   ==========  ========================= ===============================
  36.   1995/10/01  mc@fivebats.com           created
  37. */
  38. void quantize_tj( double xr[576], int ix[576], gr_info *cod_info );
  39. int outer_loop( double xr[2][2][576],     /*vector of the magnitudees of the spectral values */
  40.                 int max_bits,
  41.                 III_psy_xmin  *l3_xmin, /* the allowed distortion of the scalefactor */
  42.                 int l3_enc[2][2][576],    /* vector of quantized values ix(0..575) */
  43. frame_params *fr_ps,
  44.                 III_scalefac_t *scalefac, /* scalefactors */
  45.                 int gr,
  46.                 int ch,
  47. III_side_info_t *l3_side );
  48. int part2_length( III_scalefac_t *scalefac,
  49.   frame_params *fr_ps,
  50.   int gr,
  51.   int ch,
  52.   III_side_info_t *si );
  53. int quantanf_init( double xr[576] );
  54. int inner_loop( double * xrs,
  55.                 int * ix,
  56.                 int max_bits,
  57.                 gr_info *cod_info );
  58. void calc_xmin( double xr[2][2][576],
  59.                III_psy_ratio *ratio,
  60.                gr_info *cod_info,
  61.                III_psy_xmin *l3_xmin,
  62.                int gr,
  63.                int ch );
  64. double xr_max( double xr[576] );
  65. void calc_scfsi( double  xr[576],
  66.                  III_side_info_t *l3_side,
  67.                  III_psy_xmin  *l3_xmin,
  68.                  int ch,
  69.                  int gr );
  70. void gr_deco( gr_info *cod_info );
  71. int count_bit( int ix[576], unsigned int start, unsigned int end, unsigned int table);
  72. int bigv_bitcount( int ix[576], gr_info *cod_info );
  73. int choose_table( int max);
  74. void bigv_tab_select( int ix[576], gr_info *cod_info );
  75. void subdivide( gr_info *cod_info );
  76. int count1_bitcount( int ix[576], gr_info *cod_info );
  77. void  calc_runlen( int ix[576],
  78.                    gr_info *cod_info );
  79. int scale_bitcount( III_scalefac_t *scalefac,
  80.                     gr_info *cod_info,
  81.                     int gr,
  82.                     int ch );
  83. void calc_noise( double xr[576],
  84.                  int ix[576],
  85.                  gr_info *cod_info,
  86.                  double xfsf[4][CBLIMIT] );
  87. int loop_break( III_scalefac_t *scalefac,
  88.                 gr_info *cod_info,
  89.                 int gr,
  90.                 int ch );
  91. void preemphasis( double xr[576],
  92.                   double xfsf[4][CBLIMIT],
  93.                   III_psy_xmin  *l3_xmin,
  94.                   int gr,
  95.                   int ch,
  96.   III_side_info_t *l3_side );
  97. int amp_scalefac_bands( double xr[576],
  98.                         double xfsf[4][CBLIMIT],
  99.                         III_psy_xmin  *l3_xmin,
  100. III_side_info_t *l3_side,
  101.                         III_scalefac_t *scalefac,
  102.                         int gr,
  103.                         int ch,
  104. int iteration );
  105. void quantize( double xr[576],
  106.                int  ix[576],
  107.                gr_info *cod_info );
  108. int ix_max( int ix[576],
  109.             unsigned int begin,
  110.             unsigned int end );
  111. int
  112. new_choose_table( int ix[576],
  113.   unsigned int begin,
  114.   unsigned int end );
  115. int count_bit_tj( int abs_ix[576], unsigned int start, unsigned int end, unsigned int table );
  116. int new_choose_table_tj( int abs_ix[576], unsigned int begin, unsigned int end );
  117. void bigv_tab_select_tj( int abs_ix[576], gr_info *cod_info );
  118. void calc_runlen_tj( int abs_ix[576], gr_info *cod_info );
  119. #endif