www.pudn.com > AVS_M_ver10.rar > q_isf_hf.c


/* 
*********************************************************************** 
* COPYRIGHT AND WARRANTY INFORMATION 
* 
* Copyright 2007  Audio Video Coding Standard, Part ¢ú 
* 
* This software module was developed by AVS Audio sub-group 
* 
* DISCLAIMER OF WARRANTY 
* 
* These software programs are available to the users without any 
* license fee or royalty on an "as is" basis. The AVS disclaims 
* any and all warranties, whether express, implied, or statutory, 
* including any implied warranties of merchantability or of fitness 
* for a particular purpose. In no event shall the contributors or  
* the AVS be liable for any incidental, punitive, or consequential 
* damages of any kind whatsoever arising from the use of this program. 
* 
* This disclaimer of warranty extends to the user of this program 
* and user's customers, employees, agents, transferees, successors, 
* and assigns. 
* 
* The AVS does not represent or warrant that the program furnished 
* hereunder are free of infringement of any third-party patents. 
* Commercial implementations of AVS, including shareware, may be 
* subject to royalty fees to patent holders. Information regarding 
* the AVS patent policy is available from the AVS Web site at 
* http://www.avs.org.cn 
* 
* THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE AVS PATENT POLICY. 
************************************************************************ 
*/ 
 
/*-------------------------------------------------------------------* 
 * functions: q_isf_hf()                                             * 
 *                                                                   * 
 * Coding/Decoding of HF ISF parameters with AR prediction.          * 
 *                                                                   * 
 * The ISF vector is quantized using one-stage VQ with 8 elements.   * 
 *-------------------------------------------------------------------*/ 
#include  
#include  
#include "../include/amr_plus.h" 
#define ISF_GAP_HF  180.0f 
#define MU          0.5f 
static int sub_VQ(float *x, const float *dico, int dim, int dico_size, float *distance); 
void q_isf_hf( 
  float *isf1,      /* input : ISF in the frequency domain (0..6400) */ 
  float *isf_q,     /* output: quantized ISF                         */ 
  float *past_q,    /* i/o   : past quantized isf (for AR prediction)*/ 
  int *indice,      /* output: quantization indices (7 words)        */ 
  const float *mean_isf_hf, 
  const float *dico1_isf_hf 
) 
{ 
  int i, k, index; 
  float min_err, distance, isf2[Q_ISF_ORDER]; 
  distance = 1.0e30f; 
  for (k=0; k