Commit 3bdd0019 authored by multrus's avatar multrus
Browse files

[cleanup] accept FIX_1123_CREND_16BIT_FMT

parent e113a15b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -170,7 +170,6 @@
#define TMP_FIX_1119_SPLIT_RENDERING_VOIP               /* FhG: Add error check for unsupported config: split rendering with VoIP mode */

#define FIX_POINT_ROM_CONST                             /* Ora: issue #1150 HRTF ROM tables should be defined as 'const'*/
#define FIX_1123_CREND_16BIT_FMT                        /* Ora: update CREND binary file format to 16 bit */
#define FIX_1123_CREND_FLTFX_BE                         /* Ora: make CREND FLT ROM tables BE to FX file */
#define FIX_1123_FASTCONV_16BIT_FMT                     /* FhG: issue 1123: update FastConv binary file format and scripts to 16 bit */
#define FIX_RETURN                                      /* VA: fix location of function returns */
+0 −20
Original line number Diff line number Diff line
@@ -1268,13 +1268,8 @@ static ivas_error create_HRTF_from_rawdata(

            for ( k = 0; k < ( *hHRTF )->num_iterations[i][j]; k++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int16_t );
                Word16 *ptW = (Word16 *) hrtf_data_rptr;
#else
                mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int32_t );
                Word32 *ptW = (Word32 *) hrtf_data_rptr;
#endif
                for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max[i][j][k]; l++ )
                {
                    pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ );
@@ -1313,13 +1308,8 @@ static ivas_error create_HRTF_from_rawdata(
#endif
            for ( k = 0; k < ( *hHRTF )->num_iterations[i][j]; k++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int16_t );
                Word16 *ptW = (Word16 *) hrtf_data_rptr;
#else
                mem_size = ( *hHRTF )->pIndex_frequency_max[i][j][k] * sizeof( int32_t );
                Word32 *ptW = (Word32 *) hrtf_data_rptr;
#endif
                for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max[i][j][k]; l++ )
                {
                    pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ );
@@ -1365,13 +1355,8 @@ static ivas_error create_HRTF_from_rawdata(

            for ( k = 0; k < ( *hHRTF )->num_iterations_diffuse[j]; k++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int16_t );
                Word16 *ptW = (Word16 *) hrtf_data_rptr;
#else
                mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int32_t );
                Word32 *ptW = (Word32 *) hrtf_data_rptr;
#endif
                for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max_diffuse[j][k]; l++ )
                {
                    pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ );
@@ -1407,13 +1392,8 @@ static ivas_error create_HRTF_from_rawdata(
#endif
            for ( k = 0; k < ( *hHRTF )->num_iterations_diffuse[j]; k++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int16_t );
                Word16 *ptW = (Word16 *) hrtf_data_rptr;
#else
                mem_size = ( *hHRTF )->pIndex_frequency_max_diffuse[j][k] * sizeof( int32_t );
                Word32 *ptW = (Word32 *) hrtf_data_rptr;
#endif
                for ( l = 0; l < ( *hHRTF )->pIndex_frequency_max_diffuse[j][k]; l++ )
                {
                    pOut_to_bin_wptr[l] = ptW[l] * powf( 2.f, -1.f * factorQ );
+0 −8
Original line number Diff line number Diff line
@@ -1743,11 +1743,7 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr
        {
            for ( iIter = 0; iIter < hrtf_table_ptrs->num_iterations[iIR * BINAURAL_CHANNELS + iChan]; iIter++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max[iIndex++] * sizeof( int16_t ); // 2* : re & im
#else
                hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max[iIndex++] * sizeof( int32_t ); // 2* : re & im
#endif
            }
        }
    }
@@ -1760,11 +1756,7 @@ int32_t compute_crend_hrtf_data_size( crend_hrtf_tables_pointers *hrtf_table_ptr
        {
            for ( iIter = 0; iIter < hrtf_table_ptrs->num_iterations_diffuse[iChan]; iIter++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max_diffuse[iIndex++] * sizeof( int16_t ); // 2* : re & im
#else
                hrtf_data_size += 2 * hrtf_table_ptrs->pIndex_frequency_max_diffuse[iIndex++] * sizeof( int32_t ); // 2* : re & im
#endif
            }
        }
    }
+2 −77
Original line number Diff line number Diff line
@@ -1300,7 +1300,7 @@ int generate_crend_ivas_tables_from_sofa( const char *file_path, ConfigReader *c
#endif
        }

#if defined( FIX_1123_CREND_16BIT_FMT ) && !defined( FIX_1123_CREND_FLTFX_BE )
#if !defined( FIX_1123_CREND_FLTFX_BE )
        int16_t factorQ[3];
        make_fx_be( &hrtf_data, lscfg, sample_rates[indSR], frame_len, factorQ );
#endif
@@ -1888,7 +1888,7 @@ int generate_reverb_ivas_tables_from_sofa( const char *file_path )
            update_c_file_with_reverb( p_avg_lr, &p_avg_lr[nr_fc_fft_filter], pCoherence, sample_rates[indSR], nr_fc_fft_filter );
#endif
        }
