diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-03-26 17:10:28 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-03-26 17:10:28 +0000 |
commit | adfd7f5f1374a6b0d8b60a43684d5ec4dff51874 (patch) | |
tree | ed528d6e40b53ec5f3c552e8397f98e471c489db /codecs/ilbc/gainquant.c | |
parent | 97619eccb1ddd6771755f632ace40f4119743c60 (diff) |
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/trunk@110881 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'codecs/ilbc/gainquant.c')
-rw-r--r-- | codecs/ilbc/gainquant.c | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/codecs/ilbc/gainquant.c b/codecs/ilbc/gainquant.c deleted file mode 100644 index 33dc19474..000000000 --- a/codecs/ilbc/gainquant.c +++ /dev/null @@ -1,107 +0,0 @@ - -/****************************************************************** - - iLBC Speech Coder ANSI-C Source Code - - gainquant.c - - Copyright (C) The Internet Society (2004). - All Rights Reserved. - - - -******************************************************************/ - -#include <string.h> -#include <math.h> -#include "constants.h" -#include "gainquant.h" -#include "filter.h" - -/*----------------------------------------------------------------* - * quantizer for the gain in the gain-shape coding of residual - *---------------------------------------------------------------*/ - -float gainquant(/* (o) quantized gain value */ - float in, /* (i) gain value */ - float maxIn,/* (i) maximum of gain value */ - int cblen, /* (i) number of quantization indices */ - int *index /* (o) quantization index */ -){ - int i, tindex; - float minmeasure,measure, *cb, scale; - - /* ensure a lower bound on the scaling factor */ - - scale=maxIn; - - if (scale<0.1) { - scale=(float)0.1; - } - - /* select the quantization table */ - - if (cblen == 8) { - cb = gain_sq3Tbl; - } else if (cblen == 16) { - cb = gain_sq4Tbl; - } else { - cb = gain_sq5Tbl; - } - - /* select the best index in the quantization table */ - - minmeasure=10000000.0; - tindex=0; - for (i=0; i<cblen; i++) { - measure=(in-scale*cb[i])*(in-scale*cb[i]); - - if (measure<minmeasure) { - tindex=i; - minmeasure=measure; - } - } - *index=tindex; - - /* return the quantized value */ - - - - return scale*cb[tindex]; -} - -/*----------------------------------------------------------------* - * decoder for quantized gains in the gain-shape coding of - * residual - *---------------------------------------------------------------*/ - -float gaindequant( /* (o) quantized gain value */ - int index, /* (i) quantization index */ - float maxIn,/* (i) maximum of unquantized gain */ - int cblen /* (i) number of quantization indices */ -){ - float scale; - - /* obtain correct scale factor */ - - scale=(float)fabs(maxIn); - - if (scale<0.1) { - scale=(float)0.1; - } - - /* select the quantization table and return the decoded value */ - - if (cblen==8) { - return scale*gain_sq3Tbl[index]; - } else if (cblen==16) { - return scale*gain_sq4Tbl[index]; - } - else if (cblen==32) { - return scale*gain_sq5Tbl[index]; - } - - return 0.0; -} - - |