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

📄 phi_lpc.h

📁 C写的MPEG4音频源代码(G.723/G.729)
💻 H
字号:
/*====================================================================*//*         MPEG-4 Audio (ISO/IEC 14496-3) Copyright Header            *//*====================================================================*//*This software module was originally developed by Rakesh Taori and AndyGerrits (Philips Research Laboratories, Eindhoven, The Netherlands) inthe course of development of the MPEG-4 Audio (ISO/IEC 14496-3). Thissoftware module is an implementation of a part of one or more MPEG-4Audio (ISO/IEC 14496-3) tools as specified by the MPEG-4 Audio(ISO/IEC 14496-3). ISO/IEC gives users of the MPEG-4 Audio (ISO/IEC14496-3) free license to this software module or modifications thereoffor use in hardware or software products claiming conformance to theMPEG-4 Audio (ISO/IEC 14496-3). Those intending to use this softwaremodule in hardware or software products are advised that its use mayinfringe existing patents. The original developer of this softwaremodule and his/her company, the subsequent editors and theircompanies, and ISO/IEC have no liability for use of this softwaremodule or modifications thereof in an implementation. Copyright is notreleased for non MPEG-4 Audio (ISO/IEC 14496-3) conforming products.CN1 retains full right to use the code for his/her own purpose, assignor donate the code to a third party and to inhibit third parties fromusing the code for non MPEG-4 Audio (ISO/IEC 14496-3) conformingproducts.  This copyright notice must be included in all copies orderivative works. Copyright 1996.*//*====================================================================*//*======================================================================*//*                                                                      *//*      INCLUDE_FILE:   PHI_LPC.H                                       *//*      PACKAGE:        WDBxx                                           *//*      COMPONENT:      Prototypes of Linear Prediction Subroutines     *//*                                                                      *//*======================================================================*/#ifndef _phi_lpc_h_#define _phi_lpc_h_#include "phi_priv.h"	/* PRIV */#ifdef __cplusplusextern "C" {#endif/*======================================================================*//*   Function Prototype: celp_lpc_analysis                              *//*======================================================================*/void celp_lpc_analysis(float PP_InputSignal[],         /* In:  Input Signal                    */float lpc_coefficients[],       /* Out: LPC Coefficients[0..lpc_order-1]*/float *first_order_lpc_par,     /* Out: a_parameter for 1st-order fit   */long  frame_size,               /* In:  Number of samples in frame      */long  window_offsets[],         /* In:  offset for window w.r.t curr. fr*/long  window_sizes[],           /* In:  LPC Analysis-Window Size        */float *windows[],               /* In:  Array of LPC Analysis windows   */float gamma_be[],               /* In:  Bandwidth expansion coefficients*/long  lpc_order,                /* In:  Order of LPC                    */long  n_lpc_analysis            /* In:  Number of LP analysis/frame     */); /*======================================================================*//*   Function Prototype: VQ_celp_lpc_decode                             *//*======================================================================*/void VQ_celp_lpc_decode(unsigned long  lpc_indices[],  /* In: Received Packed LPC Codes         */float int_Qlpc_coefficients[], /* Out: Qaunt/interpolated a-pars        */long  lpc_order,               /* In:  Order of LPC                     */long  num_lpc_indices,         /* In:  Number of packes LPC codes       */long  n_subframes,             /* In:  Number of subframes              */unsigned long interpolation_flag, /* In:  Was interpolation done?          */long  Wideband_VQ,             /* In:  Wideband VQ switch               */PHI_PRIV_TYPE *PHI_Priv		/* In/Out: PHI private data (instance context) */);/*======================================================================*//*   Function Prototype: VQ_celp_lpc_quantizer                          *//*======================================================================*/void VQ_celp_lpc_quantizer(float lpc_coefficients[],      /* In:  Current unquantised a-pars       */float lpc_coefficients_8[],    /* In:  Current unquantised a-pars(8 kHz)*/float int_Qlpc_coefficients[], /* Out: Qaunt/interpolated a-pars        */long  lpc_indices[],           /* Out: Codes thar are transmitted       */long  lpc_order,               /* In:  Order of LPC                     */long  num_lpc_indices,         /* In:  Number of packes LPC codes       */long  n_lpc_analysis,          /* In:  Number of LPC/frame              */long  n_subframes,             /* In:  Number of subframes              */long  *interpolation_flag,     /* Out: Interpolation Flag               */long  *send_lpc_flag,          /* Out: Send LPC flag                    */long  Wideband_VQ,PHI_PRIV_TYPE *PHI_Priv	       /* In/Out: PHI private data (instance context) */);/*======================================================================*//*   Function Prototype: celp_lpc_analysis_filter                       *//*======================================================================*/void celp_lpc_analysis_filter(float PP_InputSignal[],         /* In:  Input Signal [0..sbfrm_size-1]  */float lpc_residual[],           /* Out: LPC residual [0..sbfrm_size-1]  */float int_Qlpc_coefficients[],  /* In:  LPC Coefficients[0..lpc_order-1]*/long  lpc_order,                /* In:  Order of LPC                    */long  sbfrm_size,               /* In:  Number of samples in subframe   */PHI_PRIV_TYPE *PHI_Priv	        /* In/Out: PHI private data (instance context) */);/*======================================================================*//*   Function Prototype: celp_lpc_synthesis_filter                      *//*======================================================================*/void celp_lpc_synthesis_filter(float excitation[],             /* In:  Input Signal [0..sbfrm_size-1]  */float synth_signal[],           /* Out: LPC residual [0..sbfrm_size-1]  */float int_Qlpc_coefficients[],  /* In:  LPC Coefficients[0..lpc_order-1]*/long  lpc_order,                /* In:  Order of LPC                    */long  sbfrm_size,               /* In:  Number of samples in subframe   */PHI_PRIV_TYPE *PHI_Priv	        /* In/Out: PHI private data (instance context) */);/*======================================================================*//*   Function Prototype: celp_weighting_module                          *//*======================================================================*/void celp_weighting_module(float lpc_coefficients[],       /* In:  LPC Coefficients[0..lpc_order-1]*/long  lpc_order,                /* In:  Order of LPC                    */float Wnum_coeff[],             /* Out: num. coeffs[0..Wnum_order-1]    */float Wden_coeff[],             /* Out: den. coeffs[0..Wden_order-1]    */float gamma_num,                /* In:  Weighting factor: numerator     */float gamma_den                 /* In:  Weighting factor: denominator   */);   /*======================================================================*//*   Function Prototype: PHI_InitLpcAnalysisEncoder                     *//*======================================================================*/void PHI_InitLpcAnalysisEncoder(long  win_size[],               /* In:  LPC Analysis-Window Size        */long  n_lpc_analysis,           /* In:  Numberof LPC Analysis Frame     */long  order,                    /* In:  Order of LPC                    */long  order_8,                  /* In:  Order of LPC                    */float gamma_be,                 /* In:  Bandwidth Expansion Coefficient */long  bit_rate,                 /* In:  Bit Rate                        */long  sampling_frequency,       /* In:  Sampling Frequency              */long  SampleRateMode,           /* In:  SampleRateMode                  */long  frame_size,               /* In:  Frame Size                      */long  num_lpc_indices,          /* In:  Number of LPC indices           */  long  n_subframes,              /* In:  Number of subframes             */long  num_shape_cbks,           /* In:  Number of Shape Codebooks       */long  num_gain_cbks,            /* In:  Number of Gain Codebooks        */long  frame_bit_allocation[],   /* In:  Frame bit allocation            */long  num_indices,long  QuantizationMode,PHI_PRIV_TYPE *PHI_Priv		/* In/Out: PHI private data (instance context) */);/*======================================================================*//*   Function Prototype: PAN_InitLpcAnalysisEncoder                     *//*======================================================================*/void PAN_InitLpcAnalysisEncoder(long  win_size[],               /* In:  LPC Analysis-Window Size        */long  n_lpc_analysis,           /* In:  Number of LP analysis/frame     */long  order,                    /* In:  Order of LPC                    */float gamma_be,                 /* In:  Bandwidth Expansion Coefficient */long  bit_rate ,                /* In:  Bit Rate                        */PHI_PRIV_TYPE *PHI_Priv		/* In/Out: PHI private data (instance context) */);/*======================================================================*//*   Function Prototype: PHI_InitLpcAnalysisDecoder                     *//*======================================================================*/void PHI_InitLpcAnalysisDecoder(long  order,                    /* In:  Order of LPC                    */long  order_8,                  /* In:  Order of LPC                    */PHI_PRIV_TYPE *PHI_Priv		/* In/Out: PHI private data (instance context) */);/*======================================================================*//* Function Prototype: PHI_FreeLpcAnalysisEncoder                       *//*======================================================================*/void PHI_FreeLpcAnalysisEncoder(long n_lpc_analysis,             /* In: Number of LP analysis/frame */PHI_PRIV_TYPE *PHI_Priv		/* In/Out: PHI private data (instance context) */);/*======================================================================*//* Function Prototype: PAN_FreeLpcAnalysisEncoder                       *//*======================================================================*/void PAN_FreeLpcAnalysisEncoder(long n_lpc_analysis,             /* In: Number of LP analysis/frame */PHI_PRIV_TYPE *PHI_Priv		/* In/Out: PHI private data (instance context) */);/*======================================================================*//* Function Prototype: PHI_FreeLpcAnalysisDecoder                       *//*======================================================================*/void PHI_FreeLpcAnalysisDecoder(PHI_PRIV_TYPE *PHI_Priv		/* In/Out: PHI private data (instance context) */);/*======================================================================*//* Function Prototype: PHI_Adjust_bit_rate                              *//*======================================================================*/long PHI_Adjust_bit_rate(  const long offset);/*======================================================================*//*   Function Prototype: PHI_Interpolation                              *//*======================================================================*/void PHI_Interpolation(    const long flag,                  /* In: Interpoaltion     flag  */    PHI_PRIV_TYPE *PHI_Priv	      /* In/Out: PHI private data (instance context) */);/*======================================================================*//*   Function Prototype: celp_lpc_analysis_lag                          *//*======================================================================*/void celp_lpc_analysis_lag(float PP_InputSignal[],         /* In:  Input Signal                    */float lpc_coefficients[],       /* Out: LPC Coefficients[0..lpc_order-1]*/float *first_order_lpc_par,     /* Out: a_parameter for 1st-order fit   */long  frame_size,               /* In:  Number of samples in frame      */long  window_offsets[],         /* In:  offset for window w.r.t curr. fr*/long  window_sizes[],           /* In:  LPC Analysis-Window Size        */float *windows[],               /* In:  Array of LPC Analysis windows   */float gamma_be[],               /* In:  Bandwidth expansion coefficients*/long  lpc_order,                /* In:  Order of LPC                    */long  n_lpc_analysis            /* In:  Number of LP analysis/frame     */);/*======================================================================*//*   Function Prototype: PHI_lpc_analysis_lag                           *//*======================================================================*/void PHI_lpc_analysis_lag(float PP_InputSignal[],         /* In:  Input Signal                    */float lpc_coefficients[],       /* Out: LPC Coefficients[0..lpc_order-1]*/float *first_order_lpc_par,     /* Out: a_parameter for 1st-order fit   */long  frame_size,               /* In:  Number of samples in frame      */float HamWin[],                 /* In:  Hamming Window                  */long  window_offset,            /* In:  offset for window w.r.t curr. fr*/long  window_size,              /* In:  LPC Analysis-Window Size        */float gamma_be[],               /* In:  Bandwidth expansion coeffs.     */long  lpc_order                 /* In:  Order of LPC                    */);#ifdef __cplusplus}#endif#endif  /* #ifndef _phi_lpc_h_ *//*======================================================================*//*      H I S T O R Y                                                   *//*======================================================================*//* 17-04-96 R. Taori  Initial Version                                   *//* 30-07-96 R. Taori  Modified interface  to meet the MPEG-4 requirement*//* 30-08-96 R. Taori  Prefixed "PHI_" to several subroutines(MPEG req.) *//* 07-11-96 N. Tanaka (Panasonic)                                       *//*                    Added several modules for narrowband coder (PAN_) */

⌨️ 快捷键说明

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