Asterisk - The Open Source Telephony Project  18.5.0
Data Structures | Macros | Typedefs | Functions
lpc10.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  lpc10_decoder_state
 
struct  lpc10_encoder_state
 

Macros

#define LPC10_BITS_IN_COMPRESSED_FRAME   54
 
#define LPC10_SAMPLES_PER_FRAME   180
 
#define P_R_O_T_O_T_Y_P_E_S
 

Typedefs

typedef INT32 integer
 
typedef INT32 logical
 
typedef float real
 
typedef INT16 shortint
 

Functions

struct lpc10_decoder_statecreate_lpc10_decoder_state (void)
 
struct lpc10_encoder_statecreate_lpc10_encoder_state (void)
 
void init_lpc10_decoder_state (struct lpc10_decoder_state *st)
 
void init_lpc10_encoder_state (struct lpc10_encoder_state *st)
 
int lpc10_decode (INT32 *bits, real *speech, struct lpc10_decoder_state *st)
 
int lpc10_encode (real *speech, INT32 *bits, struct lpc10_encoder_state *st)
 

Macro Definition Documentation

◆ LPC10_BITS_IN_COMPRESSED_FRAME

#define LPC10_BITS_IN_COMPRESSED_FRAME   54

Definition at line 37 of file lpc10.h.

Referenced by build_bits(), extract_bits(), lintolpc10_frameout(), and lpc10tolin_framein().

◆ LPC10_SAMPLES_PER_FRAME

#define LPC10_SAMPLES_PER_FRAME   180

Definition at line 36 of file lpc10.h.

Referenced by lintolpc10_frameout(), lpc10_sample(), and lpc10tolin_framein().

◆ P_R_O_T_O_T_Y_P_E_S

#define P_R_O_T_O_T_Y_P_E_S

Definition at line 34 of file lpc10.h.

Typedef Documentation

◆ integer

typedef INT32 integer

Definition at line 80 of file lpc10.h.

◆ logical

typedef INT32 logical

Definition at line 81 of file lpc10.h.

◆ real

typedef float real

Definition at line 79 of file lpc10.h.

◆ shortint

typedef INT16 shortint

Definition at line 82 of file lpc10.h.

Function Documentation

◆ create_lpc10_decoder_state()

struct lpc10_decoder_state* create_lpc10_decoder_state ( void  )

Definition at line 369 of file lpcini.c.

References init_lpc10_decoder_state(), and malloc().

Referenced by lpc10_dec_new().

370 {
371  struct lpc10_decoder_state *st;
372 
373  st = (struct lpc10_decoder_state *)
374  malloc((unsigned) sizeof (struct lpc10_decoder_state));
375  if (st != 0) {
377  }
378  return (st);
379 }
char * malloc()
void init_lpc10_decoder_state(struct lpc10_decoder_state *st)
Definition: lpcini.c:383

◆ create_lpc10_encoder_state()

struct lpc10_encoder_state* create_lpc10_encoder_state ( void  )

Definition at line 258 of file lpcini.c.

References init_lpc10_encoder_state(), and malloc().

Referenced by lpc10_enc_new().

259 {
260  struct lpc10_encoder_state *st;
261 
262  st = (struct lpc10_encoder_state *)
263  malloc((unsigned) sizeof (struct lpc10_encoder_state));
264  if (st != 0) {
266  }
267  return (st);
268 }
char * malloc()
void init_lpc10_encoder_state(struct lpc10_encoder_state *st)
Definition: lpcini.c:272

◆ init_lpc10_decoder_state()

void init_lpc10_decoder_state ( struct lpc10_decoder_state st)

Definition at line 383 of file lpcini.c.

