www.pudn.com > SMV_Code.rar > lib_fcs.h


/*=========================================================================*/ 
/* Each of the companies; Ericsson, Lucent, Mindspeed, Motorola, Nokia,    */ 
/* Nortel Networks, and Qualcomm (hereinafter referred to individually as  */ 
/* “Source” or collectively as “Sources”) do hereby state:                 */ 
/*                                                                         */ 
/* To the extent to which the Source(s) may legally and freely do so,      */ 
/* the Source(s), upon submission of a Contribution, grant(s) a free,      */ 
/* irrevocable, non-exclusive, license to the Third Generation Partnership */ 
/* Project 2 (3GPP2) and its Organizational Partners: ARIB, CCSA, TIA,     */ 
/* TTA, and TTC, under the Source’s copyright or copyright license rights  */ 
/* in the Contribution, to, in whole or in part, copy, make derivative     */ 
/* works, perform, display and distribute the Contribution and derivative  */ 
/* works thereof consistent with 3GPP2’s and each Organizational Partner’s */ 
/* policies and procedures, with the right to (i) sublicense the foregoing */ 
/* rights consistent with 3GPP2’s and each Organizational Partner’s        */ 
/* policies and procedures and (ii) copyright and sell, if applicable) in  */ 
/* 3GPP2's name or each Organizational Partner’s name any 3GPP2 or         */ 
/* transposed Publication even though this Publication may contain the     */ 
/* Contribution or a derivative work thereof.  The Contribution shall      */ 
/* disclose any known limitations on the Source’s rights to license as     */ 
/* herein provided.                                                        */ 
/*                                                                         */ 
/* When a Contribution is submitted by the Source(s) to assist the         */ 
/* formulating groups of 3GPP2 or any of its Organizational Partners,      */ 
/* it is proposed to the Committee as a basis for discussion and is not    */ 
/* to be construed as a binding proposal on the Source(s).  The Source(s)  */ 
/* specifically reserve(s) the right to amend or modify the material       */ 
/* contained in the Contribution. Nothing contained in the Contribution    */ 
/* shall, except as herein expressly provided, be construed as conferring  */ 
/* by implication, estoppel or otherwise, any license or right under       */ 
/* (i) any existing or later issuing patent, whether or not the use of     */ 
/* information in the document necessarily employs an invention of any     */ 
/* existing or later issued patent, (ii) any copyright, (iii) any          */ 
/* trademark, or (iv) any other intellectual property right.               */ 
/*                                                                         */ 
/* With respect to the Software necessary for the practice of any or all   */ 
/* Normative portions of the Selectable Mode Vocoder (SMV) as it exists on */ 
/* the date of submittal of this form, should the SMV be approved as a     */ 
/* Specification or Report by 3GPP2, or as a transposed Standard by any of */ 
/* the 3GPP2’s Organizational Partners, the Source(s) state(s) that a      */ 
/* worldwide license to reproduce, use and distribute the Software, the    */ 
/* license rights to which are held by the Source(s), will be made         */ 
/* available to applicants under terms and conditions that are reasonable  */ 
/* and non-discriminatory, which may include monetary compensation,        */ 
/* and only to the extent necessary for the practice of any or all of the  */ 
/* Normative portions of the SMV or the field of use of practice of the    */ 
/* SMV Specification, Report, or Standard.  The statement contained above  */ 
/* is irrevocable and shall be binding upon the Source(s).  In the event   */ 
/* the rights of the Source(s) in and to copyright or copyright license    */ 
/* rights subject to such commitment are assigned or transferred,          */ 
/* the Source(s) shall notify the assignee or transferee of the existence  */ 
/* of such commitments.                                                    */ 
/*=========================================================================*/ 
/*                                                                   */ 
/*-------------------------------------------------------------------*/ 
/*===================================================================*/ 
/* PROTOTYPE FILE : lib_fcs.h                                        */ 
/*-------------------------------------------------------------------*/ 
/* PURPOSE :  Fixed codebook search library                          */ 
/*===================================================================*/ 
 
/*--------------------------------------------------------------------------*/ 
/*------------------------------ FUNCTIONS ---------------------------------*/ 
/*--------------------------------------------------------------------------*/ 
 
void FCS_init_lib		 	 (void); 
 
void FCS_Set_CPCB			 (INT16, INT16, INT16); 
 
void FCS_Dynamic_track_3p(INT16, INT16 ); 
 
void FCS_Determ_PulsMag (FLOAT64, FLOAT64 []); 
#ifdef ENC_CMP 
 
void FCS_PreCalc_FBCB (FLOAT64 [], INT16 , INT16 , FLOAT64 [], FLOAT64 [],  
		       FLOAT64 [], FLOAT64 [], INT16 [], FLOAT64 **, INT16 []); 
#endif 
 
void FCS_Determ_FB_excit (INT16 , FLOAT64 [], INT16 [], INT16 [], INT16 , 
				 FLOAT64 *, INT16 ); 
 
#ifdef ENC_CMP 
void FCS_Add_Minus_OneContribu(FLOAT64 [], FLOAT64 *, INT16, INT16, INT16, 
			       INT16, INT16, INT16 [], FLOAT64 [], 
			       FLOAT64 **, INT16 ); 
 
void Update_Excit_Candidat (FLOAT64 , FLOAT64 *, INT16 [], INT16 , INT16 [], 
			    INT16 , FLOAT64 [], INT16 [], INT16 [], FLOAT64 [], 
			    INT16 ); 
 
