Commit 5bd1ef36 authored by emerit's avatar emerit
Browse files

Initial switch between HO3 filters by define for crend only

parent f3b4ed31
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -169,6 +169,12 @@

#define ISSUE_24_CLEANUP_MCT_LFE                        /* Issue 24: Cleanup LFE path withing MCT */ 

#define USE_HRIR_128_METH5_IRC_53_Q10_SYML_ITRP1_48000
#define USE_HRIR_128_48000_DOLBY_SBA1
#define USE_HRIR_128_48000_DOLBY_SBA2
#define USE_HRIR_128_48000_DOLBY_SBA3
//#define USE_ORANGE_HRIR_53_HOA3S_48000
#define USE_IIS_BRIR_OFFICIALMPEG_COMBINED

/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */
+1225 −14

File changed.

Preview size limit exceeded, changes collapsed.

+162 −0
Original line number Diff line number Diff line
@@ -49,6 +49,8 @@
#include "cnst.h"
#include "ivas_cnst.h"

#ifdef USE_HRIR_128_METH5_IRC_53_Q10_SYML_ITRP1_48000


/********************** CRendBin_Combined_HRIR **********************/

@@ -95,6 +97,10 @@ extern float CRendBin_Combined_HRIR_coeff_re_16kHz[15][BINAURAL_CHANNELS][80];
extern float CRendBin_Combined_HRIR_coeff_im_16kHz[15][BINAURAL_CHANNELS][80];
extern float *CRendBin_Combined_HRIR_coeff_diffuse_re_16kHz[BINAURAL_CHANNELS];
extern float *CRendBin_Combined_HRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS];
#endif /* USE_HRIR_128_METH5_IRC_53_Q10_SYML_ITRP1_48000 */

#ifdef USE_ORANGE_HRIR_53_HOA3S_48000


/********************** CRendBin_HOA3_HRIR **********************/

@@ -141,6 +147,160 @@ extern float CRendBin_HOA3_HRIR_coeff_re_16kHz[16][BINAURAL_CHANNELS][160];
extern float CRendBin_HOA3_HRIR_coeff_im_16kHz[16][BINAURAL_CHANNELS][160];
extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_16kHz[BINAURAL_CHANNELS];
extern float *CRendBin_HOA3_HRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS];
#endif /* USE_ORANGE_HRIR_53_HOA3S_48000 */

#ifdef USE_HRIR_128_48000_DOLBY_SBA1


/********************** CRendBin_FOA_HRIR **********************/

extern float CRendBin_FOA_HRIR_latency_s;

/* Sample Rate = 48000 */

extern int16_t CRendBin_FOA_HRIR_max_num_iterations_48kHz;
extern uint16_t CRendBin_FOA_HRIR_num_iterations_48kHz[4][BINAURAL_CHANNELS];
extern uint16_t CRendBin_FOA_HRIR_num_iterations_diffuse_48kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_FOA_HRIR_pIndex_frequency_max_48kHz[4][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_FOA_HRIR_index_frequency_max_diffuse_48kHz;
extern float CRendBin_FOA_HRIR_inv_diffuse_weight_48kHz[4];
extern uint16_t *CRendBin_FOA_HRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS];
extern float CRendBin_FOA_HRIR_coeff_re_48kHz[4][BINAURAL_CHANNELS][240];
extern float CRendBin_FOA_HRIR_coeff_im_48kHz[4][BINAURAL_CHANNELS][240];
extern float *CRendBin_FOA_HRIR_coeff_diffuse_re_48kHz[BINAURAL_CHANNELS];
extern float *CRendBin_FOA_HRIR_coeff_diffuse_im_48kHz[BINAURAL_CHANNELS];

/* Sample Rate = 32000 */

extern int16_t CRendBin_FOA_HRIR_max_num_iterations_32kHz;
extern uint16_t CRendBin_FOA_HRIR_num_iterations_32kHz[4][BINAURAL_CHANNELS];
extern uint16_t CRendBin_FOA_HRIR_num_iterations_diffuse_32kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_FOA_HRIR_pIndex_frequency_max_32kHz[4][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_FOA_HRIR_index_frequency_max_diffuse_32kHz;
extern float CRendBin_FOA_HRIR_inv_diffuse_weight_32kHz[4];
extern uint16_t *CRendBin_FOA_HRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS];
extern float CRendBin_FOA_HRIR_coeff_re_32kHz[4][BINAURAL_CHANNELS][160];
extern float CRendBin_FOA_HRIR_coeff_im_32kHz[4][BINAURAL_CHANNELS][160];
extern float *CRendBin_FOA_HRIR_coeff_diffuse_re_32kHz[BINAURAL_CHANNELS];
extern float *CRendBin_FOA_HRIR_coeff_diffuse_im_32kHz[BINAURAL_CHANNELS];

/* Sample Rate = 16000 */