References lpc10_decoder_state::buf, lpc10_decoder_state::buflen, lpc10_decoder_state::dei1, lpc10_decoder_state::dei2, lpc10_decoder_state::deo1, lpc10_decoder_state::deo2, lpc10_decoder_state::deo3, lpc10_decoder_state::dpit, lpc10_decoder_state::drc, lpc10_decoder_state::drms, lpc10_decoder_state::erate, lpc10_decoder_state::exc, lpc10_decoder_state::exc2, lpc10_decoder_state::first, lpc10_decoder_state::first_pitsyn, lpc10_decoder_state::hpi1, lpc10_decoder_state::hpi2, lpc10_decoder_state::hpi3, lpc10_decoder_state::iavgp, lpc10_decoder_state::iovoic, lpc10_decoder_state::ipo, lpc10_decoder_state::iptold, lpc10_decoder_state::ivp2h, lpc10_decoder_state::j, lpc10_decoder_state::k, lpcini_(), lpc10_decoder_state::lpi1, lpc10_decoder_state::lpi2, lpc10_decoder_state::lpi3, lpc10_decoder_state::rmso, lpc10_decoder_state::rmso_bsynz, TRUE_, and lpc10_decoder_state::y.

Referenced by create_lpc10_decoder_state().

384 {
385  int i;
386 
387  lpcini_();
388 
389  /* State used by function decode */
390  st->iptold = 60;
391  st->first = TRUE_;
392  st->ivp2h = 0;
393  st->iovoic = 0;
394  st->iavgp = 60;
395  st->erate = 0;
396  for (i = 0; i < 30; i++) {
397  st->drc[i] = 0;
398  }
399  for (i = 0; i < 3; i++) {
400  st->dpit[i] = 0;
401  st->drms[i] = 0;
402  }
403 
404  /* State used by function synths */
405  for (i = 0; i < 360; i++) {
406  st->buf[i] = 0.0f;
407  }
408  st->buflen = 180;
409 
410  /* State used by function pitsyn */
411  /* ivoico; */ /* no initial value necessary as long as first_pitsyn is initially TRUE_ */
412  /* ipito; */ /* no initial value necessary as long as first_pitsyn is initially TRUE_ */
413  st->rmso = 1.0f;
414  /* rco[10]; */ /* no initial value necessary as long as first_pitsyn is initially TRUE_ */
415  /* integer jsamp; */ /* no initial value necessary as long as first_pitsyn is initially TRUE_ */
416  st->first_pitsyn = TRUE_;
417 
418  /* State used by function bsynz */
419  st->ipo = 0;
420  for (i = 0; i < 166; i++) {
421  st->exc[i] = 0.0f;
422  st->exc2[i] = 0.0f;
423  }
424  st->lpi1 = 0.0f;
425  st->lpi2 = 0.0f;
426  st->lpi3 = 0.0f;
427  st->hpi1 = 0.0f;
428  st->hpi2 = 0.0f;
429  st->hpi3 = 0.0f;
430  st->rmso_bsynz = 0.0f;
431 
432  /* State used by function random */
433  st->j = 2;
434  st->k = 5;
435  st->y[0] = (shortint) -21161;
436  st->y[1] = (shortint) -8478;
437  st->y[2] = (shortint) 30892;
438  st->y[3] = (shortint) -10216;
439  st->y[4] = (shortint) 16950;
440 
441  /* State used by function deemp */
442  st->dei1 = 0.0f;
443  st->dei2 = 0.0f;
444  st->deo1 = 0.0f;
445  st->deo2 = 0.0f;
446  st->deo3 = 0.0f;
447 }
#define TRUE_
Definition: f2c.h:67
integer buflen
Definition: lpc10.h:164
integer erate
Definition: lpc10.h:157
integer iavgp
Definition: lpc10.h:156
logical first
Definition: lpc10.h:153
integer iptold
Definition: lpc10.h:152
shortint y[5]
Definition: lpc10.h:189
integer drms[3]
Definition: lpc10.h:160
real exc[166]
Definition: lpc10.h:176
integer iovoic
Definition: lpc10.h:155
integer drc[30]
Definition: lpc10.h:158
integer dpit[3]
Definition: lpc10.h:159
real exc2[166]
Definition: lpc10.h:177
integer ivp2h
Definition: lpc10.h:154
int lpcini_(void)
Definition: lpcini.c:94
logical first_pitsyn
Definition: lpc10.h:172
real buf[360]
Definition: lpc10.h:163
INT16 shortint
Definition: lpc10.h:82

