ref: 02ce1b0c415872da32c880c981ed3191f4233301
parent: 59c47b63c0555e9a8061a0cbade7f42213f72b19
author: menno <menno>
date: Tue Oct 31 09:48:41 EST 2000
Cleanup: more sensible organisation
--- a/enc_tf.c
+++ b/enc_tf.c
@@ -21,8 +21,8 @@
/**************************************************************************
Version Control Information Method: CVS
Identifiers:
- $Revision: 1.65 $
- $Date: 2000/10/08 20:32:33 $ (check in)
+ $Revision: 1.66 $
+ $Date: 2000/10/31 14:48:41 $ (check in)
$Author: menno $
*************************************************************************/
@@ -44,6 +44,110 @@
/* AAC tables */
+SR_INFO sr_info_aac[MAX_SAMPLING_RATES+1] =
+{
+ { 8000, 40, 15,
+ {
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16,
+ 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 24, 24, 24, 28,
+ 28, 32, 32, 36, 40, 44, 48, 52, 56, 60, 64, 80
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 20, 20
+ }
+ }, { 11025, 43, 15,
+ {
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24,
+ 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20
+ }
+ }, { 12000, 43, 15,
+ {
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24,
+ 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20
+ }
+ }, { 16000, 43, 15,
+ {
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24,
+ 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20
+ }
+ }, { 22050, 47, 15,
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24, 28, 28, 32,
+ 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, 64
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 16, 20
+ }
+ },{ 24000, 47, 15,
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24, 28, 28, 32,
+ 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, 64
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 16, 20
+ }
+ }, { 32000, 51, 14,
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8,
+ 8, 8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28,
+ 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32
+ },{
+ 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16
+ }
+ }, { 44100, 49, 14,
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8,
+ 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96
+ }, {
+ 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16
+ }
+ }, { 48000, 49, 14,
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8,
+ 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96
+ }, {
+ 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16
+ }
+ }, {64000, 47, 12,
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 8, 8, 8, 12, 12, 12, 16, 16, 16, 20, 24, 24, 28,
+ 36, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40
+ },{
+ 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 32
+ }
+ }, { 88200, 41, 12,
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28,
+ 36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
+ },{
+ 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36
+ }
+ }, { 96000, 41, 12,
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28,
+ 36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
+ },{
+ 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36
+ }
+ },
+ { -1 }
+};
+
/* First attempt at supporting multiple sampling rates *
* and bitrates correctly. */
@@ -180,6 +284,13 @@
}
for (chanNum=0;chanNum<MAX_TIME_CHANNELS;chanNum++) {
+ quantInfo[chanNum].sr_info = &sr_info_aac[0];
+
+ /* find correct sampling rate depending parameters */
+ while( quantInfo[chanNum].sr_info->sampling_rate != as->out_sampling_rate ) {
+ quantInfo[chanNum].sr_info++;
+ }
+
quantInfo[chanNum].srate_idx = srate_idx;
quantInfo[chanNum].profile = as->profile;
}
@@ -299,6 +410,7 @@
/* psychoacoustics */
/*****************************************************************************/
Psy_Calculate(
+ quantInfo,
as->out_sampling_rate,
max_ch,
channelInfo,
@@ -442,23 +554,23 @@
for (chanNum=0;chanNum<max_ch;chanNum++) {
switch( block_type[chanNum] ) {
case ONLY_LONG_WINDOW:
- memcpy( (char*)sfb_width_table[chanNum], (char*)chpo_long[chanNum].cb_width, (NSFB_LONG+1)*sizeof(int) );
- nr_of_sfb[chanNum] = chpo_long[chanNum].no_of_cb;
+ memcpy( (char*)sfb_width_table[chanNum], (char*)quantInfo[chanNum].sr_info->cb_width_long, (NSFB_LONG+1)*sizeof(int) );
+ nr_of_sfb[chanNum] = quantInfo[chanNum].sr_info->num_cb_long;
p_ratio[chanNum] = p_ratio_long[ps][chanNum];
break;
case LONG_SHORT_WINDOW:
- memcpy( (char*)sfb_width_table[chanNum], (char*)chpo_long[chanNum].cb_width, (NSFB_LONG+1)*sizeof(int) );
- nr_of_sfb[chanNum] = chpo_long[chanNum].no_of_cb;
+ memcpy( (char*)sfb_width_table[chanNum], (char*)quantInfo[chanNum].sr_info->cb_width_long, (NSFB_LONG+1)*sizeof(int) );
+ nr_of_sfb[chanNum] = quantInfo[chanNum].sr_info->num_cb_long;
p_ratio[chanNum] = p_ratio_long[ps][chanNum];
break;
case ONLY_SHORT_WINDOW:
- memcpy( (char*)sfb_width_table[chanNum], (char*)chpo_short[chanNum][0].cb_width, (NSFB_SHORT+1)*sizeof(int) );
- nr_of_sfb[chanNum] = chpo_short[chanNum][0].no_of_cb;
+ memcpy( (char*)sfb_width_table[chanNum], (char*)quantInfo[chanNum].sr_info->cb_width_short, (NSFB_SHORT+1)*sizeof(int) );
+ nr_of_sfb[chanNum] = quantInfo[chanNum].sr_info->num_cb_short;
p_ratio[chanNum] = p_ratio_short[ps][chanNum];
break;
case SHORT_LONG_WINDOW:
- memcpy( (char*)sfb_width_table[chanNum], (char*)chpo_long[chanNum].cb_width, (NSFB_LONG+1)*sizeof(int) );
- nr_of_sfb[chanNum] = chpo_long[chanNum].no_of_cb;
+ memcpy( (char*)sfb_width_table[chanNum], (char*)quantInfo[chanNum].sr_info->cb_width_long, (NSFB_LONG+1)*sizeof(int) );
+ nr_of_sfb[chanNum] = quantInfo[chanNum].sr_info->num_cb_long;
p_ratio[chanNum] = p_ratio_long[ps][chanNum];
break;
}
--- a/interface.h
+++ b/interface.h
@@ -21,8 +21,8 @@
/**************************************************************************
Version Control Information Method: CVS
Identifiers:
- $Revision: 1.4 $
- $Date: 2000/10/06 14:47:27 $ (check in)
+ $Revision: 1.5 $
+ $Date: 2000/10/31 14:48:41 $ (check in)
$Author: menno $
*************************************************************************/
@@ -161,6 +161,14 @@
#define LEN_BIT_RATE 23
#define LEN_NUM_PCE 4
#define LEN_ADIF_BF 20
+
+typedef struct {
+ long sampling_rate; /* the following entries are for this sampling rate */
+ int num_cb_long;
+ int num_cb_short;
+ int cb_width_long[NSFB_LONG];
+ int cb_width_short[NSFB_SHORT];
+} SR_INFO;
typedef struct
{
--- a/psych.c
+++ b/psych.c
@@ -21,8 +21,8 @@
/**************************************************************************
Version Control Information Method: CVS
Identifiers:
- $Revision: 1.70 $
- $Date: 2000/10/08 20:32:33 $ (check in)
+ $Revision: 1.71 $
+ $Date: 2000/10/31 14:48:41 $ (check in)
$Author: menno $
*************************************************************************/
@@ -31,112 +31,10 @@
#include "psych.h"
#include "transfo.h"
+#include "quant.h"
double sqrt2048, sqrt256;
-SR_INFO sr_info_aac[MAX_SAMPLING_RATES+1] =
-{
- { 8000, 40, 15,
- {
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16,
- 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 24, 24, 24, 28,
- 28, 32, 32, 36, 40, 44, 48, 52, 56, 60, 64, 80
- }, {
- 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 20, 20
- }
- }, { 11025, 43, 15,
- {
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24,
- 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
- }, {
- 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20
- }
- }, { 12000, 43, 15,
- {
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24,
- 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
- }, {
- 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20
- }
- }, { 16000, 43, 15,
- {
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24,
- 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64
- }, {
- 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20
- }
- }, { 22050, 47, 15,
- {
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24, 28, 28, 32,
- 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, 64
- }, {
- 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 16, 20
- }
- },{ 24000, 47, 15,
- {
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24, 28, 28, 32,
- 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, 64
- }, {
- 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 16, 20
- }
- }, { 32000, 51, 14,
- {
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8,
- 8, 8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28,
- 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32
- },{
- 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16
- }
- }, { 44100, 49, 14,
- {
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8,
- 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96
- }, {
- 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16
- }
- }, { 48000, 49, 14,
- {
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8,
- 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96
- }, {
- 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16
- }
- }, {64000, 47, 12,
- {
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 8, 8, 8, 12, 12, 12, 16, 16, 16, 20, 24, 24, 28,
- 36, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40
- },{
- 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 32
- }
- }, { 88200, 41, 12,
- {
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28,
- 36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
- },{
- 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36
- }
- }, { 96000, 41, 12,
- {
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28,
- 36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
- },{
- 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36
- }
- },
- { -1 }
-};
double sample[MAX_TIME_CHANNELS*2][BLOCK_LEN_LONG*2];
/* sample value */
@@ -424,6 +322,7 @@
/* main */
void Psy_Calculate(
/* input */
+ AACQuantInfo *quantInfo,
double sampling_rate,
int no_of_chan, /* no of audio channels */
Ch_Info* channelInfo,
@@ -447,13 +346,6 @@
memset(&psy_var_long, 0, sizeof(psy_var_long));
memset(&psy_var_short, 0, sizeof(psy_var_short));
- p_sri = &sr_info_aac[0];
-
- /* find correct sampling rate depending parameters */
- while( p_sri->sampling_rate != (long)sampling_rate ) {
- p_sri++;
- }
-
if( flag==0 ) {
psy_part_table_init(sampling_rate, &part_tbl_long, &part_tbl_short);
/* initializing Table B 2.1.*.a, B 2.1.*.b in N1650 */
@@ -462,6 +354,8 @@
for (chanNum = 0; chanNum < no_of_chan; chanNum++) {
if (channelInfo[chanNum].present) {
+ p_sri = quantInfo[chanNum].sr_info;
+
if ((channelInfo[chanNum].cpe) && (channelInfo[chanNum].ch_is_left)) { /* CPE */
int leftChan = chanNum;
int rightChan = channelInfo[chanNum].paired_ch;
@@ -582,10 +476,6 @@
p_chpo_long[leftChan].p_ratio = psy_stvar_long[leftChan].ismr;
p_chpo_long[rightChan].p_ratio = psy_stvar_long[rightChan].ismr;
- p_chpo_long[leftChan].cb_width = p_sri->cb_width_long;
- p_chpo_long[rightChan].cb_width = p_sri->cb_width_long;
- p_chpo_long[leftChan].no_of_cb = p_sri->num_cb_long;
- p_chpo_long[rightChan].no_of_cb = p_sri->num_cb_long;
memcpy(p_chpo_long[rightChan].use_ms, psy_stvar_long[rightChan].use_ms, NSFB_LONG*sizeof(int));
@@ -592,10 +482,6 @@
for( i=0; i<MAX_SHORT_WINDOWS; i++ ) {
p_chpo_short[leftChan][i].p_ratio = psy_stvar_short[leftChan].ismr[i];
p_chpo_short[rightChan][i].p_ratio = psy_stvar_short[rightChan].ismr[i];
- p_chpo_short[leftChan][i].cb_width = p_sri->cb_width_short;
- p_chpo_short[rightChan][i].cb_width = p_sri->cb_width_short;
- p_chpo_short[leftChan][i].no_of_cb = p_sri->num_cb_short;
- p_chpo_short[rightChan][i].no_of_cb = p_sri->num_cb_short;
memcpy(p_chpo_short[rightChan][i].use_ms, psy_stvar_short[rightChan].use_ms[i], NSFB_SHORT*sizeof(int));
}
@@ -614,12 +500,8 @@
block_type[chanNum] = ONLY_LONG_WINDOW;
// set the scalefactor band values
- p_chpo_long[chanNum].cb_width = p_sri->cb_width_long;
- p_chpo_long[chanNum].no_of_cb = p_sri->num_cb_long;
for( i=0; i<MAX_SHORT_WINDOWS; i++ ) {
p_chpo_short[chanNum][i].p_ratio = psy_stvar_short[chanNum].ismr[i];
- p_chpo_short[chanNum][i].cb_width = p_sri->cb_width_short;
- p_chpo_short[chanNum][i].no_of_cb = p_sri->num_cb_short;
}
} else { /* SCE */
@@ -645,13 +527,9 @@
&psy_stvar_short[chanNum], &psy_var_long[0], &psy_var_short[0]);
p_chpo_long[chanNum].p_ratio = psy_stvar_long[chanNum].ismr;
- p_chpo_long[chanNum].cb_width = p_sri->cb_width_long;
- p_chpo_long[chanNum].no_of_cb = p_sri->num_cb_long;
for( i=0; i<MAX_SHORT_WINDOWS; i++ ) {
p_chpo_short[chanNum][i].p_ratio = psy_stvar_short[chanNum].ismr[i];
- p_chpo_short[chanNum][i].cb_width = p_sri->cb_width_short;
- p_chpo_short[chanNum][i].no_of_cb = p_sri->num_cb_short;
}
}
}
--- a/psych.h
+++ b/psych.h
@@ -21,12 +21,13 @@
/**************************************************************************
Version Control Information Method: CVS
Identifiers:
- $Revision: 1.23 $
- $Date: 2000/10/08 20:32:33 $ (check in)
+ $Revision: 1.24 $
+ $Date: 2000/10/31 14:48:41 $ (check in)
$Author: menno $
*************************************************************************/
#include "interface.h"
+#include "quant.h"
#ifndef M_PI
#define M_PI 3.14159265358979323846
@@ -39,13 +40,6 @@
#define max(a,b) ( (a) > (b) ? (a) : (b) )
#endif
-typedef struct {
- long sampling_rate; /* the following entries are for this sampling rate */
- int num_cb_long;
- int num_cb_short;
- int cb_width_long[NSFB_LONG];
- int cb_width_short[NSFB_SHORT];
-} SR_INFO;
#define OFFSET_FOR_SHORT 448
#define NPART_LONG 100
@@ -154,16 +148,12 @@
typedef struct {
double *p_ratio;
- int *cb_width;
int use_ms[NSFB_LONG];
- int no_of_cb;
} CH_PSYCH_OUTPUT_LONG;
typedef struct {
double *p_ratio;
- int *cb_width;
int use_ms[NSFB_SHORT];
- int no_of_cb;
} CH_PSYCH_OUTPUT_SHORT;
#ifdef __cplusplus
@@ -174,6 +164,7 @@
void Psy_FillBuffer(double *p_time_signal[], int no_of_chan);
void Psy_Calculate(
/* input */
+ AACQuantInfo *quantInfo,
double sampling_rate,
int no_of_chan, /* no of audio channels */
Ch_Info* chInfo,
--- a/quant.h
+++ b/quant.h
@@ -21,8 +21,8 @@
/**************************************************************************
Version Control Information Method: CVS
Identifiers:
- $Revision: 1.5 $
- $Date: 2000/10/06 14:47:27 $ (check in)
+ $Revision: 1.6 $
+ $Date: 2000/10/31 14:48:41 $ (check in)
$Author: menno $
*************************************************************************/
@@ -85,7 +85,8 @@
int reset_group_number; /* Prediction reset group number */
TNS_INFO* tnsInfo; /* Ptr to tns data */
AACPulseInfo pulseInfo;
- LT_PRED_STATUS *ltpInfo; /* Prt to LTP data */
+ LT_PRED_STATUS *ltpInfo; /* Ptr to LTP data */
+ SR_INFO *sr_info;
int pns_sfb_nrg[MAX_SCFAC_BANDS];
int pns_sfb_flag[MAX_SCFAC_BANDS];
int profile;