www.pudn.com > lpc10-15.zip > contrl.fh
* $Log: contrl.fh,v $ * 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 order, lframe * integer quant, nbits logical corrp **** 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/ order, lframe * common /contrl/ quant, nbits common /contrl/ corrp * common /contrl/ nframe, nunsfm, iclip, maxosp, listl, lincnt