◆ init_lpc10_encoder_state()

void init_lpc10_encoder_state ( struct lpc10_encoder_state st)

Definition at line 272 of file lpcini.c.

References lpc10_encoder_state::alphax, lpc10_encoder_state::awin, lpc10_encoder_state::bias, lpc10_encoder_state::d__, lpc10_encoder_state::dither, FALSE_, lpc10_encoder_state::fbue, lpc10_encoder_state::fbve, lpc10_encoder_state::hyst, lpc10_encoder_state::inbuf, lpc10_encoder_state::ipoint, lpc10_encoder_state::isync, lpc10_encoder_state::ivbuf, lpc10_encoder_state::l2buf, lpc10_encoder_state::l2ptr1, lpc10_encoder_state::l2ptr2, lpc10_encoder_state::l2sum1, lpc10_encoder_state::lbue, lpc10_encoder_state::lbve, lpc10_encoder_state::lpbuf, lpcini_(), lpc10_encoder_state::maxmin, lpc10_encoder_state::n, lpc10_encoder_state::obound, lpc10_encoder_state::ofbue, lpc10_encoder_state::olbue, lpc10_encoder_state::osptr, lpc10_encoder_state::p, lpc10_encoder_state::pebuf, lpc10_encoder_state::rcbuf, lpc10_encoder_state::rmsbuf, lpc10_encoder_state::s, lpc10_encoder_state::sfbue, lpc10_encoder_state::slbue, lpc10_encoder_state::snr, lpc10_encoder_state::voibuf, lpc10_encoder_state::voice, lpc10_encoder_state::vwin, lpc10_encoder_state::z11, lpc10_encoder_state::z12, lpc10_encoder_state::z21, lpc10_encoder_state::z22, and lpc10_encoder_state::zpre.

Referenced by create_lpc10_encoder_state().