#if defined( FIX_1123_CREND_16BIT_FMT ) && !defined( FIX_1123_CREND_FLTFX_BE )
#if !defined( FIX_1123_CREND_FLTFX_BE )
        make_reverb_fx_be( p_avg_lr, &p_avg_lr[nr_fc_fft_filter], pCoherence, sample_rates[indSR], &factorQ );
        for ( i = 0; i < nr_fc_fft_filter; i++ )
        {
@@ -2737,11 +2737,7 @@ uint32_t compute_binary_size( HRTFS_DATA *hrtf, crend_hrtf_tables_dimensions *hr
        {
            for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                hrtf_data_size += 2 * hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t ); // 2* : re & im
#else
                hrtf_data_size += 2 * hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t ); // 2* : re & im
#endif
            }
        }
    }
@@ -2754,11 +2750,7 @@ uint32_t compute_binary_size( HRTFS_DATA *hrtf, crend_hrtf_tables_dimensions *hr
        {
            for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                hrtf_data_size += 2 * hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t ); // 2* : re & im
#else
                hrtf_data_size += 2 * hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t ); // 2* : re & im
#endif
            }
        }
    }
@@ -2936,27 +2928,16 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const

    if ( maxVal > 0 )
    {
#ifdef FIX_1123_CREND_16BIT_FMT
        factorQ[2] = (int16_t) floorf( 15.f - logf( maxVal ) / logf( 2.f ) );
#else
        factorQ[2] = (int16_t) floorf( 31.f - logf( maxVal ) / logf( 2.f ) );
#endif
    }
    else
    {
        factorQ[2] = 0;
    }
#ifdef FIX_1123_CREND_16BIT_FMT
    if ( factorQ[2] > 15 )
    {
        factorQ[2] = 15;
    }
#else
    if ( factorQ[2] > 31 )
    {
        factorQ[2] = 31;
    }
#endif

    // pOut_to_bin_re_dyn (The size depends on pIndex_frequency_max_dyn)
    for ( iIR = 0; iIR < hrtf->max_num_ir; iIR++ )
@@ -2970,13 +2951,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const
                for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ )
                {
                    tmp = coeff_rptr[iTap];
#ifdef FIX_1123_CREND_16BIT_FMT
                    tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] );
                    coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] );
#else
                    tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] );
                    coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] );
#endif
                    diff = fabsf( tmp - coeff_rptr[iTap] );
                    if ( maxDiff < diff )
                    {
@@ -2999,13 +2975,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const
                for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ )
                {
                    tmp = coeff_rptr[iTap];
#ifdef FIX_1123_CREND_16BIT_FMT
                    tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] );
                    coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] );
#else
                    tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] );
                    coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] );
#endif
                    diff = fabsf( tmp - coeff_rptr[iTap] );
                    if ( maxDiff < diff )
                    {
@@ -3030,13 +3001,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const
                for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ )
                {
                    tmp = coeff_rptr[iTap];
#ifdef FIX_1123_CREND_16BIT_FMT
                    tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] );
                    coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] );
#else
                    tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] );
                    coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] );
