⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loop-pvt.h

📁 功能非常完善的MP3编译码器,输入文件WAV或AIFF,能够方便的嵌入到你自己的系统当中.
💻 H
字号:
/*
			(c) Copyright 1998, 1999 - Tord Jansson
			=======================================

		This file is part of the BladeEnc MP3 Encoder, based on
		ISO's reference code for MPEG Layer 3 compression, and might
		contain smaller or larger sections that are directly taken
		from ISO's reference code.

		All changes to the ISO reference code herein are either
		copyrighted by Tord Jansson (tord.jansson@swipnet.se)
		or sublicensed to Tord Jansson by a third party.

	BladeEnc is free software; you can redistribute this file
	and/or modify it under the terms of the GNU Lesser General Public
	License as published by the Free Software Foundation; either
	version 2.1 of the License, or (at your option) any later version.

*/


/**********************************************************************
 * ISO MPEG Audio Subgroup Software Simulation Group (1996)
 * ISO 13818-3 MPEG-2 Audio Encoder - Lower Sampling Frequency Extension
 *
 * $Id: loop-pvt.h,v 1.1 1996/02/14 04:04:23 rowlands Exp $
 *
 * Private interface declarations for loop.c
 *
 * $Log: loop-pvt.h,v $
 * Revision 1.1  1996/02/14 04:04:23  rowlands
 * Initial revision
 *
 * Received from Mike Coleman
 **********************************************************************/

#ifndef LOOP_PVT_H
#define LOOP_PVT_H

/*
  Revision History:

  Date        Programmer                Comment
  ==========  ========================= ===============================
  1995/10/01  mc@fivebats.com           created

*/


void quantize_tj( double xr[576], int ix[576], gr_info *cod_info );


int outer_loop( double xr[2][2][576],     /*vector of the magnitudees of the spectral values */
                int max_bits,
                III_psy_xmin  *l3_xmin, /* the allowed distortion of the scalefactor */
                int l3_enc[2][2][576],    /* vector of quantized values ix(0..575) */
		frame_params *fr_ps,
                III_scalefac_t *scalefac, /* scalefactors */
                int gr,
                int ch,
		III_side_info_t *l3_side );

int part2_length( III_scalefac_t *scalefac,
		  frame_params *fr_ps,
		  int gr,
		  int ch,
		  III_side_info_t *si );

int quantanf_init( double xr[576] );

int inner_loop( double * xrs,
                int * ix,
                int max_bits,
                gr_info *cod_info );
void calc_xmin( double xr[2][2][576],
               III_psy_ratio *ratio,
               gr_info *cod_info,
               III_psy_xmin *l3_xmin,
               int gr,
               int ch );
double xr_max( double xr[576] );

void calc_scfsi( double  xr[576],
                 III_side_info_t *l3_side,
                 III_psy_xmin  *l3_xmin,
                 int ch,
                 int gr );

void gr_deco( gr_info *cod_info );



int count_bit( int ix[576], unsigned int start, unsigned int end, unsigned int table);
int bigv_bitcount( int ix[576], gr_info *cod_info );
int choose_table( int max);
void bigv_tab_select( int ix[576], gr_info *cod_info );
void subdivide( gr_info *cod_info );
int count1_bitcount( int ix[576], gr_info *cod_info );
void  calc_runlen( int ix[576],
                   gr_info *cod_info );
int scale_bitcount( III_scalefac_t *scalefac,
                    gr_info *cod_info,
                    int gr,

                    int ch );
void calc_noise( double xr[576],
                 int ix[576],
                 gr_info *cod_info,
                 double xfsf[4][CBLIMIT] );


int loop_break( III_scalefac_t *scalefac,
                gr_info *cod_info,
                int gr,
                int ch );
void preemphasis( double xr[576],
                  double xfsf[4][CBLIMIT],
                  III_psy_xmin  *l3_xmin,
                  int gr,
                  int ch,
		  III_side_info_t *l3_side );
int amp_scalefac_bands( double xr[576],
                        double xfsf[4][CBLIMIT],
                        III_psy_xmin  *l3_xmin,
			III_side_info_t *l3_side,
                        III_scalefac_t *scalefac,
                        int gr,
                        int ch,
			int iteration );
void quantize( double xr[576],
               int  ix[576],
               gr_info *cod_info );

int ix_max( int ix[576],
            unsigned int begin,
            unsigned int end );


int
new_choose_table( int ix[576],
		  unsigned int begin,
		  unsigned int end );



int	count_bit_tj( int abs_ix[576], unsigned int start, unsigned int end, unsigned int table );
int new_choose_table_tj( int abs_ix[576], unsigned int begin, unsigned int end );
void bigv_tab_select_tj( int abs_ix[576], gr_info *cod_info );
void calc_runlen_tj( int abs_ix[576], gr_info *cod_info );

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -