Commit 43b671c4 authored by emerit's avatar emerit
Browse files

several fixs crend ok, tdrend almost

parent 435120d1
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -108,10 +108,12 @@
#define NONBE_FIX_1220_OMASA_JBM_EXT_USAN               /* Nokia: fix issue 1220 OMASA EXT JBM USAN, also fix similar cases of free to avoid future problems */
#define NONBE_FIX_1376_MDCT_CONCEALMENT                 /* FhG: fix concealment artifact in MDCT Stereo with DTX, in case transition frame gets lost */
#define FIX_989_TD_REND_ROM                             /* Eri: Clean-up for TD renderer and completion of ROM generation tool */
//#define FIX_CREND_SIMPLIFY_CODE   
#define FIX_CREND_SIMPLIFY_CODE   
#ifdef FIX_CREND_SIMPLIFY_CODE
#define FIX_989_TD_REND_ROM                             /* Eri: Clean-up for TD renderer and completion of ROM generation tool */
#define USE_CREND_16BIT_ROM
#define USE_REVERB_16BIT_ROM
#define USE_TDREND_16BIT_ROM
// #define USE_FASTCONV_PARAMBIN_16BIT_ROM
// #define USE_PARAMBIN_16BIT_ROM
// #define USE_TDREND_16BIT_ROM
+21 −21
Original line number Diff line number Diff line
@@ -351,7 +351,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_Combined_BRIR_coeff_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_48kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -365,7 +365,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_Combined_HRIR_coeff_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_48kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -408,7 +408,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_Combined_BRIR_coeff_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_32kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -422,7 +422,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_Combined_HRIR_coeff_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_32kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -465,8 +465,8 @@ static ivas_error ivas_rend_initCrend_fx(
                    hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_16kHz;
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_BRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_Combined_BRIR_coeff_Q_32kHz_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_BRIR_inv_diffuse_weight_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_BRIR_coeff_Q_16kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -480,7 +480,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_Combined_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_Combined_HRIR_inv_diffuse_weight_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_Combined_HRIR_coeff_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_Combined_HRIR_coeff_Q_16kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -649,7 +649,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_HOA3_HRIR_coeff_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_48kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -696,7 +696,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_HOA3_HRIR_coeff_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_32kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -747,7 +747,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_HOA3_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA3_HRIR_inv_diffuse_weight_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_HOA3_HRIR_coeff_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA3_HRIR_coeff_Q_16kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -803,7 +803,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_HOA2_HRIR_coeff_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_48kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -851,7 +851,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_HOA2_HRIR_coeff_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_32kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -899,7 +899,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_HOA2_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_HOA2_HRIR_inv_diffuse_weight_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_HOA2_HRIR_coeff_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_HOA2_HRIR_coeff_Q_16kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -955,7 +955,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_FOA_HRIR_coeff_Q_48kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_48kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -1002,7 +1002,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_FOA_HRIR_coeff_Q_32kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_32kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -1049,7 +1049,7 @@ static ivas_error ivas_rend_initCrend_fx(
#ifdef FIX_CREND_SIMPLIFY_CODE
                    hHrtf->factor_Q_latency_s_fx = CRendBin_FOA_HRIR_Q_latency_s_fx;
                    hHrtf->factor_Q_inv_diffuse_weight = CRendBin_FOA_HRIR_inv_diffuse_weight_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = CRendBin_FOA_HRIR_coeff_Q_16kHz_fx;
                    hHrtf->factor_Q_pOut_to_bin = Q15 - CRendBin_FOA_HRIR_coeff_Q_16kHz_fx;
                    move16();
                    move16();
                    move16();
@@ -2374,8 +2374,8 @@ static ivas_error ivas_rend_crendConvolver(

                    FOR( k = 0; k < pCrend->hHrtfCrend->pIndex_frequency_max[i][j][m]; k++ )
                    {
                        tmp_out_re[k] = L_add( tmp_out_re[k], W_sat_m( W_msu_32_16( W_mult_32_16( pFreq_buf_re[k], pFreq_filt_re[k] ), pFreq_buf_im[k], pFreq_filt_im[k] ) ) );
                        tmp_out_im[k] = L_add( tmp_out_im[k], W_sat_m( W_mac_32_16( W_mult_32_16( pFreq_buf_re[k], pFreq_filt_im[k] ), pFreq_buf_im[k], pFreq_filt_re[k] ) ) );
                        tmp_out_re[k] = L_add( tmp_out_re[k], Msub_32_16( Mpy_32_16_r( pFreq_buf_re[k], pFreq_filt_re[k] ), pFreq_buf_im[k], pFreq_filt_im[k] ) );
                        tmp_out_im[k] = L_add( tmp_out_im[k], Madd_32_16( Mpy_32_16_r( pFreq_buf_re[k], pFreq_filt_im[k] ), pFreq_buf_im[k], pFreq_filt_re[k] ) );
                    }
                    offset = L_add( offset, k );
                    move32();
@@ -2406,8 +2406,8 @@ static ivas_error ivas_rend_crendConvolver(

            FOR( k = 0; k < pCrend->hHrtfCrend->pIndex_frequency_max_diffuse[j][m]; k++ )
            {
                tmp_out_re[k] = L_add( tmp_out_re[k], W_sat_m( W_msu_32_16( W_mult_32_16( pFreq_buf_re[k], pFreq_filt_re[k] ), pFreq_buf_im[k], pFreq_filt_im[k] ) ) );
                tmp_out_im[k] = L_add( tmp_out_im[k], W_sat_m( W_mac_32_16( W_mult_32_16( pFreq_buf_re[k], pFreq_filt_im[k] ), pFreq_buf_im[k], pFreq_filt_re[k] ) ) );
                tmp_out_re[k] = L_add( tmp_out_re[k], Msub_32_16( Mpy_32_16_r( pFreq_buf_re[k], pFreq_filt_re[k] ), pFreq_buf_im[k], pFreq_filt_im[k] ) );
                tmp_out_im[k] = L_add( tmp_out_im[k], Madd_32_16( Mpy_32_16_r( pFreq_buf_re[k], pFreq_filt_im[k] ), pFreq_buf_im[k], pFreq_filt_re[k] ) );
            }
            offset = L_add( offset, k );
        }
@@ -2417,7 +2417,7 @@ static ivas_error ivas_rend_crendConvolver(
        pFreq_buf_re = &pcm_out[j][L_mult0( i_ts, subframe_length )];
        FOR( k = 0; k < subframe_length; k++ )
        {
            pFreq_buf_re[k] = L_shl( L_add( pOut[k], hCrend->prev_out_buffer_fx[j][k] ), Q15 - pCrend->hHrtfCrend->factor_Q_pOut_to_bin );
            pFreq_buf_re[k] = L_shl( L_add( pOut[k], hCrend->prev_out_buffer_fx[j][k] ), pCrend->hHrtfCrend->factor_Q_pOut_to_bin );
            hCrend->prev_out_buffer_fx[j][k] = pOut[k + subframe_length];
        }
    }
+3 −3
Original line number Diff line number Diff line
@@ -476,7 +476,7 @@ ivas_error ivas_HRTF_statistics_init(
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" );
            }
#ifdef FIX_CREND_SIMPLIFY_CODE
#ifdef USE_REVERB_16BIT_ROM
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_left_avg_power_48kHz_fx, HrtfStatistics->average_energy_l_dyn, LR_IAC_LENGTH_NR_FC, Q28 - defaultHRIR_Q_48kHz_fx );  /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_right_avg_power_48kHz_fx, HrtfStatistics->average_energy_r_dyn, LR_IAC_LENGTH_NR_FC, Q28 - defaultHRIR_Q_48kHz_fx ); /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_coherence_48kHz_fx, HrtfStatistics->inter_aural_coherence_dyn, LR_IAC_LENGTH_NR_FC, Q26 - defaultHRIR_Q_48kHz_fx );  /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
@@ -505,7 +505,7 @@ ivas_error ivas_HRTF_statistics_init(
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" );
            }
