aboutsummaryrefslogtreecommitdiffstats
path: root/codecs/ilbc/FrameClassify.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-26 17:15:06 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-26 17:15:06 +0000
commit392af68644966c1882ee104ead353486fa5dbedc (patch)
treee4d10b8cb1152c927adaa22d45a3536b6eb4c152 /codecs/ilbc/FrameClassify.c
parent81f88016ceba9e7ccebecadeff5a25e2d05812c9 (diff)
Merged revisions 110881 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r110881 | kpfleming | 2008-03-26 10:10:28 -0700 (Wed, 26 Mar 2008) | 18 lines Merged revisions 110880 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r110880 | kpfleming | 2008-03-26 09:42:35 -0700 (Wed, 26 Mar 2008) | 10 lines Merged revisions 110869 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r110869 | kpfleming | 2008-03-26 08:53:46 -0700 (Wed, 26 Mar 2008) | 2 lines due to licensing restrictions, we cannot distribute the source code for iLBC encoding and decoding... so remove it, and add instructions on how the user can obtain it themselves ........ ................ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@110882 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'codecs/ilbc/FrameClassify.c')
-rw-r--r--codecs/ilbc/FrameClassify.c110
1 files changed, 0 insertions, 110 deletions
diff --git a/codecs/ilbc/FrameClassify.c b/codecs/ilbc/FrameClassify.c
deleted file mode 100644
index c982fd667..000000000
--- a/codecs/ilbc/FrameClassify.c
+++ /dev/null
@@ -1,110 +0,0 @@
-
-/******************************************************************
-
- iLBC Speech Coder ANSI-C Source Code
-
- FrameClassify.c
-
- Copyright (C) The Internet Society (2004).
- All Rights Reserved.
-
-******************************************************************/
-
-#include "iLBC_define.h"
-#include "FrameClassify.h"
-
-/*---------------------------------------------------------------*
- * Classification of subframes to localize start state
- *--------------------------------------------------------------*/
-
-int FrameClassify( /* index to the max-energy sub-frame */
- iLBC_Enc_Inst_t *iLBCenc_inst,
- /* (i/o) the encoder state structure */
- float *residual /* (i) lpc residual signal */
-) {
- float max_ssqEn, fssqEn[NSUB_MAX], bssqEn[NSUB_MAX], *pp;
- int n, l, max_ssqEn_n;
- const float ssqEn_win[NSUB_MAX-1]={(float)0.8,(float)0.9,
- (float)1.0,(float)0.9,(float)0.8};
- const float sampEn_win[5]={(float)1.0/(float)6.0,
- (float)2.0/(float)6.0, (float)3.0/(float)6.0,
- (float)4.0/(float)6.0, (float)5.0/(float)6.0};
-
- /* init the front and back energies to zero */
-
- memset(fssqEn, 0, NSUB_MAX*sizeof(float));
- memset(bssqEn, 0, NSUB_MAX*sizeof(float));
-
- /* Calculate front of first seqence */
-
- n=0;
- pp=residual;
-
-
- for (l=0; l<5; l++) {
- fssqEn[n] += sampEn_win[l] * (*pp) * (*pp);
- pp++;
- }
- for (l=5; l<SUBL; l++) {
- fssqEn[n] += (*pp) * (*pp);
- pp++;
- }
-
- /* Calculate front and back of all middle sequences */
-
- for (n=1; n<iLBCenc_inst->nsub-1; n++) {
- pp=residual+n*SUBL;
- for (l=0; l<5; l++) {
- fssqEn[n] += sampEn_win[l] * (*pp) * (*pp);
- bssqEn[n] += (*pp) * (*pp);
- pp++;
- }
- for (l=5; l<SUBL-5; l++) {
- fssqEn[n] += (*pp) * (*pp);
- bssqEn[n] += (*pp) * (*pp);
- pp++;
- }
- for (l=SUBL-5; l<SUBL; l++) {
- fssqEn[n] += (*pp) * (*pp);
- bssqEn[n] += sampEn_win[SUBL-l-1] * (*pp) * (*pp);
- pp++;
- }
- }
-
- /* Calculate back of last seqence */
-
- n=iLBCenc_inst->nsub-1;
- pp=residual+n*SUBL;
- for (l=0; l<SUBL-5; l++) {
- bssqEn[n] += (*pp) * (*pp);
- pp++;
- }
- for (l=SUBL-5; l<SUBL; l++) {
- bssqEn[n] += sampEn_win[SUBL-l-1] * (*pp) * (*pp);
- pp++;
- }
-
- /* find the index to the weighted 80 sample with
- most energy */
-
- if (iLBCenc_inst->mode==20) l=1;
- else l=0;
-
- max_ssqEn=(fssqEn[0]+bssqEn[1])*ssqEn_win[l];
- max_ssqEn_n=1;
- for (n=2; n<iLBCenc_inst->nsub; n++) {
-
- l++;
-
-
- if ((fssqEn[n-1]+bssqEn[n])*ssqEn_win[l] > max_ssqEn) {
- max_ssqEn=(fssqEn[n-1]+bssqEn[n]) *
- ssqEn_win[l];
- max_ssqEn_n=n;
- }
- }
-
- return max_ssqEn_n;
-}
-
-