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

📄 att_proto.h

📁 MPEG2/MPEG4编解码参考程序(实现了MPEG4的部分功能)
💻 H
字号:
/*This software module was originally developed byPeter Kroon (Bell Laboratories, Lucent Technologies)in the course of development of the MPEG-2 NBC/MPEG-4 Audio standardISO/IEC 13818-7, 14496-1,2 and 3. This software module is animplementation of a part of one or more MPEG-2 NBC/MPEG-4 Audio toolsas specified by the MPEG-2 NBC/MPEG-4 Audio standard. ISO/IEC givesusers of the MPEG-2 NBC/MPEG-4 Audio standards free license to thissoftware module or modifications thereof for use in hardware orsoftware products claiming conformance to the MPEG-2 NBC/ MPEG-4 Audiostandards. Those intending to use this software module in hardware orsoftware products are advised that this use may infringe existingpatents. The original developer of this software module and his/hercompany, the subsequent editors and their companies, and ISO/IEC haveno liability for use of this software module or modifications thereofin an implementation. Copyright is not released for non MPEG-2NBC/MPEG-4 Audio conforming products. The original developer retainsfull right to use the code for his/her own purpose, assign or donatethe code to a third party and to inhibit third party from using thecode for non MPEG-2 NBC/MPEG-4 Audio conforming products. Thiscopyright notice must be included in all copies or derivative works.Copyright (c) 1996. */#ifndef _att_proto_h_#define _att_proto_h_#ifdef __cplusplusextern "C" {#endifvoid att_abs_pitch_estimation(  float PP_InputSignal[],	/* input */  long frame_size,			/* configuration input */  long lpc_order,			/* configuration input */  float min_pitch_frequency,	/* input */  float max_pitch_frequency,	/* input */  long  sampling_frequency,	/* coufiguration input */  long  lag_candidates[],	/* output */  long  n_lag_candidates	/* configuration input */);void att_abs_weighting_module(  float *a,		/* input : lpc coefficients 1 + a1z^-1 + a2 */ float *ax,		/* output: weighted coefficients for numerator  */ long num_order,	/* input : numerator order */ float *bx,		/* output: weighted coefficients for denominator */ long den_order,	/* input : denominator order */ float gamma_num,   /* weighting factor for numerator */ float gamma_den    /* weighting factor for denominator */);void att_abs_postprocessing(  float *input,		/* input : signal */ float *output,		/* output: signal */ float *a,		/* input : lpc coefficients 1 + a1z^-1 + a2 */ long order,		/* input : lpc order */ long len,		/* input : frame size */ long acb_delay,	/* input : delay (samples) for pitch postfilter  */ float acb_gain		/* input : adaptive codebook gain */);void att_abs_postprocessing16(  float *input,		/* input : signal */ float *output,		/* output: signal */ float *a,		/* input : lpc coefficients 1 + a1z^-1 + a2 */ long order,		/* input : lpc order */ long len,		/* input : frame size */ long acb_delay,	/* input : delay (samples) for pitch postfilter  */ float acb_gain		/* input : adaptive codebook gain */);extern void bwx( float *bw,		/* ouput : bw expanded coefficients */ const float *a,	/* input : lpc coefficients */ const float w,		/* input : gamma factor */ const long order	/* input : LPC order */);extern void firfilt(float *output,		/* output: filtered signal */const float *input,	/* input : signal */const float *a,		/* input : filter coefficients */float *mem,		/* in/out: filter memory */long order,		/* input : filter order */long length		/* input : number of samples to filter */);extern void iirfilt(float *output,		/* output: filtered signal */const float *input,	/* input : signal */const float *a,		/* input : filter coefficients */float *mem,		/* in/out: filter memory */long order,		/* input : filter order */long length		/* input : size of data array */);extern void  pitchpf( float *output,			/* output: filtered signal */ float *input,			/* input : unfiltered signal */ long len,			/* input : size of input/output frame */ long  acb_delay,		/* input : acb delay */ float acb_gain,		/* input : acb gain  */ float *pitchmem,		/* in/out: signal buffer  */ long pitchmemsize		/* input : size of pitch buffer */);extern void  pitchpf16( float *output,			/* output: filtered signal */ float *input,			/* input : unfiltered signal */ long len,			/* input : size of input/output frame */ long  acb_delay,		/* input : acb delay */ float acb_gain,		/* input : acb gain  */ float *pitchmem,		/* in/out: signal buffer  */ long pitchmemsize		/* input : size of pitch buffer */);extern void testbound(const long a,		/* input: value to be tested */const long b,		/* input: boundary value */const char *text	/* input: program name */);/* weighting module */long pc2rc(		/* output: 1 = normal return; 0 = rc[] clipped */float *rc,		/* output: reflection coefficients */const float *a,		/* input : LPC coefficients */long order		/* input : LPC order */);long pc2lsf(		/* ret 1 on succ, 0 on failure */float lsf[],		/* output: the np line spectral freq. */const float pc[],	/* input : the np+1 predictor coeff. */long np			/* input : order = # of freq to cal. */);void lsf2pc(float *pc,		/* output: predictor coeff: 1,a1,a2...*/const float *lsf,	/* input : line-spectral freqs [0,pi] */long order		/* input : predictor order */);void lsffir(float *x,		/* out/in: input and output signals */const float *lsf,	/* input : line-spectral freqs, range [0:pi)*/long order,		/* input : order of lsf */double *w,		/* input : filter state (2*(order+1) */long framel		/* input : length of array */);float FNevChebP(		/* result */float  x,			/* input : value */const float c[],		/* input : Array of coefficient values */long n				/* input : Number of coefficients */);#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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