#ifdef FIX_CREND_SIMPLIFY_CODE
#ifdef USE_REVERB_16BIT_ROM
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_left_avg_power_32kHz_fx, HrtfStatistics->average_energy_l_dyn, LR_IAC_LENGTH_NR_FC, Q28 - defaultHRIR_Q_32kHz_fx );  /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_right_avg_power_32kHz_fx, HrtfStatistics->average_energy_r_dyn, LR_IAC_LENGTH_NR_FC, Q28 - defaultHRIR_Q_32kHz_fx ); /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_coherence_32kHz_fx, HrtfStatistics->inter_aural_coherence_dyn, LR_IAC_LENGTH_NR_FC, Q26 - defaultHRIR_Q_32kHz_fx );  /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
@@ -534,7 +534,7 @@ ivas_error ivas_HRTF_statistics_init(
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for hrtf data" );
            }
#ifdef FIX_CREND_SIMPLIFY_CODE
#ifdef USE_REVERB_16BIT_ROM
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_left_avg_power_16kHz_fx, HrtfStatistics->average_energy_l_dyn, LR_IAC_LENGTH_NR_FC_16KHZ, Q28 - defaultHRIR_Q_16kHz_fx );  /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_right_avg_power_16kHz_fx, HrtfStatistics->average_energy_r_dyn, LR_IAC_LENGTH_NR_FC_16KHZ, Q28 - defaultHRIR_Q_16kHz_fx ); /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
            Copy_Scale_sig_16_32_no_sat( defaultHRIR_coherence_16kHz_fx, HrtfStatistics->inter_aural_coherence_dyn, LR_IAC_LENGTH_NR_FC_16KHZ, Q26 - defaultHRIR_Q_16kHz_fx );  /* tables from which lr_energy_and_iac is updated has Q27 for i=2 */
