Loading lib_rend/ivas_objectRenderer_mix_fx.c +37 −22 Original line number Diff line number Diff line Loading @@ -371,6 +371,21 @@ ivas_error TDREND_MIX_AddSrc_fx( #endif } #ifdef USE_TDREND_16BIT_ROM static void Copy_Scale_sig_16_32_r( const Word16 x[], /* i : signal to scale input Qx */ Word32 y[], /* o : scaled signal output Qx */ const Word16 lg, /* i : size of x[] Q0 */ const Word16 exp0 /* i : exponent: x = round(x << exp) Qx ?exp */ ) { Word16 i; for ( i = 0; i < lg; i++ ) { y[i] = L_shl_r( L_deposit_l( x[i] ), exp0 ); } } #endif /*-------------------------------------------------------------------* * BSplineModelEvalAlloc() * Loading Loading @@ -484,19 +499,19 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_elevKSeq_fx, model->elevKSeq_dyn_fx, ( model->elevDim3 - 2 ), Q22 - defaultHRIR_rom_elevKSeq_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_elevKSeq_fx, model->elevKSeq_dyn_fx, ( model->elevDim3 - 2 ), Q22 - defaultHRIR_rom_elevKSeq_Q_fx ); // Q22 model->elevKSeq_fx = model->elevKSeq_dyn_fx; #else model->elevKSeq_fx = defaultHRIR_rom_elevKSeq_fx; // Q22 #endif #ifdef USE_TDREND_16BIT_ROM model->elevBsShape_dyn_fx = (Word32 *) malloc( 36 * sizeof( Word32 ) ); model->elevBsShape_dyn_fx = (Word32 *) malloc( sizeof( defaultHRIR_rom_elevBsShape_fx ) * sizeof( Word32 ) / sizeof( Word16 ) ); if ( model->elevBsShape_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_elevBsShape_fx, model->elevBsShape_dyn_fx, 36, Q30 - defaultHRIR_rom_elevBsShape_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_elevBsShape_fx, model->elevBsShape_dyn_fx, sizeof( defaultHRIR_rom_elevBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_elevBsShape_Q_fx ); // Q30 model->elevBsShape_fx = model->elevBsShape_dyn_fx; #else model->elevBsShape_fx = (const Word32 *) defaultHRIR_rom_elevBsShape_fx; // Q30 Loading @@ -512,12 +527,12 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } model->azimBsShape_dyn_fx[0] = (Word32 *) malloc( 21 * sizeof( Word32 ) ); model->azimBsShape_dyn_fx[0] = (Word32 *) malloc( sizeof( defaultHRIR_rom_azimBsShape_fx ) * sizeof( Word32 ) / sizeof( Word16 ) ); if ( model->azimBsShape_dyn_fx[0] == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_azimBsShape_fx, model->azimBsShape_dyn_fx[0], 21, Q30 - defaultHRIR_rom_azimBsShape_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_azimBsShape_fx, model->azimBsShape_dyn_fx[0], sizeof( defaultHRIR_rom_azimBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_azimBsShape_Q_fx ); // Q30 model->azimBsShape_fx[0] = model->azimBsShape_dyn_fx[0]; #else model->azimBsShape_fx[0] = defaultHRIR_rom_azimBsShape_fx; // Q30 Loading Loading @@ -594,8 +609,8 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaL48_fx, model->AlphaL_dyn_fx, 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_no_sat( &defaultHRIR_rom_AlphaL48_fx[30080], &model->AlphaL_dyn_fx[30080], 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaL48_fx, model->AlphaL_dyn_fx, 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q30 Copy_Scale_sig_16_32_r( &defaultHRIR_rom_AlphaL48_fx[30080], &model->AlphaL_dyn_fx[30080], 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q30 model->AlphaL_fx = model->AlphaL_dyn_fx; model->AlphaL_e = Q15 - defaultHRIR_rom_Alpha48_Q_fx; #else Loading @@ -609,8 +624,8 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaR48_fx, model->AlphaR_dyn_fx, 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_no_sat( &defaultHRIR_rom_AlphaR48_fx[30080], &model->AlphaR_dyn_fx[30080], 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaR48_fx, model->AlphaR_dyn_fx, 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( &defaultHRIR_rom_AlphaR48_fx[30080], &model->AlphaR_dyn_fx[30080], 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 model->AlphaR_fx = model->AlphaR_dyn_fx; model->AlphaR_e = Q15 - defaultHRIR_rom_Alpha48_Q_fx; #else Loading Loading @@ -651,8 +666,8 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaL32_fx, model->AlphaL_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_no_sat( &defaultHRIR_rom_AlphaL32_fx[20210], &model->AlphaL_dyn_fx[20210], 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaL32_fx, model->AlphaL_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( &defaultHRIR_rom_AlphaL32_fx[20210], &model->AlphaL_dyn_fx[20210], 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 model->AlphaL_fx = model->AlphaL_dyn_fx; model->AlphaL_e = Q15 - defaultHRIR_rom_Alpha32_Q_fx; #else Loading @@ -666,8 +681,8 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaR32_fx, model->AlphaR_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_no_sat( &defaultHRIR_rom_AlphaR32_fx[20210], &model->AlphaR_dyn_fx[20210], 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaR32_fx, model->AlphaR_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( &defaultHRIR_rom_AlphaR32_fx[20210], &model->AlphaR_dyn_fx[20210], 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 model->AlphaR_fx = model->AlphaR_dyn_fx; model->AlphaR_e = Q15 - defaultHRIR_rom_Alpha32_Q_fx; #else Loading Loading @@ -708,7 +723,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaL16_fx, model->AlphaL_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha16_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaL16_fx, model->AlphaL_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha16_Q_fx ); // Q22 model->AlphaL_fx = model->AlphaL_dyn_fx; model->AlphaL_e = Q15 - defaultHRIR_rom_Alpha16_Q_fx; #else Loading @@ -722,7 +737,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaR16_fx, model->AlphaR_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha16_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaR16_fx, model->AlphaR_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha16_Q_fx ); // Q22 model->AlphaR_fx = model->AlphaR_dyn_fx; model->AlphaR_e = Q15 - defaultHRIR_rom_Alpha16_Q_fx; #else Loading @@ -733,7 +748,7 @@ static ivas_error DefaultBSplineModel_fx( model->EL_fx = (const Word32 *) defaultHRIR_rom_EL16_fx; // Q28 #ifdef USE_TDREND_16BIT_ROM model->EL_e = Q31 - defaultHRIR_rom_E16_Q_fx; model->EL_e = 3; // model->EL_e = 3; #else model->EL_e = 3; #endif Loading @@ -741,7 +756,7 @@ static ivas_error DefaultBSplineModel_fx( model->ER_fx = (const Word32 *) defaultHRIR_rom_ER16_fx; // Q28 #ifdef USE_TDREND_16BIT_ROM model->ER_e = Q31 - defaultHRIR_rom_E16_Q_fx; model->ER_e = 3; // model->ER_e = 3; #else model->ER_e = 3; #endif Loading Loading @@ -810,7 +825,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_elevKSeq_fx, modelITD->elevKSeq_dyn_fx, sizeof( defaultHRIR_rom_ITD_elevKSeq_fx ) / sizeof( Word16 ), Q22 - defaultHRIR_rom_ITD_elevKSeq_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_elevKSeq_fx, modelITD->elevKSeq_dyn_fx, sizeof( defaultHRIR_rom_ITD_elevKSeq_fx ) / sizeof( Word16 ), Q22 - defaultHRIR_rom_ITD_elevKSeq_Q_fx ); // Q22 modelITD->elevKSeq_fx = modelITD->elevKSeq_dyn_fx; #else Loading Loading @@ -848,7 +863,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_azimKSeq_fx, modelITD->azimKSeq_dyn_fx, ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ), Q22 - defaultHRIR_rom_ITD_azimKSeq_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_azimKSeq_fx, modelITD->azimKSeq_dyn_fx, ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ), Q22 - defaultHRIR_rom_ITD_azimKSeq_Q_fx ); // Q22 modelITD->azimKSeq_fx = modelITD->azimKSeq_dyn_fx; #else modelITD->azimKSeq_fx = defaultHRIR_rom_ITD_azimKSeq_fx; // Q22 Loading @@ -859,7 +874,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_W_fx, modelITD->W_dyn_fx, sizeof( defaultHRIR_rom_ITD_W_fx ) / sizeof( Word16 ), Q25 - defaultHRIR_rom_ITD_W_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_W_fx, modelITD->W_dyn_fx, sizeof( defaultHRIR_rom_ITD_W_fx ) / sizeof( Word16 ), Q25 - defaultHRIR_rom_ITD_W_Q_fx ); // Q22 modelITD->W_fx = modelITD->W_dyn_fx; modelITD->W_e = Q15 - defaultHRIR_rom_ITD_W_Q_fx; #else Loading @@ -873,7 +888,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_azimBsShape_fx, modelITD->azimBsShape_dyn_fx, sizeof( defaultHRIR_rom_ITD_azimBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_ITD_azimBsShape_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_azimBsShape_fx, modelITD->azimBsShape_dyn_fx, sizeof( defaultHRIR_rom_ITD_azimBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_ITD_azimBsShape_Q_fx ); // Q22 modelITD->azimBsShape_fx = modelITD->azimBsShape_dyn_fx; #else modelITD->azimBsShape_fx = defaultHRIR_rom_ITD_azimBsShape_fx; // Q30 Loading @@ -884,7 +899,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_elevBsShape_fx, modelITD->elevBsShape_dyn_fx, sizeof( defaultHRIR_rom_ITD_elevBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_ITD_elevBsShape_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_elevBsShape_fx, modelITD->elevBsShape_dyn_fx, sizeof( defaultHRIR_rom_ITD_elevBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_ITD_elevBsShape_Q_fx ); // Q22 modelITD->elevBsShape_fx = modelITD->elevBsShape_dyn_fx; #else modelITD->elevBsShape_fx = defaultHRIR_rom_ITD_elevBsShape_fx; // Q30 Loading lib_util/hrtf_file_reader.c +1 −11 Original line number Diff line number Diff line Loading @@ -779,16 +779,10 @@ static ivas_error TDREND_LoadBSplineBinary( } fread( &factor_Q, 1, sizeof( Word16 ), f_hrtf ); model->EL_dyn_e = Q15 - factor_Q; model->EL_dyn_e = Q31 - factor_Q; model->ER_dyn_e = model->EL_dyn_e; // model->ER_dyn_e = 1; /* force to 6 to be corrected */ fread( (Word32 *) model->EL_dyn_fx, sizeof( Word32 ), model->AlphaN * HRTF_MODEL_N_SECTIONS, f_hrtf ); for ( j = 0; j < model->AlphaN * HRTF_MODEL_N_SECTIONS; j++ ) { model->EL_dyn_fx[j] = L_shl_r( model->EL_dyn_fx[j], sub( Q28, factor_Q ) ); } model->ER_dyn_fx = (Word32 *) malloc( model->AlphaN * HRTF_MODEL_N_SECTIONS * sizeof( Word32 ) ); if ( model->ER_dyn_fx == NULL ) Loading @@ -796,10 +790,6 @@ static ivas_error TDREND_LoadBSplineBinary( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( (Word32 *) model->ER_dyn_fx, sizeof( Word32 ), model->AlphaN * HRTF_MODEL_N_SECTIONS, f_hrtf ); for ( j = 0; j < model->AlphaN * HRTF_MODEL_N_SECTIONS; j++ ) { model->ER_dyn_fx[j] = L_shl_r( model->ER_dyn_fx[j], sub( Q28, factor_Q ) ); } /* Set const pointers */ model->AlphaL_fx = (const Word32 *) model->AlphaL_dyn_fx; Loading Loading
lib_rend/ivas_objectRenderer_mix_fx.c +37 −22 Original line number Diff line number Diff line Loading @@ -371,6 +371,21 @@ ivas_error TDREND_MIX_AddSrc_fx( #endif } #ifdef USE_TDREND_16BIT_ROM static void Copy_Scale_sig_16_32_r( const Word16 x[], /* i : signal to scale input Qx */ Word32 y[], /* o : scaled signal output Qx */ const Word16 lg, /* i : size of x[] Q0 */ const Word16 exp0 /* i : exponent: x = round(x << exp) Qx ?exp */ ) { Word16 i; for ( i = 0; i < lg; i++ ) { y[i] = L_shl_r( L_deposit_l( x[i] ), exp0 ); } } #endif /*-------------------------------------------------------------------* * BSplineModelEvalAlloc() * Loading Loading @@ -484,19 +499,19 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_elevKSeq_fx, model->elevKSeq_dyn_fx, ( model->elevDim3 - 2 ), Q22 - defaultHRIR_rom_elevKSeq_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_elevKSeq_fx, model->elevKSeq_dyn_fx, ( model->elevDim3 - 2 ), Q22 - defaultHRIR_rom_elevKSeq_Q_fx ); // Q22 model->elevKSeq_fx = model->elevKSeq_dyn_fx; #else model->elevKSeq_fx = defaultHRIR_rom_elevKSeq_fx; // Q22 #endif #ifdef USE_TDREND_16BIT_ROM model->elevBsShape_dyn_fx = (Word32 *) malloc( 36 * sizeof( Word32 ) ); model->elevBsShape_dyn_fx = (Word32 *) malloc( sizeof( defaultHRIR_rom_elevBsShape_fx ) * sizeof( Word32 ) / sizeof( Word16 ) ); if ( model->elevBsShape_dyn_fx == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_elevBsShape_fx, model->elevBsShape_dyn_fx, 36, Q30 - defaultHRIR_rom_elevBsShape_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_elevBsShape_fx, model->elevBsShape_dyn_fx, sizeof( defaultHRIR_rom_elevBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_elevBsShape_Q_fx ); // Q30 model->elevBsShape_fx = model->elevBsShape_dyn_fx; #else model->elevBsShape_fx = (const Word32 *) defaultHRIR_rom_elevBsShape_fx; // Q30 Loading @@ -512,12 +527,12 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } model->azimBsShape_dyn_fx[0] = (Word32 *) malloc( 21 * sizeof( Word32 ) ); model->azimBsShape_dyn_fx[0] = (Word32 *) malloc( sizeof( defaultHRIR_rom_azimBsShape_fx ) * sizeof( Word32 ) / sizeof( Word16 ) ); if ( model->azimBsShape_dyn_fx[0] == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_azimBsShape_fx, model->azimBsShape_dyn_fx[0], 21, Q30 - defaultHRIR_rom_azimBsShape_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_azimBsShape_fx, model->azimBsShape_dyn_fx[0], sizeof( defaultHRIR_rom_azimBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_azimBsShape_Q_fx ); // Q30 model->azimBsShape_fx[0] = model->azimBsShape_dyn_fx[0]; #else model->azimBsShape_fx[0] = defaultHRIR_rom_azimBsShape_fx; // Q30 Loading Loading @@ -594,8 +609,8 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaL48_fx, model->AlphaL_dyn_fx, 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_no_sat( &defaultHRIR_rom_AlphaL48_fx[30080], &model->AlphaL_dyn_fx[30080], 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaL48_fx, model->AlphaL_dyn_fx, 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q30 Copy_Scale_sig_16_32_r( &defaultHRIR_rom_AlphaL48_fx[30080], &model->AlphaL_dyn_fx[30080], 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q30 model->AlphaL_fx = model->AlphaL_dyn_fx; model->AlphaL_e = Q15 - defaultHRIR_rom_Alpha48_Q_fx; #else Loading @@ -609,8 +624,8 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaR48_fx, model->AlphaR_dyn_fx, 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_no_sat( &defaultHRIR_rom_AlphaR48_fx[30080], &model->AlphaR_dyn_fx[30080], 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaR48_fx, model->AlphaR_dyn_fx, 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( &defaultHRIR_rom_AlphaR48_fx[30080], &model->AlphaR_dyn_fx[30080], 30080, Q30 - defaultHRIR_rom_Alpha48_Q_fx ); // Q22 model->AlphaR_fx = model->AlphaR_dyn_fx; model->AlphaR_e = Q15 - defaultHRIR_rom_Alpha48_Q_fx; #else Loading Loading @@ -651,8 +666,8 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaL32_fx, model->AlphaL_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_no_sat( &defaultHRIR_rom_AlphaL32_fx[20210], &model->AlphaL_dyn_fx[20210], 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaL32_fx, model->AlphaL_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( &defaultHRIR_rom_AlphaL32_fx[20210], &model->AlphaL_dyn_fx[20210], 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 model->AlphaL_fx = model->AlphaL_dyn_fx; model->AlphaL_e = Q15 - defaultHRIR_rom_Alpha32_Q_fx; #else Loading @@ -666,8 +681,8 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaR32_fx, model->AlphaR_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_no_sat( &defaultHRIR_rom_AlphaR32_fx[20210], &model->AlphaR_dyn_fx[20210], 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaR32_fx, model->AlphaR_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( &defaultHRIR_rom_AlphaR32_fx[20210], &model->AlphaR_dyn_fx[20210], 20210, Q30 - defaultHRIR_rom_Alpha32_Q_fx ); // Q22 model->AlphaR_fx = model->AlphaR_dyn_fx; model->AlphaR_e = Q15 - defaultHRIR_rom_Alpha32_Q_fx; #else Loading Loading @@ -708,7 +723,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaL16_fx, model->AlphaL_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha16_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaL16_fx, model->AlphaL_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha16_Q_fx ); // Q22 model->AlphaL_fx = model->AlphaL_dyn_fx; model->AlphaL_e = Q15 - defaultHRIR_rom_Alpha16_Q_fx; #else Loading @@ -722,7 +737,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_AlphaR16_fx, model->AlphaR_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha16_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_AlphaR16_fx, model->AlphaR_dyn_fx, 20210, Q30 - defaultHRIR_rom_Alpha16_Q_fx ); // Q22 model->AlphaR_fx = model->AlphaR_dyn_fx; model->AlphaR_e = Q15 - defaultHRIR_rom_Alpha16_Q_fx; #else Loading @@ -733,7 +748,7 @@ static ivas_error DefaultBSplineModel_fx( model->EL_fx = (const Word32 *) defaultHRIR_rom_EL16_fx; // Q28 #ifdef USE_TDREND_16BIT_ROM model->EL_e = Q31 - defaultHRIR_rom_E16_Q_fx; model->EL_e = 3; // model->EL_e = 3; #else model->EL_e = 3; #endif Loading @@ -741,7 +756,7 @@ static ivas_error DefaultBSplineModel_fx( model->ER_fx = (const Word32 *) defaultHRIR_rom_ER16_fx; // Q28 #ifdef USE_TDREND_16BIT_ROM model->ER_e = Q31 - defaultHRIR_rom_E16_Q_fx; model->ER_e = 3; // model->ER_e = 3; #else model->ER_e = 3; #endif Loading Loading @@ -810,7 +825,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_elevKSeq_fx, modelITD->elevKSeq_dyn_fx, sizeof( defaultHRIR_rom_ITD_elevKSeq_fx ) / sizeof( Word16 ), Q22 - defaultHRIR_rom_ITD_elevKSeq_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_elevKSeq_fx, modelITD->elevKSeq_dyn_fx, sizeof( defaultHRIR_rom_ITD_elevKSeq_fx ) / sizeof( Word16 ), Q22 - defaultHRIR_rom_ITD_elevKSeq_Q_fx ); // Q22 modelITD->elevKSeq_fx = modelITD->elevKSeq_dyn_fx; #else Loading Loading @@ -848,7 +863,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_azimKSeq_fx, modelITD->azimKSeq_dyn_fx, ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ), Q22 - defaultHRIR_rom_ITD_azimKSeq_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_azimKSeq_fx, modelITD->azimKSeq_dyn_fx, ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ), Q22 - defaultHRIR_rom_ITD_azimKSeq_Q_fx ); // Q22 modelITD->azimKSeq_fx = modelITD->azimKSeq_dyn_fx; #else modelITD->azimKSeq_fx = defaultHRIR_rom_ITD_azimKSeq_fx; // Q22 Loading @@ -859,7 +874,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_W_fx, modelITD->W_dyn_fx, sizeof( defaultHRIR_rom_ITD_W_fx ) / sizeof( Word16 ), Q25 - defaultHRIR_rom_ITD_W_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_W_fx, modelITD->W_dyn_fx, sizeof( defaultHRIR_rom_ITD_W_fx ) / sizeof( Word16 ), Q25 - defaultHRIR_rom_ITD_W_Q_fx ); // Q22 modelITD->W_fx = modelITD->W_dyn_fx; modelITD->W_e = Q15 - defaultHRIR_rom_ITD_W_Q_fx; #else Loading @@ -873,7 +888,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_azimBsShape_fx, modelITD->azimBsShape_dyn_fx, sizeof( defaultHRIR_rom_ITD_azimBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_ITD_azimBsShape_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_azimBsShape_fx, modelITD->azimBsShape_dyn_fx, sizeof( defaultHRIR_rom_ITD_azimBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_ITD_azimBsShape_Q_fx ); // Q22 modelITD->azimBsShape_fx = modelITD->azimBsShape_dyn_fx; #else modelITD->azimBsShape_fx = defaultHRIR_rom_ITD_azimBsShape_fx; // Q30 Loading @@ -884,7 +899,7 @@ static ivas_error DefaultBSplineModel_fx( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } Copy_Scale_sig_16_32_no_sat( defaultHRIR_rom_ITD_elevBsShape_fx, modelITD->elevBsShape_dyn_fx, sizeof( defaultHRIR_rom_ITD_elevBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_ITD_elevBsShape_Q_fx ); // Q22 Copy_Scale_sig_16_32_r( defaultHRIR_rom_ITD_elevBsShape_fx, modelITD->elevBsShape_dyn_fx, sizeof( defaultHRIR_rom_ITD_elevBsShape_fx ) / sizeof( Word16 ), Q30 - defaultHRIR_rom_ITD_elevBsShape_Q_fx ); // Q22 modelITD->elevBsShape_fx = modelITD->elevBsShape_dyn_fx; #else modelITD->elevBsShape_fx = defaultHRIR_rom_ITD_elevBsShape_fx; // Q30 Loading
lib_util/hrtf_file_reader.c +1 −11 Original line number Diff line number Diff line Loading @@ -779,16 +779,10 @@ static ivas_error TDREND_LoadBSplineBinary( } fread( &factor_Q, 1, sizeof( Word16 ), f_hrtf ); model->EL_dyn_e = Q15 - factor_Q; model->EL_dyn_e = Q31 - factor_Q; model->ER_dyn_e = model->EL_dyn_e; // model->ER_dyn_e = 1; /* force to 6 to be corrected */ fread( (Word32 *) model->EL_dyn_fx, sizeof( Word32 ), model->AlphaN * HRTF_MODEL_N_SECTIONS, f_hrtf ); for ( j = 0; j < model->AlphaN * HRTF_MODEL_N_SECTIONS; j++ ) { model->EL_dyn_fx[j] = L_shl_r( model->EL_dyn_fx[j], sub( Q28, factor_Q ) ); } model->ER_dyn_fx = (Word32 *) malloc( model->AlphaN * HRTF_MODEL_N_SECTIONS * sizeof( Word32 ) ); if ( model->ER_dyn_fx == NULL ) Loading @@ -796,10 +790,6 @@ static ivas_error TDREND_LoadBSplineBinary( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" ); } fread( (Word32 *) model->ER_dyn_fx, sizeof( Word32 ), model->AlphaN * HRTF_MODEL_N_SECTIONS, f_hrtf ); for ( j = 0; j < model->AlphaN * HRTF_MODEL_N_SECTIONS; j++ ) { model->ER_dyn_fx[j] = L_shl_r( model->ER_dyn_fx[j], sub( Q28, factor_Q ) ); } /* Set const pointers */ model->AlphaL_fx = (const Word32 *) model->AlphaL_dyn_fx; Loading