#endif
                    diff = fabsf( tmp - coeff_rptr[iTap] );
                    if ( maxDiff < diff )
                    {
@@ -3057,13 +3023,8 @@ ivas_error make_fx_be( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const
                for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ )
                {
                    tmp = coeff_rptr[iTap];
#ifdef FIX_1123_CREND_16BIT_FMT
                    tmp16 = float2int16_t( coeff_rptr[iTap], factorQ[2] );
                    coeff_rptr[iTap] = (float) tmp16 * powf( 2.f, -1.f * (float) factorQ[2] );
#else
                    tmp32 = float2int32_t( coeff_rptr[iTap], factorQ[2] );
                    coeff_rptr[iTap] = (float) tmp32 * powf( 2.f, -1.f * (float) factorQ[2] );
#endif
                    diff = fabsf( tmp - coeff_rptr[iTap] );
                    if ( maxDiff < diff )
                    {
@@ -3242,22 +3203,13 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg,
            coeff_rptr = hrtf->pOut_to_bin_re_dyn[iIR][iChan];
            for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t );
#else
                data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t );
#endif
                // memcpy( hrtf_bin_wptr, coeff_rptr, data_size_tmp );
                for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ )
                {
                    tmp = coeff_rptr[iTap];
#ifdef FIX_1123_CREND_16BIT_FMT
                    ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] );
                    tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] );
#else
                    ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] );
                    tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] );
#endif
                    diff = fabsf( tmp - tmp2 );
                    if ( maxDiff < diff )
                    {
@@ -3278,21 +3230,12 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg,
            coeff_rptr = hrtf->pOut_to_bin_im_dyn[iIR][iChan];
            for ( iIter = 0; iIter < hrtf->num_iterations[iIR][iChan]; iIter++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int16_t );
#else
                data_size_tmp = hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter] * sizeof( int32_t );
#endif
                for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_dyn[iIR][iChan][iIter]; iTap++ )
                {
                    tmp = coeff_rptr[iTap];
#ifdef FIX_1123_CREND_16BIT_FMT
                    ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] );
                    tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] );
#else
                    ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] );
                    tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] );
#endif
                    diff = fabsf( tmp - tmp2 );
                    if ( maxDiff < diff )
                    {
@@ -3316,22 +3259,13 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg,
            coeff_rptr = hrtf->pOut_to_bin_diffuse_re_dyn[iChan];
            for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t );
#else
                data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t );
#endif
                // memcpy( hrtf_bin_wptr, coeff_rptr, data_size_tmp );
                for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ )
                {
                    tmp = coeff_rptr[iTap];
#ifdef FIX_1123_CREND_16BIT_FMT
                    ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] );
                    tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] );
#else
                    ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] );
                    tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] );
#endif
                    diff = fabsf( tmp - tmp2 );
                    if ( maxDiff < diff )
                    {
@@ -3349,21 +3283,12 @@ ivas_error write_binary_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg,
            coeff_rptr = hrtf->pOut_to_bin_diffuse_im_dyn[iChan];
            for ( iIter = 0; iIter < hrtf->num_iterations_diffuse[iChan]; iIter++ )
            {
#ifdef FIX_1123_CREND_16BIT_FMT
                data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int16_t );
#else
                data_size_tmp = hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter] * sizeof( int32_t );
#endif
                for ( iTap = 0; iTap < hrtf->pIndex_frequency_max_diffuse_dyn[iChan][iIter]; iTap++ )
                {
                    tmp = coeff_rptr[iTap];
#ifdef FIX_1123_CREND_16BIT_FMT
                    ( (int16_t *) hrtf_bin_wptr )[iTap] = float2int16_t( coeff_rptr[iTap], factorQ[2] );
                    tmp2 = ( (float) ( ( (int16_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] );
#else
                    ( (int32_t *) hrtf_bin_wptr )[iTap] = float2int32_t( coeff_rptr[iTap], factorQ[2] );
                    tmp2 = ( (float) ( ( (int32_t *) hrtf_bin_wptr )[iTap] ) ) * powf( 2.f, -1.f * (float) factorQ[2] );
#endif
                    diff = fabsf( tmp - tmp2 );
                    if ( maxDiff < diff )
                    {