Esempio n. 1
0
int
createInvFiltDetector (HANDLE_SBR_INV_FILT_EST hInvFilt,
                       int* freqBandTableDetector,
                       int numDetectorBands,
                       int numberOfEstimatesPerFrame,
                       unsigned int useSpeechConfig
                      )
{
    int i;





    memset( hInvFilt,0,sizeof(SBR_INV_FILT_EST));


    if (useSpeechConfig) {

        hInvFilt->detectorParams=&detectorParamsAACSpeech;
    }
    else {

        hInvFilt->detectorParams=&detectorParamsAAC;
    }


    hInvFilt->noDetectorBandsMax = numDetectorBands;


    /* hInvFilt->detectorValues[]
                   hInvFilt->prevInvfMode[]
                   hInvFilt->prevRegionOrig[]
                   hInvFilt->prevRegionSbr[]
                */

    for(i=0; i<hInvFilt->noDetectorBandsMax; i++) {

        memset(&hInvFilt->detectorValues[i],0,sizeof(DETECTOR_VALUES));


        hInvFilt->prevInvfMode[i]   = INVF_OFF;
        hInvFilt->prevRegionOrig[i] = 0;
        hInvFilt->prevRegionSbr[i]  = 0;
    }



    resetInvFiltDetector(hInvFilt,
                         freqBandTableDetector,
                         hInvFilt->noDetectorBandsMax);




    return (0);
}
Esempio n. 2
0
int
createInvFiltDetector (HANDLE_SBR_INV_FILT_EST hInvFilt,
                       int* freqBandTableDetector,
                       int numDetectorBands,
                       int numberOfEstimatesPerFrame,
                       unsigned int useSpeechConfig
                       )
{
  int i;

  COUNT_sub_start("createInvFiltDetector");

  DETECTOR_PARAMETERS _detectorParamsAAC = {
      quantStepsSbr,
      quantStepsOrig,
      nrgBorders,
      4,
      4,
      4,
      {
        {INVF_MID_LEVEL,   INVF_LOW_LEVEL,  INVF_OFF,        INVF_OFF, INVF_OFF},
        {INVF_MID_LEVEL,   INVF_LOW_LEVEL,  INVF_OFF,        INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_MID_LEVEL,  INVF_LOW_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_HIGH_LEVEL, INVF_MID_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_HIGH_LEVEL, INVF_MID_LEVEL,  INVF_OFF, INVF_OFF}
      },
      {
        {INVF_LOW_LEVEL,   INVF_LOW_LEVEL,  INVF_LOW_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_LOW_LEVEL,   INVF_LOW_LEVEL,  INVF_LOW_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_MID_LEVEL,  INVF_MID_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_HIGH_LEVEL, INVF_MID_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_HIGH_LEVEL, INVF_MID_LEVEL,  INVF_OFF, INVF_OFF}
      },
      {-4, -3, -2, -1, 0}
  };
  detectorParamsAAC = _detectorParamsAAC;

  DETECTOR_PARAMETERS _detectorParamsAACSpeech = {
      quantStepsSbr,
      quantStepsOrig,
      nrgBorders,
      4,
      4,
      4,
      {
        {INVF_MID_LEVEL,   INVF_MID_LEVEL,  INVF_LOW_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_MID_LEVEL,   INVF_MID_LEVEL,  INVF_LOW_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_MID_LEVEL,  INVF_MID_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_HIGH_LEVEL, INVF_MID_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_HIGH_LEVEL, INVF_MID_LEVEL,  INVF_OFF, INVF_OFF}
      },
      {
        {INVF_MID_LEVEL,   INVF_MID_LEVEL,  INVF_LOW_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_MID_LEVEL,   INVF_MID_LEVEL,  INVF_LOW_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_MID_LEVEL,  INVF_MID_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_HIGH_LEVEL, INVF_MID_LEVEL,  INVF_OFF, INVF_OFF},
        {INVF_HIGH_LEVEL,  INVF_HIGH_LEVEL, INVF_MID_LEVEL,  INVF_OFF, INVF_OFF}
      },
      {-4, -3, -2, -1, 0}
  };
  detectorParamsAACSpeech = _detectorParamsAACSpeech;


  FUNC(2); LOOP(1); PTR_INIT(1); MOVE(1); STORE(sizeof(SBR_INV_FILT_EST));
  memset( hInvFilt,0,sizeof(SBR_INV_FILT_EST));

  BRANCH(1);
  if (useSpeechConfig) {
    INDIRECT(1); PTR_INIT(1);
    hInvFilt->detectorParams=&detectorParamsAACSpeech;
  }
  else {
    INDIRECT(1); PTR_INIT(1);
    hInvFilt->detectorParams=&detectorParamsAAC;
  }

  INDIRECT(1); MOVE(1);
  hInvFilt->noDetectorBandsMax = numDetectorBands;


  PTR_INIT(4); /* hInvFilt->detectorValues[]
                  hInvFilt->prevInvfMode[]
                  hInvFilt->prevRegionOrig[]
                  hInvFilt->prevRegionSbr[]
               */
  LOOP(1);
  for(i=0;i<hInvFilt->noDetectorBandsMax;i++){
    FUNC(2); LOOP(1); PTR_INIT(1); MOVE(1); STORE(sizeof(DETECTOR_VALUES));
    memset(&hInvFilt->detectorValues[i],0,sizeof(DETECTOR_VALUES));

    MOVE(3);
    hInvFilt->prevInvfMode[i]   = INVF_OFF;
    hInvFilt->prevRegionOrig[i] = 0;
    hInvFilt->prevRegionSbr[i]  = 0;
  }


  INDIRECT(1); FUNC(3);
  resetInvFiltDetector(hInvFilt,
                       freqBandTableDetector,
                       hInvFilt->noDetectorBandsMax);


  COUNT_sub_end();

  return (0);
}