extern int16_t CRendBin_FOA_HRIR_max_num_iterations_16kHz;
extern uint16_t CRendBin_FOA_HRIR_num_iterations_16kHz[4][BINAURAL_CHANNELS];
extern uint16_t CRendBin_FOA_HRIR_num_iterations_diffuse_16kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_FOA_HRIR_pIndex_frequency_max_16kHz[4][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_FOA_HRIR_index_frequency_max_diffuse_16kHz;
extern float CRendBin_FOA_HRIR_inv_diffuse_weight_16kHz[4];
extern uint16_t *CRendBin_FOA_HRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS];
extern float CRendBin_FOA_HRIR_coeff_re_16kHz[4][BINAURAL_CHANNELS][80];
extern float CRendBin_FOA_HRIR_coeff_im_16kHz[4][BINAURAL_CHANNELS][80];
extern float *CRendBin_FOA_HRIR_coeff_diffuse_re_16kHz[BINAURAL_CHANNELS];
extern float *CRendBin_FOA_HRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS];
#endif /* USE_HRIR_128_48000_DOLBY_SBA1 */

#ifdef USE_HRIR_128_48000_DOLBY_SBA2


/********************** CRendBin_HOA2_HRIR **********************/

extern float CRendBin_HOA2_HRIR_latency_s;

/* Sample Rate = 48000 */

