Loading lib_com/igf_base_fx.c +2 −31 Original line number Diff line number Diff line Loading @@ -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*/ Loading Loading @@ -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*/ Loading lib_com/stat_com.h +2 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading lib_dec/igf_dec_fx.c +25 −41 Original line number Diff line number Diff line Loading @@ -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 ) ) { Loading Loading @@ -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(); Loading Loading @@ -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 ); } Loading @@ -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(); Loading Loading @@ -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(); Loading Loading @@ -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(); } Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading
lib_com/igf_base_fx.c +2 −31 Original line number Diff line number Diff line Loading @@ -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*/ Loading Loading @@ -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*/ Loading
lib_com/stat_com.h +2 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading
lib_dec/igf_dec_fx.c +25 −41 Original line number Diff line number Diff line Loading @@ -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 ) ) { Loading Loading @@ -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(); Loading Loading @@ -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 ); } Loading @@ -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(); Loading Loading @@ -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(); Loading Loading @@ -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(); } Loading Loading @@ -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 Loading Loading @@ -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 Loading