+205 −21

File changed.

Preview size limit exceeded, changes collapsed.

+19 −1
Original line number Diff line number Diff line
@@ -325,7 +325,7 @@ extern const Word16 CRendBin_Combined_BRIR_coeff_im_16kHz_fx[HRTF_LS_CHANNELS][B
extern Word16 CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz_fx[BINAURAL_CHANNELS][2474];
extern Word16 CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz_fx[BINAURAL_CHANNELS][2474];


#ifdef USE_REVERB_16BIT_ROM
/********************** default HRIR reverb rom tables **********************/


@@ -349,6 +349,24 @@ extern const Word16 defaultHRIR_Q_16kHz_fx;
extern const Word16 defaultHRIR_coherence_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ];
extern const Word16 defaultHRIR_left_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ];
extern const Word16 defaultHRIR_right_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ];
#else
extern const Word16 defaultHRIR_Q_48kHz_fx;
extern  float defaultHRIR_coherence_48kHz_fx[LR_IAC_LENGTH_NR_FC];       /*Q-27*/
extern  float defaultHRIR_left_avg_power_48kHz_fx[LR_IAC_LENGTH_NR_FC];  /*Q-23*/
extern  float defaultHRIR_right_avg_power_48kHz_fx[LR_IAC_LENGTH_NR_FC]; /*Q-23*/

extern const Word16 defaultHRIR_Q_32kHz_fx;
extern  float defaultHRIR_coherence_32kHz_fx[LR_IAC_LENGTH_NR_FC];       /*Q-27*/
extern  float defaultHRIR_left_avg_power_32kHz_fx[LR_IAC_LENGTH_NR_FC];  /*Q-23*/
extern  float defaultHRIR_right_avg_power_32kHz_fx[LR_IAC_LENGTH_NR_FC]; /*Q-23*/

extern const Word16 defaultHRIR_Q_16kHz_fx;
extern   float defaultHRIR_coherence_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ];       /*Q-27*/
extern   float defaultHRIR_left_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ];  /*Q-23*/
extern   float defaultHRIR_right_avg_power_16kHz_fx[LR_IAC_LENGTH_NR_FC_16KHZ]; /*Q-23*/

#endif


#else /* USE_CREND_16BIT_ROM */

Loading