Commit 807535f4 authored by emerit's avatar emerit
Browse files

parambin ok

parent 76984347
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1211,9 +1211,9 @@ static ivas_error ivas_binaural_hrtf_open_fx(
            }
        }
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
        HrtfFastConv->factor_Q_ReverberationTimes_fx = FASTCONV_factor_Q_fastconvReverberationTimes_fx;
        HrtfFastConv->factor_Q_ReverberationTimes_fx = FASTCONV_factor_Q_reverberationTimes_fx;
        mvs2s( fastconvReverberationTimes_fx, HrtfFastConv->fastconvReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX );
        HrtfFastConv->factor_Q_ReverberationEneCorrections_fx = FASTCONV_factor_Q_fastconvReverberationEneCorrections_fx;
        HrtfFastConv->factor_Q_ReverberationEneCorrections_fx = FASTCONV_factor_Q_reverberationEneCorrections_fx;
        mvs2s( fastconvReverberationEneCorrections_fx, HrtfFastConv->fastconvReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX );
#else
        Copy32( fastconvReverberationTimes_fx, HrtfFastConv->fastconvReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX );
+18 −17
Original line number Diff line number Diff line
@@ -277,7 +277,7 @@ ivas_error ivas_dirac_dec_init_binaural_data_fx(
#ifdef FIX_POINT_HRTF_FILE_FORMAT
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
        /* Check if value can remain 16bit */
        Copy_Scale_sig_16_32_no_sat( ( *phHrtfParambin )->parametricEarlyPartEneCorrection_fx, hDiracDecBin->earlyPartEneCorrection_fx, nBins, 16 );
        Copy_Scale_sig_16_32_no_sat( ( *phHrtfParambin )->parametricEarlyPartEneCorrection_fx, hDiracDecBin->earlyPartEneCorrection_fx, nBins, Q13 + ( Q15 - ( *phHrtfParambin )->factor_Q_EarlyPartEneCorrection_fx ) );
        hDiracDecBin->q_earlyPartEneCorrection = Q12;
#else
        Copy32( ( *phHrtfParambin )->parametricEarlyPartEneCorrection_fx, hDiracDecBin->earlyPartEneCorrection_fx, nBins );
@@ -456,20 +456,21 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs_fx(
        {
            return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for parametric binauralizer HRTF tables" );
        }
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
        hrtfParambin->factor_Q_hrtfShCoeffs_fx = hrtfShCoeffs_factorQ_fx;
#endif
        FOR( i = 0; i < BINAURAL_CHANNELS; i++ )
        {
            FOR( j = 0; j < HRTF_SH_CHANNELS; j++ )
            {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
                Copy( hrtfShCoeffsRe_fx[i][j], hrtfParambin->hrtfShCoeffsRe_fx[i][j], HRTF_NUM_BINS );
                Copy( hrtfShCoeffsIm_fx[i][j], hrtfParambin->hrtfShCoeffsIm_fx[i][j], HRTF_NUM_BINS );
#else
                Copy( hrtfShCoeffsRe_fx[i][j], hrtfParambin->hrtfShCoeffsRe_fx[i][j], HRTF_NUM_BINS );
                Copy( hrtfShCoeffsIm_fx[i][j], hrtfParambin->hrtfShCoeffsIm_fx[i][j], HRTF_NUM_BINS );
#endif
            }
        }
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
        hrtfParambin->factor_Q_reverberationTimes_fx = parametricReverberationTimes_factorQ_fx;
        hrtfParambin->factor_Q_reverberationEneCorrections_fx = parametricReverberationEneCorrections_factorQ_fx;
        hrtfParambin->factor_Q_EarlyPartEneCorrection_fx = parametricEarlyPartEneCorrection_factorQ_fx;
        Copy( parametricReverberationTimes_fx, hrtfParambin->parametricReverberationTimes_fx, CLDFB_NO_CHANNELS_MAX );
        Copy( parametricReverberationEneCorrections_fx, hrtfParambin->parametricReverberationEneCorrections_fx, CLDFB_NO_CHANNELS_MAX );
        Copy( parametricEarlyPartEneCorrection_fx, hrtfParambin->parametricEarlyPartEneCorrection_fx, CLDFB_NO_CHANNELS_MAX );
@@ -4987,7 +4988,7 @@ static void hrtfShGetHrtf_fx(
)
{
    Word16 k;
#ifdef FIX_POINT_HRTF_FILE_FORMAT
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
    Word16( *hrtfShCoeffsReInt )[16][60];
    Word16( *hrtfShCoeffsImInt )[16][60];
    hrtfShCoeffsReInt = hHrtfParambin->hrtfShCoeffsRe_fx;
@@ -5010,11 +5011,11 @@ static void hrtfShGetHrtf_fx(

        FOR( k = 0; k < HRTF_SH_CHANNELS; k++ )
        {
#ifdef FIX_POINT_HRTF_FILE_FORMAT
            *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsReInt[0][k][bin] ); // Q28
            *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsImInt[0][k][bin] ); // Q28
            *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsReInt[1][k][bin] ); // Q28
            *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsImInt[1][k][bin] ); // Q28
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            *lRealp = Madd_32_32( *lRealp, shVec[k], L_shl( hrtfShCoeffsReInt[0][k][bin], ( Q30 - hHrtfParambin->factor_Q_hrtfShCoeffs_fx ) ) ); // Q28
            *lImagp = Madd_32_32( *lImagp, shVec[k], L_shl( hrtfShCoeffsImInt[0][k][bin], ( Q30 - hHrtfParambin->factor_Q_hrtfShCoeffs_fx ) ) ); // Q28
            *rRealp = Madd_32_32( *rRealp, shVec[k], L_shl( hrtfShCoeffsReInt[1][k][bin], ( Q30 - hHrtfParambin->factor_Q_hrtfShCoeffs_fx ) ) ); // Q28
            *rImagp = Madd_32_32( *rImagp, shVec[k], L_shl( hrtfShCoeffsImInt[1][k][bin], ( Q30 - hHrtfParambin->factor_Q_hrtfShCoeffs_fx ) ) ); // Q28
#else
            *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsRe_fx[0][k][bin] ); // Q28
            *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsIm_fx[0][k][bin] ); // Q28