273 {
274  int i;
275 
276  lpcini_();
277 
278  /* State used only by function hp100 */
279  st->z11 = 0.0f;
280  st->z21 = 0.0f;
281  st->z12 = 0.0f;
282  st->z22 = 0.0f;
283 
284  /* State used by function analys */
285  for (i = 0; i < 540; i++) {
286  st->inbuf[i] = 0.0f;
287  st->pebuf[i] = 0.0f;
288  }
289  for (i = 0; i < 696; i++) {
290  st->lpbuf[i] = 0.0f;
291  }
292  for (i = 0; i < 312; i++) {
293  st->ivbuf[i] = 0.0f;
294  }
295  st->bias = 0.0f;
296  /* integer osbuf[10]; */ /* no initial value necessary */
297  st->osptr = 1;
298  for (i = 0; i < 3; i++) {
299  st->obound[i] = 0;
300  }
301  st->vwin[4] = 307;
302  st->vwin[5] = 462;
303  st->awin[4] = 307;
304  st->awin[5] = 462;
305  for (i = 0; i < 8; i++) {
306  st->voibuf[i] = 0;
307  }
308  for (i = 0; i < 3; i++) {
309  st->rmsbuf[i] = 0.0f;
310  }
311  for (i = 0; i < 30; i++) {
312  st->rcbuf[i] = 0.0f;
313  }
314  st->zpre = 0.0f;
315 
316 
317  /* State used by function onset */
318  st->n = 0.0f;
319  st->d__ = 1.0f;
320  /* real fpc; */ /* no initial value necessary */
321  for (i = 0; i < 16; i++) {
322  st->l2buf[i] = 0.0f;
323  }
324  st->l2sum1 = 0.0f;
325  st->l2ptr1 = 1;
326  st->l2ptr2 = 9;
327  /* integer lasti; */ /* no initial value necessary */
328  st->hyst = FALSE_;
329 
330  /* State used by function voicin */
331  st->dither = 20.0f;
332  st->maxmin = 0.0f;
333  for (i = 0; i < 6; i++) {
334  st->voice[i] = 0.0f;
335  }
336  st->lbve = 3000;
337  st->fbve = 3000;
338  st->fbue = 187;
339  st->ofbue = 187;
340  st->sfbue = 187;
341  st->lbue = 93;
342  st->olbue = 93;
343  st->slbue = 93;
344  st->snr = (real) (st->fbve / st->fbue << 6);
345 
346  /* State used by function dyptrk */
347  for (i = 0; i < 60; i++) {
348  st->s[i] = 0.0f;
349  }
350  for (i = 0; i < 120; i++) {
351  st->p[i] = 0;
352  }
353  st->ipoint = 0;
354  st->alphax = 0.0f;
355 
356  /* State used by function chanwr */
357  st->isync = 0;
358 
359 }
integer fbve
Definition: lpc10.h:122
integer fbue
Definition: lpc10.h:122
integer olbue
Definition: lpc10.h:124
real rcbuf[30]
Definition: lpc10.h:102
integer awin[6]
Definition: lpc10.h:99
integer lbve
Definition: lpc10.h:122
integer vwin[6]
Definition: lpc10.h:98
real lpbuf[696]
Definition: lpc10.h:93
integer l2ptr1
Definition: lpc10.h:112
integer slbue
Definition: lpc10.h:124
integer sfbue
Definition: lpc10.h:123
integer p[120]
Definition: lpc10.h:139
real rmsbuf[3]
Definition: lpc10.h:101
integer obound[3]
Definition: lpc10.h:97
real inbuf[540]
Definition: lpc10.h:92
logical hyst
Definition: lpc10.h:115
integer voibuf[8]
Definition: lpc10.h:100
real pebuf[540]
Definition: lpc10.h:92
float real
Definition: lpc10.h:79
integer lbue
Definition: lpc10.h:122
real voice[6]
Definition: lpc10.h:121
real ivbuf[312]
Definition: lpc10.h:93
integer isync
Definition: lpc10.h:144
integer osptr
Definition: lpc10.h:96
integer ofbue
Definition: lpc10.h:123
real l2buf[16]
Definition: lpc10.h:110
int lpcini_(void)
Definition: lpcini.c:94
integer l2ptr2
Definition: lpc10.h:113
real s[60]
Definition: lpc10.h:138
integer ipoint
Definition: lpc10.h:140
#define FALSE_
Definition: f2c.h:68

◆ lpc10_decode()

int lpc10_decode ( INT32 *  bits,
real speech,
struct lpc10_decoder_state st 
)

Definition at line 113 of file lpcdec.c.

References c__10, chanrd_(), decode_(), len(), and synths_().

Referenced by lpc10tolin_framein().

