Unverified Commit 44a001a0 authored by norvell's avatar norvell
Browse files

Remove azimKseq_Q_fx, set to Q6 (hrtf) and Q7 (ITD)

parent c1602807
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -87,9 +87,6 @@ void ivas_HRTF_td_binary_close_fx(
            free( ( *hHrtfTD )->ModelParams.azimKSeq_fx[i] );
        }
        free( ( *hHrtfTD )->ModelParams.azimKSeq_fx );
#ifdef FIX_2235_TD_RENDERER_WORD16
        free( ( *hHrtfTD )->ModelParams.azimKSeq_Q_fx );
#endif
        IF( ( *hHrtfTD )->ModelEval.hrfModR_fx != NULL )
        {
            free( ( *hHrtfTD )->ModelEval.hrfModL_fx );
@@ -141,9 +138,6 @@ void ivas_HRTF_td_binary_close_fx(
            free( ( *hHrtfTD )->ModelParams.azimKSeq_fx[i] );
        }
        free( ( *hHrtfTD )->ModelParams.azimKSeq_fx );
#ifdef FIX_2235_TD_RENDERER_WORD16
        free( ( *hHrtfTD )->ModelParams.azimKSeq_Q_fx );
#endif

        free( ( *hHrtfTD )->ModelParams.EL_dyn_fx );
        free( ( *hHrtfTD )->ModelParams.ER_dyn_fx );
+4 −8
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@


#ifdef FIX_2235_TD_RENDERER_WORD16
static void getPeriodicBSplineSampVec_fx( Word32 *BfVec_fx, Word16 *AzIdx, const Word16 NumBFs, const Word32 t_fx, Word16 *num_az_idx, const Word32 knot_interval_fx, const Word16 azimKSeq_0_fx, const Word16 azimKSeq_Q_fx, const Word16 azimSegSamples, const Word16 *azimBsShape_fx, const Word16 azimBsShape_Q_fx, const Word16 subSampFactor );
static void getPeriodicBSplineSampVec_fx( Word32 *BfVec_fx, Word16 *AzIdx, const Word16 NumBFs, const Word32 t_fx, Word16 *num_az_idx, const Word32 knot_interval_fx, const Word16 azimKSeq_0_fx, const Word16 azimSegSamples, const Word16 *azimBsShape_fx, const Word16 azimBsShape_Q_fx, const Word16 subSampFactor );
static void getStandardBSplineSampVec_fx( Word32 *BfVec_fx, Word16 *NzIdx, Word16 *num_idx, const Word16 NumBFs, const Word32 t_fx, const Word16 *KSeq_fx, const Word16 KSeq_Q_fx, const Word16 SegSamples, const Word16 *BsLen, const Word16 *BsStart, const Word16 *BsShape_fx, Word16 BsShape_Q_fx );
#else
static void getPeriodicBSplineSampVec_fx( Word32 *BfVec_fx, Word16 *AzIdx, const Word16 NumBFs, const Word32 t_fx, Word16 *num_az_idx, const Word32 knot_interval_fx, const Word32 azimKSeq_0_fx, const Word16 azimSegSamples, const Word32 *azimBsShape_fx, const Word16 subSampFactor );
@@ -268,7 +268,7 @@ static void GenerateFilter_fx(

#ifdef FIX_2235_TD_RENDERER_WORD16
            getPeriodicBSplineSampVec_fx( modelEval->azimBfVec_fx[p], AzIdx[p], model->azimDim3[k], azim, &num_az_idx[p],
                                          knot_interval, model->azimKSeq_fx[k][0], model->azimKSeq_Q_fx[k], model->azimSegSamples[model->azimShapeIdx[k]],
                                          knot_interval, model->azimKSeq_fx[k][0], model->azimSegSamples[model->azimShapeIdx[k]],
                                          model->azimBsShape_fx[model->azimShapeIdx[k]], model->azimBsShape_Q_fx[model->azimShapeIdx[k]], model->azimShapeSampFactor[k] );
#else
            getPeriodicBSplineSampVec_fx( modelEval->azimBfVec_fx[p], AzIdx[p], model->azimDim3[k], azim, &num_az_idx[p],
@@ -488,7 +488,7 @@ static void GenerateITD_fx(
            azim_itd_fx = L_sub( DEG_360_IN_Q22, azim_fx ); // Q22
        }
#ifdef FIX_2235_TD_RENDERER_WORD16
        getStandardBSplineSampVec_fx( modelEval->azimBfVecITD_fx, AzIdx, &num_az_idx, shr( add( model->azimDim3, 1 ), 1 ), azim_itd_fx, model->azimKSeq_fx, model->azimKSeq_Q_fx,
        getStandardBSplineSampVec_fx( modelEval->azimBfVecITD_fx, AzIdx, &num_az_idx, shr( add( model->azimDim3, 1 ), 1 ), azim_itd_fx, model->azimKSeq_fx, Q7,
                                      model->azimSegSamples, model->azimBsLen, model->azimBsStart, model->azimBsShape_fx, model->azimBsShape_Q_fx );
#else
        getStandardBSplineSampVec_fx( modelEval->azimBfVecITD_fx, AzIdx, &num_az_idx, shr( add( model->azimDim3, 1 ), 1 ), azim_itd_fx, model->azimKSeq_fx,
@@ -650,7 +650,6 @@ static void getPeriodicBSplineSampVec_fx(
    const Word32 knot_interval_fx, /* i  : The knot interval                                 Q22 */
#ifdef FIX_2235_TD_RENDERER_WORD16
    const Word16 azimKSeq_0_fx, /* i  : Knot sequence                             Q azimKSeq_Q_fx*/
    const Word16 azimKSeq_Q_fx, /* i  : Q-value of azimKSeq_0_fx                                 */
#else
    const Word32 azimKSeq_0_fx,   /* i  : Knot sequence                                     Q22 */
#endif
@@ -687,7 +686,7 @@ static void getPeriodicBSplineSampVec_fx(
        tmp32 = L_deposit_h( BASOP_Util_Divide3216_Scale( knot_interval_fx, SegSamples, &tmp_e1 ) );
        tmp_e1 = add( tmp_e1, 9 - 15 );
#ifdef FIX_2235_TD_RENDERER_WORD16
        tmp32 = L_deposit_h( BASOP_Util_Divide3232_Scale( L_sub( t_fx, L_shl( L_deposit_l( azimKSeq_0_fx ), 22 - azimKSeq_Q_fx ) ), tmp32, &tmp_e2 ) );
        tmp32 = L_deposit_h( BASOP_Util_Divide3232_Scale( L_sub( t_fx, L_shl( L_deposit_l( azimKSeq_0_fx ), Q22 - Q6 ) ), tmp32, &tmp_e2 ) );
#else
        tmp32 = L_deposit_h( BASOP_Util_Divide3232_Scale( L_sub( t_fx, azimKSeq_0_fx ), tmp32, &tmp_e2 ) );
#endif
@@ -893,9 +892,6 @@ void BSplineModelEvalDealloc_fx(
            free( model->azimKSeq_fx[i] );
        }
        free( model->azimKSeq_fx );
#ifdef FIX_2235_TD_RENDERER_WORD16
        free( model->azimKSeq_Q_fx );
#endif
        IF( modelEval != NULL )
        {
            free( modelEval->hrfModL_fx );
+2 −9
Original line number Diff line number Diff line
@@ -469,7 +469,7 @@ static ivas_error DefaultBSplineModel_fx(
#endif

#ifdef FIX_2235_TD_RENDERER_WORD16
    IF( ( model->azimKSeq_fx = (Word16 **) malloc( model->elevDim3 * sizeof( Word16 * ) ) ) == NULL || ( model->azimKSeq_Q_fx = (Word16 *) malloc( model->elevDim3 * sizeof( Word16 ) ) ) == NULL )
    IF( ( model->azimKSeq_fx = (Word16 **) malloc( model->elevDim3 * sizeof( Word16 * ) ) ) == NULL )
#else
    IF( ( model->azimKSeq_fx = (Word32 **) malloc( model->elevDim3 * sizeof( Word32 * ) ) ) == NULL )
#endif
@@ -488,11 +488,6 @@ static ivas_error DefaultBSplineModel_fx(
            return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) );
        }

#ifdef FIX_2235_TD_RENDERER_WORD16
        model->azimKSeq_Q_fx[i] = defaultHRIR_rom_azimKSeq_Q_fx;
        move16();
#endif

        IF( LT_16( model->azimShapeIdx[i], 0 ) )
        {
            azimSegSamples = 360;
@@ -508,7 +503,7 @@ static ivas_error DefaultBSplineModel_fx(
        FOR( j = 0; j < model->azimDim3[i] + 1; j++ )
        {
#ifdef FIX_2235_TD_RENDERER_WORD16
            model->azimKSeq_fx[i][j] = extract_l( L_shl_r( L_mult0( defaultHRIR_rom_azimSegSamples[0], j ), model->azimKSeq_Q_fx[i] ) ); // Q model->azimKSeq_Q_fx[i]
            model->azimKSeq_fx[i][j] = extract_l( L_shl_r( L_mult0( defaultHRIR_rom_azimSegSamples[0], j ), Q6 ) ); /* Q6 */
            move16();
#else
            model->azimKSeq_fx[i][j] = L_shl_r( L_mult0( defaultHRIR_rom_azimSegSamples[0], j ), Q22 ); // Q22
@@ -692,8 +687,6 @@ static ivas_error DefaultBSplineModel_fx(
#ifdef FIX_2235_TD_RENDERER_WORD16
    modelITD->azimKSeq_fx = defaultHRIR_rom_ITD_azimKSeq_fx;
    move16();
    modelITD->azimKSeq_Q_fx = defaultHRIR_rom_ITD_azimKSeq_Q_fx;
    move16();
#else
    modelITD->azimKSeq_dyn_fx = (Word32 *) malloc( ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ) * sizeof( Word32 ) ); /* basis functions are flipped around 180 deg, number of basis functions above/below is (N+1)/2 */
    IF( modelITD->azimKSeq_dyn_fx == NULL )
+6 −0
Original line number Diff line number Diff line
@@ -10199,10 +10199,16 @@ const Word16 defaultHRIR_rom_ITD_azimBsShape_fx[84] = {
9262,11409,13588,15701,17651,19339,20666,21534,21845,
};
#ifdef FIX_2235_TD_RENDERER_WORD16
const Word16 defaultHRIR_rom_ITD_azimKSeq_fx[19] = {
0, 1280, 2560, 3840, 5120, 6400, 7680, 8960, 10240, 11520, 12800, 14080, 15360, 16640, 17920, 19200, 20480, 21760, 23040, 
}; /* Q7 */
#else
const Word16 defaultHRIR_rom_ITD_azimKSeq_Q_fx = 7;
const Word16 defaultHRIR_rom_ITD_azimKSeq_fx[19] = {
0, 1280, 2560, 3840, 5120, 6400, 7680, 8960, 10240, 11520, 12800, 14080, 15360, 16640, 17920, 19200, 20480, 21760, 23040, 
};
#endif
const Word16 defaultHRIR_rom_ITD_elevBsShape_Q_fx = 15;
const Word16 defaultHRIR_rom_ITD_elevBsShape_fx[28] = {
+2 −4
Original line number Diff line number Diff line
@@ -1056,8 +1056,7 @@ typedef struct
    Word16 elevBsShape_Q_fx;
    const Word16 **azimBsShape_fx; /* 2d Array, length num_unique_azim_splines */
    Word16 *azimBsShape_Q_fx;      /* Array, length num_unique_azim_splines, Q-values for each k of azimBsShape_fx[k] */
    Word16 **azimKSeq_fx;          /* Array, length azimDim3+1            */
    Word16 *azimKSeq_Q_fx;         /* Array, length azimDim3+1, Q-values for each k of azimKSeq_fx[k] */
    Word16 **azimKSeq_fx;          /* Array, length azimDim3+1   Q6 [0,360]        */
    const Word16 *AlphaL_fx;       /* Array, size AlphaN x K */
    Word16 AlphaL_e;
    const Word16 *AlphaR_fx; /* Array, size AlphaN x K */
@@ -1125,8 +1124,7 @@ typedef struct
    Word16 resamp_factor_fx; /*Q14*/
#ifdef FIX_2235_TD_RENDERER_WORD16
    const Word16 *elevKSeq_fx; /* Array, length elevDim3-2, Q8 [-90,90] */
    const Word16 *azimKSeq_fx; /* Array, length azimDim3-2            */
    Word16 azimKSeq_Q_fx;      /* Q-value of azimKSeq_fx */
    const Word16 *azimKSeq_fx; /* Array, length azimDim3-2 Q7 [-180,180] */
    const Word16 *W_fx;        /* Array, size (elevDim3*azimDim3) x K */
#else
    const Word32 *elevKSeq_fx; /* Array, length elevDim3-2       */
Loading