@@ -5039,11 +5040,11 @@ static void hrtfShGetHrtf_fx(

        FOR( k = 0; k < HRTF_SH_CHANNELS; k++ )
        {
#ifdef FIX_POINT_HRTF_FILE_FORMAT
            *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsReInt[0][k][bin] ); // Q28
            *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsImInt[0][k][bin] ); // Q28
            *rRealp = Madd_32_16( *rRealp, shVec[k], hrtfShCoeffsReInt[1][k][bin] ); // Q28
            *rImagp = Madd_32_16( *rImagp, shVec[k], hrtfShCoeffsImInt[1][k][bin] ); // Q28
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            *lRealp = Madd_32_32( *lRealp, shVec[k], L_shl( hrtfShCoeffsReInt[0][k][bin], ( Q30 - hHrtfParambin->factor_Q_hrtfShCoeffs_fx ) ) ); // Q28
            *lImagp = Madd_32_32( *lImagp, shVec[k], L_shl( hrtfShCoeffsImInt[0][k][bin], ( Q30 - hHrtfParambin->factor_Q_hrtfShCoeffs_fx ) ) ); // Q28
            *rRealp = Madd_32_32( *rRealp, shVec[k], L_shl( hrtfShCoeffsReInt[1][k][bin], ( Q30 - hHrtfParambin->factor_Q_hrtfShCoeffs_fx ) ) ); // Q28
            *rImagp = Madd_32_32( *rImagp, shVec[k], L_shl( hrtfShCoeffsImInt[1][k][bin], ( Q30 - hHrtfParambin->factor_Q_hrtfShCoeffs_fx ) ) ); // Q28
#else
            *lRealp = Madd_32_16( *lRealp, shVec[k], hrtfShCoeffsRe_fx[0][k][bin] ); // Q28
            *lImagp = Madd_32_16( *lImagp, shVec[k], hrtfShCoeffsIm_fx[0][k][bin] ); // Q28