115 {
116  integer irms, voice[2], pitch, ipitv;
117  extern /* Subroutine */ int decode_(integer *, integer *, integer *,
118  integer *, integer *, real *, real *, struct lpc10_decoder_state *);
119  real rc[10];
120  extern /* Subroutine */ int chanrd_(integer *, integer *, integer *,
121  integer *, integer *), synths_(integer *,
122  integer *, real *, real *, real *, integer *,
123  struct lpc10_decoder_state *);
124  integer irc[10], len;
125  real rms;
126 
127 /* $Log$
128  * Revision 1.15 2004/06/26 03:50:14 markster
129  * Merge source cleanups (bug #1911)
130  *
131  * Revision 1.14 2003/02/12 13:59:15 matteo
132  * mer feb 12 14:56:57 CET 2003
133  *
134  * Revision 1.1.1.1 2003/02/12 13:59:15 matteo
135  * mer feb 12 14:56:57 CET 2003
136  *
137  * Revision 1.2 2000/01/05 08:20:39 markster
138  * Some OSS fixes and a few lpc changes to make it actually work
139  *
140  * Revision 1.2 1996/08/20 20:30:11 jaf
141  * Removed all static local variables that were SAVE'd in the Fortran
142  * code, and put them in struct lpc10_encoder_state that is passed as an
143  * argument.
144  *
145  * Removed init function, since all initialization is now done in
146  * init_lpc10_encoder_state().
147  *
148  * Changed name of function from lpcenc_ to lpc10_encode, simply to make
149  * all lpc10 functions have more consistent naming with each other.
150  *
151  * Revision 1.1 1996/08/19 22:31:48 jaf
152  * Initial revision
153  * */
154 /* Revision 1.3 1996/03/29 22:03:47 jaf */
155 /* Removed definitions for any constants that were no longer used. */
156 
157 /* Revision 1.2 1996/03/26 19:34:33 jaf */
158 /* Added comments indicating which constants are not needed in an */
159 /* application that uses the LPC-10 coder. */
160 
161 /* Revision 1.1 1996/02/07 14:43:51 jaf */
162 /* Initial revision */
163 
164 /* LPC Configuration parameters: */
165 /* Frame size, Prediction order, Pitch period */
166 /* Arguments */
167 /* $Log$
168  * Revision 1.15 2004/06/26 03:50:14 markster
169  * Merge source cleanups (bug #1911)
170  *
171  * Revision 1.14 2003/02/12 13:59:15 matteo
172  * mer feb 12 14:56:57 CET 2003
173  *
174  * Revision 1.1.1.1 2003/02/12 13:59:15 matteo
175  * mer feb 12 14:56:57 CET 2003
176  *
177  * Revision 1.2 2000/01/05 08:20:39 markster
178  * Some OSS fixes and a few lpc changes to make it actually work
179  *
180  * Revision 1.2 1996/08/20 20:30:11 jaf
181  * Removed all static local variables that were SAVE'd in the Fortran
182  * code, and put them in struct lpc10_encoder_state that is passed as an
183  * argument.
184  *
185  * Removed init function, since all initialization is now done in
186  * init_lpc10_encoder_state().
187  *
188  * Changed name of function from lpcenc_ to lpc10_encode, simply to make
189  * all lpc10 functions have more consistent naming with each other.
190  *
191  * Revision 1.1 1996/08/19 22:31:48 jaf
192  * Initial revision
193  * */
194 /* Revision 1.3 1996/03/29 22:05:55 jaf */
195 /* Commented out the common block variables that are not needed by the */
196 /* embedded version. */
197 
198 /* Revision 1.2 1996/03/26 19:34:50 jaf */
199 /* Added comments indicating which constants are not needed in an */
200 /* application that uses the LPC-10 coder. */
201 
202 /* Revision 1.1 1996/02/07 14:44:09 jaf */
203 /* Initial revision */
204 
205 /* LPC Processing control variables: */
206 
207 /* *** Read-only: initialized in setup */
208 
209 /* Files for Speech, Parameter, and Bitstream Input & Output, */
210 /* and message and debug outputs. */
211 
212 /* Here are the only files which use these variables: */
213 
214 /* lpcsim.f setup.f trans.f error.f vqsetup.f */
215 
216 /* Many files which use fdebug are not listed, since it is only used in */
217 /* those other files conditionally, to print trace statements. */
218 /* integer fsi, fso, fpi, fpo, fbi, fbo, pbin, fmsg, fdebug */
219 /* LPC order, Frame size, Quantization rate, Bits per frame, */
220 /* Error correction */
221 /* Subroutine SETUP is the only place where order is assigned a value, */
222 /* and that value is 10. It could increase efficiency 1% or so to */
223 /* declare order as a constant (i.e., a Fortran PARAMETER) instead of as
224 */
225 /* a variable in a COMMON block, since it is used in many places in the */
226 /* core of the coding and decoding routines. Actually, I take that back.
227 */
228 /* At least when compiling with f2c, the upper bound of DO loops is */
229 /* stored in a local variable before the DO loop begins, and then that is
230 */
231 /* compared against on each iteration. */
232 /* Similarly for lframe, which is given a value of MAXFRM in SETUP. */
233 /* Similarly for quant, which is given a value of 2400 in SETUP. quant */
234 /* is used in only a few places, and never in the core coding and */
235 /* decoding routines, so it could be eliminated entirely. */
236 /* nbits is similar to quant, and is given a value of 54 in SETUP. */
237 /* corrp is given a value of .TRUE. in SETUP, and is only used in the */
238 /* subroutines ENCODE and DECODE. It doesn't affect the speed of the */
239 /* coder significantly whether it is .TRUE. or .FALSE., or whether it is
240 */
241 /* a constant or a variable, since it is only examined once per frame. */
242 /* Leaving it as a variable that is set to .TRUE. seems like a good */
243 /* idea, since it does enable some error-correction capability for */
244 /* unvoiced frames, with no change in the coding rate, and no noticeable
245 */
246 /* quality difference in the decoded speech. */
247 /* integer quant, nbits */
248 /* *** Read/write: variables for debugging, not needed for LPC algorithm
249 */
250 
251 /* Current frame, Unstable frames, Output clip count, Max onset buffer,
252 */
253 /* Debug listing detail level, Line count on listing page */
254 
255 /* nframe is not needed for an embedded LPC10 at all. */
256 /* nunsfm is initialized to 0 in SETUP, and incremented in subroutine */
257 /* ERROR, which is only called from RCCHK. When LPC10 is embedded into */
258 /* an application, I would recommend removing the call to ERROR in RCCHK,
259 */
260 /* and remove ERROR and nunsfm completely. */
261 /* iclip is initialized to 0 in SETUP, and incremented in entry SWRITE in
262 */
263 /* sread.f. When LPC10 is embedded into an application, one might want */
264 /* to cause it to be incremented in a routine that takes the output of */
265 /* SYNTHS and sends it to an audio device. It could be optionally */
266 /* displayed, for those that might want to know what it is. */
267 /* maxosp is never initialized to 0 in SETUP, although it probably should
268 */
269 /* be, and it is updated in subroutine ANALYS. I doubt that its value */
270 /* would be of much interest to an application in which LPC10 is */
271 /* embedded. */
272 /* listl and lincnt are not needed for an embedded LPC10 at all. */
273 /* integer nframe, nunsfm, iclip, maxosp, listl, lincnt */
274 /* common /contrl/ fsi, fso, fpi, fpo, fbi, fbo, pbin, fmsg, fdebug */
275 /* common /contrl/ quant, nbits */
276 /* common /contrl/ nframe, nunsfm, iclip, maxosp, listl, lincnt */
277 /* Local variables that need not be saved */
278 /* Uncoded speech parameters */
279 /* Coded speech parameters */
280 /* Others */
281 /* Local state */
282 /* None */
283  /* Parameter adjustments */
284  if (bits) {
285  --bits;
286  }
287  if (speech) {
288  --speech;
289  }
290 
291  /* Function Body */
292 
293  chanrd_(&c__10, &ipitv, &irms, irc, &bits[1]);
294  decode_(&ipitv, &irms, irc, voice, &pitch, &rms, rc, st);
295  synths_(voice, &pitch, &rms, rc, &speech[1], &len, st);
296  return 0;
297 } /* lpcdec_ */
int decode_(integer *ipitv, integer *irms, integer *irc, integer *voice, integer *pitch, real *rms, real *rc, struct lpc10_decoder_state *st)
Definition: lpc10/decode.c:147
int chanrd_(integer *order, integer *ipitv, integer *irms, integer *irc, integer *ibits)
Definition: chanwr.c:229
int synths_(integer *voice, integer *pitch, real *rms, real *rc, real *speech, integer *k, struct lpc10_decoder_state *st)
Definition: synths.c:170
static int len(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t buflen)
float real
Definition: lpc10.h:79
real voice[6]
Definition: lpc10.h:121
static integer c__10
Definition: lpcdec.c:62
INT32 integer
Definition: lpc10.h:80

