diff options
Diffstat (limited to 'trunk/codecs/lpc10/lpcini.c')
-rw-r--r-- | trunk/codecs/lpc10/lpcini.c | 446 |
1 files changed, 0 insertions, 446 deletions
diff --git a/trunk/codecs/lpc10/lpcini.c b/trunk/codecs/lpc10/lpcini.c deleted file mode 100644 index ebe229a5c..000000000 --- a/trunk/codecs/lpc10/lpcini.c +++ /dev/null @@ -1,446 +0,0 @@ -/* - -$Log$ -Revision 1.18 2003/10/21 18:08:11 markster -Fix include order - -Revision 1.5 2003/10/21 18:08:11 markster -Fix include order - -Revision 1.4 2003/10/21 02:57:29 markster -FreeBSD patch, take 2 - -Revision 1.3 2003/10/16 21:11:30 martinp -Revert the previous patch since it's braking compilation - -Revision 1.1 2003/02/12 13:59:15 matteo -Initial revision - -Revision 1.2 2000/01/05 08:20:39 markster -Some OSS fixes and a few lpc changes to make it actually work - - * Revision 1.2 1996/08/20 20:35:41 jaf - * Added functions for allocating and initializing lpc10_encoder_state - * and lpc10_decoder_state structures. - * - * Revision 1.1 1996/08/19 22:31:40 jaf - * Initial revision - * - -*/ - -/* -- translated by f2c (version 19951025). - You must link the resulting object file with the libraries: - -lf2c -lm (in that order) -*/ - -#include <stdlib.h> -#include "f2c.h" - -#ifdef P_R_O_T_O_T_Y_P_E_S -extern int lpcini_(void); -/* comlen contrl_ 12 */ -/*:ref: initlpcenc_ 14 0 */ -/*:ref: initlpcdec_ 14 0 */ -#endif - -/* Common Block Declarations */ - -struct { - integer order, lframe; - logical corrp; -} contrl_; - -#define contrl_1 contrl_ - -/* ***************************************************************** */ - -/* $Log$ - * Revision 1.18 2003/10/21 18:08:11 markster - * Fix include order - * - * Revision 1.5 2003/10/21 18:08:11 markster - * Fix include order - * - * Revision 1.4 2003/10/21 02:57:29 markster - * FreeBSD patch, take 2 - * - * Revision 1.3 2003/10/16 21:11:30 martinp - * Revert the previous patch since it's braking compilation - * - * Revision 1.1 2003/02/12 13:59:15 matteo - * Initial revision - * - * Revision 1.2 2000/01/05 08:20:39 markster - * Some OSS fixes and a few lpc changes to make it actually work - * - * Revision 1.2 1996/08/20 20:35:41 jaf - * Added functions for allocating and initializing lpc10_encoder_state - * and lpc10_decoder_state structures. - * - * Revision 1.1 1996/08/19 22:31:40 jaf - * Initial revision - * */ -/* Revision 1.1 1996/03/28 00:04:05 jaf */ -/* Initial revision */ - - -/* ***************************************************************** */ - -/* Initialize COMMON block variables used by LPC-10 encoder and decoder, */ -/* and call initialization routines for both of them. */ - -/* Subroutine */ int lpcini_(void) -{ - -/* $Log$ - * Revision 1.18 2003/10/21 18:08:11 markster - * Fix include order - * - * Revision 1.5 2003/10/21 18:08:11 markster - * Fix include order - * - * Revision 1.4 2003/10/21 02:57:29 markster - * FreeBSD patch, take 2 - * - * Revision 1.3 2003/10/16 21:11:30 martinp - * Revert the previous patch since it's braking compilation - * - * Revision 1.1 2003/02/12 13:59:15 matteo - * Initial revision - * - * Revision 1.2 2000/01/05 08:20:39 markster - * Some OSS fixes and a few lpc changes to make it actually work - * - * Revision 1.2 1996/08/20 20:35:41 jaf - * Added functions for allocating and initializing lpc10_encoder_state - * and lpc10_decoder_state structures. - * - * Revision 1.1 1996/08/19 22:31:40 jaf - * Initial revision - * */ -/* Revision 1.3 1996/03/29 22:03:47 jaf */ -/* Removed definitions for any constants that were no longer used. */ - -/* Revision 1.2 1996/03/26 19:34:33 jaf */ -/* Added comments indicating which constants are not needed in an */ -/* application that uses the LPC-10 coder. */ - -/* Revision 1.1 1996/02/07 14:43:51 jaf */ -/* Initial revision */ - -/* LPC Configuration parameters: */ -/* Frame size, Prediction order, Pitch period */ -/* $Log$ - * Revision 1.18 2003/10/21 18:08:11 markster - * Fix include order - * - * Revision 1.5 2003/10/21 18:08:11 markster - * Fix include order - * - * Revision 1.4 2003/10/21 02:57:29 markster - * FreeBSD patch, take 2 - * - * Revision 1.3 2003/10/16 21:11:30 martinp - * Revert the previous patch since it's braking compilation - * - * Revision 1.1 2003/02/12 13:59:15 matteo - * Initial revision - * - * Revision 1.2 2000/01/05 08:20:39 markster - * Some OSS fixes and a few lpc changes to make it actually work - * - * Revision 1.2 1996/08/20 20:35:41 jaf - * Added functions for allocating and initializing lpc10_encoder_state - * and lpc10_decoder_state structures. - * - * Revision 1.1 1996/08/19 22:31:40 jaf - * Initial revision - * */ -/* Revision 1.3 1996/03/29 22:05:55 jaf */ -/* Commented out the common block variables that are not needed by the */ -/* embedded version. */ - -/* Revision 1.2 1996/03/26 19:34:50 jaf */ -/* Added comments indicating which constants are not needed in an */ -/* application that uses the LPC-10 coder. */ - -/* Revision 1.1 1996/02/07 14:44:09 jaf */ -/* Initial revision */ - -/* LPC Processing control variables: */ - -/* *** Read-only: initialized in setup */ - -/* Files for Speech, Parameter, and Bitstream Input & Output, */ -/* and message and debug outputs. */ - -/* Here are the only files which use these variables: */ - -/* lpcsim.f setup.f trans.f error.f vqsetup.f */ - -/* Many files which use fdebug are not listed, since it is only used in */ -/* those other files conditionally, to print trace statements. */ -/* integer fsi, fso, fpi, fpo, fbi, fbo, pbin, fmsg, fdebug */ -/* LPC order, Frame size, Quantization rate, Bits per frame, */ -/* Error correction */ -/* Subroutine SETUP is the only place where order is assigned a value, */ -/* and that value is 10. It could increase efficiency 1% or so to */ -/* declare order as a constant (i.e., a Fortran PARAMETER) instead of as -*/ -/* a variable in a COMMON block, since it is used in many places in the */ -/* core of the coding and decoding routines. Actually, I take that back. -*/ -/* At least when compiling with f2c, the upper bound of DO loops is */ -/* stored in a local variable before the DO loop begins, and then that is -*/ -/* compared against on each iteration. */ -/* Similarly for lframe, which is given a value of MAXFRM in SETUP. */ -/* Similarly for quant, which is given a value of 2400 in SETUP. quant */ -/* is used in only a few places, and never in the core coding and */ -/* decoding routines, so it could be eliminated entirely. */ -/* nbits is similar to quant, and is given a value of 54 in SETUP. */ -/* corrp is given a value of .TRUE. in SETUP, and is only used in the */ -/* subroutines ENCODE and DECODE. It doesn't affect the speed of the */ -/* coder significantly whether it is .TRUE. or .FALSE., or whether it is -*/ -/* a constant or a variable, since it is only examined once per frame. */ -/* Leaving it as a variable that is set to .TRUE. seems like a good */ -/* idea, since it does enable some error-correction capability for */ -/* unvoiced frames, with no change in the coding rate, and no noticeable -*/ -/* quality difference in the decoded speech. */ -/* integer quant, nbits */ -/* *** Read/write: variables for debugging, not needed for LPC algorithm -*/ - -/* Current frame, Unstable frames, Output clip count, Max onset buffer, -*/ -/* Debug listing detail level, Line count on listing page */ - -/* nframe is not needed for an embedded LPC10 at all. */ -/* nunsfm is initialized to 0 in SETUP, and incremented in subroutine */ -/* ERROR, which is only called from RCCHK. When LPC10 is embedded into */ -/* an application, I would recommend removing the call to ERROR in RCCHK, -*/ -/* and remove ERROR and nunsfm completely. */ -/* iclip is initialized to 0 in SETUP, and incremented in entry SWRITE in -*/ -/* sread.f. When LPC10 is embedded into an application, one might want */ -/* to cause it to be incremented in a routine that takes the output of */ -/* SYNTHS and sends it to an audio device. It could be optionally */ -/* displayed, for those that might want to know what it is. */ -/* maxosp is never initialized to 0 in SETUP, although it probably should -*/ -/* be, and it is updated in subroutine ANALYS. I doubt that its value */ -/* would be of much interest to an application in which LPC10 is */ -/* embedded. */ -/* listl and lincnt are not needed for an embedded LPC10 at all. */ -/* integer nframe, nunsfm, iclip, maxosp, listl, lincnt */ -/* common /contrl/ fsi, fso, fpi, fpo, fbi, fbo, pbin, fmsg, fdebug */ -/* common /contrl/ quant, nbits */ -/* common /contrl/ nframe, nunsfm, iclip, maxosp, listl, lincnt */ - contrl_1.order = 10; - contrl_1.lframe = 180; - contrl_1.corrp = TRUE_; - return 0; -} /* lpcini_ */ - - - -/* Allocate memory for, and initialize, the state that needs to be - kept from encoding one frame to the next for a single - LPC-10-compressed audio stream. Return 0 if malloc fails, - otherwise return pointer to new structure. */ - -struct lpc10_encoder_state * -create_lpc10_encoder_state() -{ - struct lpc10_encoder_state *st; - - st = (struct lpc10_encoder_state *) - malloc((unsigned) sizeof (struct lpc10_encoder_state)); - if (st != 0) { - init_lpc10_encoder_state(st); - } - return (st); -} - - - -void init_lpc10_encoder_state(struct lpc10_encoder_state *st) -{ - int i; - - lpcini_(); - - /* State used only by function hp100 */ - st->z11 = 0.0f; - st->z21 = 0.0f; - st->z12 = 0.0f; - st->z22 = 0.0f; - - /* State used by function analys */ - for (i = 0; i < 540; i++) { - st->inbuf[i] = 0.0f; - st->pebuf[i] = 0.0f; - } - for (i = 0; i < 696; i++) { - st->lpbuf[i] = 0.0f; - } - for (i = 0; i < 312; i++) { - st->ivbuf[i] = 0.0f; - } - st->bias = 0.0f; - /* integer osbuf[10]; */ /* no initial value necessary */ - st->osptr = 1; - for (i = 0; i < 3; i++) { - st->obound[i] = 0; - } - st->vwin[4] = 307; - st->vwin[5] = 462; - st->awin[4] = 307; - st->awin[5] = 462; - for (i = 0; i < 8; i++) { - st->voibuf[i] = 0; - } - for (i = 0; i < 3; i++) { - st->rmsbuf[i] = 0.0f; - } - for (i = 0; i < 30; i++) { - st->rcbuf[i] = 0.0f; - } - st->zpre = 0.0f; - - - /* State used by function onset */ - st->n = 0.0f; - st->d__ = 1.0f; - /* real fpc; */ /* no initial value necessary */ - for (i = 0; i < 16; i++) { - st->l2buf[i] = 0.0f; - } - st->l2sum1 = 0.0f; - st->l2ptr1 = 1; - st->l2ptr2 = 9; - /* integer lasti; */ /* no initial value necessary */ - st->hyst = FALSE_; - - /* State used by function voicin */ - st->dither = 20.0f; - st->maxmin = 0.0f; - for (i = 0; i < 6; i++) { - st->voice[i] = 0.0f; - } - st->lbve = 3000; - st->fbve = 3000; - st->fbue = 187; - st->ofbue = 187; - st->sfbue = 187; - st->lbue = 93; - st->olbue = 93; - st->slbue = 93; - st->snr = (real) (st->fbve / st->fbue << 6); - - /* State used by function dyptrk */ - for (i = 0; i < 60; i++) { - st->s[i] = 0.0f; - } - for (i = 0; i < 120; i++) { - st->p[i] = 0; - } - st->ipoint = 0; - st->alphax = 0.0f; - - /* State used by function chanwr */ - st->isync = 0; - -} - - - -/* Allocate memory for, and initialize, the state that needs to be - kept from decoding one frame to the next for a single - LPC-10-compressed audio stream. Return 0 if malloc fails, - otherwise return pointer to new structure. */ - -struct lpc10_decoder_state * -create_lpc10_decoder_state() -{ - struct lpc10_decoder_state *st; - - st = (struct lpc10_decoder_state *) - malloc((unsigned) sizeof (struct lpc10_decoder_state)); - if (st != 0) { - init_lpc10_decoder_state(st); - } - return (st); -} - - - -void init_lpc10_decoder_state(struct lpc10_decoder_state *st) -{ - int i; - - lpcini_(); - - /* State used by function decode */ - st->iptold = 60; - st->first = TRUE_; - st->ivp2h = 0; - st->iovoic = 0; - st->iavgp = 60; - st->erate = 0; - for (i = 0; i < 30; i++) { - st->drc[i] = 0; - } - for (i = 0; i < 3; i++) { - st->dpit[i] = 0; - st->drms[i] = 0; - } - - /* State used by function synths */ - for (i = 0; i < 360; i++) { - st->buf[i] = 0.0f; - } - st->buflen = 180; - - /* State used by function pitsyn */ - /* ivoico; */ /* no initial value necessary as long as first_pitsyn is initially TRUE_ */ - /* ipito; */ /* no initial value necessary as long as first_pitsyn is initially TRUE_ */ - st->rmso = 1.0f; - /* rco[10]; */ /* no initial value necessary as long as first_pitsyn is initially TRUE_ */ - /* integer jsamp; */ /* no initial value necessary as long as first_pitsyn is initially TRUE_ */ - st->first_pitsyn = TRUE_; - - /* State used by function bsynz */ - st->ipo = 0; - for (i = 0; i < 166; i++) { - st->exc[i] = 0.0f; - st->exc2[i] = 0.0f; - } - st->lpi1 = 0.0f; - st->lpi2 = 0.0f; - st->lpi3 = 0.0f; - st->hpi1 = 0.0f; - st->hpi2 = 0.0f; - st->hpi3 = 0.0f; - st->rmso_bsynz = 0.0f; - - /* State used by function random */ - st->j = 2; - st->k = 5; - st->y[0] = (shortint) -21161; - st->y[1] = (shortint) -8478; - st->y[2] = (shortint) 30892; - st->y[3] = (shortint) -10216; - st->y[4] = (shortint) 16950; - - /* State used by function deemp */ - st->dei1 = 0.0f; - st->dei2 = 0.0f; - st->deo1 = 0.0f; - st->deo2 = 0.0f; - st->deo3 = 0.0f; -} |