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

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*====================================================================*/
  2. /*         MPEG-4 Audio (ISO/IEC 14496-3) Copyright Header            */
  3. /*====================================================================*/
  4. /*
  5. This software module was originally developed by Rakesh Taori and Andy
  6. Gerrits (Philips Research Laboratories, Eindhoven, The Netherlands) in
  7. the course of development of the MPEG-4 Audio (ISO/IEC 14496-3). This
  8. software module is an implementation of a part of one or more MPEG-4
  9. Audio (ISO/IEC 14496-3) tools as specified by the MPEG-4 Audio
  10. (ISO/IEC 14496-3). ISO/IEC gives users of the MPEG-4 Audio (ISO/IEC
  11. 14496-3) free license to this software module or modifications thereof
  12. for use in hardware or software products claiming conformance to the
  13. MPEG-4 Audio (ISO/IEC 14496-3). Those intending to use this software
  14. module in hardware or software products are advised that its use may
  15. infringe existing patents. The original developer of this software
  16. module and his/her company, the subsequent editors and their
  17. companies, and ISO/IEC have no liability for use of this software
  18. module or modifications thereof in an implementation. Copyright is not
  19. released for non MPEG-4 Audio (ISO/IEC 14496-3) conforming products.
  20. CN1 retains full right to use the code for his/her own purpose, assign
  21. or donate the code to a third party and to inhibit third parties from
  22. using the code for non MPEG-4 Audio (ISO/IEC 14496-3) conforming
  23. products.  This copyright notice must be included in all copies or
  24. derivative works. Copyright 1996.
  25. */
  26. /*====================================================================*/
  27. /*======================================================================*/
  28. /*                                                                      */
  29. /*      SOURCE_FILE:    PHI_COD.H                                       */
  30. /*      PACKAGE:        WDBXX_1.0                                       */
  31. /*      COMPONENT:      Analysis-by-Synthesis CELP Framework (CODER)    */  
  32. /*                                                                      */
  33. /*======================================================================*/
  34. #ifndef _phi_cod_h_
  35. #define _phi_cod_h_
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39. /**
  40. #include "lpc_common.h"
  41. **/     
  42. /*======================================================================*/
  43. /* Function prototype: celp_coder                                       */
  44. /*======================================================================*/
  45. void celp_coder
  46. (
  47. float     **InputSignal,           /* In: Multichannel Speech           */
  48. BsBitStream *bitStream,           /* Out: Bitstream                     */
  49. long        sampling_frequency,    /* In:  Sampling Frequency           */
  50. long        bit_rate,              /* In:  Bit rate                     */
  51. long     ExcitationMode,      /* In: Excitation Mode  */
  52. long        SampleRateMode,
  53. long        QuantizationMode,      /* In: Type of Quantization       */
  54. long        FineRateControl,    /* In: Fine Rate Control switch      */
  55. long        LosslessCodingMode,    /* In: Lossless Coding Mode       */   
  56. long        RPE_configuration,      /* In: Wideband configuration      */
  57. long        Wideband_VQ,    /* In: Wideband VQ mode     */
  58. long        MPE_Configuration,      /* In: Narrowband configuration      */
  59. long        NumEnhLayers,          /* In: Number of Enhancement Layers  */
  60. long        BandwidthScalabilityMode, /* In: bandwidth switch           */
  61. long        BWS_configuration,     /* In: BWS_configuration      */
  62. long        PreProcessingSW,       /* In: PreProcessingSW     */
  63. long        frame_size,            /* In:  Frame size                   */
  64. long        n_subframes,           /* In:  Number of subframes          */
  65. long        sbfrm_size,            /* In:  Subframe size                */
  66. long        lpc_order,             /* In:  Order of LPc                 */
  67. long        num_lpc_indices,       /* In:  Number of LPC indices        */
  68. long        num_shape_cbks,        /* In:  Number of Shape Codebooks    */
  69. long        num_gain_cbks,         /* In:  Number of Gain Codebooks     */
  70. long        n_lpc_analysis,        /* In:  Number of LPCs per frame     */
  71. long        window_offsets[],      /* In:  Offset for LPC-frame v.window*/
  72. long        window_sizes[],        /* In:  LPC Analysis Window size     */
  73. long        max_n_lag_candidates,  /* In:  Maximum search candidates    */
  74. float       min_pitch_frequency,   /* IN:  Min Pitch Frequency          */
  75. float       max_pitch_frequency,   /* IN:  Max Pitch Frequency          */
  76. long        org_frame_bit_allocation[], /* In: Frame BIt alolocation      */
  77. void        *InstanceContext    /* In/Out: instance context */
  78. );
  79. /*======================================================================*/
  80. /*   Function Prototype:celp_initialisation_encoder                     */
  81. /*======================================================================*/
  82. void celp_initialisation_encoder
  83. (
  84. BsBitStream *hdrStream,           /* Out: Bitstream                     */
  85. long  bit_rate,            /* In: bit rate                        */
  86. long  sampling_frequency,     /* In: sampling frequency              */
  87. long     ExcitationMode,      /* In: Excitation Mode  */
  88. long     SampleRateMode,      /* In: SampleRate Mode  */
  89. long     QuantizationMode,       /* In: Type of Quantization */
  90. long     FineRateControl,      /* In: Fine Rate Control switch  */
  91. long     LosslessCodingMode,     /* In: Lossless Coding Mode */
  92. long     *RPE_configuration,      /* In: RPE_configuration  */
  93. long     Wideband_VQ,      /* Out: Wideband VQ mode */
  94. long     *MPE_Configuration,      /* Out: Multi-Pulse Exc. configuration   */
  95. long     NumEnhLayers,    /* In: Number of Enhancement Layers for NB */
  96. long     BandwidthScalabilityMode, /* In: bandwidth switch   */
  97. long     *BWS_Configuration,     /* Out: BWS_configuration  */
  98. long     BWS_nb_bitrate,        /* In: narrowband bitrate for BWS */
  99. long     InputConfiguration,     /* In: RPE/MPE Configuration for FRC   */
  100. long  *frame_size,          /* Out: frame size                     */
  101. long  *n_subframes,           /* Out: number of  subframes           */
  102. long  *sbfrm_size,          /* Out: subframe size                  */ 
  103. long  *lpc_order,          /* Out: LP analysis order              */
  104. long  *num_lpc_indices,       /* Out: number of LPC indices          */
  105. long  *num_shape_cbks,      /* Out: number of Shape Codebooks      */
  106. long  *num_gain_cbks,      /* Out: number of Gain Codebooks       */ 
  107. long  *n_lpc_analysis,      /* Out: number of LP analysis per frame*/
  108. long  **window_offsets,       /* Out: window offset for each LP ana  */
  109. long  **window_sizes,         /* Out: window size for each LP ana    */
  110. long  *n_lag_candidates,      /* Out: number of pitch candidates     */
  111. float  *min_pitch_frequency,   /* Out: minimum pitch frequency        */
  112. float  *max_pitch_frequency,   /* Out: maximum pitch frequency        */
  113. long  **org_frame_bit_allocation, /* Out: bit num. for each index      */
  114. void  **InstanceContext,  /* Out: handle to initialised instance context */
  115. int      sysFlag                 /* In: system interface(flexmux) flag */
  116. );
  117. /*======================================================================*/
  118. /*   Function  Prototype: celp_close_encoder                            */
  119. /*======================================================================*/
  120. void celp_close_encoder
  121. (
  122.     long ExcitationMode,      /* In: Excitation Mode  */
  123.     long SampleRateMode,
  124.     long BandwidthScalabilityMode,
  125.     long sbfrm_size,              /* In: subframe size                  */
  126.     long frame_bit_allocation[],  /* In: bit num. for each index        */
  127.     long window_offsets[],        /* In: window offset for each LP ana  */
  128.     long window_sizes[],          /* In: window size for each LP ana    */
  129.     long n_lpc_analysis,          /* In: number of LP analysis/frame    */
  130.     void **InstanceContext   /* In/Out: handle to instance context */
  131. );
  132. #ifdef __cplusplus
  133. }
  134. #endif
  135. #endif  /* #ifndef _phi_cod_h_*/