Commit d580244b authored by Michael Sturm's avatar Michael Sturm
Browse files

Introduces changes from review comments.

parent 2dbba467
Loading
Loading
Loading
Loading
+2 −31
Original line number Diff line number Diff line
@@ -998,10 +998,6 @@ static void IGF_gridSetUp(
    move16();
    hGrid->infoGranuleLen = frameLength; /*Q0*/
    move16();
#ifdef FIX_2346_DUPLICATED_IGF_FUNCTIONS
    hGrid->infoTransFac = transFac; /*Q14*/
    move16();
#endif
    hGrid->sfbWrap[0] = 0;
    move16();
    hGrid->tile[0] = hGrid->startLine; /*Q0*/
@@ -1380,55 +1376,30 @@ Word16 IGFCommonFuncsIGFConfiguration_ivas_fx(

        /* set up regular IGF grid for TCX 20  (transfac = 1.f) */
        hGrid = &hIGFInfo->grid[IGF_GRID_LB_NORM];
#ifdef FIX_2346_DUPLICATED_IGF_FUNCTIONS
        IGF_gridSetUp( hGrid,
                       hIGFInfo->bitRateIndex,
                       sampleRate,
                       frameLength,
                       16384 /*1 Q14*/,
                       igfMinFq );
#else
        IGF_gridSetUp_ivas_fx( hGrid,
                               hIGFInfo->bitRateIndex,
                               sampleRate,
                               frameLength,
                               16384 /*1 Q14*/,
                               igfMinFq );
#endif

        /* set up IGF grid for CELP->TCX 20 transitions (transfac = 1.25) */
        hGrid = &hIGFInfo->grid[IGF_GRID_LB_TRAN];
#ifdef FIX_2346_DUPLICATED_IGF_FUNCTIONS
        IGF_gridSetUp( hGrid,
                       hIGFInfo->bitRateIndex,
                       sampleRate,
                       frameLength,
                       20480 /*1.25 Q14*/,
                       igfMinFq );
#else
        IGF_gridSetUp_ivas_fx( hGrid,
                               hIGFInfo->bitRateIndex,
                               sampleRate,
                               frameLength,
                               20480 /*1.25 Q14*/,
                               igfMinFq );
#endif

        /* set up IGF grid for TCX 10 (transfac = 0.5) */
        hGrid = &hIGFInfo->grid[IGF_GRID_LB_SHORT];
#ifdef FIX_2346_DUPLICATED_IGF_FUNCTIONS
        IGF_gridSetUp( hGrid,
                       hIGFInfo->bitRateIndex,
                       sampleRate,
                       frameLength,
                       8192 /*0.50f Q14*/,
                       igfMinFq );
#else
        IGF_gridSetUp_ivas_fx( hGrid,
                               hIGFInfo->bitRateIndex,
                               sampleRate,
                               frameLength,
                               8192 /*0.50f Q14*/,
                               igfMinFq );
#endif
    }

    return retValue; /*Q0*/
+2 −0
Original line number Diff line number Diff line
@@ -721,7 +721,9 @@ typedef struct igf_grid_struct
    Word16 tile[IGF_MAX_TILES + 1];
    Word16 infoIsRefined;
    Word16 infoGranuleLen;
#ifndef FIX_2346_DUPLICATED_IGF_FUNCTIONS
    Word16 infoTransFac;
#endif
    Word16 whiteningThreshold[2][IGF_MAX_TILES]; /* 2Q13 */
    Word16 gFactor;                              /* 1Q14 */
    Word16 fFactor;                              /* 1Q14 */
+25 −41
Original line number Diff line number Diff line
@@ -213,23 +213,30 @@ static Word16 IGF_replaceTCXNoise_1( /**< out: Q0 | n
        move16();
    }

    IF( EQ_16( element_mode, EVS_MONO ) )
    {
        FOR( sb = start; sb < stop; sb++ )
        {
            IF( TCXNoise[sb] )
        {
            IF( EQ_16( element_mode, EVS_MONO ) )
            {
                tmp16 = extract_h( L_shl( in[sb], s_l ) ); // Q31 + s_l
                nE32 = L_mac( nE32, tmp16, tmp16 );        // Q31 + s_l
                noise = add( noise, 1 );
            }
        }
    }
    ELSE
    {
        FOR( sb = start; sb < stop; sb++ )
        {
            IF( TCXNoise[sb] )
            {
                tmp32 = L_shr( in[sb], shift );
                nE64 = W_mac_32_32( nE64, tmp32, tmp32 ); // 62 - (in_exp + shift + in_exp + shift + 1)
            }
                noise = add( noise, 1 );
            }
        }
    }

    IF( EQ_16( element_mode, EVS_MONO ) )
    {
@@ -295,7 +302,7 @@ static void IGF_replaceTCXNoise_2( Word32* in, /**< in
            move16();
            in[sb] = L_deposit_l( val ); // Q0
            move32();
            IF( in_exp_arr != NULL )
            if( in_exp_arr != NULL )
            {
                in_exp_arr[sb] = 31;
                move16();
@@ -347,7 +354,7 @@ static void IGF_replaceTCXNoise_2( Word32* in, /**< in
            Word16 nrm = norm_l( in[sb] );
            Word32 in_tmp = L_shl( in[sb], nrm ); // exp: 31 - tmp
            Word16 in_exp_tmp = 0;
            IF( in_exp_arr != NULL )
            if( in_exp_arr != NULL )
            {
                in_exp_tmp = sub( in_exp_arr[sb], nrm );
            }
@@ -363,7 +370,7 @@ static void IGF_replaceTCXNoise_2( Word32* in, /**< in
                {
                    in[sb] = Mpy_32_16_1( in_tmp, g ); // exp: 31 - tmp + tmp_e
                    move32();
                    IF( in_exp_arr != NULL )
                    if( in_exp_arr != NULL )
                    {
                        in_exp_arr[sb] = add( in_exp_tmp, tmp_e );
                        move16();
@@ -3522,11 +3529,7 @@ void IGFDecReadData_ivas_fx( const IGF_DEC_INSTANCE_HANDLE hInstance, /**< in:
        {
            IGF_decode_whitening_level( st, hPrivateData, 0 );
            test();
#ifdef FIX_2346_DUPLICATED_IGF_FUNCTIONS
            IF( ( EQ_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_SWB_48000_CPE ) || EQ_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_48000_CPE ) ) && GT_16( st->element_mode, EVS_MONO ) )
#else
            IF( EQ_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_SWB_48000_CPE ) || EQ_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_48000_CPE ) )
#endif
            {
                tmp = 0;
                move16();
@@ -3896,24 +3899,6 @@ void IGFDecApplyMono( const IGF_DEC_INSTANCE_HANDLE hInstance, /**< in:

    IF( GT_16( element_mode, EVS_MONO ) )
    {
#ifdef FIX_2346_DUPLICATED_IGF_FUNCTIONS
        Word16 len;
        IF( EQ_16( igfGridIdx, IGF_GRID_LB_SHORT ) )
        {
            len = ( N_MAX_TCX - IGF_START_MN ) / 2;
            move16();
        }
        ELSE
        {
            len = ( N_MAX_TCX - IGF_START_MN );
            move16();
        }

        set16_fx( hInstance->flag_sparse, 0, len );
        set32_fx( hInstance->virtualSpec_fx, 0, len );
        hInstance->virtualSpec_e = 0;
        move16();
#endif
        whiteningLevel = IGF_MID_WHITENING_LEVEL2;
        move16();
    }
@@ -4604,9 +4589,9 @@ void IGFDecSetMode(

        test();
#ifdef FIX_2346_DUPLICATED_IGF_FUNCTIONS
        IF( ( LE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_48000 ) && EQ_16( element_mode, EVS_MONO ) ) ||
        IF( LE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_48000 ) ||
          ( NE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_96000 ) && NE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_96000_CPE ) &&
              NE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_128000 ) && NE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_128000_CPE ) && GT_16( element_mode, EVS_MONO ) ) )
            NE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_128000 ) && NE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_128000_CPE ) ) )
#else
        IF( ( LE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_SWB_48000 ) ) || ( LE_16( hPrivateData->igfInfo.bitRateIndex, IGF_BITRATE_FB_48000 ) ) )
#endif
@@ -4634,14 +4619,13 @@ void IGFDecSetMode(
        move16();
        fprintf( stderr, "IGFDecSetMode: initialization error!\n" );
    }
    IF( GT_16( element_mode, EVS_MONO ) )
    {

    hIGFDec->flag_sparse = &hIGFDec->flag_sparseBuf[0];
    hIGFDec->infoTCXNoise_ptr = &hIGFDec->infoTCXNoise_evs[0];
    hIGFDec->virtualSpec_fx = &hIGFDec->virtualSpec[0];
    hIGFDec->igfData.pSpecFlat = &hIGFDec->igfData.pSpecFlatBuf_fx[0];
    hIGFDec->igfData.igfInfo.nfSeed = &hIGFDec->igfData.igfInfo.nfSeedBuf[0];
    }

    return;
}
#ifndef FIX_2346_DUPLICATED_IGF_FUNCTIONS