+2 −2
Original line number Diff line number Diff line
@@ -2676,8 +2676,8 @@ ivas_error ivas_binaural_reverb_open_parambin(
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
        revTimes = t60;
        revEne = ene;
        Copy_Scale_sig_16_32_no_sat( hHrtfParambin->parametricReverberationTimes_fx, t60, CLDFB_NO_CHANNELS_MAX, 16 );
        Copy_Scale_sig_16_32_no_sat( hHrtfParambin->parametricReverberationEneCorrections_fx, ene, CLDFB_NO_CHANNELS_MAX, 16 );
        Copy_Scale_sig_16_32_no_sat( hHrtfParambin->parametricReverberationTimes_fx, t60, CLDFB_NO_CHANNELS_MAX, Q16 + ( Q15 - hHrtfParambin->factor_Q_reverberationTimes_fx ) );
        Copy_Scale_sig_16_32_no_sat( hHrtfParambin->parametricReverberationEneCorrections_fx, ene, CLDFB_NO_CHANNELS_MAX, Q16 + ( Q15 - hHrtfParambin->factor_Q_reverberationEneCorrections_fx ) );
#else
        revTimes = hHrtfParambin->parametricReverberationTimes_fx;        /*Q31*/
        revEne = hHrtfParambin->parametricReverberationEneCorrections_fx; /*Q31*/
+2 −2
Original line number Diff line number Diff line
@@ -46945,14 +46945,14 @@ const Word16 rightBRIRImag_fx[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTA
    }
};
const Word16 FASTCONV_factor_Q_fastconvReverberationTimes_fx = 15;
const Word16 FASTCONV_factor_Q_reverberationTimes_fx = 15;
const Word16 fastconvReverberationTimes_fx[CLDFB_NO_CHANNELS_MAX] = 
{
    13725,    6792,    6652,    6788,    7095,    7735,    7554,    7509,    7471,    7205,    7392,    7237,    7330,    7306,    7327,    7449,    7454,    7331,    7214,    7168,    7223,    7152,    6988,    6892,    6797,    6513,    6431,    6387,    6237,    6046,    5909,    5773,    5784,    5819,    6016,    6420,    6660,    6829,    7034,    7209,    7305,    7550,    7665,    7656,    7744,    7780,    7918,    7901,    7827,    7942,    8102,    8059,    8133,    8041,    7994,    7999,    7828,    7950,    7695,    8292,    
};
const Word16 FASTCONV_factor_Q_fastconvReverberationEneCorrections_fx = 15;
const Word16 FASTCONV_factor_Q_reverberationEneCorrections_fx = 15;
const Word16 fastconvReverberationEneCorrections_fx[CLDFB_NO_CHANNELS_MAX] = 
{
    19,    7,    8,    7,    8,    50,    38,    36,    41,    43,    76,    80,    88,    89,    86,    84,    90,    89,    85,    83,    112,    58,    32,    23,    20,    18,    17,    19,    20,    18,    41,    40,    31,    20,    9,    3,    2,    2,    1,    1,    1,    1,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    
+6 −2
Original line number Diff line number Diff line
@@ -51,8 +51,12 @@ extern const Word16 FASTCONV_factor_Q_FOA_fx;
extern const Word16 FASTCONV_factor_Q_HOA2_fx;
extern const Word16 FASTCONV_factor_Q_HOA3_fx;
extern const Word16 FASTCONV_factor_Q_BRIR_fx;
extern const Word16 FASTCONV_factor_Q_fastconvReverberationTimes_fx;
extern const Word16 FASTCONV_factor_Q_fastconvReverberationEneCorrections_fx;
extern const Word16 FASTCONV_factor_Q_reverberationTimes_fx;
extern const Word16 FASTCONV_factor_Q_reverberationEneCorrections_fx;
extern const Word16 hrtfShCoeffs_factorQ_fx;
extern const Word16 parametricReverberationTimes_factorQ_fx;
extern const Word16 parametricReverberationEneCorrections_factorQ_fx;
extern const Word16 parametricEarlyPartEneCorrection_factorQ_fx;
extern Word16 leftHRIRReal_HOA3_fx[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA];  /* Q29 */
extern Word16 leftHRIRImag_HOA3_fx[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA];  /* Q29 */
extern Word16 rightHRIRReal_HOA3_fx[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA]; /* Q29 */
Loading