Loading lib_com/ivas_cnst.h +0 −2 Original line number Diff line number Diff line Loading @@ -1696,8 +1696,6 @@ typedef enum #define ONE_BY_180_Q31 ( 11930465 ) // Q31 #ifdef FIX_CREND_SIMPLIFY_CODE #define RESAMPLE_FACTOR_16_48 ( 10922 ) // Q15 #define RESAMPLE_FACTOR_32_48 ( 21845 ) // Q15 #define RESAMPLE_FACTOR_16_48_FX ( 5461 ) // Q14 #define RESAMPLE_FACTOR_32_48_FX ( 10922 ) // Q14 #endif Loading lib_rend/ivas_objectRenderer_mix_fx.c +25 −23 Original line number Diff line number Diff line Loading @@ -38,9 +38,7 @@ #include "ivas_error.h" #include "wmc_auto.h" #include "ivas_rom_rend.h" #ifdef FIX_989_TD_REND_ROM #include <math.h> #else #ifndef FIX_989_TD_REND_ROM #include "ivas_rom_binaural_crend_head.h" #endif #include "ivas_prot_fx.h" Loading @@ -51,7 +49,8 @@ #ifndef FIX_989_TD_REND_ROM #define RESAMPLE_FACTOR_16_48 ( 16.0f / 48.0f ) #define RESAMPLE_FACTOR_32_48 ( 32.0f / 48.0f ) #endif #ifndef FIX_CREND_SIMPLIFY_CODE #define RESAMPLE_FACTOR_16_48_FX ( 5461 ) // Q14 #define RESAMPLE_FACTOR_32_48_FX ( 10922 ) // Q14 #endif Loading Loading @@ -413,7 +412,7 @@ static ivas_error DefaultBSplineModel_fx( Word16 i, j; ivas_error error; #ifdef FIX_989_TD_REND_ROM Word32 azimSegSamples; Word16 azimSegSamples; #endif HrFiltSet_p->FilterMethod = TDREND_HRFILT_Method_BSplineModel; move16(); Loading @@ -426,18 +425,18 @@ static ivas_error DefaultBSplineModel_fx( move16(); #ifdef FIX_989_TD_REND_ROM model->UseItdModel = defaultHRIR_rom_model_configuration[0]; model->UseItdModel = defaultHRIR_rom_model_configuration[0]; // Q0 move16(); model->elevDim3 = defaultHRIR_rom_model_configuration[1]; model->elevDim3 = defaultHRIR_rom_model_configuration[1]; // Q0 move16(); model->AlphaN = defaultHRIR_rom_model_configuration[2]; model->AlphaN = defaultHRIR_rom_model_configuration[2]; // Q0 move16(); model->num_unique_azim_splines = defaultHRIR_rom_model_configuration[3]; model->num_unique_azim_splines = defaultHRIR_rom_model_configuration[3]; // Q0 move16(); model->elevSegSamples = defaultHRIR_rom_model_configuration[4]; model->elevSegSamples = defaultHRIR_rom_model_configuration[4]; // Q0 move16(); model->elevBsLen = defaultHRIR_rom_elevBsLen; model->elevBsStart = defaultHRIR_rom_elevBsStart; model->elevBsLen = defaultHRIR_rom_elevBsLen; // Q0 model->elevBsStart = defaultHRIR_rom_elevBsStart; // Q0 #else /* int16_t parameters */ model->UseItdModel = 1; // Q0 Loading Loading @@ -488,7 +487,7 @@ static ivas_error DefaultBSplineModel_fx( } model->azimBsShape_fx[0] = defaultHRIR_rom_azimBsShape_fx; // Q30 #ifdef FIX_989_TD_REND_ROM if ( ( model->azimKSeq_fx = (Word32 **) malloc( model->elevDim3 * sizeof( float * ) ) ) == NULL ) if ( ( model->azimKSeq_fx = (Word32 **) malloc( model->elevDim3 * sizeof( Word32 * ) ) ) == NULL ) #else IF( ( model->azimKSeq_fx = (Word32 **) malloc( 18 * sizeof( Word32 * ) ) ) == NULL ) #endif Loading @@ -498,20 +497,19 @@ static ivas_error DefaultBSplineModel_fx( #ifdef FIX_989_TD_REND_ROM FOR( i = 0; i < model->elevDim3; i++ ) { IF( ( model->azimKSeq_fx[i] = (Word32 *) malloc( ( model->azimDim3[i] + 1 ) * sizeof( Word32 * ) ) ) == NULL ) if ( ( model->azimKSeq_fx[i] = (Word32 *) malloc( ( model->azimDim3[i] + 1 ) * sizeof( Word32 * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); } IF( LT_32( model->azimShapeIdx[i], 0 ) ) azimSegSamples = defaultHRIR_rom_azimSegSamples[model->azimShapeIdx[i]]; // Q0 move16(); // indirect addressing cost move16(); if ( LT_16( model->azimShapeIdx[i], 0 ) ) { azimSegSamples = 360; } ELSE { azimSegSamples = defaultHRIR_rom_azimSegSamples[model->azimShapeIdx[i]]; } move32(); move16(); assert( azimSegSamples == 360 / model->azimDim3[i] ); FOR( j = 0; j < model->azimDim3[i] + 1; j++ ) Loading Loading @@ -567,7 +565,7 @@ static ivas_error DefaultBSplineModel_fx( model->ER_e = 3; move16(); #ifdef FIX_989_TD_REND_ROM model->K = defaultHRIR_rom_model_configuration[5]; model->K = defaultHRIR_rom_model_configuration[5]; // Q0 #else model->K = 128; // Q0 #endif Loading @@ -592,7 +590,7 @@ static ivas_error DefaultBSplineModel_fx( model->ER_e = 3; move16(); #ifdef FIX_989_TD_REND_ROM model->K = extract_l( L_shr( L_add( L_mult0( RESAMPLE_FACTOR_32_48, defaultHRIR_rom_model_configuration[5] ), 32768 ), 15 ) ); model->K = ( RESAMPLE_FACTOR_32_48_FX * defaultHRIR_rom_model_configuration[5] + ( 1 << 14 ) - 1 ) >> 14; // Q0 #else model->K = 86; // Q0 #endif Loading @@ -617,7 +615,7 @@ static ivas_error DefaultBSplineModel_fx( model->ER_e = 3; move16(); #ifdef FIX_989_TD_REND_ROM model->K = extract_l( L_shr( L_add( L_mult0( RESAMPLE_FACTOR_16_48, defaultHRIR_rom_model_configuration[5] ), 32768 ), 15 ) ); model->K = ( RESAMPLE_FACTOR_16_48_FX * defaultHRIR_rom_model_configuration[5] + ( 1 << 14 ) - 1 ) >> 14; // Q0 #else model->K = 43; // Q0 #endif Loading @@ -634,9 +632,13 @@ static ivas_error DefaultBSplineModel_fx( #ifdef FIX_989_TD_REND_ROM modelITD->elevDim3 = defaultHRIR_rom_ITD_model_configuration[0]; move16(); modelITD->azimDim3 = defaultHRIR_rom_ITD_model_configuration[1]; move16(); modelITD->elevSegSamples = defaultHRIR_rom_ITD_model_configuration[2]; move16(); modelITD->azimSegSamples = defaultHRIR_rom_ITD_model_configuration[3]; move16(); modelITD->elevBsLen = defaultHRIR_rom_ITD_elevBsLen; modelITD->elevBsStart = defaultHRIR_rom_ITD_elevBsStart; #else Loading lib_util/hrtf_file_reader.c +8 −8 Original line number Diff line number Diff line Loading @@ -339,7 +339,7 @@ static ivas_error TDREND_LoadBSplineBinaryITD( fread( v_tmp16, sizeof( Word16 ), modelITD->elevDim3 - 2, f_hrtf ); for ( j = 0; j < modelITD->elevDim3 - 2; j++ ) { modelITD->elevKSeq_dyn_fx[j] = L_shl_r( v_tmp16[j], sub( Q22, factor_Q ) ); modelITD->elevKSeq_dyn_fx[j] = L_shl_r( L_deposit_l(v_tmp16[j]), sub( Q22, factor_Q ) ); } free( v_tmp16 ); Loading @@ -354,7 +354,7 @@ static ivas_error TDREND_LoadBSplineBinaryITD( fread( v_tmp16, sizeof( Word16 ), ( modelITD->azimDim3 + 1 ) / 2 - 2, f_hrtf ); for ( j = 0; j < ( modelITD->azimDim3 + 1 ) / 2 - 2; j++ ) { modelITD->azimKSeq_dyn_fx[j] = L_shl_r( v_tmp16[j], sub( Q22, factor_Q ) ); modelITD->azimKSeq_dyn_fx[j] = L_shl_r( L_deposit_l(v_tmp16[j]), sub( Q22, factor_Q ) ); } free( v_tmp16 ); Loading @@ -374,7 +374,7 @@ static ivas_error TDREND_LoadBSplineBinaryITD( fread( v_tmp16, sizeof( Word16 ), tmp, f_hrtf ); for ( j = 0; j < tmp; j++ ) { modelITD->W_dyn_fx[j] = L_shl_r( v_tmp16[j], sub( Q25, factor_Q ) ); modelITD->W_dyn_fx[j] = L_shl_r( L_deposit_l(v_tmp16[j]), sub( Q25, factor_Q ) ); } free( v_tmp16 ); Loading Loading @@ -439,7 +439,7 @@ static ivas_error TDREND_LoadBSplineBinaryITD( fread( v_tmp16, sizeof( Word16 ), tmp, f_hrtf ); for ( j = 0; j < tmp; j++ ) { modelITD->elevBsShape_dyn_fx[j] = L_shl_r( v_tmp16[j], sub( Q30, factor_Q ) ); modelITD->elevBsShape_dyn_fx[j] = L_shl_r( L_deposit_l(v_tmp16[j]), sub( Q30, factor_Q ) ); } free( v_tmp16 ); fread( &modelITD->elevSegSamples, sizeof( Word16 ), 1, f_hrtf ); Loading @@ -449,10 +449,10 @@ static ivas_error TDREND_LoadBSplineBinaryITD( modelITD->W_fx = (const Word32 *) modelITD->W_dyn_fx; modelITD->azimBsShape_fx = (const Word32 *) modelITD->azimBsShape_dyn_fx; modelITD->elevBsShape_fx = (const Word32 *) modelITD->elevBsShape_dyn_fx; modelITD->azimBsLen = modelITD->azimBsLen_dyn_fx; modelITD->azimBsStart = modelITD->azimBsStart_dyn_fx; modelITD->elevBsLen = modelITD->elevBsLen_dyn_fx; modelITD->elevBsStart = modelITD->elevBsStart_dyn_fx; modelITD->azimBsLen = (const Word16 *) modelITD->azimBsLen_dyn_fx; modelITD->azimBsStart = (const Word16 *) modelITD->azimBsStart_dyn_fx; modelITD->elevBsLen = (const Word16 *) modelITD->elevBsLen_dyn_fx; modelITD->elevBsStart = (const Word16 *) modelITD->elevBsStart_dyn_fx; return IVAS_ERR_OK; } Loading Loading
lib_com/ivas_cnst.h +0 −2 Original line number Diff line number Diff line Loading @@ -1696,8 +1696,6 @@ typedef enum #define ONE_BY_180_Q31 ( 11930465 ) // Q31 #ifdef FIX_CREND_SIMPLIFY_CODE #define RESAMPLE_FACTOR_16_48 ( 10922 ) // Q15 #define RESAMPLE_FACTOR_32_48 ( 21845 ) // Q15 #define RESAMPLE_FACTOR_16_48_FX ( 5461 ) // Q14 #define RESAMPLE_FACTOR_32_48_FX ( 10922 ) // Q14 #endif Loading
lib_rend/ivas_objectRenderer_mix_fx.c +25 −23 Original line number Diff line number Diff line Loading @@ -38,9 +38,7 @@ #include "ivas_error.h" #include "wmc_auto.h" #include "ivas_rom_rend.h" #ifdef FIX_989_TD_REND_ROM #include <math.h> #else #ifndef FIX_989_TD_REND_ROM #include "ivas_rom_binaural_crend_head.h" #endif #include "ivas_prot_fx.h" Loading @@ -51,7 +49,8 @@ #ifndef FIX_989_TD_REND_ROM #define RESAMPLE_FACTOR_16_48 ( 16.0f / 48.0f ) #define RESAMPLE_FACTOR_32_48 ( 32.0f / 48.0f ) #endif #ifndef FIX_CREND_SIMPLIFY_CODE #define RESAMPLE_FACTOR_16_48_FX ( 5461 ) // Q14 #define RESAMPLE_FACTOR_32_48_FX ( 10922 ) // Q14 #endif Loading Loading @@ -413,7 +412,7 @@ static ivas_error DefaultBSplineModel_fx( Word16 i, j; ivas_error error; #ifdef FIX_989_TD_REND_ROM Word32 azimSegSamples; Word16 azimSegSamples; #endif HrFiltSet_p->FilterMethod = TDREND_HRFILT_Method_BSplineModel; move16(); Loading @@ -426,18 +425,18 @@ static ivas_error DefaultBSplineModel_fx( move16(); #ifdef FIX_989_TD_REND_ROM model->UseItdModel = defaultHRIR_rom_model_configuration[0]; model->UseItdModel = defaultHRIR_rom_model_configuration[0]; // Q0 move16(); model->elevDim3 = defaultHRIR_rom_model_configuration[1]; model->elevDim3 = defaultHRIR_rom_model_configuration[1]; // Q0 move16(); model->AlphaN = defaultHRIR_rom_model_configuration[2]; model->AlphaN = defaultHRIR_rom_model_configuration[2]; // Q0 move16(); model->num_unique_azim_splines = defaultHRIR_rom_model_configuration[3]; model->num_unique_azim_splines = defaultHRIR_rom_model_configuration[3]; // Q0 move16(); model->elevSegSamples = defaultHRIR_rom_model_configuration[4]; model->elevSegSamples = defaultHRIR_rom_model_configuration[4]; // Q0 move16(); model->elevBsLen = defaultHRIR_rom_elevBsLen; model->elevBsStart = defaultHRIR_rom_elevBsStart; model->elevBsLen = defaultHRIR_rom_elevBsLen; // Q0 model->elevBsStart = defaultHRIR_rom_elevBsStart; // Q0 #else /* int16_t parameters */ model->UseItdModel = 1; // Q0 Loading Loading @@ -488,7 +487,7 @@ static ivas_error DefaultBSplineModel_fx( } model->azimBsShape_fx[0] = defaultHRIR_rom_azimBsShape_fx; // Q30 #ifdef FIX_989_TD_REND_ROM if ( ( model->azimKSeq_fx = (Word32 **) malloc( model->elevDim3 * sizeof( float * ) ) ) == NULL ) if ( ( model->azimKSeq_fx = (Word32 **) malloc( model->elevDim3 * sizeof( Word32 * ) ) ) == NULL ) #else IF( ( model->azimKSeq_fx = (Word32 **) malloc( 18 * sizeof( Word32 * ) ) ) == NULL ) #endif Loading @@ -498,20 +497,19 @@ static ivas_error DefaultBSplineModel_fx( #ifdef FIX_989_TD_REND_ROM FOR( i = 0; i < model->elevDim3; i++ ) { IF( ( model->azimKSeq_fx[i] = (Word32 *) malloc( ( model->azimDim3[i] + 1 ) * sizeof( Word32 * ) ) ) == NULL ) if ( ( model->azimKSeq_fx[i] = (Word32 *) malloc( ( model->azimDim3[i] + 1 ) * sizeof( Word32 * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); } IF( LT_32( model->azimShapeIdx[i], 0 ) ) azimSegSamples = defaultHRIR_rom_azimSegSamples[model->azimShapeIdx[i]]; // Q0 move16(); // indirect addressing cost move16(); if ( LT_16( model->azimShapeIdx[i], 0 ) ) { azimSegSamples = 360; } ELSE { azimSegSamples = defaultHRIR_rom_azimSegSamples[model->azimShapeIdx[i]]; } move32(); move16(); assert( azimSegSamples == 360 / model->azimDim3[i] ); FOR( j = 0; j < model->azimDim3[i] + 1; j++ ) Loading Loading @@ -567,7 +565,7 @@ static ivas_error DefaultBSplineModel_fx( model->ER_e = 3; move16(); #ifdef FIX_989_TD_REND_ROM model->K = defaultHRIR_rom_model_configuration[5]; model->K = defaultHRIR_rom_model_configuration[5]; // Q0 #else model->K = 128; // Q0 #endif Loading @@ -592,7 +590,7 @@ static ivas_error DefaultBSplineModel_fx( model->ER_e = 3; move16(); #ifdef FIX_989_TD_REND_ROM model->K = extract_l( L_shr( L_add( L_mult0( RESAMPLE_FACTOR_32_48, defaultHRIR_rom_model_configuration[5] ), 32768 ), 15 ) ); model->K = ( RESAMPLE_FACTOR_32_48_FX * defaultHRIR_rom_model_configuration[5] + ( 1 << 14 ) - 1 ) >> 14; // Q0 #else model->K = 86; // Q0 #endif Loading @@ -617,7 +615,7 @@ static ivas_error DefaultBSplineModel_fx( model->ER_e = 3; move16(); #ifdef FIX_989_TD_REND_ROM model->K = extract_l( L_shr( L_add( L_mult0( RESAMPLE_FACTOR_16_48, defaultHRIR_rom_model_configuration[5] ), 32768 ), 15 ) ); model->K = ( RESAMPLE_FACTOR_16_48_FX * defaultHRIR_rom_model_configuration[5] + ( 1 << 14 ) - 1 ) >> 14; // Q0 #else model->K = 43; // Q0 #endif Loading @@ -634,9 +632,13 @@ static ivas_error DefaultBSplineModel_fx( #ifdef FIX_989_TD_REND_ROM modelITD->elevDim3 = defaultHRIR_rom_ITD_model_configuration[0]; move16(); modelITD->azimDim3 = defaultHRIR_rom_ITD_model_configuration[1]; move16(); modelITD->elevSegSamples = defaultHRIR_rom_ITD_model_configuration[2]; move16(); modelITD->azimSegSamples = defaultHRIR_rom_ITD_model_configuration[3]; move16(); modelITD->elevBsLen = defaultHRIR_rom_ITD_elevBsLen; modelITD->elevBsStart = defaultHRIR_rom_ITD_elevBsStart; #else Loading
lib_util/hrtf_file_reader.c +8 −8 Original line number Diff line number Diff line Loading @@ -339,7 +339,7 @@ static ivas_error TDREND_LoadBSplineBinaryITD( fread( v_tmp16, sizeof( Word16 ), modelITD->elevDim3 - 2, f_hrtf ); for ( j = 0; j < modelITD->elevDim3 - 2; j++ ) { modelITD->elevKSeq_dyn_fx[j] = L_shl_r( v_tmp16[j], sub( Q22, factor_Q ) ); modelITD->elevKSeq_dyn_fx[j] = L_shl_r( L_deposit_l(v_tmp16[j]), sub( Q22, factor_Q ) ); } free( v_tmp16 ); Loading @@ -354,7 +354,7 @@ static ivas_error TDREND_LoadBSplineBinaryITD( fread( v_tmp16, sizeof( Word16 ), ( modelITD->azimDim3 + 1 ) / 2 - 2, f_hrtf ); for ( j = 0; j < ( modelITD->azimDim3 + 1 ) / 2 - 2; j++ ) { modelITD->azimKSeq_dyn_fx[j] = L_shl_r( v_tmp16[j], sub( Q22, factor_Q ) ); modelITD->azimKSeq_dyn_fx[j] = L_shl_r( L_deposit_l(v_tmp16[j]), sub( Q22, factor_Q ) ); } free( v_tmp16 ); Loading @@ -374,7 +374,7 @@ static ivas_error TDREND_LoadBSplineBinaryITD( fread( v_tmp16, sizeof( Word16 ), tmp, f_hrtf ); for ( j = 0; j < tmp; j++ ) { modelITD->W_dyn_fx[j] = L_shl_r( v_tmp16[j], sub( Q25, factor_Q ) ); modelITD->W_dyn_fx[j] = L_shl_r( L_deposit_l(v_tmp16[j]), sub( Q25, factor_Q ) ); } free( v_tmp16 ); Loading Loading @@ -439,7 +439,7 @@ static ivas_error TDREND_LoadBSplineBinaryITD( fread( v_tmp16, sizeof( Word16 ), tmp, f_hrtf ); for ( j = 0; j < tmp; j++ ) { modelITD->elevBsShape_dyn_fx[j] = L_shl_r( v_tmp16[j], sub( Q30, factor_Q ) ); modelITD->elevBsShape_dyn_fx[j] = L_shl_r( L_deposit_l(v_tmp16[j]), sub( Q30, factor_Q ) ); } free( v_tmp16 ); fread( &modelITD->elevSegSamples, sizeof( Word16 ), 1, f_hrtf ); Loading @@ -449,10 +449,10 @@ static ivas_error TDREND_LoadBSplineBinaryITD( modelITD->W_fx = (const Word32 *) modelITD->W_dyn_fx; modelITD->azimBsShape_fx = (const Word32 *) modelITD->azimBsShape_dyn_fx; modelITD->elevBsShape_fx = (const Word32 *) modelITD->elevBsShape_dyn_fx; modelITD->azimBsLen = modelITD->azimBsLen_dyn_fx; modelITD->azimBsStart = modelITD->azimBsStart_dyn_fx; modelITD->elevBsLen = modelITD->elevBsLen_dyn_fx; modelITD->elevBsStart = modelITD->elevBsStart_dyn_fx; modelITD->azimBsLen = (const Word16 *) modelITD->azimBsLen_dyn_fx; modelITD->azimBsStart = (const Word16 *) modelITD->azimBsStart_dyn_fx; modelITD->elevBsLen = (const Word16 *) modelITD->elevBsLen_dyn_fx; modelITD->elevBsStart = (const Word16 *) modelITD->elevBsStart_dyn_fx; return IVAS_ERR_OK; } Loading