phi_priv.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:7k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. #ifndef _PHI_PRIV_H_
  2. #define _PHI_PRIV_H_
  3. /*====================================================================*/
  4. /*         MPEG-4 Audio (ISO/IEC 14496-3) Copyright Header            */
  5. /*====================================================================*/
  6. /*
  7. This software module was originally developed by Rakesh Taori and Andy
  8. Gerrits (Philips Research Laboratories, Eindhoven, The Netherlands) in
  9. the course of development of the MPEG-4 Audio (ISO/IEC 14496-3). This
  10. software module is an implementation of a part of one or more MPEG-4
  11. Audio (ISO/IEC 14496-3) tools as specified by the MPEG-4 Audio
  12. (ISO/IEC 14496-3). ISO/IEC gives users of the MPEG-4 Audio (ISO/IEC
  13. 14496-3) free license to this software module or modifications thereof
  14. for use in hardware or software products claiming conformance to the
  15. MPEG-4 Audio (ISO/IEC 14496-3). Those intending to use this software
  16. module in hardware or software products are advised that its use may
  17. infringe existing patents. The original developer of this software
  18. module and his/her company, the subsequent editors and their
  19. companies, and ISO/IEC have no liability for use of this software
  20. module or modifications thereof in an implementation. Copyright is not
  21. released for non MPEG-4 Audio (ISO/IEC 14496-3) conforming products.
  22. CN1 retains full right to use the code for his/her own purpose, assign
  23. or donate the code to a third party and to inhibit third parties from
  24. using the code for non MPEG-4 Audio (ISO/IEC 14496-3) conforming
  25. products.  This copyright notice must be included in all copies or
  26. derivative works. Copyright 1996.
  27. */
  28. /*====================================================================*/
  29. /*====================================================================*/
  30. /*                                                                    */
  31. /*      INCLUDE_FILE:   PHI_PRIV.H                                    */
  32. /*      COMPONENT:      Private data used within Philips CELP decoder */
  33. /*                                                                    */
  34. /*====================================================================*/
  35. #define NEC_LSPPRDCT_ORDER 4
  36. #define NEC_MAX_LSPVQ_ORDER 20
  37. /*======================================================================*/
  38. /*   Type definition: PHI_PRIV_TYPE                         */
  39. /*   Structure stores context for one decoded stream                    */
  40. /*======================================================================*/
  41. typedef struct
  42. {
  43. /*--- phi_bs2p.c ---*/
  44.     /*    none */
  45. #ifdef KEEP_ESLE_REMOVE_PRIV
  46.     int   PHI_decoded_bits;
  47. #endif /* KEEP_ESLE_REMOVE_PRIV */
  48. /*--- phi_fbit.c ---*/
  49.     /*    none */
  50. /*--- phi_gxit.c ---*/
  51.     float *PHI_adaptive_cbk; /* Adaptive Codebook */
  52.     long  PHI_sfrm_ctr; /* counter:indicates current subframe */
  53.     float PHI_prev_fcbk_gain; /* Fixed Cbk Gain of previous frame */ 
  54.     long  PHI_D;
  55.     long  PHI_Np;
  56. /*--- phi_lpc.c ---*/
  57.     float *PHI_mem_i; /* Filter States of LPC Analysis Filter */
  58.     float *PHI_mem_s; /* Filter States of LPC Synthesis Filter*/
  59.     float *PHI_prev_lar; /* Previous log-area ratios */
  60.     float *PHI_current_lar; /* Current log-area ratios */
  61.     long  *PHI_prev_indices; /* Previous Indices */
  62.     long  PHI_prev_int_flag; /* Previous Interpolation Flag */
  63.     long  PHI_prev_lpc_flag; /* Previous LPC sent Flag */
  64.     float *PHI_dec_prev_lar; /* Previous log-area ratios */
  65.     float *PHI_dec_current_lar; /* Current log-area ratios */
  66.     long  PHI_dec_prev_interpolation_flag; /* Previous Interpolation Flag */
  67.     long  PHI_dec_int_switch; /* 0: interpolation on LARs */
  68.     /*----------------------------------------------------------------------*/
  69.     /*    Variables for bit rate control in VQ mode                         */
  70.     /* ---------------------------------------------------------------------*/
  71.     float *next_uq_lsf_16;
  72.     float *current_uq_lsf_16;
  73.     float *previous_uq_lsf_16;
  74.     float *next_q_lsf_16;
  75.     float *current_q_lsf_16;
  76.     float *previous_q_lsf_16;
  77.     float *previous_q_lsf_int_16;
  78.     float blsp_previous[NEC_LSPPRDCT_ORDER][NEC_MAX_LSPVQ_ORDER];
  79.     float *next_uq_lsf_8;
  80.     float *current_uq_lsf_8;
  81.     float *previous_uq_lsf_8;
  82.     float *next_q_lsf_8;
  83.     float *current_q_lsf_8;
  84.     float *previous_q_lsf_8;
  85.     float *previous_q_lsf_int_8;
  86.     float blsp_dec[NEC_LSPPRDCT_ORDER][NEC_MAX_LSPVQ_ORDER];
  87.     float *next_q_lsf_16_dec;
  88.     float *current_q_lsf_16_dec;
  89.     float *previous_q_lsf_16_dec;
  90.     float *next_q_lsf_8_dec;
  91.     float *current_q_lsf_8_dec;
  92.     float *previous_q_lsf_8_dec;
  93.     float nec_lsp_minwidth;
  94.     /*----------------------------------------------------------------------*/
  95.     /*    Variables for dynamic threshold                                   */
  96.     /* ---------------------------------------------------------------------*/
  97.     long PHI_FRAMES; 
  98.     long PHI_desired_bit_rate;
  99.     long PHI_actual_bits;
  100.     long PHI_frames_sent;
  101.     float PHI_dyn_lpc_thresh;
  102.     long PHI_MAX_BITS;
  103.     long PHI_MIN_BITS;
  104.     float PHI_FR;
  105.     float PHI_stop_threshold;
  106.     /*----------------------------------------------------------------------*/
  107.     /*    Variables for statistics only                                     */
  108.     /* ---------------------------------------------------------------------*/
  109.     float frames;
  110.     long  llc_bits;
  111. /*--- phi_lsfr.c ---*/
  112.     /*    none */
  113. /*--- phi_post.c ---*/
  114.     float *PHI_P1_states; /* Post-Filter  delay line (inverse filter) */
  115.     float *PHI_P2_states; /* Post-Filter  delay line (synthesis filter) */
  116.     float PHI_P3_state; /* state for the tilt correction filter */
  117.     float PHI_Gpf; /* Adaptive Gain */
  118.     float *PHI_g1; /* Gamma Array for PostFilter (Analysis Path) */
  119.     float *PHI_g2; /* Gamma Array for PostFilter (Synthesis Path) */                           
  120. /*--- phi_xits.c ---*/
  121. /* PRIV not used in decoder, only in encoder
  122.     float gp; 
  123. */
  124. } PHI_PRIV_TYPE;
  125. /*======================================================================*/
  126. /*   Function Prototype: PHI_Init_Private_Data */
  127. /*   Initialise private data                                            */
  128. /*======================================================================*/
  129. #ifdef __cplusplus
  130. extern "C" {
  131. #endif
  132. void PHI_Init_Private_Data(PHI_PRIV_TYPE *PHI_Priv);
  133. #ifdef __cplusplus
  134. }
  135. #endif
  136. /*======================================================================*/
  137. /*      H I S T O R Y                                                   */
  138. /*======================================================================*/
  139. /* 13-03-98  P. Dillen                Initial Version                   */
  140. #endif /* _PHI_PRIV_H_ */