extern int16_t CRendBin_HOA2_HRIR_max_num_iterations_48kHz;
extern uint16_t CRendBin_HOA2_HRIR_num_iterations_48kHz[9][BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA2_HRIR_num_iterations_diffuse_48kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA2_HRIR_pIndex_frequency_max_48kHz[9][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_HOA2_HRIR_index_frequency_max_diffuse_48kHz;
extern float CRendBin_HOA2_HRIR_inv_diffuse_weight_48kHz[9];
extern uint16_t *CRendBin_HOA2_HRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS];
extern float CRendBin_HOA2_HRIR_coeff_re_48kHz[9][BINAURAL_CHANNELS][240];
extern float CRendBin_HOA2_HRIR_coeff_im_48kHz[9][BINAURAL_CHANNELS][240];
extern float *CRendBin_HOA2_HRIR_coeff_diffuse_re_48kHz[BINAURAL_CHANNELS];
extern float *CRendBin_HOA2_HRIR_coeff_diffuse_im_48kHz[BINAURAL_CHANNELS];

/* Sample Rate = 32000 */

extern int16_t CRendBin_HOA2_HRIR_max_num_iterations_32kHz;
extern uint16_t CRendBin_HOA2_HRIR_num_iterations_32kHz[9][BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA2_HRIR_num_iterations_diffuse_32kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA2_HRIR_pIndex_frequency_max_32kHz[9][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_HOA2_HRIR_index_frequency_max_diffuse_32kHz;
extern float CRendBin_HOA2_HRIR_inv_diffuse_weight_32kHz[9];
extern uint16_t *CRendBin_HOA2_HRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS];
extern float CRendBin_HOA2_HRIR_coeff_re_32kHz[9][BINAURAL_CHANNELS][160];
extern float CRendBin_HOA2_HRIR_coeff_im_32kHz[9][BINAURAL_CHANNELS][160];
extern float *CRendBin_HOA2_HRIR_coeff_diffuse_re_32kHz[BINAURAL_CHANNELS];
extern float *CRendBin_HOA2_HRIR_coeff_diffuse_im_32kHz[BINAURAL_CHANNELS];

/* Sample Rate = 16000 */

extern int16_t CRendBin_HOA2_HRIR_max_num_iterations_16kHz;
extern uint16_t CRendBin_HOA2_HRIR_num_iterations_16kHz[9][BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA2_HRIR_num_iterations_diffuse_16kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA2_HRIR_pIndex_frequency_max_16kHz[9][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_HOA2_HRIR_index_frequency_max_diffuse_16kHz;
extern float CRendBin_HOA2_HRIR_inv_diffuse_weight_16kHz[9];
extern uint16_t *CRendBin_HOA2_HRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS];
extern float CRendBin_HOA2_HRIR_coeff_re_16kHz[9][BINAURAL_CHANNELS][80];
extern float CRendBin_HOA2_HRIR_coeff_im_16kHz[9][BINAURAL_CHANNELS][80];
extern float *CRendBin_HOA2_HRIR_coeff_diffuse_re_16kHz[BINAURAL_CHANNELS];
extern float *CRendBin_HOA2_HRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS];
#endif /* USE_HRIR_128_48000_DOLBY_SBA2 */

#ifdef USE_HRIR_128_48000_DOLBY_SBA3


/********************** CRendBin_HOA3_HRIR **********************/

extern float CRendBin_HOA3_HRIR_latency_s;

/* Sample Rate = 48000 */

extern int16_t CRendBin_HOA3_HRIR_max_num_iterations_48kHz;
extern uint16_t CRendBin_HOA3_HRIR_num_iterations_48kHz[16][BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_48kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_48kHz[16][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_48kHz;
extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_48kHz[16];
extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_48kHz[BINAURAL_CHANNELS];
extern float CRendBin_HOA3_HRIR_coeff_re_48kHz[16][BINAURAL_CHANNELS][240];
extern float CRendBin_HOA3_HRIR_coeff_im_48kHz[16][BINAURAL_CHANNELS][240];
extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_48kHz[BINAURAL_CHANNELS];
extern float *CRendBin_HOA3_HRIR_coeff_diffuse_im_48kHz[BINAURAL_CHANNELS];

/* Sample Rate = 32000 */

extern int16_t CRendBin_HOA3_HRIR_max_num_iterations_32kHz;
extern uint16_t CRendBin_HOA3_HRIR_num_iterations_32kHz[16][BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_32kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_32kHz[16][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_32kHz;
extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_32kHz[16];
extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_32kHz[BINAURAL_CHANNELS];
extern float CRendBin_HOA3_HRIR_coeff_re_32kHz[16][BINAURAL_CHANNELS][160];
extern float CRendBin_HOA3_HRIR_coeff_im_32kHz[16][BINAURAL_CHANNELS][160];
extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_32kHz[BINAURAL_CHANNELS];
extern float *CRendBin_HOA3_HRIR_coeff_diffuse_im_32kHz[BINAURAL_CHANNELS];

/* Sample Rate = 16000 */

extern int16_t CRendBin_HOA3_HRIR_max_num_iterations_16kHz;
extern uint16_t CRendBin_HOA3_HRIR_num_iterations_16kHz[16][BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA3_HRIR_num_iterations_diffuse_16kHz[BINAURAL_CHANNELS];
extern uint16_t CRendBin_HOA3_HRIR_pIndex_frequency_max_16kHz[16][BINAURAL_CHANNELS][1];
extern uint16_t CRendBin_HOA3_HRIR_index_frequency_max_diffuse_16kHz;
extern float CRendBin_HOA3_HRIR_inv_diffuse_weight_16kHz[16];
extern uint16_t *CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_16kHz[BINAURAL_CHANNELS];
extern float CRendBin_HOA3_HRIR_coeff_re_16kHz[16][BINAURAL_CHANNELS][80];
extern float CRendBin_HOA3_HRIR_coeff_im_16kHz[16][BINAURAL_CHANNELS][80];
extern float *CRendBin_HOA3_HRIR_coeff_diffuse_re_16kHz[BINAURAL_CHANNELS];
extern float *CRendBin_HOA3_HRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS];
#endif /* USE_HRIR_128_48000_DOLBY_SBA3 */

#ifdef USE_IIS_BRIR_OFFICIALMPEG_COMBINED


/********************** CRendBin_Combined_BRIR **********************/

@@ -187,4 +347,6 @@ extern float CRendBin_Combined_BRIR_coeff_re_16kHz[15][BINAURAL_CHANNELS][1774];
extern float CRendBin_Combined_BRIR_coeff_im_16kHz[15][BINAURAL_CHANNELS][1774];
extern float CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz[BINAURAL_CHANNELS][2522];
extern float CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS][2522];
#endif /* USE_IIS_BRIR_OFFICIALMPEG_COMBINED */

#endif /* _IVAS_ROM_BINAURAL_CREND_HEAD_ */
+42 −0
Original line number Diff line number Diff line
@@ -169,7 +169,9 @@ int main( int argc, char *argv[] )

    char *lib_rend_path = NULL;
    bool no_optim = false;
    bool add_define = false;
    int notEndingWithSeparator = 0;
    char *sofa_name = NULL;

    int i = 1;
    /* Optional arguments */
@@ -194,6 +196,11 @@ int main( int argc, char *argv[] )
            no_optim = true;
            i++;
        }
        else if ( strcmp( to_upper( argv[i] ), "-ADD_DEFINE" ) == 0 )
        {
            add_define = true;
            i++;
        }
        else
        {
            fprintf( stderr, "Unknown option: %s\n\n", argv[i] );
@@ -389,9 +396,44 @@ int main( int argc, char *argv[] )
    int err = 0;
    for ( ; i < argc; i++ )
    {
        if ( add_define )
        {
            fp = fopen( c_file_path, "a" );
            if ( fp )
            {
                sofa_name = strrchr( argv[i], '/' );
                size_t size_path = strlen( sofa_name );
                sofa_name = malloc( sizeof( char ) * size_path - 5 );
                strncpy( sofa_name, strrchr( argv[i], '/' ) + 1, size_path - 5 );
                sofa_name[size_path - 6] = '\0';
                fprintf( fp, "\n#ifdef USE_%s\n", to_upper( sofa_name ) );
                fclose( fp );
            }
            fp = fopen( h_file_path, "a" );
            if ( fp )
            {
                fprintf( fp, "\n#ifdef USE_%s\n", to_upper( sofa_name ) );
                fclose( fp );
            }
        }
        err = generate_crend_ivas_tables_from_sofa( argv[i], no_optim );
        if ( err != 0 )
            return err;
        if ( add_define )
        {
            fp = fopen( c_file_path, "a" );
            if ( fp )
            {
                fprintf( fp, "\n#endif /* USE_%s */\n", to_upper( sofa_name ) );
                fclose( fp );
            }
            fp = fopen( h_file_path, "a" );
            if ( fp )
            {
                fprintf( fp, "\n#endif /* USE_%s */\n", to_upper( sofa_name ) );
                fclose( fp );
            }
        }
    }
    fp = fopen( h_file_path, "a" );
    if ( fp )