◆ lpc10_encode()

int lpc10_encode ( real speech,
INT32 *  bits,
struct lpc10_encoder_state st 
)

Definition at line 108 of file lpcenc.c.

References analys_(), c__10, c__180, chanwr_(), encode_(), and prepro_().

Referenced by lintolpc10_frameout().

110 {
111  integer irms, voice[2], pitch, ipitv;
112  real rc[10];
113  extern /* Subroutine */ int encode_(integer *, integer *, real *, real *,
114  integer *, integer *, integer *), chanwr_(integer *, integer *,
115  integer *, integer *, integer *, struct lpc10_encoder_state *),
116  analys_(real *, integer *,
117  integer *, real *, real *, struct lpc10_encoder_state *),
118  prepro_(real *, integer *, struct lpc10_encoder_state *);
119  integer irc[10];
120  real rms;
121 
122 /* Arguments */
123 /* $Log$
124  * Revision 1.15 2004/06/26 03:50:14 markster
125  * Merge source cleanups (bug #1911)
126  *
127  * Revision 1.14 2003/02/12 13:59:15 matteo
128  * mer feb 12 14:56:57 CET 2003
129  *
130  * Revision 1.1.1.1 2003/02/12 13:59:15 matteo
131  * mer feb 12 14:56:57 CET 2003
132  *
133  * Revision 1.2 2000/01/05 08:20:39 markster
134  * Some OSS fixes and a few lpc changes to make it actually work
135  *
136  * Revision 1.2 1996/08/20 20:31:21 jaf
137  * Removed all static local variables that were SAVE'd in the Fortran
138  * code, and put them in struct lpc10_encoder_state that is passed as an
139  * argument.
140  *
141  * Removed init function, since all initialization is now done in
142  * init_lpc10_encoder_state().
143  *
144  * Changed name of function from lpcenc_ to lpc10_encode, simply to make
145  * all lpc10 functions have more consistent naming with each other.
146  *
147  * Revision 1.1 1996/08/19 22:31:44 jaf
148  * Initial revision
149  * */
150 /* Revision 1.3 1996/03/29 22:03:47 jaf */
151 /* Removed definitions for any constants that were no longer used. */
152 
153 /* Revision 1.2 1996/03/26 19:34:33 jaf */
154 /* Added comments indicating which constants are not needed in an */
155 /* application that uses the LPC-10 coder. */
156 
157 /* Revision 1.1 1996/02/07 14:43:51 jaf */
158 /* Initial revision */
159 
160 /* LPC Configuration parameters: */
161 /* Frame size, Prediction order, Pitch period */
162 /* Local variables that need not be saved */
163 /* Uncoded speech parameters */
164 /* Coded speech parameters */
165 /* Local state */
166 /* None */
167  /* Parameter adjustments */
168  if (speech) {
169  --speech;
170  }
171  if (bits) {
172  --bits;
173  }
174 
175  /* Function Body */
176  prepro_(&speech[1], &c__180, st);
177  analys_(&speech[1], voice, &pitch, &rms, rc, st);
178  encode_(voice, &pitch, &rms, rc, &ipitv, &irms, irc);
179  chanwr_(&c__10, &ipitv, &irms, irc, &bits[1], st);
180  return 0;
181 } /* lpcenc_ */
static integer c__10
Definition: lpcenc.c:54
int chanwr_(integer *order, integer *ipitv, integer *irms, integer *irc, integer *ibits, struct lpc10_encoder_state *st)
Definition: chanwr.c:223
int encode_(integer *voice, integer *pitch, real *rms, real *rc, integer *ipitch, integer *irms, integer *irc)
Definition: encode.c:111
static integer c__180
Definition: lpcenc.c:53
int prepro_(real *speech, integer *length, struct lpc10_encoder_state *st)
Definition: prepro.c:101
float real
Definition: lpc10.h:79
real voice[6]
Definition: lpc10.h:121
int analys_(real *speech, integer *voice, integer *pitch, real *rms, real *rc, struct lpc10_encoder_state *st)
Definition: analys.c:206
INT32 integer
Definition: lpc10.h:80