void FCS_Fast_Search_FBCB (INT16, INT16, INT16, INT16, INT16, INT16,  
			   FLOAT64 [], FLOAT64 [], 
			   FLOAT64 [], INT16 [], FLOAT64 **, 
			   INT16 [], FLOAT64 *,  
			   FLOAT64 [], INT16 [], INT16 [], FLOAT64 *Rd0_t); 
 
void FCS_Calc_Rn_Rd_FBCB(INT16 , INT16 , INT16 , INT16 [], INT16 [],  
                         INT16 , FLOAT64 , FLOAT64 , FLOAT64 [], FLOAT64 [],  
			 FLOAT64 [], FLOAT64 **, INT16 *,  
			 INT16 *, INT16 *, FLOAT64 *, FLOAT64 *, FLOAT64 *, 
			 FLOAT64 *, INT16 UPDATE); 
 
void FCS_Calc_Rn_Rd_FBCB_3   (INT16, INT16, INT16, INT16 [], 
			      INT16 [], INT16, FLOAT64, 
			      FLOAT64 [], 
			      INT16 *,  
			      INT16 *, INT16 *, FLOAT64 *, FLOAT64 *, 
			      FLOAT64 *, INT16, 
			      FLOAT64, FLOAT64 *, INT16 [], INT16 ); 
 
void FCS_Search_PeaksIdx_1Track (FLOAT64 [], FLOAT64 [], INT16 , 
				 INT16 , INT16 []); 
 
void FCS_Calc_Criter_deci (FLOAT64 *, INT16 [], INT16 , INT16 ,  
                           INT16 , INT16 , INT16 , INT16 [], INT16 [],  
                           INT16 , FLOAT64 , FLOAT64 , FLOAT64 [], FLOAT64 [],  
			   FLOAT64 [], FLOAT64 **, INT16 *); 
 
void FCS_Fast_Search_FBCB2 (INT16, INT16, INT16, INT16, INT16, INT16, 
			    FLOAT64 [], FLOAT64 [], 
			    FLOAT64 [], INT16 [], FLOAT64 **, 
			    INT16 [], FLOAT64 *,  
			    FLOAT64 [], INT16 [], INT16 [], FLOAT64 *Rd0_t); 
 
void FCS_Full_Search_FBCB_5p (INT16, INT16, INT16, INT16, 
			      FLOAT64 [], FLOAT64 [], 
			      FLOAT64 [], INT16 [], FLOAT64 **, 
			      INT16 [], FLOAT64 *,  
			      FLOAT64 [], INT16 [], INT16 []);	  
 
void FCS_PulseExchange(INT16 *, INT16 *, INT16 *, INT16 *); 
#endif 
 
void FCS_ST_parameter (INT16, INT16, FLOAT64 [], FLOAT64 *, 
		       FLOAT64 [], FLOAT64, FLOAT64 *, FLOAT64 *); 
 
 
void FCS_Search_pastcorr (FLOAT64 [], FLOAT64 [], FLOAT64, INT16, 
			  FLOAT64, INT16, 
			  INT16, INT16, INT16, FLOAT64 [], INT16 [],  
			  INT16 *, FLOAT64 [], INT16 *); 
 
void FCS_Excit_Enhance (FLOAT64 [], INT16 [], INT16 , FLOAT64 [],  
			FLOAT64 [], INT16 , FLOAT64 [], INT16 ); 
 
#ifdef ENC_CMP 
 
void FCS_Set_Index (PARAMETER *, INT16 , INT16 , INT16 [], INT16 []); 
 
void FCS_Criter_Weighted (INT16 , FLOAT64 [], INT16 , INT16 ,  
                       FLOAT64 , FLOAT64 , INT16 , INT16 , FLOAT64 *); 
 
#endif 
 
 
#ifdef DEC_CMP 
			 			   			    
void FCS_FBCB_decod (INT16, INT16, INT16, INT16, FLOAT64, INT16 [],  
				INT16 [], FLOAT64 []); 
#endif 
 
#ifdef ENC_CMP 
 
void FCS_cdbk_search_4000BPS (FLOAT64 [], FLOAT64 [], FLOAT64 [], 
					  FLOAT64 [], FLOAT64 [], FLOAT64 [], 
					  INT16, INT16, INT16, INT16, FLOAT64, 
					  FLOAT64, FLOAT64, INT16, FLOAT64, 
					  PARAMETER *, INT16); 
#endif 
 
#ifdef DEC_CMP 
 
void FCS_cdbk_decod_4000BPS (FLOAT64 [], FLOAT64 [], FLOAT64 [], 
			       INT16, INT16, INT16, FLOAT64, INT16,  
			       FLOAT64, PARAMETER *, INT16); 
#endif 
 
#ifdef ENC_CMP 
 
void FCS_cdbk_search_8500BPS (  FLOAT64 [], FLOAT64 [], FLOAT64 [], FLOAT64 [], 
				INT16, INT16, INT16, INT16, FLOAT64, FLOAT64,  
				FLOAT64, PARAMETER *, INT16); 
#endif 
 
#ifdef DEC_CMP 
 
void FCS_cdbk_decod_8500BPS	(FLOAT64 [], INT16, INT16, 
				 INT16, FLOAT64, PARAMETER *, INT16); 
 
#endif 
 
 
#ifdef ENC_CMP 
 
void FCS_ChangeSign (PARAMETER *, INT16, INT16, FLOAT64 [], 
		     FLOAT64 [], FLOAT64 *); 
#endif 
 
 
/*==========================================================================*/ 
/*---------------------------------- END -----------------------------------*/ 
/*==========================================================================*/