www.pudn.com > speakFreely-code.zip > acelp_pf.h
/*======================================================================*/
/* Enhanced Variable Rate Codec - Bit-Exact C Specification */
/* Copyright (C) 1997-1998 Telecommunications Industry Association. */
/* All rights reserved. */
/*----------------------------------------------------------------------*/
/* Note: Reproduction and use of this software for the design and */
/* development of North American Wideband CDMA Digital */
/* Cellular Telephony Standards is authorized by the TIA. */
/* The TIA does not authorize the use of this software for any */
/* other purpose. */
/* */
/* The availability of this software does not provide any license */
/* by implication, estoppel, or otherwise under any patent rights */
/* of TIA member companies or others covering any use of the */
/* contents herein. */
/* */
/* Any copies of this software or derivative works must include */
/* this and all other proprietary notices. */
/*======================================================================*/
#include "typedefs.h"
void ACELP_Code(
Shortword _xn[], /* (i) :Target signal for codebook. */
Shortword _res2[], /* (i) :Residual after pitch contribution */
Shortword _h1[], /* (i) :Impulse response of filters. */
Shortword T0, /* (i) :Pitch lag. */
Shortword _pitch_gain, /* (i) :Pitch gain. */
Shortword l_subfr, /* (i) :Subframe lenght. */
Shortword _code[], /* (o) :Innovative vector. */
Shortword *_gain_code, /* (o) :Innovative vector gain. */
Shortword _y2[], /* (o) :Filtered innovative vector. */
Shortword *index, /* (o) :Index of codebook + signs */
Shortword choice /* (i) :Choice of innovative codebook */
/* 0 -> 10 bits */
/* 1 -> 35 bits */
);
void code_3i54_10bits(
Shortword dn[], /* (i) Q0 : dn[54] correlation between target and h[] */
Shortword l_subfr, /* (i) : lenght of subframe (53 or 54) */
Shortword H[], /* (i) Q12: impulse response of weighted synthesis filter */
Shortword code[], /* (o) Q12: algebraic (fixed) codebook excitation */
Shortword y[], /* (o) Q10: filtered fixed codebook excitation */
Shortword *indx /* (o) : index 1 words of 10 bits */
);
void code_8i55_35bits(
Shortword dn[], /* (i) Q0 : dn[55] correlation between target and h[] */
Shortword cn[], /* (i) Q0 : cn[55] residual after long term prediction */
Shortword l_subfr, /* (i) : lenght of subframe (53 or 54) */
Shortword H[], /* (i) Q12: impulse response of weighted synthesis filter */
Shortword code[], /* (o) Q12: algebraic (fixed) codebook excitation */
Shortword y[], /* (o) Q10: filtered fixed codebook excitation */
Shortword indx[] /* (o) : index 4 words: 8 + 8 + 8 + 11 = 35 bits */
);
void dec3_10(
Shortword index, /* (i) : indx of 3 pulses (10 bits) */
Shortword cod[], /* (o) Q12: algebraic (fixed) codebook excitation */
Shortword l_subfr /* (i) : lenght of subframe (53 or 54) */
);
void dec8_35(
Shortword *indx, /* (i) : indx of 8 pulses (8+8+8+11 = 35 bits) */
Shortword cod[], /* (o) Q12: algebraic (fixed) codebook excitation */
Shortword l_subfr /* (i) : lenght of subframe (53 or 54) */
);
void cor_h_x(
Shortword h[], /* (i) Q12 : impulse response of weighted synthesis filter */
Shortword x[], /* (i) Q0 : correlation between target and h[] */
Shortword dn[] /* (o) Q0 : correlation between target and h[] */
);
Shortword G_code( /* out Q0 : Gain of innovation code. */
Shortword xn2[], /* in Q0 : target vector */
Shortword y2[], /* in Q10: filtered inovation vector */
Shortword l_subfr /* in : length of subframe (53 or 54) */
);