From b351bb02e3771c0e81996237f8948cabfa1368a4 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:04:01 +0200 Subject: [PATCH 01/42] [cleanup] accept FIX_705_REND_CONF_FALSE_WARNING --- lib_com/options.h | 1 - lib_util/render_config_reader.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 195cd6512e..6a04b03c11 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -159,7 +159,6 @@ #define FIX_712_713_SPLIT_REND_MASA_MC /*Dlb : Fix for issue 712 and 713*/ #endif -#define FIX_705_REND_CONF_FALSE_WARNING /* Eri: Bug in MSVC ftell() for UNIX-style line endings trigger false warning messages in renderer configuration. */ #define IGF_MEMORY_ALLOC_OPT /* FhG: Issue 157: allocate IGF encoder structure only when needed */ #define FIX_732_PLANAR_SBA_OSBA /* Dlb : issue 732: fix for crash in planar mode in OSBA format*/ diff --git a/lib_util/render_config_reader.c b/lib_util/render_config_reader.c index e4b35451e0..48ba46bca0 100644 --- a/lib_util/render_config_reader.c +++ b/lib_util/render_config_reader.c @@ -1857,9 +1857,7 @@ ivas_error RenderConfigReader_read( pTemp = (char *) calloc( file_size + 1, sizeof( char ) ); acIdx = 0; roomAcHasFgCount = roomAcHasAcEnvCount = FALSE; -#ifdef FIX_705_REND_CONF_FALSE_WARNING setvbuf( pRenderConfigReader->pConfigFile, pConfig_str, _IONBF, sizeof( char ) ); /* Work-around for VS bug that gives incorrect ftell for UNIX-style line endings */ -#endif /* read file line by line */ while ( fgets( pConfig_str, file_size, pRenderConfigReader->pConfigFile ) != NULL ) -- GitLab From 7a5b79f8324aff8ec09c7484fb29981fe20b0511 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:33:47 +0200 Subject: [PATCH 02/42] [cleanup] accept IGF_MEMORY_ALLOC_OPT --- lib_com/options.h | 1 - lib_com/prot.h | 4 ---- lib_enc/cod_tcx.c | 13 ------------- lib_enc/ext_sig_ana.c | 4 ---- lib_enc/igf_enc.c | 2 -- lib_enc/init_enc.c | 20 -------------------- lib_enc/ivas_corecoder_enc_reconfig.c | 22 ---------------------- lib_enc/ivas_cpe_enc.c | 6 ------ lib_enc/ivas_ism_enc.c | 4 ---- lib_enc/ivas_mct_enc.c | 25 ------------------------- lib_enc/ivas_sce_enc.c | 6 ------ lib_enc/ivas_spar_encoder.c | 4 ---- 12 files changed, 111 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 6a04b03c11..ba3c30f89a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -160,7 +160,6 @@ #endif -#define IGF_MEMORY_ALLOC_OPT /* FhG: Issue 157: allocate IGF encoder structure only when needed */ #define FIX_732_PLANAR_SBA_OSBA /* Dlb : issue 732: fix for crash in planar mode in OSBA format*/ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ diff --git a/lib_com/prot.h b/lib_com/prot.h index aa1e53e195..30274b8fea 100644 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -2272,10 +2272,8 @@ ivas_error init_encoder( const int16_t interval_SID, /* i : interval for SID update */ const int16_t vad_only_flag, /* i : flag to indicate front-VAD structure */ const ISM_MODE ism_mode /* i : ISM mode */ -#ifdef IGF_MEMORY_ALLOC_OPT , const int32_t element_brate /* element bitrate */ -#endif ); void LPDmem_enc_init( @@ -9873,7 +9871,6 @@ void IGFEncResetTCX10BitCounter( const IGF_ENC_INSTANCE_HANDLE hIGFEnc /* i : instance handle of IGF Encoder */ ); -#ifdef IGF_MEMORY_ALLOC_OPT ivas_error IGF_Reconfig( IGF_ENC_INSTANCE_HANDLE *hIGFEnc, /* i/o: instance handle of IGF Encoder */ const int16_t igf, /* i : IGF on/off */ @@ -9883,7 +9880,6 @@ ivas_error IGF_Reconfig( const int16_t element_mode, /* i : IVAS element mode */ const int16_t rf_mode /* i : flag to signal the RF mode */ ); -#endif void IGFEncSetMode( const IGF_ENC_INSTANCE_HANDLE hIGFEnc, /* i : instance handle of IGF Encoder */ diff --git a/lib_enc/cod_tcx.c b/lib_enc/cod_tcx.c index 9fb184e247..abaa0a0a8c 100755 --- a/lib_enc/cod_tcx.c +++ b/lib_enc/cod_tcx.c @@ -1197,15 +1197,8 @@ void QuantizeTCXSpectrum( { noiseFillingBorder = st->hIGFEnc->infoStartLine; } -#ifndef IGF_MEMORY_ALLOC_OPT - else - { - st->hIGFEnc->infoStopLine = noiseFillingBorder; - } -#endif *pnoiseFillingBorder = noiseFillingBorder; -#ifdef IGF_MEMORY_ALLOC_OPT if ( st->igf ) { for ( i = st->hIGFEnc->infoStopLine; i < max( L_frame, L_frameTCX ); i++ ) @@ -1220,12 +1213,6 @@ void QuantizeTCXSpectrum( spectrum[i] = 0.0f; } } -#else - for ( i = st->hIGFEnc->infoStopLine; i < max( L_frame, L_frameTCX ); i++ ) - { - spectrum[i] = 0.0f; - } -#endif /*-----------------------------------------------------------* * Quantization * diff --git a/lib_enc/ext_sig_ana.c b/lib_enc/ext_sig_ana.c index 6fc061fa1b..16f0b1732a 100755 --- a/lib_enc/ext_sig_ana.c +++ b/lib_enc/ext_sig_ana.c @@ -200,11 +200,7 @@ void core_signal_analysis_high_bitrate( overlap_mode[2] = curr_overlap; /* Overlap between the current and the next frame */ } -#ifdef IGF_MEMORY_ALLOC_OPT if ( st->igf && transform_type[0] != TCX_20 ) -#else - if ( transform_type[0] != TCX_20 ) -#endif { IGFEncResetTCX10BitCounter( st->hIGFEnc ); } diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c index 1beddd01a8..93306733c2 100644 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -2007,7 +2007,6 @@ void IGFSaveSpectrumForITF( } -#ifdef IGF_MEMORY_ALLOC_OPT ivas_error IGF_Reconfig( IGF_ENC_INSTANCE_HANDLE *hIGFEnc, /* i/o: instance handle of IGF Encoder */ const int16_t igf, /* i : IGF on/off */ @@ -2042,4 +2041,3 @@ ivas_error IGF_Reconfig( return error; } -#endif diff --git a/lib_enc/init_enc.c b/lib_enc/init_enc.c index ccbcf00dce..e22216d1c4 100644 --- a/lib_enc/init_enc.c +++ b/lib_enc/init_enc.c @@ -61,17 +61,13 @@ ivas_error init_encoder( const int16_t interval_SID, /* i : interval for SID update */ const int16_t vad_only_flag, /* i : flag to indicate front-VAD structure */ const ISM_MODE ism_mode /* i : ISM mode */ -#ifdef IGF_MEMORY_ALLOC_OPT , const int32_t element_brate /* i : element bitrate */ -#endif ) { int16_t i; ivas_error error; -#ifdef IGF_MEMORY_ALLOC_OPT int32_t igf_brate; -#endif error = IVAS_ERR_OK; @@ -752,7 +748,6 @@ ivas_error init_encoder( * IGF *-----------------------------------------------------------------*/ -#ifdef IGF_MEMORY_ALLOC_OPT igf_brate = st->total_brate; if ( st->element_mode == IVAS_SCE && ( st_ivas->hEncoderConfig->ivas_format == ISM_FORMAT || st_ivas->hEncoderConfig->ivas_format == MASA_ISM_FORMAT ) ) { @@ -794,13 +789,8 @@ ivas_error init_encoder( { st->igf = 0; } -#endif -#ifdef IGF_MEMORY_ALLOC_OPT if ( ( idchan == 0 || st->element_mode == IVAS_CPE_MDCT ) && ( st->igf || st->element_mode == EVS_MONO ) ) -#else - if ( ( idchan == 0 || st->element_mode == IVAS_CPE_MDCT ) ) -#endif { if ( ( st->hIGFEnc = (IGF_ENC_INSTANCE_HANDLE) malloc( sizeof( IGF_ENC_INSTANCE ) ) ) == NULL ) { @@ -818,16 +808,6 @@ ivas_error init_encoder( st->last_sr_core = st->last_L_frame * FRAMES_PER_SEC; -#ifndef IGF_MEMORY_ALLOC_OPT - if ( st->codec_mode == MODE2 || st->element_mode > EVS_MONO ) - { - st->igf = getIgfPresent( st->element_mode, st->total_brate, st->bwidth, st->rf_mode ); - } - else - { - st->igf = 0; - } -#endif /* PLC encoder */ if ( st->element_mode == EVS_MONO ) diff --git a/lib_enc/ivas_corecoder_enc_reconfig.c b/lib_enc/ivas_corecoder_enc_reconfig.c index 5d13ee6e4c..831d58e4d9 100644 --- a/lib_enc/ivas_corecoder_enc_reconfig.c +++ b/lib_enc/ivas_corecoder_enc_reconfig.c @@ -451,21 +451,10 @@ ivas_error ivas_corecoder_enc_reconfig( st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); -#ifdef IGF_MEMORY_ALLOC_OPT if ( ( error = IGF_Reconfig( &st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, st_ivas->hCPE[0]->hCoreCoder[n]->igf, 1, st_ivas->hCPE[0]->element_brate, st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( st_ivas->hCPE[0]->hCoreCoder[n]->igf ) - { - IGFEncSetMode( st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, - st_ivas->hCPE[0]->element_brate, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); - } -#endif } } @@ -542,21 +531,10 @@ ivas_error ivas_corecoder_enc_reconfig( st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); -#ifdef IGF_MEMORY_ALLOC_OPT if ( ( error = IGF_Reconfig( &st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, st_ivas->hCPE[0]->hCoreCoder[n]->igf, 1, st_ivas->hCPE[0]->element_brate, st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( st_ivas->hCPE[0]->hCoreCoder[n]->igf ) - { - IGFEncSetMode( st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, - st_ivas->hCPE[0]->element_brate, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); - } -#endif /* reset mct_chan_mode */ st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode = MCT_CHAN_MODE_REGULAR; diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 9f21dec4ce..8eb0da7b47 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -518,7 +518,6 @@ ivas_error ivas_cpe_enc( * Core codec configuration *----------------------------------------------------------------*/ -#ifdef IGF_MEMORY_ALLOC_OPT /* IGF reconfiguration */ for ( n = 0; n < n_CoreChannels; n++ ) { @@ -532,7 +531,6 @@ ivas_error ivas_cpe_enc( } } } -#endif if ( hCPE->element_mode == IVAS_CPE_MDCT && st_ivas->hMCT == NULL ) { @@ -920,11 +918,7 @@ ivas_error create_cpe_enc( st->total_brate = hCPE->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ st->mct_chan_mode = MCT_CHAN_MODE_REGULAR; -#ifdef IGF_MEMORY_ALLOC_OPT if ( ( error = init_encoder( st, st_ivas, n, hEncoderConfig->var_SID_rate_flag, hEncoderConfig->interval_SID, 0, ISM_MODE_NONE, hCPE->element_brate ) ) != IVAS_ERR_OK ) -#else - if ( ( error = init_encoder( st, st_ivas, n, hEncoderConfig->var_SID_rate_flag, hEncoderConfig->interval_SID, 0, ISM_MODE_NONE ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index ec224f24bc..03167e90f7 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -349,7 +349,6 @@ ivas_error ivas_ism_enc( * Core codec configuration *----------------------------------------------------------------*/ -#ifdef IGF_MEMORY_ALLOC_OPT /* IGF reconfiguration */ if ( hSCE->last_element_brate != hSCE->element_brate || st->last_bwidth != st->bwidth ) { @@ -360,7 +359,6 @@ ivas_error ivas_ism_enc( return error; } } -#endif /* set ACELP@12k8 / ACELP@16k flag for flexible ACELP core */ if ( st->core_brate == SID_2k40 || st->core_brate == FRAME_NO_DATA ) @@ -398,9 +396,7 @@ ivas_error ivas_ism_enc( /* update input samples buffer */ mvr2r( st->input, st->old_input_signal, input_frame ); -#ifdef IGF_MEMORY_ALLOC_OPT hSCE->last_element_brate = hSCE->element_brate; -#endif /* Store previous attack detection flag */ st->hTranDet->transientDetector.prev_bIsAttackPresent = st->hTranDet->transientDetector.bIsAttackPresent; diff --git a/lib_enc/ivas_mct_enc.c b/lib_enc/ivas_mct_enc.c index adaf112cdd..d409e845fa 100755 --- a/lib_enc/ivas_mct_enc.c +++ b/lib_enc/ivas_mct_enc.c @@ -236,11 +236,7 @@ ivas_error ivas_mct_enc( for ( n = 0; n < (int16_t) ( hMCT->nchan_out_woLFE * 0.5 ); n++ ) { -#ifdef IGF_MEMORY_ALLOC_OPT initMdctStereoEncData( hMCT->hBlockData[n]->hStereoMdct, ivas_format, IVAS_CPE_MDCT, cp_bitrate, max_bwidth, st_ivas->hCPE[0]->hCoreCoder[0]->igf, st_ivas->hCPE[0]->hCoreCoder[0]->igf ? st_ivas->hCPE[0]->hCoreCoder[0]->hIGFEnc->igfData.igfInfo.grid : NULL, 0 ); -#else - initMdctStereoEncData( hMCT->hBlockData[n]->hStereoMdct, ivas_format, IVAS_CPE_MDCT, cp_bitrate, max_bwidth, st_ivas->hCPE[0]->hCoreCoder[0]->igf, st_ivas->hCPE[0]->hCoreCoder[0]->hIGFEnc->igfData.igfInfo.grid, 0 ); -#endif } } @@ -404,11 +400,7 @@ ivas_error create_mct_enc( #ifdef DEBUGGING hMCT->hBlockData[n]->hStereoMdct->mdct_stereo_mode_cmdl = SMDCT_MS_DECISION; #endif -#ifdef IGF_MEMORY_ALLOC_OPT initMdctStereoEncData( hMCT->hBlockData[n]->hStereoMdct, ivas_format, IVAS_CPE_MDCT, cp_bitrate, st_ivas->hEncoderConfig->max_bwidth, st_ivas->hCPE[0]->hCoreCoder[0]->igf, st_ivas->hCPE[0]->hCoreCoder[0]->igf ? st_ivas->hCPE[0]->hCoreCoder[0]->hIGFEnc->igfData.igfInfo.grid : NULL, 1 ); -#else - initMdctStereoEncData( hMCT->hBlockData[n]->hStereoMdct, ivas_format, IVAS_CPE_MDCT, cp_bitrate, st_ivas->hEncoderConfig->max_bwidth, st_ivas->hCPE[0]->hCoreCoder[0]->igf, st_ivas->hCPE[0]->hCoreCoder[0]->hIGFEnc->igfData.igfInfo.grid, 1 ); -#endif } for ( ; n < MCT_MAX_BLOCKS; n++ ) @@ -444,11 +436,9 @@ ivas_error mct_enc_reconfigure( int16_t n, cpe_id, max_blocks; int32_t ivas_total_brate, cp_bitrate; IVAS_FORMAT ivas_format; -#ifdef IGF_MEMORY_ALLOC_OPT ivas_error error; error = IVAS_ERR_OK; -#endif hMCT = st_ivas->hMCT; ivas_format = st_ivas->hEncoderConfig->ivas_format; @@ -529,17 +519,10 @@ ivas_error mct_enc_reconfigure( st->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[cpe_id]->element_brate / FRAMES_PER_SEC ); st->igf = getIgfPresent( st->element_mode, st->bits_frame_nominal * FRAMES_PER_SEC, st->bwidth, st->rf_mode ); -#ifdef IGF_MEMORY_ALLOC_OPT if ( ( error = IGF_Reconfig( &st->hIGFEnc, st->igf, 1, st_ivas->hCPE[cpe_id]->element_brate, st->bwidth, st->element_mode, st->rf_mode ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( st->igf ) - { - IGFEncSetMode( st->hIGFEnc, st_ivas->hCPE[cpe_id]->element_brate, st->bwidth, st->element_mode, st->rf_mode ); - } -#endif } } } @@ -582,11 +565,7 @@ ivas_error mct_enc_reconfigure( #ifdef DEBUGGING hMCT->hBlockData[n]->hStereoMdct->mdct_stereo_mode_cmdl = SMDCT_MS_DECISION; #endif -#ifdef IGF_MEMORY_ALLOC_OPT initMdctStereoEncData( hMCT->hBlockData[n]->hStereoMdct, ivas_format, IVAS_CPE_MDCT, cp_bitrate, st_ivas->hEncoderConfig->max_bwidth, st_ivas->hCPE[0]->hCoreCoder[0]->igf, st_ivas->hCPE[0]->hCoreCoder[0]->igf ? st_ivas->hCPE[0]->hCoreCoder[0]->hIGFEnc->igfData.igfInfo.grid : NULL, mem_init ); -#else - initMdctStereoEncData( hMCT->hBlockData[n]->hStereoMdct, ivas_format, IVAS_CPE_MDCT, cp_bitrate, st_ivas->hEncoderConfig->max_bwidth, st_ivas->hCPE[0]->hCoreCoder[0]->igf, st_ivas->hCPE[0]->hCoreCoder[0]->hIGFEnc->igfData.igfInfo.grid, mem_init ); -#endif } for ( ; n < MCT_MAX_BLOCKS; n++ ) @@ -611,11 +590,7 @@ ivas_error mct_enc_reconfigure( set_mct_enc_params( hMCT, ivas_total_brate, ivas_format, b_nchan_change ); -#ifdef IGF_MEMORY_ALLOC_OPT return error; -#else - return IVAS_ERR_OK; -#endif } diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index abf0745d60..1233ba37c1 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -230,7 +230,6 @@ ivas_error ivas_sce_enc( * Core codec configuration *----------------------------------------------------------------*/ -#ifdef IGF_MEMORY_ALLOC_OPT /* IGF reconfiguration */ if ( hSCE->last_element_brate != hSCE->element_brate || st->last_bwidth != st->bwidth ) { @@ -241,7 +240,6 @@ ivas_error ivas_sce_enc( return error; } } -#endif /* set ACELP@12k8 / ACELP@16k flag for flexible ACELP core */ if ( st->core_brate == SID_2k40 || st->core_brate == FRAME_NO_DATA ) @@ -382,11 +380,7 @@ ivas_error create_sce_enc( st->total_brate = hSCE->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ st->mct_chan_mode = MCT_CHAN_MODE_REGULAR; -#ifdef IGF_MEMORY_ALLOC_OPT if ( ( error = init_encoder( st, st_ivas, 0, st_ivas->hEncoderConfig->var_SID_rate_flag, st_ivas->hEncoderConfig->interval_SID, 0, st_ivas->ism_mode, hSCE->element_brate ) ) != IVAS_ERR_OK ) -#else - if ( ( error = init_encoder( st, st_ivas, 0, st_ivas->hEncoderConfig->var_SID_rate_flag, st_ivas->hEncoderConfig->interval_SID, 0, st_ivas->ism_mode ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index f39e70dfea..9a45e5a02e 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -223,11 +223,7 @@ ivas_error ivas_spar_enc_open( hSpar->hCoreCoderVAD->total_brate = hEncoderConfig->ivas_total_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ hSpar->hCoreCoderVAD->mct_chan_mode = MCT_CHAN_MODE_IGNORE; -#ifdef IGF_MEMORY_ALLOC_OPT if ( ( error = init_encoder( hSpar->hCoreCoderVAD, st_ivas, 0, hEncoderConfig->var_SID_rate_flag, hEncoderConfig->interval_SID, 1, st_ivas->ism_mode, hSpar->hCoreCoderVAD->total_brate ) ) != IVAS_ERR_OK ) -#else - if ( ( error = init_encoder( hSpar->hCoreCoderVAD, st_ivas, 0, hEncoderConfig->var_SID_rate_flag, hEncoderConfig->interval_SID, 1, st_ivas->ism_mode ) ) != IVAS_ERR_OK ) -#endif { return error; } -- GitLab From 5ad32b4b8dac6146494066dd5a5ad9d2a520f534 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:34:31 +0200 Subject: [PATCH 03/42] [cleanup] accept FIX_732_PLANAR_SBA_OSBA --- lib_com/ivas_prot.h | 2 -- lib_com/options.h | 1 - lib_enc/ivas_enc.c | 10 ---------- lib_enc/ivas_osba_enc.c | 4 ---- lib_enc/lib_enc.c | 4 ---- 5 files changed, 21 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 04e803c0b6..938b52e6cc 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5710,10 +5710,8 @@ void ivas_osba_enc( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t sba_analysis_order, /* i : SBA order evaluated in DirAC/SPAR encoder */ const int32_t input_Fs /* i : input sampling rate */ -#ifdef FIX_732_PLANAR_SBA_OSBA , const int16_t sba_planar /* i : planar SBA flag */ -#endif ); #ifdef FIX_782_OSBA_FUNCTION_NAMES diff --git a/lib_com/options.h b/lib_com/options.h index ba3c30f89a..faa40803ff 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -160,7 +160,6 @@ #endif -#define FIX_732_PLANAR_SBA_OSBA /* Dlb : issue 732: fix for crash in planar mode in OSBA format*/ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_RAM_COUNTING_5MS_RENDERING /* FhG: fix for correct RAM reporting with 5ms rendering */ diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c index 1dabf0b1dc..4f02551786 100644 --- a/lib_enc/ivas_enc.c +++ b/lib_enc/ivas_enc.c @@ -388,27 +388,19 @@ ivas_error ivas_enc( } else if ( ivas_format == SBA_ISM_FORMAT ) { -#ifdef FIX_732_PLANAR_SBA_OSBA int16_t planar_sba_orig; planar_sba_orig = hEncoderConfig->sba_planar; -#endif #ifndef NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING ivas_osba_enc_reconfig( st_ivas ); #endif /* Analyze objects and determine needed audio signals */ -#ifdef FIX_732_PLANAR_SBA_OSBA ivas_osba_enc( st_ivas->hOSba, st_ivas->hIsmMetaData, data_f, input_frame, hEncoderConfig->nchan_ism, st_ivas->ism_mode, st_ivas->sba_analysis_order, hEncoderConfig->input_Fs, hEncoderConfig->sba_planar ); -#else - ivas_osba_enc( st_ivas->hOSba, st_ivas->hIsmMetaData, data_f, input_frame, hEncoderConfig->nchan_ism, st_ivas->ism_mode, st_ivas->sba_analysis_order, hEncoderConfig->input_Fs ); -#endif if ( st_ivas->ism_mode == ISM_MODE_NONE ) { -#ifdef FIX_732_PLANAR_SBA_OSBA /*once SBA and ISM are combined into SBA signal then disable planar flag*/ hEncoderConfig->sba_planar = 0; -#endif if ( st_ivas->nchan_transport == 1 ) { #ifndef FIX_759_CODE_COVERAGE_OSBA @@ -472,9 +464,7 @@ ivas_error ivas_enc( } } #endif -#ifdef FIX_732_PLANAR_SBA_OSBA hEncoderConfig->sba_planar = planar_sba_orig; -#endif } else { diff --git a/lib_enc/ivas_osba_enc.c b/lib_enc/ivas_osba_enc.c index 521d8e70ca..572bf09593 100644 --- a/lib_enc/ivas_osba_enc.c +++ b/lib_enc/ivas_osba_enc.c @@ -392,10 +392,8 @@ void ivas_osba_enc( const ISM_MODE ism_mode, /* i : ISM mode */ const int16_t sba_analysis_order, /* i : SBA order evaluated in DirAC/SPAR encoder */ const int32_t input_Fs /* i : input sampling rate */ -#ifdef FIX_732_PLANAR_SBA_OSBA , const int16_t sba_planar /* i : planar SBA flag */ -#endif ) { float data_out_f[MAX_INPUT_CHANNELS][L_FRAME48k]; @@ -413,12 +411,10 @@ void ivas_osba_enc( /* Convert ISM to SBA */ ivas_osba_render_ism_to_sba( data_in_f, data_out_f, input_frame, sba_analysis_order, nchan_ism, hIsmMeta, hOSba->prev_object_dm_gains, hOSba->interpolator ); -#ifdef FIX_732_PLANAR_SBA_OSBA if ( sba_planar ) { ivas_sba_zero_vert_comp( &( data_in_f[nchan_ism] ), sba_analysis_order, sba_planar, input_frame ); } -#endif /* Merge SBA signals */ ivas_merge_sba_transports( data_out_f, &( data_in_f[nchan_ism] ), data_in_f, input_frame, sba_analysis_order ); diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 1abced2ead..55fb62538f 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -573,12 +573,8 @@ ivas_error IVAS_ENC_ConfigureForSBAObjects( st_ivas->hEncoderConfig->sba_order = order; /* Input in ACN/SN3D in all cases (3D and planar): get number of channels */ -#ifdef FIX_732_PLANAR_SBA_OSBA /*Input file will always contain all channels for a given order irrespective of planar flag*/ st_ivas->hEncoderConfig->nchan_inp = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, 0 ) + numObjects; -#else - st_ivas->hEncoderConfig->nchan_inp = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, isPlanar ) + numObjects; -#endif st_ivas->hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; -- GitLab From 89a7812644b6dc8d9811e6e767a3194c8f56403f Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:36:00 +0200 Subject: [PATCH 04/42] [cleanup] accept FIX_RAM_COUNTING_5MS_RENDERING --- apps/decoder.c | 7 ------- lib_com/options.h | 1 - 2 files changed, 8 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 6cad55371a..a50078e319 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -2481,18 +2481,11 @@ static ivas_error decodeG192( { // update_mem(); TODO: verify this update_wmops(); -#ifdef FIX_RAM_COUNTING_5MS_RENDERING update_mem(); #ifdef MEM_COUNT_DETAILS export_mem( "mem_analysis.csv" ); -#endif #endif } -#ifndef FIX_RAM_COUNTING_5MS_RENDERING -#ifdef MEM_COUNT_DETAILS - export_mem( "mem_analysis.csv" ); -#endif -#endif #endif } diff --git a/lib_com/options.h b/lib_com/options.h index faa40803ff..8ec44eee24 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -162,7 +162,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ -#define FIX_RAM_COUNTING_5MS_RENDERING /* FhG: fix for correct RAM reporting with 5ms rendering */ #define FIX_786_ERROR_ISM_METADATA_READ /* VA: fix error reading past the last line of .csv metadata files */ #define FIX_632_USAN_ERROR_NULL_POINTER /* FhG: issue 632 USAN offset to null pointer proto_diffuse_buffer_f in dirac rendering*/ #define FIX_759_CODE_COVERAGE_OSBA /* VA: issue 759: remove obsolete code in the OSBA encoder */ -- GitLab From 6b2ad37b4d1f85f7cfcbf0c7e225941d7a8fab88 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:36:47 +0200 Subject: [PATCH 05/42] [cleanup] accept FIX_786_ERROR_ISM_METADATA_READ --- lib_com/options.h | 1 - lib_util/ism_file_reader.c | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 8ec44eee24..82fabcafa6 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -162,7 +162,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ -#define FIX_786_ERROR_ISM_METADATA_READ /* VA: fix error reading past the last line of .csv metadata files */ #define FIX_632_USAN_ERROR_NULL_POINTER /* FhG: issue 632 USAN offset to null pointer proto_diffuse_buffer_f in dirac rendering*/ #define FIX_759_CODE_COVERAGE_OSBA /* VA: issue 759: remove obsolete code in the OSBA encoder */ #define FIX_708_AEID_COMMAND_LINE /* VA: issue 708: improve AEID command-line robustness */ diff --git a/lib_util/ism_file_reader.c b/lib_util/ism_file_reader.c index cd343957db..b298b25bc8 100644 --- a/lib_util/ism_file_reader.c +++ b/lib_util/ism_file_reader.c @@ -113,7 +113,6 @@ ivas_error IsmFileReader_readNextFrame( file = self->file; -#ifdef FIX_786_ERROR_ISM_METADATA_READ while ( fgets( char_buff, META_LINE_LENGTH, file ) == NULL ) { if ( feof( self->file ) ) @@ -125,17 +124,6 @@ ivas_error IsmFileReader_readNextFrame( return IVAS_ERR_FAILED_FILE_READ; } } -#else - while ( feof( self->file ) ) - { - rewind( self->file ); - } - - if ( fgets( char_buff, META_LINE_LENGTH, file ) == NULL ) - { - return IVAS_ERR_FAILED_FILE_READ; - } -#endif char_ptr = strtok( char_buff, "," ); i = 0; -- GitLab From 24e406c55d982ff8e091ed717ae8a0b2b9a93fe8 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:37:28 +0200 Subject: [PATCH 06/42] [cleanup] accept FIX_632_USAN_ERROR_NULL_POINTER --- lib_com/options.h | 1 - lib_rend/ivas_dirac_output_synthesis_dec.c | 2 -- lib_rend/ivas_dirac_rend.c | 2 -- 3 files changed, 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 82fabcafa6..ce177b8a8f 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -162,7 +162,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ -#define FIX_632_USAN_ERROR_NULL_POINTER /* FhG: issue 632 USAN offset to null pointer proto_diffuse_buffer_f in dirac rendering*/ #define FIX_759_CODE_COVERAGE_OSBA /* VA: issue 759: remove obsolete code in the OSBA encoder */ #define FIX_708_AEID_COMMAND_LINE /* VA: issue 708: improve AEID command-line robustness */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ diff --git a/lib_rend/ivas_dirac_output_synthesis_dec.c b/lib_rend/ivas_dirac_output_synthesis_dec.c index 6da208fa9b..b29b5a312e 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec.c @@ -1519,9 +1519,7 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls( } /*Diffuse stream*/ -#ifdef FIX_632_USAN_ERROR_NULL_POINTER if ( h_dirac_output_synthesis_params->max_band_decorr != 0 ) -#endif { p_power_smooth_diff = h_dirac_output_synthesis_state->proto_diffuse_buffer_f + buf_idx * 2 * h_dirac_output_synthesis_params->max_band_decorr * nchan_out_woLFE; } diff --git a/lib_rend/ivas_dirac_rend.c b/lib_rend/ivas_dirac_rend.c index 6709b9b4e0..148f11e82c 100644 --- a/lib_rend/ivas_dirac_rend.c +++ b/lib_rend/ivas_dirac_rend.c @@ -1692,12 +1692,10 @@ void ivas_dirac_dec_compute_diffuse_proto( h_dirac_output_synthesis_state = &( hDirACRend->h_output_synthesis_psd_state ); num_freq_bands_diff = h_dirac_output_synthesis_params->max_band_decorr; -#ifdef FIX_632_USAN_ERROR_NULL_POINTER if ( num_freq_bands_diff == 0 ) { return; } -#endif p_diff_buffer = h_dirac_output_synthesis_state->proto_diffuse_buffer_f + slot_idx * 2 * num_freq_bands_diff * hDirACRend->hOutSetup.nchan_out_woLFE; p_diff_buffer_1 = p_diff_buffer + 1; -- GitLab From 334d6b2ac74945c44c022763b9927f019b0e5b36 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:38:14 +0200 Subject: [PATCH 07/42] [cleanup] accept FIX_759_CODE_COVERAGE_OSBA --- lib_com/options.h | 1 - lib_enc/ivas_enc.c | 107 ------------------------------------ lib_enc/ivas_spar_encoder.c | 4 -- 3 files changed, 112 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index ce177b8a8f..c2d04bd530 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -162,7 +162,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ -#define FIX_759_CODE_COVERAGE_OSBA /* VA: issue 759: remove obsolete code in the OSBA encoder */ #define FIX_708_AEID_COMMAND_LINE /* VA: issue 708: improve AEID command-line robustness */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ #define FIX_518_ISM_BRIR_EXTREND /* FhG: fix issue #518, cleanup ISM to BINAURAL_ROOM_IR rendering in the external renderer */ diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c index 4f02551786..0557716e36 100644 --- a/lib_enc/ivas_enc.c +++ b/lib_enc/ivas_enc.c @@ -60,9 +60,6 @@ ivas_error ivas_enc( IVAS_FORMAT ivas_format; ENCODER_CONFIG_HANDLE hEncoderConfig; BSTR_ENC_HANDLE hMetaData; -#ifndef FIX_759_CODE_COVERAGE_OSBA - Encoder_State *st; /* used for bitstream handling */ -#endif int16_t nb_bits_metadata[MAX_SCE + 1]; float *data_f[MAX_INPUT_CHANNELS + MAX_NUM_OBJECTS]; int32_t ivas_total_brate; @@ -225,15 +222,6 @@ ivas_error ivas_enc( { return error; } -#endif -#ifndef FIX_759_CODE_COVERAGE_OSBA - st = ( st_ivas->nSCE > 0 ) ? st_ivas->hSCE[0]->hCoreCoder[0] : st_ivas->hCPE[0]->hCoreCoder[0]; - - /* Write SBA planar flag */ - push_indice( st->hBstr, IND_SMODE, hEncoderConfig->sba_planar, SBA_PLANAR_BITS ); - - /* Write SBA order */ - push_indice( st->hBstr, IND_SMODE, hEncoderConfig->sba_order, SBA_ORDER_BITS ); #endif } else @@ -403,100 +391,31 @@ ivas_error ivas_enc( hEncoderConfig->sba_planar = 0; if ( st_ivas->nchan_transport == 1 ) { -#ifndef FIX_759_CODE_COVERAGE_OSBA - st = st_ivas->hSCE[st_ivas->nSCE - 1]->hCoreCoder[0]; -#endif hMetaData = st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData; } else { -#ifndef FIX_759_CODE_COVERAGE_OSBA - st = st_ivas->hCPE[0]->hCoreCoder[0]; -#endif hMetaData = st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData; } -#ifndef FIX_759_CODE_COVERAGE_OSBA - if ( st_ivas->hEncoderConfig->ivas_total_brate < IVAS_24k4 ) - { - /* Write SBA planar flag */ - push_indice( st->hBstr, IND_SMODE, hEncoderConfig->sba_planar, SBA_PLANAR_BITS ); - - /* hack to indicate OSBA bitstream at VLBR */ - push_indice( st->hBstr, IND_SMODE, 0, SBA_ORDER_BITS ); - } - else - { - /* Write SBA order */ - push_indice( st->hBstr, IND_SMODE, hEncoderConfig->sba_order, SBA_ORDER_BITS ); - } - - /* write the number of objects in ISM_SBA format*/ - push_next_indice( hMetaData, hEncoderConfig->nchan_ism - 1, NO_BITS_MASA_ISM_NO_OBJ ); -#endif /* SBA metadata encoding and SBA metadata bitstream writing */ if ( ( error = ivas_spar_enc( st_ivas, data_f, input_frame, nb_bits_metadata, hMetaData ) ) != IVAS_ERR_OK ) { return error; } -#ifndef FIX_759_CODE_COVERAGE_OSBA - /* core-coding of transport channels */ - if ( st_ivas->nSCE == 1 ) - { - if ( ( error = ivas_sce_enc( st_ivas, 0, data_f[0], input_frame, nb_bits_metadata[0] ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st_ivas->nCPE == 1 ) /* Stereo DMX */ - { - if ( ( error = ivas_cpe_enc( st_ivas, 0, data_f[0], data_f[1], input_frame, nb_bits_metadata[0] ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st_ivas->nCPE > 1 ) /* FOA/HOA format */ - { - if ( ( error = ivas_mct_enc( st_ivas, data_f, input_frame, nb_bits_metadata[0] ) ) != IVAS_ERR_OK ) - { - return error; - } - } -#endif hEncoderConfig->sba_planar = planar_sba_orig; } else { n = hEncoderConfig->nchan_ism; -#ifndef FIX_759_CODE_COVERAGE_OSBA - st = st_ivas->hCPE[0]->hCoreCoder[0]; -#endif hMetaData = st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData; -#ifndef FIX_759_CODE_COVERAGE_OSBA - if ( hEncoderConfig->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode != ISM_MODE_NONE ) - { - /* write the number of objects in ISM_SBA format*/ - push_next_indice( hMetaData, hEncoderConfig->nchan_ism - 1, NO_BITS_MASA_ISM_NO_OBJ ); - } -#endif -#ifdef FIX_759_CODE_COVERAGE_OSBA if ( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, n, st_ivas->hEncoderConfig->nchan_ism, st_ivas->hIsmMetaData, NULL, hMetaData, &nb_bits_metadata[1], 0, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, st_ivas->hCPE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, n, st_ivas->hEncoderConfig->nchan_ism, st_ivas->hIsmMetaData, NULL, hMetaData, &nb_bits_metadata[1], 0, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, st->ini_frame ) ) != IVAS_ERR_OK ) -#endif { return error; } -#ifndef FIX_759_CODE_COVERAGE_OSBA - /* Write SBA planar flag */ - push_indice( st->hBstr, IND_SMODE, hEncoderConfig->sba_planar, SBA_PLANAR_BITS ); - - /* Write SBA order */ - push_indice( st->hBstr, IND_SMODE, hEncoderConfig->sba_order, SBA_ORDER_BITS ); -#endif /* SBA metadata encoding and SBA metadata bitstream writing */ if ( ( error = ivas_spar_enc( st_ivas, &data_f[n], input_frame, nb_bits_metadata, hMetaData ) ) != IVAS_ERR_OK ) { @@ -506,33 +425,8 @@ ivas_error ivas_enc( /* get SBA TCs */ ivas_sba_getTCs( &data_f[n], st_ivas, input_frame ); -#ifndef FIX_759_CODE_COVERAGE_OSBA - /* encode SBA transport channels */ - if ( st_ivas->nchan_transport == 1 ) - { - if ( ( error = ivas_sce_enc( st_ivas, hEncoderConfig->nchan_ism, data_f[n], input_frame, nb_bits_metadata[0] ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st_ivas->nCPE == 1 ) /* Stereo DMX */ - { - if ( ( error = ivas_cpe_enc( st_ivas, 0, data_f[n], data_f[n + 1], input_frame, nb_bits_metadata[0] ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st_ivas->nCPE > 1 ) /* FOA/HOA format */ - { - if ( ( error = ivas_mct_enc( st_ivas, data_f, input_frame, nb_bits_metadata[0] ) ) != IVAS_ERR_OK ) - { - return error; - } - } -#endif } -#ifdef FIX_759_CODE_COVERAGE_OSBA /* core-coding of transport channels */ if ( st_ivas->nSCE == 1 ) { @@ -555,7 +449,6 @@ ivas_error ivas_enc( return error; } } -#endif } else if ( ivas_format == MC_FORMAT ) { diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 9a45e5a02e..3617390c0c 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -331,14 +331,11 @@ ivas_error ivas_spar_enc( ) { ENCODER_CONFIG_HANDLE hEncoderConfig; -#ifdef FIX_759_CODE_COVERAGE_OSBA Encoder_State *st0; /* used for bitstream handling */ -#endif ivas_error error; error = IVAS_ERR_OK; hEncoderConfig = st_ivas->hEncoderConfig; -#ifdef FIX_759_CODE_COVERAGE_OSBA st0 = ( st_ivas->nSCE > 0 ) ? st_ivas->hSCE[0]->hCoreCoder[0] : st_ivas->hCPE[0]->hCoreCoder[0]; /* Write SBA signaling bits */ @@ -372,7 +369,6 @@ ivas_error ivas_spar_enc( /* write the number of objects in ISM_SBA format*/ push_indice( hMetaData, IND_ISM_NUM_OBJECTS, hEncoderConfig->nchan_ism - 1, NO_BITS_MASA_ISM_NO_OBJ ); } -#endif /* front VAD */ if ( ( error = front_vad_spar( st_ivas->hSpar, data_f[0], hEncoderConfig, input_frame ) ) != IVAS_ERR_OK ) -- GitLab From fd7f266df077dc80073f3f91ebf1c2b47a4a2b20 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:39:03 +0200 Subject: [PATCH 08/42] [cleanup] accept FIX_708_AEID_COMMAND_LINE --- apps/decoder.c | 12 ------------ apps/renderer.c | 6 ------ lib_com/ivas_error.h | 4 ---- lib_com/options.h | 1 - lib_dec/ivas_init_dec.c | 2 -- lib_dec/ivas_stat_dec.h | 2 -- lib_dec/lib_dec.c | 8 -------- lib_dec/lib_dec.h | 2 -- lib_util/render_config_reader.c | 2 -- 9 files changed, 39 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index a50078e319..b00514bd66 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -439,9 +439,7 @@ int main( #ifdef FIX_708_DPID_COMMAND_LINE arg.Opt_dpid_on, #endif -#ifdef FIX_708_AEID_COMMAND_LINE arg.acousticEnvironmentId, -#endif arg.delayCompensationEnabled ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); @@ -658,11 +656,7 @@ int main( goto cleanup; } } -#ifdef FIX_708_AEID_COMMAND_LINE else -#else - else if ( error != IVAS_ERR_ACOUSTIC_ENVIRONMENT_MISSING ) -#endif { fprintf( stderr, "Failed to get acoustic environment with ID: %d\n\n", arg.acousticEnvironmentId ); goto cleanup; @@ -1034,11 +1028,7 @@ static bool parseCmdlIVAS_dec( arg->noBadFrameDelay = false; #endif #endif -#ifdef FIX_708_AEID_COMMAND_LINE arg->acousticEnvironmentId = 65535; -#else - arg->acousticEnvironmentId = 0; -#endif for ( i = 0; i < IVAS_MAX_NUM_OBJECTS; ++i ) { #ifdef FIX_730_DPID_NOT_SET_CORRECTLY @@ -1417,7 +1407,6 @@ static bool parseCmdlIVAS_dec( else if ( strcmp( argv_to_upper, "-AEID" ) == 0 ) { ++i; -#ifdef FIX_708_AEID_COMMAND_LINE if ( argc - i <= 4 ) { fprintf( stderr, "Error: Acoustic environment ID not specified!\n\n" ); @@ -1431,7 +1420,6 @@ static bool parseCmdlIVAS_dec( usage_dec(); return false; } -#endif arg->acousticEnvironmentId = (int16_t) atoi( argv[i++] ); } else if ( strcmp( argv_to_upper, "-DPID" ) == 0 ) diff --git a/apps/renderer.c b/apps/renderer.c index 2cddc68cb0..f121eb241a 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -2647,11 +2647,7 @@ static CmdlnArgs defaultArgs( #endif } -#ifdef FIX_708_AEID_COMMAND_LINE args.acousticEnvironmentId = 65535; -#else - args.acousticEnvironmentId = 0; -#endif return args; } @@ -2819,13 +2815,11 @@ static void parseOption( break; case CmdLnOptionId_acousticEnvironmentId: assert( numOptionValues == 1 ); -#ifdef FIX_708_AEID_COMMAND_LINE if ( !is_digits_only( optionValues[0] ) ) { fprintf( stderr, "Invalid acousting environment ID specified: %s\n", optionValues[0] ); exit( -1 ); } -#endif args->acousticEnvironmentId = (int16_t) strtol( optionValues[0], NULL, 10 ); break; case CmdLnOptionId_syncMdDelay: diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index b03e28b106..b42e6928e4 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -81,9 +81,7 @@ typedef enum #ifdef FIX_708_DPID_COMMAND_LINE IVAS_ERR_DIRECTIVITY_NOT_SUPPORTED, #endif -#ifdef FIX_708_AEID_COMMAND_LINE IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED, -#endif IVAS_ERR_INVALID_HRTF, IVAS_ERR_INVALID_INPUT_FORMAT, #ifdef FIX_747_ISM_TODOS @@ -270,10 +268,8 @@ static inline const char *ivas_error_to_string( ivas_error error_code ) case IVAS_ERR_DIRECTIVITY_NOT_SUPPORTED: return "Directivity not supported"; #endif -#ifdef FIX_708_AEID_COMMAND_LINE case IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED: return "Acoustic environment not supported"; -#endif case IVAS_ERR_INVALID_HRTF: return "Unsupported HRTF filter set"; case IVAS_ERR_INVALID_INPUT_FORMAT: diff --git a/lib_com/options.h b/lib_com/options.h index c2d04bd530..a7b9f0458d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -162,7 +162,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ -#define FIX_708_AEID_COMMAND_LINE /* VA: issue 708: improve AEID command-line robustness */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ #define FIX_518_ISM_BRIR_EXTREND /* FhG: fix issue #518, cleanup ISM to BINAURAL_ROOM_IR rendering in the external renderer */ #define FIX_764_HARM_CODE /* VA: issue 764: introduce new function for the same code block at four different places */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index bf1fff8a1e..1873739274 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -3148,7 +3148,6 @@ static ivas_error doSanityChecks_IVAS( } #endif -#ifdef FIX_708_AEID_COMMAND_LINE if ( st_ivas->hDecoderConfig->Opt_aeid_on ) { if ( output_config != IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) @@ -3156,7 +3155,6 @@ static ivas_error doSanityChecks_IVAS( return IVAS_ERROR( IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED, "Wrong set-up: Acoustic environment is not supported in this output configuration." ); } } -#endif if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index b255b6085e..3b3a882819 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1054,9 +1054,7 @@ typedef struct decoder_config_structure #ifdef FIX_708_DPID_COMMAND_LINE int16_t Opt_dpid_on; /* indicates whether Directivity pattern option is used */ #endif -#ifdef FIX_708_AEID_COMMAND_LINE int16_t Opt_aeid_on; /* indicates whether Acoustic environment option is used */ -#endif /* temp. development parameters */ #ifdef DEBUGGING diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 4d7c9edf3d..801eea7962 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -271,9 +271,7 @@ static void init_decoder_config( #ifdef FIX_708_DPID_COMMAND_LINE hDecoderConfig->Opt_dpid_on = 0; #endif -#ifdef FIX_708_AEID_COMMAND_LINE hDecoderConfig->Opt_aeid_on = 0; -#endif return; } @@ -380,9 +378,7 @@ ivas_error IVAS_DEC_Configure( #ifdef FIX_708_DPID_COMMAND_LINE const int16_t Opt_dpid_on, /* i : enable directivity pattern option */ #endif -#ifdef FIX_708_AEID_COMMAND_LINE const uint16_t acousticEnvironmentId, /* i : Acoustic environment ID */ -#endif const int16_t delayCompensationEnabled /* i : enable delay compensation */ ) { @@ -444,9 +440,7 @@ ivas_error IVAS_DEC_Configure( #ifdef FIX_708_DPID_COMMAND_LINE hDecoderConfig->Opt_dpid_on = Opt_dpid_on; #endif -#ifdef FIX_708_AEID_COMMAND_LINE hDecoderConfig->Opt_aeid_on = acousticEnvironmentId != 65535 ? TRUE : FALSE; -#endif #ifdef SPLIT_REND_WITH_HEAD_ROT if ( hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) @@ -2910,12 +2904,10 @@ static ivas_error printConfigInfo_dec( } #endif -#ifdef FIX_708_AEID_COMMAND_LINE if ( st_ivas->hDecoderConfig->Opt_aeid_on ) { fprintf( stdout, "Acoustic environment ID:ON\n" ); } -#endif } /*-----------------------------------------------------------------* diff --git a/lib_dec/lib_dec.h b/lib_dec/lib_dec.h index a1e6ea2514..f541e49d63 100644 --- a/lib_dec/lib_dec.h +++ b/lib_dec/lib_dec.h @@ -137,9 +137,7 @@ ivas_error IVAS_DEC_Configure( #ifdef FIX_708_DPID_COMMAND_LINE const int16_t Opt_dpid_on, /* i : enable directivity pattern option */ #endif -#ifdef FIX_708_AEID_COMMAND_LINE const uint16_t acousticEnvironmentId, /* i : Acoustic environment ID */ -#endif const int16_t delayCompensationEnabled /* i : enable delay compensation */ ); diff --git a/lib_util/render_config_reader.c b/lib_util/render_config_reader.c index 48ba46bca0..028ee3060b 100644 --- a/lib_util/render_config_reader.c +++ b/lib_util/render_config_reader.c @@ -2779,13 +2779,11 @@ ivas_error RenderConfigReader_getAcousticEnvironment( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } -#ifdef FIX_708_AEID_COMMAND_LINE /* case when -aeid is not specified, select first ID from config file */ if ( id == 65535 && pRenderConfigReader->nAE > 0 ) { id = (uint16_t) pRenderConfigReader->pAE[0].id; } -#endif for ( n = 0; n < pRenderConfigReader->nAE; n++ ) { -- GitLab From ba4b3006cba43c99168f70855dd4403d8e5b9b1e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:39:55 +0200 Subject: [PATCH 09/42] [cleanup] accept FIX_518_ISM_BRIR_EXTREND --- lib_com/options.h | 1 - lib_rend/lib_rend.c | 129 -------------------------------------------- 2 files changed, 130 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index a7b9f0458d..c5a2c37169 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_518_ISM_BRIR_EXTREND /* FhG: fix issue #518, cleanup ISM to BINAURAL_ROOM_IR rendering in the external renderer */ #define FIX_764_HARM_CODE /* VA: issue 764: introduce new function for the same code block at four different places */ #define FIX_747_ISM_TODOS /* VA: issue 747 - address ISM ToDos */ #define FIX_ISMRENDERER_HANDLE_DEALLOC /* VA: issue 781: harmonize Deallocation of handle 'hIsmRendererData' */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 3482d8d9e7..dbed1cea02 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -131,10 +131,8 @@ typedef struct CREND_WRAPPER_HANDLE crendWrapper; REVERB_HANDLE hReverb; rotation_matrix rot_mat_prev; -#ifdef FIX_518_ISM_BRIR_EXTREND pan_vector prev_pan_gains; int8_t firstFrameRendered; -#endif #ifdef SPLIT_REND_WITH_HEAD_ROT TDREND_WRAPPER splitTdRendWrappers[MAX_HEAD_ROT_POSES - 1]; /* Additional TD Rend instances used for split rendering */ #endif @@ -1233,7 +1231,6 @@ static IVAS_REND_AudioObjectPosition defaultObjectPosition( } -#ifdef FIX_518_ISM_BRIR_EXTREND static int8_t checkObjectPositionChanged( IVAS_REND_AudioObjectPosition *currentPos, IVAS_REND_AudioObjectPosition *previousPos ) @@ -1241,7 +1238,6 @@ static int8_t checkObjectPositionChanged( return !( fabs( currentPos->azimuth - previousPos->azimuth ) < EPSILON && fabs( currentPos->elevation - previousPos->elevation ) < EPSILON ); } -#endif static rendering_context getRendCtx( @@ -1375,9 +1371,7 @@ static ivas_error setRendInputActiveIsm( } initRendInputBase( &inputIsm->base, inConfig, id, rendCtx, inputIsm->bufferData, MAX_BUFFER_LENGTH ); -#ifdef FIX_518_ISM_BRIR_EXTREND inputIsm->firstFrameRendered = FALSE; -#endif inputIsm->currentPos = defaultObjectPosition(); inputIsm->previousPos = defaultObjectPosition(); @@ -1385,9 +1379,7 @@ static ivas_error setRendInputActiveIsm( inputIsm->hReverb = NULL; inputIsm->tdRendWrapper = defaultTdRendWrapper(); initRotMatrix( inputIsm->rot_mat_prev ); -#ifdef FIX_518_ISM_BRIR_EXTREND set_zero( inputIsm->prev_pan_gains, MAX_OUTPUT_CHANNELS ); -#endif #ifdef SPLIT_REND_WITH_HEAD_ROT for ( i = 0; i < (int16_t) ( sizeof( inputIsm->splitTdRendWrappers ) / sizeof( *inputIsm->splitTdRendWrappers ) ); ++i ) @@ -6002,9 +5994,7 @@ static ivas_error renderIsmToBinauralRoom( input_ism *ismInput, IVAS_REND_AudioBuffer outAudio ) { -#ifdef FIX_518_ISM_BRIR_EXTREND int16_t position_changed; -#endif int16_t i, j; int16_t azi_rot, ele_rot; int16_t subframe_idx; @@ -6013,13 +6003,8 @@ static ivas_error renderIsmToBinauralRoom( float tmpRendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; ivas_error error; pan_vector currentPanGains; -#ifndef FIX_518_ISM_BRIR_EXTREND - pan_vector previousPanGains; -#endif IVAS_REND_AudioBuffer tmpMcBuffer; -#ifdef FIX_518_ISM_BRIR_EXTREND IVAS_REND_AudioObjectPosition rotatedPosPrev; -#endif IVAS_REND_AudioObjectPosition rotatedPos; const COMBINED_ORIENTATION_HANDLE *hCombinedOrientationData; int8_t combinedOrientationEnabled; @@ -6032,9 +6017,7 @@ static ivas_error renderIsmToBinauralRoom( push_wmops( "renderIsmToBinauralRoom" ); -#ifdef FIX_518_ISM_BRIR_EXTREND rotatedPosPrev = defaultObjectPosition(); -#endif rotatedPos = defaultObjectPosition(); hCombinedOrientationData = ismInput->base.ctx.pCombinedOrientationData; @@ -6075,26 +6058,6 @@ static ivas_error renderIsmToBinauralRoom( } } -#ifndef FIX_518_ISM_BRIR_EXTREND - /* TODO tmu : see issue #518 */ - /* Possible optimization: less processing needed if position didn't change - * needs a lot of cleanup, we could also add rot_gains_prev to ismInput and use that */ - /* previous position gains */ - if ( combinedOrientationEnabled ) - { - rotateAziEle( ismInput->previousPos.azimuth, ismInput->previousPos.elevation, &azi_rot, &ele_rot, ismInput->rot_mat_prev, 0 ); - rotatedPos.azimuth = (float) azi_rot; - rotatedPos.elevation = (float) ele_rot; - } - - if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, - ( combinedOrientationEnabled ) ? rotatedPos.azimuth : ismInput->previousPos.azimuth, - ( combinedOrientationEnabled ) ? rotatedPos.elevation : ismInput->previousPos.elevation, - previousPanGains ) ) != IVAS_ERR_OK ) - { - return error; - } -#else /* get previous position */ if ( combinedOrientationEnabled ) { @@ -6107,7 +6070,6 @@ static ivas_error renderIsmToBinauralRoom( rotatedPosPrev.azimuth = ismInput->previousPos.azimuth; rotatedPosPrev.elevation = ismInput->previousPos.elevation; } -#endif /* get current position */ if ( combinedOrientationEnabled ) @@ -6116,7 +6078,6 @@ static ivas_error renderIsmToBinauralRoom( rotatedPos.azimuth = (float) azi_rot; rotatedPos.elevation = (float) ele_rot; } -#ifdef FIX_518_ISM_BRIR_EXTREND else { rotatedPos.azimuth = ismInput->currentPos.azimuth; @@ -6134,22 +6095,14 @@ static ivas_error renderIsmToBinauralRoom( /* compute gains only if position changed */ if ( position_changed ) { -#endif if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, -#ifdef FIX_518_ISM_BRIR_EXTREND rotatedPos.azimuth, rotatedPos.elevation, -#else - ( combinedOrientationEnabled ) ? rotatedPos.azimuth : ismInput->currentPos.azimuth, - ( combinedOrientationEnabled ) ? rotatedPos.elevation : ismInput->currentPos.elevation, -#endif currentPanGains ) ) != IVAS_ERR_OK ) { return error; } -#ifdef FIX_518_ISM_BRIR_EXTREND } -#endif /* intermediate rendering to 7_1_4 */ tmpMcBuffer = ismInput->base.inputBuffer; @@ -6164,13 +6117,8 @@ static ivas_error renderIsmToBinauralRoom( set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels ); renderBufferChannelLerp( ismInput->base.inputBuffer, 0, -#ifdef FIX_518_ISM_BRIR_EXTREND position_changed ? currentPanGains : ismInput->prev_pan_gains, position_changed ? ismInput->prev_pan_gains : NULL, -#else - currentPanGains, - previousPanGains, -#endif tmpMcBuffer ); copyBufferTo2dArray( tmpMcBuffer, tmpRendBuffer ); @@ -6181,13 +6129,11 @@ static ivas_error renderIsmToBinauralRoom( mvr2r( Rmat[i], ismInput->rot_mat_prev[i], 3 ); } -#ifdef FIX_518_ISM_BRIR_EXTREND if ( position_changed ) { mvr2r( currentPanGains, ismInput->prev_pan_gains, MAX_OUTPUT_CHANNELS ); } -#endif /* render 7_1_4 with BRIRs */ #ifdef SPLIT_REND_WITH_HEAD_ROT @@ -6241,40 +6187,22 @@ static ivas_error renderIsmToBinauralReverb( static ivas_error renderIsmToMc( -#ifndef FIX_518_ISM_BRIR_EXTREND - const -#endif input_ism *ismInput, const IVAS_REND_AudioBuffer outAudio ) { -#ifdef FIX_518_ISM_BRIR_EXTREND int8_t position_changed; -#endif pan_vector currentPanGains; -#ifndef FIX_518_ISM_BRIR_EXTREND - pan_vector previousPanGains; -#endif ivas_error error; push_wmops( "renderIsmToMc" ); -#ifdef FIX_518_ISM_BRIR_EXTREND position_changed = !ismInput->firstFrameRendered || checkObjectPositionChanged( &ismInput->currentPos, &ismInput->previousPos ); -#else - /* TODO(sgi): Possible optimization: less processing needed if position didn't change */ -#endif if ( *ismInput->base.ctx.pOutConfig == IVAS_AUDIO_CONFIG_STEREO ) { if ( ismInput->nonDiegeticPan ) { -#ifdef FIX_518_ISM_BRIR_EXTREND ismInput->prev_pan_gains[0] = currentPanGains[0] = ( ismInput->nonDiegeticPanGain + 1.f ) * 0.5f; ismInput->prev_pan_gains[1] = currentPanGains[1] = 1.f - currentPanGains[0]; -#else - previousPanGains[0] = currentPanGains[0] = ( ismInput->nonDiegeticPanGain + 1.f ) * 0.5f; - previousPanGains[1] = currentPanGains[1] = 1.f - currentPanGains[0]; - error = IVAS_ERR_OK; -#endif } else { @@ -6282,24 +6210,16 @@ static ivas_error renderIsmToMc( ivas_ism_get_stereo_gains( ismInput->currentPos.azimuth, ismInput->currentPos.elevation, ¤tPanGains[0], ¤tPanGains[1] ); -#ifdef FIX_518_ISM_BRIR_EXTREND set_zero( ismInput->prev_pan_gains, MAX_OUTPUT_CHANNELS ); ivas_ism_get_stereo_gains( ismInput->previousPos.azimuth, ismInput->previousPos.elevation, &ismInput->prev_pan_gains[0], &ismInput->prev_pan_gains[1] ); -#else - set_zero( previousPanGains, MAX_OUTPUT_CHANNELS ); - - ivas_ism_get_stereo_gains( ismInput->previousPos.azimuth, ismInput->previousPos.elevation, &previousPanGains[0], &previousPanGains[1] ); -#endif } } else { -#ifdef FIX_518_ISM_BRIR_EXTREND /* compute gains only if position changed */ if ( position_changed ) { -#endif // TODO tmu review when #215 is resolved if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, (int16_t) floorf( ismInput->currentPos.azimuth + 0.5f ), @@ -6308,49 +6228,34 @@ static ivas_error renderIsmToMc( { return error; } -#ifdef FIX_518_ISM_BRIR_EXTREND } /* set previous gains if this is the first frame */ if ( !ismInput->firstFrameRendered ) { -#endif // TODO tmu review when #215 is resolved if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, (int16_t) floorf( ismInput->previousPos.azimuth + 0.5f ), (int16_t) floorf( ismInput->previousPos.elevation + 0.5f ), -#ifdef FIX_518_ISM_BRIR_EXTREND ismInput->prev_pan_gains -#else - previousPanGains -#endif ) ) != IVAS_ERR_OK ) { return error; } -#ifdef FIX_518_ISM_BRIR_EXTREND } -#endif } /* Assume num channels in audio buffer to be 1. * This should have been validated in IVAS_REND_FeedInputAudio() */ renderBufferChannelLerp( ismInput->base.inputBuffer, 0, -#ifdef FIX_518_ISM_BRIR_EXTREND position_changed ? currentPanGains : ismInput->prev_pan_gains, position_changed ? ismInput->prev_pan_gains : NULL, -#else - currentPanGains, - previousPanGains, -#endif outAudio ); -#ifdef FIX_518_ISM_BRIR_EXTREND if ( position_changed ) { mvr2r( currentPanGains, ismInput->prev_pan_gains, MAX_OUTPUT_CHANNELS ); } -#endif pop_wmops(); @@ -6359,22 +6264,14 @@ static ivas_error renderIsmToMc( static ivas_error renderIsmToSba( -#ifndef FIX_518_ISM_BRIR_EXTREND - const -#endif input_ism *ismInput, const AUDIO_CONFIG outConfig, const IVAS_REND_AudioBuffer outAudio ) { -#ifdef FIX_518_ISM_BRIR_EXTREND int8_t position_changed; -#endif int16_t ambiOrderOut; int16_t numOutChannels; pan_vector currentPanGains; -#ifndef FIX_518_ISM_BRIR_EXTREND - pan_vector previousPanGains; -#endif ivas_error error; error = IVAS_ERR_OK; @@ -6390,38 +6287,21 @@ static ivas_error renderIsmToSba( return error; } -#ifdef FIX_518_ISM_BRIR_EXTREND position_changed = !ismInput->firstFrameRendered || checkObjectPositionChanged( &ismInput->currentPos, &ismInput->previousPos ); /* set previous gains if this is the first frame */ if ( !ismInput->firstFrameRendered ) { -#endif // TODO tmu review when #215 is resolved ivas_dirac_dec_get_response( (int16_t) floorf( ismInput->previousPos.azimuth + 0.5f ), (int16_t) floorf( ismInput->previousPos.elevation + 0.5f ), -#ifdef FIX_518_ISM_BRIR_EXTREND ismInput->prev_pan_gains, -#else - previousPanGains, -#endif ambiOrderOut ); -#ifdef FIX_518_ISM_BRIR_EXTREND } /* compute gains only if position changed */ if ( position_changed ) { -#else - - if ( ( ismInput->currentPos.azimuth == ismInput->previousPos.azimuth ) && - ( ismInput->currentPos.elevation == ismInput->previousPos.elevation ) ) - { - mvr2r( previousPanGains, currentPanGains, MAX_OUTPUT_CHANNELS ); - } - else - { -#endif // TODO tmu review when #215 is resolved ivas_dirac_dec_get_response( (int16_t) floorf( ismInput->currentPos.azimuth + 0.5f ), (int16_t) floorf( ismInput->currentPos.elevation + 0.5f ), @@ -6432,21 +6312,14 @@ static ivas_error renderIsmToSba( /* Assume num channels in audio buffer to be 1. * This should have been validated in IVAS_REND_FeedInputAudio() */ renderBufferChannelLerp( ismInput->base.inputBuffer, 0, -#ifdef FIX_518_ISM_BRIR_EXTREND position_changed ? currentPanGains : ismInput->prev_pan_gains, position_changed ? ismInput->prev_pan_gains : NULL, -#else - currentPanGains, - previousPanGains, -#endif outAudio ); -#ifdef FIX_518_ISM_BRIR_EXTREND if ( position_changed ) { mvr2r( currentPanGains, ismInput->prev_pan_gains, MAX_OUTPUT_CHANNELS ); } -#endif pop_wmops(); return error; @@ -6639,9 +6512,7 @@ static ivas_error renderInputIsm( return error; } -#ifdef FIX_518_ISM_BRIR_EXTREND ismInput->firstFrameRendered = TRUE; -#endif return error; } -- GitLab From fbb62107ec8c377ee5d5de7cb0989f4c92b9e0ac Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:40:55 +0200 Subject: [PATCH 10/42] [cleanup] accept FIX_764_HARM_CODE --- lib_com/ivas_prot.h | 2 -- lib_com/options.h | 1 - lib_dec/ivas_dec.c | 17 ----------------- lib_dec/ivas_jbm_dec.c | 17 ----------------- lib_dec/ivas_mono_dmx_renderer.c | 2 -- 5 files changed, 39 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 938b52e6cc..3512c23349 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -773,13 +773,11 @@ void dtx_read_padding_bits( const int16_t num_bits ); -#ifdef FIX_764_HARM_CODE void ivas_apply_non_diegetic_panning( float *output_f[], /* i/o: core-coder transport mono channel/stereo output */ const float non_diegetic_pan_gain, /* i : non-diegetic panning gain */ const int16_t output_frame /* i : output frame length per channel */ ); -#endif /*----------------------------------------------------------------------------------* diff --git a/lib_com/options.h b/lib_com/options.h index c5a2c37169..a9d9bfb22b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_764_HARM_CODE /* VA: issue 764: introduce new function for the same code block at four different places */ #define FIX_747_ISM_TODOS /* VA: issue 747 - address ISM ToDos */ #define FIX_ISMRENDERER_HANDLE_DEALLOC /* VA: issue 781: harmonize Deallocation of handle 'hIsmRendererData' */ #define FIX_782_OSBA_FUNCTION_NAMES /* VA: fix 782: correct OSBA function names */ diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index 494a885b1a..18f6460a89 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -68,9 +68,6 @@ ivas_error ivas_dec( int16_t nb_bits_metadata[MAX_SCE + 1]; int32_t output_Fs, ivas_total_brate; AUDIO_CONFIG output_config; -#ifndef FIX_764_HARM_CODE - float pan_left, pan_right; -#endif ivas_error error; int16_t num_md_sub_frames; int32_t ism_total_brate; @@ -236,14 +233,7 @@ ivas_error ivas_dec( } else if ( st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX ) { -#ifdef FIX_764_HARM_CODE ivas_apply_non_diegetic_panning( p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, output_frame ); -#else - pan_left = ( st_ivas->hDecoderConfig->non_diegetic_pan_gain + 1.f ) * 0.5f; - pan_right = 1.f - pan_left; - v_multc( p_output[0], pan_right, p_output[1], output_frame ); - v_multc( p_output[0], pan_left, p_output[0], output_frame ); -#endif } else if ( st_ivas->renderer_type == RENDERER_PARAM_ISM || st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ) { @@ -265,14 +255,7 @@ ivas_error ivas_dec( } else if ( st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX ) { -#ifdef FIX_764_HARM_CODE ivas_apply_non_diegetic_panning( p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, output_frame ); -#else - pan_left = ( st_ivas->hDecoderConfig->non_diegetic_pan_gain + 1.f ) * 0.5f; - pan_right = 1.f - pan_left; - v_multc( p_output[0], pan_right, p_output[1], output_frame ); - v_multc( p_output[0], pan_left, p_output[0], output_frame ); -#endif } else if ( st_ivas->renderer_type == RENDERER_TD_PANNING || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) { diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 89fc658d07..36104a3d03 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -980,9 +980,6 @@ ivas_error ivas_jbm_dec_render( int16_t nchan_remapped; int32_t output_Fs; AUDIO_CONFIG output_config; -#ifndef FIX_764_HARM_CODE - float pan_left, pan_right; -#endif int16_t nSamplesAskedLocal; ivas_error error; @@ -1073,14 +1070,7 @@ ivas_error ivas_jbm_dec_render( else if ( st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX ) { *nSamplesRendered = min( st_ivas->hTcBuffer->n_samples_available, nSamplesAskedLocal ); -#ifdef FIX_764_HARM_CODE ivas_apply_non_diegetic_panning( p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, *nSamplesRendered ); -#else - pan_left = ( st_ivas->hDecoderConfig->non_diegetic_pan_gain + 1.f ) * 0.5f; - pan_right = 1.f - pan_left; - v_multc( p_tc[0], pan_right, output[1], *nSamplesRendered ); - v_multc( p_tc[0], pan_left, output[0], *nSamplesRendered ); -#endif } else if ( st_ivas->renderer_type == RENDERER_PARAM_ISM || st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ) { @@ -1105,14 +1095,7 @@ ivas_error ivas_jbm_dec_render( } else if ( st_ivas->renderer_type == RENDERER_NON_DIEGETIC_DOWNMIX ) { -#ifdef FIX_764_HARM_CODE ivas_apply_non_diegetic_panning( p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, *nSamplesRendered ); -#else - pan_left = ( st_ivas->hDecoderConfig->non_diegetic_pan_gain + 1.f ) * 0.5f; - pan_right = 1.f - pan_left; - v_multc( p_tc[0], pan_right, output[1], *nSamplesRendered ); - v_multc( p_tc[0], pan_left, output[0], *nSamplesRendered ); -#endif } else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ) { diff --git a/lib_dec/ivas_mono_dmx_renderer.c b/lib_dec/ivas_mono_dmx_renderer.c index 6dd42d3a56..413a3d12b9 100644 --- a/lib_dec/ivas_mono_dmx_renderer.c +++ b/lib_dec/ivas_mono_dmx_renderer.c @@ -209,7 +209,6 @@ void ivas_mono_stereo_downmix_mcmasa( } -#ifdef FIX_764_HARM_CODE /*------------------------------------------------------------------------- * ivas_apply_non_diegetic_panning() * @@ -232,4 +231,3 @@ void ivas_apply_non_diegetic_panning( return; } -#endif -- GitLab From 5ec05e625e5624bc8d7396962d9f2ff8517c18a9 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:53:47 +0200 Subject: [PATCH 11/42] [cleanup] accept FIX_747_ISM_TODOS --- lib_com/ivas_cnst.h | 14 -------------- lib_com/ivas_error.h | 11 ----------- lib_com/options.h | 1 - lib_dec/ivas_ism_metadata_dec.c | 14 -------------- lib_enc/ivas_ism_enc.c | 18 ------------------ lib_enc/lib_enc.c | 4 ---- 6 files changed, 62 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 2864230380..1563dcc672 100755 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -153,11 +153,7 @@ typedef enum #define MAX_SCE MAX_NUM_OBJECTS /* max. number of SCEs */ #define MAX_CPE ( MAX_TRANSPORT_CHANNELS / CPE_CHANNELS ) /* max. number of CPEs */ -#ifdef FIX_747_ISM_TODOS #define MAX_BITS_METADATA 2500 /* max. bit-budget of metadata */ -#else -#define MAX_BITS_METADATA 2640 /* max. bit-budget of metadata, one channel */ /* IVAS_fmToDo: to be confirmed for final value once mature */ -#endif #define MIN_NUM_IND 10 /* minimum number of indices in the core coder */ #define MAX_NUM_IND_LFE 100 /* maximum number of indices in the LFE encoder */ #define MAX_NUM_IND_TEMP_LIST 10 /* maximum number of indices in the temporary list */ @@ -369,9 +365,6 @@ typedef enum #define ISM_Q_STEP_LOW (ISM_Q_STEP * 2) #define ISM_Q_STEP_BORDER_LOW (ISM_Q_STEP_BORDER * 2) -#ifndef FIX_747_ISM_TODOS -#define BRATE_ISM_INACTIVE 2450 /* CoreCoder bitrate in ISM inactive frames */ -#endif /* ISM modes */ typedef enum { @@ -407,15 +400,8 @@ enum IND_ISM_ELEVATION = TAG_ISM_LOOP_START, IND_ISM_RADIUS_DIFF_FLAG = TAG_ISM_LOOP_START, IND_ISM_RADIUS = TAG_ISM_LOOP_START, -#ifdef FIX_747_ISM_TODOS TAG_ISM_LOOP_END = TAG_ISM_LOOP_START -#else - TAG_ISM_LOOP_END = TAG_ISM_LOOP_START + 100, /* IVAS_fmToDo: to be reviewed once the final metadata are defined */ -#endif /* --------- end of loop for objects ----------- */ -#ifndef FIX_747_ISM_TODOS - ISM_MAX_NUM_INDICES -#endif }; diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index b42e6928e4..48bbde5e2a 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -61,9 +61,6 @@ typedef enum IVAS_ERR_INVALID_MASA_CONFIG, IVAS_ERR_TOO_MANY_INPUTS, IVAS_ERR_MISSING_METADATA, -#ifndef FIX_747_ISM_TODOS - IVAS_ERR_INDEX_OUT_OF_BOUNDS, -#endif IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, IVAS_ERR_INVALID_FEC_CONFIG, IVAS_ERR_INVALID_FEC_OFFSET, @@ -84,12 +81,8 @@ typedef enum IVAS_ERR_ACOUSTIC_ENVIRONMENT_NOT_SUPPORTED, IVAS_ERR_INVALID_HRTF, IVAS_ERR_INVALID_INPUT_FORMAT, -#ifdef FIX_747_ISM_TODOS IVAS_ERR_INVALID_INDEX, -#else - IVAS_ERR_INVALID_INDEX, /* ToDo: should be merged with IVAS_ERR_INDEX_OUT_OF_BOUNDS */ -#endif IVAS_ERR_NOT_SUPPORTED_OPTION, IVAS_ERR_NOT_IMPLEMENTED, IVAS_ERR_WAITING_FOR_BITSTREAM, @@ -220,10 +213,6 @@ static inline const char *ivas_error_to_string( ivas_error error_code ) return "Invalid MASA config"; case IVAS_ERR_TOO_MANY_INPUTS: return "Too many object inputs provided"; -#ifndef FIX_747_ISM_TODOS - case IVAS_ERR_INDEX_OUT_OF_BOUNDS: - return "Index out of bounds"; -#endif case IVAS_ERR_RECONFIGURE_NOT_SUPPORTED: return "Reconfigure not supported"; case IVAS_ERR_INVALID_FEC_OFFSET: diff --git a/lib_com/options.h b/lib_com/options.h index a9d9bfb22b..2370c57c1d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_747_ISM_TODOS /* VA: issue 747 - address ISM ToDos */ #define FIX_ISMRENDERER_HANDLE_DEALLOC /* VA: issue 781: harmonize Deallocation of handle 'hIsmRendererData' */ #define FIX_782_OSBA_FUNCTION_NAMES /* VA: fix 782: correct OSBA function names */ #define PARAM_ISM_REFACTOR /* FhG: Issue 768: Refactoring to decouple hDirAC and hParamISM */ diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index 812c9915bb..cc2c7a8b46 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -62,9 +62,7 @@ static int16_t decode_radius( DEC_CORE_HANDLE st0, int16_t *last_radius_idx, int #define CNG_MD_MAX_DIFF_AZIMUTH 5 #define CNG_MD_MAX_DIFF_ELEVATION 5 -#ifdef FIX_747_ISM_TODOS #define MAX_BITS_ISM_METADATA ( 2 * ISM_EXTENDED_METADATA_BITS + MAX_NUM_OBJECTS * ( 1 /*number of objects*/ + ISM_METADATA_MD_FLAG_BITS + 2 * ISM_METADATA_FLAG_BITS + ISM_METADATA_IS_NDP_BITS + 1 /*abs.flag*/ + ISM_AZIMUTH_NBITS + ISM_ELEVATION_NBITS + 1 /*abs.flag*/ + ISM_RADIUS_NBITS + 1 /*abs.flag*/ + ISM_AZIMUTH_NBITS + ISM_ELEVATION_NBITS ) + 10 /* margin */ ) /* max. bit-budget of ISM metadata */ -#endif /*-------------------------------------------------------------------* @@ -169,11 +167,7 @@ ivas_error ivas_ism_metadata_dec( int16_t idx_angle1; int16_t idx_angle2; int16_t next_bit_pos_orig; -#ifdef FIX_747_ISM_TODOS uint16_t i, bstr_meta[MAX_BITS_ISM_METADATA], *bstr_orig; -#else - uint16_t i, bstr_meta[MAX_BITS_METADATA], *bstr_orig; -#endif ISM_METADATA_HANDLE hIsmMetaData; int16_t nchan_transport_prev, ism_metadata_flag_global; int16_t null_metadata_flag[MAX_NUM_OBJECTS]; @@ -199,11 +193,7 @@ ivas_error ivas_ism_metadata_dec( set_s( lowrate_metadata_flag, 0, nchan_ism ); /* reverse the bitstream for easier reading of indices */ -#ifdef FIX_747_ISM_TODOS for ( i = 0; i < min( MAX_BITS_ISM_METADATA, last_bit_pos ); i++ ) -#else - for ( i = 0; i < min( MAX_BITS_METADATA, last_bit_pos ); i++ ) -#endif { bstr_meta[i] = st0->bit_stream[last_bit_pos - i]; } @@ -977,11 +967,7 @@ void ivas_ism_metadata_sid_dec( st0->next_bit_pos = 0; /* reverse the bitstream for easier reading of indices */ -#ifdef FIX_747_ISM_TODOS for ( i = 0; i < min( MAX_BITS_ISM_METADATA, last_bit_pos ); i++ ) -#else - for ( i = 0; i < min( MAX_BITS_METADATA, last_bit_pos ); i++ ) -#endif { bstr_meta[i] = st0->bit_stream[last_bit_pos - i]; } diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 03167e90f7..2212bb4d33 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -247,7 +247,6 @@ ivas_error ivas_ism_enc( } else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { -#ifdef FIX_747_ISM_TODOS #ifndef PARAM_ISM_REFACTOR if ( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK ) @@ -258,17 +257,6 @@ ivas_error ivas_ism_enc( { return error; } -#else -#ifndef PARAM_ISM_REFACTOR - ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, - nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, - st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ); -#else - ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, - nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hParamIsmDec->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, - st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ); -#endif -#endif } else /* ISM_MODE_DISC */ { @@ -287,17 +275,11 @@ ivas_error ivas_ism_enc( ism_total_brate_ref = ism_total_brate; -#ifdef FIX_747_ISM_TODOS if ( ( error = ivas_ism_metadata_enc( &ism_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, st_ivas->hMasa != NULL ? st_ivas->hMasa->data.hOmasaData->lp_noise_CPE : 0, flag_omasa_ener_brate, st_ivas->hMasa != NULL ? &( st_ivas->hMasa->data.hOmasaData->omasa_stereo_sw_cnt ) : NULL, st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK ) { return error; } -#else - ivas_ism_metadata_enc( &ism_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, - nb_bits_metadata, vad_flag, st_ivas->ism_mode, NULL, st_ivas->hEncoderConfig->ism_extended_metadata_flag, st_ivas->hMasa != NULL ? st_ivas->hMasa->data.hOmasaData->lp_noise_CPE : 0, flag_omasa_ener_brate, st_ivas->hMasa != NULL ? &( st_ivas->hMasa->data.hOmasaData->omasa_stereo_sw_cnt ) : NULL, - st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ); -#endif if ( st_ivas->hEncoderConfig->ivas_format == MASA_ISM_FORMAT ) { diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 55fb62538f..62ea6dceb8 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -453,11 +453,7 @@ ivas_error IVAS_ENC_FeedObjectMetadata( if ( ismIndex > hIvasEnc->st_ivas->hEncoderConfig->nchan_inp ) { -#ifdef FIX_747_ISM_TODOS return IVAS_ERR_INVALID_INDEX; -#else - return IVAS_ERR_INDEX_OUT_OF_BOUNDS; -#endif } error = ivas_set_ism_metadata( hIvasEnc->st_ivas->hIsmMetaData[ismIndex], metadata.azimuth, metadata.elevation, metadata.radius, metadata.yaw, metadata.pitch, metadata.non_diegetic_flag ); -- GitLab From fb2b478aee283d97754519c1221688a57b45e9d9 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:54:32 +0200 Subject: [PATCH 12/42] [cleanup] accept FIX_ISMRENDERER_HANDLE_DEALLOC --- lib_com/ivas_prot.h | 2 -- lib_com/options.h | 1 - lib_dec/ivas_init_dec.c | 9 --------- lib_dec/ivas_ism_dec.c | 19 ------------------- lib_dec/ivas_ism_renderer.c | 16 ---------------- lib_dec/ivas_sba_dec.c | 9 --------- 6 files changed, 56 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 3512c23349..eb79218855 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5306,11 +5306,9 @@ ivas_error ivas_ism_renderer_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); -#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC void ivas_ism_renderer_close( ISM_RENDERER_HANDLE *hIsmRendererData /* i/o: ISM renderer handle */ ); -#endif void ivas_ism_render( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ diff --git a/lib_com/options.h b/lib_com/options.h index 2370c57c1d..8422f20d3d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_ISMRENDERER_HANDLE_DEALLOC /* VA: issue 781: harmonize Deallocation of handle 'hIsmRendererData' */ #define FIX_782_OSBA_FUNCTION_NAMES /* VA: fix 782: correct OSBA function names */ #define PARAM_ISM_REFACTOR /* FhG: Issue 768: Refactoring to decouple hDirAC and hParamISM */ #define FIX_678_ISM_SBA_ASAN /* FhG: Issue 678: ASAN in ISM to SBA conversion in JBM */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 1873739274..0d0e3d2a64 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -2623,16 +2623,7 @@ void ivas_destroy_dec( ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 ); /* ISM renderer handle */ -#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC ivas_ism_renderer_close( &( st_ivas->hIsmRendererData ) ); -#else - if ( st_ivas->hIsmRendererData != NULL ) - { - free( st_ivas->hIsmRendererData->interpolator ); - free( st_ivas->hIsmRendererData ); - st_ivas->hIsmRendererData = NULL; - } -#endif /* DirAC handle */ if ( st_ivas->ivas_format == ISM_FORMAT ) diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index d422e1c553..38e854c2ac 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -220,17 +220,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( else { /* close the ISM renderer and reinitialize */ -#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC ivas_ism_renderer_close( &st_ivas->hIsmRendererData ); -#else - - if ( st_ivas->hIsmRendererData != NULL ) - { - free( st_ivas->hIsmRendererData->interpolator ); - free( st_ivas->hIsmRendererData ); - st_ivas->hIsmRendererData = NULL; - } -#endif if ( ( error = ivas_ism_renderer_open( st_ivas ) ) != IVAS_ERR_OK ) { @@ -309,16 +299,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( else { /* Close the ISM renderer */ -#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC ivas_ism_renderer_close( &st_ivas->hIsmRendererData ); -#else - if ( st_ivas->hIsmRendererData != NULL ) - { - free( st_ivas->hIsmRendererData->interpolator ); - free( st_ivas->hIsmRendererData ); - st_ivas->hIsmRendererData = NULL; - } -#endif } if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) diff --git a/lib_dec/ivas_ism_renderer.c b/lib_dec/ivas_ism_renderer.c index 6286d40278..7730465fc2 100644 --- a/lib_dec/ivas_ism_renderer.c +++ b/lib_dec/ivas_ism_renderer.c @@ -108,7 +108,6 @@ ivas_error ivas_ism_renderer_open( } -#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC /*-------------------------------------------------------------------------* * ivas_ism_renderer_close() * @@ -135,7 +134,6 @@ void ivas_ism_renderer_close( return; } -#endif /*-------------------------------------------------------------------------* @@ -471,21 +469,7 @@ void ivas_omasa_separate_object_renderer_close( } } -#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC ivas_ism_renderer_close( &st_ivas->hIsmRendererData ); -#else - if ( st_ivas->hIsmRendererData != NULL ) - { - if ( st_ivas->hIsmRendererData->interpolator != NULL ) - { - free( st_ivas->hIsmRendererData->interpolator ); - st_ivas->hIsmRendererData->interpolator = NULL; - } - - free( st_ivas->hIsmRendererData ); - st_ivas->hIsmRendererData = NULL; - } -#endif return; } diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 899fbb78ef..6cbcbc8838 100755 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -592,16 +592,7 @@ ivas_error ivas_sba_dec_reconfigure( else if ( ism_mode_old == ISM_SBA_MODE_DISC && st_ivas->ism_mode == ISM_MODE_NONE ) { /* ISM renderer handle */ -#ifdef FIX_ISMRENDERER_HANDLE_DEALLOC ivas_ism_renderer_close( &st_ivas->hIsmRendererData ); -#else - if ( st_ivas->hIsmRendererData != NULL ) - { - free( st_ivas->hIsmRendererData->interpolator ); - free( st_ivas->hIsmRendererData ); - st_ivas->hIsmRendererData = NULL; - } -#endif ivas_ism_metadata_close( st_ivas->hIsmMetaData, 0 ); ivas_osba_data_close( &st_ivas->hSbaIsmData ); -- GitLab From 045e736d5cdd5997f0c617c2ba7a90fef752e552 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:55:13 +0200 Subject: [PATCH 13/42] [cleanup] accept FIX_782_OSBA_FUNCTION_NAMES --- lib_com/ivas_prot.h | 15 ------- lib_com/options.h | 1 - lib_dec/ivas_dec.c | 4 -- lib_dec/ivas_init_dec.c | 21 --------- lib_dec/ivas_osba_dec.c | 99 ----------------------------------------- lib_dec/ivas_sba_dec.c | 13 ------ lib_dec/ivas_stat_dec.h | 4 -- 7 files changed, 157 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index eb79218855..be9427ee35 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5710,19 +5710,10 @@ void ivas_osba_enc( const int16_t sba_planar /* i : planar SBA flag */ ); -#ifdef FIX_782_OSBA_FUNCTION_NAMES ivas_error ivas_osba_data_open( -#else -ivas_error ivas_masa_ism_data_open( -#endif Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ ); -#ifndef FIX_782_OSBA_FUNCTION_NAMES -ivas_error ivas_sba_ism_separate_object_renderer_open( - Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -); -#endif #ifdef JBM_FOR_OSBA ivas_error ivas_osba_dirac_td_binaural_jbm( @@ -5754,15 +5745,9 @@ ivas_error ivas_osba_render( const int16_t output_frame /* i : output frame length per channel */ ); -#ifdef FIX_782_OSBA_FUNCTION_NAMES void ivas_osba_data_close( SBA_ISM_DATA_HANDLE *hSbaIsmData /* i/o: OSBA rendering handle */ ); -#else -void ivas_masa_ism_data_close( - MASA_ISM_DATA_HANDLE *hMasaIsmData /* i/o: MASA_ISM rendering handle */ -); -#endif /*----------------------------------------------------------------------------------* diff --git a/lib_com/options.h b/lib_com/options.h index 8422f20d3d..e3066b8772 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_782_OSBA_FUNCTION_NAMES /* VA: fix 782: correct OSBA function names */ #define PARAM_ISM_REFACTOR /* FhG: Issue 768: Refactoring to decouple hDirAC and hParamISM */ #define FIX_678_ISM_SBA_ASAN /* FhG: Issue 678: ASAN in ISM to SBA conversion in JBM */ #define FIX_676_JBM_USAN /* FhG: Issue 676: USAN in JBM */ diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index 18f6460a89..de76cd2528 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -738,11 +738,7 @@ ivas_error ivas_dec( { for ( n = 0; n < nchan_ism; n++ ) { -#ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( p_output[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); -#else - delay_signal( output[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); -#endif } } #ifdef JBM_FOR_OSBA diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 0d0e3d2a64..1747bd2766 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1621,11 +1621,7 @@ ivas_error ivas_init_decoder( return error; } -#ifdef FIX_782_OSBA_FUNCTION_NAMES if ( ( error = ivas_osba_data_open( st_ivas ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_masa_ism_data_open( st_ivas ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -2135,16 +2131,6 @@ ivas_error ivas_init_decoder( return error; } } -#ifndef FIX_782_OSBA_FUNCTION_NAMES - if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) - { - /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ - if ( ( error = ivas_sba_ism_separate_object_renderer_open( st_ivas ) ) != IVAS_ERR_OK ) - { - return error; - } - } -#endif } /*-----------------------------------------------------------------* @@ -2518,9 +2504,7 @@ void ivas_initialize_handles_dec( st_ivas->hHrtfParambin = NULL; st_ivas->hoa_dec_mtx = NULL; st_ivas->hMasaIsmData = NULL; -#ifdef FIX_782_OSBA_FUNCTION_NAMES st_ivas->hSbaIsmData = NULL; -#endif st_ivas->hHeadTrackData = NULL; st_ivas->hHrtfTD = NULL; @@ -2729,13 +2713,8 @@ void ivas_destroy_dec( st_ivas->hMonoDmxRenderer = NULL; } -#ifdef FIX_782_OSBA_FUNCTION_NAMES /* OSBA structure */ ivas_osba_data_close( &st_ivas->hSbaIsmData ); -#else - /* MASA ISM structure */ - ivas_masa_ism_data_close( &st_ivas->hMasaIsmData ); -#endif /* OMASA structure */ ivas_omasa_data_close( &st_ivas->hMasaIsmData ); diff --git a/lib_dec/ivas_osba_dec.c b/lib_dec/ivas_osba_dec.c index 0a35e3f5e2..e3cc62f71a 100644 --- a/lib_dec/ivas_osba_dec.c +++ b/lib_dec/ivas_osba_dec.c @@ -43,7 +43,6 @@ #include "wmc_auto.h" -#ifdef FIX_782_OSBA_FUNCTION_NAMES /*-------------------------------------------------------------------* * ivas_osba_data_open() * @@ -117,96 +116,6 @@ void ivas_osba_data_close( return; } -#else -/*-------------------------------------------------------------------* - * ivas_masa_ism_data_open() - * - * Allocate and initialize MASA_ISM rendering handle - *-------------------------------------------------------------------*/ - -ivas_error ivas_masa_ism_data_open( - Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ -) -{ - MASA_ISM_DATA_HANDLE hMasaIsmData; - - if ( ( hMasaIsmData = (MASA_ISM_DATA_HANDLE) malloc( sizeof( MASA_ISM_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MASA ISM data\n" ) ); - } - hMasaIsmData->delayBuffer = NULL; - - st_ivas->hMasaIsmData = hMasaIsmData; - - return IVAS_ERR_OK; -} - - -/*-------------------------------------------------------------------* - * ivas_masa_ism_data_close() - * - * Deallocate MASA_ISM rendering handle - *-------------------------------------------------------------------*/ - -void ivas_masa_ism_data_close( - MASA_ISM_DATA_HANDLE *hMasaIsmData /* i/o: MASA_ISM rendering handle */ -) -{ - int16_t i; - - if ( hMasaIsmData == NULL || *hMasaIsmData == NULL ) - { - return; - } - - if ( ( *hMasaIsmData )->delayBuffer != NULL ) - { - for ( i = 0; i < ( *hMasaIsmData )->delayBuffer_nchan; i++ ) - { - free( ( *hMasaIsmData )->delayBuffer[i] ); - } - free( ( *hMasaIsmData )->delayBuffer ); - ( *hMasaIsmData )->delayBuffer = NULL; - } - - free( *hMasaIsmData ); - *hMasaIsmData = NULL; - - return; -} - -/*-------------------------------------------------------------------------* - * ivas_sba_ism_separate_object_renderer_open() - * - * Open structures, reserve memory, and init values. - *-------------------------------------------------------------------------*/ - -ivas_error ivas_sba_ism_separate_object_renderer_open( - Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -) -{ - int16_t i; - - st_ivas->hMasaIsmData->delayBuffer_nchan = st_ivas->nchan_ism; - st_ivas->hMasaIsmData->delayBuffer_size = (int16_t) ( ( st_ivas->hDecoderConfig->output_Fs / 50 ) / MAX_PARAM_SPATIAL_SUBFRAMES ); - - if ( ( st_ivas->hMasaIsmData->delayBuffer = (float **) malloc( st_ivas->hMasaIsmData->delayBuffer_nchan * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for MASA ISM delay buffer \n" ) ); - } - - for ( i = 0; i < st_ivas->hMasaIsmData->delayBuffer_nchan; i++ ) - { - if ( ( st_ivas->hMasaIsmData->delayBuffer[i] = (float *) malloc( st_ivas->hMasaIsmData->delayBuffer_size * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for MASA ISM delay buffer \n" ) ); - } - set_zero( st_ivas->hMasaIsmData->delayBuffer[i], st_ivas->hMasaIsmData->delayBuffer_size ); - } - - return IVAS_ERR_OK; -} -#endif /*--------------------------------------------------------------------------* @@ -277,11 +186,7 @@ ivas_error ivas_osba_dirac_td_binaural( { for ( n = 0; n < st_ivas->nchan_ism; n++ ) { -#ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( data_separated_objects[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); -#else - delay_signal( data_separated_objects[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); -#endif } } @@ -446,11 +351,7 @@ ivas_error ivas_osba_render( for ( n = 0; n < nchan_ism; n++ ) { mvr2r( output_f[n], tmp_ism_out[n], output_frame ); -#ifdef FIX_782_OSBA_FUNCTION_NAMES delay_signal( tmp_ism_out[n], output_frame, st_ivas->hSbaIsmData->delayBuffer[n], st_ivas->hSbaIsmData->delayBuffer_size ); -#else - delay_signal( tmp_ism_out[n], output_frame, st_ivas->hMasaIsmData->delayBuffer[n], st_ivas->hMasaIsmData->delayBuffer_size ); -#endif } if ( st_ivas->renderer_type == RENDERER_OSBA_AMBI ) diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 6cbcbc8838..a822e9b381 100755 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -565,24 +565,11 @@ ivas_error ivas_sba_dec_reconfigure( } } -#ifdef FIX_782_OSBA_FUNCTION_NAMES /* Allocate memory for OSBA delay buffer */ if ( ( error = ivas_osba_data_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( ( error = ivas_masa_ism_data_open( st_ivas ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* Allocate 'hIsmRendererData' handle and memory for delay buffer within 'hMasaIsmData' */ - if ( ( error = ivas_sba_ism_separate_object_renderer_open( st_ivas ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif #ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT st_ivas->nchan_transport += st_ivas->nchan_ism; diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 3b3a882819..bddf2f0313 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -707,7 +707,6 @@ typedef struct ivas_spar_dec_lib_t } SPAR_DEC_DATA, *SPAR_DEC_HANDLE; -#ifdef FIX_782_OSBA_FUNCTION_NAMES /* Data structure for SBA_ISM rendering */ typedef struct ivas_osba_data { @@ -716,7 +715,6 @@ typedef struct ivas_osba_data int16_t delayBuffer_nchan; } SBA_ISM_DATA, *SBA_ISM_DATA_HANDLE; -#endif /*----------------------------------------------------------------------------------* @@ -1170,9 +1168,7 @@ typedef struct Decoder_Struct DIRAC_REND_HANDLE hDirACRend; /* DirAC renderer handle */ SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; /* Spatial parametric (DirAC rend, ParamBin, ParamISM) rendering common data handle. */ MASA_ISM_DATA_HANDLE hMasaIsmData; /* OMASA rendering handle */ -#ifdef FIX_782_OSBA_FUNCTION_NAMES SBA_ISM_DATA_HANDLE hSbaIsmData; /* OSBA rendering handle */ -#endif int16_t flag_omasa_brate; -- GitLab From fea284dc398793cab8a4c7eef56b894e33cb5159 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:56:04 +0200 Subject: [PATCH 14/42] [cleanup] accept PARAM_ISM_REFACTOR --- lib_com/ivas_prot.h | 11 - lib_com/ivas_stat_com.h | 2 - lib_com/options.h | 1 - lib_dec/ivas_dec.c | 4 - lib_dec/ivas_dirac_dec.c | 15 - lib_dec/ivas_init_dec.c | 6 - lib_dec/ivas_ism_dec.c | 4 - lib_dec/ivas_ism_dtx_dec.c | 12 - lib_dec/ivas_ism_param_dec.c | 1599 ---------------------------------- lib_dec/ivas_jbm_dec.c | 9 - lib_dec/ivas_stat_dec.h | 41 - lib_enc/ivas_init_enc.c | 19 - lib_enc/ivas_ism_enc.c | 21 - lib_enc/ivas_ism_param_enc.c | 148 ---- lib_enc/ivas_stat_enc.h | 5 - 15 files changed, 1897 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index be9427ee35..235c885a96 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -1052,17 +1052,10 @@ void ivas_param_ism_enc( const int16_t input_frame /* i : input frame length per channel */ ); -#ifndef PARAM_ISM_REFACTOR -void ivas_param_ism_enc_close( - DIRAC_ENC_HANDLE *hDirAC, /* i/o: encoder DirAC handle */ - const int32_t input_Fs /* i : input sampling_rate */ -); -#else void ivas_param_ism_enc_close( PARAM_ISM_CONFIG_HANDLE *hParamIsm, /* i/o: ParamISM handle */ const int32_t input_Fs /* i : input sampling_rate */ ); -#endif void ivas_ism_metadata_close( ISM_METADATA_HANDLE hIsmMetaData[], /* i/o : object metadata handles */ @@ -1101,11 +1094,7 @@ ivas_error ivas_param_ism_dec_open( ); void ivas_param_ism_dec_close( -#ifndef PARAM_ISM_REFACTOR - DIRAC_DEC_HANDLE *hDirAC, /* i/o: decoder DirAC handle */ -#else PARAM_ISM_DEC_HANDLE *hParamIsmDec, /* i/o: decoder ParamISM handle */ -#endif SPAT_PARAM_REND_COMMON_DATA_HANDLE *hSpatParamRendCom_out, /* i/o: common spatial renderer data */ const AUDIO_CONFIG output_config /* i : output audio configuration */ ); diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index 1968fb2f80..26e26ec6d6 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -789,10 +789,8 @@ typedef struct ivas_fb_mixer_state_structure typedef struct ivas_param_ism_data_structure { -#ifdef PARAM_ISM_REFACTOR IVAS_FB_MIXER_HANDLE hFbMixer; -#endif int16_t nbands; int16_t nblocks[MAX_PARAM_ISM_NBANDS]; int16_t band_grouping[MAX_PARAM_ISM_NBANDS + 1]; diff --git a/lib_com/options.h b/lib_com/options.h index e3066b8772..0837e0130b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define PARAM_ISM_REFACTOR /* FhG: Issue 768: Refactoring to decouple hDirAC and hParamISM */ #define FIX_678_ISM_SBA_ASAN /* FhG: Issue 678: ASAN in ISM to SBA conversion in JBM */ #define FIX_676_JBM_USAN /* FhG: Issue 676: USAN in JBM */ #define FIX_796_MCT_MODE_DIFF_JBM /* FhG: Issue 796: fix differences between JBM and non-JBM fOR MC */ diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index de76cd2528..ee08ba17df 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -183,11 +183,7 @@ ivas_error ivas_dec( } else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { -#ifndef PARAM_ISM_REFACTOR - if ( ( error = ivas_ism_metadata_dec( ivas_total_brate, st_ivas->nchan_ism, &( st_ivas->nchan_transport ), st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->bfi, nb_bits_metadata, st_ivas->ism_mode, st_ivas->hISMDTX, st_ivas->hDirAC->hParamIsm, &st_ivas->ism_extmeta_active, &st_ivas->ism_extmeta_cnt, st_ivas->hSCE[0]->hCoreCoder[0] ) ) != IVAS_ERR_OK ) -#else if ( ( error = ivas_ism_metadata_dec( ivas_total_brate, st_ivas->nchan_ism, &( st_ivas->nchan_transport ), st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->bfi, nb_bits_metadata, st_ivas->ism_mode, st_ivas->hISMDTX, st_ivas->hParamIsmDec->hParamIsm, &st_ivas->ism_extmeta_active, &st_ivas->ism_extmeta_cnt, st_ivas->hSCE[0]->hCoreCoder[0] ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index b7d4698e3c..5db3347ccc 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -85,10 +85,6 @@ static ivas_error ivas_dirac_dec_config_internal( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC Config\n" ) ); } -#ifndef PARAM_ISM_REFACTOR - hDirAC->hParamIsm = NULL; - hDirAC->hParamIsmRendering = NULL; -#endif st_ivas->hDirAC = hDirAC; } @@ -1537,9 +1533,6 @@ void ivas_dirac_dec_set_md_map( hDirAC = st_ivas->hDirAC; hSpatParamRendCom = st_ivas->hSpatParamRendCom; #ifdef DEBUGGING -#ifndef PARAM_ISM_REFACTOR - assert( hDirAC ); -#endif assert( hSpatParamRendCom ); #endif @@ -1570,11 +1563,7 @@ void ivas_dirac_dec_set_md_map( { ivas_jbm_dec_get_md_map_even_spacing( nCldfbTs, num_slots_in_subfr, 0, hSpatParamRendCom->dirac_md_buffer_length, hSpatParamRendCom->render_to_md_map ); } -#ifndef PARAM_ISM_REFACTOR - else if ( hDirAC->hConfig == NULL || hDirAC->hConfig->dec_param_estim == 0 ) -#else else if ( hDirAC == NULL || hDirAC->hConfig == NULL || hDirAC->hConfig->dec_param_estim == 0 ) -#endif { ivas_jbm_dec_get_md_map( DEFAULT_JBM_CLDFB_TIMESLOTS, nCldfbTs, num_slots_in_subfr, 0, hSpatParamRendCom->dirac_md_buffer_length, hSpatParamRendCom->render_to_md_map ); } @@ -1583,11 +1572,7 @@ void ivas_dirac_dec_set_md_map( ivas_jbm_dec_get_md_map( DEFAULT_JBM_CLDFB_TIMESLOTS, nCldfbTs, num_slots_in_subfr, hSpatParamRendCom->dirac_read_idx, hSpatParamRendCom->dirac_md_buffer_length, hSpatParamRendCom->render_to_md_map ); } -#ifndef PARAM_ISM_REFACTOR - if ( hDirAC->hConfig == NULL || hDirAC->hConfig->dec_param_estim == 0 ) -#else if ( hDirAC == NULL || hDirAC->hConfig == NULL || hDirAC->hConfig->dec_param_estim == 0 ) -#endif { float tmp; int16_t sf_idx, slot_idx, slot_idx_abs; diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 1747bd2766..e44ab8ab7c 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -2468,9 +2468,7 @@ void ivas_initialize_handles_dec( /* spatial coding handles */ st_ivas->hDirAC = NULL; -#ifdef PARAM_ISM_REFACTOR st_ivas->hParamIsmDec = NULL; -#endif st_ivas->hSpar = NULL; st_ivas->hMasa = NULL; st_ivas->hQMetaData = NULL; @@ -2612,11 +2610,7 @@ void ivas_destroy_dec( /* DirAC handle */ if ( st_ivas->ivas_format == ISM_FORMAT ) { -#ifndef PARAM_ISM_REFACTOR - ivas_param_ism_dec_close( &( st_ivas->hDirAC ), &( st_ivas->hSpatParamRendCom ), st_ivas->hDecoderConfig->output_config ); -#else ivas_param_ism_dec_close( &( st_ivas->hParamIsmDec ), &( st_ivas->hSpatParamRendCom ), st_ivas->hDecoderConfig->output_config ); -#endif } else { diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index 38e854c2ac..46a36ddf37 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -183,11 +183,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( if ( st_ivas->ism_mode == ISM_MODE_DISC && last_ism_mode == ISM_MODE_PARAM ) { /* Deallocate the ParamISM struct */ -#ifndef PARAM_ISM_REFACTOR - ivas_param_ism_dec_close( &( st_ivas->hDirAC ), &( st_ivas->hSpatParamRendCom ), st_ivas->hDecoderConfig->output_config ); -#else ivas_param_ism_dec_close( &( st_ivas->hParamIsmDec ), &( st_ivas->hSpatParamRendCom ), st_ivas->hDecoderConfig->output_config ); -#endif if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB #ifdef SPLIT_REND_WITH_HEAD_ROT diff --git a/lib_dec/ivas_ism_dtx_dec.c b/lib_dec/ivas_ism_dtx_dec.c index 81c756af7d..0cd8cac356 100644 --- a/lib_dec/ivas_ism_dtx_dec.c +++ b/lib_dec/ivas_ism_dtx_dec.c @@ -116,17 +116,10 @@ ivas_error ivas_ism_dtx_dec( if ( ivas_total_brate == IVAS_SID_5k2 && !st_ivas->bfi ) { -#ifndef PARAM_ISM_REFACTOR - if ( st_ivas->hDirAC != NULL ) - { - st_ivas->hDirAC->hParamIsm->flag_noisy_speech = flag_noisy_speech; - } -#else if ( st_ivas->hParamIsmDec != NULL ) { st_ivas->hParamIsmDec->hParamIsm->flag_noisy_speech = flag_noisy_speech; } -#endif st_ivas->hISMDTX.sce_id_dtx = sce_id_dtx; } @@ -137,13 +130,8 @@ ivas_error ivas_ism_dtx_dec( { for ( ch = 0; ch < nchan_ism; ch++ ) { -#ifndef PARAM_ISM_REFACTOR - st_ivas->hDirAC->azimuth_values[ch] = st_ivas->hIsmMetaData[ch]->azimuth; - st_ivas->hDirAC->elevation_values[ch] = st_ivas->hIsmMetaData[ch]->elevation; -#else st_ivas->hParamIsmDec->azimuth_values[ch] = st_ivas->hIsmMetaData[ch]->azimuth; st_ivas->hParamIsmDec->elevation_values[ch] = st_ivas->hIsmMetaData[ch]->elevation; -#endif } } diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index 38bedac3ae..c52d7dceb1 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -45,1604 +45,6 @@ #include "wmc_auto.h" -#ifndef PARAM_ISM_REFACTOR -/*-----------------------------------------------------------------------* - * Local function definitions - *-----------------------------------------------------------------------*/ - -static void ivas_param_ism_dec_dequant_DOA( - DIRAC_DEC_HANDLE hDirAC, /* i/o: decoder DirAC handle */ - const int16_t nchan_ism /* i : number of ISM channels */ -) -{ - int16_t i; - PARAM_ISM_CONFIG_HANDLE hParamIsm; - - hParamIsm = hDirAC->hParamIsm; - - assert( nchan_ism <= MAX_NUM_OBJECTS ); - - /* Get the azimuth and elevation values */ - for ( i = 0; i < nchan_ism; i++ ) - { - hDirAC->azimuth_values[i] = ism_dequant_meta( hParamIsm->azi_index[i], ism_azimuth_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_AZIMUTH_NBITS ); - hDirAC->elevation_values[i] = ism_dequant_meta( hParamIsm->ele_index[i], ism_elevation_borders, ISM_Q_STEP, ISM_Q_STEP_BORDER, 1 << ISM_ELEVATION_NBITS ); - } - - return; -} - - -static void ivas_param_ism_dec_dequant_powrat( - DIRAC_DEC_HANDLE hDirAC /* i/o: decoder DirAC handle */ -) -{ - int16_t band_idx, slot_idx; - PARAM_ISM_CONFIG_HANDLE hParamIsm; - - hParamIsm = hDirAC->hParamIsm; - - /* Get the power ratio values */ - for ( band_idx = 0; band_idx < hParamIsm->nbands; band_idx++ ) - { - for ( slot_idx = 0; slot_idx < hParamIsm->nblocks[band_idx]; slot_idx++ ) - { - hDirAC->power_ratios[band_idx][slot_idx][0] = (float) ( hParamIsm->power_ratios_idx[band_idx][slot_idx] ) / (float) ( ( 1 << PARAM_ISM_POW_RATIO_NBITS ) - 1 ) / 2.0f + 0.5f; - hDirAC->power_ratios[band_idx][slot_idx][1] = 1.0f - hDirAC->power_ratios[band_idx][slot_idx][0]; - } - } - - return; -} - - -static void ivas_ism_get_interpolator( - const int16_t subframe_nbslots, - float *interpolator ) -{ - int16_t interp_idx = 0; - - for ( interp_idx = 0; interp_idx < subframe_nbslots; interp_idx++ ) - { - interpolator[interp_idx] = (float) ( interp_idx + 1 ) / (float) subframe_nbslots; - } - - return; -} - - -static void ivas_ism_get_proto_matrix( - IVAS_OUTPUT_SETUP hOutSetup, - const int16_t nchan_transport, - float *proto_matrix ) -{ - int16_t idx; - - /* compute proto_matrix */ - switch ( nchan_transport ) - { - case 2: - { - if ( hOutSetup.nchan_out_woLFE ) - { - for ( idx = 0; idx < hOutSetup.nchan_out_woLFE; idx++ ) - { - if ( hOutSetup.ls_azimuth[idx] > 0.0f ) - { - proto_matrix[idx] = 1.0f; - proto_matrix[idx + hOutSetup.nchan_out_woLFE] = 0.0f; - } - else if ( hOutSetup.ls_azimuth[idx] < 0.0f ) - { - proto_matrix[idx] = 0.0f; - proto_matrix[idx + hOutSetup.nchan_out_woLFE] = 1.0f; - } - else - { - proto_matrix[idx] = 0.5f; - proto_matrix[idx + hOutSetup.nchan_out_woLFE] = 0.5f; - } - } - } - else - { - assert( 0 && "Error: number of output channels not supported" ); - } - break; - } - - default: - assert( 0 && "Error: number of transport channels not supported" ); - } - - return; -} - - -static void ivas_param_ism_collect_slot( - DIRAC_DEC_HANDLE hDirAC, /* i/o: decoder DirAC handle */ - float *Cldfb_RealBuffer_in, - float *Cldfb_ImagBuffer_in, - const int16_t ch, - float ref_power[], - float cx_diag[][PARAM_ISM_MAX_DMX] ) -{ - - int16_t band_idx, bin_idx; - int16_t brange[2]; - float tmp; - - /* loop over parameter bands to collect transport channel energies */ - for ( band_idx = 0; band_idx < hDirAC->hParamIsm->nbands; band_idx++ ) - { - brange[0] = hDirAC->hParamIsm->band_grouping[band_idx]; - brange[1] = hDirAC->hParamIsm->band_grouping[band_idx + 1]; - for ( bin_idx = brange[0]; bin_idx < brange[1]; bin_idx++ ) - { - tmp = 0.0f; - tmp += ( Cldfb_RealBuffer_in[bin_idx] * Cldfb_RealBuffer_in[bin_idx] ); - tmp += ( Cldfb_ImagBuffer_in[bin_idx] * Cldfb_ImagBuffer_in[bin_idx] ); - cx_diag[bin_idx][ch] += tmp; - ref_power[bin_idx] += tmp; - } - } - - return; -} - - -static void ivas_param_ism_compute_mixing_matrix( - const int16_t nchan_ism, /* i : number of ISM channels */ - DIRAC_DEC_HANDLE hDirAC, /* i/o: decoder DirAC handle */ - ISM_DTX_DATA_DEC hISMDTX, /* i : ISM DTX handle */ - float direct_response[MAX_NUM_OBJECTS][PARAM_ISM_MAX_CHAN], - const int16_t nchan_transport, - const int16_t nchan_out_woLFE, - float cx_diag[][PARAM_ISM_MAX_DMX], - float ref_power[], - float mixing_matrix[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX] ) -{ - int16_t band_idx, bin_idx; - int16_t i, w, obj_indx; - int16_t brange[2]; - float direct_power[MAX_NUM_OBJECTS]; - float cy_diag[PARAM_ISM_MAX_CHAN]; - float cy_diag_tmp[MAX_NUM_OBJECTS][PARAM_ISM_MAX_CHAN]; - float *dir_res_ptr; - float *proto_matrix; - float response_matrix[PARAM_ISM_MAX_CHAN * MAX_NUM_OBJECTS]; - int16_t num_wave; - - proto_matrix = hDirAC->hParamIsmRendering->proto_matrix; - - assert( ( nchan_ism == 3 ) || ( nchan_ism == 4 ) ); - assert( nchan_transport == 2 ); - - if ( hDirAC->hParamIsm->flag_noisy_speech || hISMDTX.dtx_flag ) - { - num_wave = nchan_ism; - } - else - { - num_wave = MAX_PARAM_ISM_WAVE; - } - set_zero( response_matrix, PARAM_ISM_MAX_CHAN * MAX_NUM_OBJECTS ); - - /* loop over parameter bands to compute the mixing matrix */ - for ( band_idx = 0; band_idx < hDirAC->hParamIsm->nbands; band_idx++ ) - { - brange[0] = hDirAC->hParamIsm->band_grouping[band_idx]; - brange[1] = hDirAC->hParamIsm->band_grouping[band_idx + 1]; - - /* Compute covaraince matrix from direct response*/ - for ( w = 0; w < num_wave; w++ ) - { - set_zero( cy_diag_tmp[w], nchan_out_woLFE ); - - if ( hDirAC->hParamIsm->flag_noisy_speech || hISMDTX.dtx_flag ) - { - dir_res_ptr = direct_response[w]; - } - else - { - obj_indx = hDirAC->hParamIsm->obj_indices[band_idx][0][w]; - dir_res_ptr = direct_response[obj_indx]; - } - mvr2r( dir_res_ptr, response_matrix + w * nchan_out_woLFE, nchan_out_woLFE ); - /* we only need the diagonal of Cy*/ - matrix_product_diag( dir_res_ptr, nchan_out_woLFE, 1, 0, dir_res_ptr, 1, nchan_out_woLFE, 0, cy_diag_tmp[w] ); - } - - for ( bin_idx = brange[0]; bin_idx < brange[1]; bin_idx++ ) - { - - set_zero( cy_diag, nchan_out_woLFE ); - for ( w = 0; w < num_wave; w++ ) - { - if ( hDirAC->hParamIsm->flag_noisy_speech || hISMDTX.dtx_flag ) - { - direct_power[w] = ( 1.0f / nchan_ism ) * ref_power[bin_idx]; - } - else - { - direct_power[w] = hDirAC->power_ratios[band_idx][0][w] * ref_power[bin_idx]; - } - - if ( direct_power[w] != 0.f ) - { - for ( i = 0; i < nchan_out_woLFE; i++ ) - { - cy_diag[i] += direct_power[w] * cy_diag_tmp[w][i]; - } - } - direct_power[w] = sqrtf( direct_power[w] ); - } - - /* Compute mixing matrix */ - computeMixingMatricesISM( nchan_transport, num_wave, nchan_out_woLFE, response_matrix, direct_power, cx_diag[bin_idx], cy_diag, proto_matrix, 1, - PARAM_MC_REG_SX, PARAM_MC_REG_GHAT, mixing_matrix[bin_idx] ); - } - } - - return; -} - - -static void ivas_param_ism_render_slot( - DIRAC_DEC_HANDLE hDirAC, - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom, - float *Cldfb_RealBuffer_in[PARAM_ISM_MAX_DMX], - float *Cldfb_ImagBuffer_in[PARAM_ISM_MAX_DMX], - float Cldfb_RealBuffer[PARAM_ISM_MAX_CHAN][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX], - float Cldfb_ImagBuffer[PARAM_ISM_MAX_CHAN][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX], - float mixing_matrix[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX], - const int16_t interpolator_idx, - const int16_t out_slot_idx, - const int16_t num_ch_LS, - const int16_t nchan_transport ) -{ - int16_t outchIdx, inchIdx, bin_idx; - float tmp_1, mixing_matrix_smooth; - - tmp_1 = hDirAC->hParamIsmRendering->interpolator[interpolator_idx]; - - for ( bin_idx = 0; bin_idx < hSpatParamRendCom->num_freq_bands; bin_idx++ ) - { - /* smooth the mixing matrix */ - for ( outchIdx = 0; outchIdx < num_ch_LS; outchIdx++ ) - { - for ( inchIdx = 0; inchIdx < nchan_transport; inchIdx++ ) - { - mixing_matrix_smooth = tmp_1 * mixing_matrix[bin_idx][outchIdx + inchIdx * num_ch_LS] + - ( 1 - tmp_1 ) * hDirAC->hParamIsmRendering->mixing_matrix_lin_old[bin_idx][outchIdx + inchIdx * num_ch_LS]; - - Cldfb_RealBuffer[outchIdx][out_slot_idx][bin_idx] += mixing_matrix_smooth * Cldfb_RealBuffer_in[inchIdx][bin_idx]; - Cldfb_ImagBuffer[outchIdx][out_slot_idx][bin_idx] += mixing_matrix_smooth * Cldfb_ImagBuffer_in[inchIdx][bin_idx]; - } - } - } - - return; -} - - -static void ivas_param_ism_rendering( - DIRAC_DEC_HANDLE hDirAC, - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom, - float Cldfb_RealBuffer_in[PARAM_ISM_MAX_DMX][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], - float Cldfb_ImagBuffer_in[PARAM_ISM_MAX_DMX][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], - float Cldfb_RealBuffer[PARAM_ISM_MAX_CHAN][4][CLDFB_NO_CHANNELS_MAX], - float Cldfb_ImagBuffer[PARAM_ISM_MAX_CHAN][4][CLDFB_NO_CHANNELS_MAX], - float mixing_matrix[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX], - const int16_t out_slot_idx, - const int16_t slot_idx, - const int16_t num_ch_LS, - const int16_t nchan_transport ) -{ - int16_t outchIdx, inchIdx, bin_idx; - float tmp_1, mixing_matrix_smooth; - - tmp_1 = hDirAC->hParamIsmRendering->interpolator[slot_idx]; - - for ( bin_idx = 0; bin_idx < hSpatParamRendCom->num_freq_bands; bin_idx++ ) - { - /* smooth the mixing matrix */ - for ( outchIdx = 0; outchIdx < num_ch_LS; outchIdx++ ) - { - for ( inchIdx = 0; inchIdx < nchan_transport; inchIdx++ ) - { - mixing_matrix_smooth = tmp_1 * mixing_matrix[bin_idx][outchIdx + inchIdx * num_ch_LS] + - ( 1 - tmp_1 ) * hDirAC->hParamIsmRendering->mixing_matrix_lin_old[bin_idx][outchIdx + inchIdx * num_ch_LS]; - - Cldfb_RealBuffer[outchIdx][out_slot_idx][bin_idx] += mixing_matrix_smooth * Cldfb_RealBuffer_in[inchIdx][slot_idx][bin_idx]; - Cldfb_ImagBuffer[outchIdx][out_slot_idx][bin_idx] += mixing_matrix_smooth * Cldfb_ImagBuffer_in[inchIdx][slot_idx][bin_idx]; - } - } - } - - return; -} - - -static ivas_error ivas_param_ism_rendering_init( - PARAM_ISM_RENDERING_HANDLE hParamIsmRendering, - IVAS_OUTPUT_SETUP hOutSetup, - const int16_t nchan_transport, - const int16_t subframe_nbslots, - AUDIO_CONFIG output_config ) -{ - int16_t bin_idx; - - /* initialization of mixing matrix buffer for smoothing */ - for ( bin_idx = 0; bin_idx < CLDFB_NO_CHANNELS_MAX; bin_idx++ ) - { - set_zero( hParamIsmRendering->mixing_matrix_lin_old[bin_idx], PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX ); - } - - /* memory allocation for proto matrix and interpolator */ - if ( ( hParamIsmRendering->proto_matrix = (float *) malloc( hOutSetup.nchan_out_woLFE * nchan_transport * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for proto matrix\n" ) ); - } - if ( ( hParamIsmRendering->interpolator = (float *) malloc( subframe_nbslots * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for interpolator\n" ) ); - } - -#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN - if ( !( output_config == IVAS_AUDIO_CONFIG_EXTERNAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) -#else - if ( !( output_config == IVAS_AUDIO_CONFIG_EXTERNAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) ) -#endif - { - /* computation of proto matrix */ - ivas_ism_get_proto_matrix( hOutSetup, nchan_transport, hParamIsmRendering->proto_matrix ); - } - - /* computation of interpolator*/ - ivas_ism_get_interpolator( subframe_nbslots, hParamIsmRendering->interpolator ); - - return IVAS_ERR_OK; -} - - -static void ivas_param_ism_update_mixing_matrix( - DIRAC_DEC_HANDLE hDirAC, - float mixing_matrix[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX], - const int16_t nchan_in, - const int16_t nchan_out ) -{ - int16_t inchIdx, outchIdx, bin_idx, band_idx; - int16_t brange[2]; - - for ( band_idx = 0; band_idx < hDirAC->hParamIsm->nbands; band_idx++ ) - { - brange[0] = hDirAC->hParamIsm->band_grouping[band_idx]; - brange[1] = hDirAC->hParamIsm->band_grouping[band_idx + 1]; - - for ( bin_idx = brange[0]; bin_idx < brange[1]; bin_idx++ ) - { - for ( inchIdx = 0; inchIdx < nchan_in; inchIdx++ ) - { - for ( outchIdx = 0; outchIdx < nchan_out; outchIdx++ ) - { - hDirAC->hParamIsmRendering->mixing_matrix_lin_old[bin_idx][outchIdx + inchIdx * nchan_out] = mixing_matrix[bin_idx][outchIdx + inchIdx * nchan_out]; - } - } - } - } - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_param_ism_dec_open() - * - * Open Param ISM handle - *-------------------------------------------------------------------------*/ - -ivas_error ivas_param_ism_dec_open( - Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -) -{ - int16_t i; - DIRAC_DEC_HANDLE hDirAC; - IVAS_OUTPUT_SETUP hOutSetup; - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; - AUDIO_CONFIG output_config; - int32_t output_Fs; - ivas_error error; - - error = IVAS_ERR_OK; - - push_wmops( "ivas_param_ism_dec_open" ); - - /*-----------------------------------------------------------------* - * prepare library opening - *-----------------------------------------------------------------*/ - - if ( ( hDirAC = (DIRAC_DEC_HANDLE) malloc( sizeof( DIRAC_DEC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC\n" ) ); - } - - if ( ( hSpatParamRendCom = (SPAT_PARAM_REND_COMMON_DATA_HANDLE) malloc( sizeof( SPAT_PARAM_REND_COMMON_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC\n" ) ); - } - - /* Assign memory to Param Object handle */ - if ( ( hDirAC->hParamIsm = (PARAM_ISM_CONFIG_HANDLE) malloc( sizeof( PARAM_ISM_CONFIG_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Param ISM\n" ) ); - } - - if ( ( hDirAC->hParamIsmRendering = (PARAM_ISM_RENDERING_HANDLE) malloc( sizeof( PARAM_ISM_RENDERING_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Param ISM Rendering handle\n" ) ); - } - - output_Fs = st_ivas->hDecoderConfig->output_Fs; - output_config = st_ivas->hDecoderConfig->output_config; - - ivas_param_ism_config( hDirAC->hParamIsm, st_ivas->nchan_ism ); - - /*-----------------------------------------------------------------* - * set input parameters - *-----------------------------------------------------------------*/ - - hSpatParamRendCom->slot_size = (int16_t) ( ( output_Fs / FRAMES_PER_SEC ) / CLDFB_NO_COL_MAX ); - hDirAC->hConfig = NULL; - set_s( hSpatParamRendCom->subframe_nbslots, 0, MAX_JBM_SUBFRAMES_5MS ); - set_s( hSpatParamRendCom->subframe_nbslots, JBM_CLDFB_SLOTS_IN_SUBFRAME, DEFAULT_JBM_SUBFRAMES_5MS ); - hSpatParamRendCom->nb_subframes = DEFAULT_JBM_SUBFRAMES_5MS; - hSpatParamRendCom->subframes_rendered = 0; - hSpatParamRendCom->slots_rendered = 0; - hSpatParamRendCom->num_slots = DEFAULT_JBM_SUBFRAMES_5MS * JBM_CLDFB_SLOTS_IN_SUBFRAME; - hSpatParamRendCom->num_freq_bands = (int16_t) ( output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ); - - hDirAC->hParamIsm->nbands = MAX_PARAM_ISM_NBANDS; - - for ( i = 0; i < ( hDirAC->hParamIsm->nbands + 1 ); i++ ) - { - hDirAC->hParamIsm->band_grouping[i] = Param_ISM_band_grouping[i]; - - if ( hDirAC->hParamIsm->band_grouping[i] > hSpatParamRendCom->num_freq_bands ) - { - hDirAC->hParamIsm->band_grouping[i] = hSpatParamRendCom->num_freq_bands; - } - } - - /*-----------------------------------------------------------------* - * output setup - *-----------------------------------------------------------------*/ - - /* hIntSetup and hOutSetup differs only for Binaural rendering */ - if ( output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) - { - /* nchan_out is essential for memory initialization for CLDFB Synthesis */ - st_ivas->hIntSetup.nchan_out_woLFE = st_ivas->nchan_ism; - st_ivas->hIntSetup.is_loudspeaker_setup = 1; - } - - hOutSetup = st_ivas->hIntSetup; - - if ( !( output_config == IVAS_AUDIO_CONFIG_MONO || output_config == IVAS_AUDIO_CONFIG_STEREO ) ) - { - /* Initialize Param ISM Rendering handle */ - if ( st_ivas->hDecoderConfig->Opt_tsm ) - { - if ( ( error = ivas_param_ism_rendering_init( hDirAC->hParamIsmRendering, hOutSetup, st_ivas->nchan_transport, MAX_JBM_CLDFB_TIMESLOTS, output_config ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else - { - if ( ( error = ivas_param_ism_rendering_init( hDirAC->hParamIsmRendering, hOutSetup, st_ivas->nchan_transport, CLDFB_NO_COL_MAX, output_config ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } - -#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN - if ( !( output_config == IVAS_AUDIO_CONFIG_EXTERNAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB || - output_config == IVAS_AUDIO_CONFIG_MONO || output_config == IVAS_AUDIO_CONFIG_STEREO || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ) -#else - if ( !( output_config == IVAS_AUDIO_CONFIG_EXTERNAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB || - output_config == IVAS_AUDIO_CONFIG_MONO || output_config == IVAS_AUDIO_CONFIG_STEREO ) ) -#endif - { - /* Initialize efap handle */ - if ( ( error = efap_init_data( &( st_ivas->hEFAPdata ), hOutSetup.ls_azimuth, hOutSetup.ls_elevation, hOutSetup.nchan_out_woLFE, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - /* Azi and Ele values are transmitted once per frame per object */ - set_zero( hDirAC->azimuth_values, MAX_NUM_OBJECTS ); - set_zero( hDirAC->elevation_values, MAX_NUM_OBJECTS ); - - hSpatParamRendCom->dirac_md_buffer_length = MAX_PARAM_SPATIAL_SUBFRAMES; - hSpatParamRendCom->dirac_bs_md_write_idx = 0; - hSpatParamRendCom->dirac_read_idx = 0; - hDirAC->spar_to_dirac_write_idx = 0; - -#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN - if ( output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) -#else - if ( output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) -#endif - { - if ( ( error = ivas_dirac_allocate_parameters( hSpatParamRendCom, 1 ) ) != IVAS_ERR_OK ) - { - return error; - } - - if ( ( error = ivas_dirac_allocate_parameters( hSpatParamRendCom, 2 ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - st_ivas->hISMDTX.dtx_flag = 0; - - st_ivas->hDirAC = hDirAC; - st_ivas->hSpatParamRendCom = hSpatParamRendCom; - - if ( st_ivas->hDecoderConfig->Opt_5ms ) - { - if ( st_ivas->renderer_type != RENDERER_MONO_DOWNMIX && st_ivas->renderer_type != RENDERER_DISABLE ) - { - int16_t nchan_transport = st_ivas->nchan_transport; - int16_t nchan_full = 0; - if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) - { - nchan_full = nchan_transport; - hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc = NULL; - hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc = NULL; - } - else - { - int16_t n_slots_to_alloc; - if ( st_ivas->hDecoderConfig->Opt_tsm == 1 ) - { - n_slots_to_alloc = MAX_JBM_CLDFB_TIMESLOTS; - } - else - { - n_slots_to_alloc = CLDFB_SLOTS_PER_SUBFRAME * MAX_PARAM_SPATIAL_SUBFRAMES; - } - if ( ( hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc = (float *) malloc( n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands * sizeof( float ) ) ) == NULL ) - - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Param ISM JBM Rendering handle\n" ) ); - } - set_zero( hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc, n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands ); - - if ( ( hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc = (float *) malloc( n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Param ISM JBM Rendering handle\n" ) ); - } - set_zero( hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc, n_slots_to_alloc * nchan_transport * hSpatParamRendCom->num_freq_bands ); - } - if ( st_ivas->hTcBuffer == NULL ) - { - if ( ( error = ivas_jbm_dec_tc_buffer_open( st_ivas, TC_BUFFER_MODE_RENDERER, nchan_transport, nchan_transport, nchan_full, NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ) ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } - else - { - hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc = NULL; - hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc = NULL; - if ( st_ivas->hTcBuffer == NULL ) - { - int16_t nchan_to_allocate = st_ivas->hDecoderConfig->nchan_out; - if ( ( error = ivas_jbm_dec_tc_buffer_open( st_ivas, TC_BUFFER_MODE_BUFFER, nchan_to_allocate, nchan_to_allocate, nchan_to_allocate, NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ) ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } - } - else - { - hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc = NULL; - hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc = NULL; - } - - pop_wmops(); - return error; -} - - -/*-------------------------------------------------------------------------* - * ivas_param_ism_dec_close() - * - * Close Param ISM handle - *-------------------------------------------------------------------------*/ - -void ivas_param_ism_dec_close( - DIRAC_DEC_HANDLE *hDirAC_out, /* i/o: decoder DirAC handle */ - SPAT_PARAM_REND_COMMON_DATA_HANDLE *hSpatParamRendCom_out, /* i/o: common spatial renderer data */ - AUDIO_CONFIG output_config /* i : output audio configuration */ -) -{ - if ( hDirAC_out != NULL && *hDirAC_out != NULL ) - { - DIRAC_DEC_HANDLE hDirAC; - hDirAC = *hDirAC_out; - - /* Config & CLDFB */ - if ( hDirAC->hParamIsm != NULL ) - { - free( hDirAC->hParamIsm ); - hDirAC->hParamIsm = NULL; - } - - if ( !( output_config == IVAS_AUDIO_CONFIG_MONO || output_config == IVAS_AUDIO_CONFIG_STEREO ) ) - { - /* Param ISM Rendering */ - if ( hDirAC->hParamIsmRendering->interpolator != NULL ) - { - free( hDirAC->hParamIsmRendering->interpolator ); - hDirAC->hParamIsmRendering->interpolator = NULL; - } - if ( hDirAC->hParamIsmRendering->proto_matrix != NULL ) - { - free( hDirAC->hParamIsmRendering->proto_matrix ); - hDirAC->hParamIsmRendering->proto_matrix = NULL; - } - } - - if ( hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc != NULL ) - { - free( hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc ); - hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc = NULL; - } - if ( hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc != NULL ) - { - free( hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc ); - hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc = NULL; - } - - if ( hDirAC->hParamIsmRendering != NULL ) - { - free( hDirAC->hParamIsmRendering ); - hDirAC->hParamIsmRendering = NULL; - } - - free( *hDirAC_out ); - *hDirAC_out = NULL; - } - - if ( hSpatParamRendCom_out != NULL && *hSpatParamRendCom_out != NULL ) - { - if ( output_config == IVAS_AUDIO_CONFIG_BINAURAL || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR || output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) - { - ivas_dirac_deallocate_parameters( *hSpatParamRendCom_out, 1 ); - ivas_dirac_deallocate_parameters( *hSpatParamRendCom_out, 2 ); - } - - free( *hSpatParamRendCom_out ); - *hSpatParamRendCom_out = NULL; - } - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_param_ism_dec() - * - * Param ISM decoder - *-------------------------------------------------------------------------*/ - -void ivas_param_ism_dec( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - float *output_f[] /* i/o: synthesized core-coder transport channels/DirAC output*/ -) -{ - int16_t ch, nchan_transport, nchan_out, nchan_out_woLFE, i; - int16_t subframe_idx, slot_idx, index_slot, bin_idx; - int32_t ivas_total_brate; - int16_t output_frame; - float *p_tc[PARAM_ISM_MAX_DMX]; - float ref_power[CLDFB_NO_CHANNELS_MAX]; - float cx_diag[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_DMX]; - /* CLDFB Input Buffers */ - float Cldfb_RealBuffer_in[PARAM_ISM_MAX_DMX][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; - float Cldfb_ImagBuffer_in[PARAM_ISM_MAX_DMX][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; - - /* CLDFB Output Buffers */ - float Cldfb_RealBuffer[PARAM_ISM_MAX_CHAN][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; - float Cldfb_ImagBuffer[PARAM_ISM_MAX_CHAN][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; - - /* Direct Response/EFAP Gains */ - float direct_response[MAX_NUM_OBJECTS][PARAM_ISM_MAX_CHAN]; - - /* Covariance Rendering */ - float mixing_matrix[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX]; - - DIRAC_DEC_HANDLE hDirAC; - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; - - IVAS_OUTPUT_SETUP hSetup; - - /* Initialization */ - hDirAC = st_ivas->hDirAC; - assert( hDirAC ); - hSpatParamRendCom = st_ivas->hSpatParamRendCom; - assert( hSpatParamRendCom ); - for ( i = 0; i < PARAM_ISM_MAX_DMX; i++ ) - { - p_tc[i] = output_f[i]; - } - - output_frame = (int16_t) ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC ); - - nchan_transport = st_ivas->nchan_transport; - if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) - { - nchan_out = st_ivas->nchan_ism; - nchan_out_woLFE = nchan_out; - st_ivas->hDecoderConfig->nchan_out = nchan_out; - } - else - { - nchan_out = st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe; - nchan_out_woLFE = st_ivas->hIntSetup.nchan_out_woLFE; - } - - ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; - - hSetup = st_ivas->hIntSetup; - - push_wmops( "ivas_param_ism_dec" ); - - /* set buffers to zero */ - for ( bin_idx = 0; bin_idx < CLDFB_NO_CHANNELS_MAX; bin_idx++ ) - { - set_zero( cx_diag[bin_idx], PARAM_ISM_MAX_DMX ); - } - set_zero( ref_power, CLDFB_NO_CHANNELS_MAX ); - - /* Frame-level Processing */ - /* De-quantization */ - if ( !( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) ) - { - ivas_param_ism_dec_dequant_DOA( hDirAC, st_ivas->nchan_ism ); - ivas_param_ism_dec_dequant_powrat( hDirAC ); - st_ivas->hISMDTX.dtx_flag = 0; - } - else - { - st_ivas->hISMDTX.dtx_flag = 1; - } - - /* obtain the direct response using EFAP */ - if ( !( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) ) - { - for ( i = 0; i < st_ivas->nchan_ism; i++ ) - { - efap_determine_gains( st_ivas->hEFAPdata, direct_response[i], hDirAC->azimuth_values[i], hDirAC->elevation_values[i], EFAP_MODE_EFAP ); - } - } - else - { - int16_t j; - - for ( i = 0; i < st_ivas->nchan_ism; i++ ) - { - for ( j = 0; j < nchan_out_woLFE; j++ ) - { - if ( i == j ) - { - direct_response[i][j] = 1.0f; - } - else - { - direct_response[i][j] = 0.0f; - } - } - } - - for ( j = 0; j < nchan_out_woLFE; j++ ) - { - if ( hDirAC->azimuth_values[j] > 0.0f ) - { - hDirAC->hParamIsmRendering->proto_matrix[j] = 1.0f; - hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.0f; - } - else - { - if ( hDirAC->azimuth_values[j] < 0.0f ) - { - hDirAC->hParamIsmRendering->proto_matrix[j] = 0.0f; - hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 1.0f; - } - else /* == 0.0f */ - { - hDirAC->hParamIsmRendering->proto_matrix[j] = 0.5f; - hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.5f; - } - } - } - } - - ivas_ism_param_dec_tc_gain_ajust( st_ivas, output_frame, output_frame / 2, p_tc ); - - for ( ch = 0; ch < nchan_transport; ch++ ) - { - /* CLDFB Analysis */ - for ( slot_idx = 0; slot_idx < CLDFB_NO_COL_MAX; slot_idx++ ) - { - cldfbAnalysis_ts( &( output_f[ch][hSpatParamRendCom->num_freq_bands * slot_idx] ), Cldfb_RealBuffer_in[ch][slot_idx], Cldfb_ImagBuffer_in[ch][slot_idx], hSpatParamRendCom->num_freq_bands, st_ivas->cldfbAnaDec[ch] ); - - ivas_param_ism_collect_slot( hDirAC, Cldfb_RealBuffer_in[ch][slot_idx], Cldfb_ImagBuffer_in[ch][slot_idx], ch, ref_power, cx_diag ); - } - } - - /* Obtain Mixing Matrix on a frame-level */ - for ( bin_idx = 0; bin_idx < hSpatParamRendCom->num_freq_bands; bin_idx++ ) - { - set_f( mixing_matrix[bin_idx], 0.0f, nchan_transport * nchan_out_woLFE ); - } - - /* Compute mixing matrix */ - ivas_param_ism_compute_mixing_matrix( st_ivas->nchan_ism, hDirAC, st_ivas->hISMDTX, direct_response, nchan_transport, nchan_out_woLFE, cx_diag, ref_power, mixing_matrix ); - - /* subframe loop for synthesis*/ - for ( subframe_idx = 0; subframe_idx < hSpatParamRendCom->nb_subframes; subframe_idx++ ) - { - uint16_t slot_idx_start = subframe_idx * hSpatParamRendCom->subframe_nbslots[subframe_idx]; - uint16_t idx_in; - uint16_t idx_lfe; - - /* Set some memories to zero */ - for ( ch = 0; ch < nchan_out_woLFE; ch++ ) - { - for ( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ ) - { - set_f( Cldfb_RealBuffer[ch][slot_idx], 0.0f, hSpatParamRendCom->num_freq_bands ); - set_f( Cldfb_ImagBuffer[ch][slot_idx], 0.0f, hSpatParamRendCom->num_freq_bands ); - } - } - - for ( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ ) - { - index_slot = slot_idx_start + slot_idx; - - /* Compute bandwise rendering to target LS using covariance rendering */ - ivas_param_ism_rendering( hDirAC, hSpatParamRendCom, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, - Cldfb_RealBuffer, Cldfb_ImagBuffer, mixing_matrix, slot_idx, index_slot, - nchan_out_woLFE, nchan_transport ); - } - - /* CLDFB Synthesis */ - idx_in = 0; - idx_lfe = 0; - - for ( ch = 0; ch < nchan_out; ch++ ) - { - if ( ( hSetup.num_lfe > 0 ) && ( hSetup.index_lfe[idx_lfe] == ch ) ) - { - set_zero( &( output_f[ch][slot_idx_start * hSpatParamRendCom->num_freq_bands] ), hSpatParamRendCom->subframe_nbslots[subframe_idx] * hSpatParamRendCom->num_freq_bands ); - if ( idx_lfe < ( hSetup.num_lfe - 1 ) ) - { - idx_lfe++; - } - } - else - { - float *RealBuffer[16]; - float *ImagBuffer[16]; - - /* open CLDFB buffer up to CLDFB_NO_CHANNELS_MAX bands for 48kHz */ - for ( i = 0; i < hSpatParamRendCom->subframe_nbslots[subframe_idx]; i++ ) - { - RealBuffer[i] = Cldfb_RealBuffer[idx_in][i]; - ImagBuffer[i] = Cldfb_ImagBuffer[idx_in][i]; - } - - cldfbSynthesis( RealBuffer, ImagBuffer, &( output_f[ch][slot_idx_start * hSpatParamRendCom->num_freq_bands] ), - hSpatParamRendCom->num_freq_bands * hSpatParamRendCom->subframe_nbslots[subframe_idx], st_ivas->cldfbSynDec[ch] ); - - idx_in++; - } - } - } - - /* copy the memories */ - /* store mixing matrix for next subframe */ - ivas_param_ism_update_mixing_matrix( hDirAC, mixing_matrix, nchan_transport, nchan_out_woLFE ); - - /* store MetaData parameters */ - for ( ch = 0; ch < st_ivas->nchan_ism; ch++ ) - { - if ( st_ivas->hDirAC->azimuth_values[ch] > 180.0f ) - { - st_ivas->hIsmMetaData[ch]->azimuth = st_ivas->hDirAC->azimuth_values[ch] - 360.0f; - } - else - { - st_ivas->hIsmMetaData[ch]->azimuth = st_ivas->hDirAC->azimuth_values[ch]; - } - - st_ivas->hIsmMetaData[ch]->elevation = st_ivas->hDirAC->elevation_values[ch]; - } - - pop_wmops(); - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_ism_dec_digest_tc() - * - * - *-------------------------------------------------------------------------*/ - -void ivas_ism_dec_digest_tc( - Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -) -{ - ivas_jbm_dec_td_renderers_adapt_subframes( st_ivas ); - - if ( st_ivas->renderer_type == RENDERER_TD_PANNING || - st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || - st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || - st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || - ( st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM && st_ivas->hDecoderConfig->Opt_Headrotation == 0 ) -#ifdef JBM_FOR_OSBA - || st_ivas->renderer_type == RENDERER_OSBA_STEREO || st_ivas->renderer_type == RENDERER_OSBA_AMBI || st_ivas->renderer_type == RENDERER_OSBA_LS -#endif - ) - { - int16_t i, num_objects; - int16_t azimuth, elevation; - - /* we have a full frame interpolator, adapt it */ - /* for BE testing */ - if ( ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC ) == st_ivas->hTcBuffer->n_samples_available ) - { - int16_t interpolator_length = (int16_t) ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC ); - if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ) - { - st_ivas->hIsmRendererData->interpolator[0] = 0.0f; - for ( i = 1; i < interpolator_length; i++ ) - { - st_ivas->hIsmRendererData->interpolator[i] = st_ivas->hIsmRendererData->interpolator[i - 1] + 1.f / ( interpolator_length - 1 ); - } - } - else - { - for ( i = 0; i < interpolator_length; i++ ) - { - st_ivas->hIsmRendererData->interpolator[i] = (float) i / ( (float) interpolator_length - 1 ); - } - } - } - else - { - ivas_jbm_dec_get_adapted_linear_interpolator( (int16_t) ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC ), st_ivas->hTcBuffer->n_samples_available, st_ivas->hIsmRendererData->interpolator ); - } - - /* also get the gains here */ -#ifdef JBM_FOR_OSBA - num_objects = st_ivas->nchan_ism; -#else - num_objects = st_ivas->nchan_transport; -#endif - for ( i = 0; i < num_objects; i++ ) - { - mvr2r( st_ivas->hIsmRendererData->gains[i], st_ivas->hIsmRendererData->prev_gains[i], MAX_OUTPUT_CHANNELS ); - - if ( st_ivas->intern_config == IVAS_AUDIO_CONFIG_STEREO ) - { - ivas_ism_get_stereo_gains( st_ivas->hIsmMetaData[i]->azimuth, st_ivas->hIsmMetaData[i]->elevation, &st_ivas->hIsmRendererData->gains[i][0], &st_ivas->hIsmRendererData->gains[i][1] ); - } - else - { - // TODO tmu review when #215 is resolved - azimuth = (int16_t) floorf( st_ivas->hIsmMetaData[i]->azimuth + 0.5f ); - elevation = (int16_t) floorf( st_ivas->hIsmMetaData[i]->elevation + 0.5f ); - - if ( ( st_ivas->renderer_type == RENDERER_TD_PANNING || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM -#ifdef JBM_FOR_OSBA - || st_ivas->renderer_type == RENDERER_OSBA_LS -#ifdef OSBA_ROOM_IR - || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM -#endif -#endif - ) && - st_ivas->hCombinedOrientationData == NULL ) - { - if ( st_ivas->hIntSetup.is_planar_setup ) - { - /* If no elevation support in output format, then rendering should be done with zero elevation */ - elevation = 0; - } - - if ( st_ivas->hEFAPdata != NULL ) - { - efap_determine_gains( st_ivas->hEFAPdata, st_ivas->hIsmRendererData->gains[i], azimuth, elevation, EFAP_MODE_EFAP ); - } - } - else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV -#ifdef JBM_FOR_OSBA - || st_ivas->renderer_type == RENDERER_OSBA_AMBI -#endif - ) - { - /*get HOA gets for direction (ACN/SN3D)*/ - ivas_dirac_dec_get_response( azimuth, elevation, st_ivas->hIsmRendererData->gains[i], st_ivas->hIntSetup.ambisonics_order ); - } - } - } - } - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_param_ism_dec_digest_tc() - * - * - *-------------------------------------------------------------------------*/ - -void ivas_param_ism_dec_digest_tc( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ - const uint16_t nCldfbSlots, /* i : number of CLFBS slots in the transport channels */ - float *transport_channels_f[] /* i : synthesized core-coder transport channels/DirAC output */ -) -{ - int16_t ch, nchan_transport, nchan_out, nchan_out_woLFE, i; - int16_t slot_idx, bin_idx; - int32_t ivas_total_brate; - int16_t output_frame; - float ref_power[CLDFB_NO_CHANNELS_MAX]; - float cx_diag[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_DMX]; - /* Direct Response/EFAP Gains */ - float direct_response[MAX_NUM_OBJECTS][PARAM_ISM_MAX_CHAN]; - DIRAC_DEC_HANDLE hDirAC; - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; - int16_t fade_len; - - /* Initialization */ - hDirAC = st_ivas->hDirAC; - assert( hDirAC ); - hSpatParamRendCom = st_ivas->hSpatParamRendCom; - assert( hSpatParamRendCom ); - output_frame = nCldfbSlots * hSpatParamRendCom->num_freq_bands; - fade_len = output_frame / 2; - - nchan_transport = st_ivas->nchan_transport; - ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; - - if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) - { - nchan_out = st_ivas->nchan_ism; - nchan_out_woLFE = nchan_out; - st_ivas->hDecoderConfig->nchan_out = nchan_out; - } - else - { - nchan_out = st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe; - nchan_out_woLFE = st_ivas->hIntSetup.nchan_out_woLFE; - } - - push_wmops( "ivas_param_ism_dec" ); - - /* general setup */ - ivas_jbm_dec_get_adapted_linear_interpolator( DEFAULT_JBM_CLDFB_TIMESLOTS, nCldfbSlots, hDirAC->hParamIsmRendering->interpolator ); - - ivas_dirac_dec_set_md_map( st_ivas, nCldfbSlots ); - - /* set buffers to zero */ - for ( bin_idx = 0; bin_idx < CLDFB_NO_CHANNELS_MAX; bin_idx++ ) - { - set_zero( cx_diag[bin_idx], PARAM_ISM_MAX_DMX ); - } - set_zero( ref_power, CLDFB_NO_CHANNELS_MAX ); - - /* Frame-level Processing */ - /* De-quantization */ - if ( !( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) ) - { - ivas_param_ism_dec_dequant_DOA( hDirAC, st_ivas->nchan_ism ); - ivas_param_ism_dec_dequant_powrat( hDirAC ); - st_ivas->hISMDTX.dtx_flag = 0; - } - else - { - st_ivas->hISMDTX.dtx_flag = 1; - } - - /* obtain the direct response using EFAP */ - if ( !( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) ) - { - for ( i = 0; i < st_ivas->nchan_ism; i++ ) - { - efap_determine_gains( st_ivas->hEFAPdata, direct_response[i], hDirAC->azimuth_values[i], hDirAC->elevation_values[i], EFAP_MODE_EFAP ); - } - } - else - { - int16_t j; - - for ( i = 0; i < st_ivas->nchan_ism; i++ ) - { - for ( j = 0; j < nchan_out_woLFE; j++ ) - { - if ( i == j ) - { - direct_response[i][j] = 1.0f; - } - else - { - direct_response[i][j] = 0.0f; - } - } - } - - for ( j = 0; j < nchan_out_woLFE; j++ ) - { - if ( hDirAC->azimuth_values[j] > 0.0f ) - { - hDirAC->hParamIsmRendering->proto_matrix[j] = 1.0f; - hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.0f; - } - else - { - if ( hDirAC->azimuth_values[j] < 0.0f ) - { - hDirAC->hParamIsmRendering->proto_matrix[j] = 0.0f; - hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 1.0f; - } - else /* == 0.0f */ - { - hDirAC->hParamIsmRendering->proto_matrix[j] = 0.5f; - hDirAC->hParamIsmRendering->proto_matrix[nchan_out_woLFE + j] = 0.5f; - } - } - } - } - if ( st_ivas->hDecoderConfig->Opt_tsm || !st_ivas->hDecoderConfig->Opt_5ms ) - { - /*TODO : FhG to check*/ - ivas_ism_param_dec_tc_gain_ajust( st_ivas, output_frame, fade_len, transport_channels_f ); - } - - for ( ch = 0; ch < nchan_transport; ch++ ) - { - /*-----------------------------------------------------------------* - * CLDFB Analysis - *-----------------------------------------------------------------*/ - for ( slot_idx = 0; slot_idx < nCldfbSlots; slot_idx++ ) - { - if ( st_ivas->hDecoderConfig->Opt_tsm || !st_ivas->hDecoderConfig->Opt_5ms ) - { - - float RealBuffer[CLDFB_NO_CHANNELS_MAX]; - float ImagBuffer[CLDFB_NO_CHANNELS_MAX]; - - cldfbAnalysis_ts( &( transport_channels_f[ch][hSpatParamRendCom->num_freq_bands * slot_idx] ), RealBuffer, ImagBuffer, hSpatParamRendCom->num_freq_bands, st_ivas->cldfbAnaDec[ch] ); - mvr2r( RealBuffer, &hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], hSpatParamRendCom->num_freq_bands ); - mvr2r( ImagBuffer, &hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], hSpatParamRendCom->num_freq_bands ); - } - - ivas_param_ism_collect_slot( hDirAC, &hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], &hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc[slot_idx * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands], ch, ref_power, cx_diag ); - } - } - - /* Obtain Mixing Matrix on a frame-level */ - for ( bin_idx = 0; bin_idx < hSpatParamRendCom->num_freq_bands; bin_idx++ ) - { - set_f( hDirAC->hParamIsmRendering->mixing_matrix_lin[bin_idx], 0.0f, nchan_transport * nchan_out_woLFE ); - } - - /* Compute mixing matrix */ - ivas_param_ism_compute_mixing_matrix( st_ivas->nchan_ism, hDirAC, st_ivas->hISMDTX, direct_response, nchan_transport, nchan_out_woLFE, cx_diag, ref_power, hDirAC->hParamIsmRendering->mixing_matrix_lin ); - - pop_wmops(); - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_ism_param_dec_tc_gain_ajust() - * - * - *-------------------------------------------------------------------------*/ - -void ivas_ism_param_dec_tc_gain_ajust( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ - const uint16_t nSamples, /* i : number of samples to be compensate */ - const uint16_t nFadeLength, /* i : length of the crossfade in samples */ - float *transport_channels_f[] /* i : synthesized core-coder transport channels/DirAC output*/ -) - -{ - int16_t i; - float gain, ene_tc, ene_sum, grad; - float last_gain; - - ene_tc = 0.0f; - ene_sum = 0.0f; - last_gain = st_ivas->hDirAC->hParamIsm->last_dmx_gain; - - for ( i = 0; i < nSamples; i++ ) - { - ene_tc += transport_channels_f[0][i] * transport_channels_f[0][i] + transport_channels_f[1][i] * transport_channels_f[1][i]; // L*L + R*R - ene_sum += ( transport_channels_f[0][i] + transport_channels_f[1][i] ) * ( transport_channels_f[0][i] + transport_channels_f[1][i] ); // (L+R)*(L+R) - } - gain = sqrtf( ene_tc / ( ene_sum + EPSILON ) ); - if ( st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame > 1 ) - { - /* Smoothing */ - gain = 0.75f * gain + 0.25f * last_gain; - /* 10ms ramp */ - grad = ( gain - last_gain ) / (float) nFadeLength; /* slope between two consecutive gains, 480 samples length */ - for ( i = 0; i < ( nFadeLength ); i++ ) - { - transport_channels_f[0][i] *= ( last_gain + i * grad ); - transport_channels_f[1][i] *= ( last_gain + i * grad ); - } - for ( ; i < nSamples; i++ ) - { - transport_channels_f[0][i] *= gain; - transport_channels_f[1][i] *= gain; - } - } - else - { - for ( i = 0; i < nSamples; i++ ) - { - transport_channels_f[0][i] *= gain; - transport_channels_f[1][i] *= gain; - } - } - - st_ivas->hDirAC->hParamIsm->last_dmx_gain = gain; - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_ism_param_dec_render_sf() - * - * - *-------------------------------------------------------------------------*/ - -static void ivas_ism_param_dec_render_sf( - Decoder_Struct *st_ivas, - IVAS_OUTPUT_SETUP hSetup, - const int16_t nchan_transport, - const int16_t nchan_out, - const int16_t nchan_out_woLFE, - float *output_f[] /* o : rendered time signal */ -) -{ - int16_t ch, slot_idx, i, index_slot; - /* CLDFB Output Buffers */ - float Cldfb_RealBuffer[PARAM_ISM_MAX_CHAN][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX]; - float Cldfb_ImagBuffer[PARAM_ISM_MAX_CHAN][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX]; - float *Cldfb_RealBuffer_in[PARAM_ISM_MAX_DMX]; - float *Cldfb_ImagBuffer_in[PARAM_ISM_MAX_DMX]; - DIRAC_DEC_HANDLE hDirAC; - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; - int16_t slot_idx_start; - int16_t idx_in; - int16_t idx_lfe; - int16_t subframe_idx; - - hDirAC = st_ivas->hDirAC; - hSpatParamRendCom = st_ivas->hSpatParamRendCom; - slot_idx_start = hSpatParamRendCom->slots_rendered; - subframe_idx = hSpatParamRendCom->subframes_rendered; - - /* Set some memories to zero */ - for ( ch = 0; ch < nchan_out_woLFE; ch++ ) - { - for ( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ ) - { - set_f( Cldfb_RealBuffer[ch][slot_idx], 0.0f, hSpatParamRendCom->num_freq_bands ); - set_f( Cldfb_ImagBuffer[ch][slot_idx], 0.0f, hSpatParamRendCom->num_freq_bands ); - } - } - - for ( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ ) - { - index_slot = slot_idx_start + slot_idx; - - for ( ch = 0; ch < nchan_transport; ch++ ) - { - Cldfb_RealBuffer_in[ch] = &hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc[index_slot * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands]; - Cldfb_ImagBuffer_in[ch] = &hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc[index_slot * hSpatParamRendCom->num_freq_bands * nchan_transport + ch * hSpatParamRendCom->num_freq_bands]; - } - - /* Compute bandwise rendering to target LS using covariance rendering */ - ivas_param_ism_render_slot( hDirAC, hSpatParamRendCom, Cldfb_RealBuffer_in, Cldfb_ImagBuffer_in, - Cldfb_RealBuffer, Cldfb_ImagBuffer, hDirAC->hParamIsmRendering->mixing_matrix_lin, index_slot, slot_idx, nchan_out_woLFE, nchan_transport ); - } - - /* CLDFB Synthesis */ - idx_in = 0; - idx_lfe = 0; - - for ( ch = 0; ch < nchan_out; ch++ ) - { - if ( ( hSetup.num_lfe > 0 ) && ( hSetup.index_lfe[idx_lfe] == ch ) ) - { - set_zero( output_f[ch], hSpatParamRendCom->subframe_nbslots[subframe_idx] * hSpatParamRendCom->num_freq_bands ); - if ( idx_lfe < ( hSetup.num_lfe - 1 ) ) - { - idx_lfe++; - } - } - else - { - float *RealBuffer[16]; - float *ImagBuffer[16]; - - /* open CLDFB buffer up to CLDFB_NO_CHANNELS_MAX bands for 48kHz */ - for ( i = 0; i < hSpatParamRendCom->subframe_nbslots[subframe_idx]; i++ ) - { - RealBuffer[i] = Cldfb_RealBuffer[idx_in][i]; - ImagBuffer[i] = Cldfb_ImagBuffer[idx_in][i]; - } - - cldfbSynthesis( RealBuffer, ImagBuffer, output_f[ch], hSpatParamRendCom->num_freq_bands * hSpatParamRendCom->subframe_nbslots[subframe_idx], st_ivas->cldfbSynDec[ch] ); - idx_in++; - } - } - - hSpatParamRendCom->slots_rendered += hSpatParamRendCom->subframe_nbslots[subframe_idx]; - hSpatParamRendCom->subframes_rendered++; - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_param_ism_dec_render() - * - * - *-------------------------------------------------------------------------*/ - -void ivas_param_ism_dec_render( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ - const uint16_t nSamplesAsked, /* i : number of CLDFB slots requested */ - uint16_t *nSamplesRendered, /* o : number of CLDFB slots rendered */ - uint16_t *nSamplesAvailableNext, /* o : number of CLDFB slots still to render */ - float *output_f[] /* o : rendered time signal */ -) -{ - int16_t ch, slots_to_render, first_sf, last_sf, subframe_idx; - uint16_t slot_size, n_samples_sf; - DIRAC_DEC_HANDLE hDirAC; - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; - IVAS_OUTPUT_SETUP hSetup; - int16_t nchan_transport, nchan_out, nchan_out_woLFE; - float *output_f_local[MAX_OUTPUT_CHANNELS]; - - hDirAC = st_ivas->hDirAC; - hSpatParamRendCom = st_ivas->hSpatParamRendCom; - hSetup = st_ivas->hIntSetup; -#ifdef DEBUGGING - assert( hDirAC ); - assert( hSpatParamRendCom ); -#endif - nchan_transport = st_ivas->nchan_transport; - if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL ) - { - nchan_out = st_ivas->nchan_ism; - nchan_out_woLFE = nchan_out; - st_ivas->hDecoderConfig->nchan_out = nchan_out; - } - else - { - nchan_out = st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe; - nchan_out_woLFE = st_ivas->hIntSetup.nchan_out_woLFE; - } - slot_size = NS2SA( st_ivas->hDecoderConfig->output_Fs, CLDFB_SLOT_NS ); - - /* loop for synthesis, assume we always have to render in multiples of 5ms subframes with spills */ - slots_to_render = min( hSpatParamRendCom->num_slots - hSpatParamRendCom->slots_rendered, nSamplesAsked / slot_size ); - *nSamplesRendered = slots_to_render * slot_size; - first_sf = hSpatParamRendCom->subframes_rendered; - last_sf = first_sf; - - while ( slots_to_render > 0 ) - { - slots_to_render -= hSpatParamRendCom->subframe_nbslots[last_sf]; - last_sf++; - } -#ifdef DEBUGGING - assert( slots_to_render == 0 ); -#endif - - for ( ch = 0; ch < nchan_out; ch++ ) - { - output_f_local[ch] = &output_f[ch][0]; - } - - for ( subframe_idx = first_sf; subframe_idx < last_sf; subframe_idx++ ) - { - ivas_ism_param_dec_render_sf( st_ivas, hSetup, nchan_transport, nchan_out, nchan_out_woLFE, output_f_local ); - n_samples_sf = hSpatParamRendCom->subframe_nbslots[subframe_idx] * hSpatParamRendCom->slot_size; - for ( ch = 0; ch < nchan_out; ch++ ) - { - output_f_local[ch] += n_samples_sf; - } - } - - if ( hSpatParamRendCom->slots_rendered == hSpatParamRendCom->num_slots ) - { - /* copy the memories */ - /* store mixing matrix for next subframe */ - ivas_param_ism_update_mixing_matrix( hDirAC, hDirAC->hParamIsmRendering->mixing_matrix_lin, nchan_transport, nchan_out_woLFE ); - - /* store MetaData parameters */ - for ( ch = 0; ch < st_ivas->nchan_ism; ch++ ) - { - if ( st_ivas->hDirAC->azimuth_values[ch] > 180.0f ) - { - st_ivas->hIsmMetaData[ch]->azimuth = st_ivas->hDirAC->azimuth_values[ch] - 360.0f; - } - else - { - st_ivas->hIsmMetaData[ch]->azimuth = st_ivas->hDirAC->azimuth_values[ch]; - } - - st_ivas->hIsmMetaData[ch]->elevation = st_ivas->hDirAC->elevation_values[ch]; - } - } - - *nSamplesAvailableNext = ( hSpatParamRendCom->num_slots - hSpatParamRendCom->slots_rendered ) * slot_size; - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_param_ism_params_to_masa_param_mapping() - * - * - *-------------------------------------------------------------------------*/ - -void ivas_param_ism_params_to_masa_param_mapping( - Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -) -{ - DIRAC_DEC_HANDLE hDirAC; - SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom; - int16_t nBins; - int16_t band_idx, bin_idx, sf_idx; - int16_t brange[2]; - int16_t azimuth[2]; - int16_t elevation[2]; - float power_ratio[2]; - int32_t ivas_total_brate; - - hDirAC = st_ivas->hDirAC; - hSpatParamRendCom = st_ivas->hSpatParamRendCom; - nBins = hSpatParamRendCom->num_freq_bands; - - ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; - - if ( !( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) ) - { - ivas_param_ism_dec_dequant_DOA( hDirAC, st_ivas->nchan_ism ); - ivas_param_ism_dec_dequant_powrat( hDirAC ); - st_ivas->hISMDTX.dtx_flag = 0; - } - else - { - st_ivas->hISMDTX.dtx_flag = 1; - } - - if ( st_ivas->nchan_ism > 1 ) - { - if ( st_ivas->hISMDTX.dtx_flag ) - { - float energy_ratio; - energy_ratio = powf( st_ivas->hSCE[0]->hCoreCoder[0]->hFdCngDec->hFdCngCom->coherence, 2.0f ); - - hSpatParamRendCom->numSimultaneousDirections = 1; - azimuth[0] = (int16_t) roundf( hDirAC->azimuth_values[0] ); - elevation[0] = (int16_t) roundf( hDirAC->elevation_values[0] ); - - for ( sf_idx = 0; sf_idx < MAX_PARAM_SPATIAL_SUBFRAMES; sf_idx++ ) - { - for ( bin_idx = 0; bin_idx < nBins; bin_idx++ ) - { - hSpatParamRendCom->azimuth[sf_idx][bin_idx] = azimuth[0]; - hSpatParamRendCom->elevation[sf_idx][bin_idx] = elevation[0]; - - hSpatParamRendCom->energy_ratio1[sf_idx][bin_idx] = energy_ratio; - - hSpatParamRendCom->spreadCoherence[sf_idx][bin_idx] = 0.0f; - hSpatParamRendCom->surroundingCoherence[sf_idx][bin_idx] = 0.0; - } - } - } - else - { - hSpatParamRendCom->numSimultaneousDirections = 2; - for ( band_idx = 0; band_idx < hDirAC->hParamIsm->nbands; band_idx++ ) - { - brange[0] = hDirAC->hParamIsm->band_grouping[band_idx]; - brange[1] = hDirAC->hParamIsm->band_grouping[band_idx + 1]; - - azimuth[0] = (int16_t) roundf( hDirAC->azimuth_values[hDirAC->hParamIsm->obj_indices[band_idx][0][0]] ); - elevation[0] = (int16_t) roundf( hDirAC->elevation_values[hDirAC->hParamIsm->obj_indices[band_idx][0][0]] ); - power_ratio[0] = hDirAC->power_ratios[band_idx][0][0]; - - azimuth[1] = (int16_t) roundf( hDirAC->azimuth_values[hDirAC->hParamIsm->obj_indices[band_idx][0][1]] ); - elevation[1] = (int16_t) roundf( hDirAC->elevation_values[hDirAC->hParamIsm->obj_indices[band_idx][0][1]] ); - power_ratio[1] = hDirAC->power_ratios[band_idx][0][1]; - - for ( sf_idx = 0; sf_idx < MAX_PARAM_SPATIAL_SUBFRAMES; sf_idx++ ) - { - for ( bin_idx = brange[0]; bin_idx < brange[1]; bin_idx++ ) - { - hSpatParamRendCom->azimuth[sf_idx][bin_idx] = azimuth[0]; - hSpatParamRendCom->elevation[sf_idx][bin_idx] = elevation[0]; - hSpatParamRendCom->energy_ratio1[sf_idx][bin_idx] = power_ratio[0]; - hSpatParamRendCom->azimuth2[sf_idx][bin_idx] = azimuth[1]; - hSpatParamRendCom->elevation2[sf_idx][bin_idx] = elevation[1]; - hSpatParamRendCom->energy_ratio2[sf_idx][bin_idx] = power_ratio[1]; - } - } - } - - for ( sf_idx = 0; sf_idx < MAX_PARAM_SPATIAL_SUBFRAMES; sf_idx++ ) - { - for ( bin_idx = 0; bin_idx < nBins; bin_idx++ ) - { - hSpatParamRendCom->spreadCoherence[sf_idx][bin_idx] = 0.0f; - hSpatParamRendCom->spreadCoherence2[sf_idx][bin_idx] = 0.0f; - hSpatParamRendCom->surroundingCoherence[sf_idx][bin_idx] = 0.0; - } - } - } - } - else - { - hSpatParamRendCom->numSimultaneousDirections = 1; - azimuth[0] = (int16_t) roundf( hDirAC->azimuth_values[0] ); - elevation[0] = (int16_t) roundf( hDirAC->elevation_values[0] ); - - for ( sf_idx = 0; sf_idx < MAX_PARAM_SPATIAL_SUBFRAMES; sf_idx++ ) - { - for ( bin_idx = 0; bin_idx < nBins; bin_idx++ ) - { - hSpatParamRendCom->azimuth[sf_idx][bin_idx] = azimuth[0]; - hSpatParamRendCom->elevation[sf_idx][bin_idx] = elevation[0]; - hSpatParamRendCom->energy_ratio1[sf_idx][bin_idx] = 1.0f; - hSpatParamRendCom->spreadCoherence[sf_idx][bin_idx] = 0.0f; - hSpatParamRendCom->surroundingCoherence[sf_idx][bin_idx] = 0.0; - } - } - } - - return; -} - - -#else /*-----------------------------------------------------------------------* * Local function definitions *-----------------------------------------------------------------------*/ @@ -3215,4 +1617,3 @@ void ivas_param_ism_params_to_masa_param_mapping( return; } -#endif diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 36104a3d03..8409691212 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -160,11 +160,7 @@ ivas_error ivas_jbm_dec_tc( } else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { -#ifndef PARAM_ISM_REFACTOR - if ( ( error = ivas_ism_metadata_dec( ivas_total_brate, st_ivas->nchan_ism, &( st_ivas->nchan_transport ), st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->bfi, nb_bits_metadata, st_ivas->ism_mode, st_ivas->hISMDTX, st_ivas->hDirAC->hParamIsm, &st_ivas->ism_extmeta_active, &st_ivas->ism_extmeta_cnt, st_ivas->hSCE[0]->hCoreCoder[0] ) ) != IVAS_ERR_OK ) -#else if ( ( error = ivas_ism_metadata_dec( ivas_total_brate, st_ivas->nchan_ism, &( st_ivas->nchan_transport ), st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->bfi, nb_bits_metadata, st_ivas->ism_mode, st_ivas->hISMDTX, st_ivas->hParamIsmDec->hParamIsm, &st_ivas->ism_extmeta_active, &st_ivas->ism_extmeta_cnt, st_ivas->hSCE[0]->hCoreCoder[0] ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -2744,13 +2740,8 @@ void ivas_jbm_dec_copy_tc_no_tsm( if ( st_ivas->ivas_format == ISM_FORMAT ) { -#ifndef PARAM_ISM_REFACTOR - cldfb_real_buffer = st_ivas->hDirAC->hParamIsmRendering->Cldfb_RealBuffer_tc; - cldfb_imag_buffer = st_ivas->hDirAC->hParamIsmRendering->Cldfb_ImagBuffer_tc; -#else cldfb_real_buffer = st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_RealBuffer_tc; cldfb_imag_buffer = st_ivas->hParamIsmDec->hParamIsmRendering->Cldfb_ImagBuffer_tc; -#endif num_freq_bands = st_ivas->hSpatParamRendCom->num_freq_bands; ivas_ism_param_dec_tc_gain_ajust( st_ivas, output_frame, output_frame / 2, tc ); } diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index bddf2f0313..879299fab7 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -399,44 +399,6 @@ typedef struct } ISM_DTX_DATA_DEC; -#ifndef PARAM_ISM_REFACTOR -/*----------------------------------------------------------------------------------* - * DirAC decoder structures - *----------------------------------------------------------------------------------*/ - -typedef struct param_ism_rendering -{ - float *proto_matrix; - float *interpolator; - float mixing_matrix_lin_old[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX]; - float mixing_matrix_lin[CLDFB_NO_CHANNELS_MAX][PARAM_ISM_MAX_CHAN * PARAM_ISM_MAX_DMX]; - float *Cldfb_RealBuffer_tc; - float *Cldfb_ImagBuffer_tc; - -} PARAM_ISM_RENDERING_DATA, *PARAM_ISM_RENDERING_HANDLE; - - -typedef struct ivas_dirac_dec_data_structure -{ - DIRAC_CONFIG_DATA_HANDLE hConfig; - - /*Parameter decoding*/ - float azimuth_values[MAX_PARAM_SPATIAL_SUBFRAMES * IVAS_MAX_NUM_BANDS]; - float elevation_values[MAX_PARAM_SPATIAL_SUBFRAMES * IVAS_MAX_NUM_BANDS]; - int16_t band_grouping[IVAS_MAX_NUM_BANDS + 1]; - - int16_t dithering_seed; - int16_t spar_to_dirac_write_idx; - - /*sub-modules*/ - PARAM_ISM_CONFIG_HANDLE hParamIsm; /* Parametric ISM handle */ - float power_ratios[MAX_PARAM_ISM_NBANDS][MAX_PARAM_ISM_NBLOCKS][MAX_PARAM_ISM_WAVE]; - PARAM_ISM_RENDERING_HANDLE hParamIsmRendering; - - IVAS_FB_MIXER_HANDLE hFbMdft; - -} DIRAC_DEC_DATA, *DIRAC_DEC_HANDLE; -#else /*----------------------------------------------------------------------------------* * ParamISM decoder structures *----------------------------------------------------------------------------------*/ @@ -482,7 +444,6 @@ typedef struct ivas_dirac_dec_data_structure IVAS_FB_MIXER_HANDLE hFbMdft; } DIRAC_DEC_DATA, *DIRAC_DEC_HANDLE; -#endif /*----------------------------------------------------------------------------------* @@ -1118,9 +1079,7 @@ typedef struct Decoder_Struct ISM_DTX_DATA_DEC hISMDTX; /* ISM DTX structure */ ISM_RENDERER_HANDLE hIsmRendererData; /* ISM renderer handle */ DIRAC_DEC_HANDLE hDirAC; /* DirAC handle */ -#ifdef PARAM_ISM_REFACTOR PARAM_ISM_DEC_HANDLE hParamIsmDec; /* ParamISM handle */ -#endif SPAR_DEC_HANDLE hSpar; /* SPAR handle */ IVAS_QMETADATA_HANDLE hQMetaData; /* q_metadata handle */ MCT_DEC_HANDLE hMCT; /* MCT handle */ diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index adbabd4061..f8c0f14a18 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -322,10 +322,8 @@ void ivas_initialize_handles_enc( /* DirAC handle */ st_ivas->hDirAC = NULL; -#ifdef PARAM_ISM_REFACTOR /* ParamISM handle */ st_ivas->hParamIsm = NULL; -#endif /* SPAR handle */ st_ivas->hSpar = NULL; @@ -1091,11 +1089,6 @@ void ivas_destroy_enc( ) { int16_t i, n, nchan_inp; -#ifndef PARAM_ISM_REFACTOR - IVAS_FORMAT ivas_format; - - ivas_format = st_ivas->hEncoderConfig->ivas_format; -#endif nchan_inp = st_ivas->hEncoderConfig->nchan_inp; /* SCE handles */ @@ -1145,23 +1138,11 @@ void ivas_destroy_enc( /* Q Metadata handle */ ivas_qmetadata_close( &( st_ivas->hQMetaData ) ); -#ifndef PARAM_ISM_REFACTOR - /* DirAC handle */ - if ( ivas_format == ISM_FORMAT ) - { - ivas_param_ism_enc_close( &( st_ivas->hDirAC ), st_ivas->hEncoderConfig->input_Fs ); - } - else - { - ivas_dirac_enc_close( &( st_ivas->hDirAC ), st_ivas->hEncoderConfig->input_Fs ); - } -#else /* DirAC handle */ ivas_dirac_enc_close( &( st_ivas->hDirAC ), st_ivas->hEncoderConfig->input_Fs ); /* ParamISM handle */ ivas_param_ism_enc_close( &( st_ivas->hParamIsm ), st_ivas->hEncoderConfig->input_Fs ); -#endif /* SPAR handle */ ivas_spar_enc_close( &( st_ivas->hSpar ), st_ivas->hEncoderConfig->input_Fs, nchan_inp, 0 ); diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 2212bb4d33..bae24163b1 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -210,19 +210,11 @@ ivas_error ivas_ism_enc( } #ifdef DEBUG_MODE_PARAM_ISM -#ifndef PARAM_ISM_REFACTOR - if ( st_ivas->hDirAC != NULL ) - dbgwrite( &( st_ivas->hDirAC->hParamIsm->flag_noisy_speech ), sizeof( int16_t ), 1, 1, "./res/ParamISM_noisy_speech_flag_enc.dat" ); - dbgwrite( &( st_ivas->hISMDTX->dtx_flag ), sizeof( int16_t ), 1, 1, "./res/ParamISM_DTX_CNG_flag_enc.dat" ); - dbgwrite( &( st_ivas->hISMDTX->sce_id_dtx ), sizeof( int16_t ), 1, input_frame, "./res/sce_id_dtx" ); - dbgwrite( &( dtx_flag ), sizeof( int16_t ), 1, input_frame, "./res/dtx_flag" ); -#else if ( st_ivas->hParamIsmDec != NULL ) dbgwrite( &( st_ivas->hParamIsmDec->hParamIsm->flag_noisy_speech ), sizeof( int16_t ), 1, 1, "./res/ParamISM_noisy_speech_flag_enc.dat" ); dbgwrite( &( st_ivas->hISMDTX->dtx_flag ), sizeof( int16_t ), 1, 1, "./res/ParamISM_DTX_CNG_flag_enc.dat" ); dbgwrite( &( st_ivas->hISMDTX->sce_id_dtx ), sizeof( int16_t ), 1, input_frame, "./res/sce_id_dtx" ); dbgwrite( &( dtx_flag ), sizeof( int16_t ), 1, input_frame, "./res/dtx_flag" ); -#endif #endif } @@ -234,11 +226,7 @@ ivas_error ivas_ism_enc( if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { ivas_param_ism_compute_noisy_speech_flag( st_ivas ); -#ifndef PARAM_ISM_REFACTOR - flag_noisy_speech = st_ivas->hDirAC->hParamIsm->flag_noisy_speech; -#else flag_noisy_speech = st_ivas->hParamIsm->flag_noisy_speech; -#endif } if ( dtx_flag ) @@ -247,13 +235,8 @@ ivas_error ivas_ism_enc( } else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { -#ifndef PARAM_ISM_REFACTOR - if ( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, - nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hDirAC->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK ) -#else if ( ( error = ivas_ism_metadata_enc( &st_ivas->hEncoderConfig->ivas_total_brate, nchan_ism, nchan_transport_ism, st_ivas->hIsmMetaData, st_ivas->hSCE, st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData, nb_bits_metadata, vad_flag, st_ivas->ism_mode, st_ivas->hParamIsm, st_ivas->hEncoderConfig->ism_extended_metadata_flag, -1, 0, NULL, st_ivas->hSCE[0]->hCoreCoder[0]->ini_frame ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -505,11 +488,7 @@ ivas_error ivas_ism_enc_config( if ( st_ivas->ism_mode == ISM_MODE_DISC && last_ism_mode == ISM_MODE_PARAM ) { /* Deallocate the memory used by ParamISM when switch to Discrete ISM */ -#ifndef PARAM_ISM_REFACTOR - ivas_param_ism_enc_close( &( st_ivas->hDirAC ), st_ivas->hEncoderConfig->input_Fs ); -#else ivas_param_ism_enc_close( &( st_ivas->hParamIsm ), st_ivas->hEncoderConfig->input_Fs ); -#endif } } diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index 91af2aebe6..6492c537ad 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -235,11 +235,7 @@ void ivas_param_ism_stereo_dmx( dmx_gain = 0; ene_dmx = 0; ene_data = 0; -#ifndef PARAM_ISM_REFACTOR - last_dmx_gain = st_ivas->hDirAC->hParamIsm->last_dmx_gain; -#else last_dmx_gain = st_ivas->hParamIsm->last_dmx_gain; -#endif /* Set the stereo dmx to zero */ set_zero( stereo_dmx[0], L_FRAME48k ); @@ -249,11 +245,7 @@ void ivas_param_ism_stereo_dmx( for ( i = 0; i < st_ivas->hEncoderConfig->nchan_ism; i++ ) { hIsmMetaData = st_ivas->hIsmMetaData[i]; -#ifndef PARAM_ISM_REFACTOR - last_cardioid_left = st_ivas->hDirAC->hParamIsm->last_cardioid_left[i]; -#else last_cardioid_left = st_ivas->hParamIsm->last_cardioid_left[i]; -#endif /*Compute the Cardioids for the corresponding object direction */ tmp = hIsmMetaData->azimuth * ( EVS_PI / 180 ); tmp_1 = ( EVS_PI / 2 ) + azi_shift; @@ -296,11 +288,7 @@ void ivas_param_ism_stereo_dmx( ene_data += ( tmp * tmp ); /* energy of all objects combined */ } } -#ifndef PARAM_ISM_REFACTOR - st_ivas->hDirAC->hParamIsm->last_cardioid_left[i] = cardioid_left[i]; -#else st_ivas->hParamIsm->last_cardioid_left[i] = cardioid_left[i]; -#endif } /* Energy compensation */ @@ -334,11 +322,7 @@ void ivas_param_ism_stereo_dmx( stereo_dmx[1][j] *= dmx_gain; } } -#ifndef PARAM_ISM_REFACTOR - st_ivas->hDirAC->hParamIsm->last_dmx_gain = dmx_gain; -#else st_ivas->hParamIsm->last_dmx_gain = dmx_gain; -#endif /* Copy the stereo dmx to data variable */ mvr2r( stereo_dmx[0], data[0], input_frame ); @@ -362,37 +346,19 @@ ivas_error ivas_param_ism_enc_open( { int16_t i; IVAS_FB_CFG *fb_cfg; -#ifndef PARAM_ISM_REFACTOR - DIRAC_ENC_HANDLE hDirAC; -#else PARAM_ISM_CONFIG_HANDLE hParamIsm; -#endif int16_t max_bins; int32_t input_Fs; ivas_error error; error = IVAS_ERR_OK; -#ifndef PARAM_ISM_REFACTOR - /* Assign memory to DirAC handle */ - if ( ( hDirAC = (DIRAC_ENC_HANDLE) malloc( sizeof( DIRAC_ENC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for DirAC\n" ) ); - } -#endif /* Assign memory to Param Object handle */ -#ifndef PARAM_ISM_REFACTOR - if ( ( hDirAC->hParamIsm = (PARAM_ISM_CONFIG_HANDLE) malloc( sizeof( PARAM_ISM_CONFIG_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Param ISM\n" ) ); - } -#else if ( ( hParamIsm = (PARAM_ISM_CONFIG_HANDLE) malloc( sizeof( PARAM_ISM_CONFIG_DATA ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Param ISM\n" ) ); } -#endif input_Fs = st_ivas->hEncoderConfig->input_Fs; @@ -404,62 +370,29 @@ ivas_error ivas_param_ism_enc_open( } /* Allocate and initialize FB mixer handle */ -#ifndef PARAM_ISM_REFACTOR - if ( ( error = ivas_FB_mixer_open( &( hDirAC->hFbMixer ), input_Fs, fb_cfg, 0 ) ) != IVAS_ERR_OK ) - { - return error; - } -#else if ( ( error = ivas_FB_mixer_open( &( hParamIsm->hFbMixer ), input_Fs, fb_cfg, 0 ) ) != IVAS_ERR_OK ) { return error; } -#endif -#ifndef PARAM_ISM_REFACTOR - ivas_param_ism_config( hDirAC->hParamIsm, st_ivas->hEncoderConfig->nchan_inp ); -#else ivas_param_ism_config( hParamIsm, st_ivas->hEncoderConfig->nchan_inp ); -#endif /* Assign memories for Band and Block grouping */ -#ifndef PARAM_ISM_REFACTOR - hDirAC->hParamIsm->nbands = MAX_PARAM_ISM_NBANDS; -#else hParamIsm->nbands = MAX_PARAM_ISM_NBANDS; -#endif max_bins = (int16_t) ( ( MDFT_FB_BANDS_240 * input_Fs ) / 48000 ); -#ifndef PARAM_ISM_REFACTOR - for ( i = 0; i < ( hDirAC->hParamIsm->nbands + 1 ); i++ ) -#else for ( i = 0; i < ( hParamIsm->nbands + 1 ); i++ ) -#endif { -#ifndef PARAM_ISM_REFACTOR - hDirAC->hParamIsm->band_grouping[i] = CLDFB_TO_MDFT_FAC * Param_ISM_band_grouping[i]; -#else hParamIsm->band_grouping[i] = CLDFB_TO_MDFT_FAC * Param_ISM_band_grouping[i]; -#endif if ( ( Param_ISM_band_grouping[i] * CLDFB_TO_MDFT_FAC ) > max_bins ) { -#ifndef PARAM_ISM_REFACTOR - hDirAC->hParamIsm->band_grouping[i] = max_bins; -#else hParamIsm->band_grouping[i] = max_bins; -#endif } } -#ifndef PARAM_ISM_REFACTOR - set_s( hDirAC->hParamIsm->noisy_speech_buffer, 0, PARAM_ISM_HYS_BUF_SIZE ); - - st_ivas->hDirAC = hDirAC; -#else set_s( hParamIsm->noisy_speech_buffer, 0, PARAM_ISM_HYS_BUF_SIZE ); st_ivas->hParamIsm = hParamIsm; -#endif return error; } @@ -471,31 +404,6 @@ ivas_error ivas_param_ism_enc_open( * Close Param ISM encoder handle *-------------------------------------------------------------------------*/ -#ifndef PARAM_ISM_REFACTOR -void ivas_param_ism_enc_close( - DIRAC_ENC_HANDLE *hDirAC, /* i/o: encoder DirAC handle */ - const int32_t input_Fs /* i : input sampling_rate */ -) -{ - if ( hDirAC == NULL || *hDirAC == NULL ) - { - return; - } - - ivas_FB_mixer_close( &( *hDirAC )->hFbMixer, input_Fs, 0 ); - - if ( ( *hDirAC )->hParamIsm != NULL ) - { - free( ( *hDirAC )->hParamIsm ); - ( *hDirAC )->hParamIsm = NULL; - } - - free( ( *hDirAC ) ); - ( *hDirAC ) = NULL; - - return; -} -#else void ivas_param_ism_enc_close( PARAM_ISM_CONFIG_HANDLE *hParamIsm, /* i/o: ParamISM handle */ const int32_t input_Fs /* i : input sampling_rate */ @@ -513,7 +421,6 @@ void ivas_param_ism_enc_close( return; } -#endif /*-------------------------------------------------------------------------* @@ -537,18 +444,10 @@ void ivas_param_ism_enc( float *p_fb_RealBuffer[MAX_NUM_OBJECTS]; float *p_fb_ImagBuffer[MAX_NUM_OBJECTS]; float reference_power_obj[MAX_NUM_OBJECTS][PARAM_ISM_MDFT_NO_SLOTS][DIRAC_NO_FB_BANDS_MAX]; -#ifndef PARAM_ISM_REFACTOR - DIRAC_ENC_HANDLE hDirAC; -#endif PARAM_ISM_CONFIG_HANDLE hParamIsm; nchan_ism = st_ivas->hEncoderConfig->nchan_ism; -#ifndef PARAM_ISM_REFACTOR - hDirAC = st_ivas->hDirAC; - hParamIsm = hDirAC->hParamIsm; -#else hParamIsm = st_ivas->hParamIsm; -#endif push_wmops( "ivas_param_ism_enc" ); @@ -567,15 +466,9 @@ void ivas_param_ism_enc( for ( ts = 0; ts < num_time_slots; ts++ ) { -#ifndef PARAM_ISM_REFACTOR - ivas_fb_mixer_get_windowed_fr( hDirAC->hFbMixer, pcm_in, p_fb_RealBuffer, p_fb_ImagBuffer, l_ts, l_ts, hDirAC->hFbMixer->fb_cfg->num_in_chans ); - - ivas_fb_mixer_update_prior_input( hDirAC->hFbMixer, pcm_in, l_ts, hDirAC->hFbMixer->fb_cfg->num_in_chans ); -#else ivas_fb_mixer_get_windowed_fr( hParamIsm->hFbMixer, pcm_in, p_fb_RealBuffer, p_fb_ImagBuffer, l_ts, l_ts, hParamIsm->hFbMixer->fb_cfg->num_in_chans ); ivas_fb_mixer_update_prior_input( hParamIsm->hFbMixer, pcm_in, l_ts, hParamIsm->hFbMixer->fb_cfg->num_in_chans ); -#endif for ( i = 0; i < nchan_ism; i++ ) { @@ -610,46 +503,6 @@ void ivas_param_ism_compute_noisy_speech_flag( { int16_t i; -#ifndef PARAM_ISM_REFACTOR - /* Move the Noisy speech buffer */ - for ( i = 0; i < ( PARAM_ISM_HYS_BUF_SIZE - 1 ); i++ ) - { - st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i + 1]; - } - - /* Set flag_noisy_speech to 0 for cases where object energies are not roughly equal */ - if ( !st_ivas->hDirAC->hParamIsm->flag_equal_energy ) - { - st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = 0; - st_ivas->hDirAC->hParamIsm->flag_noisy_speech = 0; - } - else - { - /* For the current frame, make a decision based on some core-coder flags */ - if ( st_ivas->hSCE[0]->hCoreCoder[0]->flag_noisy_speech_snr && st_ivas->hSCE[1]->hCoreCoder[0]->flag_noisy_speech_snr ) - { - if ( st_ivas->hSCE[0]->hCoreCoder[0]->vad_flag || st_ivas->hSCE[1]->hCoreCoder[0]->vad_flag ) - { - st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = 0; - } - else - { - st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = 1; - } - } - else - { - st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i] = 0; - } - - /* Do a decision based on hysteresis */ - st_ivas->hDirAC->hParamIsm->flag_noisy_speech = 1; - for ( i = 0; i < PARAM_ISM_HYS_BUF_SIZE; i++ ) - { - st_ivas->hDirAC->hParamIsm->flag_noisy_speech = st_ivas->hDirAC->hParamIsm->flag_noisy_speech && st_ivas->hDirAC->hParamIsm->noisy_speech_buffer[i]; - } - } -#else /* Move the Noisy speech buffer */ for ( i = 0; i < ( PARAM_ISM_HYS_BUF_SIZE - 1 ); i++ ) { @@ -688,7 +541,6 @@ void ivas_param_ism_compute_noisy_speech_flag( st_ivas->hParamIsm->flag_noisy_speech = st_ivas->hParamIsm->flag_noisy_speech && st_ivas->hParamIsm->noisy_speech_buffer[i]; } } -#endif return; } diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 34acd443da..6725d778b0 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -585,9 +585,6 @@ typedef struct front_vad_enc typedef struct ivas_dirac_enc_data_structure { DIRAC_CONFIG_DATA_HANDLE hConfig; -#ifndef PARAM_ISM_REFACTOR - PARAM_ISM_CONFIG_HANDLE hParamIsm; /* Parametric ISM handle */ -#endif IVAS_FB_MIXER_HANDLE hFbMixer; @@ -1229,9 +1226,7 @@ typedef struct ISM_METADATA_HANDLE hIsmMetaData[MAX_NUM_OBJECTS]; /* ISM metadata handles (storage for one frame of read ISM metadata) */ ISM_DTX_HANDLE hISMDTX; /* ISM DTX handle */ DIRAC_ENC_HANDLE hDirAC; /* DirAC data handle */ -#ifdef PARAM_ISM_REFACTOR PARAM_ISM_CONFIG_HANDLE hParamIsm; /* Parametric ISM handle */ -#endif SPAR_ENC_HANDLE hSpar; /* SPAR encoder handle */ MASA_ENCODER_HANDLE hMasa; /* MASA encoder data and configuration */ IVAS_QMETADATA_HANDLE hQMetaData; /* Metadata handle for q_metadata parametric spatial coding DirAC/MASA*/ -- GitLab From c4d99ffe1d57267bd407b310738df877d9f82a9e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:56:59 +0200 Subject: [PATCH 15/42] [cleanup] accept FIX_678_ISM_SBA_ASAN --- lib_com/options.h | 1 - lib_dec/ivas_sba_rendering_internal.c | 8 -------- 2 files changed, 9 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 0837e0130b..0f2e2c0175 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_678_ISM_SBA_ASAN /* FhG: Issue 678: ASAN in ISM to SBA conversion in JBM */ #define FIX_676_JBM_USAN /* FhG: Issue 676: USAN in JBM */ #define FIX_796_MCT_MODE_DIFF_JBM /* FhG: Issue 796: fix differences between JBM and non-JBM fOR MC */ #define LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK /* fix 755 */ diff --git a/lib_dec/ivas_sba_rendering_internal.c b/lib_dec/ivas_sba_rendering_internal.c index 30bfdfe5cc..9c48183e59 100644 --- a/lib_dec/ivas_sba_rendering_internal.c +++ b/lib_dec/ivas_sba_rendering_internal.c @@ -441,22 +441,14 @@ void ivas_ism2sba_sf( for ( j = 0; j < sba_num_chans; j++ ) { g2 = hIsmRendererData->interpolator + offset; -#ifndef FIX_678_ISM_SBA_ASAN - g1 = 1 - *g2; -#endif tc = buffer_in[i] + offset; out = buffer_out[j]; gain = hIsmRendererData->gains[i][j]; prev_gain = hIsmRendererData->prev_gains[i][j]; for ( k = 0; k < n_samples_to_render; k++ ) { -#ifdef FIX_678_ISM_SBA_ASAN g1 = 1.0f - *g2; -#endif *( out++ ) += ( ( *( g2++ ) ) * gain + g1 * prev_gain ) * ( *( tc++ ) ); -#ifndef FIX_678_ISM_SBA_ASAN - g1 = 1.0f - *g2; -#endif } } } -- GitLab From 2b21b028cffc788d4104b10a548ed613b155179a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:58:19 +0200 Subject: [PATCH 16/42] [cleanup] accept FIX_676_JBM_USAN --- lib_com/options.h | 1 - lib_dec/ivas_jbm_dec.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 0f2e2c0175..af173deda3 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_676_JBM_USAN /* FhG: Issue 676: USAN in JBM */ #define FIX_796_MCT_MODE_DIFF_JBM /* FhG: Issue 796: fix differences between JBM and non-JBM fOR MC */ #define LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK /* fix 755 */ #define FIX_803_SCE_MD_HANDLE /* VA: issue 803: Resolve "MD handle needed only for one SCE" */ diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 8409691212..3c91c1c0b0 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -1015,11 +1015,7 @@ ivas_error ivas_jbm_dec_render( p_output[n] = &output[n][0]; } -#ifdef FIX_676_JBM_USAN for ( n = 0; n < st_ivas->hTcBuffer->nchan_buffer_full; n++ ) -#else - for ( n = 0; n < st_ivas->hTcBuffer->nchan_transport_internal; n++ ) -#endif { p_tc[n] = &st_ivas->hTcBuffer->tc[n][st_ivas->hTcBuffer->n_samples_rendered]; } -- GitLab From 75e990691153e67d6c3d8ddede0f4f58ca44b861 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 17:59:14 +0200 Subject: [PATCH 17/42] [cleanup] accept FIX_796_MCT_MODE_DIFF_JBM --- lib_com/options.h | 1 - lib_dec/ivas_jbm_dec.c | 6 ------ 2 files changed, 7 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index af173deda3..9f25005c6c 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_796_MCT_MODE_DIFF_JBM /* FhG: Issue 796: fix differences between JBM and non-JBM fOR MC */ #define LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK /* fix 755 */ #define FIX_803_SCE_MD_HANDLE /* VA: issue 803: Resolve "MD handle needed only for one SCE" */ #define FIX_812_DOUBLE_PREC_MCT /* FhG: Issue 812: Avoid double precision in MCT */ diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 3c91c1c0b0..44c09fdca6 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -534,12 +534,6 @@ ivas_error ivas_jbm_dec_tc( if ( st_ivas->mc_mode == MC_MODE_MCT ) { -#ifndef FIX_796_MCT_MODE_DIFF_JBM - if ( st_ivas->hCPE[1]->hCoreCoder[1]->hTcxCfg == NULL ) // ToDo: this is missing in ivas_dec() -> TBV - { - st_ivas->hCPE[1]->hCoreCoder[1]->hTcxCfg = st_ivas->hCPE[1]->hCoreCoder[0]->hTcxCfg; - } -#endif /* LFE channel decoder */ ivas_lfe_dec( st_ivas->hLFE, st, output_frame, st_ivas->bfi, p_output[LFE_CHANNEL] ); -- GitLab From 19a8865be26ffa7492c80d93a2e52986b2ba78cb Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:00:00 +0200 Subject: [PATCH 18/42] [cleanup] accept LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK --- lib_com/options.h | 1 - lib_rend/lib_rend.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 9f25005c6c..e69e026917 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK /* fix 755 */ #define FIX_803_SCE_MD_HANDLE /* VA: issue 803: Resolve "MD handle needed only for one SCE" */ #define FIX_812_DOUBLE_PREC_MCT /* FhG: Issue 812: Avoid double precision in MCT */ #define FIX_807_VARIABLE_SPEED_DECODING /* FhG: Issue 807: Resolve "Variable Speed Decoding broken" */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index dbed1cea02..5159a7c433 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -3519,16 +3519,12 @@ static void freeDecoderDummy( pDecDummy->hoa_dec_mtx = NULL; } -#ifdef LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK /* Parametric binaural renderer HRTF structure */ if ( pDecDummy->hHrtfParambin != NULL ) { -#endif free( pDecDummy->hHrtfParambin ); -#ifdef LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK pDecDummy->hHrtfParambin = NULL; } -#endif #ifdef SPLIT_REND_WITH_HEAD_ROT /* Split binaural renderr handle */ -- GitLab From 3fb9d1e1815576521c07eccd9e39375bdab6efc0 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:01:04 +0200 Subject: [PATCH 19/42] [cleanup] accept FIX_803_SCE_MD_HANDLE --- lib_com/ivas_prot.h | 2 -- lib_com/options.h | 1 - lib_enc/ivas_corecoder_enc_reconfig.c | 27 --------------------------- lib_enc/ivas_cpe_enc.c | 27 --------------------------- lib_enc/ivas_init_enc.c | 2 -- lib_enc/ivas_sce_enc.c | 26 -------------------------- 6 files changed, 85 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 235c885a96..06c130e5c0 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -282,7 +282,6 @@ void ivas_destroy_enc( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ); -#ifdef FIX_803_SCE_MD_HANDLE ivas_error ivas_initialize_MD_bstr_enc( BSTR_ENC_HANDLE *hBstr, /* o : encoder MD bitstream handle */ Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ @@ -291,7 +290,6 @@ ivas_error ivas_initialize_MD_bstr_enc( void ivas_destroy_MD_bstr_enc( BSTR_ENC_HANDLE *hMetaData /* i/o: encoder MD bitstream handle */ ); -#endif ivas_error ivas_init_decoder_front( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ diff --git a/lib_com/options.h b/lib_com/options.h index e69e026917..df6c22fee2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -163,7 +163,6 @@ #define FIX_708_DPID_COMMAND_LINE /* issue 708: sanity checks for '-dpid' command-line */ #define FIX_730_DPID_NOT_SET_CORRECTLY /* Eri: issue 730: write dpid read from file in correct index, print informative error message when DPID specified is not found. */ #define FIX_513_REND_MC_ALLOC /* FhG: issue 513, optimise external renderer allocation for multichannel */ -#define FIX_803_SCE_MD_HANDLE /* VA: issue 803: Resolve "MD handle needed only for one SCE" */ #define FIX_812_DOUBLE_PREC_MCT /* FhG: Issue 812: Avoid double precision in MCT */ #define FIX_807_VARIABLE_SPEED_DECODING /* FhG: Issue 807: Resolve "Variable Speed Decoding broken" */ #define FIX_818_DOUBLE_PREC_KERNEN_SW /* FhG: Issue 818: Avoid double precision in kernel switching */ diff --git a/lib_enc/ivas_corecoder_enc_reconfig.c b/lib_enc/ivas_corecoder_enc_reconfig.c index 831d58e4d9..5510ce48c2 100644 --- a/lib_enc/ivas_corecoder_enc_reconfig.c +++ b/lib_enc/ivas_corecoder_enc_reconfig.c @@ -281,9 +281,7 @@ ivas_error ivas_corecoder_enc_reconfig( st_ivas->hSCE[sce_id]->element_brate = brate_SCE; st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ -#ifdef FIX_803_SCE_MD_HANDLE ivas_destroy_MD_bstr_enc( &( st_ivas->hSCE[sce_id]->hMetaData ) ); -#endif } for ( sce_id = nSCE_existing; sce_id < st_ivas->nSCE; sce_id++ ) @@ -306,7 +304,6 @@ ivas_error ivas_corecoder_enc_reconfig( } } -#ifdef FIX_803_SCE_MD_HANDLE if ( st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData == NULL ) { if ( ( error = ivas_initialize_MD_bstr_enc( &( st_ivas->hSCE[st_ivas->nSCE - 1]->hMetaData ), st_ivas ) ) != IVAS_ERR_OK ) @@ -314,7 +311,6 @@ ivas_error ivas_corecoder_enc_reconfig( return error; } } -#endif } if ( st_ivas->nCPE > 0 ) @@ -476,40 +472,17 @@ ivas_error ivas_corecoder_enc_reconfig( { if ( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData == NULL ) { -#ifdef FIX_803_SCE_MD_HANDLE if ( ( error = ivas_initialize_MD_bstr_enc( &( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData ), st_ivas ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData = (BSTR_ENC_HANDLE) malloc( sizeof( BSTR_ENC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MetaData structure\n" ) ); - } - - /* set pointer to the buffer of metadata indices */ - st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->ind_list = st_ivas->ind_list_metadata; - st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->ivas_ind_list_zero = &st_ivas->ind_list_metadata; - st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->ivas_max_num_indices = &st_ivas->ivas_max_num_indices_metadata; - st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->nb_ind_tot = 0; - st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->nb_bits_tot = 0; - st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->st_ivas = st_ivas; -#endif } reset_indices_enc( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData, st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->nb_ind_tot ); for ( cpe_id = 0; cpe_id < st_ivas->nCPE - 1; cpe_id++ ) { -#ifdef FIX_803_SCE_MD_HANDLE ivas_destroy_MD_bstr_enc( &( st_ivas->hCPE[cpe_id]->hMetaData ) ); -#else - if ( st_ivas->hCPE[cpe_id]->hMetaData != NULL ) - { - free( st_ivas->hCPE[cpe_id]->hMetaData ); - st_ivas->hCPE[cpe_id]->hMetaData = NULL; - } -#endif } } diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 8eb0da7b47..3ce250c3de 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -875,31 +875,12 @@ ivas_error create_cpe_enc( * Metadata: allocate and initialize *-----------------------------------------------------------------*/ -#ifndef FIX_803_SCE_MD_HANDLE - /* we need the meta data handle also if we init as MC_FORMAT/MCT since it might be needed - at a bit rate switch to ParamMC or McMASA and the metadata index list is only really reachable - in the ivas_init_encoder() function and has to be connected to the MD handle there */ -#endif if ( cpe_id == ( st_ivas->nCPE - 1 ) ) { -#ifdef FIX_803_SCE_MD_HANDLE if ( ( error = ivas_initialize_MD_bstr_enc( &( hCPE->hMetaData ), st_ivas ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( ( hCPE->hMetaData = (BSTR_ENC_HANDLE) malloc( sizeof( BSTR_ENC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MetaData structure\n" ) ); - } - - /* set pointer to the buffer of metadata indices */ - hCPE->hMetaData->ind_list = st_ivas->ind_list_metadata; - hCPE->hMetaData->ivas_ind_list_zero = &st_ivas->ind_list_metadata; - hCPE->hMetaData->ivas_max_num_indices = &st_ivas->ivas_max_num_indices_metadata; - hCPE->hMetaData->st_ivas = st_ivas; - reset_indices_enc( hCPE->hMetaData, st_ivas->ivas_max_num_indices_metadata ); -#endif } /*-----------------------------------------------------------------* @@ -1088,15 +1069,7 @@ void destroy_cpe_enc( } } -#ifdef FIX_803_SCE_MD_HANDLE ivas_destroy_MD_bstr_enc( &( hCPE->hMetaData ) ); -#else - if ( hCPE->hMetaData != NULL ) - { - free( hCPE->hMetaData ); - hCPE->hMetaData = NULL; - } -#endif for ( n = 0; n < CPE_CHANNELS; n++ ) { diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index f8c0f14a18..a042e284fa 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -1211,7 +1211,6 @@ void ivas_destroy_enc( return; } -#ifdef FIX_803_SCE_MD_HANDLE /*------------------------------------------------------------------------- * ivas_initialize_MD_bstr_enc() * @@ -1264,4 +1263,3 @@ void ivas_destroy_MD_bstr_enc( return; } -#endif diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 1233ba37c1..6f6aff9572 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -331,30 +331,12 @@ ivas_error create_sce_enc( * Metadata: allocate and initialize *-----------------------------------------------------------------*/ -#ifdef FIX_803_SCE_MD_HANDLE if ( st_ivas->hEncoderConfig->ivas_format != MONO_FORMAT && sce_id == ( st_ivas->nSCE - 1 ) ) -#else - if ( st_ivas->hEncoderConfig->ivas_format != MONO_FORMAT ) -#endif { -#ifdef FIX_803_SCE_MD_HANDLE if ( ( error = ivas_initialize_MD_bstr_enc( &( hSCE->hMetaData ), st_ivas ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( ( hSCE->hMetaData = (BSTR_ENC_HANDLE) malloc( sizeof( BSTR_ENC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MetaData structure\n" ) ); - } - - /* set pointer to the buffer of metadata indices */ - hSCE->hMetaData->ind_list = st_ivas->ind_list_metadata; - hSCE->hMetaData->ivas_ind_list_zero = &st_ivas->ind_list_metadata; - hSCE->hMetaData->ivas_max_num_indices = &st_ivas->ivas_max_num_indices_metadata; - hSCE->hMetaData->st_ivas = st_ivas; - reset_indices_enc( hSCE->hMetaData, st_ivas->ivas_max_num_indices_metadata ); -#endif } else { @@ -413,15 +395,7 @@ void destroy_sce_enc( st = NULL; } -#ifdef FIX_803_SCE_MD_HANDLE ivas_destroy_MD_bstr_enc( &( hSCE->hMetaData ) ); -#else - if ( hSCE->hMetaData != NULL ) - { - free( hSCE->hMetaData ); - hSCE->hMetaData = NULL; - } -#endif free( hSCE ); -- GitLab From 09e125469aa82f612a0f4914308290198500d473 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:01:51 +0200 Subject: [PATCH 20/42] [cleanup] accept NONBE_FIX_751_MASA_TD_BITRATE_CHECK --- lib_com/ivas_stereo_td_bit_alloc.c | 9 --------- lib_com/options.h | 1 - 2 files changed, 10 deletions(-) diff --git a/lib_com/ivas_stereo_td_bit_alloc.c b/lib_com/ivas_stereo_td_bit_alloc.c index 22de0bd41a..5201aa40c3 100644 --- a/lib_com/ivas_stereo_td_bit_alloc.c +++ b/lib_com/ivas_stereo_td_bit_alloc.c @@ -419,27 +419,18 @@ void tdm_bit_alloc( } *total_brate_sec += ( fast_FCB_rates_2sfr[idx] - tmp_rate ); } -#ifndef NONBE_FIX_751_MASA_TD_BITRATE_CHECK - /* prevent 2.4 kb/s and 2.8 kb/s as they are reserved bitrates for DTX and VBR */ - if ( *total_brate_sec == PPP_NELP_2k80 || *total_brate_sec == SID_2k40 ) - { - *total_brate_sec += 100; - } -#endif /* To prevent 13.2 kb/s for primary channel as some bitstream issues arrise with it */ if ( element_brate_wo_meta - *total_brate_sec == ACELP_13k20 ) { *total_brate_sec += 100; } } -#ifdef NONBE_FIX_751_MASA_TD_BITRATE_CHECK /* prevent 2.4 kb/s and 2.8 kb/s as they are reserved bitrates for DTX and VBR */ if ( *total_brate_sec == PPP_NELP_2k80 || *total_brate_sec == SID_2k40 ) { *total_brate_sec -= 100; } -#endif *total_brate_pri = element_brate_wo_meta - *total_brate_sec; return; diff --git a/lib_com/options.h b/lib_com/options.h index df6c22fee2..a5fc4d52e2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -174,7 +174,6 @@ /* any switch which is non-be wrt selection floating point code */ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_751_MASA_TD_BITRATE_CHECK /* Nokia: issue 751: prevents secondary channel to take reserved bitrate if not DTX mode */ #define NONBE_FIX_736_FOA_BR_SWITCH /* FhG/Dlb : Issue 736: FOA bitrate switching decoding crashes in in ivas_spar_to_dirac */ #define NONBE_FIX_746_NONDIEGETIC_MD /* Eri: Issue 746: The non-diegetic panning flag affects the encoder bitstream even if extended metadata is not enabled. Crashes the decoder.*/ -- GitLab From 4ce18b5ada3fc52e70fb367b2c63f4c32499d0d4 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:02:34 +0200 Subject: [PATCH 21/42] [cleanup] accept NONBE_FIX_736_FOA_BR_SWITCH --- lib_com/options.h | 1 - lib_dec/ivas_sba_dec.c | 14 -------------- 2 files changed, 15 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index a5fc4d52e2..e2b9c4fc02 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_736_FOA_BR_SWITCH /* FhG/Dlb : Issue 736: FOA bitrate switching decoding crashes in in ivas_spar_to_dirac */ #define NONBE_FIX_746_NONDIEGETIC_MD /* Eri: Issue 746: The non-diegetic panning flag affects the encoder bitstream even if extended metadata is not enabled. Crashes the decoder.*/ #define NONBE_FIX_723_SBA_BR_SWITCH_MSAN /* Dlb: issue 723: Uninitialised value used after BR switching*/ #define NONBE_FIX_729_ASAN_2ISM_ACELP /* VA: issue 729: fix ASAN ACELP errors with 2 ISM coding using LTV */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index a822e9b381..3bcda6c13b 100755 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -302,11 +302,7 @@ ivas_error ivas_sba_dec_reconfigure( if ( hSpar != NULL ) { -#ifdef NONBE_FIX_736_FOA_BR_SWITCH if ( ( hSpar->hPCA != NULL ) && ( ( hDecoderConfig->ivas_total_brate != PCA_BRATE ) || ( st_ivas->sba_order != 1 ) ) ) -#else - if ( ( hSpar->hPCA != NULL ) && ( ( hDecoderConfig->ivas_total_brate != PCA_BRATE ) || ( sba_order_internal != 1 ) ) ) -#endif { free( st_ivas->hSpar->hPCA ); hSpar->hPCA = NULL; @@ -336,7 +332,6 @@ ivas_error ivas_sba_dec_reconfigure( return error; } } -#ifdef NONBE_FIX_736_FOA_BR_SWITCH if ( ( hSpar->hPCA == NULL ) && ( st_ivas->hDecoderConfig->ivas_total_brate == PCA_BRATE && st_ivas->sba_order == 1 ) && ( st_ivas->ivas_format == SBA_FORMAT ) ) { @@ -347,7 +342,6 @@ ivas_error ivas_sba_dec_reconfigure( ivas_pca_dec_init( hSpar->hPCA ); } -#endif ivas_spar_config( ivas_total_brate, sba_order_internal, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &hSpar->core_nominal_brate, st_ivas->sid_format ); } else @@ -425,18 +419,12 @@ ivas_error ivas_sba_dec_reconfigure( } #endif -#ifdef NONBE_FIX_736_FOA_BR_SWITCH if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, ivas_get_hodirac_flag( ivas_total_brate, st_ivas->sba_analysis_order ) ? IVAS_MAX_NUM_BANDS : ( IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) ) != IVAS_ERR_OK ) { return error; } -#endif -#ifndef NONBE_FIX_736_FOA_BR_SWITCH - if ( ( ( st_ivas->renderer_type != RENDERER_DISABLE ) && ( st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC ) ) || ( ( hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_FOA ) && ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_STEREO ) && ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_MONO ) ) || ( last_ivas_total_brate > IVAS_256k && ivas_total_brate <= IVAS_256k ) || ( last_ivas_total_brate <= IVAS_256k && ivas_total_brate > IVAS_256k ) ) -#else if ( ( ( st_ivas->renderer_type != RENDERER_DISABLE ) && ( st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC ) ) || ( ( hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_FOA ) && ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_STEREO ) && ( st_ivas->hDecoderConfig->output_config != IVAS_AUDIO_CONFIG_MONO ) ) ) -#endif { DIRAC_CONFIG_FLAG flag_config; @@ -463,7 +451,6 @@ ivas_error ivas_sba_dec_reconfigure( } #endif } -#ifdef NONBE_FIX_736_FOA_BR_SWITCH else { int16_t band_grouping[IVAS_MAX_NUM_BANDS + 1]; @@ -486,7 +473,6 @@ ivas_error ivas_sba_dec_reconfigure( } #endif } -#endif if ( st_ivas->renderer_type == RENDERER_DISABLE ) { -- GitLab From 6e8ca14c678586769c9992d047f68d5c66f3dd46 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:03:20 +0200 Subject: [PATCH 22/42] [cleanup] accept NONBE_FIX_746_NONDIEGETIC_MD --- lib_com/options.h | 1 - lib_enc/ivas_ism_metadata_enc.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index e2b9c4fc02..2aadd1624d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_746_NONDIEGETIC_MD /* Eri: Issue 746: The non-diegetic panning flag affects the encoder bitstream even if extended metadata is not enabled. Crashes the decoder.*/ #define NONBE_FIX_723_SBA_BR_SWITCH_MSAN /* Dlb: issue 723: Uninitialised value used after BR switching*/ #define NONBE_FIX_729_ASAN_2ISM_ACELP /* VA: issue 729: fix ASAN ACELP errors with 2 ISM coding using LTV */ #define NONBE_FIX_698_SBA_MSAN /* Dlb: issue 698: Uninitialized memory read in SBA init */ diff --git a/lib_enc/ivas_ism_metadata_enc.c b/lib_enc/ivas_ism_metadata_enc.c index de999ddc39..e1a869d28e 100644 --- a/lib_enc/ivas_ism_metadata_enc.c +++ b/lib_enc/ivas_ism_metadata_enc.c @@ -415,11 +415,7 @@ ivas_error ivas_ism_metadata_enc( push_indice( hBstr, IND_ISM_NDP_FLAG, hIsmMeta[ch]->non_diegetic_flag, ISM_METADATA_IS_NDP_BITS ); } -#ifdef NONBE_FIX_746_NONDIEGETIC_MD if ( hIsmMeta[ch]->non_diegetic_flag && ism_extended_metadata_flag ) -#else - if ( hIsmMeta[ch]->non_diegetic_flag ) -#endif { /* Map azimuth to panning range [-90:90] */ if ( hIsmMetaData->azimuth > 90.0f ) -- GitLab From e71c6f6a88557b2ed1947d2daf91431709ed3200 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:04:00 +0200 Subject: [PATCH 23/42] [cleanup] accept NONBE_FIX_723_SBA_BR_SWITCH_MSAN --- lib_com/options.h | 1 - lib_dec/ivas_dirac_dec.c | 8 -------- lib_dec/ivas_spar_md_dec.c | 6 ------ 3 files changed, 15 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 2aadd1624d..ec8555659f 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_723_SBA_BR_SWITCH_MSAN /* Dlb: issue 723: Uninitialised value used after BR switching*/ #define NONBE_FIX_729_ASAN_2ISM_ACELP /* VA: issue 729: fix ASAN ACELP errors with 2 ISM coding using LTV */ #define NONBE_FIX_698_SBA_MSAN /* Dlb: issue 698: Uninitialized memory read in SBA init */ #define NONBE_FIX_694_OMASA_ACELP /* Nokia: Issue #694: OMASA crash in ACELP with extreme item */ diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 5db3347ccc..9244cc1284 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -1074,9 +1074,7 @@ void ivas_dirac_dec_read_BS( hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].azimuth[i] = hQMetaData->q_direction[0].band_data[1].azimuth[0]; hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].elevation[i] = hQMetaData->q_direction[0].band_data[1].elevation[0]; hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio[0]; -#ifdef NONBE_FIX_723_SBA_BR_SWITCH_MSAN hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio_index[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio_index[0]; -#endif } for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { @@ -1085,9 +1083,7 @@ void ivas_dirac_dec_read_BS( hQMetaData->q_direction[0].band_data[j].azimuth[i] = hQMetaData->q_direction[0].band_data[0].azimuth[0]; hQMetaData->q_direction[0].band_data[j].elevation[i] = hQMetaData->q_direction[0].band_data[0].elevation[0]; hQMetaData->q_direction[0].band_data[j].energy_ratio[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio[0]; -#ifdef NONBE_FIX_723_SBA_BR_SWITCH_MSAN hQMetaData->q_direction[0].band_data[j].energy_ratio_index[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio_index[0]; -#endif } } @@ -1146,9 +1142,7 @@ void ivas_dirac_dec_read_BS( hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].azimuth[i] = hQMetaData->q_direction[0].band_data[1].azimuth[0]; hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].elevation[i] = hQMetaData->q_direction[0].band_data[1].elevation[0]; hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio[0]; -#ifdef NONBE_FIX_723_SBA_BR_SWITCH_MSAN hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio_index[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio_index[0]; -#endif } for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { @@ -1157,9 +1151,7 @@ void ivas_dirac_dec_read_BS( hQMetaData->q_direction[0].band_data[j].azimuth[i] = hQMetaData->q_direction[0].band_data[0].azimuth[0]; hQMetaData->q_direction[0].band_data[j].elevation[i] = hQMetaData->q_direction[0].band_data[0].elevation[0]; hQMetaData->q_direction[0].band_data[j].energy_ratio[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio[0]; -#ifdef NONBE_FIX_723_SBA_BR_SWITCH_MSAN hQMetaData->q_direction[0].band_data[j].energy_ratio_index[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio_index[0]; -#endif } } diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index b7ede322b3..55f938389e 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -1528,9 +1528,7 @@ static void ivas_spar_dec_parse_md_bs( float quant[IVAS_SPAR_MAX_C_COEFF]; int16_t do_repeat[IVAS_MAX_NUM_BANDS]; int16_t bw_final, bw_fact; -#ifdef NONBE_FIX_723_SBA_BR_SWITCH_MSAN int32_t active_brate; -#endif *dtx_vad = 1; *bands_bw = 1; qsi = 0; @@ -1602,13 +1600,9 @@ static void ivas_spar_dec_parse_md_bs( ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); -#ifdef NONBE_FIX_723_SBA_BR_SWITCH_MSAN active_brate = ( ivas_total_brate > IVAS_SID_5k2 ) ? ivas_total_brate : last_active_brate; if ( active_brate >= IVAS_24k4 ) -#else - if ( last_active_brate >= IVAS_24k4 ) -#endif { bw_final = 1; } -- GitLab From 70f2e0f61f93ea96be144288e8f8ec20682a1faf Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:04:40 +0200 Subject: [PATCH 24/42] [cleanup] accept NONBE_FIX_729_ASAN_2ISM_ACELP --- lib_com/options.h | 1 - lib_enc/ivas_decision_matrix_enc.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index ec8555659f..3ae99bd5e6 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_729_ASAN_2ISM_ACELP /* VA: issue 729: fix ASAN ACELP errors with 2 ISM coding using LTV */ #define NONBE_FIX_698_SBA_MSAN /* Dlb: issue 698: Uninitialized memory read in SBA init */ #define NONBE_FIX_694_OMASA_ACELP /* Nokia: Issue #694: OMASA crash in ACELP with extreme item */ #define NONBE_FIX_770_PLANAR_SBA_JBM /* FhG : Issue #770: Crash in planar FOA decoding with JBM caused by uninitialized value */ diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index 9ceab1b5af..e01b63ea6e 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -224,13 +224,11 @@ void ivas_decision_matrix_enc( } } -#ifdef NONBE_FIX_729_ASAN_2ISM_ACELP /* sanity check to avoid too low ACELP bitrate in case of "limitation to avoid too high bitrate in one active TCX channel" at element_brate = 32000 */ if ( st->is_ism_format && st->flag_ACELP16k && !st->low_rate_mode && st->core == ACELP_CORE && st->total_brate < ACELP_16k_LOW_LIMIT + FB_TBE_1k8 ) { st->core = TCX_20_CORE; } -#endif /*---------------------------------------------------------------------* * Select ACELP and GSC extension layer -- GitLab From 61b05a1ca69dd8187468df67c82a066fcd6aacaf Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:05:34 +0200 Subject: [PATCH 25/42] [cleanup] accept NONBE_FIX_698_SBA_MSAN --- lib_com/ivas_prot.h | 4 ---- lib_com/options.h | 1 - lib_dec/ivas_spar_md_dec.c | 41 -------------------------------------- 3 files changed, 46 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 06c130e5c0..cf8fe48211 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4549,10 +4549,6 @@ void ivas_spar_update_md_hist( int16_t ivas_spar_chk_zero_coefs( Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ -#ifndef NONBE_FIX_698_SBA_MSAN - , - const int16_t sba_order /* i : Ambisonic (SBA) order */ -#endif ); void ivas_spar_smooth_md_dtx( diff --git a/lib_com/options.h b/lib_com/options.h index 3ae99bd5e6..75120c79f9 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_698_SBA_MSAN /* Dlb: issue 698: Uninitialized memory read in SBA init */ #define NONBE_FIX_694_OMASA_ACELP /* Nokia: Issue #694: OMASA crash in ACELP with extreme item */ #define NONBE_FIX_770_PLANAR_SBA_JBM /* FhG : Issue #770: Crash in planar FOA decoding with JBM caused by uninitialized value */ #define NONBE_FIX_760_COHERENCE_MASA /* Nokia: Issue 760: fixes decoder crash for some cases when all energy ratios are 1 */ diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 55f938389e..bd3901879d 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -644,10 +644,6 @@ static ivas_error ivas_spar_set_dec_config( static void ivas_dec_mono_sba_handling( Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ -#ifndef NONBE_FIX_698_SBA_MSAN - , - const int16_t sba_order /* i : Ambisonic (SBA) order */ -#endif ) { int16_t mono_flag, b, block; @@ -672,11 +668,7 @@ static void ivas_dec_mono_sba_handling( } /* Combine the SPAR prediction coefs flag with the azimuth, elevation and energy ratio flag.*/ -#ifdef NONBE_FIX_698_SBA_MSAN mono_flag = mono_flag && ivas_spar_chk_zero_coefs( st_ivas ); -#else - mono_flag = mono_flag && ivas_spar_chk_zero_coefs( st_ivas, sba_order ); -#endif if ( mono_flag ) { @@ -762,11 +754,7 @@ void ivas_spar_md_dec_process( ivas_spar_dec_parse_md_bs( hMdDec, st0, &nB, &bw, &dtx_vad, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->hQMetaData->sba_inactive_mode, st_ivas->last_active_ivas_total_brate ); -#ifdef NONBE_FIX_698_SBA_MSAN ivas_dec_mono_sba_handling( st_ivas ); -#else - ivas_dec_mono_sba_handling( st_ivas, sba_order ); -#endif /* SPAR to DirAC conversion */ if ( hMdDec->spar_hoa_dirac2spar_md_flag == 1 ) @@ -878,18 +866,9 @@ void ivas_spar_md_dec_process( int16_t ivas_spar_chk_zero_coefs( Decoder_Struct *st_ivas /* i/o: IVAS decoder handle */ -#ifndef NONBE_FIX_698_SBA_MSAN - , - const int16_t sba_order /* i : Ambisonic (SBA) order */ -#endif ) { -#ifdef NONBE_FIX_698_SBA_MSAN int16_t j, k, b; -#else - int16_t j, k, b, i_ts; - int16_t num_md_sub_frames; -#endif ivas_spar_md_dec_state_t *hMdDec; int16_t mono = 1; int16_t ndec, ndm; @@ -898,20 +877,11 @@ int16_t ivas_spar_chk_zero_coefs( ndec = hMdDec->spar_md_cfg.num_decorr_per_band[0]; ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[0]; -#ifndef NONBE_FIX_698_SBA_MSAN - num_md_sub_frames = ivas_get_spar_dec_md_num_subframes( sba_order, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->last_active_ivas_total_brate ); - for ( i_ts = 0; i_ts < num_md_sub_frames; i_ts++ ) - { -#endif for ( b = 0; b < min( hMdDec->spar_md.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); b++ ) { for ( j = 0; j < ndm + ndec - 1; j++ ) { -#ifdef NONBE_FIX_698_SBA_MSAN if ( hMdDec->spar_md.band_coeffs[b].pred_re[j] != 0.0f ) -#else - if ( hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j] != 0.0f ) -#endif { mono = 0; } @@ -920,11 +890,7 @@ int16_t ivas_spar_chk_zero_coefs( { for ( k = 0; k < ndm - 1; k++ ) { -#ifdef NONBE_FIX_698_SBA_MSAN if ( hMdDec->spar_md.band_coeffs[b].C_re[j][k] != 0.0f ) -#else - if ( hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].C_re[j][k] != 0.0f ) -#endif { mono = 0; } @@ -932,19 +898,12 @@ int16_t ivas_spar_chk_zero_coefs( } for ( j = 0; j < ndec; j++ ) { -#ifdef NONBE_FIX_698_SBA_MSAN if ( hMdDec->spar_md.band_coeffs[b].P_re[j] != 0.0f ) -#else - if ( hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].P_re[j] != 0.0f ) -#endif { mono = 0; } } } -#ifndef NONBE_FIX_698_SBA_MSAN - } -#endif return mono; } -- GitLab From fa93785e2a026d4ae3f4e64d5f07cf3dde5f14e3 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:06:18 +0200 Subject: [PATCH 26/42] [cleanup] accept NONBE_FIX_694_OMASA_ACELP --- lib_com/bits_alloc.c | 4 ---- lib_com/ivas_stereo_td_bit_alloc.c | 4 ---- lib_com/options.h | 1 - 3 files changed, 9 deletions(-) diff --git a/lib_com/bits_alloc.c b/lib_com/bits_alloc.c index 3e3faf9564..cb3945a6ce 100644 --- a/lib_com/bits_alloc.c +++ b/lib_com/bits_alloc.c @@ -476,10 +476,8 @@ static ivas_error acelp_FCB_allocator( } /* try to increase the FCB of the first subframe in cases when the next step is lower than the current step */ -#ifdef NONBE_FIX_694_OMASA_ACELP if ( fixed_cdk_index[sfr] < ACELP_FIXED_CDK_NB - 1 ) { -#endif step = fcb_table( fixed_cdk_index[sfr] + 1, L_subfr ) - fcb_table( fixed_cdk_index[sfr], L_subfr ); if ( *nBits >= step && cdbk >= 0 ) { @@ -493,9 +491,7 @@ static ivas_error acelp_FCB_allocator( *nBits -= step; } } -#ifdef NONBE_FIX_694_OMASA_ACELP } -#endif } /* TRANSITION coding: allocate highest FCBQ bit-budget to the subframe with the glottal-shape codebook */ if ( tc_subfr >= L_SUBFR ) diff --git a/lib_com/ivas_stereo_td_bit_alloc.c b/lib_com/ivas_stereo_td_bit_alloc.c index 5201aa40c3..87d3f7dd3e 100644 --- a/lib_com/ivas_stereo_td_bit_alloc.c +++ b/lib_com/ivas_stereo_td_bit_alloc.c @@ -308,7 +308,6 @@ void tdm_bit_alloc( { *total_brate_sec = min( *total_brate_sec, element_brate_wo_meta - ( 5900 + BWE_brate ) ); -#ifdef NONBE_FIX_694_OMASA_ACELP if ( coder_type == INACTIVE ) { *total_brate_sec = max( *total_brate_sec, tdm_bit_allc_tbl[0][0] ); /* sanity check to ensure the secondary channel always gets the minimal bitrate it needs */ @@ -317,9 +316,6 @@ void tdm_bit_alloc( { *total_brate_sec = max( *total_brate_sec, 3500 ); /* sanity check to ensure the secondary channel always gets the minimal bitrate it needs */ } -#else - *total_brate_sec = max( *total_brate_sec, tdm_bit_allc_tbl[idx][coder_type] ); /* sanity check to ensure the secondary channel always gets the minimal bitrate it needs */ -#endif } /* Secondary channel bitrate adjusment */ diff --git a/lib_com/options.h b/lib_com/options.h index 75120c79f9..3a4b49e777 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_694_OMASA_ACELP /* Nokia: Issue #694: OMASA crash in ACELP with extreme item */ #define NONBE_FIX_770_PLANAR_SBA_JBM /* FhG : Issue #770: Crash in planar FOA decoding with JBM caused by uninitialized value */ #define NONBE_FIX_760_COHERENCE_MASA /* Nokia: Issue 760: fixes decoder crash for some cases when all energy ratios are 1 */ #define NONBE_FIX_752_OSBA_MISCONFIG_MCT /* FhG: issue 752: misconfiguration of MCT causes crashes for coding with sampling rate under 48kHz at 256kbps*/ -- GitLab From a92d4caa0f84ef9534d329d8da5ae47361a2914e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:06:54 +0200 Subject: [PATCH 27/42] [cleanup] accept NONBE_FIX_770_PLANAR_SBA_JBM --- lib_com/options.h | 1 - lib_dec/ivas_jbm_dec.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 3a4b49e777..d9f9188ba2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_770_PLANAR_SBA_JBM /* FhG : Issue #770: Crash in planar FOA decoding with JBM caused by uninitialized value */ #define NONBE_FIX_760_COHERENCE_MASA /* Nokia: Issue 760: fixes decoder crash for some cases when all energy ratios are 1 */ #define NONBE_FIX_752_OSBA_MISCONFIG_MCT /* FhG: issue 752: misconfiguration of MCT causes crashes for coding with sampling rate under 48kHz at 256kbps*/ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index 44c09fdca6..dfcabfc53e 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -2037,11 +2037,7 @@ int16_t ivas_jbm_dec_get_num_tc_channels( if ( st_ivas->ivas_format == SBA_FORMAT ) { -#ifdef NONBE_FIX_770_PLANAR_SBA_JBM if ( num_tc == 3 ) -#else - if ( ( st_ivas->sba_planar && num_tc >= 3 ) || num_tc == 3 ) -#endif { num_tc++; } -- GitLab From 3c15fe28c8459beaa559a98cf07a4c08087da407 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:07:29 +0200 Subject: [PATCH 28/42] [cleanup] accept NONBE_FIX_760_COHERENCE_MASA --- lib_com/ivas_cnst.h | 4 ---- lib_com/options.h | 1 - lib_dec/ivas_qmetadata_dec.c | 16 ---------------- 3 files changed, 21 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 1563dcc672..8f07348388 100755 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1181,11 +1181,7 @@ enum #define QMETADATA_MAXBIT_REQ_MASA 900 /* max bit-bit/direction for avoiding requantization in MASA path */ #define QMETADATA_MAXBIT_REQ_SBA 400 /* max bit-bit/direction for avoiding requantization in SBA path */ -#ifdef NONBE_FIX_760_COHERENCE_MASA #define MASA_COH_LIMIT_2IDX 96 /* limit for sum of values across components for having two joint indexes */ -#else -#define MASA_COH_LIMIT_2IDX 144 /* limit for sum of values across components for having two joint indexes */ -#endif #define QMETADATA_MAX_NO_DIRECTIONS 2 #define MASA_MAX_BITS 1300 /* max. bit-budget for MASA metadata */ diff --git a/lib_com/options.h b/lib_com/options.h index d9f9188ba2..1bfdb578ce 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_760_COHERENCE_MASA /* Nokia: Issue 760: fixes decoder crash for some cases when all energy ratios are 1 */ #define NONBE_FIX_752_OSBA_MISCONFIG_MCT /* FhG: issue 752: misconfiguration of MCT causes crashes for coding with sampling rate under 48kHz at 256kbps*/ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ #define NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION /* Dlb : issue 727 : headrotation in MC paramupmix mode*/ diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index 728c295ac5..462e8e3c45 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -3740,14 +3740,10 @@ static int16_t read_coherence_data( uint16_t byteBuffer; int16_t idx_ER; int16_t min_index; -#ifdef NONBE_FIX_760_COHERENCE_MASA int16_t extra_cv; -#endif coding_subbands = hQMetaData->q_direction[idx_dir].cfg.nbands; -#ifdef NONBE_FIX_760_COHERENCE_MASA extra_cv = (int16_t) ( coding_subbands / MASA_FACTOR_CV_COH ); -#endif q_direction = &( hQMetaData->q_direction[idx_dir] ); bit_pos = *p_bit_pos; nbits = 0; @@ -3758,19 +3754,11 @@ static int16_t read_coherence_data( { if ( hrmasa_flag ) { -#ifdef NONBE_FIX_760_COHERENCE_MASA idx_ER = 7 - ( q_direction->band_data[j].energy_ratio_index_mod[0] >> 1 ) + extra_cv; -#else - idx_ER = 7 - ( q_direction->band_data[j].energy_ratio_index_mod[0] >> 1 ) + coding_subbands / MASA_FACTOR_CV_COH; -#endif } else { -#ifdef NONBE_FIX_760_COHERENCE_MASA idx_ER = 7 - q_direction->band_data[j].energy_ratio_index_mod[0] + extra_cv; -#else - idx_ER = 7 - q_direction->band_data[j].energy_ratio_index_mod[0] + coding_subbands / MASA_FACTOR_CV_COH; -#endif } no_cv_vec[j] = idx_ER + 1; } @@ -3790,11 +3778,7 @@ static int16_t read_coherence_data( if ( byteBuffer & 1 ) { /* decode GR min removed */ -#ifdef NONBE_FIX_760_COHERENCE_MASA nbits += read_GR_min_removed_data( bitstream, &bit_pos, no_cv_vec, coding_subbands, decoded_idx, MASA_MAX_NO_CV_SUR_COH + extra_cv ); -#else - nbits += read_GR_min_removed_data( bitstream, &bit_pos, no_cv_vec, coding_subbands, decoded_idx, MASA_MAX_NO_CV_SUR_COH ); -#endif for ( j = 0; j < coding_subbands; j++ ) { if ( no_cv_vec[j] > 1 ) -- GitLab From a04a8650704282124d07376b83c22efe89a810dd Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:08:08 +0200 Subject: [PATCH 29/42] [cleanup] accept NONBE_FIX_752_OSBA_MISCONFIG_MCT --- lib_com/bitstream.c | 4 ---- lib_com/options.h | 1 - lib_dec/ivas_corecoder_dec_reconfig.c | 8 -------- lib_dec/ivas_init_dec.c | 12 ------------ lib_dec/ivas_mct_dec.c | 8 -------- lib_dec/ivas_sba_dec.c | 17 ----------------- lib_enc/ivas_corecoder_enc_reconfig.c | 15 --------------- lib_enc/ivas_mct_enc.c | 8 -------- lib_enc/ivas_osba_enc.c | 15 --------------- 9 files changed, 88 deletions(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index 6ef9cc8ec2..4a24d905a8 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -2738,11 +2738,7 @@ ivas_error preview_indices( /* Read SBA planar flag and SBA order */ st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + IVAS_COMBINED_FORMAT_SIGNALLING_BITS] == 1 ); -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( total_brate >= IVAS_256k ) -#else - if ( total_brate > IVAS_256k ) -#endif { st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + IVAS_COMBINED_FORMAT_SIGNALLING_BITS + 2] == 1 ); st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + IVAS_COMBINED_FORMAT_SIGNALLING_BITS + 1] == 1 ); diff --git a/lib_com/options.h b/lib_com/options.h index 1bfdb578ce..3d09e8ef26 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -175,7 +175,6 @@ /* all switches in this category should start with "NONBE_" */ -#define NONBE_FIX_752_OSBA_MISCONFIG_MCT /* FhG: issue 752: misconfiguration of MCT causes crashes for coding with sampling rate under 48kHz at 256kbps*/ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ #define NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION /* Dlb : issue 727 : headrotation in MC paramupmix mode*/ #define NONBE_FIX_779_ISM_FREE_REVERB_HANDLE /* VA: issue 779: fix Crash in ISM rate switching with BINAURAL_ROOM_REVERB */ diff --git a/lib_dec/ivas_corecoder_dec_reconfig.c b/lib_dec/ivas_corecoder_dec_reconfig.c index 6a134e6fda..9583b3dacc 100644 --- a/lib_dec/ivas_corecoder_dec_reconfig.c +++ b/lib_dec/ivas_corecoder_dec_reconfig.c @@ -60,9 +60,7 @@ ivas_error ivas_corecoder_dec_reconfig( int16_t n, sce_id, cpe_id, output_frame; int16_t nSCE_existing, nCPE_existing; int32_t ivas_total_brate; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT int16_t nchan_transport_real; -#endif MC_MODE last_mc_mode; DECODER_CONFIG_HANDLE hDecoderConfig; ivas_error error; @@ -85,14 +83,12 @@ ivas_error ivas_corecoder_dec_reconfig( last_mc_mode = MC_MODE_NONE; } -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT nchan_transport_real = st_ivas->nchan_transport; if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { nchan_transport_real += st_ivas->nchan_ism; } -#endif /*-----------------------------------------------------------------* * Allocate, initialize, and configure SCE/CPE/MCT handles *-----------------------------------------------------------------*/ @@ -116,11 +112,7 @@ ivas_error ivas_corecoder_dec_reconfig( } } -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( nchan_transport_real == nchan_transport_old && st_ivas->nSCE == nSCE_old && st_ivas->nCPE == nCPE_old ) -#else - if ( st_ivas->nchan_transport == nchan_transport_old && st_ivas->nSCE == nSCE_old && st_ivas->nCPE == nCPE_old ) -#endif { for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) { diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index e44ab8ab7c..0c8455d5cd 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1593,12 +1593,6 @@ ivas_error ivas_init_decoder( st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ st_ivas->hCPE[0]->hCoreCoder[1] = NULL; } -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) - { - st_ivas->nchan_transport += st_ivas->nchan_ism; - } -#endif if ( st_ivas->nCPE > 1 ) { @@ -1607,12 +1601,6 @@ ivas_error ivas_init_decoder( return error; } } -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) - { - st_ivas->nchan_transport -= st_ivas->nchan_ism; - } -#endif if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index f6d58c693a..2601c33504 100755 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -348,12 +348,10 @@ ivas_error create_mct_dec( if ( ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) || st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT ) { hMCT->nchan_out_woLFE = st_ivas->nchan_transport; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { hMCT->nchan_out_woLFE += st_ivas->nchan_ism; } -#endif } else if ( st_ivas->mc_mode == MC_MODE_MCT ) { @@ -370,12 +368,10 @@ ivas_error create_mct_dec( cp_bitrate = st_ivas->hDecoderConfig->ivas_total_brate / hMCT->nchan_out_woLFE * CPE_CHANNELS; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { cp_bitrate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport * CPE_CHANNELS; } -#endif /* indicate LFE for appropriate core-coder channel */ for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) @@ -475,12 +471,10 @@ ivas_error mct_dec_reconfigure( if ( ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) || st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT ) { hMCT->nchan_out_woLFE = st_ivas->nchan_transport; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { hMCT->nchan_out_woLFE += st_ivas->nchan_ism; } -#endif } else if ( st_ivas->mc_mode == MC_MODE_MCT ) { @@ -512,12 +506,10 @@ ivas_error mct_dec_reconfigure( } cp_bitrate = st_ivas->hDecoderConfig->ivas_total_brate / hMCT->nchan_out_woLFE * CPE_CHANNELS; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { cp_bitrate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport * CPE_CHANNELS; } -#endif /* set correct nominal bitrates and igf config already here, otherwise we * run into a number of problems */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 3bcda6c13b..11a707529f 100755 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -557,9 +557,6 @@ ivas_error ivas_sba_dec_reconfigure( return error; } -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - st_ivas->nchan_transport += st_ivas->nchan_ism; -#endif st_ivas->nCPE += ( st_ivas->nchan_ism + 1 ) >> 1; } else if ( ism_mode_old == ISM_SBA_MODE_DISC && st_ivas->ism_mode == ISM_MODE_NONE ) @@ -586,15 +583,10 @@ ivas_error ivas_sba_dec_reconfigure( } else if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - st_ivas->nchan_transport += st_ivas->nchan_ism; -#endif st_ivas->nCPE += ( st_ivas->nchan_ism + 1 ) >> 1; nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT nchan_transport_old += st_ivas->nchan_ism; -#endif } } @@ -602,15 +594,6 @@ ivas_error ivas_sba_dec_reconfigure( { return error; } -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) - { - if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) - { - st_ivas->nchan_transport -= st_ivas->nchan_ism; - } - } -#endif /*-----------------------------------------------------------------* * HP20 memories diff --git a/lib_enc/ivas_corecoder_enc_reconfig.c b/lib_enc/ivas_corecoder_enc_reconfig.c index 5510ce48c2..8619b1122b 100644 --- a/lib_enc/ivas_corecoder_enc_reconfig.c +++ b/lib_enc/ivas_corecoder_enc_reconfig.c @@ -64,9 +64,7 @@ ivas_error ivas_corecoder_enc_reconfig( int16_t i, nb_bits; Indice temp_ind_list[MAX_NUM_IND_TEMP_LIST]; int16_t nb_bits_tot; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT int16_t nchan_transport_real, nchan_transport_old_real; -#endif ENCODER_CONFIG_HANDLE hEncoderConfig; ivas_error error; @@ -83,7 +81,6 @@ ivas_error ivas_corecoder_enc_reconfig( len_inp_memory += NS2SA( hEncoderConfig->input_Fs, IVAS_FB_ENC_DELAY_NS ); } -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT nchan_transport_old_real = nchan_transport_old; nchan_transport_real = st_ivas->nchan_transport; @@ -91,17 +88,12 @@ ivas_error ivas_corecoder_enc_reconfig( { nchan_transport_real += st_ivas->hEncoderConfig->nchan_ism; } -#endif /*-----------------------------------------------------------------* * Switching between SCE(s)/CPE(s)/MCT *-----------------------------------------------------------------*/ -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( nchan_transport_real == nchan_transport_old_real && st_ivas->nSCE == nSCE_old && st_ivas->nCPE == nCPE_old ) /* in McMASA, nchan_transport may be the same, but nSCE/nCPE differs */ -#else - if ( st_ivas->nchan_transport == nchan_transport_old && st_ivas->nSCE == nSCE_old && st_ivas->nCPE == nCPE_old ) /* in McMASA, nchan_transport may be the same, but nSCE/nCPE differs */ -#endif { for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) { @@ -133,13 +125,6 @@ ivas_error ivas_corecoder_enc_reconfig( } else { -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - int16_t nchan_transport_real, nchan_transport_old_real; - - - nchan_transport_old_real = nchan_transport_old; - nchan_transport_real = st_ivas->nchan_transport; -#endif /* in SCE+CPE McMASA nchan_transport is still 2, fix the numbers */ if ( hEncoderConfig->ivas_format == MC_FORMAT && last_mc_mode == MC_MODE_MCMASA ) diff --git a/lib_enc/ivas_mct_enc.c b/lib_enc/ivas_mct_enc.c index d409e845fa..d3862915ca 100755 --- a/lib_enc/ivas_mct_enc.c +++ b/lib_enc/ivas_mct_enc.c @@ -227,12 +227,10 @@ ivas_error ivas_mct_enc( int32_t cp_bitrate; cp_bitrate = ivas_total_brate / hMCT->nchan_out_woLFE * CPE_CHANNELS; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { cp_bitrate = ivas_total_brate / st_ivas->nchan_transport * CPE_CHANNELS; } -#endif for ( n = 0; n < (int16_t) ( hMCT->nchan_out_woLFE * 0.5 ); n++ ) { @@ -350,12 +348,10 @@ ivas_error create_mct_enc( } cp_bitrate = ivas_total_brate / hMCT->nchan_out_woLFE * CPE_CHANNELS; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { cp_bitrate = ivas_total_brate / st_ivas->nchan_transport * CPE_CHANNELS; } -#endif for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) { @@ -466,12 +462,10 @@ ivas_error mct_enc_reconfigure( else if ( ivas_format == SBA_FORMAT || ivas_format == SBA_ISM_FORMAT ) { hMCT->nchan_out_woLFE = st_ivas->nchan_transport; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { hMCT->nchan_out_woLFE += st_ivas->hEncoderConfig->nchan_ism; } -#endif } else { @@ -480,12 +474,10 @@ ivas_error mct_enc_reconfigure( } cp_bitrate = ivas_total_brate / hMCT->nchan_out_woLFE * CPE_CHANNELS; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { cp_bitrate = ivas_total_brate / st_ivas->nchan_transport * CPE_CHANNELS; } -#endif for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) { diff --git a/lib_enc/ivas_osba_enc.c b/lib_enc/ivas_osba_enc.c index 572bf09593..96d0a30fea 100644 --- a/lib_enc/ivas_osba_enc.c +++ b/lib_enc/ivas_osba_enc.c @@ -338,9 +338,6 @@ ivas_error ivas_osba_enc_reconfig( if ( old_ism_mode == ISM_MODE_NONE && st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - st_ivas->nchan_transport += st_ivas->hEncoderConfig->nchan_ism; -#endif st_ivas->nCPE += ( st_ivas->hEncoderConfig->nchan_ism + 1 ) >> 1; } else if ( old_ism_mode == ISM_SBA_MODE_DISC && st_ivas->ism_mode == ISM_MODE_NONE ) @@ -349,28 +346,16 @@ ivas_error ivas_osba_enc_reconfig( } else if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) { -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - st_ivas->nchan_transport += st_ivas->hEncoderConfig->nchan_ism; -#endif st_ivas->nCPE += ( st_ivas->hEncoderConfig->nchan_ism + 1 ) >> 1; nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; -#ifdef NONBE_FIX_752_OSBA_MISCONFIG_MCT nchan_transport_old += st_ivas->hEncoderConfig->nchan_ism; -#endif } if ( ( error = ivas_corecoder_enc_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old, ivas_total_brate / st_ivas->nchan_transport, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS, MC_MODE_NONE ) ) != IVAS_ERR_OK ) { return error; } -#ifndef NONBE_FIX_752_OSBA_MISCONFIG_MCT - if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC ) - { - /*retain original value for further processing*/ - st_ivas->nchan_transport -= st_ivas->hEncoderConfig->nchan_ism; - } -#endif } return error; -- GitLab From cfb84da5744c3d0fe3a42ffa493bf74fb192902c Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:08:55 +0200 Subject: [PATCH 30/42] [cleanup] accept NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION --- lib_com/ivas_prot.h | 2 - lib_com/options.h | 1 - lib_dec/ivas_mc_param_dec.c | 79 --------------------------- lib_dec/ivas_mc_paramupmix_dec.c | 56 ------------------- lib_dec/ivas_output_config.c | 12 ---- lib_dec/ivas_sba_rendering_internal.c | 2 - lib_dec/ivas_stat_dec.h | 2 - 7 files changed, 154 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index cf8fe48211..d2ef0f82e5 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5321,7 +5321,6 @@ void ivas_mc2sba( const float gain_lfe /* i : gain for LFE, 0=ignore LFE */ ); -#ifdef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION void ivas_param_mc_mc2sba_cldfb( IVAS_OUTPUT_SETUP hTransSetup, /* i : transported MC Format */ float *hoa_encoder, /* i : HOA3 encoder for the transported MC format */ @@ -5331,7 +5330,6 @@ void ivas_param_mc_mc2sba_cldfb( const int16_t nBands, /* i : number of synth CLDFB bands */ const float gain_lfe /* i : gain applied to LFE */ ); -#endif void ivas_ism2sba( float *buffer_td[], /* i/o: TD signal buffers */ diff --git a/lib_com/options.h b/lib_com/options.h index 3d09e8ef26..59e4ba50e3 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -176,7 +176,6 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ -#define NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION /* Dlb : issue 727 : headrotation in MC paramupmix mode*/ #define NONBE_FIX_779_ISM_FREE_REVERB_HANDLE /* VA: issue 779: fix Crash in ISM rate switching with BINAURAL_ROOM_REVERB */ #define NONBE_FIX_722_MEMORY_LEAK_IN_PARAMUPMIX /* Dlb : issue 722: memory leak fix in MC param upmix mode with BR switching*/ diff --git a/lib_dec/ivas_mc_param_dec.c b/lib_dec/ivas_mc_param_dec.c index 6bdba5039a..fc8f4587bf 100644 --- a/lib_dec/ivas_mc_param_dec.c +++ b/lib_dec/ivas_mc_param_dec.c @@ -97,9 +97,6 @@ static void ivas_param_mc_dec_compute_interpolator( const uint16_t bAttackPresen static void param_mc_set_num_synth_bands( const int32_t output_Fs, PARAM_MC_DEC_HANDLE hParamMC ); static ivas_error param_mc_get_diff_proto_info( const float *proto_mtx, const uint16_t nchan_transport, const uint16_t nchan_out_cov, PARAM_MC_DIFF_PROTO_INFO *p_diff_proto_info ); -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION -static void ivas_param_mc_mc2sba_cldfb( IVAS_OUTPUT_SETUP hTransSetup, float *hoa_encoder, const int16_t slot_idx, float Cldfb_RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], float Cldfb_ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], const int16_t nBands, const float gain_lfe ); -#endif static void ivas_param_mc_get_param_band_mapping( const int16_t n_target_bands, const int16_t *target_band_grouping, const int16_t n_source_bands, const int16_t *source_band_grouping, PARAM_MC_PARAMETER_BAND_MAPPING *parameter_band_mapping ); @@ -2982,82 +2979,6 @@ static ivas_error param_mc_get_diff_proto_info( return IVAS_ERR_OK; } -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION -/*-------------------------------------------------------------------------* - * ivas_param_mc_mc2sba_cldfb() - * - * MC signals transformed into SBA in CLDFB domain - * used for binaural rendering with head rotation - *-------------------------------------------------------------------------*/ - -static void ivas_param_mc_mc2sba_cldfb( - IVAS_OUTPUT_SETUP hTransSetup, /* i : transported MC Format */ - float *hoa_encoder, /* i : HOA3 encoder for the transported MC format */ - const int16_t slot_idx, /* i : current slot in the subframe */ - float Cldfb_RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: Contains the MC signals (on input) and the HOA3 (on output) */ - float Cldfb_ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: Contains the MC signals (on input) and the HOA3 (on output) */ - const int16_t nBands, /* i : number of synth CLDFB bands */ - const float gain_lfe /* i : gain applied to LFE */ -) -{ - int16_t idx_ch, idx_band; - int16_t idx_lfe, idx_in, idx_out; - float Cldfb_RealBuffer_tmp[MAX_INTERN_CHANNELS][CLDFB_NO_CHANNELS_MAX]; - float Cldfb_ImagBuffer_tmp[MAX_INTERN_CHANNELS][CLDFB_NO_CHANNELS_MAX]; - float *gains; - int16_t sba_num_chans; - - /* Init*/ - sba_num_chans = MAX_INTERN_CHANNELS; - - for ( idx_ch = 0; idx_ch < sba_num_chans; idx_ch++ ) - { - set_zero( Cldfb_RealBuffer_tmp[idx_ch], CLDFB_NO_CHANNELS_MAX ); - set_zero( Cldfb_ImagBuffer_tmp[idx_ch], CLDFB_NO_CHANNELS_MAX ); - } - - idx_lfe = 0; - idx_in = 0; - for ( idx_ch = 0; idx_ch < hTransSetup.nchan_out_woLFE + hTransSetup.num_lfe; idx_ch++ ) - { - if ( ( hTransSetup.num_lfe > 0 ) && ( idx_ch == hTransSetup.index_lfe[idx_lfe] ) ) - { - if ( gain_lfe > 0.f ) - { - /* Add LFE to Omni Channel i.e. W (Just first Band) */ - Cldfb_RealBuffer_tmp[0][0] += gain_lfe * Cldfb_RealBuffer[idx_ch][slot_idx][0]; - Cldfb_ImagBuffer_tmp[0][0] += gain_lfe * Cldfb_ImagBuffer[idx_ch][slot_idx][0]; - } - if ( idx_lfe < ( hTransSetup.num_lfe - 1 ) ) - { - idx_lfe++; - } - } - else - { - gains = hoa_encoder + idx_in * sba_num_chans; - for ( idx_out = 0; idx_out < sba_num_chans; idx_out++ ) - { - for ( idx_band = 0; idx_band < nBands; idx_band++ ) - { - Cldfb_RealBuffer_tmp[idx_out][idx_band] += ( *gains ) * Cldfb_RealBuffer[idx_ch][slot_idx][idx_band]; - Cldfb_ImagBuffer_tmp[idx_out][idx_band] += ( *gains ) * Cldfb_ImagBuffer[idx_ch][slot_idx][idx_band]; - } - gains++; - } - idx_in++; - } - } - - for ( idx_ch = 0; idx_ch < sba_num_chans; idx_ch++ ) - { - mvr2r( Cldfb_RealBuffer_tmp[idx_ch], Cldfb_RealBuffer[idx_ch][slot_idx], nBands ); - mvr2r( Cldfb_ImagBuffer_tmp[idx_ch], Cldfb_ImagBuffer[idx_ch][slot_idx], nBands ); - } - - return; -} -#endif /*-------------------------------------------------------------------------* * ivas_param_mc_bs_decode_parameter_values() diff --git a/lib_dec/ivas_mc_paramupmix_dec.c b/lib_dec/ivas_mc_paramupmix_dec.c index 319c9948f0..ebd57a038e 100644 --- a/lib_dec/ivas_mc_paramupmix_dec.c +++ b/lib_dec/ivas_mc_paramupmix_dec.c @@ -194,23 +194,12 @@ void ivas_mc_paramupmix_dec( int16_t noparamupmix_delay; AUDIO_CONFIG output_config; int16_t subframeIdx, idx_in, index_slot, maxBand; -#ifdef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION float Cldfb_RealBuffer_subfr[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer_subfr[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; -#endif #ifdef SPLIT_REND_WITH_HEAD_ROT -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION - float Cldfb_RealBuffer_subfr[MC_PARAMUPMIX_MAX_INPUT_CHANS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; - float Cldfb_ImagBuffer_subfr[MC_PARAMUPMIX_MAX_INPUT_CHANS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; - int16_t idx_lfe; -#endif float Cldfb_RealBuffer_Binaural[MAX_HEAD_ROT_POSES][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer_Binaural[MAX_HEAD_ROT_POSES][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; #else -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION - float Cldfb_RealBuffer_subfr[3 + MC_PARAMUPMIX_MAX_TRANSPORT_CHANS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; - float Cldfb_ImagBuffer_subfr[3 + MC_PARAMUPMIX_MAX_TRANSPORT_CHANS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; -#endif float Cldfb_RealBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; float Cldfb_ImagBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX]; #endif @@ -332,7 +321,6 @@ void ivas_mc_paramupmix_dec( idx_in += 2; } -#ifdef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION if ( st_ivas->hCombinedOrientationData && st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV ) { for ( slot_idx = 0; slot_idx < MAX_PARAM_SPATIAL_SUBFRAMES; slot_idx++ ) @@ -340,25 +328,11 @@ void ivas_mc_paramupmix_dec( ivas_param_mc_mc2sba_cldfb( st_ivas->hTransSetup, hMCParamUpmix->hoa_encoder, slot_idx, Cldfb_RealBuffer_subfr, Cldfb_ImagBuffer_subfr, maxBand, GAIN_LFE ); } } -#endif #ifdef SPLIT_REND_WITH_HEAD_ROT /*LFE handling for split rendering cases*/ if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION - /*LFE is already handled in ivas_param_mc_mc2sba_cldfb()*/ - for ( idx_lfe = 0; idx_lfe < st_ivas->hIntSetup.num_lfe; idx_lfe++ ) - { - ch = st_ivas->hIntSetup.index_lfe[idx_lfe]; - /* slot loop for gathering the input data */ - for ( slot_idx = 0; slot_idx < MAX_PARAM_SPATIAL_SUBFRAMES; slot_idx++ ) - { - cldfbAnalysis_ts( &( output_f[ch][maxBand * index_slot] ), Cldfb_RealBuffer_subfr[idx_in][slot_idx], Cldfb_ImagBuffer_subfr[idx_in][slot_idx], maxBand, st_ivas->cldfbAnaDec[idx_in] ); - } - idx_in++; - } -#endif #ifdef SPLIT_REND_WITH_HEAD_ROT if ( st_ivas->hSplitBinRend.hCldfbDataOut != NULL ) @@ -396,16 +370,6 @@ void ivas_mc_paramupmix_dec( if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { int16_t pos_idx; -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION - for ( slot_idx = 0; slot_idx < JBM_CLDFB_SLOTS_IN_SUBFRAME; slot_idx++ ) - { - if ( st_ivas->hIntSetup.num_lfe > 0 ) - { - v_multc( Cldfb_RealBuffer_subfr[st_ivas->hIntSetup.nchan_out_woLFE][slot_idx], GAIN_LFE, Cldfb_RealBuffer_subfr[st_ivas->hIntSetup.nchan_out_woLFE][slot_idx], maxBand ); - v_multc( Cldfb_ImagBuffer_subfr[st_ivas->hIntSetup.nchan_out_woLFE][slot_idx], GAIN_LFE, Cldfb_ImagBuffer_subfr[st_ivas->hIntSetup.nchan_out_woLFE][slot_idx], maxBand ); - } - } -#endif for ( pos_idx = 0; pos_idx < st_ivas->hBinRenderer->numPoses; pos_idx++ ) { @@ -413,20 +377,6 @@ void ivas_mc_paramupmix_dec( { for ( ch = 0; ch < st_ivas->hDecoderConfig->nchan_out; ch++ ) { -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION - if ( st_ivas->hIntSetup.num_lfe > 0 ) - { - v_add( Cldfb_RealBuffer_Binaural[pos_idx][ch][slot_idx], - Cldfb_RealBuffer_subfr[st_ivas->hIntSetup.nchan_out_woLFE][slot_idx], - Cldfb_RealBuffer_Binaural[pos_idx][ch][slot_idx], - maxBand ); - - v_add( Cldfb_ImagBuffer_Binaural[pos_idx][ch][slot_idx], - Cldfb_ImagBuffer_subfr[st_ivas->hIntSetup.nchan_out_woLFE][slot_idx], - Cldfb_ImagBuffer_Binaural[pos_idx][ch][slot_idx], - maxBand ); - } -#endif mvr2r( Cldfb_RealBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend.hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand ); mvr2r( Cldfb_ImagBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend.hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand ); } @@ -677,9 +627,7 @@ ivas_error ivas_mc_paramupmix_dec_open( #endif } -#ifdef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION hMCParamUpmix->hoa_encoder = NULL; -#endif /*-----------------------------------------------------------------* * set input parameters @@ -701,7 +649,6 @@ ivas_error ivas_mc_paramupmix_dec_open( set_zero( hMCParamUpmix->pcm_delay[i], NS2SA( output_Fs, IVAS_FB_DEC_DELAY_NS ) ); } -#ifdef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION /* Head or external rotation */ if ( ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) && ( st_ivas->hDecoderConfig->Opt_Headrotation || st_ivas->hDecoderConfig->Opt_ExternalOrientation ) ) { @@ -711,7 +658,6 @@ ivas_error ivas_mc_paramupmix_dec_open( } compute_hoa_encoder_mtx( st_ivas->hTransSetup.ls_azimuth, st_ivas->hTransSetup.ls_elevation, hMCParamUpmix->hoa_encoder, st_ivas->hTransSetup.nchan_out_woLFE, HEAD_ROTATION_HOA_ORDER ); } -#endif /* allocate transport channels*/ hMCParamUpmix->free_param_interpolator = 0; @@ -789,13 +735,11 @@ void ivas_mc_paramupmix_dec_close( free( ( *hMCParamUpmix )->param_interpolator ); } } -#ifdef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION if ( ( *hMCParamUpmix )->hoa_encoder != NULL ) { free( ( *hMCParamUpmix )->hoa_encoder ); ( *hMCParamUpmix )->hoa_encoder = NULL; } -#endif free( *hMCParamUpmix ); *hMCParamUpmix = NULL; diff --git a/lib_dec/ivas_output_config.c b/lib_dec/ivas_output_config.c index 80c06d360b..88d2f96adf 100644 --- a/lib_dec/ivas_output_config.c +++ b/lib_dec/ivas_output_config.c @@ -262,12 +262,6 @@ void ivas_renderer_select( /* force HOA3 domain for rotation*/ *internal_config = IVAS_AUDIO_CONFIG_HOA3; } -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION - if ( ( st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) && ( *renderer_type == RENDERER_BINAURAL_FASTCONV ) ) - { - *internal_config = IVAS_AUDIO_CONFIG_7_1_4; - } -#endif } } else @@ -289,12 +283,6 @@ void ivas_renderer_select( { *renderer_type = RENDERER_BINAURAL_FASTCONV_ROOM; } -#endif -#ifndef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION - if ( ( st_ivas->mc_mode == MC_MODE_PARAMUPMIX ) && ( *renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) ) - { - *internal_config = IVAS_AUDIO_CONFIG_5_1_2; - } #endif } } diff --git a/lib_dec/ivas_sba_rendering_internal.c b/lib_dec/ivas_sba_rendering_internal.c index 9c48183e59..52a5ae4685 100644 --- a/lib_dec/ivas_sba_rendering_internal.c +++ b/lib_dec/ivas_sba_rendering_internal.c @@ -210,7 +210,6 @@ void ivas_mc2sba( } -#ifdef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION /*-------------------------------------------------------------------------* * ivas_param_mc_mc2sba_cldfb() * @@ -285,7 +284,6 @@ void ivas_param_mc_mc2sba_cldfb( return; } -#endif /*-------------------------------------------------------------------* diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 879299fab7..ceab947f3f 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -559,9 +559,7 @@ typedef struct ivas_mc_paramupmix_dec_data_structure float alpha_sf[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; float beta_sf[MC_PARAMUPMIX_COMBINATIONS][IVAS_MAX_NUM_BANDS]; int16_t free_param_interpolator; -#ifdef NONBE_FIX_727_MC_PARAMUPMIX_HEADROTATION float *hoa_encoder; -#endif } MC_PARAMUPMIX_DEC_DATA, *MC_PARAMUPMIX_DEC_HANDLE; -- GitLab From a7c19aa07d67f293704ebe631479ffea5ef0037d Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:09:30 +0200 Subject: [PATCH 31/42] [cleanup] accept NONBE_FIX_779_ISM_FREE_REVERB_HANDLE --- lib_com/options.h | 1 - lib_rend/ivas_reverb.c | 11 ----------- 2 files changed, 12 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 59e4ba50e3..416f2471ab 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -176,7 +176,6 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ -#define NONBE_FIX_779_ISM_FREE_REVERB_HANDLE /* VA: issue 779: fix Crash in ISM rate switching with BINAURAL_ROOM_REVERB */ #define NONBE_FIX_722_MEMORY_LEAK_IN_PARAMUPMIX /* Dlb : issue 722: memory leak fix in MC param upmix mode with BR switching*/ #define NONBE_FIX_780_ISM_STARTS_WITH_SID /* VA: issue 780: fix Crash in ISM decoding when bitstream starts with an SID and output_config is not EXT */ diff --git a/lib_rend/ivas_reverb.c b/lib_rend/ivas_reverb.c index 6f0cc838ab..26c6287d79 100644 --- a/lib_rend/ivas_reverb.c +++ b/lib_rend/ivas_reverb.c @@ -1279,16 +1279,11 @@ void ivas_reverb_close( hReverb = *hReverb_in; -#ifdef NONBE_FIX_779_ISM_FREE_REVERB_HANDLE if ( hReverb_in == NULL || *hReverb_in == NULL ) { return; } -#else - if ( hReverb != NULL ) - { -#endif for ( loop_idx = 0; loop_idx < IVAS_REV_MAX_NR_BRANCHES; loop_idx++ ) { if ( hReverb->loop_delay_buffer[loop_idx] != NULL ) @@ -1301,14 +1296,8 @@ void ivas_reverb_close( free( hReverb->pPredelay_buffer ); hReverb->pPredelay_buffer = NULL; -#ifdef NONBE_FIX_779_ISM_FREE_REVERB_HANDLE free( *hReverb_in ); *hReverb_in = NULL; -#else - free( hReverb ); - hReverb = NULL; - } -#endif return; } -- GitLab From ec19281e6a9b237831dad459572fea6fe2766e6c Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:10:07 +0200 Subject: [PATCH 32/42] [cleanup] accept NONBE_FIX_722_MEMORY_LEAK_IN_PARAMUPMIX --- lib_com/options.h | 1 - lib_dec/ivas_mct_dec.c | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 416f2471ab..05e7fb6dc5 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -177,7 +177,6 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ -#define NONBE_FIX_722_MEMORY_LEAK_IN_PARAMUPMIX /* Dlb : issue 722: memory leak fix in MC param upmix mode with BR switching*/ #define NONBE_FIX_780_ISM_STARTS_WITH_SID /* VA: issue 780: fix Crash in ISM decoding when bitstream starts with an SID and output_config is not EXT */ #define NONBE_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE /* FhG: fix for cng in ISM DTX on sudden silence periods - JBM addon (issue 552) */ #define NONBE_FIX_738_SBA_BR_SW_ASAN /* FhG: issue 738: fixes bug when switching to an MCT bitrate and previous frame was ACELP */ diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 2601c33504..b3996bda8c 100755 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -952,12 +952,7 @@ static ivas_error ivas_mc_dec_reconfig( { ivas_mct_dec_close( &st_ivas->hMCT ); } -#ifndef NONBE_FIX_722_MEMORY_LEAK_IN_PARAMUPMIX - /* LFE handle */ - ivas_lfe_dec_close( &( st_ivas->hLFE ) ); -#endif } -#ifdef NONBE_FIX_722_MEMORY_LEAK_IN_PARAMUPMIX else if ( last_mc_mode == MC_MODE_PARAMUPMIX ) { ivas_mc_paramupmix_dec_close( &( st_ivas->hMCParamUpmix ) ); @@ -965,7 +960,6 @@ static ivas_error ivas_mc_dec_reconfig( /* LFE handle */ ivas_lfe_dec_close( &( st_ivas->hLFE ) ); -#endif } else if ( st_ivas->mc_mode == MC_MODE_MCMASA ) { @@ -1001,16 +995,10 @@ static ivas_error ivas_mc_dec_reconfig( if ( last_mc_mode == MC_MODE_MCT ) { ivas_mct_dec_close( &st_ivas->hMCT ); -#ifndef NONBE_FIX_722_MEMORY_LEAK_IN_PARAMUPMIX - /* LFE handle */ - ivas_lfe_dec_close( &( st_ivas->hLFE ) ); -#endif } -#ifdef NONBE_FIX_722_MEMORY_LEAK_IN_PARAMUPMIX /* LFE handle */ ivas_lfe_dec_close( &( st_ivas->hLFE ) ); -#endif } if ( st_ivas->mc_mode != MC_MODE_MCMASA ) -- GitLab From 887cf6a182b4b08d645d00ca5dfebcd19c6e6e32 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:10:52 +0200 Subject: [PATCH 33/42] [cleanup] accept NONBE_FIX_780_ISM_STARTS_WITH_SID --- lib_com/options.h | 1 - lib_dec/ivas_init_dec.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 05e7fb6dc5..94b5d2b6fd 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -177,7 +177,6 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ -#define NONBE_FIX_780_ISM_STARTS_WITH_SID /* VA: issue 780: fix Crash in ISM decoding when bitstream starts with an SID and output_config is not EXT */ #define NONBE_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE /* FhG: fix for cng in ISM DTX on sudden silence periods - JBM addon (issue 552) */ #define NONBE_FIX_738_SBA_BR_SW_ASAN /* FhG: issue 738: fixes bug when switching to an MCT bitrate and previous frame was ACELP */ #define NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING /* VA: Issue 735: Resolve "HP20 filtering bug in SBA/OSBA bitrate switching" */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 0c8455d5cd..fa0671b98d 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -662,9 +662,7 @@ ivas_error ivas_dec_setup( st_ivas->nchan_ism = nchan_ism; /* read ism_mode */ -#ifdef NONBE_FIX_780_ISM_STARTS_WITH_SID st_ivas->ism_mode = ISM_MODE_DISC; -#endif if ( nchan_ism > 2 ) { k -= nchan_ism; /* SID metadata flags */ -- GitLab From 34a1896529ce1bf1119c238163d868fa68bc831e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:11:31 +0200 Subject: [PATCH 34/42] [cleanup] accept NONBE_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE --- lib_com/options.h | 1 - lib_dec/ivas_jbm_dec.c | 9 --------- 2 files changed, 10 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 94b5d2b6fd..6c9918dc6f 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -177,7 +177,6 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ -#define NONBE_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE /* FhG: fix for cng in ISM DTX on sudden silence periods - JBM addon (issue 552) */ #define NONBE_FIX_738_SBA_BR_SW_ASAN /* FhG: issue 738: fixes bug when switching to an MCT bitrate and previous frame was ACELP */ #define NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING /* VA: Issue 735: Resolve "HP20 filtering bug in SBA/OSBA bitrate switching" */ #define NONBE_FIX_588_UPDATE_FASTCONV_SD /* FhG: issue 588: update FastConv SD HRTFs in CLDFB domain with new conversion method */ diff --git a/lib_dec/ivas_jbm_dec.c b/lib_dec/ivas_jbm_dec.c index dfcabfc53e..5d17cb4d8b 100644 --- a/lib_dec/ivas_jbm_dec.c +++ b/lib_dec/ivas_jbm_dec.c @@ -147,7 +147,6 @@ ivas_error ivas_jbm_dec_tc( { return error; } -#ifdef NONBE_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE /* decode dominant object first so the noise energy of the other objects can be limited */ if ( ( error = ivas_sce_dec( st_ivas, st_ivas->hISMDTX.sce_id_dtx, &p_output[st_ivas->hISMDTX.sce_id_dtx], output_frame, nb_bits_metadata[st_ivas->hISMDTX.sce_id_dtx] ) ) != IVAS_ERR_OK ) @@ -156,7 +155,6 @@ ivas_error ivas_jbm_dec_tc( } ivas_ism_dtx_limit_noise_energy_for_near_silence( st_ivas->hSCE, st_ivas->hISMDTX.sce_id_dtx, st_ivas->nchan_transport ); -#endif } else if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { @@ -175,7 +173,6 @@ ivas_error ivas_jbm_dec_tc( for ( n = 0; n < st_ivas->nchan_transport; n++ ) { -#ifdef NONBE_FIX_ISM_DTX_INFINITE_CNG_ON_TRAILING_SILENCE /* for DTX frames, dominant object has already been decoded before */ if ( !( ( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) && n == st_ivas->hISMDTX.sce_id_dtx ) ) { @@ -184,12 +181,6 @@ ivas_error ivas_jbm_dec_tc( return error; } } -#else - if ( ( error = ivas_sce_dec( st_ivas, n, &output[n], output_frame, nb_bits_metadata[n] ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif /* HP filtering */ hp20( p_output[n], output_frame, st_ivas->mem_hp20_out[n], output_Fs ); -- GitLab From 3e9e76107d882361cc039c62250da25c63f16289 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:12:20 +0200 Subject: [PATCH 35/42] [cleanup] accept NONBE_FIX_738_SBA_BR_SW_ASAN --- lib_com/options.h | 1 - lib_enc/ivas_mct_core_enc.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 6c9918dc6f..81408892b9 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -177,7 +177,6 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ -#define NONBE_FIX_738_SBA_BR_SW_ASAN /* FhG: issue 738: fixes bug when switching to an MCT bitrate and previous frame was ACELP */ #define NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING /* VA: Issue 735: Resolve "HP20 filtering bug in SBA/OSBA bitrate switching" */ #define NONBE_FIX_588_UPDATE_FASTCONV_SD /* FhG: issue 588: update FastConv SD HRTFs in CLDFB domain with new conversion method */ #define NONBE_FIX_774_OSBA_MONO_DEC_CRASH /* FhG: issue 774: decoder crash for OSBA to mono */ diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c index 1bb2667345..c20d09e332 100755 --- a/lib_enc/ivas_mct_core_enc.c +++ b/lib_enc/ivas_mct_core_enc.c @@ -337,13 +337,11 @@ void ivas_mct_core_enc( } nSubframes = ( sts[ch]->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV; L_subframeTCX = sts[ch]->hTcxEnc->L_frameTCX / nSubframes; -#ifdef NONBE_FIX_738_SBA_BR_SW_ASAN /* in MCT only relevant for bitrate switching from non-MCT bitrates */ if ( sts[ch]->last_core == ACELP_CORE ) { L_subframeTCX += L_subframeTCX / 4; } -#endif for ( n = 0; n < nSubframes; n++ ) { @@ -394,13 +392,11 @@ void ivas_mct_core_enc( } nSubframes = ( st->hTcxEnc->tcxMode == TCX_20 ) ? 1 : NB_DIV; L_subframeTCX = st->hTcxEnc->L_frameTCX / nSubframes; -#ifdef NONBE_FIX_738_SBA_BR_SW_ASAN /* in MCT only relevant for bitrate switching from non-MCT bitrates */ if ( st->last_core == ACELP_CORE ) { L_subframeTCX += L_subframeTCX / 4; } -#endif if ( ( st->hTcxEnc->tcxMode == TCX_20 ) && ( st->total_brate < HQ_96k || st->igf ) ) { -- GitLab From 07b323605978866b3e54091d929eeeffd978e5e9 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:12:59 +0200 Subject: [PATCH 36/42] [cleanup] accept NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING --- lib_com/options.h | 1 - lib_enc/ivas_enc.c | 11 ----------- 2 files changed, 12 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 81408892b9..6df852c429 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -177,7 +177,6 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ -#define NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING /* VA: Issue 735: Resolve "HP20 filtering bug in SBA/OSBA bitrate switching" */ #define NONBE_FIX_588_UPDATE_FASTCONV_SD /* FhG: issue 588: update FastConv SD HRTFs in CLDFB domain with new conversion method */ #define NONBE_FIX_774_OSBA_MONO_DEC_CRASH /* FhG: issue 774: decoder crash for OSBA to mono */ #define NONBE_FIX_802_PARAMUPMIX_HIGHPASS /* Dlb: issue 802: Move HighPass filter operation for ParamUpmix */ diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c index 0557716e36..3c2bf63e16 100644 --- a/lib_enc/ivas_enc.c +++ b/lib_enc/ivas_enc.c @@ -126,7 +126,6 @@ ivas_error ivas_enc( dbgwrite( data_f[LFE_CHANNEL], sizeof( float ), n_samples_chan, 1, "./res/lfe_input" ); #endif -#ifdef NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING if ( ivas_format == SBA_FORMAT ) { if ( ( error = ivas_sba_enc_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) @@ -141,7 +140,6 @@ ivas_error ivas_enc( return error; } } -#endif /*----------------------------------------------------------------* * HP filtering @@ -217,12 +215,6 @@ ivas_error ivas_enc( /* SBA/MASA configuration */ if ( ivas_format == SBA_FORMAT ) { -#ifndef NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING - if ( ( error = ivas_sba_enc_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif } else { @@ -378,9 +370,6 @@ ivas_error ivas_enc( { int16_t planar_sba_orig; planar_sba_orig = hEncoderConfig->sba_planar; -#ifndef NONBE_CR_FIX_735_SBA_HP20_BRATE_SWITCHING - ivas_osba_enc_reconfig( st_ivas ); -#endif /* Analyze objects and determine needed audio signals */ ivas_osba_enc( st_ivas->hOSba, st_ivas->hIsmMetaData, data_f, input_frame, hEncoderConfig->nchan_ism, st_ivas->ism_mode, st_ivas->sba_analysis_order, hEncoderConfig->input_Fs, hEncoderConfig->sba_planar ); -- GitLab From 69a35f84cf09c5b9e6b179a486a7636bdc18762e Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:13:35 +0200 Subject: [PATCH 37/42] [cleanup] accept NONBE_FIX_588_UPDATE_FASTCONV_SD --- lib_com/ivas_cnst.h | 8 - lib_com/options.h | 1 - lib_rend/ivas_rom_binauralRenderer.c | 3418 -------------------------- 3 files changed, 3427 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 8f07348388..5461f74253 100755 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1509,16 +1509,8 @@ typedef enum #define BINAURAL_MAXBANDS 60 /* Max number of bands */ #define BINAURAL_CONVBANDS 50 /* Bands upto which convolution is performed */ -#ifdef NONBE_FIX_588_UPDATE_FASTCONV_SD #define BINAURAL_NTAPS 3 -#else -#define BINAURAL_NTAPS 5 -#endif -#ifdef NONBE_FIX_588_UPDATE_FASTCONV_SD #define BINAURAL_NTAPS_SBA BINAURAL_NTAPS -#else -#define BINAURAL_NTAPS_SBA 3 -#endif #define BINAURAL_NTAPS_MAX 96 diff --git a/lib_com/options.h b/lib_com/options.h index 6df852c429..3e89da04da 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -177,7 +177,6 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ -#define NONBE_FIX_588_UPDATE_FASTCONV_SD /* FhG: issue 588: update FastConv SD HRTFs in CLDFB domain with new conversion method */ #define NONBE_FIX_774_OSBA_MONO_DEC_CRASH /* FhG: issue 774: decoder crash for OSBA to mono */ #define NONBE_FIX_802_PARAMUPMIX_HIGHPASS /* Dlb: issue 802: Move HighPass filter operation for ParamUpmix */ #define NONBE_FIX_778_TNS_UNFIED_STEREO_MSAN /* FhG: Issue 778: MSAN error due to uninitialized TNS configuration */ diff --git a/lib_rend/ivas_rom_binauralRenderer.c b/lib_rend/ivas_rom_binauralRenderer.c index 16c3342523..5708cc7e6a 100644 --- a/lib_rend/ivas_rom_binauralRenderer.c +++ b/lib_rend/ivas_rom_binauralRenderer.c @@ -7113,7 +7113,6 @@ const float rightHRIRImag_FOA[BINAURAL_CONVBANDS][FOA_CHANNELS][BINAURAL_NTAPS_S const float FASTCONV_HRIR_latency_s = 0.000666667f; -#ifdef NONBE_FIX_588_UPDATE_FASTCONV_SD const float leftHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]= { { @@ -10529,3423 +10528,6 @@ const float rightHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]= {-0.195200f, +0.041315f, -0.080091f} } }; -#else -const float leftHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]= -{ - { - {+0.331798f, +0.500334f, +0.042057f, -0.000623f, -0.000260f}, - {+0.065097f, +0.755993f, -0.042308f, -0.016140f, -0.000353f}, - {+0.268829f, +0.563281f, -0.027980f, +0.012635f, +0.000264f}, - {+0.308263f, +0.392544f, +0.075435f, +0.008861f, +0.000454f}, - {+0.017153f, +0.659896f, +0.043215f, -0.004248f, -0.000129f}, - {+0.340040f, +0.406891f, +0.099327f, +0.003281f, -0.000099f}, - {-0.002799f, +0.683738f, +0.064228f, -0.001971f, -0.000057f}, - {+0.359042f, +0.428800f, +0.081790f, -0.007190f, -0.000119f}, - {-0.005600f, +0.687288f, +0.073367f, +0.002388f, +0.000003f}, - {+0.292356f, +0.555445f, +0.036102f, -0.000529f, +0.000197f}, - {+0.099474f, +0.796217f, -0.032809f, +0.002997f, +0.000211f}, - {+0.307282f, +0.477407f, +0.075166f, -0.004779f, -0.000155f}, - {+0.013605f, +0.738918f, +0.023012f, +0.000843f, -0.000001f}, - {+0.281091f, +0.465219f, +0.066896f, -0.000299f, -0.000035f}, - {+0.042794f, +0.706213f, -0.002995f, +0.001494f, +0.000098f} - }, - { - {-0.353458f, -0.509988f, -0.056420f, -0.009429f, +0.000346f}, - {-0.155972f, +0.435567f, +0.001696f, +0.019851f, +0.000455f}, - {-0.299702f, -0.296454f, -0.171587f, -0.015118f, -0.000334f}, - {-0.384303f, -0.695188f, -0.062512f, -0.004920f, -0.000588f}, - {-0.049007f, +0.499063f, -0.006955f, +0.004572f, +0.000162f}, - {-0.410084f, -0.744388f, -0.042671f, -0.008434f, +0.000144f}, - {+0.009096f, +0.553377f, -0.035706f, +0.002161f, +0.000077f}, - {-0.422846f, -0.754362f, -0.007868f, +0.009061f, +0.000145f}, - {+0.017509f, +0.502285f, -0.095304f, -0.005007f, -0.000002f}, - {-0.305138f, -0.315719f, -0.007297f, +0.004583f, -0.000275f}, - {-0.207618f, +0.197622f, -0.120143f, -0.001519f, -0.000281f}, - {-0.364761f, -0.491207f, +0.031861f, +0.003380f, +0.000205f}, - {-0.036080f, +0.561553f, -0.077514f, -0.000495f, +0.000002f}, - {-0.350716f, -0.469227f, -0.004416f, -0.001014f, +0.000046f}, - {-0.110284f, +0.421449f, -0.065919f, +0.000908f, -0.000125f} - }, - { - {-0.323485f, -0.469909f, -0.145194f, +0.023185f, +0.000138f}, - {+0.148398f, -0.113536f, +0.104268f, +0.006075f, +0.000209f}, - {-0.242438f, -0.242764f, -0.307269f, -0.009509f, -0.000170f}, - {-0.215862f, -0.934866f, -0.055111f, -0.015314f, -0.000266f}, - {+0.072808f, +0.267881f, +0.028250f, +0.003545f, +0.000085f}, - {-0.250359f, -0.928708f, -0.097139f, +0.005263f, +0.000033f}, - {-0.016120f, +0.376941f, +0.115286f, +0.001385f, +0.000029f}, - {-0.277575f, -0.914671f, -0.028803f, +0.004826f, +0.000085f}, - {-0.028977f, +0.238147f, +0.130431f, +0.004028f, -0.000005f}, - {-0.313614f, -0.321544f, +0.015716f, -0.005124f, -0.000079f}, - {+0.128859f, -0.535717f, +0.113963f, -0.002797f, -0.000111f}, - {-0.248008f, -0.585440f, -0.019103f, +0.008130f, +0.000084f}, - {+0.050277f, +0.414961f, -0.069970f, -0.002463f, +0.000000f}, - {-0.194842f, -0.628903f, -0.049513f, +0.003377f, +0.000018f}, - {+0.132428f, +0.044930f, -0.036543f, -0.007329f, -0.000060f} - }, - { - {+0.383274f, +0.793256f, +0.075436f, -0.013955f, -0.000379f}, - {-0.039647f, -0.639517f, -0.130290f, -0.009887f, -0.000496f}, - {+0.330408f, +0.714152f, -0.130886f, +0.021668f, +0.000367f}, - {+0.464728f, +0.102297f, +0.053807f, +0.010396f, +0.000640f}, - {-0.083197f, +0.001747f, -0.017367f, -0.005258f, -0.000178f}, - {+0.461299f, +0.192640f, +0.026229f, +0.006396f, -0.000154f}, - {+0.021609f, +0.233041f, -0.037014f, -0.002411f, -0.000083f}, - {+0.456328f, +0.291948f, +0.120073f, -0.012388f, -0.000162f}, - {+0.035294f, +0.008603f, -0.100657f, -0.002303f, +0.000002f}, - {+0.395862f, +0.602011f, -0.015020f, -0.003248f, +0.000289f}, - {+0.061165f, -0.619283f, +0.120603f, -0.004430f, +0.000304f}, - {+0.438346f, +0.519275f, +0.088976f, -0.009090f, -0.000223f}, - {-0.060920f, +0.315700f, -0.014158f, +0.003953f, -0.000002f}, - {+0.405649f, +0.361696f, +0.077054f, -0.002517f, -0.000051f}, - {-0.102961f, -0.285909f, -0.017675f, +0.006341f, +0.000137f} - }, - { - {+0.380999f, +0.888812f, +0.016047f, -0.004923f, -0.000008f}, - {-0.103544f, -0.672790f, -0.058481f, -0.009739f, -0.000056f}, - {+0.258235f, +0.863786f, -0.100813f, -0.011244f, +0.000068f}, - {+0.019551f, +0.781090f, +0.010851f, +0.006905f, +0.000066f}, - {+0.078534f, -0.201752f, -0.033568f, +0.000310f, -0.000037f}, - {+0.115177f, +0.728991f, +0.003059f, -0.010749f, +0.000036f}, - {-0.023252f, +0.186630f, +0.029405f, +0.001392f, +0.000002f}, - {+0.205096f, +0.734110f, +0.017299f, +0.005567f, -0.000046f}, - {-0.033291f, -0.182857f, +0.100533f, +0.002041f, +0.000007f}, - {+0.269261f, +0.640318f, +0.057505f, +0.004206f, -0.000042f}, - {-0.192377f, -0.113959f, -0.034054f, +0.010827f, +0.000006f}, - {+0.140055f, +1.004074f, +0.009885f, +0.000675f, -0.000009f}, - {+0.070707f, +0.204232f, -0.045556f, -0.001847f, +0.000001f}, - {+0.081001f, +0.887772f, +0.009312f, -0.000279f, -0.000000f}, - {+0.036780f, -0.464778f, -0.011711f, +0.000291f, +0.000019f} - }, - { - {-0.586697f, -0.437179f, +0.015096f, +0.006145f, +0.000356f}, - {+0.184187f, -0.212362f, +0.027765f, +0.012735f, +0.000474f}, - {-0.472411f, -0.144599f, -0.068968f, +0.002017f, -0.000362f}, - {-0.365063f, +0.172041f, -0.065739f, -0.002884f, -0.000609f}, - {-0.061936f, -0.266099f, +0.068035f, +0.000129f, +0.000177f}, - {-0.405004f, -0.069937f, -0.057400f, +0.002695f, +0.000130f}, - {+0.021286f, +0.180378f, -0.022901f, -0.001701f, +0.000075f}, - {-0.478583f, -0.301757f, -0.092010f, +0.001413f, +0.000167f}, - {+0.025202f, -0.335796f, -0.076528f, -0.001726f, -0.000004f}, - {-0.470949f, -0.570889f, -0.098235f, +0.004844f, -0.000242f}, - {+0.154976f, +0.395476f, -0.044824f, -0.003029f, -0.000279f}, - {-0.483040f, +0.055164f, -0.071462f, +0.001762f, +0.000209f}, - {-0.074843f, +0.078065f, +0.015553f, -0.000685f, +0.000001f}, - {-0.431734f, +0.088265f, -0.072329f, +0.001071f, +0.000047f}, - {+0.038335f, -0.431382f, +0.011494f, -0.002348f, -0.000133f} - }, - { - {-0.214101f, -0.825087f, -0.066185f, +0.000965f, -0.000103f}, - {-0.146929f, +0.356773f, -0.016581f, +0.002055f, -0.000075f}, - {-0.135459f, -0.651791f, -0.013581f, -0.000703f, +0.000025f}, - {+0.038847f, -0.495569f, +0.025924f, -0.006854f, +0.000105f}, - {+0.038384f, -0.268419f, -0.031251f, +0.002959f, -0.000008f}, - {-0.079337f, -0.571205f, -0.006246f, +0.002621f, -0.000089f}, - {-0.018154f, +0.169210f, +0.024504f, +0.001571f, -0.000026f}, - {-0.136812f, -0.797142f, -0.065244f, -0.001101f, +0.000008f}, - {-0.015818f, -0.422015f, +0.021653f, -0.000024f, -0.000008f}, - {-0.217890f, -0.933082f, -0.059297f, -0.003993f, +0.000128f}, - {+0.012901f, +0.539621f, +0.002585f, -0.004212f, +0.000080f}, - {+0.031699f, -0.731627f, -0.000062f, +0.000473f, -0.000054f}, - {+0.068586f, -0.064970f, -0.028107f, +0.000485f, -0.000001f}, - {+0.082460f, -0.712005f, +0.004234f, -0.000440f, -0.000015f}, - {-0.092772f, -0.245311f, +0.002243f, +0.000286f, +0.000016f} - }, - { - {+0.611398f, +0.574488f, +0.132577f, +0.000536f, -0.000291f}, - {+0.018314f, +0.680755f, +0.032297f, -0.008490f, -0.000404f}, - {+0.551444f, +0.367923f, +0.049629f, -0.001834f, +0.000325f}, - {+0.277871f, -0.172746f, +0.040523f, +0.001132f, +0.000515f}, - {-0.012260f, -0.250758f, +0.023488f, -0.002058f, -0.000162f}, - {+0.376639f, +0.138309f, +0.069777f, +0.000055f, -0.000084f}, - {+0.015823f, +0.153476f, -0.022578f, -0.000055f, -0.000058f}, - {+0.477350f, +0.181888f, +0.060356f, -0.000003f, -0.000162f}, - {+0.007347f, -0.417292f, +0.006805f, +0.001245f, +0.000007f}, - {+0.573429f, +0.375283f, +0.120296f, -0.004646f, +0.000154f}, - {-0.167122f, +0.285438f, +0.017341f, +0.000307f, +0.000221f}, - {+0.377311f, -0.195661f, +0.058278f, +0.000257f, -0.000171f}, - {-0.054353f, -0.159170f, +0.029544f, +0.000892f, -0.000001f}, - {+0.331013f, -0.331514f, +0.046435f, +0.000351f, -0.000038f}, - {+0.106092f, +0.006237f, -0.017713f, -0.000001f, +0.000116f} - }, - { - {+0.170984f, +1.384757f, -0.039040f, -0.003010f, +0.000176f}, - {+0.118777f, +0.611157f, -0.050030f, +0.004000f, +0.000163f}, - {-0.052818f, +1.228959f, +0.011251f, +0.003260f, -0.000096f}, - {-0.019562f, +0.268846f, +0.002354f, +0.004033f, -0.000219f}, - {-0.012139f, -0.228439f, +0.001096f, -0.000637f, +0.000043f}, - {+0.090017f, +0.579117f, +0.021719f, -0.000837f, +0.000114f}, - {-0.014320f, +0.138566f, +0.015571f, -0.000211f, +0.000040f}, - {+0.130034f, +0.743858f, -0.008222f, -0.000663f, +0.000027f}, - {+0.000904f, -0.338203f, -0.037342f, -0.000311f, +0.000008f}, - {+0.115928f, +1.162104f, -0.019791f, +0.003082f, -0.000161f}, - {+0.179739f, -0.173374f, -0.001534f, +0.002899f, -0.000131f}, - {-0.060744f, +0.482829f, -0.012712f, -0.001111f, +0.000094f}, - {+0.037526f, -0.203676f, -0.025646f, -0.000674f, +0.000002f}, - {-0.143971f, +0.383732f, -0.006910f, -0.000214f, +0.000024f}, - {-0.075410f, +0.218852f, +0.013990f, +0.000730f, -0.000042f} - }, - { - {-0.807490f, -0.026691f, -0.098734f, +0.000219f, +0.000207f}, - {-0.184514f, +0.232965f, -0.017518f, +0.000152f, +0.000312f}, - {-0.515784f, +0.462974f, -0.088801f, -0.000046f, -0.000270f}, - {-0.254902f, -0.110250f, -0.053712f, +0.000918f, -0.000391f}, - {+0.029973f, -0.203154f, -0.022236f, +0.000420f, +0.000136f}, - {-0.418541f, -0.227202f, -0.074914f, -0.001208f, +0.000031f}, - {+0.012955f, +0.126129f, -0.020807f, -0.000502f, +0.000036f}, - {-0.572387f, -0.290118f, -0.071671f, -0.000020f, +0.000146f}, - {-0.008802f, -0.217584f, +0.058477f, -0.000886f, -0.000010f}, - {-0.695626f, -0.022757f, -0.084193f, +0.002681f, -0.000062f}, - {-0.042507f, -0.481981f, -0.015185f, +0.000016f, -0.000151f}, - {-0.317770f, +0.077733f, -0.061976f, -0.000151f, +0.000123f}, - {-0.019680f, -0.222079f, +0.017585f, -0.000416f, -0.000000f}, - {-0.217143f, +0.238281f, -0.049335f, -0.000227f, +0.000026f}, - {+0.016830f, +0.312605f, -0.010472f, -0.000204f, -0.000092f} - }, - { - {+0.154237f, -1.440153f, -0.007422f, +0.000459f, -0.000205f}, - {+0.146529f, -0.243723f, +0.016669f, -0.001428f, -0.000203f}, - {+0.206031f, -0.717998f, +0.067591f, -0.001193f, +0.000139f}, - {-0.018748f, -0.492688f, +0.002827f, -0.002315f, +0.000269f}, - {-0.037526f, -0.156993f, +0.015703f, +0.000451f, -0.000066f}, - {-0.076621f, -0.780750f, -0.001540f, +0.000308f, -0.000111f}, - {-0.011713f, +0.116894f, +0.013063f, +0.000119f, -0.000042f}, - {-0.039488f, -1.081391f, -0.009791f, +0.000804f, -0.000055f}, - {+0.014151f, -0.108817f, -0.045635f, +0.000506f, -0.000006f}, - {+0.124238f, -1.252180f, +0.016770f, -0.000493f, +0.000142f}, - {-0.126416f, -0.368535f, -0.013805f, -0.001337f, +0.000144f}, - {+0.031025f, -0.478719f, +0.013134f, +0.000211f, -0.000110f}, - {+0.000166f, -0.219151f, -0.008353f, +0.000282f, -0.000001f}, - {+0.092682f, -0.271438f, +0.022299f, +0.000036f, -0.000027f}, - {+0.042047f, +0.246034f, +0.010276f, -0.000124f, +0.000055f} - }, - { - {+0.717306f, -0.527984f, +0.109622f, +0.001464f, -0.000127f}, - {-0.032423f, -0.508411f, +0.010417f, +0.000540f, -0.000224f}, - {+0.415779f, -0.456457f, +0.054009f, -0.001183f, +0.000210f}, - {+0.323289f, +0.032788f, +0.054080f, -0.001475f, +0.000272f}, - {+0.034110f, -0.082630f, -0.002051f, +0.000151f, -0.000108f}, - {+0.525226f, +0.122988f, +0.067403f, +0.001113f, +0.000012f}, - {+0.010730f, +0.122479f, -0.003677f, +0.000287f, -0.000017f}, - {+0.675564f, +0.033502f, +0.097895f, +0.000381f, -0.000124f}, - {-0.015643f, -0.027790f, +0.041837f, +0.000236f, +0.000012f}, - {+0.654469f, -0.420272f, +0.101476f, -0.002012f, -0.000006f}, - {+0.181211f, +0.085734f, +0.016481f, -0.000081f, +0.000088f}, - {+0.363263f, +0.017311f, +0.051906f, +0.000569f, -0.000078f}, - {+0.018856f, -0.189020f, -0.004446f, +0.000550f, +0.000001f}, - {+0.225816f, -0.087066f, +0.029119f, +0.000432f, -0.000016f}, - {-0.074928f, +0.058140f, -0.007738f, -0.000250f, +0.000068f} - }, - { - {-0.362061f, +1.135109f, -0.040501f, -0.000664f, +0.000201f}, - {-0.086782f, -0.430290f, -0.006001f, +0.001071f, +0.000205f}, - {-0.302951f, +0.619319f, -0.033166f, +0.001127f, -0.000157f}, - {-0.037250f, +0.616935f, -0.022944f, +0.001028f, -0.000268f}, - {-0.021980f, -0.003541f, -0.004845f, -0.000274f, +0.000076f}, - {-0.056679f, +1.012051f, -0.011665f, -0.000109f, +0.000089f}, - {-0.009472f, +0.129217f, +0.010016f, +0.000286f, +0.000036f}, - {-0.163814f, +1.340003f, -0.033016f, -0.000957f, +0.000075f}, - {+0.014795f, +0.031579f, -0.030556f, -0.000016f, +0.000003f}, - {-0.307638f, +1.069995f, -0.048840f, -0.000531f, -0.000092f}, - {-0.074949f, +0.473861f, -0.003401f, +0.000369f, -0.000131f}, - {-0.079753f, +0.685928f, -0.009577f, -0.000077f, +0.000106f}, - {-0.033464f, -0.135518f, +0.013606f, -0.000372f, +0.000000f}, - {-0.099452f, +0.406945f, -0.015669f, -0.000283f, +0.000026f}, - {+0.068420f, -0.159620f, +0.007095f, +0.000110f, -0.000058f} - }, - { - {-0.557376f, +0.814078f, -0.086410f, -0.000931f, +0.000066f}, - {+0.138906f, -0.104979f, -0.002563f, -0.000358f, +0.000157f}, - {-0.280492f, +0.639239f, -0.047732f, +0.001095f, -0.000156f}, - {-0.371195f, +0.156517f, -0.031145f, +0.001354f, -0.000181f}, - {+0.005260f, +0.043405f, +0.000609f, -0.000311f, +0.000081f}, - {-0.561542f, +0.249151f, -0.070323f, -0.000414f, -0.000036f}, - {+0.007629f, +0.121467f, -0.014824f, -0.000379f, +0.000005f}, - {-0.678654f, +0.566827f, -0.087903f, -0.000251f, +0.000099f}, - {-0.013733f, +0.062362f, +0.017595f, -0.000262f, -0.000012f}, - {-0.568064f, +0.667487f, -0.086425f, +0.001295f, +0.000036f}, - {-0.098300f, +0.453623f, +0.000019f, -0.000161f, -0.000046f}, - {-0.402190f, +0.172791f, -0.066290f, -0.000281f, +0.000045f}, - {+0.042361f, -0.071284f, -0.017036f, -0.000408f, -0.000002f}, - {-0.257104f, +0.165575f, -0.034835f, -0.000136f, +0.000009f}, - {-0.027311f, -0.301640f, +0.000667f, +0.000173f, -0.000049f} - }, - { - {+0.476921f, -0.802345f, +0.077189f, +0.000344f, -0.000179f}, - {-0.098992f, +0.234471f, +0.000967f, -0.001112f, -0.000187f}, - {+0.323707f, -0.292306f, +0.044893f, -0.000717f, +0.000157f}, - {+0.179294f, -0.643565f, +0.012366f, -0.000379f, +0.000239f}, - {+0.010870f, +0.036847f, +0.001479f, +0.000007f, -0.000078f}, - {+0.249036f, -0.981186f, +0.030586f, -0.000163f, -0.000062f}, - {-0.006232f, +0.105431f, +0.010918f, -0.000223f, -0.000026f}, - {+0.416847f, -1.110949f, +0.058552f, +0.000570f, -0.000085f}, - {+0.012514f, +0.068559f, -0.014306f, -0.000207f, -0.000000f}, - {+0.467287f, -0.932191f, +0.070050f, +0.000351f, +0.000038f}, - {+0.188152f, +0.044185f, +0.004896f, +0.000176f, +0.000105f}, - {+0.179916f, -0.746327f, +0.038444f, -0.000179f, -0.000093f}, - {-0.046644f, -0.000064f, +0.016904f, +0.000318f, +0.000001f}, - {+0.178760f, -0.505255f, +0.027471f, +0.000200f, -0.000023f}, - {-0.028475f, -0.305656f, +0.002048f, +0.000046f, +0.000055f} - }, - { - {+0.384211f, -0.978413f, +0.043445f, +0.000530f, -0.000029f}, - {+0.005481f, +0.368975f, -0.002721f, +0.000254f, -0.000115f}, - {+0.154591f, -0.550579f, +0.029567f, -0.001141f, +0.000115f}, - {+0.266428f, -0.493827f, +0.040804f, -0.001001f, +0.000125f}, - {-0.021434f, -0.017235f, -0.003173f, +0.000460f, -0.000060f}, - {+0.451732f, -0.667864f, +0.062771f, +0.000016f, +0.000041f}, - {+0.006496f, +0.103409f, -0.001694f, +0.000280f, +0.000000f}, - {+0.506838f, -0.990193f, +0.061492f, +0.000371f, -0.000076f}, - {-0.010071f, +0.065620f, +0.009733f, +0.000546f, +0.000011f}, - {+0.435632f, -0.982401f, +0.064723f, -0.000420f, -0.000031f}, - {-0.121392f, -0.400529f, -0.003585f, +0.000276f, +0.000026f}, - {+0.407029f, -0.424143f, +0.048193f, +0.000134f, -0.000026f}, - {+0.046420f, +0.075076f, -0.022164f, +0.000390f, +0.000001f}, - {+0.224681f, -0.441124f, +0.027691f, +0.000016f, -0.000005f}, - {+0.073686f, -0.182458f, -0.012175f, -0.000094f, +0.000035f} - }, - { - {-0.537444f, +0.391511f, -0.053573f, -0.000309f, +0.000155f}, - {+0.072256f, +0.247522f, +0.011047f, +0.000898f, +0.000166f}, - {-0.268495f, +0.099855f, -0.038956f, +0.000890f, -0.000148f}, - {-0.195179f, +0.204502f, -0.019530f, +0.000276f, -0.000203f}, - {+0.023536f, -0.095547f, +0.007158f, +0.000060f, +0.000074f}, - {-0.345472f, +0.542489f, -0.039670f, +0.000199f, +0.000041f}, - {-0.007874f, +0.129654f, -0.005374f, +0.000048f, +0.000017f}, - {-0.560568f, +0.609885f, -0.057263f, -0.000322f, +0.000088f}, - {+0.006721f, +0.070928f, -0.007401f, -0.000049f, -0.000002f}, - {-0.610684f, +0.636416f, -0.091664f, +0.000136f, +0.000001f}, - {-0.039227f, -0.513525f, -0.001068f, -0.000231f, -0.000082f}, - {-0.333249f, +0.693829f, -0.042608f, +0.000238f, +0.000079f}, - {-0.040836f, +0.145282f, +0.019055f, -0.000387f, -0.000002f}, - {-0.263338f, +0.298008f, -0.031541f, -0.000114f, +0.000020f}, - {-0.089206f, +0.013435f, +0.012733f, -0.000199f, -0.000050f} - }, - { - {-0.160066f, +0.918225f, -0.045394f, -0.000293f, +0.000011f}, - {-0.085209f, +0.001303f, -0.012125f, -0.000292f, +0.000093f}, - {-0.102157f, +0.356092f, -0.019747f, +0.000505f, -0.000086f}, - {-0.174693f, +0.217382f, -0.037036f, +0.000630f, -0.000096f}, - {-0.017226f, -0.166626f, -0.005117f, -0.000479f, +0.000045f}, - {-0.288147f, +0.609002f, -0.054190f, -0.000017f, -0.000036f}, - {+0.008665f, +0.171697f, +0.007680f, -0.000098f, -0.000000f}, - {-0.229723f, +1.072643f, -0.054307f, -0.000488f, +0.000056f}, - {-0.003968f, +0.096005f, +0.018153f, -0.000493f, -0.000010f}, - {-0.212710f, +1.267628f, -0.026077f, -0.000164f, +0.000007f}, - {+0.157771f, -0.227591f, +0.005941f, -0.000300f, -0.000020f}, - {-0.296558f, +0.745264f, -0.041636f, -0.000185f, +0.000018f}, - {+0.030782f, +0.196705f, -0.014807f, -0.000278f, -0.000001f}, - {-0.103485f, +0.531731f, -0.020590f, -0.000071f, +0.000003f}, - {+0.069593f, +0.208136f, -0.005292f, +0.000148f, -0.000027f} - }, - { - {+0.426995f, -0.026160f, +0.075584f, +0.000384f, -0.000138f}, - {+0.033117f, -0.182372f, +0.007361f, -0.000407f, -0.000152f}, - {+0.205232f, -0.119429f, +0.035586f, -0.000437f, +0.000136f}, - {+0.090872f, -0.196225f, +0.015881f, -0.000291f, +0.000176f}, - {+0.004684f, -0.206673f, +0.001813f, -0.000058f, -0.000068f}, - {+0.266047f, -0.253711f, +0.042204f, +0.000078f, -0.000031f}, - {-0.008516f, +0.193605f, +0.007387f, +0.000064f, -0.000011f}, - {+0.445166f, +0.009848f, +0.068320f, +0.000242f, -0.000086f}, - {+0.002194f, +0.127519f, -0.015841f, +0.000173f, +0.000003f}, - {+0.653853f, -0.044366f, +0.083241f, -0.000449f, -0.000016f}, - {-0.143733f, +0.204102f, -0.007498f, +0.000099f, +0.000068f}, - {+0.420542f, -0.349056f, +0.054233f, -0.000061f, -0.000070f}, - {-0.018863f, +0.213641f, +0.019293f, +0.000408f, +0.000002f}, - {+0.232709f, +0.005344f, +0.036305f, +0.000167f, -0.000019f}, - {-0.024286f, +0.323130f, +0.003874f, +0.000198f, +0.000045f} - }, - { - {+0.089909f, -0.571072f, +0.008880f, +0.000372f, -0.000000f}, - {+0.042197f, -0.181663f, +0.000704f, +0.000165f, -0.000080f}, - {+0.122444f, -0.252602f, +0.019305f, -0.000516f, +0.000067f}, - {+0.260724f, +0.080462f, +0.049056f, -0.000542f, +0.000082f}, - {+0.010922f, -0.213934f, -0.007537f, +0.000454f, -0.000035f}, - {+0.297505f, -0.194867f, +0.053446f, +0.000084f, +0.000029f}, - {+0.008776f, +0.169245f, -0.028486f, -0.000010f, -0.000002f}, - {+0.159504f, -0.423362f, +0.035243f, +0.000592f, -0.000041f}, - {-0.000225f, +0.131429f, -0.009064f, +0.000495f, +0.000008f}, - {-0.055924f, -1.120425f, +0.002613f, +0.000280f, +0.000017f}, - {+0.021636f, +0.436573f, -0.003498f, +0.000232f, +0.000020f}, - {+0.129375f, -0.785134f, +0.025534f, +0.000269f, -0.000013f}, - {+0.006982f, +0.197623f, -0.019428f, +0.000152f, -0.000000f}, - {+0.038219f, -0.300110f, +0.006087f, +0.000100f, -0.000002f}, - {-0.026817f, +0.307487f, -0.006434f, -0.000185f, +0.000021f} - }, - { - {-0.339312f, +0.074962f, -0.051465f, -0.000668f, +0.000130f}, - {-0.085777f, +0.000630f, -0.007870f, +0.000280f, +0.000146f}, - {-0.200338f, +0.240178f, -0.031754f, +0.000345f, -0.000127f}, - {-0.072064f, +0.618750f, -0.029586f, +0.000304f, -0.000160f}, - {-0.026013f, -0.198501f, +0.018543f, +0.000031f, +0.000062f}, - {-0.221101f, +0.623925f, -0.048561f, -0.000345f, +0.000030f}, - {-0.010082f, +0.121187f, +0.026049f, -0.000154f, +0.000009f}, - {-0.325381f, +0.349589f, -0.066982f, -0.000444f, +0.000083f}, - {-0.002595f, +0.108691f, +0.015618f, -0.000378f, -0.000004f}, - {-0.514573f, -0.402861f, -0.079237f, +0.000423f, +0.000014f}, - {+0.099695f, +0.316098f, +0.009372f, -0.000014f, -0.000062f}, - {-0.384492f, +0.011534f, -0.056805f, -0.000185f, +0.000066f}, - {+0.004094f, +0.165937f, +0.008745f, -0.000341f, -0.000002f}, - {-0.164069f, +0.005476f, -0.024648f, -0.000226f, +0.000020f}, - {+0.061892f, +0.175063f, +0.001504f, -0.000187f, -0.000042f} - }, - { - {-0.098656f, +0.437384f, -0.016382f, -0.000247f, -0.000011f}, - {+0.065059f, +0.235026f, +0.008783f, -0.000266f, +0.000068f}, - {-0.150935f, +0.318418f, -0.020125f, +0.000567f, -0.000053f}, - {-0.479166f, +0.005919f, -0.062327f, +0.000735f, -0.000072f}, - {+0.037203f, -0.163560f, -0.021631f, -0.000436f, +0.000028f}, - {-0.472890f, +0.243160f, -0.064367f, +0.000012f, -0.000028f}, - {+0.011144f, +0.082078f, -0.020960f, +0.000115f, +0.000004f}, - {-0.303139f, +0.407030f, -0.033834f, -0.000330f, +0.000029f}, - {+0.005275f, +0.088802f, -0.005814f, -0.000347f, -0.000006f}, - {+0.180901f, +0.678258f, +0.023830f, -0.000002f, -0.000032f}, - {-0.124040f, -0.011330f, -0.004638f, -0.000115f, -0.000018f}, - {-0.025939f, +0.562001f, -0.008804f, -0.000193f, +0.000008f}, - {-0.013327f, +0.130330f, +0.001759f, -0.000128f, +0.000001f}, - {-0.054906f, +0.166617f, -0.011465f, -0.000062f, -0.000000f}, - {-0.067066f, -0.006134f, +0.002098f, +0.000244f, -0.000017f} - }, - { - {+0.320866f, -0.218530f, +0.058362f, +0.000559f, -0.000126f}, - {+0.006166f, +0.343773f, -0.005499f, -0.000294f, -0.000144f}, - {+0.255028f, -0.301056f, +0.038086f, -0.000395f, +0.000120f}, - {+0.361545f, -1.309013f, +0.070307f, -0.000422f, +0.000152f}, - {-0.042070f, -0.106963f, +0.016516f, -0.000008f, -0.000058f}, - {+0.455727f, -1.211865f, +0.087077f, +0.000179f, -0.000032f}, - {-0.010654f, +0.051598f, +0.023066f, +0.000137f, -0.000008f}, - {+0.477408f, -0.797872f, +0.082786f, +0.000369f, -0.000079f}, - {-0.006671f, +0.068373f, +0.015541f, +0.000442f, +0.000003f}, - {+0.362855f, +0.403212f, +0.056493f, -0.000231f, -0.000005f}, - {+0.046569f, -0.253576f, -0.003537f, +0.000061f, +0.000060f}, - {+0.290094f, +0.073135f, +0.047603f, +0.000171f, -0.000065f}, - {+0.019451f, +0.092196f, -0.005980f, +0.000308f, +0.000002f}, - {+0.131628f, -0.125669f, +0.025251f, +0.000176f, -0.000020f}, - {+0.042598f, -0.156557f, -0.000577f, +0.000163f, +0.000040f} - }, - { - {+0.115417f, -0.555843f, +0.004505f, +0.000201f, +0.000026f}, - {-0.075253f, +0.241790f, +0.004245f, +0.000388f, -0.000054f}, - {+0.118398f, -0.515206f, +0.013944f, -0.000514f, +0.000042f}, - {+0.462279f, -1.209973f, +0.032503f, -0.000851f, +0.000062f}, - {+0.039535f, -0.038091f, -0.014039f, +0.000458f, -0.000023f}, - {+0.492506f, -1.210168f, +0.036127f, -0.000015f, +0.000032f}, - {+0.009084f, +0.026049f, -0.016775f, -0.000189f, -0.000005f}, - {+0.335910f, -1.043865f, +0.025309f, +0.000109f, -0.000019f}, - {+0.007053f, +0.028506f, -0.029001f, +0.000197f, +0.000006f}, - {-0.209396f, -0.481664f, -0.029573f, -0.000397f, +0.000036f}, - {+0.051079f, -0.232226f, +0.008818f, -0.000021f, +0.000013f}, - {+0.049189f, -0.291808f, +0.012095f, +0.000124f, -0.000000f}, - {-0.022163f, +0.049801f, +0.004489f, +0.000120f, -0.000002f}, - {+0.129999f, -0.125792f, +0.018671f, +0.000033f, +0.000004f}, - {-0.001464f, -0.219720f, -0.003238f, -0.000281f, +0.000013f} - }, - { - {-0.374092f, +0.167831f, -0.047437f, -0.000248f, +0.000121f}, - {+0.089265f, +0.008101f, +0.003220f, +0.000420f, +0.000142f}, - {-0.277419f, +0.075693f, -0.034361f, +0.000382f, -0.000114f}, - {-0.753816f, +0.593618f, -0.075656f, +0.000583f, -0.000146f}, - {-0.030038f, +0.022987f, +0.012744f, -0.000055f, +0.000055f}, - {-0.872319f, +0.834025f, -0.101372f, +0.000238f, +0.000033f}, - {-0.007625f, +0.012494f, +0.008216f, -0.000012f, +0.000009f}, - {-0.818122f, +0.708126f, -0.108543f, -0.000003f, +0.000077f}, - {-0.007349f, -0.013392f, +0.018697f, -0.000404f, -0.000002f}, - {-0.256898f, -0.416364f, -0.039682f, +0.000207f, -0.000001f}, - {-0.080964f, -0.024571f, -0.007134f, -0.000112f, -0.000058f}, - {-0.278977f, +0.233656f, -0.056880f, +0.000052f, +0.000063f}, - {+0.021854f, +0.003552f, -0.004353f, -0.000284f, -0.000001f}, - {-0.208673f, +0.408473f, -0.040386f, -0.000034f, +0.000020f}, - {-0.037961f, -0.179808f, +0.005183f, -0.000145f, -0.000038f} - }, - { - {-0.042237f, +0.656912f, -0.009701f, -0.000238f, -0.000044f}, - {-0.034338f, -0.173588f, -0.006688f, -0.000500f, +0.000038f}, - {-0.090138f, +0.334092f, -0.026473f, +0.000394f, -0.000031f}, - {-0.008439f, +1.693558f, -0.014027f, +0.000600f, -0.000050f}, - {+0.015852f, +0.059753f, -0.008148f, -0.000431f, +0.000019f}, - {-0.054347f, +2.067775f, -0.007313f, -0.000217f, -0.000039f}, - {+0.006434f, +0.012796f, -0.004682f, +0.000161f, +0.000005f}, - {+0.015520f, +1.997278f, +0.014755f, -0.000307f, +0.000011f}, - {+0.007506f, -0.034599f, -0.009095f, -0.000072f, -0.000006f}, - {+0.214043f, +0.306979f, +0.029626f, +0.000432f, -0.000035f}, - {+0.028007f, +0.138657f, +0.001260f, +0.000016f, -0.000007f}, - {-0.117787f, +0.510563f, -0.001680f, -0.000212f, -0.000008f}, - {-0.018621f, -0.040993f, +0.005040f, -0.000117f, +0.000002f}, - {-0.157100f, +0.507113f, -0.009834f, -0.000125f, -0.000007f}, - {+0.059932f, -0.061203f, -0.006185f, +0.000277f, -0.000010f} - }, - { - {+0.350728f, +0.053490f, +0.051079f, +0.000061f, -0.000112f}, - {-0.055343f, -0.147303f, -0.000195f, -0.000468f, -0.000137f}, - {+0.264173f, -0.242538f, +0.053572f, -0.000237f, +0.000109f}, - {+0.698387f, +0.600659f, +0.086640f, -0.000476f, +0.000138f}, - {-0.000679f, +0.065959f, +0.002851f, +0.000063f, -0.000053f}, - {+0.914982f, +0.594809f, +0.107925f, -0.000398f, -0.000028f}, - {-0.005046f, +0.021011f, +0.002443f, -0.000074f, -0.000009f}, - {+0.908394f, +0.659090f, +0.104076f, -0.000152f, -0.000074f}, - {-0.006616f, -0.041999f, +0.008530f, +0.000270f, +0.000002f}, - {+0.160270f, +0.395898f, +0.025961f, -0.000172f, +0.000001f}, - {+0.044182f, +0.106382f, +0.006281f, +0.000190f, +0.000054f}, - {+0.442662f, -0.331872f, +0.060257f, -0.000149f, -0.000059f}, - {+0.012773f, -0.075787f, -0.003315f, +0.000265f, +0.000000f}, - {+0.379945f, -0.304856f, +0.049455f, +0.000017f, -0.000018f}, - {-0.056862f, +0.082167f, +0.007314f, +0.000153f, +0.000036f} - }, - { - {+0.012153f, -0.450064f, +0.007566f, +0.000184f, +0.000059f}, - {+0.121111f, +0.105739f, +0.007673f, +0.000471f, -0.000024f}, - {+0.184762f, -0.381675f, +0.018118f, -0.000313f, +0.000022f}, - {-0.329773f, -0.952298f, -0.024562f, -0.000268f, +0.000039f}, - {-0.011948f, +0.043954f, -0.000567f, +0.000421f, -0.000015f}, - {-0.420755f, -1.412733f, -0.032280f, +0.000429f, +0.000045f}, - {+0.003684f, +0.030620f, +0.000252f, -0.000116f, -0.000005f}, - {-0.511638f, -1.483614f, -0.052171f, +0.000647f, -0.000004f}, - {+0.004497f, -0.053106f, -0.011474f, +0.000072f, +0.000006f}, - {-0.173759f, -0.112610f, -0.023303f, -0.000248f, +0.000035f}, - {-0.060146f, -0.060453f, -0.010041f, +0.000057f, +0.000002f}, - {-0.012206f, -1.032650f, -0.010110f, +0.000297f, +0.000015f}, - {-0.005701f, -0.095076f, +0.000618f, +0.000109f, -0.000002f}, - {-0.000197f, -0.889296f, -0.006036f, +0.000199f, +0.000010f}, - {+0.031812f, +0.189096f, -0.005956f, -0.000264f, +0.000006f} - }, - { - {-0.308921f, +0.056304f, -0.054693f, -0.000123f, +0.000099f}, - {-0.115841f, +0.454362f, -0.009607f, +0.000493f, +0.000130f}, - {-0.468248f, +0.632981f, -0.076258f, -0.000010f, -0.000104f}, - {-0.400691f, -0.806429f, -0.070547f, +0.000137f, -0.000130f}, - {+0.019902f, +0.002281f, -0.001334f, -0.000072f, +0.000051f}, - {-0.561484f, -1.148223f, -0.095621f, +0.000111f, +0.000021f}, - {-0.002929f, +0.038041f, +0.000093f, +0.000104f, +0.000008f}, - {-0.562963f, -1.379756f, -0.082927f, -0.000084f, +0.000071f}, - {-0.002238f, -0.072975f, +0.011177f, -0.000205f, -0.000002f}, - {-0.102439f, -0.221815f, -0.020196f, +0.000101f, +0.000002f}, - {+0.004354f, -0.167075f, +0.005365f, -0.000234f, -0.000047f}, - {-0.540858f, -0.235487f, -0.066321f, -0.000007f, +0.000053f}, - {-0.001012f, -0.099078f, +0.000515f, -0.000243f, +0.000000f}, - {-0.439169f, -0.226555f, -0.052369f, -0.000162f, +0.000015f}, - {+0.003001f, +0.218213f, +0.002283f, -0.000153f, -0.000034f} - }, - { - {-0.081188f, +0.400832f, -0.010403f, +0.000124f, -0.000070f}, - {+0.032349f, +0.694662f, +0.012758f, -0.000446f, +0.000014f}, - {-0.102023f, +1.229099f, +0.009207f, +0.000429f, -0.000013f}, - {+0.347929f, +0.367903f, +0.051025f, +0.000195f, -0.000031f}, - {-0.022184f, -0.047173f, +0.004443f, -0.000402f, +0.000012f}, - {+0.510442f, +0.525808f, +0.072327f, -0.000281f, -0.000047f}, - {+0.002610f, +0.041165f, -0.003133f, +0.000103f, +0.000004f}, - {+0.669928f, +0.515263f, +0.083893f, -0.000680f, -0.000003f}, - {+0.000849f, -0.085438f, -0.000581f, -0.000088f, -0.000006f}, - {+0.101744f, +0.091783f, +0.017192f, +0.000137f, -0.000040f}, - {+0.067239f, -0.080999f, +0.004236f, -0.000134f, +0.000001f}, - {+0.274659f, +1.003091f, +0.034427f, -0.000152f, -0.000020f}, - {+0.006834f, -0.091129f, -0.000945f, -0.000105f, +0.000002f}, - {+0.228304f, +0.784175f, +0.026351f, -0.000099f, -0.000012f}, - {-0.032253f, +0.165928f, +0.001139f, +0.000244f, -0.000004f} - }, - { - {+0.396918f, -0.353503f, +0.073018f, +0.000145f, -0.000087f}, - {+0.089764f, +0.665763f, -0.020998f, -0.000429f, -0.000123f}, - {+0.745929f, -0.045441f, +0.089693f, +0.000119f, +0.000098f}, - {+0.234618f, +0.545507f, +0.039468f, +0.000111f, +0.000121f}, - {+0.018527f, -0.092896f, -0.004776f, +0.000076f, -0.000050f}, - {+0.294897f, +0.855450f, +0.052819f, +0.000226f, -0.000015f}, - {-0.002166f, +0.038716f, +0.004774f, -0.000126f, -0.000007f}, - {+0.194521f, +1.226314f, +0.042565f, +0.000368f, -0.000068f}, - {-0.000019f, -0.074618f, -0.009489f, +0.000190f, +0.000003f}, - {+0.118924f, +0.067017f, +0.021010f, -0.000093f, -0.000004f}, - {-0.081034f, +0.139024f, -0.009034f, +0.000234f, +0.000041f}, - {+0.432071f, +0.753555f, +0.060819f, +0.000167f, -0.000047f}, - {-0.011664f, -0.073753f, +0.003424f, +0.000235f, -0.000000f}, - {+0.318718f, +0.633800f, +0.046975f, +0.000280f, -0.000013f}, - {+0.045018f, +0.063998f, -0.003105f, +0.000140f, +0.000031f} - }, - { - {+0.127577f, -0.781157f, +0.003436f, -0.000401f, +0.000077f}, - {-0.185438f, +0.347292f, +0.027738f, +0.000431f, -0.000007f}, - {-0.338528f, -1.710682f, -0.053558f, -0.000664f, +0.000007f}, - {-0.290346f, -0.267538f, -0.045568f, -0.000347f, +0.000027f}, - {-0.010081f, -0.125578f, +0.001189f, +0.000386f, -0.000010f}, - {-0.437981f, -0.284534f, -0.069222f, -0.000040f, +0.000045f}, - {+0.001693f, +0.032268f, -0.003639f, -0.000084f, -0.000005f}, - {-0.562551f, +0.041789f, -0.085721f, +0.000415f, +0.000009f}, - {-0.001220f, -0.049868f, +0.009105f, +0.000117f, +0.000006f}, - {-0.056836f, -0.200124f, -0.011607f, -0.000196f, +0.000048f}, - {+0.014212f, +0.289512f, +0.004929f, +0.000179f, -0.000001f}, - {-0.459556f, -0.619782f, -0.062717f, -0.000131f, +0.000023f}, - {+0.014738f, -0.050287f, -0.006832f, +0.000096f, -0.000002f}, - {-0.352434f, -0.403959f, -0.049061f, -0.000107f, +0.000013f}, - {-0.038854f, -0.040374f, +0.004775f, -0.000223f, +0.000003f} - }, - { - {-0.672441f, +0.461693f, -0.106438f, +0.000019f, +0.000079f}, - {+0.203018f, -0.123894f, -0.025192f, +0.000369f, +0.000119f}, - {-0.670572f, -1.221467f, -0.075011f, +0.000089f, -0.000092f}, - {-0.198726f, -0.405927f, -0.034209f, -0.000080f, -0.000113f}, - {-0.000441f, -0.139722f, +0.002901f, -0.000086f, +0.000048f}, - {-0.200203f, -0.651588f, -0.036520f, -0.000303f, +0.000014f}, - {-0.001617f, +0.026895f, +0.002212f, +0.000129f, +0.000007f}, - {-0.025090f, -0.786071f, -0.013678f, -0.000386f, +0.000067f}, - {+0.002914f, -0.030011f, -0.007149f, -0.000236f, -0.000003f}, - {-0.196100f, +0.020016f, -0.033192f, +0.000220f, +0.000004f}, - {+0.081825f, +0.202685f, +0.002109f, -0.000238f, -0.000037f}, - {-0.214693f, -0.997978f, -0.031905f, -0.000100f, +0.000043f}, - {-0.015355f, -0.026466f, +0.007870f, -0.000233f, +0.000001f}, - {-0.141519f, -0.731019f, -0.021460f, -0.000220f, +0.000012f}, - {+0.019088f, -0.106339f, -0.005835f, -0.000125f, -0.000029f} - }, - { - {+0.105382f, +1.702756f, +0.047818f, +0.000264f, -0.000085f}, - {-0.134009f, -0.533107f, +0.016049f, -0.000482f, -0.000001f}, - {+0.795676f, +1.009808f, +0.094796f, +0.000697f, -0.000001f}, - {+0.291563f, +0.365793f, +0.053919f, +0.000403f, -0.000024f}, - {+0.010291f, -0.134575f, -0.004870f, -0.000384f, +0.000008f}, - {+0.400074f, +0.287614f, +0.070328f, +0.000125f, -0.000045f}, - {+0.001678f, +0.025875f, -0.002022f, +0.000076f, +0.000005f}, - {+0.436959f, -0.055640f, +0.076689f, -0.000219f, -0.000014f}, - {-0.004034f, -0.020135f, +0.007508f, -0.000103f, -0.000006f}, - {+0.093729f, +0.477248f, +0.023614f, +0.000233f, -0.000058f}, - {-0.123422f, -0.092919f, -0.005704f, -0.000171f, +0.000000f}, - {+0.504759f, +0.104762f, +0.066789f, +0.000245f, -0.000026f}, - {+0.014009f, -0.006141f, -0.006302f, -0.000091f, +0.000003f}, - {+0.360431f, +0.037695f, +0.048325f, +0.000203f, -0.000015f}, - {+0.004409f, -0.113595f, +0.004778f, +0.000217f, -0.000002f} - }, - { - {+0.897677f, +0.542816f, +0.095891f, -0.000106f, -0.000075f}, - {+0.014228f, -0.705402f, -0.006226f, -0.000344f, -0.000118f}, - {+0.201507f, +1.914333f, +0.026943f, -0.000420f, +0.000087f}, - {+0.205433f, +0.518777f, +0.021102f, -0.000023f, +0.000107f}, - {-0.017877f, -0.110691f, +0.004923f, +0.000104f, -0.000048f}, - {+0.192842f, +0.621869f, +0.023865f, +0.000199f, -0.000017f}, - {-0.001311f, +0.026946f, +0.001477f, -0.000136f, -0.000006f}, - {+0.005079f, +0.629152f, -0.003461f, +0.000195f, -0.000066f}, - {+0.003980f, -0.012991f, -0.007557f, +0.000253f, +0.000002f}, - {+0.280541f, +0.203930f, +0.033339f, -0.000296f, +0.000000f}, - {+0.066835f, -0.377419f, +0.006744f, +0.000264f, +0.000034f}, - {-0.001257f, +0.874207f, +0.008809f, -0.000099f, -0.000041f}, - {-0.011635f, +0.011453f, +0.005109f, +0.000244f, -0.000001f}, - {-0.005808f, +0.593723f, +0.006335f, +0.000064f, -0.000011f}, - {-0.021261f, -0.067946f, -0.002331f, +0.000104f, +0.000028f} - }, - { - {-0.705111f, -1.883202f, -0.090489f, +0.000148f, +0.000099f}, - {+0.099272f, -0.587041f, -0.004009f, +0.000546f, +0.000010f}, - {-0.905675f, +0.215060f, -0.111626f, -0.000378f, -0.000003f}, - {-0.414526f, -0.430242f, -0.061687f, -0.000257f, +0.000024f}, - {+0.022063f, -0.069401f, -0.004697f, +0.000403f, -0.000006f}, - {-0.499028f, -0.450610f, -0.082204f, +0.000154f, +0.000051f}, - {+0.000716f, +0.026002f, -0.000841f, -0.000065f, -0.000006f}, - {-0.458293f, -0.088827f, -0.075576f, +0.000356f, +0.000021f}, - {-0.003426f, -0.001895f, +0.007004f, +0.000107f, +0.000006f}, - {-0.252984f, -0.608102f, -0.036518f, -0.000188f, +0.000068f}, - {+0.052102f, -0.415182f, -0.006314f, +0.000148f, +0.000000f}, - {-0.431283f, +0.197715f, -0.066801f, -0.000088f, +0.000031f}, - {+0.008362f, +0.027128f, -0.004367f, +0.000092f, -0.000003f}, - {-0.295561f, +0.135592f, -0.047920f, -0.000105f, +0.000017f}, - {+0.025006f, +0.002651f, +0.001056f, -0.000216f, +0.000002f} - }, - { - {-0.593176f, -2.052339f, -0.070910f, -0.000100f, +0.000069f}, - {-0.157990f, -0.259660f, +0.015873f, +0.000403f, +0.000116f}, - {+0.360307f, -1.730109f, +0.043471f, +0.000479f, -0.000082f}, - {-0.076242f, -0.966223f, +0.000113f, -0.000062f, -0.000102f}, - {-0.021706f, -0.018877f, +0.004343f, -0.000127f, +0.000049f}, - {-0.080677f, -1.130360f, +0.008510f, -0.000220f, +0.000021f}, - {-0.000507f, +0.022696f, +0.001489f, +0.000143f, +0.000006f}, - {+0.099684f, -0.985662f, +0.034584f, -0.000145f, +0.000067f}, - {+0.003213f, +0.012234f, -0.007801f, -0.000257f, -0.000001f}, - {-0.237563f, -0.630642f, -0.030427f, +0.000172f, -0.000006f}, - {-0.145731f, -0.149448f, +0.002813f, -0.000324f, -0.000031f}, - {+0.125430f, -0.673094f, +0.018386f, +0.000174f, +0.000039f}, - {-0.004114f, +0.037800f, +0.002121f, -0.000258f, +0.000002f}, - {+0.073050f, -0.443161f, +0.011565f, -0.000018f, +0.000010f}, - {-0.015922f, +0.063018f, -0.001463f, -0.000086f, -0.000027f} - }, - { - {+1.124912f, +0.573960f, +0.142323f, -0.000259f, -0.000120f}, - {+0.144225f, +0.109446f, -0.023450f, -0.000603f, -0.000021f}, - {+0.594373f, -1.383061f, +0.069196f, +0.000008f, +0.000005f}, - {+0.499674f, -0.102263f, +0.061030f, +0.000126f, -0.000027f}, - {+0.016961f, +0.026260f, -0.002769f, -0.000445f, +0.000004f}, - {+0.632944f, -0.076074f, +0.072814f, -0.000407f, -0.000065f}, - {+0.000550f, +0.019959f, -0.002036f, +0.000057f, +0.000008f}, - {+0.501452f, -0.419657f, +0.050434f, -0.000591f, -0.000031f}, - {-0.003094f, +0.024467f, +0.008111f, -0.000124f, -0.000008f}, - {+0.415870f, +0.376102f, +0.059743f, +0.000227f, -0.000079f}, - {+0.144474f, +0.249397f, +0.000459f, -0.000132f, -0.000001f}, - {+0.358497f, -0.316925f, +0.053082f, -0.000084f, -0.000038f}, - {-0.000238f, +0.040068f, +0.000597f, -0.000101f, +0.000003f}, - {+0.258227f, -0.159273f, +0.039800f, -0.000005f, -0.000020f}, - {-0.000093f, +0.088439f, +0.001940f, +0.000226f, -0.000002f} - }, - { - {-0.070876f, +2.403851f, -0.004503f, +0.000397f, -0.000055f}, - {-0.076840f, +0.356484f, +0.022459f, -0.000471f, -0.000111f}, - {-0.673641f, +0.535940f, -0.067858f, -0.000222f, +0.000078f}, - {-0.180405f, +0.930833f, -0.021154f, +0.000296f, +0.000100f}, - {-0.009898f, +0.055154f, +0.001657f, +0.000144f, -0.000051f}, - {-0.259236f, +1.270489f, -0.028633f, +0.000371f, -0.000020f}, - {-0.000259f, +0.018770f, +0.000911f, -0.000150f, -0.000006f}, - {-0.386838f, +0.910045f, -0.041711f, +0.000301f, -0.000066f}, - {+0.002354f, +0.032108f, -0.004808f, +0.000253f, +0.000001f}, - {+0.070467f, +0.913930f, +0.006193f, +0.000040f, +0.000015f}, - {-0.048842f, +0.514452f, +0.000408f, +0.000377f, +0.000028f}, - {-0.230743f, +0.601122f, -0.035699f, -0.000081f, -0.000033f}, - {+0.003564f, +0.035201f, -0.001400f, +0.000267f, -0.000004f}, - {-0.142446f, +0.469049f, -0.024919f, +0.000100f, -0.000007f}, - {+0.015479f, +0.072891f, -0.002187f, +0.000069f, +0.000027f} - }, - { - {-1.060593f, +0.881637f, -0.141237f, -0.000301f, +0.000146f}, - {-0.002985f, +0.403323f, -0.016301f, +0.000548f, +0.000034f}, - {-0.052335f, +1.451862f, -0.028199f, +0.000089f, -0.000007f}, - {-0.384736f, +0.613709f, -0.054310f, -0.000237f, +0.000033f}, - {+0.002631f, +0.066036f, -0.002339f, +0.000502f, +0.000000f}, - {-0.476794f, +0.933190f, -0.065473f, +0.000248f, +0.000085f}, - {-0.000206f, +0.017762f, +0.000777f, -0.000039f, -0.000010f}, - {-0.253198f, +1.107323f, -0.036585f, +0.000594f, +0.000045f}, - {-0.001180f, +0.036159f, +0.000746f, +0.000135f, +0.000010f}, - {-0.505571f, +0.029600f, -0.070178f, -0.000529f, +0.000092f}, - {-0.075354f, +0.475320f, -0.002352f, +0.000131f, +0.000004f}, - {-0.271199f, +0.550703f, -0.035860f, -0.000004f, +0.000047f}, - {-0.005826f, +0.026803f, +0.001217f, +0.000121f, -0.000003f}, - {-0.221873f, +0.360216f, -0.027778f, -0.000058f, +0.000024f}, - {-0.024301f, +0.026331f, +0.003135f, -0.000244f, +0.000001f} - }, - { - {+0.690525f, -1.818917f, +0.085039f, -0.000450f, +0.000027f}, - {+0.057225f, +0.281207f, +0.009710f, +0.000560f, +0.000102f}, - {+0.506459f, +0.564152f, +0.071684f, -0.000050f, -0.000076f}, - {+0.353869f, -0.522523f, +0.045019f, -0.000449f, -0.000102f}, - {+0.004101f, +0.060649f, +0.002162f, -0.000150f, +0.000054f}, - {+0.492437f, -0.548497f, +0.057096f, -0.000443f, +0.000009f}, - {+0.000233f, +0.017558f, -0.000876f, +0.000157f, +0.000008f}, - {+0.476366f, -0.001171f, +0.053042f, -0.000446f, +0.000061f}, - {+0.000353f, +0.037418f, +0.000476f, -0.000253f, -0.000002f}, - {+0.196744f, -1.065124f, +0.031949f, -0.000103f, -0.000031f}, - {+0.147811f, +0.165824f, +0.000026f, -0.000398f, -0.000026f}, - {+0.346848f, -0.402208f, +0.047664f, -0.000015f, +0.000024f}, - {+0.007566f, +0.015715f, -0.002480f, -0.000269f, +0.000006f}, - {+0.252888f, -0.368770f, +0.034342f, -0.000180f, +0.000002f}, - {+0.023692f, -0.031259f, -0.003931f, -0.000059f, -0.000028f} - }, - { - {+0.578183f, -2.011593f, +0.073992f, +0.001371f, -0.000167f}, - {-0.069594f, +0.088175f, -0.003810f, -0.000440f, -0.000044f}, - {-0.227220f, -0.564080f, -0.015629f, +0.000042f, +0.000009f}, - {+0.169941f, -0.804452f, +0.028988f, +0.000605f, -0.000042f}, - {-0.009645f, +0.039649f, +0.000144f, -0.000553f, -0.000006f}, - {+0.153964f, -1.056091f, +0.034451f, +0.000335f, -0.000105f}, - {-0.000025f, +0.019813f, +0.000132f, +0.000002f, +0.000012f}, - {-0.062017f, -0.804384f, +0.011398f, -0.000308f, -0.000061f}, - {+0.000169f, +0.034911f, -0.000187f, -0.000117f, -0.000013f}, - {+0.440119f, -0.713992f, +0.050615f, +0.001076f, -0.000106f}, - {-0.128669f, -0.214233f, +0.004497f, -0.000103f, -0.000009f}, - {+0.098097f, -0.798361f, +0.010013f, +0.000351f, -0.000053f}, - {-0.008550f, +0.001254f, +0.004092f, -0.000138f, +0.000001f}, - {+0.091804f, -0.627104f, +0.009244f, +0.000286f, -0.000027f}, - {-0.014593f, -0.076768f, +0.002819f, +0.000279f, -0.000001f} - }, - { - {-0.993435f, +0.387528f, -0.110131f, +0.000307f, +0.000016f}, - {+0.047060f, -0.075626f, -0.001334f, -0.000567f, -0.000091f}, - {-0.206920f, -0.568534f, -0.044219f, +0.000186f, +0.000075f}, - {-0.392576f, +0.068469f, -0.053890f, +0.000450f, +0.000112f}, - {+0.012528f, +0.006883f, -0.001083f, +0.000138f, -0.000055f}, - {-0.480261f, -0.062036f, -0.067996f, +0.000424f, +0.000016f}, - {+0.000253f, +0.022782f, -0.000795f, -0.000185f, -0.000011f}, - {-0.301958f, -0.406273f, -0.051656f, +0.000467f, -0.000050f}, - {-0.001093f, +0.029167f, +0.002690f, +0.000282f, +0.000004f}, - {-0.502714f, +0.728345f, -0.060195f, +0.000029f, +0.000056f}, - {+0.039980f, -0.441106f, -0.004231f, +0.000399f, +0.000027f}, - {-0.391476f, -0.055144f, -0.045924f, +0.000025f, -0.000010f}, - {+0.008205f, -0.014371f, -0.003360f, +0.000261f, -0.000007f}, - {-0.304247f, -0.028652f, -0.034061f, +0.000183f, +0.000005f}, - {+0.001458f, -0.093974f, -0.000369f, +0.000055f, +0.000030f} - }, - { - {+0.137392f, +2.124261f, +0.005795f, -0.002596f, +0.000175f}, - {-0.009666f, -0.150052f, +0.003550f, +0.000266f, +0.000050f}, - {+0.216972f, +0.115692f, +0.034463f, -0.000271f, -0.000010f}, - {+0.047257f, +0.759362f, +0.004842f, -0.001129f, +0.000048f}, - {-0.012419f, -0.029126f, -0.001282f, +0.000578f, +0.000014f}, - {+0.096507f, +0.846049f, +0.009402f, -0.001164f, +0.000120f}, - {-0.000562f, +0.023531f, +0.001850f, +0.000083f, -0.000013f}, - {+0.156525f, +0.322121f, +0.018342f, -0.000159f, +0.000076f}, - {+0.002214f, +0.022078f, -0.006975f, +0.000051f, +0.000016f}, - {-0.091678f, +1.383538f, -0.002909f, -0.001805f, +0.000114f}, - {+0.056928f, -0.411079f, -0.001046f, -0.000022f, +0.000016f}, - {+0.149824f, +0.781150f, +0.018621f, -0.000777f, +0.000055f}, - {-0.007030f, -0.027663f, +0.001499f, +0.000143f, +0.000002f}, - {+0.113175f, +0.611704f, +0.011855f, -0.000554f, +0.000028f}, - {+0.010304f, -0.081328f, -0.001299f, -0.000326f, -0.000001f} - }, - { - {+0.761103f, +1.176434f, +0.079034f, -0.000465f, -0.000067f}, - {-0.021766f, -0.129069f, -0.001291f, +0.000514f, +0.000079f}, - {+0.052656f, +0.385158f, +0.008581f, -0.000181f, -0.000075f}, - {+0.327757f, +0.336935f, +0.039056f, -0.000551f, -0.000130f}, - {+0.011309f, -0.064037f, +0.003059f, -0.000137f, +0.000054f}, - {+0.369260f, +0.434054f, +0.045988f, -0.000624f, -0.000050f}, - {-0.000062f, +0.024514f, -0.000971f, +0.000266f, +0.000015f}, - {+0.163578f, +0.313585f, +0.027154f, -0.000540f, +0.000031f}, - {-0.002357f, +0.012860f, +0.007199f, -0.000382f, -0.000009f}, - {+0.567188f, +0.412930f, +0.045658f, -0.000151f, -0.000091f}, - {-0.107899f, -0.186387f, +0.005135f, -0.000449f, -0.000033f}, - {+0.250112f, +0.642586f, +0.021784f, -0.000061f, -0.000006f}, - {+0.006206f, -0.039247f, -0.001365f, -0.000263f, +0.000007f}, - {+0.188631f, +0.504176f, +0.017497f, -0.000181f, -0.000014f}, - {-0.017502f, -0.048887f, +0.002416f, -0.000067f, -0.000031f} - }, - { - {-0.684327f, -1.035275f, -0.063848f, +0.004018f, -0.000163f}, - {+0.035309f, -0.050812f, -0.002847f, -0.000101f, -0.000052f}, - {-0.168514f, +0.043177f, -0.023043f, +0.000441f, +0.000012f}, - {-0.257450f, -0.574283f, -0.031229f, +0.001901f, -0.000048f}, - {-0.010780f, -0.100434f, -0.001201f, -0.000537f, -0.000023f}, - {-0.310049f, -0.632628f, -0.040097f, +0.002280f, -0.000122f}, - {+0.001324f, +0.031148f, +0.000200f, -0.000256f, +0.000013f}, - {-0.184754f, -0.248324f, -0.030006f, +0.000823f, -0.000085f}, - {+0.001325f, -0.002753f, -0.005413f, +0.000102f, -0.000017f}, - {-0.399370f, -1.041121f, -0.030330f, +0.002858f, -0.000110f}, - {+0.099582f, +0.080360f, -0.007610f, +0.000330f, -0.000021f}, - {-0.313992f, -0.204082f, -0.025743f, +0.001207f, -0.000051f}, - {-0.005880f, -0.052171f, +0.002547f, -0.000108f, -0.000006f}, - {-0.235288f, -0.132120f, -0.018189f, +0.000805f, -0.000025f}, - {+0.019747f, -0.009044f, -0.004930f, +0.000386f, +0.000004f} - }, - { - {-0.036061f, -2.049852f, +0.017873f, +0.001326f, +0.000118f}, - {-0.031730f, +0.032618f, +0.005980f, -0.000345f, -0.000069f}, - {+0.048189f, -0.299501f, +0.006649f, +0.000278f, +0.000077f}, - {-0.088981f, -0.872832f, +0.010243f, +0.001133f, +0.000155f}, - {+0.009640f, -0.132629f, -0.002725f, +0.000234f, -0.000050f}, - {-0.100800f, -1.010534f, +0.017085f, +0.001478f, +0.000090f}, - {-0.001689f, +0.039941f, -0.001439f, -0.000417f, -0.000020f}, - {-0.052179f, -0.499015f, +0.012647f, +0.001020f, -0.000006f}, - {-0.000517f, -0.025997f, +0.009380f, +0.000610f, +0.000015f}, - {-0.109675f, -1.498579f, +0.008016f, +0.000837f, +0.000130f}, - {-0.056765f, +0.265453f, +0.012695f, +0.000691f, +0.000043f}, - {+0.061872f, -0.766380f, +0.004838f, +0.000273f, +0.000020f}, - {+0.005074f, -0.063245f, -0.003014f, +0.000316f, -0.000006f}, - {+0.048699f, -0.553249f, +0.001253f, +0.000294f, +0.000022f}, - {-0.017826f, +0.027182f, +0.007983f, +0.000078f, +0.000032f} - }, - { - {+0.512499f, -1.305378f, -0.011560f, -0.006425f, +0.000131f}, - {+0.019903f, +0.086704f, -0.007458f, -0.000169f, +0.000051f}, - {+0.082209f, -0.257165f, +0.004920f, -0.000746f, -0.000015f}, - {+0.284718f, -0.371880f, -0.012409f, -0.003530f, +0.000037f}, - {-0.006519f, -0.136496f, +0.009729f, +0.000296f, +0.000032f}, - {+0.344532f, -0.419919f, -0.018217f, -0.004473f, +0.000109f}, - {+0.000829f, +0.034413f, -0.003856f, +0.000595f, -0.000011f}, - {+0.207286f, -0.157646f, -0.009524f, -0.002206f, +0.000086f}, - {+0.000833f, -0.043443f, -0.009009f, -0.000486f, +0.000016f}, - {+0.394886f, -0.811218f, -0.014885f, -0.004885f, +0.000089f}, - {+0.013557f, +0.334502f, -0.014936f, -0.001054f, +0.000022f}, - {+0.157375f, -0.628940f, +0.005538f, -0.001860f, +0.000041f}, - {-0.003445f, -0.061047f, +0.005289f, -0.000034f, +0.000009f}, - {+0.111074f, -0.457260f, +0.006419f, -0.001195f, +0.000019f}, - {+0.012960f, +0.048297f, -0.009228f, -0.000446f, -0.000009f} - }, - { - {-0.448213f, -0.073435f, +0.043831f, -0.002036f, -0.000157f}, - {-0.008325f, +0.101463f, +0.007806f, +0.000222f, +0.000061f}, - {-0.086362f, -0.015184f, -0.001043f, -0.000590f, -0.000080f}, - {-0.212313f, +0.269444f, +0.022491f, -0.002262f, -0.000181f}, - {+0.003180f, -0.089659f, -0.026528f, -0.000770f, +0.000042f}, - {-0.262296f, +0.359676f, +0.026182f, -0.002987f, -0.000127f}, - {-0.000312f, +0.003749f, +0.018127f, +0.000631f, +0.000025f}, - {-0.154000f, +0.321358f, +0.010574f, -0.002216f, -0.000021f}, - {-0.001244f, -0.030938f, -0.011803f, -0.000968f, -0.000021f}, - {-0.314308f, +0.084402f, +0.038420f, -0.001607f, -0.000165f}, - {+0.011203f, +0.317368f, +0.004001f, -0.001332f, -0.000057f}, - {-0.169552f, -0.187140f, +0.006401f, -0.000360f, -0.000031f}, - {+0.001968f, -0.036558f, -0.013885f, -0.000585f, +0.000002f}, - {-0.118799f, -0.138798f, +0.002492f, -0.000352f, -0.000027f}, - {-0.007358f, +0.044960f, +0.010830f, +0.000051f, -0.000032f} - }, - { - {+0.176211f, +0.439467f, -0.166626f, +0.010372f, -0.000084f}, - {+0.001030f, +0.076361f, -0.016676f, +0.000614f, -0.000050f}, - {+0.027648f, +0.122383f, -0.009981f, +0.002109f, +0.000021f}, - {+0.060301f, +0.483123f, -0.062250f, +0.008767f, -0.000014f}, - {-0.002391f, -0.004071f, +0.048751f, +0.001909f, -0.000038f}, - {+0.076855f, +0.618372f, -0.079089f, +0.011397f, -0.000082f}, - {+0.001055f, -0.029752f, -0.015441f, -0.001494f, +0.000006f}, - {+0.034038f, +0.480307f, -0.030604f, +0.007648f, -0.000077f}, - {+0.000511f, +0.008400f, +0.025063f, +0.001785f, -0.000012f}, - {+0.114855f, +0.409675f, -0.120781f, +0.008892f, -0.000052f}, - {-0.017129f, +0.247573f, -0.000419f, +0.003919f, -0.000016f}, - {+0.076406f, +0.059144f, -0.051248f, +0.002627f, -0.000028f}, - {-0.001510f, +0.003557f, +0.023985f, +0.001157f, -0.000011f}, - {+0.051697f, +0.041218f, -0.031203f, +0.001716f, -0.000011f}, - {+0.003490f, +0.017100f, -0.019703f, -0.000030f, +0.000013f} - } -}; - -const float leftHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]= -{ - { - {-0.346479f, +0.553523f, -0.074098f, +0.001288f, +0.000309f}, - {-0.179291f, +0.196331f, +0.055128f, -0.017382f, +0.000411f}, - {-0.308239f, +0.469545f, -0.021575f, -0.009209f, -0.000303f}, - {-0.319940f, +0.524241f, -0.066771f, +0.005442f, -0.000530f}, - {-0.099071f, +0.016070f, +0.100474f, -0.004226f, +0.000147f}, - {-0.351211f, +0.583972f, -0.084062f, +0.005229f, +0.000125f}, - {-0.051710f, -0.119065f, +0.135568f, +0.002775f, +0.000069f}, - {-0.368726f, +0.609447f, -0.071839f, -0.005499f, +0.000133f}, - {-0.033639f, -0.174352f, +0.152669f, +0.005945f, -0.000002f}, - {-0.315952f, +0.475453f, -0.040412f, +0.000509f, -0.000243f}, - {-0.182972f, +0.167861f, +0.028830f, +0.007677f, -0.000251f}, - {-0.338545f, +0.555030f, -0.075577f, +0.002211f, +0.000183f}, - {-0.097863f, -0.017152f, +0.129397f, -0.007411f, +0.000002f}, - {-0.316247f, +0.514944f, -0.065273f, +0.002541f, +0.000041f}, - {-0.140354f, +0.105800f, +0.079004f, -0.006610f, -0.000113f} - }, - { - {-0.313913f, +0.623520f, -0.085495f, -0.012758f, +0.000202f}, - {+0.066726f, +0.399622f, -0.022457f, -0.006137f, +0.000284f}, - {-0.230132f, +0.565523f, +0.020706f, +0.030274f, -0.000219f}, - {-0.292072f, +0.667164f, +0.030070f, +0.013037f, -0.000365f}, - {+0.082351f, +0.095375f, -0.017487f, -0.006093f, +0.000108f}, - {-0.322802f, +0.748814f, +0.008866f, -0.001584f, +0.000068f}, - {+0.051057f, -0.282404f, -0.087651f, -0.005022f, +0.000044f}, - {-0.340687f, +0.775811f, +0.021863f, -0.011738f, +0.000102f}, - {+0.030674f, -0.445214f, -0.118754f, -0.004069f, -0.000004f}, - {-0.292932f, +0.449609f, -0.071120f, +0.002682f, -0.000141f}, - {+0.036892f, +0.307700f, -0.120513f, +0.004660f, -0.000164f}, - {-0.276687f, +0.712282f, -0.031372f, -0.011376f, +0.000121f}, - {+0.094247f, +0.038851f, -0.003446f, +0.004678f, +0.000001f}, - {-0.239959f, +0.695822f, -0.012889f, -0.004808f, +0.000027f}, - {+0.091193f, +0.305836f, +0.011105f, +0.007857f, -0.000080f} - }, - { - {+0.345193f, -0.332259f, -0.065579f, +0.004201f, -0.000370f}, - {+0.079556f, +0.212459f, +0.100114f, +0.008980f, -0.000484f}, - {+0.284314f, -0.233038f, +0.152863f, -0.033143f, +0.000355f}, - {+0.451352f, -0.399491f, +0.098548f, -0.007150f, +0.000625f}, - {-0.053656f, +0.193617f, +0.026103f, +0.008373f, -0.000172f}, - {+0.462996f, -0.367670f, +0.059995f, -0.007104f, -0.000153f}, - {-0.047980f, -0.347394f, +0.054169f, +0.004712f, -0.000082f}, - {+0.460543f, -0.352575f, +0.025131f, +0.016685f, -0.000155f}, - {-0.022116f, -0.563476f, +0.009055f, +0.001133f, +0.000002f}, - {+0.343716f, -0.687345f, +0.149443f, +0.002569f, +0.000291f}, - {+0.134535f, +0.214472f, -0.123198f, -0.004683f, +0.000298f}, - {+0.395678f, -0.353387f, +0.071605f, +0.009820f, -0.000218f}, - {-0.080865f, +0.213671f, +0.036393f, -0.002576f, -0.000002f}, - {+0.378160f, -0.247310f, +0.059701f, +0.003289f, -0.000050f}, - {-0.011178f, +0.435220f, +0.022000f, -0.003546f, +0.000133f} - }, - { - {+0.375535f, -0.323173f, -0.095592f, +0.016350f, -0.000072f}, - {-0.164514f, -0.148051f, +0.076663f, +0.007666f, -0.000132f}, - {+0.284282f, -0.406641f, +0.032308f, +0.013962f, +0.000119f}, - {+0.105923f, -0.905160f, +0.058855f, -0.012639f, +0.000165f}, - {+0.019004f, +0.294886f, +0.002183f, -0.000727f, -0.000061f}, - {+0.165541f, -0.804111f, +0.046702f, +0.009739f, +0.000003f}, - {+0.041573f, -0.292137f, -0.001643f, -0.002823f, -0.000013f}, - {+0.224451f, -0.660961f, +0.005300f, -0.001820f, -0.000066f}, - {+0.007903f, -0.553598f, -0.011295f, +0.001114f, +0.000006f}, - {+0.301096f, -0.858369f, +0.054950f, -0.005764f, +0.000016f}, - {-0.185058f, -0.068726f, +0.031108f, -0.004814f, +0.000057f}, - {+0.211913f, -0.708511f, -0.018970f, +0.000869f, -0.000046f}, - {+0.056632f, +0.323528f, -0.035298f, +0.002677f, +0.000000f}, - {+0.146364f, -0.655800f, -0.014996f, +0.001286f, -0.000009f}, - {-0.068438f, +0.370728f, +0.021857f, -0.002414f, +0.000040f} - }, - { - {-0.501452f, +0.957815f, -0.118949f, -0.016074f, +0.000374f}, - {+0.140573f, -0.389546f, -0.063161f, -0.008116f, +0.000493f}, - {-0.428055f, +0.655187f, -0.059033f, -0.003664f, -0.000369f}, - {-0.420740f, -0.088485f, -0.055413f, +0.007312f, -0.000635f}, - {+0.016162f, +0.401403f, -0.075825f, -0.002475f, +0.000180f}, - {-0.431842f, +0.120945f, -0.041884f, -0.000821f, +0.000146f}, - {-0.033630f, -0.215580f, +0.008255f, +0.002345f, +0.000081f}, - {-0.456816f, +0.379069f, -0.075615f, -0.009372f, +0.000166f}, - {+0.007127f, -0.487963f, -0.047197f, -0.001590f, -0.000003f}, - {-0.442776f, +0.317039f, -0.091288f, -0.002255f, -0.000272f}, - {+0.067359f, -0.452943f, +0.061128f, +0.004058f, -0.000297f}, - {-0.485489f, +0.275866f, -0.050681f, -0.003739f, +0.000220f}, - {-0.029340f, +0.381803f, +0.012060f, -0.003022f, +0.000002f}, - {-0.433227f, +0.159115f, -0.034801f, -0.002670f, +0.000050f}, - {+0.115592f, +0.171299f, -0.027425f, +0.001757f, -0.000137f} - }, - { - {-0.284469f, +1.284573f, -0.032011f, +0.001084f, -0.000052f}, - {-0.026859f, -0.481645f, +0.031329f, -0.003806f, -0.000014f}, - {-0.181950f, +0.902398f, -0.114462f, +0.006410f, -0.000019f}, - {+0.021997f, +0.558819f, -0.027875f, +0.007660f, +0.000026f}, - {-0.045901f, +0.421890f, +0.009606f, -0.000493f, +0.000014f}, - {-0.087312f, +0.637991f, -0.008565f, -0.005467f, -0.000065f}, - {+0.027202f, -0.176156f, -0.031817f, -0.000966f, -0.000015f}, - {-0.174838f, +0.815827f, -0.004047f, +0.005296f, +0.000027f}, - {-0.017589f, -0.361264f, +0.074423f, +0.001029f, -0.000008f}, - {-0.239564f, +0.721503f, +0.005066f, +0.004992f, +0.000091f}, - {+0.117370f, -0.475324f, -0.026060f, +0.002096f, +0.000041f}, - {-0.037676f, +0.907270f, -0.023327f, +0.000382f, -0.000025f}, - {+0.006224f, +0.373402f, -0.019625f, +0.001954f, -0.000001f}, - {+0.009142f, +0.797778f, +0.001456f, +0.000541f, -0.000008f}, - {-0.112449f, -0.106272f, +0.002858f, +0.001574f, -0.000001f} - }, - { - {+0.580646f, -0.125470f, +0.165931f, +0.003927f, -0.000327f}, - {-0.108873f, -0.326101f, +0.000791f, +0.004385f, -0.000443f}, - {+0.496298f, -0.294341f, +0.110947f, -0.003960f, +0.000347f}, - {+0.317324f, +0.084393f, +0.052686f, -0.002910f, +0.000568f}, - {+0.064021f, +0.305884f, -0.009984f, +0.000720f, -0.000171f}, - {+0.381756f, -0.083321f, +0.056496f, +0.001922f, -0.000109f}, - {-0.023665f, -0.162046f, +0.011591f, -0.001760f, -0.000067f}, - {+0.478358f, -0.157333f, +0.072547f, +0.000538f, -0.000166f}, - {+0.022505f, -0.184316f, -0.094023f, -0.000535f, +0.000005f}, - {+0.519003f, -0.345400f, +0.046524f, +0.002002f, +0.000201f}, - {-0.203282f, -0.003518f, -0.055916f, -0.001798f, +0.000253f}, - {+0.431496f, +0.164286f, +0.068299f, -0.000598f, -0.000192f}, - {+0.013005f, +0.354615f, -0.009640f, -0.000556f, -0.000001f}, - {+0.388320f, +0.218505f, +0.052578f, +0.000717f, -0.000043f}, - {+0.064065f, -0.335687f, -0.005413f, -0.000806f, +0.000126f} - }, - { - {+0.216647f, -0.769850f, +0.030547f, -0.001237f, +0.000145f}, - {+0.185578f, +0.048454f, -0.025037f, +0.000839f, +0.000125f}, - {+0.072152f, -1.087589f, -0.044540f, -0.002159f, -0.000064f}, - {-0.039230f, -0.436180f, +0.027982f, -0.005578f, -0.000170f}, - {-0.067226f, +0.128292f, -0.003394f, +0.001259f, +0.000027f}, - {+0.082931f, -0.543672f, +0.006471f, +0.000953f, +0.000105f}, - {+0.021967f, -0.147869f, -0.016949f, +0.001711f, +0.000034f}, - {+0.128785f, -0.676661f, +0.016555f, +0.000836f, +0.000011f}, - {-0.024250f, -0.000088f, +0.082224f, +0.000232f, +0.000008f}, - {+0.175186f, -0.840571f, +0.013734f, -0.002329f, -0.000152f}, - {+0.111738f, +0.509167f, +0.011773f, +0.000668f, -0.000110f}, - {-0.059856f, -0.586995f, +0.004766f, +0.001337f, +0.000077f}, - {-0.030736f, +0.323572f, +0.010841f, +0.000266f, +0.000002f}, - {-0.130055f, -0.569153f, -0.015286f, -0.000126f, +0.000020f}, - {+0.005153f, -0.413324f, -0.002875f, -0.000804f, -0.000030f} - }, - { - {-0.725838f, +0.613051f, -0.068139f, +0.001012f, +0.000250f}, - {-0.154342f, +0.462365f, +0.008918f, -0.000748f, +0.000359f}, - {-0.574125f, -0.202838f, -0.063484f, +0.001137f, -0.000299f}, - {-0.248430f, -0.076290f, -0.045952f, +0.001044f, -0.000454f}, - {+0.057184f, -0.048810f, -0.000147f, -0.000421f, +0.000150f}, - {-0.385646f, +0.160251f, -0.051383f, +0.000597f, +0.000057f}, - {-0.020627f, -0.132133f, +0.015873f, +0.000547f, +0.000047f}, - {-0.510211f, +0.346437f, -0.108605f, -0.002970f, +0.000155f}, - {+0.024004f, +0.146367f, -0.069359f, +0.000113f, -0.000008f}, - {-0.640923f, +0.399438f, -0.091106f, -0.002796f, -0.000106f}, - {+0.074260f, +0.560217f, +0.027236f, -0.002049f, -0.000186f}, - {-0.335263f, -0.156297f, -0.049323f, +0.000645f, +0.000147f}, - {+0.044642f, +0.248879f, -0.008677f, -0.000509f, +0.000000f}, - {-0.262625f, -0.364710f, -0.040769f, -0.000478f, +0.000032f}, - {-0.063966f, -0.317445f, -0.003743f, -0.000353f, -0.000104f} - }, - { - {-0.013628f, +1.647816f, -0.010906f, -0.000105f, -0.000196f}, - {+0.034174f, +0.634603f, -0.061570f, +0.001602f, -0.000188f}, - {+0.159259f, +0.839126f, -0.028715f, +0.002082f, +0.000121f}, - {-0.012978f, +0.315172f, +0.007498f, +0.002515f, +0.000252f}, - {-0.038877f, -0.161887f, +0.013994f, -0.000806f, -0.000056f}, - {-0.094327f, +0.601401f, -0.004764f, -0.000515f, -0.000115f}, - {+0.019363f, -0.116326f, -0.016454f, -0.000653f, -0.000042f}, - {-0.103308f, +0.996284f, -0.012091f, +0.001669f, -0.000042f}, - {-0.020768f, +0.223263f, +0.032482f, -0.000406f, -0.000007f}, - {-0.002933f, +1.351350f, -0.016706f, +0.001459f, +0.000157f}, - {-0.188420f, +0.132863f, -0.019901f, +0.000373f, +0.000142f}, - {+0.044496f, +0.422612f, +0.003243f, -0.000732f, -0.000105f}, - {-0.050602f, +0.139166f, +0.011699f, +0.000107f, -0.000001f}, - {+0.121488f, +0.224605f, +0.019225f, +0.000384f, -0.000026f}, - {+0.088139f, -0.113041f, -0.007062f, +0.000964f, +0.000050f} - }, - { - {+0.784649f, +0.402307f, +0.111953f, -0.001767f, -0.000165f}, - {+0.096822f, +0.476180f, +0.001375f, -0.004303f, -0.000266f}, - {+0.455351f, +0.319212f, +0.073899f, -0.000685f, +0.000240f}, - {+0.289202f, -0.112057f, +0.026763f, +0.000919f, +0.000329f}, - {+0.017834f, -0.185600f, -0.026574f, -0.000319f, -0.000122f}, - {+0.470118f, -0.258982f, +0.068848f, -0.000550f, -0.000008f}, - {-0.018413f, -0.094635f, +0.004745f, -0.000689f, -0.000026f}, - {+0.630013f, -0.134362f, +0.098657f, -0.000312f, -0.000136f}, - {+0.014543f, +0.234428f, -0.011333f, +0.000353f, +0.000011f}, - {+0.691576f, +0.262485f, +0.098749f, +0.001088f, +0.000023f}, - {+0.133981f, -0.356598f, +0.000886f, +0.001721f, +0.000118f}, - {+0.331076f, -0.023745f, +0.052104f, -0.001010f, -0.000099f}, - {+0.048698f, +0.024439f, -0.007108f, +0.000514f, +0.000001f}, - {+0.208364f, +0.091797f, +0.036409f, +0.000063f, -0.000021f}, - {-0.069842f, +0.096568f, +0.001861f, +0.000341f, +0.000080f} - }, - { - {-0.275485f, -1.249177f, -0.051619f, +0.000413f, +0.000207f}, - {-0.157471f, +0.109039f, +0.009535f, +0.001756f, +0.000208f}, - {-0.251132f, -0.782342f, -0.026586f, -0.001157f, -0.000151f}, - {+0.001377f, -0.518955f, +0.008364f, -0.001070f, -0.000274f}, - {+0.000952f, -0.142768f, +0.022685f, +0.000903f, +0.000072f}, - {+0.024915f, -0.938659f, -0.001094f, -0.000206f, +0.000101f}, - {+0.017479f, -0.075912f, -0.014473f, +0.000492f, +0.000040f}, - {-0.047015f, -1.194136f, -0.019166f, +0.000263f, +0.000066f}, - {-0.007828f, +0.216324f, -0.002450f, +0.000122f, +0.000005f}, - {-0.225369f, -1.146623f, -0.025041f, +0.000712f, -0.000119f}, - {+0.035179f, -0.495586f, -0.002434f, +0.000356f, -0.000140f}, - {-0.042950f, -0.611443f, -0.015577f, +0.000564f, +0.000110f}, - {-0.041993f, -0.079290f, +0.005374f, -0.000241f, +0.000001f}, - {-0.084537f, -0.361650f, -0.016659f, -0.000278f, +0.000027f}, - {+0.019868f, +0.221770f, +0.001086f, -0.000552f, -0.000058f} - }, - { - {-0.638841f, -0.716808f, -0.087844f, +0.000999f, +0.000093f}, - {+0.119463f, -0.260644f, +0.000730f, +0.002454f, +0.000187f}, - {-0.358444f, -0.623901f, -0.042829f, +0.000564f, -0.000182f}, - {-0.356273f, +0.051713f, -0.055059f, -0.001405f, -0.000222f}, - {-0.013400f, -0.075190f, -0.009967f, +0.000251f, +0.000094f}, - {-0.558219f, -0.041438f, -0.081336f, +0.000205f, -0.000026f}, - {-0.016391f, -0.073933f, +0.020325f, +0.000320f, +0.000010f}, - {-0.700096f, -0.217086f, -0.089015f, -0.000055f, +0.000112f}, - {+0.002911f, +0.179435f, +0.015582f, -0.000426f, -0.000012f}, - {-0.613387f, -0.542946f, -0.085584f, -0.000623f, +0.000026f}, - {-0.170406f, -0.188028f, -0.011393f, -0.001711f, -0.000064f}, - {-0.388203f, -0.100241f, -0.048703f, +0.000607f, +0.000060f}, - {+0.031711f, -0.166672f, -0.004751f, -0.000501f, -0.000001f}, - {-0.243489f, -0.119652f, -0.037808f, -0.000041f, +0.000012f}, - {+0.037926f, +0.212515f, -0.009955f, -0.000474f, -0.000058f} - }, - { - {+0.428480f, +0.916268f, +0.061127f, +0.000167f, -0.000191f}, - {-0.018243f, -0.427994f, +0.007742f, -0.001543f, -0.000197f}, - {+0.328028f, +0.427987f, +0.043949f, -0.000347f, +0.000159f}, - {+0.103644f, +0.768055f, +0.017035f, +0.000309f, +0.000256f}, - {+0.017299f, -0.013770f, +0.002341f, -0.000570f, -0.000078f}, - {+0.152316f, +1.054485f, +0.026241f, +0.000619f, -0.000075f}, - {+0.015958f, -0.076522f, -0.015048f, -0.000200f, -0.000031f}, - {+0.296986f, +1.289182f, +0.034915f, -0.000175f, -0.000081f}, - {+0.000543f, +0.133568f, -0.013971f, -0.000050f, -0.000002f}, - {+0.387624f, +1.005937f, +0.059332f, -0.001214f, +0.000064f}, - {+0.158818f, +0.295857f, +0.012511f, -0.000363f, +0.000119f}, - {+0.124621f, +0.674220f, +0.018405f, -0.000154f, -0.000100f}, - {-0.017600f, -0.228196f, +0.004584f, +0.000391f, +0.000000f}, - {+0.130947f, +0.464380f, +0.027044f, +0.000227f, -0.000024f}, - {-0.077494f, +0.080369f, +0.012731f, +0.000384f, +0.000057f} - }, - { - {+0.474270f, +0.848355f, +0.072295f, -0.000352f, -0.000045f}, - {-0.078278f, -0.330646f, -0.006905f, -0.001256f, -0.000133f}, - {+0.210978f, +0.611947f, +0.028321f, +0.000762f, +0.000134f}, - {+0.339239f, +0.417518f, +0.042058f, +0.001229f, +0.000149f}, - {-0.012805f, +0.031238f, -0.001412f, -0.000282f, -0.000070f}, - {+0.525031f, +0.496181f, +0.068966f, +0.000154f, +0.000041f}, - {-0.016853f, -0.064800f, +0.007621f, -0.000050f, -0.000001f}, - {+0.610173f, +0.790742f, +0.091162f, +0.000033f, -0.000087f}, - {-0.003936f, +0.097134f, +0.013071f, +0.000574f, +0.000012f}, - {+0.511076f, +0.828412f, +0.066510f, +0.000121f, -0.000037f}, - {-0.014322f, +0.547795f, -0.000233f, +0.001234f, +0.000033f}, - {+0.412615f, +0.228133f, +0.058325f, -0.000274f, -0.000034f}, - {+0.001487f, -0.254447f, +0.003704f, +0.000354f, +0.000001f}, - {+0.253975f, +0.294824f, +0.029043f, +0.000151f, -0.000007f}, - {+0.081818f, -0.118377f, -0.003734f, +0.000481f, +0.000041f} - }, - { - {-0.522564f, -0.689848f, -0.077661f, -0.000834f, +0.000166f}, - {+0.112532f, -0.069243f, -0.003530f, +0.000958f, +0.000176f}, - {-0.302251f, -0.172630f, -0.042769f, -0.000157f, -0.000153f}, - {-0.214362f, -0.409809f, -0.017566f, -0.000172f, -0.000221f}, - {+0.001708f, +0.057201f, +0.003140f, +0.000396f, +0.000076f}, - {-0.320094f, -0.781338f, -0.036876f, -0.000754f, +0.000050f}, - {+0.018111f, -0.036447f, -0.007132f, -0.000014f, +0.000022f}, - {-0.510842f, -0.943853f, -0.074947f, -0.000045f, +0.000087f}, - {+0.007080f, +0.079137f, -0.013350f, -0.000072f, -0.000001f}, - {-0.543962f, -0.791940f, -0.077879f, +0.000741f, -0.000016f}, - {-0.139752f, +0.365032f, -0.009628f, +0.000228f, -0.000093f}, - {-0.254482f, -0.797757f, -0.038335f, -0.000175f, +0.000085f}, - {+0.013164f, -0.250065f, -0.009012f, -0.000362f, -0.000001f}, - {-0.229974f, -0.433573f, -0.029915f, -0.000329f, +0.000021f}, - {-0.049796f, -0.291278f, +0.001346f, -0.000394f, -0.000053f} - }, - { - {-0.265772f, -1.102965f, -0.038204f, +0.000514f, +0.000019f}, - {-0.069628f, +0.172555f, +0.007715f, +0.000961f, +0.000103f}, - {-0.117719f, -0.454174f, -0.022429f, -0.000476f, -0.000099f}, - {-0.201529f, -0.405038f, -0.040488f, -0.000745f, -0.000107f}, - {+0.013244f, +0.062592f, -0.010308f, +0.000225f, +0.000052f}, - {-0.361155f, -0.708560f, -0.057133f, -0.000206f, -0.000040f}, - {-0.018100f, -0.013096f, +0.013467f, -0.000067f, -0.000001f}, - {-0.368660f, -1.181142f, -0.048879f, +0.000032f, +0.000065f}, - {-0.008695f, +0.076549f, +0.007847f, -0.000668f, -0.000011f}, - {-0.337856f, -1.120965f, -0.041209f, +0.000362f, +0.000020f}, - {+0.176656f, -0.096997f, +0.010473f, -0.000832f, -0.000022f}, - {-0.366798f, -0.628661f, -0.050159f, +0.000274f, +0.000021f}, - {-0.024579f, -0.224963f, +0.010283f, -0.000321f, -0.000001f}, - {-0.167111f, -0.533443f, -0.021361f, -0.000057f, +0.000004f}, - {-0.003667f, -0.351759f, -0.002318f, -0.000327f, -0.000030f} - }, - { - {+0.496756f, +0.057133f, +0.069911f, +0.000582f, -0.000145f}, - {-0.013799f, +0.233209f, -0.009213f, -0.000993f, -0.000158f}, - {+0.232556f, +0.085603f, +0.033781f, +0.000044f, +0.000142f}, - {+0.144537f, +0.136639f, +0.022436f, +0.000164f, +0.000188f}, - {-0.028336f, +0.044645f, +0.018511f, -0.000332f, -0.000071f}, - {+0.320451f, +0.325110f, +0.037509f, +0.000534f, -0.000034f}, - {+0.016829f, -0.022096f, -0.026397f, +0.000125f, -0.000014f}, - {+0.533956f, +0.174039f, +0.062174f, +0.000242f, -0.000087f}, - {+0.008799f, +0.071779f, -0.008463f, +0.000227f, +0.000003f}, - {+0.654744f, +0.389244f, +0.083646f, -0.000024f, -0.000011f}, - {-0.072117f, -0.457416f, +0.001824f, -0.000008f, +0.000074f}, - {+0.392163f, +0.534188f, +0.053345f, +0.000158f, -0.000074f}, - {+0.032888f, -0.190496f, -0.018766f, +0.000377f, +0.000002f}, - {+0.262065f, +0.107178f, +0.028017f, +0.000293f, -0.000020f}, - {+0.054650f, -0.275758f, -0.003951f, +0.000369f, +0.000048f} - }, - { - {+0.102800f, +0.661769f, +0.024778f, -0.000437f, -0.000005f}, - {+0.074284f, +0.084134f, +0.007785f, -0.000781f, -0.000086f}, - {+0.107119f, +0.278685f, +0.016547f, +0.000374f, +0.000075f}, - {+0.195513f, +0.053148f, +0.036408f, +0.000495f, +0.000088f}, - {+0.039407f, -0.003431f, -0.017016f, -0.000081f, -0.000039f}, - {+0.262170f, +0.386464f, +0.055981f, +0.000107f, +0.000032f}, - {-0.015811f, -0.069404f, +0.040379f, +0.000018f, -0.000001f}, - {+0.150457f, +0.722389f, +0.047459f, -0.000189f, -0.000048f}, - {-0.008796f, +0.039878f, +0.029331f, +0.000673f, +0.000009f}, - {+0.071443f, +1.277356f, +0.015093f, -0.000771f, +0.000006f}, - {-0.079622f, -0.437077f, -0.008280f, +0.000635f, +0.000020f}, - {+0.212102f, +0.813239f, +0.030110f, -0.000386f, -0.000015f}, - {-0.037714f, -0.147621f, +0.022372f, +0.000244f, +0.000000f}, - {+0.056613f, +0.402997f, +0.018809f, -0.000058f, -0.000003f}, - {-0.081528f, -0.108982f, +0.013906f, +0.000206f, +0.000024f} - }, - { - {-0.373541f, -0.070450f, -0.057055f, -0.000471f, +0.000133f}, - {-0.068348f, -0.137916f, -0.005467f, +0.001073f, +0.000148f}, - {-0.194055f, -0.183976f, -0.031319f, +0.000021f, -0.000131f}, - {-0.058021f, -0.340872f, -0.015175f, -0.000168f, -0.000167f}, - {-0.043324f, -0.079398f, +0.010729f, +0.000250f, +0.000065f}, - {-0.219601f, -0.375357f, -0.043726f, -0.000182f, +0.000029f}, - {+0.015544f, -0.120833f, -0.029676f, -0.000101f, +0.000010f}, - {-0.356500f, -0.091308f, -0.067895f, -0.000171f, +0.000085f}, - {+0.009251f, -0.012039f, -0.031983f, -0.000425f, -0.000004f}, - {-0.600122f, +0.246169f, -0.079809f, -0.000134f, +0.000016f}, - {+0.152562f, -0.092567f, +0.005582f, -0.000147f, -0.000064f}, - {-0.416114f, -0.143031f, -0.053447f, +0.000035f, +0.000068f}, - {+0.037990f, -0.088681f, -0.014096f, -0.000339f, -0.000002f}, - {-0.194989f, +0.005961f, -0.031053f, -0.000187f, +0.000019f}, - {+0.074697f, +0.073729f, -0.012828f, -0.000314f, -0.000044f} - }, - { - {-0.087659f, -0.512695f, -0.018072f, +0.000628f, -0.000005f}, - {+0.004230f, -0.247400f, +0.003124f, +0.000774f, +0.000074f}, - {-0.140227f, -0.269891f, -0.017446f, -0.000365f, -0.000059f}, - {-0.364382f, +0.144921f, -0.059984f, -0.000608f, -0.000077f}, - {+0.039115f, -0.159891f, -0.011788f, -0.000015f, +0.000031f}, - {-0.377988f, -0.130201f, -0.060381f, -0.000116f, -0.000028f}, - {-0.014698f, -0.139313f, +0.012041f, +0.000055f, +0.000003f}, - {-0.226054f, -0.302457f, -0.037146f, +0.000151f, +0.000034f}, - {-0.009092f, -0.048503f, +0.012832f, -0.000508f, -0.000007f}, - {+0.139489f, -0.879999f, +0.008732f, +0.000589f, -0.000026f}, - {-0.098171f, +0.266370f, -0.001070f, -0.000683f, -0.000019f}, - {-0.064067f, -0.676039f, -0.014733f, +0.000450f, +0.000011f}, - {-0.033828f, -0.018438f, +0.006260f, -0.000203f, +0.000001f}, - {-0.039081f, -0.235768f, -0.009467f, +0.000096f, +0.000001f}, - {-0.039508f, +0.203205f, +0.006838f, -0.000188f, -0.000019f} - }, - { - {+0.318402f, +0.113290f, +0.052715f, +0.000298f, -0.000128f}, - {+0.068235f, -0.162863f, -0.004225f, -0.001090f, -0.000145f}, - {+0.222259f, +0.286163f, +0.036304f, -0.000074f, +0.000123f}, - {+0.168949f, +1.006240f, +0.051466f, +0.000233f, +0.000155f}, - {-0.028003f, -0.213729f, +0.017741f, -0.000168f, -0.000060f}, - {+0.295804f, +0.931852f, +0.065440f, +0.000118f, -0.000031f}, - {+0.012329f, -0.133114f, -0.010035f, +0.000080f, -0.000008f}, - {+0.367568f, +0.620904f, +0.068733f, +0.000078f, -0.000081f}, - {+0.007439f, -0.068218f, -0.011914f, +0.000536f, +0.000003f}, - {+0.430741f, -0.415072f, +0.068905f, +0.000095f, -0.000010f}, - {-0.021528f, +0.360393f, -0.007525f, +0.000307f, +0.000061f}, - {+0.337971f, -0.061032f, +0.046616f, -0.000184f, -0.000066f}, - {+0.026607f, +0.045352f, -0.006073f, +0.000328f, +0.000002f}, - {+0.140962f, +0.039662f, +0.023194f, +0.000152f, -0.000020f}, - {-0.007696f, +0.230864f, -0.004179f, +0.000321f, +0.000041f} - }, - { - {+0.114366f, +0.439023f, +0.013577f, -0.000632f, +0.000018f}, - {-0.096632f, +0.049253f, +0.005518f, -0.000776f, -0.000061f}, - {+0.146025f, +0.413262f, +0.013620f, +0.000490f, +0.000047f}, - {+0.535433f, +0.502251f, +0.042436f, +0.000856f, +0.000067f}, - {+0.012919f, -0.226782f, -0.015875f, +0.000030f, -0.000025f}, - {+0.531267f, +0.602899f, +0.057270f, +0.000190f, +0.000029f}, - {-0.009438f, -0.120072f, +0.004422f, -0.000186f, -0.000005f}, - {+0.350940f, +0.655711f, +0.044044f, +0.000096f, -0.000024f}, - {-0.004993f, -0.093043f, +0.020060f, +0.000234f, +0.000006f}, - {-0.198525f, +0.570779f, -0.031605f, -0.000217f, +0.000035f}, - {+0.099390f, +0.167283f, +0.010833f, +0.000671f, +0.000016f}, - {+0.020489f, +0.410883f, +0.013705f, -0.000359f, -0.000004f}, - {-0.017518f, +0.088396f, +0.008215f, +0.000121f, -0.000002f}, - {+0.086552f, +0.116817f, +0.017093f, -0.000096f, +0.000002f}, - {+0.046927f, +0.149468f, +0.001282f, +0.000116f, +0.000015f} - }, - { - {-0.348389f, -0.260238f, -0.050528f, -0.000503f, +0.000124f}, - {+0.060863f, +0.238331f, -0.011460f, +0.000913f, +0.000143f}, - {-0.279661f, -0.215310f, -0.029652f, -0.000025f, -0.000117f}, - {-0.590548f, -1.177681f, -0.067007f, -0.000422f, -0.000149f}, - {+0.002338f, -0.204608f, +0.009349f, +0.000140f, +0.000057f}, - {-0.673358f, -1.238148f, -0.098880f, -0.000483f, +0.000033f}, - {+0.007460f, -0.098657f, +0.003842f, +0.000003f, +0.000008f}, - {-0.639886f, -0.885842f, -0.107555f, -0.000336f, +0.000078f}, - {+0.002912f, -0.110891f, -0.004777f, -0.000426f, -0.000003f}, - {-0.308064f, +0.413337f, -0.045363f, -0.000012f, +0.000001f}, - {-0.079159f, -0.098142f, -0.005001f, -0.000304f, -0.000060f}, - {-0.261775f, -0.043581f, -0.050039f, +0.000020f, +0.000065f}, - {+0.007477f, +0.105861f, -0.006424f, -0.000253f, -0.000001f}, - {-0.150809f, -0.261923f, -0.032650f, -0.000224f, +0.000020f}, - {-0.062463f, -0.000784f, +0.002260f, -0.000235f, -0.000039f} - }, - { - {-0.084802f, -0.667993f, -0.010575f, +0.000724f, -0.000035f}, - {+0.015472f, +0.264305f, +0.017737f, +0.000856f, +0.000046f}, - {-0.089394f, -0.474721f, -0.024189f, -0.000463f, -0.000036f}, - {-0.260757f, -1.668672f, -0.030273f, -0.000841f, -0.000056f}, - {-0.014406f, -0.156721f, -0.006466f, -0.000058f, +0.000021f}, - {-0.321247f, -1.806107f, -0.023973f, -0.000065f, -0.000036f}, - {-0.006401f, -0.070186f, -0.003971f, +0.000249f, +0.000005f}, - {-0.215765f, -1.592243f, +0.000805f, -0.000059f, +0.000015f}, - {-0.001179f, -0.100912f, -0.010248f, -0.000161f, -0.000006f}, - {+0.215203f, -0.393691f, +0.031962f, -0.000030f, -0.000036f}, - {-0.003715f, -0.201207f, -0.005927f, -0.000616f, -0.000010f}, - {-0.094885f, -0.311374f, -0.010396f, +0.000395f, -0.000004f}, - {+0.002052f, +0.101907f, +0.001064f, -0.000125f, +0.000002f}, - {-0.162343f, -0.260689f, -0.014631f, +0.000139f, -0.000005f}, - {+0.049378f, -0.150147f, -0.003824f, -0.000109f, -0.000012f} - }, - { - {+0.375523f, +0.023640f, +0.048685f, +0.000757f, -0.000117f}, - {-0.079129f, +0.089447f, -0.017358f, -0.000833f, -0.000140f}, - {+0.258582f, +0.079328f, +0.043901f, +0.000050f, +0.000112f}, - {+0.786144f, -0.080409f, +0.090050f, +0.000512f, +0.000142f}, - {+0.021223f, -0.092022f, +0.005689f, -0.000083f, -0.000054f}, - {+0.965102f, +0.119837f, +0.107386f, +0.000882f, -0.000031f}, - {+0.005503f, -0.044093f, +0.001337f, -0.000087f, -0.000009f}, - {+0.930096f, +0.098134f, +0.098802f, +0.000616f, -0.000075f}, - {-0.000981f, -0.077878f, +0.008428f, +0.000405f, +0.000002f}, - {+0.207826f, -0.415264f, +0.029295f, +0.000038f, +0.000002f}, - {+0.064026f, -0.088096f, +0.011146f, +0.000233f, +0.000056f}, - {+0.348493f, +0.377419f, +0.058713f, +0.000176f, -0.000061f}, - {-0.009657f, +0.084358f, +0.002160f, +0.000249f, +0.000001f}, - {+0.294795f, +0.433182f, +0.041685f, +0.000320f, -0.000019f}, - {-0.015606f, -0.234362f, +0.001126f, +0.000178f, +0.000037f} - }, - { - {+0.011617f, +0.566329f, +0.010818f, -0.000813f, +0.000052f}, - {+0.080505f, -0.187637f, +0.019358f, -0.000727f, -0.000031f}, - {+0.132841f, +0.262806f, +0.024438f, +0.000308f, +0.000026f}, - {-0.205095f, +1.404475f, -0.007402f, +0.000565f, +0.000044f}, - {-0.021831f, -0.022144f, -0.002755f, +0.000059f, -0.000017f}, - {-0.222202f, +1.897742f, -0.010669f, -0.000249f, +0.000043f}, - {-0.004774f, -0.026838f, -0.000147f, -0.000221f, -0.000005f}, - {-0.290105f, +1.917533f, -0.020963f, -0.000272f, -0.000007f}, - {+0.003482f, -0.062741f, -0.005241f, +0.000061f, +0.000006f}, - {-0.201041f, +0.205200f, -0.025538f, -0.000061f, +0.000035f}, - {-0.047371f, +0.088805f, -0.005938f, +0.000518f, +0.000004f}, - {+0.083840f, +0.806848f, -0.003013f, -0.000531f, +0.000012f}, - {+0.015038f, +0.059421f, -0.003892f, +0.000105f, -0.000002f}, - {+0.099553f, +0.738308f, +0.006449f, -0.000279f, +0.000009f}, - {-0.022639f, -0.224357f, +0.002261f, +0.000083f, +0.000008f} - }, - { - {-0.321962f, +0.045967f, -0.050855f, -0.000806f, +0.000106f}, - {-0.008676f, -0.381006f, -0.027530f, +0.000698f, +0.000133f}, - {-0.333039f, -0.490802f, -0.069288f, +0.000184f, -0.000106f}, - {-0.548412f, +0.842992f, -0.085952f, -0.000354f, -0.000134f}, - {+0.016172f, +0.039278f, +0.001628f, +0.000029f, +0.000052f}, - {-0.754935f, +1.057276f, -0.105512f, -0.000835f, +0.000025f}, - {+0.004662f, -0.018565f, -0.002225f, +0.000116f, +0.000008f}, - {-0.764167f, +1.164667f, -0.105780f, -0.000566f, +0.000072f}, - {-0.005191f, -0.055847f, +0.006776f, -0.000297f, -0.000002f}, - {-0.122642f, +0.322608f, -0.022110f, -0.000056f, +0.000000f}, - {-0.022628f, +0.130641f, -0.002714f, -0.000204f, -0.000050f}, - {-0.518100f, -0.094410f, -0.062463f, -0.000139f, +0.000056f}, - {-0.018356f, +0.029667f, +0.006419f, -0.000243f, -0.000000f}, - {-0.434073f, -0.068727f, -0.052169f, -0.000227f, +0.000017f}, - {+0.049287f, -0.133318f, -0.004421f, -0.000132f, -0.000035f} - }, - { - {-0.038137f, -0.385406f, -0.010409f, +0.000707f, -0.000065f}, - {-0.097840f, -0.332634f, +0.030265f, +0.000594f, +0.000019f}, - {-0.190441f, -0.753884f, -0.002223f, -0.000383f, -0.000017f}, - {+0.365869f, -0.574688f, +0.044782f, -0.000359f, -0.000035f}, - {-0.005702f, +0.080693f, -0.004935f, -0.000052f, +0.000014f}, - {+0.509461f, -0.878965f, +0.054906f, +0.000325f, -0.000047f}, - {-0.004896f, -0.016910f, +0.005971f, +0.000183f, +0.000004f}, - {+0.637245f, -0.985968f, +0.074777f, +0.000503f, +0.000000f}, - {+0.005446f, -0.041391f, -0.014691f, -0.000099f, -0.000006f}, - {+0.137132f, -0.078455f, +0.021394f, +0.000266f, -0.000037f}, - {+0.070412f, -0.012539f, +0.007876f, -0.000375f, -0.000000f}, - {+0.143668f, -1.098716f, +0.019876f, +0.000534f, -0.000018f}, - {+0.019181f, -0.003090f, -0.008425f, -0.000093f, +0.000002f}, - {+0.119466f, -0.909317f, +0.014091f, +0.000299f, -0.000011f}, - {-0.055115f, -0.004451f, +0.006264f, -0.000044f, -0.000005f} - }, - { - {+0.331132f, +0.194225f, +0.057578f, +0.000747f, -0.000093f}, - {+0.175273f, -0.023562f, -0.023746f, -0.000630f, -0.000126f}, - {+0.627504f, +0.480941f, +0.082337f, -0.000333f, +0.000101f}, - {+0.295039f, -0.672027f, +0.054372f, +0.000122f, +0.000125f}, - {-0.006544f, +0.094670f, +0.007541f, +0.000004f, -0.000050f}, - {+0.400343f, -1.020229f, +0.073414f, +0.000516f, -0.000018f}, - {+0.004837f, -0.019428f, -0.006928f, -0.000132f, -0.000008f}, - {+0.360870f, -1.393762f, +0.062226f, +0.000263f, -0.000070f}, - {-0.004969f, -0.009476f, +0.020427f, +0.000267f, +0.000003f}, - {+0.102962f, -0.133692f, +0.017046f, +0.000058f, -0.000004f}, - {-0.042458f, -0.192483f, -0.007499f, +0.000213f, +0.000044f}, - {+0.507541f, -0.537711f, +0.066509f, -0.000058f, -0.000050f}, - {-0.017204f, -0.034316f, +0.007328f, +0.000233f, -0.000000f}, - {+0.395091f, -0.483632f, +0.051459f, +0.000055f, -0.000014f}, - {+0.040095f, +0.110095f, -0.006831f, +0.000094f, +0.000032f} - }, - { - {+0.118595f, +0.523257f, +0.014397f, -0.000463f, +0.000073f}, - {-0.174931f, +0.405419f, +0.015309f, -0.000501f, -0.000010f}, - {-0.085629f, +1.588035f, -0.029002f, +0.000587f, +0.000010f}, - {-0.316752f, +0.288723f, -0.050699f, +0.000422f, +0.000029f}, - {+0.017435f, +0.079802f, -0.006823f, +0.000058f, -0.000011f}, - {-0.476204f, +0.355299f, -0.072463f, -0.000079f, +0.000046f}, - {-0.004561f, -0.022768f, +0.004869f, -0.000147f, -0.000004f}, - {-0.635138f, +0.151731f, -0.087481f, -0.000351f, +0.000006f}, - {+0.004815f, +0.024980f, -0.013792f, +0.000134f, +0.000006f}, - {-0.073883f, +0.134688f, -0.012750f, -0.000315f, +0.000044f}, - {-0.040376f, -0.208056f, +0.002374f, +0.000265f, -0.000001f}, - {-0.382443f, +0.828469f, -0.051294f, -0.000303f, +0.000022f}, - {+0.013304f, -0.059405f, -0.004532f, +0.000098f, -0.000002f}, - {-0.307076f, +0.591577f, -0.037893f, -0.000141f, +0.000013f}, - {-0.012384f, +0.169012f, +0.004629f, +0.000016f, +0.000003f} - }, - { - {-0.514918f, -0.473428f, -0.087995f, -0.000860f, +0.000083f}, - {+0.090958f, +0.736090f, -0.010403f, +0.000616f, +0.000121f}, - {-0.768360f, +0.569571f, -0.085193f, +0.000271f, -0.000095f}, - {-0.205286f, +0.468697f, -0.034216f, -0.000126f, -0.000117f}, - {-0.024982f, +0.041935f, +0.006845f, -0.000024f, +0.000049f}, - {-0.232457f, +0.742372f, -0.038652f, -0.000352f, +0.000014f}, - {+0.004522f, -0.022618f, -0.002848f, +0.000146f, +0.000007f}, - {-0.082110f, +0.999819f, -0.024102f, -0.000126f, +0.000067f}, - {-0.004903f, +0.042022f, +0.006039f, -0.000260f, -0.000003f}, - {-0.150602f, +0.011535f, -0.025408f, -0.000192f, +0.000005f}, - {+0.101242f, -0.005388f, +0.004804f, -0.000253f, -0.000039f}, - {-0.331406f, +0.906789f, -0.045131f, +0.000102f, +0.000045f}, - {-0.008744f, -0.076724f, +0.003425f, -0.000233f, +0.000000f}, - {-0.231030f, +0.702736f, -0.034462f, -0.000025f, +0.000012f}, - {-0.015290f, +0.157067f, -0.000981f, -0.000080f, -0.000030f} - }, - { - {-0.064600f, -1.204603f, +0.013970f, +0.000498f, -0.000080f}, - {+0.037936f, +0.793387f, +0.004314f, +0.000485f, +0.000003f}, - {+0.595520f, -1.501640f, +0.073453f, -0.000796f, -0.000004f}, - {+0.278663f, -0.282968f, +0.046268f, -0.000521f, -0.000025f}, - {+0.027976f, -0.007913f, -0.009415f, -0.000065f, +0.000009f}, - {+0.409986f, -0.249242f, +0.062201f, -0.000134f, -0.000045f}, - {-0.004530f, -0.017687f, +0.002804f, +0.000122f, +0.000005f}, - {+0.488486f, +0.105010f, +0.077657f, +0.000063f, -0.000011f}, - {+0.004262f, +0.042796f, -0.004138f, -0.000154f, -0.000006f}, - {+0.059362f, -0.318787f, +0.016238f, +0.000296f, -0.000053f}, - {-0.077961f, +0.260388f, -0.008472f, -0.000205f, +0.000001f}, - {+0.502012f, -0.371002f, +0.065309f, +0.000097f, -0.000025f}, - {+0.003914f, -0.085047f, -0.003947f, -0.000097f, +0.000002f}, - {+0.370084f, -0.223772f, +0.048680f, -0.000002f, -0.000014f}, - {+0.031462f, +0.090310f, -0.000921f, +0.000011f, -0.000002f} - }, - { - {+0.827722f, +0.144595f, +0.104500f, +0.001071f, -0.000077f}, - {-0.149636f, +0.538052f, +0.006084f, -0.000611f, -0.000118f}, - {+0.467195f, -1.692609f, +0.058903f, +0.000104f, +0.000089f}, - {+0.205441f, -0.402400f, +0.029844f, +0.000329f, +0.000110f}, - {-0.025636f, -0.055618f, +0.011600f, +0.000028f, -0.000048f}, - {+0.191709f, -0.584087f, +0.033433f, +0.000494f, -0.000015f}, - {+0.004098f, -0.011944f, -0.002929f, -0.000161f, -0.000006f}, - {+0.007387f, -0.645944f, +0.005672f, +0.000317f, -0.000066f}, - {-0.002619f, +0.040624f, +0.003157f, +0.000276f, +0.000002f}, - {+0.247232f, -0.035269f, +0.031769f, +0.000397f, -0.000002f}, - {-0.020149f, +0.355606f, +0.004860f, +0.000282f, +0.000036f}, - {+0.097784f, -0.984307f, +0.019871f, +0.000081f, -0.000042f}, - {+0.001071f, -0.081553f, +0.003085f, +0.000224f, -0.000001f}, - {+0.058999f, -0.697197f, +0.013908f, +0.000158f, -0.000011f}, - {-0.031261f, +0.005952f, +0.001021f, +0.000072f, +0.000028f} - }, - { - {-0.385403f, +2.025003f, -0.067170f, -0.000984f, +0.000091f}, - {+0.191950f, +0.087119f, -0.014576f, -0.000500f, +0.000005f}, - {-0.901808f, +0.409162f, -0.113518f, +0.000622f, -0.000001f}, - {-0.340540f, +0.449344f, -0.057337f, +0.000418f, +0.000024f}, - {+0.018604f, -0.087716f, -0.010677f, +0.000076f, -0.000007f}, - {-0.428687f, +0.393778f, -0.074774f, -0.000048f, +0.000047f}, - {-0.003480f, -0.009550f, +0.002629f, -0.000103f, -0.000006f}, - {-0.427440f, +0.038949f, -0.073317f, -0.000052f, +0.000018f}, - {+0.000921f, +0.042725f, -0.001194f, +0.000126f, +0.000006f}, - {-0.163420f, +0.598589f, -0.028490f, -0.000385f, +0.000063f}, - {+0.118426f, +0.167571f, +0.002305f, +0.000179f, -0.000000f}, - {-0.474783f, -0.093712f, -0.068247f, -0.000172f, +0.000028f}, - {-0.005293f, -0.066220f, -0.000854f, +0.000098f, -0.000003f}, - {-0.330717f, -0.088966f, -0.048155f, -0.000042f, +0.000016f}, - {+0.017599f, -0.057663f, -0.001087f, -0.000028f, +0.000002f} - }, - { - {-0.820967f, +1.396060f, -0.082591f, -0.001080f, +0.000073f}, - {-0.150777f, -0.352435f, +0.014939f, +0.000525f, +0.000117f}, - {+0.085997f, +1.932699f, +0.012400f, -0.000333f, -0.000084f}, - {-0.167433f, +0.744157f, -0.009296f, -0.000465f, -0.000105f}, - {-0.009271f, -0.099001f, +0.007488f, -0.000034f, +0.000049f}, - {-0.168349f, +0.830150f, -0.008407f, -0.000668f, +0.000020f}, - {+0.003289f, -0.009763f, -0.003111f, +0.000178f, +0.000006f}, - {+0.019397f, +0.761830f, +0.016865f, -0.000546f, +0.000066f}, - {-0.000000f, +0.045818f, +0.000068f, -0.000275f, -0.000002f}, - {-0.278983f, +0.428651f, -0.030784f, -0.000466f, -0.000003f}, - {-0.137355f, -0.195198f, -0.005364f, -0.000280f, -0.000033f}, - {+0.072264f, +0.751091f, +0.007010f, -0.000263f, +0.000040f}, - {+0.007779f, -0.044555f, -0.000090f, -0.000218f, +0.000002f}, - {+0.046426f, +0.493923f, +0.003695f, -0.000284f, +0.000010f}, - {+0.001751f, -0.077278f, +0.001048f, -0.000070f, -0.000027f} - }, - { - {+0.973999f, -1.326967f, +0.113765f, +0.001528f, -0.000109f}, - {+0.054928f, -0.599328f, -0.011137f, +0.000543f, -0.000015f}, - {+0.802011f, +0.850769f, +0.092957f, -0.000268f, +0.000004f}, - {+0.480304f, -0.226458f, +0.056755f, -0.000175f, -0.000025f}, - {+0.000070f, -0.093592f, -0.004683f, -0.000080f, +0.000005f}, - {+0.586783f, -0.312533f, +0.076617f, +0.000454f, -0.000057f}, - {-0.003370f, -0.008879f, +0.003376f, +0.000086f, +0.000007f}, - {+0.502607f, +0.042700f, +0.063103f, +0.000302f, -0.000026f}, - {-0.000529f, +0.044011f, +0.001089f, -0.000099f, -0.000007f}, - {+0.341832f, -0.520706f, +0.046329f, +0.000527f, -0.000073f}, - {+0.055993f, -0.478277f, +0.004329f, -0.000157f, -0.000001f}, - {+0.391916f, +0.250262f, +0.060370f, +0.000436f, -0.000035f}, - {-0.008726f, -0.022784f, +0.000128f, -0.000090f, +0.000003f}, - {+0.271217f, +0.138661f, +0.043494f, +0.000221f, -0.000019f}, - {-0.018050f, -0.050444f, +0.000411f, +0.000043f, -0.000002f} - }, - { - {+0.276224f, -2.380785f, +0.034378f, +0.000866f, -0.000064f}, - {+0.044873f, -0.585962f, +0.006926f, -0.000401f, -0.000114f}, - {-0.574027f, -1.239612f, -0.059121f, +0.000267f, +0.000080f}, - {-0.051565f, -1.034040f, -0.006426f, +0.000409f, +0.000100f}, - {+0.007798f, -0.076508f, +0.001694f, +0.000056f, -0.000050f}, - {-0.075554f, -1.342643f, -0.020635f, +0.000711f, -0.000022f}, - {+0.003128f, -0.005933f, -0.002193f, -0.000201f, -0.000006f}, - {-0.238736f, -1.105056f, -0.040104f, +0.000589f, -0.000067f}, - {+0.001410f, +0.036177f, -0.004574f, +0.000285f, +0.000001f}, - {+0.166940f, -0.787265f, +0.018834f, +0.000377f, +0.000010f}, - {+0.071149f, -0.471140f, -0.003694f, +0.000274f, +0.000030f}, - {-0.174730f, -0.637003f, -0.029684f, +0.000268f, -0.000036f}, - {+0.008828f, -0.002646f, -0.001328f, +0.000217f, -0.000003f}, - {-0.100930f, -0.449452f, -0.020006f, +0.000267f, -0.000009f}, - {+0.024692f, +0.006183f, -0.002075f, +0.000066f, +0.000027f} - }, - { - {-1.151547f, -0.177019f, -0.147650f, -0.001592f, +0.000133f}, - {-0.105333f, -0.370152f, -0.000654f, -0.000526f, +0.000028f}, - {-0.320006f, -1.612536f, -0.049464f, +0.000016f, -0.000007f}, - {-0.464082f, -0.398816f, -0.059983f, +0.000056f, +0.000030f}, - {-0.013351f, -0.049795f, +0.002652f, +0.000078f, -0.000002f}, - {-0.597404f, -0.567240f, -0.065924f, -0.000645f, +0.000074f}, - {-0.002706f, -0.003059f, +0.001010f, -0.000072f, -0.000009f}, - {-0.415527f, -0.863967f, -0.040017f, -0.000487f, +0.000038f}, - {-0.002412f, +0.025484f, +0.007743f, +0.000094f, +0.000009f}, - {-0.472799f, +0.203811f, -0.066731f, -0.000530f, +0.000086f}, - {-0.155531f, -0.165362f, +0.003964f, +0.000115f, +0.000002f}, - {-0.322387f, -0.417885f, -0.044341f, -0.000578f, +0.000043f}, - {-0.007973f, +0.016214f, +0.002714f, +0.000076f, -0.000003f}, - {-0.247379f, -0.232595f, -0.032902f, -0.000318f, +0.000022f}, - {-0.019699f, +0.064382f, +0.001702f, -0.000054f, +0.000002f} - }, - { - {+0.400658f, +2.216876f, +0.055668f, -0.000786f, +0.000043f}, - {+0.109194f, -0.083429f, -0.007573f, +0.000253f, +0.000107f}, - {+0.639706f, -0.140902f, +0.072396f, -0.000014f, -0.000077f}, - {+0.284163f, +0.751145f, +0.036029f, -0.000355f, -0.000100f}, - {+0.015129f, -0.017585f, -0.004936f, -0.000112f, +0.000052f}, - {+0.410114f, +0.956869f, +0.044194f, -0.000792f, +0.000016f}, - {+0.002697f, -0.000614f, -0.001413f, +0.000236f, +0.000007f}, - {+0.477635f, +0.474194f, +0.047166f, -0.000567f, +0.000064f}, - {+0.002771f, +0.014429f, -0.007336f, -0.000334f, -0.000001f}, - {+0.049727f, +1.021215f, +0.015862f, -0.000365f, -0.000022f}, - {+0.141060f, +0.239229f, -0.003525f, -0.000303f, -0.000027f}, - {+0.290338f, +0.530583f, +0.044252f, -0.000186f, +0.000029f}, - {+0.005773f, +0.031476f, -0.001860f, -0.000232f, +0.000005f}, - {+0.196262f, +0.454853f, +0.031214f, -0.000182f, +0.000005f}, - {+0.006527f, +0.097970f, +0.000079f, -0.000058f, -0.000028f} - }, - { - {+0.868093f, +1.506363f, +0.106932f, +0.001127f, -0.000158f}, - {-0.067664f, +0.140222f, +0.011371f, +0.000441f, -0.000039f}, - {-0.138699f, +1.024949f, +0.006458f, -0.000057f, +0.000008f}, - {+0.283018f, +0.749840f, +0.039299f, -0.000170f, -0.000037f}, - {-0.012779f, +0.011725f, +0.003006f, -0.000081f, -0.000003f}, - {+0.316157f, +1.081824f, +0.047726f, +0.000449f, -0.000095f}, - {-0.002926f, +0.002650f, +0.002597f, +0.000070f, +0.000011f}, - {+0.076037f, +1.061627f, +0.021993f, +0.000408f, -0.000053f}, - {-0.002571f, +0.002805f, +0.005457f, -0.000106f, -0.000012f}, - {+0.502391f, +0.334226f, +0.062590f, +0.000351f, -0.000099f}, - {-0.042799f, +0.484671f, +0.002594f, -0.000076f, -0.000006f}, - {+0.197709f, +0.684398f, +0.023525f, +0.000465f, -0.000051f}, - {-0.002836f, +0.040016f, -0.000130f, -0.000063f, +0.000002f}, - {+0.171518f, +0.504587f, +0.018187f, +0.000242f, -0.000026f}, - {+0.008301f, +0.095457f, -0.001040f, +0.000064f, -0.000001f} - }, - { - {-0.898846f, -1.202312f, -0.111127f, +0.001054f, -0.000007f}, - {+0.010196f, +0.223325f, -0.008752f, -0.000136f, -0.000097f}, - {-0.343277f, +0.666136f, -0.062566f, -0.000124f, +0.000075f}, - {-0.388314f, -0.288336f, -0.051984f, +0.000529f, +0.000106f}, - {+0.007972f, +0.031942f, -0.000691f, +0.000217f, -0.000054f}, - {-0.507471f, -0.197123f, -0.067791f, +0.001087f, +0.000002f}, - {+0.002760f, +0.005282f, -0.002549f, -0.000290f, -0.000009f}, - {-0.402253f, +0.307883f, -0.055228f, +0.000714f, -0.000056f}, - {+0.002531f, -0.008752f, -0.005660f, +0.000405f, +0.000003f}, - {-0.355768f, -0.993327f, -0.054010f, +0.000596f, +0.000042f}, - {-0.070650f, +0.437311f, -0.001748f, +0.000403f, +0.000026f}, - {-0.384987f, -0.208099f, -0.051771f, +0.000179f, -0.000017f}, - {+0.000216f, +0.042554f, +0.000495f, +0.000270f, -0.000007f}, - {-0.294088f, -0.204484f, -0.037474f, +0.000164f, +0.000001f}, - {-0.019085f, +0.061907f, +0.001579f, +0.000039f, +0.000029f} - }, - { - {-0.228146f, -2.230393f, -0.030166f, -0.000587f, +0.000173f}, - {+0.033052f, +0.171093f, +0.003980f, -0.000320f, +0.000047f}, - {+0.238184f, -0.258410f, +0.031322f, +0.000240f, -0.000009f}, - {-0.060595f, -0.793993f, -0.008858f, +0.000376f, +0.000046f}, - {-0.002377f, +0.043131f, +0.000706f, +0.000112f, +0.000010f}, - {-0.019463f, -0.946515f, -0.006128f, -0.000060f, +0.000114f}, - {-0.002466f, +0.004796f, +0.002037f, -0.000078f, -0.000013f}, - {+0.132522f, -0.511850f, +0.009797f, -0.000155f, +0.000069f}, - {-0.002532f, -0.018222f, +0.007151f, +0.000156f, +0.000015f}, - {-0.304768f, -1.096493f, -0.025525f, -0.000145f, +0.000111f}, - {+0.131055f, +0.158121f, -0.000712f, +0.000078f, +0.000013f}, - {+0.021990f, -0.842357f, +0.005944f, -0.000249f, +0.000055f}, - {+0.002020f, +0.042106f, -0.000158f, +0.000068f, +0.000001f}, - {+0.008259f, -0.672729f, +0.003280f, -0.000105f, +0.000028f}, - {+0.022964f, +0.011433f, -0.003037f, -0.000076f, -0.000000f} - }, - { - {+0.943378f, -0.436639f, +0.116310f, -0.001367f, -0.000041f}, - {-0.046962f, +0.050077f, -0.001588f, +0.000089f, +0.000085f}, - {+0.115227f, -0.449376f, +0.023077f, +0.000072f, -0.000075f}, - {+0.372567f, -0.120225f, +0.052721f, -0.000876f, -0.000120f}, - {-0.003813f, +0.046155f, +0.001083f, -0.000386f, +0.000055f}, - {+0.431974f, -0.236971f, +0.064468f, -0.001509f, -0.000032f}, - {+0.002831f, +0.003049f, -0.003032f, +0.000347f, +0.000013f}, - {+0.218317f, -0.357086f, +0.041148f, -0.001062f, +0.000041f}, - {+0.001694f, -0.025754f, -0.005209f, -0.000509f, -0.000007f}, - {+0.587905f, +0.248972f, +0.065981f, -0.000907f, -0.000072f}, - {-0.114286f, -0.170813f, +0.005662f, -0.000568f, -0.000029f}, - {+0.348249f, -0.355643f, +0.039940f, -0.000232f, +0.000002f}, - {-0.004398f, +0.039085f, +0.001995f, -0.000345f, +0.000007f}, - {+0.269139f, -0.282868f, +0.029869f, -0.000211f, -0.000009f}, - {-0.019684f, -0.039612f, +0.003962f, +0.000005f, -0.000030f} - }, - { - {-0.455566f, +1.708875f, -0.054162f, +0.000452f, -0.000172f}, - {+0.035262f, -0.064121f, +0.000062f, +0.000231f, -0.000051f}, - {-0.192219f, +0.039136f, -0.030233f, -0.000391f, +0.000011f}, - {-0.151787f, +0.702282f, -0.027744f, -0.000493f, -0.000050f}, - {+0.009960f, +0.040659f, -0.007882f, -0.000214f, -0.000019f}, - {-0.200317f, +0.758329f, -0.036988f, -0.000194f, -0.000123f}, - {-0.003459f, +0.003635f, +0.004308f, +0.000084f, +0.000014f}, - {-0.162215f, +0.255755f, -0.032320f, -0.000076f, -0.000082f}, - {-0.000135f, -0.033298f, +0.000587f, -0.000205f, -0.000017f}, - {-0.163597f, +1.399723f, -0.024713f, +0.000130f, -0.000114f}, - {+0.045175f, -0.377794f, -0.007841f, -0.000148f, -0.000019f}, - {-0.257894f, +0.565628f, -0.027666f, +0.000174f, -0.000054f}, - {+0.006504f, +0.032761f, -0.005276f, -0.000103f, -0.000004f}, - {-0.196880f, +0.422739f, -0.020026f, +0.000069f, -0.000027f}, - {+0.011291f, -0.076665f, -0.001833f, +0.000107f, +0.000003f} - }, - { - {-0.444057f, +1.759202f, -0.044910f, +0.001154f, +0.000093f}, - {-0.012127f, -0.127298f, +0.000833f, -0.000130f, -0.000074f}, - {-0.000736f, +0.347729f, +0.000522f, +0.000086f, +0.000076f}, - {-0.239560f, +0.592487f, -0.021732f, +0.001117f, +0.000142f}, - {-0.013551f, +0.034533f, +0.015459f, +0.000651f, -0.000052f}, - {-0.268864f, +0.681606f, -0.026063f, +0.001734f, +0.000070f}, - {+0.003047f, +0.002921f, -0.004247f, -0.000377f, -0.000018f}, - {-0.120721f, +0.337691f, -0.012906f, +0.001430f, -0.000019f}, - {-0.000753f, -0.039259f, +0.000292f, +0.000617f, +0.000012f}, - {-0.399844f, +1.078267f, -0.029979f, +0.000861f, +0.000110f}, - {+0.028936f, -0.393495f, +0.000834f, +0.000759f, +0.000038f}, - {-0.100654f, +0.814206f, -0.010958f, +0.000157f, +0.000013f}, - {-0.007180f, +0.027581f, +0.007224f, +0.000461f, -0.000007f}, - {-0.071714f, +0.616249f, -0.009039f, +0.000190f, +0.000018f}, - {-0.001782f, -0.092803f, -0.001649f, -0.000099f, +0.000032f} - }, - { - {+0.728813f, +0.047272f, +0.045531f, -0.001250f, +0.000150f}, - {-0.008466f, -0.134677f, +0.000839f, -0.000257f, +0.000052f}, - {+0.134468f, +0.147689f, +0.015667f, +0.000389f, -0.000013f}, - {+0.321579f, -0.236917f, +0.029762f, +0.000320f, +0.000044f}, - {+0.013016f, +0.046042f, -0.019821f, +0.000430f, +0.000028f}, - {+0.381969f, -0.286254f, +0.040372f, -0.000025f, +0.000117f}, - {-0.001621f, -0.009205f, +0.006632f, -0.000044f, -0.000012f}, - {+0.213097f, -0.171134f, +0.032810f, +0.000096f, +0.000087f}, - {+0.000378f, -0.034238f, -0.001813f, +0.000202f, +0.000016f}, - {+0.504933f, -0.224919f, +0.022626f, -0.000611f, +0.000102f}, - {-0.070649f, -0.265425f, +0.011686f, +0.000225f, +0.000022f}, - {+0.281733f, +0.259419f, +0.016821f, -0.000441f, +0.000047f}, - {+0.006280f, +0.031928f, -0.008216f, +0.000194f, +0.000007f}, - {+0.204994f, +0.212232f, +0.013279f, -0.000247f, +0.000023f}, - {-0.004934f, -0.092931f, +0.003049f, -0.000200f, -0.000006f} - }, - { - {-0.353923f, -1.504513f, +0.026198f, +0.000545f, -0.000139f}, - {+0.018527f, -0.109078f, -0.005489f, +0.000329f, +0.000065f}, - {-0.084133f, -0.180735f, -0.004411f, -0.000172f, -0.000078f}, - {-0.104183f, -0.869931f, +0.000308f, -0.000867f, -0.000168f}, - {-0.010424f, +0.082861f, +0.023474f, -0.001146f, +0.000046f}, - {-0.127493f, -1.057421f, -0.005120f, -0.001301f, -0.000109f}, - {+0.000803f, -0.033408f, -0.011897f, +0.000322f, +0.000023f}, - {-0.062108f, -0.611802f, -0.014295f, -0.001580f, -0.000008f}, - {+0.000030f, -0.008195f, +0.013279f, -0.000688f, -0.000018f}, - {-0.204127f, -1.223298f, +0.023938f, +0.000236f, -0.000149f}, - {+0.071132f, -0.106572f, -0.019660f, -0.000889f, -0.000050f}, - {-0.178390f, -0.395869f, +0.009715f, +0.000384f, -0.000026f}, - {-0.005016f, +0.047389f, +0.010625f, -0.000684f, +0.000004f}, - {-0.128575f, -0.262828f, +0.007081f, +0.000112f, -0.000025f}, - {+0.007626f, -0.088100f, -0.003566f, +0.000334f, -0.000032f} - }, - { - {-0.075338f, -1.875564f, -0.028130f, +0.004946f, -0.000109f}, - {-0.017699f, -0.082875f, +0.011891f, +0.000578f, -0.000051f}, - {-0.014569f, -0.282345f, -0.006765f, -0.000076f, +0.000018f}, - {-0.098275f, -0.910450f, -0.000658f, +0.001363f, -0.000027f}, - {+0.008768f, +0.121239f, -0.024347f, -0.000668f, -0.000035f}, - {-0.119123f, -1.128831f, +0.005878f, +0.002349f, -0.000097f}, - {-0.001248f, -0.047660f, +0.005049f, -0.000271f, +0.000009f}, - {-0.091052f, -0.631081f, +0.008868f, +0.001055f, -0.000083f}, - {+0.000623f, +0.026673f, -0.017741f, +0.000098f, -0.000014f}, - {-0.085761f, -1.374119f, -0.016598f, +0.003245f, -0.000072f}, - {-0.047507f, -0.016577f, +0.027027f, +0.000146f, -0.000020f}, - {+0.006812f, -0.632429f, -0.018052f, +0.001598f, -0.000035f}, - {+0.004269f, +0.061685f, -0.010970f, -0.000271f, -0.000010f}, - {+0.004270f, -0.429230f, -0.015157f, +0.000963f, -0.000015f}, - {-0.007650f, -0.083453f, +0.006678f, +0.000424f, +0.000011f} - }, - { - {+0.203973f, -1.473074f, -0.075689f, -0.015004f, +0.000170f}, - {+0.011626f, -0.074867f, -0.018739f, -0.001759f, -0.000058f}, - {+0.044772f, -0.201047f, -0.007619f, -0.000789f, +0.000081f}, - {+0.130690f, -0.666998f, -0.072078f, -0.005629f, +0.000191f}, - {-0.007757f, +0.115969f, +0.000011f, +0.002169f, -0.000037f}, - {+0.162096f, -0.852420f, -0.101067f, -0.007596f, +0.000143f}, - {+0.001511f, -0.025585f, +0.020575f, +0.000815f, -0.000027f}, - {+0.110171f, -0.452560f, -0.069373f, -0.002637f, +0.000034f}, - {-0.001484f, +0.030725f, -0.011317f, -0.000203f, +0.000023f}, - {+0.156053f, -1.053067f, -0.069492f, -0.011059f, +0.000178f}, - {+0.023832f, -0.027507f, -0.053270f, -0.000794f, +0.000063f}, - {+0.062334f, -0.517524f, -0.008781f, -0.004770f, +0.000034f}, - {-0.003568f, +0.054558f, -0.002654f, +0.001067f, -0.000000f}, - {+0.044193f, -0.342467f, -0.002536f, -0.002717f, +0.000029f}, - {+0.006460f, -0.072498f, -0.005914f, -0.001329f, +0.000031f} - } -}; - -const float rightHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]= -{ - { - {+0.065097f, +0.755993f, -0.042308f, -0.016140f, -0.000353f}, - {+0.331798f, +0.500334f, +0.042057f, -0.000623f, -0.000260f}, - {+0.268829f, +0.563281f, -0.027980f, +0.012635f, +0.000264f}, - {+0.017153f, +0.659896f, +0.043215f, -0.004248f, -0.000129f}, - {+0.308263f, +0.392544f, +0.075435f, +0.008861f, +0.000454f}, - {-0.002799f, +0.683738f, +0.064228f, -0.001971f, -0.000057f}, - {+0.340040f, +0.406891f, +0.099327f, +0.003281f, -0.000099f}, - {-0.005600f, +0.687288f, +0.073367f, +0.002388f, +0.000003f}, - {+0.359042f, +0.428800f, +0.081790f, -0.007190f, -0.000119f}, - {+0.099474f, +0.796217f, -0.032809f, +0.002997f, +0.000211f}, - {+0.292356f, +0.555445f, +0.036102f, -0.000529f, +0.000197f}, - {+0.013605f, +0.738918f, +0.023012f, +0.000843f, -0.000001f}, - {+0.307282f, +0.477407f, +0.075166f, -0.004779f, -0.000155f}, - {+0.042794f, +0.706213f, -0.002995f, +0.001494f, +0.000098f}, - {+0.281091f, +0.465219f, +0.066896f, -0.000299f, -0.000035f} - }, - { - {-0.155972f, +0.435567f, +0.001696f, +0.019851f, +0.000455f}, - {-0.353458f, -0.509988f, -0.056420f, -0.009429f, +0.000346f}, - {-0.299702f, -0.296454f, -0.171587f, -0.015118f, -0.000334f}, - {-0.049007f, +0.499063f, -0.006955f, +0.004572f, +0.000162f}, - {-0.384303f, -0.695188f, -0.062512f, -0.004920f, -0.000588f}, - {+0.009096f, +0.553377f, -0.035706f, +0.002161f, +0.000077f}, - {-0.410084f, -0.744388f, -0.042671f, -0.008434f, +0.000144f}, - {+0.017509f, +0.502285f, -0.095304f, -0.005007f, -0.000002f}, - {-0.422846f, -0.754362f, -0.007868f, +0.009061f, +0.000145f}, - {-0.207618f, +0.197622f, -0.120143f, -0.001519f, -0.000281f}, - {-0.305138f, -0.315719f, -0.007297f, +0.004583f, -0.000275f}, - {-0.036080f, +0.561553f, -0.077514f, -0.000495f, +0.000002f}, - {-0.364761f, -0.491207f, +0.031861f, +0.003380f, +0.000205f}, - {-0.110284f, +0.421449f, -0.065919f, +0.000908f, -0.000125f}, - {-0.350716f, -0.469227f, -0.004416f, -0.001014f, +0.000046f} - }, - { - {+0.148398f, -0.113536f, +0.104268f, +0.006075f, +0.000209f}, - {-0.323485f, -0.469909f, -0.145194f, +0.023185f, +0.000138f}, - {-0.242438f, -0.242764f, -0.307269f, -0.009509f, -0.000170f}, - {+0.072808f, +0.267881f, +0.028250f, +0.003545f, +0.000085f}, - {-0.215862f, -0.934866f, -0.055111f, -0.015314f, -0.000266f}, - {-0.016120f, +0.376941f, +0.115286f, +0.001385f, +0.000029f}, - {-0.250359f, -0.928708f, -0.097139f, +0.005263f, +0.000033f}, - {-0.028977f, +0.238147f, +0.130431f, +0.004028f, -0.000005f}, - {-0.277575f, -0.914671f, -0.028803f, +0.004826f, +0.000085f}, - {+0.128859f, -0.535717f, +0.113963f, -0.002797f, -0.000111f}, - {-0.313614f, -0.321544f, +0.015716f, -0.005124f, -0.000079f}, - {+0.050277f, +0.414961f, -0.069970f, -0.002463f, +0.000000f}, - {-0.248008f, -0.585440f, -0.019103f, +0.008130f, +0.000084f}, - {+0.132428f, +0.044930f, -0.036543f, -0.007329f, -0.000060f}, - {-0.194842f, -0.628903f, -0.049513f, +0.003377f, +0.000018f} - }, - { - {-0.039647f, -0.639517f, -0.130290f, -0.009887f, -0.000496f}, - {+0.383274f, +0.793256f, +0.075436f, -0.013955f, -0.000379f}, - {+0.330408f, +0.714152f, -0.130886f, +0.021668f, +0.000367f}, - {-0.083197f, +0.001747f, -0.017367f, -0.005258f, -0.000178f}, - {+0.464728f, +0.102297f, +0.053807f, +0.010396f, +0.000640f}, - {+0.021609f, +0.233041f, -0.037014f, -0.002411f, -0.000083f}, - {+0.461299f, +0.192640f, +0.026229f, +0.006396f, -0.000154f}, - {+0.035294f, +0.008603f, -0.100657f, -0.002303f, +0.000002f}, - {+0.456328f, +0.291948f, +0.120073f, -0.012388f, -0.000162f}, - {+0.061165f, -0.619283f, +0.120603f, -0.004430f, +0.000304f}, - {+0.395862f, +0.602011f, -0.015020f, -0.003248f, +0.000289f}, - {-0.060920f, +0.315700f, -0.014158f, +0.003953f, -0.000002f}, - {+0.438346f, +0.519275f, +0.088976f, -0.009090f, -0.000223f}, - {-0.102961f, -0.285909f, -0.017675f, +0.006341f, +0.000137f}, - {+0.405649f, +0.361696f, +0.077054f, -0.002517f, -0.000051f} - }, - { - {-0.103544f, -0.672790f, -0.058481f, -0.009739f, -0.000056f}, - {+0.380999f, +0.888812f, +0.016047f, -0.004923f, -0.000008f}, - {+0.258235f, +0.863786f, -0.100813f, -0.011244f, +0.000068f}, - {+0.078534f, -0.201752f, -0.033568f, +0.000310f, -0.000037f}, - {+0.019551f, +0.781090f, +0.010851f, +0.006905f, +0.000066f}, - {-0.023252f, +0.186630f, +0.029405f, +0.001392f, +0.000002f}, - {+0.115177f, +0.728991f, +0.003059f, -0.010749f, +0.000036f}, - {-0.033291f, -0.182857f, +0.100533f, +0.002041f, +0.000007f}, - {+0.205096f, +0.734110f, +0.017299f, +0.005567f, -0.000046f}, - {-0.192377f, -0.113959f, -0.034054f, +0.010827f, +0.000006f}, - {+0.269261f, +0.640318f, +0.057505f, +0.004206f, -0.000042f}, - {+0.070707f, +0.204232f, -0.045556f, -0.001847f, +0.000001f}, - {+0.140055f, +1.004074f, +0.009885f, +0.000675f, -0.000009f}, - {+0.036780f, -0.464778f, -0.011711f, +0.000291f, +0.000019f}, - {+0.081001f, +0.887772f, +0.009312f, -0.000279f, -0.000000f} - }, - { - {+0.184187f, -0.212362f, +0.027765f, +0.012735f, +0.000474f}, - {-0.586697f, -0.437179f, +0.015096f, +0.006145f, +0.000356f}, - {-0.472411f, -0.144599f, -0.068968f, +0.002017f, -0.000362f}, - {-0.061936f, -0.266099f, +0.068035f, +0.000129f, +0.000177f}, - {-0.365063f, +0.172041f, -0.065739f, -0.002884f, -0.000609f}, - {+0.021286f, +0.180378f, -0.022901f, -0.001701f, +0.000075f}, - {-0.405004f, -0.069937f, -0.057400f, +0.002695f, +0.000130f}, - {+0.025202f, -0.335796f, -0.076528f, -0.001726f, -0.000004f}, - {-0.478583f, -0.301757f, -0.092010f, +0.001413f, +0.000167f}, - {+0.154976f, +0.395476f, -0.044824f, -0.003029f, -0.000279f}, - {-0.470949f, -0.570889f, -0.098235f, +0.004844f, -0.000242f}, - {-0.074843f, +0.078065f, +0.015553f, -0.000685f, +0.000001f}, - {-0.483040f, +0.055164f, -0.071462f, +0.001762f, +0.000209f}, - {+0.038335f, -0.431382f, +0.011494f, -0.002348f, -0.000133f}, - {-0.431734f, +0.088265f, -0.072329f, +0.001071f, +0.000047f} - }, - { - {-0.146929f, +0.356773f, -0.016581f, +0.002055f, -0.000075f}, - {-0.214101f, -0.825087f, -0.066185f, +0.000965f, -0.000103f}, - {-0.135459f, -0.651791f, -0.013581f, -0.000703f, +0.000025f}, - {+0.038384f, -0.268419f, -0.031251f, +0.002959f, -0.000008f}, - {+0.038847f, -0.495569f, +0.025924f, -0.006854f, +0.000105f}, - {-0.018154f, +0.169210f, +0.024504f, +0.001571f, -0.000026f}, - {-0.079337f, -0.571205f, -0.006246f, +0.002621f, -0.000089f}, - {-0.015818f, -0.422015f, +0.021653f, -0.000024f, -0.000008f}, - {-0.136812f, -0.797142f, -0.065244f, -0.001101f, +0.000008f}, - {+0.012901f, +0.539621f, +0.002585f, -0.004212f, +0.000080f}, - {-0.217890f, -0.933082f, -0.059297f, -0.003993f, +0.000128f}, - {+0.068586f, -0.064970f, -0.028107f, +0.000485f, -0.000001f}, - {+0.031699f, -0.731627f, -0.000062f, +0.000473f, -0.000054f}, - {-0.092772f, -0.245311f, +0.002243f, +0.000286f, +0.000016f}, - {+0.082460f, -0.712005f, +0.004234f, -0.000440f, -0.000015f} - }, - { - {+0.018314f, +0.680755f, +0.032297f, -0.008490f, -0.000404f}, - {+0.611398f, +0.574488f, +0.132577f, +0.000536f, -0.000291f}, - {+0.551444f, +0.367923f, +0.049629f, -0.001834f, +0.000325f}, - {-0.012260f, -0.250758f, +0.023488f, -0.002058f, -0.000162f}, - {+0.277871f, -0.172746f, +0.040523f, +0.001132f, +0.000515f}, - {+0.015823f, +0.153476f, -0.022578f, -0.000055f, -0.000058f}, - {+0.376639f, +0.138309f, +0.069777f, +0.000055f, -0.000084f}, - {+0.007347f, -0.417292f, +0.006805f, +0.001245f, +0.000007f}, - {+0.477350f, +0.181888f, +0.060356f, -0.000003f, -0.000162f}, - {-0.167122f, +0.285438f, +0.017341f, +0.000307f, +0.000221f}, - {+0.573429f, +0.375283f, +0.120296f, -0.004646f, +0.000154f}, - {-0.054353f, -0.159170f, +0.029544f, +0.000892f, -0.000001f}, - {+0.377311f, -0.195661f, +0.058278f, +0.000257f, -0.000171f}, - {+0.106092f, +0.006237f, -0.017713f, -0.000001f, +0.000116f}, - {+0.331013f, -0.331514f, +0.046435f, +0.000351f, -0.000038f} - }, - { - {+0.118777f, +0.611157f, -0.050030f, +0.004000f, +0.000163f}, - {+0.170984f, +1.384757f, -0.039040f, -0.003010f, +0.000176f}, - {-0.052818f, +1.228959f, +0.011251f, +0.003260f, -0.000096f}, - {-0.012139f, -0.228439f, +0.001096f, -0.000637f, +0.000043f}, - {-0.019562f, +0.268846f, +0.002354f, +0.004033f, -0.000219f}, - {-0.014320f, +0.138566f, +0.015571f, -0.000211f, +0.000040f}, - {+0.090017f, +0.579117f, +0.021719f, -0.000837f, +0.000114f}, - {+0.000904f, -0.338203f, -0.037342f, -0.000311f, +0.000008f}, - {+0.130034f, +0.743858f, -0.008222f, -0.000663f, +0.000027f}, - {+0.179739f, -0.173374f, -0.001534f, +0.002899f, -0.000131f}, - {+0.115928f, +1.162104f, -0.019791f, +0.003082f, -0.000161f}, - {+0.037526f, -0.203676f, -0.025646f, -0.000674f, +0.000002f}, - {-0.060744f, +0.482829f, -0.012712f, -0.001111f, +0.000094f}, - {-0.075410f, +0.218852f, +0.013990f, +0.000730f, -0.000042f}, - {-0.143971f, +0.383732f, -0.006910f, -0.000214f, +0.000024f} - }, - { - {-0.184514f, +0.232965f, -0.017518f, +0.000152f, +0.000312f}, - {-0.807490f, -0.026691f, -0.098734f, +0.000219f, +0.000207f}, - {-0.515784f, +0.462974f, -0.088801f, -0.000046f, -0.000270f}, - {+0.029973f, -0.203154f, -0.022236f, +0.000420f, +0.000136f}, - {-0.254902f, -0.110250f, -0.053712f, +0.000918f, -0.000391f}, - {+0.012955f, +0.126129f, -0.020807f, -0.000502f, +0.000036f}, - {-0.418541f, -0.227202f, -0.074914f, -0.001208f, +0.000031f}, - {-0.008802f, -0.217584f, +0.058477f, -0.000886f, -0.000010f}, - {-0.572387f, -0.290118f, -0.071671f, -0.000020f, +0.000146f}, - {-0.042507f, -0.481981f, -0.015185f, +0.000016f, -0.000151f}, - {-0.695626f, -0.022757f, -0.084193f, +0.002681f, -0.000062f}, - {-0.019680f, -0.222079f, +0.017585f, -0.000416f, -0.000000f}, - {-0.317770f, +0.077733f, -0.061976f, -0.000151f, +0.000123f}, - {+0.016830f, +0.312605f, -0.010472f, -0.000204f, -0.000092f}, - {-0.217143f, +0.238281f, -0.049335f, -0.000227f, +0.000026f} - }, - { - {+0.146529f, -0.243723f, +0.016669f, -0.001428f, -0.000203f}, - {+0.154237f, -1.440153f, -0.007422f, +0.000459f, -0.000205f}, - {+0.206031f, -0.717998f, +0.067591f, -0.001193f, +0.000139f}, - {-0.037526f, -0.156993f, +0.015703f, +0.000451f, -0.000066f}, - {-0.018748f, -0.492688f, +0.002827f, -0.002315f, +0.000269f}, - {-0.011713f, +0.116894f, +0.013063f, +0.000119f, -0.000042f}, - {-0.076621f, -0.780750f, -0.001540f, +0.000308f, -0.000111f}, - {+0.014151f, -0.108817f, -0.045635f, +0.000506f, -0.000006f}, - {-0.039488f, -1.081391f, -0.009791f, +0.000804f, -0.000055f}, - {-0.126416f, -0.368535f, -0.013805f, -0.001337f, +0.000144f}, - {+0.124238f, -1.252180f, +0.016770f, -0.000493f, +0.000142f}, - {+0.000166f, -0.219151f, -0.008353f, +0.000282f, -0.000001f}, - {+0.031025f, -0.478719f, +0.013134f, +0.000211f, -0.000110f}, - {+0.042047f, +0.246034f, +0.010276f, -0.000124f, +0.000055f}, - {+0.092682f, -0.271438f, +0.022299f, +0.000036f, -0.000027f} - }, - { - {-0.032423f, -0.508411f, +0.010417f, +0.000540f, -0.000224f}, - {+0.717306f, -0.527984f, +0.109622f, +0.001464f, -0.000127f}, - {+0.415779f, -0.456457f, +0.054009f, -0.001183f, +0.000210f}, - {+0.034110f, -0.082630f, -0.002051f, +0.000151f, -0.000108f}, - {+0.323289f, +0.032788f, +0.054080f, -0.001475f, +0.000272f}, - {+0.010730f, +0.122479f, -0.003677f, +0.000287f, -0.000017f}, - {+0.525226f, +0.122988f, +0.067403f, +0.001113f, +0.000012f}, - {-0.015643f, -0.027790f, +0.041837f, +0.000236f, +0.000012f}, - {+0.675564f, +0.033502f, +0.097895f, +0.000381f, -0.000124f}, - {+0.181211f, +0.085734f, +0.016481f, -0.000081f, +0.000088f}, - {+0.654469f, -0.420272f, +0.101476f, -0.002012f, -0.000006f}, - {+0.018856f, -0.189020f, -0.004446f, +0.000550f, +0.000001f}, - {+0.363263f, +0.017311f, +0.051906f, +0.000569f, -0.000078f}, - {-0.074928f, +0.058140f, -0.007738f, -0.000250f, +0.000068f}, - {+0.225816f, -0.087066f, +0.029119f, +0.000432f, -0.000016f} - }, - { - {-0.086782f, -0.430290f, -0.006001f, +0.001071f, +0.000205f}, - {-0.362061f, +1.135109f, -0.040501f, -0.000664f, +0.000201f}, - {-0.302951f, +0.619319f, -0.033166f, +0.001127f, -0.000157f}, - {-0.021980f, -0.003541f, -0.004845f, -0.000274f, +0.000076f}, - {-0.037250f, +0.616935f, -0.022944f, +0.001028f, -0.000268f}, - {-0.009472f, +0.129217f, +0.010016f, +0.000286f, +0.000036f}, - {-0.056679f, +1.012051f, -0.011665f, -0.000109f, +0.000089f}, - {+0.014795f, +0.031579f, -0.030556f, -0.000016f, +0.000003f}, - {-0.163814f, +1.340003f, -0.033016f, -0.000957f, +0.000075f}, - {-0.074949f, +0.473861f, -0.003401f, +0.000369f, -0.000131f}, - {-0.307638f, +1.069995f, -0.048840f, -0.000531f, -0.000092f}, - {-0.033464f, -0.135518f, +0.013606f, -0.000372f, +0.000000f}, - {-0.079753f, +0.685928f, -0.009577f, -0.000077f, +0.000106f}, - {+0.068420f, -0.159620f, +0.007095f, +0.000110f, -0.000058f}, - {-0.099452f, +0.406945f, -0.015669f, -0.000283f, +0.000026f} - }, - { - {+0.138906f, -0.104979f, -0.002563f, -0.000358f, +0.000157f}, - {-0.557376f, +0.814078f, -0.086410f, -0.000931f, +0.000066f}, - {-0.280492f, +0.639239f, -0.047732f, +0.001095f, -0.000156f}, - {+0.005260f, +0.043405f, +0.000609f, -0.000311f, +0.000081f}, - {-0.371195f, +0.156517f, -0.031145f, +0.001354f, -0.000181f}, - {+0.007629f, +0.121467f, -0.014824f, -0.000379f, +0.000005f}, - {-0.561542f, +0.249151f, -0.070323f, -0.000414f, -0.000036f}, - {-0.013733f, +0.062362f, +0.017595f, -0.000262f, -0.000012f}, - {-0.678654f, +0.566827f, -0.087903f, -0.000251f, +0.000099f}, - {-0.098300f, +0.453623f, +0.000019f, -0.000161f, -0.000046f}, - {-0.568064f, +0.667487f, -0.086425f, +0.001295f, +0.000036f}, - {+0.042361f, -0.071284f, -0.017036f, -0.000408f, -0.000002f}, - {-0.402190f, +0.172791f, -0.066290f, -0.000281f, +0.000045f}, - {-0.027311f, -0.301640f, +0.000667f, +0.000173f, -0.000049f}, - {-0.257104f, +0.165575f, -0.034835f, -0.000136f, +0.000009f} - }, - { - {-0.098992f, +0.234471f, +0.000967f, -0.001112f, -0.000187f}, - {+0.476921f, -0.802345f, +0.077189f, +0.000344f, -0.000179f}, - {+0.323707f, -0.292306f, +0.044893f, -0.000717f, +0.000157f}, - {+0.010870f, +0.036847f, +0.001479f, +0.000007f, -0.000078f}, - {+0.179294f, -0.643565f, +0.012366f, -0.000379f, +0.000239f}, - {-0.006232f, +0.105431f, +0.010918f, -0.000223f, -0.000026f}, - {+0.249036f, -0.981186f, +0.030586f, -0.000163f, -0.000062f}, - {+0.012514f, +0.068559f, -0.014306f, -0.000207f, -0.000000f}, - {+0.416847f, -1.110949f, +0.058552f, +0.000570f, -0.000085f}, - {+0.188152f, +0.044185f, +0.004896f, +0.000176f, +0.000105f}, - {+0.467287f, -0.932191f, +0.070050f, +0.000351f, +0.000038f}, - {-0.046644f, -0.000064f, +0.016904f, +0.000318f, +0.000001f}, - {+0.179916f, -0.746327f, +0.038444f, -0.000179f, -0.000093f}, - {-0.028475f, -0.305656f, +0.002048f, +0.000046f, +0.000055f}, - {+0.178760f, -0.505255f, +0.027471f, +0.000200f, -0.000023f} - }, - { - {+0.005481f, +0.368975f, -0.002721f, +0.000254f, -0.000115f}, - {+0.384211f, -0.978413f, +0.043445f, +0.000530f, -0.000029f}, - {+0.154591f, -0.550579f, +0.029567f, -0.001141f, +0.000115f}, - {-0.021434f, -0.017235f, -0.003173f, +0.000460f, -0.000060f}, - {+0.266428f, -0.493827f, +0.040804f, -0.001001f, +0.000125f}, - {+0.006496f, +0.103409f, -0.001694f, +0.000280f, +0.000000f}, - {+0.451732f, -0.667864f, +0.062771f, +0.000016f, +0.000041f}, - {-0.010071f, +0.065620f, +0.009733f, +0.000546f, +0.000011f}, - {+0.506838f, -0.990193f, +0.061492f, +0.000371f, -0.000076f}, - {-0.121392f, -0.400529f, -0.003585f, +0.000276f, +0.000026f}, - {+0.435632f, -0.982401f, +0.064723f, -0.000420f, -0.000031f}, - {+0.046420f, +0.075076f, -0.022164f, +0.000390f, +0.000001f}, - {+0.407029f, -0.424143f, +0.048193f, +0.000134f, -0.000026f}, - {+0.073686f, -0.182458f, -0.012175f, -0.000094f, +0.000035f}, - {+0.224681f, -0.441124f, +0.027691f, +0.000016f, -0.000005f} - }, - { - {+0.072256f, +0.247522f, +0.011047f, +0.000898f, +0.000166f}, - {-0.537444f, +0.391511f, -0.053573f, -0.000309f, +0.000155f}, - {-0.268495f, +0.099855f, -0.038956f, +0.000890f, -0.000148f}, - {+0.023536f, -0.095547f, +0.007158f, +0.000060f, +0.000074f}, - {-0.195179f, +0.204502f, -0.019530f, +0.000276f, -0.000203f}, - {-0.007874f, +0.129654f, -0.005374f, +0.000048f, +0.000017f}, - {-0.345472f, +0.542489f, -0.039670f, +0.000199f, +0.000041f}, - {+0.006721f, +0.070928f, -0.007401f, -0.000049f, -0.000002f}, - {-0.560568f, +0.609885f, -0.057263f, -0.000322f, +0.000088f}, - {-0.039227f, -0.513525f, -0.001068f, -0.000231f, -0.000082f}, - {-0.610684f, +0.636416f, -0.091664f, +0.000136f, +0.000001f}, - {-0.040836f, +0.145282f, +0.019055f, -0.000387f, -0.000002f}, - {-0.333249f, +0.693829f, -0.042608f, +0.000238f, +0.000079f}, - {-0.089206f, +0.013435f, +0.012733f, -0.000199f, -0.000050f}, - {-0.263338f, +0.298008f, -0.031541f, -0.000114f, +0.000020f} - }, - { - {-0.085209f, +0.001303f, -0.012125f, -0.000292f, +0.000093f}, - {-0.160066f, +0.918225f, -0.045394f, -0.000293f, +0.000011f}, - {-0.102157f, +0.356092f, -0.019747f, +0.000505f, -0.000086f}, - {-0.017226f, -0.166626f, -0.005117f, -0.000479f, +0.000045f}, - {-0.174693f, +0.217382f, -0.037036f, +0.000630f, -0.000096f}, - {+0.008665f, +0.171697f, +0.007680f, -0.000098f, -0.000000f}, - {-0.288147f, +0.609002f, -0.054190f, -0.000017f, -0.000036f}, - {-0.003968f, +0.096005f, +0.018153f, -0.000493f, -0.000010f}, - {-0.229723f, +1.072643f, -0.054307f, -0.000488f, +0.000056f}, - {+0.157771f, -0.227591f, +0.005941f, -0.000300f, -0.000020f}, - {-0.212710f, +1.267628f, -0.026077f, -0.000164f, +0.000007f}, - {+0.030782f, +0.196705f, -0.014807f, -0.000278f, -0.000001f}, - {-0.296558f, +0.745264f, -0.041636f, -0.000185f, +0.000018f}, - {+0.069593f, +0.208136f, -0.005292f, +0.000148f, -0.000027f}, - {-0.103485f, +0.531731f, -0.020590f, -0.000071f, +0.000003f} - }, - { - {+0.033117f, -0.182372f, +0.007361f, -0.000407f, -0.000152f}, - {+0.426995f, -0.026160f, +0.075584f, +0.000384f, -0.000138f}, - {+0.205232f, -0.119429f, +0.035586f, -0.000437f, +0.000136f}, - {+0.004684f, -0.206673f, +0.001813f, -0.000058f, -0.000068f}, - {+0.090872f, -0.196225f, +0.015881f, -0.000291f, +0.000176f}, - {-0.008516f, +0.193605f, +0.007387f, +0.000064f, -0.000011f}, - {+0.266047f, -0.253711f, +0.042204f, +0.000078f, -0.000031f}, - {+0.002194f, +0.127519f, -0.015841f, +0.000173f, +0.000003f}, - {+0.445166f, +0.009848f, +0.068320f, +0.000242f, -0.000086f}, - {-0.143733f, +0.204102f, -0.007498f, +0.000099f, +0.000068f}, - {+0.653853f, -0.044366f, +0.083241f, -0.000449f, -0.000016f}, - {-0.018863f, +0.213641f, +0.019293f, +0.000408f, +0.000002f}, - {+0.420542f, -0.349056f, +0.054233f, -0.000061f, -0.000070f}, - {-0.024286f, +0.323130f, +0.003874f, +0.000198f, +0.000045f}, - {+0.232709f, +0.005344f, +0.036305f, +0.000167f, -0.000019f} - }, - { - {+0.042197f, -0.181663f, +0.000704f, +0.000165f, -0.000080f}, - {+0.089909f, -0.571072f, +0.008880f, +0.000372f, -0.000000f}, - {+0.122444f, -0.252602f, +0.019305f, -0.000516f, +0.000067f}, - {+0.010922f, -0.213934f, -0.007537f, +0.000454f, -0.000035f}, - {+0.260724f, +0.080462f, +0.049056f, -0.000542f, +0.000082f}, - {+0.008776f, +0.169245f, -0.028486f, -0.000010f, -0.000002f}, - {+0.297505f, -0.194867f, +0.053446f, +0.000084f, +0.000029f}, - {-0.000225f, +0.131429f, -0.009064f, +0.000495f, +0.000008f}, - {+0.159504f, -0.423362f, +0.035243f, +0.000592f, -0.000041f}, - {+0.021636f, +0.436573f, -0.003498f, +0.000232f, +0.000020f}, - {-0.055924f, -1.120425f, +0.002613f, +0.000280f, +0.000017f}, - {+0.006982f, +0.197623f, -0.019428f, +0.000152f, -0.000000f}, - {+0.129375f, -0.785134f, +0.025534f, +0.000269f, -0.000013f}, - {-0.026817f, +0.307487f, -0.006434f, -0.000185f, +0.000021f}, - {+0.038219f, -0.300110f, +0.006087f, +0.000100f, -0.000002f} - }, - { - {-0.085777f, +0.000630f, -0.007870f, +0.000280f, +0.000146f}, - {-0.339312f, +0.074962f, -0.051465f, -0.000668f, +0.000130f}, - {-0.200338f, +0.240178f, -0.031754f, +0.000345f, -0.000127f}, - {-0.026013f, -0.198501f, +0.018543f, +0.000031f, +0.000062f}, - {-0.072064f, +0.618750f, -0.029586f, +0.000304f, -0.000160f}, - {-0.010082f, +0.121187f, +0.026049f, -0.000154f, +0.000009f}, - {-0.221101f, +0.623925f, -0.048561f, -0.000345f, +0.000030f}, - {-0.002595f, +0.108691f, +0.015618f, -0.000378f, -0.000004f}, - {-0.325381f, +0.349589f, -0.066982f, -0.000444f, +0.000083f}, - {+0.099695f, +0.316098f, +0.009372f, -0.000014f, -0.000062f}, - {-0.514573f, -0.402861f, -0.079237f, +0.000423f, +0.000014f}, - {+0.004094f, +0.165937f, +0.008745f, -0.000341f, -0.000002f}, - {-0.384492f, +0.011534f, -0.056805f, -0.000185f, +0.000066f}, - {+0.061892f, +0.175063f, +0.001504f, -0.000187f, -0.000042f}, - {-0.164069f, +0.005476f, -0.024648f, -0.000226f, +0.000020f} - }, - { - {+0.065059f, +0.235026f, +0.008783f, -0.000266f, +0.000068f}, - {-0.098656f, +0.437384f, -0.016382f, -0.000247f, -0.000011f}, - {-0.150935f, +0.318418f, -0.020125f, +0.000567f, -0.000053f}, - {+0.037203f, -0.163560f, -0.021631f, -0.000436f, +0.000028f}, - {-0.479166f, +0.005919f, -0.062327f, +0.000735f, -0.000072f}, - {+0.011144f, +0.082078f, -0.020960f, +0.000115f, +0.000004f}, - {-0.472890f, +0.243160f, -0.064367f, +0.000012f, -0.000028f}, - {+0.005275f, +0.088802f, -0.005814f, -0.000347f, -0.000006f}, - {-0.303139f, +0.407030f, -0.033834f, -0.000330f, +0.000029f}, - {-0.124040f, -0.011330f, -0.004638f, -0.000115f, -0.000018f}, - {+0.180901f, +0.678258f, +0.023830f, -0.000002f, -0.000032f}, - {-0.013327f, +0.130330f, +0.001759f, -0.000128f, +0.000001f}, - {-0.025939f, +0.562001f, -0.008804f, -0.000193f, +0.000008f}, - {-0.067066f, -0.006134f, +0.002098f, +0.000244f, -0.000017f}, - {-0.054906f, +0.166617f, -0.011465f, -0.000062f, -0.000000f} - }, - { - {+0.006166f, +0.343773f, -0.005499f, -0.000294f, -0.000144f}, - {+0.320866f, -0.218530f, +0.058362f, +0.000559f, -0.000126f}, - {+0.255028f, -0.301056f, +0.038086f, -0.000395f, +0.000120f}, - {-0.042070f, -0.106963f, +0.016516f, -0.000008f, -0.000058f}, - {+0.361545f, -1.309013f, +0.070307f, -0.000422f, +0.000152f}, - {-0.010654f, +0.051598f, +0.023066f, +0.000137f, -0.000008f}, - {+0.455727f, -1.211865f, +0.087077f, +0.000179f, -0.000032f}, - {-0.006671f, +0.068373f, +0.015541f, +0.000442f, +0.000003f}, - {+0.477408f, -0.797872f, +0.082786f, +0.000369f, -0.000079f}, - {+0.046569f, -0.253576f, -0.003537f, +0.000061f, +0.000060f}, - {+0.362855f, +0.403212f, +0.056493f, -0.000231f, -0.000005f}, - {+0.019451f, +0.092196f, -0.005980f, +0.000308f, +0.000002f}, - {+0.290094f, +0.073135f, +0.047603f, +0.000171f, -0.000065f}, - {+0.042598f, -0.156557f, -0.000577f, +0.000163f, +0.000040f}, - {+0.131628f, -0.125669f, +0.025251f, +0.000176f, -0.000020f} - }, - { - {-0.075253f, +0.241790f, +0.004245f, +0.000388f, -0.000054f}, - {+0.115417f, -0.555843f, +0.004505f, +0.000201f, +0.000026f}, - {+0.118398f, -0.515206f, +0.013944f, -0.000514f, +0.000042f}, - {+0.039535f, -0.038091f, -0.014039f, +0.000458f, -0.000023f}, - {+0.462279f, -1.209973f, +0.032503f, -0.000851f, +0.000062f}, - {+0.009084f, +0.026049f, -0.016775f, -0.000189f, -0.000005f}, - {+0.492506f, -1.210168f, +0.036127f, -0.000015f, +0.000032f}, - {+0.007053f, +0.028506f, -0.029001f, +0.000197f, +0.000006f}, - {+0.335910f, -1.043865f, +0.025309f, +0.000109f, -0.000019f}, - {+0.051079f, -0.232226f, +0.008818f, -0.000021f, +0.000013f}, - {-0.209396f, -0.481664f, -0.029573f, -0.000397f, +0.000036f}, - {-0.022163f, +0.049801f, +0.004489f, +0.000120f, -0.000002f}, - {+0.049189f, -0.291808f, +0.012095f, +0.000124f, -0.000000f}, - {-0.001464f, -0.219720f, -0.003238f, -0.000281f, +0.000013f}, - {+0.129999f, -0.125792f, +0.018671f, +0.000033f, +0.000004f} - }, - { - {+0.089265f, +0.008101f, +0.003220f, +0.000420f, +0.000142f}, - {-0.374092f, +0.167831f, -0.047437f, -0.000248f, +0.000121f}, - {-0.277419f, +0.075693f, -0.034361f, +0.000382f, -0.000114f}, - {-0.030038f, +0.022987f, +0.012744f, -0.000055f, +0.000055f}, - {-0.753816f, +0.593618f, -0.075656f, +0.000583f, -0.000146f}, - {-0.007625f, +0.012494f, +0.008216f, -0.000012f, +0.000009f}, - {-0.872319f, +0.834025f, -0.101372f, +0.000238f, +0.000033f}, - {-0.007349f, -0.013392f, +0.018697f, -0.000404f, -0.000002f}, - {-0.818122f, +0.708126f, -0.108543f, -0.000003f, +0.000077f}, - {-0.080964f, -0.024571f, -0.007134f, -0.000112f, -0.000058f}, - {-0.256898f, -0.416364f, -0.039682f, +0.000207f, -0.000001f}, - {+0.021854f, +0.003552f, -0.004353f, -0.000284f, -0.000001f}, - {-0.278977f, +0.233656f, -0.056880f, +0.000052f, +0.000063f}, - {-0.037961f, -0.179808f, +0.005183f, -0.000145f, -0.000038f}, - {-0.208673f, +0.408473f, -0.040386f, -0.000034f, +0.000020f} - }, - { - {-0.034338f, -0.173588f, -0.006688f, -0.000500f, +0.000038f}, - {-0.042237f, +0.656912f, -0.009701f, -0.000238f, -0.000044f}, - {-0.090138f, +0.334092f, -0.026473f, +0.000394f, -0.000031f}, - {+0.015852f, +0.059753f, -0.008148f, -0.000431f, +0.000019f}, - {-0.008439f, +1.693558f, -0.014027f, +0.000600f, -0.000050f}, - {+0.006434f, +0.012796f, -0.004682f, +0.000161f, +0.000005f}, - {-0.054347f, +2.067775f, -0.007313f, -0.000217f, -0.000039f}, - {+0.007506f, -0.034599f, -0.009095f, -0.000072f, -0.000006f}, - {+0.015520f, +1.997278f, +0.014755f, -0.000307f, +0.000011f}, - {+0.028007f, +0.138657f, +0.001260f, +0.000016f, -0.000007f}, - {+0.214043f, +0.306979f, +0.029626f, +0.000432f, -0.000035f}, - {-0.018621f, -0.040993f, +0.005040f, -0.000117f, +0.000002f}, - {-0.117787f, +0.510563f, -0.001680f, -0.000212f, -0.000008f}, - {+0.059932f, -0.061203f, -0.006185f, +0.000277f, -0.000010f}, - {-0.157100f, +0.507113f, -0.009834f, -0.000125f, -0.000007f} - }, - { - {-0.055343f, -0.147303f, -0.000195f, -0.000468f, -0.000137f}, - {+0.350728f, +0.053490f, +0.051079f, +0.000061f, -0.000112f}, - {+0.264173f, -0.242538f, +0.053572f, -0.000237f, +0.000109f}, - {-0.000679f, +0.065959f, +0.002851f, +0.000063f, -0.000053f}, - {+0.698387f, +0.600659f, +0.086640f, -0.000476f, +0.000138f}, - {-0.005046f, +0.021011f, +0.002443f, -0.000074f, -0.000009f}, - {+0.914982f, +0.594809f, +0.107925f, -0.000398f, -0.000028f}, - {-0.006616f, -0.041999f, +0.008530f, +0.000270f, +0.000002f}, - {+0.908394f, +0.659090f, +0.104076f, -0.000152f, -0.000074f}, - {+0.044182f, +0.106382f, +0.006281f, +0.000190f, +0.000054f}, - {+0.160270f, +0.395898f, +0.025961f, -0.000172f, +0.000001f}, - {+0.012773f, -0.075787f, -0.003315f, +0.000265f, +0.000000f}, - {+0.442662f, -0.331872f, +0.060257f, -0.000149f, -0.000059f}, - {-0.056862f, +0.082167f, +0.007314f, +0.000153f, +0.000036f}, - {+0.379945f, -0.304856f, +0.049455f, +0.000017f, -0.000018f} - }, - { - {+0.121111f, +0.105739f, +0.007673f, +0.000471f, -0.000024f}, - {+0.012153f, -0.450064f, +0.007566f, +0.000184f, +0.000059f}, - {+0.184762f, -0.381675f, +0.018118f, -0.000313f, +0.000022f}, - {-0.011948f, +0.043954f, -0.000567f, +0.000421f, -0.000015f}, - {-0.329773f, -0.952298f, -0.024562f, -0.000268f, +0.000039f}, - {+0.003684f, +0.030620f, +0.000252f, -0.000116f, -0.000005f}, - {-0.420755f, -1.412733f, -0.032280f, +0.000429f, +0.000045f}, - {+0.004497f, -0.053106f, -0.011474f, +0.000072f, +0.000006f}, - {-0.511638f, -1.483614f, -0.052171f, +0.000647f, -0.000004f}, - {-0.060146f, -0.060453f, -0.010041f, +0.000057f, +0.000002f}, - {-0.173759f, -0.112610f, -0.023303f, -0.000248f, +0.000035f}, - {-0.005701f, -0.095076f, +0.000618f, +0.000109f, -0.000002f}, - {-0.012206f, -1.032650f, -0.010110f, +0.000297f, +0.000015f}, - {+0.031812f, +0.189096f, -0.005956f, -0.000264f, +0.000006f}, - {-0.000197f, -0.889296f, -0.006036f, +0.000199f, +0.000010f} - }, - { - {-0.115841f, +0.454362f, -0.009607f, +0.000493f, +0.000130f}, - {-0.308921f, +0.056304f, -0.054693f, -0.000123f, +0.000099f}, - {-0.468248f, +0.632981f, -0.076258f, -0.000010f, -0.000104f}, - {+0.019902f, +0.002281f, -0.001334f, -0.000072f, +0.000051f}, - {-0.400691f, -0.806429f, -0.070547f, +0.000137f, -0.000130f}, - {-0.002929f, +0.038041f, +0.000093f, +0.000104f, +0.000008f}, - {-0.561484f, -1.148223f, -0.095621f, +0.000111f, +0.000021f}, - {-0.002238f, -0.072975f, +0.011177f, -0.000205f, -0.000002f}, - {-0.562963f, -1.379756f, -0.082927f, -0.000084f, +0.000071f}, - {+0.004354f, -0.167075f, +0.005365f, -0.000234f, -0.000047f}, - {-0.102439f, -0.221815f, -0.020196f, +0.000101f, +0.000002f}, - {-0.001012f, -0.099078f, +0.000515f, -0.000243f, +0.000000f}, - {-0.540858f, -0.235487f, -0.066321f, -0.000007f, +0.000053f}, - {+0.003001f, +0.218213f, +0.002283f, -0.000153f, -0.000034f}, - {-0.439169f, -0.226555f, -0.052369f, -0.000162f, +0.000015f} - }, - { - {+0.032349f, +0.694662f, +0.012758f, -0.000446f, +0.000014f}, - {-0.081188f, +0.400832f, -0.010403f, +0.000124f, -0.000070f}, - {-0.102023f, +1.229099f, +0.009207f, +0.000429f, -0.000013f}, - {-0.022184f, -0.047173f, +0.004443f, -0.000402f, +0.000012f}, - {+0.347929f, +0.367903f, +0.051025f, +0.000195f, -0.000031f}, - {+0.002610f, +0.041165f, -0.003133f, +0.000103f, +0.000004f}, - {+0.510442f, +0.525808f, +0.072327f, -0.000281f, -0.000047f}, - {+0.000849f, -0.085438f, -0.000581f, -0.000088f, -0.000006f}, - {+0.669928f, +0.515263f, +0.083893f, -0.000680f, -0.000003f}, - {+0.067239f, -0.080999f, +0.004236f, -0.000134f, +0.000001f}, - {+0.101744f, +0.091783f, +0.017192f, +0.000137f, -0.000040f}, - {+0.006834f, -0.091129f, -0.000945f, -0.000105f, +0.000002f}, - {+0.274659f, +1.003091f, +0.034427f, -0.000152f, -0.000020f}, - {-0.032253f, +0.165928f, +0.001139f, +0.000244f, -0.000004f}, - {+0.228304f, +0.784175f, +0.026351f, -0.000099f, -0.000012f} - }, - { - {+0.089764f, +0.665763f, -0.020998f, -0.000429f, -0.000123f}, - {+0.396918f, -0.353503f, +0.073018f, +0.000145f, -0.000087f}, - {+0.745929f, -0.045441f, +0.089693f, +0.000119f, +0.000098f}, - {+0.018527f, -0.092896f, -0.004776f, +0.000076f, -0.000050f}, - {+0.234618f, +0.545507f, +0.039468f, +0.000111f, +0.000121f}, - {-0.002166f, +0.038716f, +0.004774f, -0.000126f, -0.000007f}, - {+0.294897f, +0.855450f, +0.052819f, +0.000226f, -0.000015f}, - {-0.000019f, -0.074618f, -0.009489f, +0.000190f, +0.000003f}, - {+0.194521f, +1.226314f, +0.042565f, +0.000368f, -0.000068f}, - {-0.081034f, +0.139024f, -0.009034f, +0.000234f, +0.000041f}, - {+0.118924f, +0.067017f, +0.021010f, -0.000093f, -0.000004f}, - {-0.011664f, -0.073753f, +0.003424f, +0.000235f, -0.000000f}, - {+0.432071f, +0.753555f, +0.060819f, +0.000167f, -0.000047f}, - {+0.045018f, +0.063998f, -0.003105f, +0.000140f, +0.000031f}, - {+0.318718f, +0.633800f, +0.046975f, +0.000280f, -0.000013f} - }, - { - {-0.185438f, +0.347292f, +0.027738f, +0.000431f, -0.000007f}, - {+0.127577f, -0.781157f, +0.003436f, -0.000401f, +0.000077f}, - {-0.338528f, -1.710682f, -0.053558f, -0.000664f, +0.000007f}, - {-0.010081f, -0.125578f, +0.001189f, +0.000386f, -0.000010f}, - {-0.290346f, -0.267538f, -0.045568f, -0.000347f, +0.000027f}, - {+0.001693f, +0.032268f, -0.003639f, -0.000084f, -0.000005f}, - {-0.437981f, -0.284534f, -0.069222f, -0.000040f, +0.000045f}, - {-0.001220f, -0.049868f, +0.009105f, +0.000117f, +0.000006f}, - {-0.562551f, +0.041789f, -0.085721f, +0.000415f, +0.000009f}, - {+0.014212f, +0.289512f, +0.004929f, +0.000179f, -0.000001f}, - {-0.056836f, -0.200124f, -0.011607f, -0.000196f, +0.000048f}, - {+0.014738f, -0.050287f, -0.006832f, +0.000096f, -0.000002f}, - {-0.459556f, -0.619782f, -0.062717f, -0.000131f, +0.000023f}, - {-0.038854f, -0.040374f, +0.004775f, -0.000223f, +0.000003f}, - {-0.352434f, -0.403959f, -0.049061f, -0.000107f, +0.000013f} - }, - { - {+0.203018f, -0.123894f, -0.025192f, +0.000369f, +0.000119f}, - {-0.672441f, +0.461693f, -0.106438f, +0.000019f, +0.000079f}, - {-0.670572f, -1.221467f, -0.075011f, +0.000089f, -0.000092f}, - {-0.000441f, -0.139722f, +0.002901f, -0.000086f, +0.000048f}, - {-0.198726f, -0.405927f, -0.034209f, -0.000080f, -0.000113f}, - {-0.001617f, +0.026895f, +0.002212f, +0.000129f, +0.000007f}, - {-0.200203f, -0.651588f, -0.036520f, -0.000303f, +0.000014f}, - {+0.002914f, -0.030011f, -0.007149f, -0.000236f, -0.000003f}, - {-0.025090f, -0.786071f, -0.013678f, -0.000386f, +0.000067f}, - {+0.081825f, +0.202685f, +0.002109f, -0.000238f, -0.000037f}, - {-0.196100f, +0.020016f, -0.033192f, +0.000220f, +0.000004f}, - {-0.015355f, -0.026466f, +0.007870f, -0.000233f, +0.000001f}, - {-0.214693f, -0.997978f, -0.031905f, -0.000100f, +0.000043f}, - {+0.019088f, -0.106339f, -0.005835f, -0.000125f, -0.000029f}, - {-0.141519f, -0.731019f, -0.021460f, -0.000220f, +0.000012f} - }, - { - {-0.134009f, -0.533107f, +0.016049f, -0.000482f, -0.000001f}, - {+0.105382f, +1.702756f, +0.047818f, +0.000264f, -0.000085f}, - {+0.795676f, +1.009808f, +0.094796f, +0.000697f, -0.000001f}, - {+0.010291f, -0.134575f, -0.004870f, -0.000384f, +0.000008f}, - {+0.291563f, +0.365793f, +0.053919f, +0.000403f, -0.000024f}, - {+0.001678f, +0.025875f, -0.002022f, +0.000076f, +0.000005f}, - {+0.400074f, +0.287614f, +0.070328f, +0.000125f, -0.000045f}, - {-0.004034f, -0.020135f, +0.007508f, -0.000103f, -0.000006f}, - {+0.436959f, -0.055640f, +0.076689f, -0.000219f, -0.000014f}, - {-0.123422f, -0.092919f, -0.005704f, -0.000171f, +0.000000f}, - {+0.093729f, +0.477248f, +0.023614f, +0.000233f, -0.000058f}, - {+0.014009f, -0.006141f, -0.006302f, -0.000091f, +0.000003f}, - {+0.504759f, +0.104762f, +0.066789f, +0.000245f, -0.000026f}, - {+0.004409f, -0.113595f, +0.004778f, +0.000217f, -0.000002f}, - {+0.360431f, +0.037695f, +0.048325f, +0.000203f, -0.000015f} - }, - { - {+0.014228f, -0.705402f, -0.006226f, -0.000344f, -0.000118f}, - {+0.897677f, +0.542816f, +0.095891f, -0.000106f, -0.000075f}, - {+0.201507f, +1.914333f, +0.026943f, -0.000420f, +0.000087f}, - {-0.017877f, -0.110691f, +0.004923f, +0.000104f, -0.000048f}, - {+0.205433f, +0.518777f, +0.021102f, -0.000023f, +0.000107f}, - {-0.001311f, +0.026946f, +0.001477f, -0.000136f, -0.000006f}, - {+0.192842f, +0.621869f, +0.023865f, +0.000199f, -0.000017f}, - {+0.003980f, -0.012991f, -0.007557f, +0.000253f, +0.000002f}, - {+0.005079f, +0.629152f, -0.003461f, +0.000195f, -0.000066f}, - {+0.066835f, -0.377419f, +0.006744f, +0.000264f, +0.000034f}, - {+0.280541f, +0.203930f, +0.033339f, -0.000296f, +0.000000f}, - {-0.011635f, +0.011453f, +0.005109f, +0.000244f, -0.000001f}, - {-0.001257f, +0.874207f, +0.008809f, -0.000099f, -0.000041f}, - {-0.021261f, -0.067946f, -0.002331f, +0.000104f, +0.000028f}, - {-0.005808f, +0.593723f, +0.006335f, +0.000064f, -0.000011f} - }, - { - {+0.099272f, -0.587041f, -0.004009f, +0.000546f, +0.000010f}, - {-0.705111f, -1.883202f, -0.090489f, +0.000148f, +0.000099f}, - {-0.905675f, +0.215060f, -0.111626f, -0.000378f, -0.000003f}, - {+0.022063f, -0.069401f, -0.004697f, +0.000403f, -0.000006f}, - {-0.414526f, -0.430242f, -0.061687f, -0.000257f, +0.000024f}, - {+0.000716f, +0.026002f, -0.000841f, -0.000065f, -0.000006f}, - {-0.499028f, -0.450610f, -0.082204f, +0.000154f, +0.000051f}, - {-0.003426f, -0.001895f, +0.007004f, +0.000107f, +0.000006f}, - {-0.458293f, -0.088827f, -0.075576f, +0.000356f, +0.000021f}, - {+0.052102f, -0.415182f, -0.006314f, +0.000148f, +0.000000f}, - {-0.252984f, -0.608102f, -0.036518f, -0.000188f, +0.000068f}, - {+0.008362f, +0.027128f, -0.004367f, +0.000092f, -0.000003f}, - {-0.431283f, +0.197715f, -0.066801f, -0.000088f, +0.000031f}, - {+0.025006f, +0.002651f, +0.001056f, -0.000216f, +0.000002f}, - {-0.295561f, +0.135592f, -0.047920f, -0.000105f, +0.000017f} - }, - { - {-0.157990f, -0.259660f, +0.015873f, +0.000403f, +0.000116f}, - {-0.593176f, -2.052339f, -0.070910f, -0.000100f, +0.000069f}, - {+0.360307f, -1.730109f, +0.043471f, +0.000479f, -0.000082f}, - {-0.021706f, -0.018877f, +0.004343f, -0.000127f, +0.000049f}, - {-0.076242f, -0.966223f, +0.000113f, -0.000062f, -0.000102f}, - {-0.000507f, +0.022696f, +0.001489f, +0.000143f, +0.000006f}, - {-0.080677f, -1.130360f, +0.008510f, -0.000220f, +0.000021f}, - {+0.003213f, +0.012234f, -0.007801f, -0.000257f, -0.000001f}, - {+0.099684f, -0.985662f, +0.034584f, -0.000145f, +0.000067f}, - {-0.145731f, -0.149448f, +0.002813f, -0.000324f, -0.000031f}, - {-0.237563f, -0.630642f, -0.030427f, +0.000172f, -0.000006f}, - {-0.004114f, +0.037800f, +0.002121f, -0.000258f, +0.000002f}, - {+0.125430f, -0.673094f, +0.018386f, +0.000174f, +0.000039f}, - {-0.015922f, +0.063018f, -0.001463f, -0.000086f, -0.000027f}, - {+0.073050f, -0.443161f, +0.011565f, -0.000018f, +0.000010f} - }, - { - {+0.144225f, +0.109446f, -0.023450f, -0.000603f, -0.000021f}, - {+1.124912f, +0.573960f, +0.142323f, -0.000259f, -0.000120f}, - {+0.594373f, -1.383061f, +0.069196f, +0.000008f, +0.000005f}, - {+0.016961f, +0.026260f, -0.002769f, -0.000445f, +0.000004f}, - {+0.499674f, -0.102263f, +0.061030f, +0.000126f, -0.000027f}, - {+0.000550f, +0.019959f, -0.002036f, +0.000057f, +0.000008f}, - {+0.632944f, -0.076074f, +0.072814f, -0.000407f, -0.000065f}, - {-0.003094f, +0.024467f, +0.008111f, -0.000124f, -0.000008f}, - {+0.501452f, -0.419657f, +0.050434f, -0.000591f, -0.000031f}, - {+0.144474f, +0.249397f, +0.000459f, -0.000132f, -0.000001f}, - {+0.415870f, +0.376102f, +0.059743f, +0.000227f, -0.000079f}, - {-0.000238f, +0.040068f, +0.000597f, -0.000101f, +0.000003f}, - {+0.358497f, -0.316925f, +0.053082f, -0.000084f, -0.000038f}, - {-0.000093f, +0.088439f, +0.001940f, +0.000226f, -0.000002f}, - {+0.258227f, -0.159273f, +0.039800f, -0.000005f, -0.000020f} - }, - { - {-0.076840f, +0.356484f, +0.022459f, -0.000471f, -0.000111f}, - {-0.070876f, +2.403851f, -0.004503f, +0.000397f, -0.000055f}, - {-0.673641f, +0.535940f, -0.067858f, -0.000222f, +0.000078f}, - {-0.009898f, +0.055154f, +0.001657f, +0.000144f, -0.000051f}, - {-0.180405f, +0.930833f, -0.021154f, +0.000296f, +0.000100f}, - {-0.000259f, +0.018770f, +0.000911f, -0.000150f, -0.000006f}, - {-0.259236f, +1.270489f, -0.028633f, +0.000371f, -0.000020f}, - {+0.002354f, +0.032108f, -0.004808f, +0.000253f, +0.000001f}, - {-0.386838f, +0.910045f, -0.041711f, +0.000301f, -0.000066f}, - {-0.048842f, +0.514452f, +0.000408f, +0.000377f, +0.000028f}, - {+0.070467f, +0.913930f, +0.006193f, +0.000040f, +0.000015f}, - {+0.003564f, +0.035201f, -0.001400f, +0.000267f, -0.000004f}, - {-0.230743f, +0.601122f, -0.035699f, -0.000081f, -0.000033f}, - {+0.015479f, +0.072891f, -0.002187f, +0.000069f, +0.000027f}, - {-0.142446f, +0.469049f, -0.024919f, +0.000100f, -0.000007f} - }, - { - {-0.002985f, +0.403323f, -0.016301f, +0.000548f, +0.000034f}, - {-1.060593f, +0.881637f, -0.141237f, -0.000301f, +0.000146f}, - {-0.052335f, +1.451862f, -0.028199f, +0.000089f, -0.000007f}, - {+0.002631f, +0.066036f, -0.002339f, +0.000502f, +0.000000f}, - {-0.384736f, +0.613709f, -0.054310f, -0.000237f, +0.000033f}, - {-0.000206f, +0.017762f, +0.000777f, -0.000039f, -0.000010f}, - {-0.476794f, +0.933190f, -0.065473f, +0.000248f, +0.000085f}, - {-0.001180f, +0.036159f, +0.000746f, +0.000135f, +0.000010f}, - {-0.253198f, +1.107323f, -0.036585f, +0.000594f, +0.000045f}, - {-0.075354f, +0.475320f, -0.002352f, +0.000131f, +0.000004f}, - {-0.505571f, +0.029600f, -0.070178f, -0.000529f, +0.000092f}, - {-0.005826f, +0.026803f, +0.001217f, +0.000121f, -0.000003f}, - {-0.271199f, +0.550703f, -0.035860f, -0.000004f, +0.000047f}, - {-0.024301f, +0.026331f, +0.003135f, -0.000244f, +0.000001f}, - {-0.221873f, +0.360216f, -0.027778f, -0.000058f, +0.000024f} - }, - { - {+0.057225f, +0.281207f, +0.009710f, +0.000560f, +0.000102f}, - {+0.690525f, -1.818917f, +0.085039f, -0.000450f, +0.000027f}, - {+0.506459f, +0.564152f, +0.071684f, -0.000050f, -0.000076f}, - {+0.004101f, +0.060649f, +0.002162f, -0.000150f, +0.000054f}, - {+0.353869f, -0.522523f, +0.045019f, -0.000449f, -0.000102f}, - {+0.000233f, +0.017558f, -0.000876f, +0.000157f, +0.000008f}, - {+0.492437f, -0.548497f, +0.057096f, -0.000443f, +0.000009f}, - {+0.000353f, +0.037418f, +0.000476f, -0.000253f, -0.000002f}, - {+0.476366f, -0.001171f, +0.053042f, -0.000446f, +0.000061f}, - {+0.147811f, +0.165824f, +0.000026f, -0.000398f, -0.000026f}, - {+0.196744f, -1.065124f, +0.031949f, -0.000103f, -0.000031f}, - {+0.007566f, +0.015715f, -0.002480f, -0.000269f, +0.000006f}, - {+0.346848f, -0.402208f, +0.047664f, -0.000015f, +0.000024f}, - {+0.023692f, -0.031259f, -0.003931f, -0.000059f, -0.000028f}, - {+0.252888f, -0.368770f, +0.034342f, -0.000180f, +0.000002f} - }, - { - {-0.069594f, +0.088175f, -0.003810f, -0.000440f, -0.000044f}, - {+0.578183f, -2.011593f, +0.073992f, +0.001371f, -0.000167f}, - {-0.227220f, -0.564080f, -0.015629f, +0.000042f, +0.000009f}, - {-0.009645f, +0.039649f, +0.000144f, -0.000553f, -0.000006f}, - {+0.169941f, -0.804452f, +0.028988f, +0.000605f, -0.000042f}, - {-0.000025f, +0.019813f, +0.000132f, +0.000002f, +0.000012f}, - {+0.153964f, -1.056091f, +0.034451f, +0.000335f, -0.000105f}, - {+0.000169f, +0.034911f, -0.000187f, -0.000117f, -0.000013f}, - {-0.062017f, -0.804384f, +0.011398f, -0.000308f, -0.000061f}, - {-0.128669f, -0.214233f, +0.004497f, -0.000103f, -0.000009f}, - {+0.440119f, -0.713992f, +0.050615f, +0.001076f, -0.000106f}, - {-0.008550f, +0.001254f, +0.004092f, -0.000138f, +0.000001f}, - {+0.098097f, -0.798361f, +0.010013f, +0.000351f, -0.000053f}, - {-0.014593f, -0.076768f, +0.002819f, +0.000279f, -0.000001f}, - {+0.091804f, -0.627104f, +0.009244f, +0.000286f, -0.000027f} - }, - { - {+0.047060f, -0.075626f, -0.001334f, -0.000567f, -0.000091f}, - {-0.993435f, +0.387528f, -0.110131f, +0.000307f, +0.000016f}, - {-0.206920f, -0.568534f, -0.044219f, +0.000186f, +0.000075f}, - {+0.012528f, +0.006883f, -0.001083f, +0.000138f, -0.000055f}, - {-0.392576f, +0.068469f, -0.053890f, +0.000450f, +0.000112f}, - {+0.000253f, +0.022782f, -0.000795f, -0.000185f, -0.000011f}, - {-0.480261f, -0.062036f, -0.067996f, +0.000424f, +0.000016f}, - {-0.001093f, +0.029167f, +0.002690f, +0.000282f, +0.000004f}, - {-0.301958f, -0.406273f, -0.051656f, +0.000467f, -0.000050f}, - {+0.039980f, -0.441106f, -0.004231f, +0.000399f, +0.000027f}, - {-0.502714f, +0.728345f, -0.060195f, +0.000029f, +0.000056f}, - {+0.008205f, -0.014371f, -0.003360f, +0.000261f, -0.000007f}, - {-0.391476f, -0.055144f, -0.045924f, +0.000025f, -0.000010f}, - {+0.001458f, -0.093974f, -0.000369f, +0.000055f, +0.000030f}, - {-0.304247f, -0.028652f, -0.034061f, +0.000183f, +0.000005f} - }, - { - {-0.009666f, -0.150052f, +0.003550f, +0.000266f, +0.000050f}, - {+0.137392f, +2.124261f, +0.005795f, -0.002596f, +0.000175f}, - {+0.216972f, +0.115692f, +0.034463f, -0.000271f, -0.000010f}, - {-0.012419f, -0.029126f, -0.001282f, +0.000578f, +0.000014f}, - {+0.047257f, +0.759362f, +0.004842f, -0.001129f, +0.000048f}, - {-0.000562f, +0.023531f, +0.001850f, +0.000083f, -0.000013f}, - {+0.096507f, +0.846049f, +0.009402f, -0.001164f, +0.000120f}, - {+0.002214f, +0.022078f, -0.006975f, +0.000051f, +0.000016f}, - {+0.156525f, +0.322121f, +0.018342f, -0.000159f, +0.000076f}, - {+0.056928f, -0.411079f, -0.001046f, -0.000022f, +0.000016f}, - {-0.091678f, +1.383538f, -0.002909f, -0.001805f, +0.000114f}, - {-0.007030f, -0.027663f, +0.001499f, +0.000143f, +0.000002f}, - {+0.149824f, +0.781150f, +0.018621f, -0.000777f, +0.000055f}, - {+0.010304f, -0.081328f, -0.001299f, -0.000326f, -0.000001f}, - {+0.113175f, +0.611704f, +0.011855f, -0.000554f, +0.000028f} - }, - { - {-0.021766f, -0.129069f, -0.001291f, +0.000514f, +0.000079f}, - {+0.761103f, +1.176434f, +0.079034f, -0.000465f, -0.000067f}, - {+0.052656f, +0.385158f, +0.008581f, -0.000181f, -0.000075f}, - {+0.011309f, -0.064037f, +0.003059f, -0.000137f, +0.000054f}, - {+0.327757f, +0.336935f, +0.039056f, -0.000551f, -0.000130f}, - {-0.000062f, +0.024514f, -0.000971f, +0.000266f, +0.000015f}, - {+0.369260f, +0.434054f, +0.045988f, -0.000624f, -0.000050f}, - {-0.002357f, +0.012860f, +0.007199f, -0.000382f, -0.000009f}, - {+0.163578f, +0.313585f, +0.027154f, -0.000540f, +0.000031f}, - {-0.107899f, -0.186387f, +0.005135f, -0.000449f, -0.000033f}, - {+0.567188f, +0.412930f, +0.045658f, -0.000151f, -0.000091f}, - {+0.006206f, -0.039247f, -0.001365f, -0.000263f, +0.000007f}, - {+0.250112f, +0.642586f, +0.021784f, -0.000061f, -0.000006f}, - {-0.017502f, -0.048887f, +0.002416f, -0.000067f, -0.000031f}, - {+0.188631f, +0.504176f, +0.017497f, -0.000181f, -0.000014f} - }, - { - {+0.035309f, -0.050812f, -0.002847f, -0.000101f, -0.000052f}, - {-0.684327f, -1.035275f, -0.063848f, +0.004018f, -0.000163f}, - {-0.168514f, +0.043177f, -0.023043f, +0.000441f, +0.000012f}, - {-0.010780f, -0.100434f, -0.001201f, -0.000537f, -0.000023f}, - {-0.257450f, -0.574283f, -0.031229f, +0.001901f, -0.000048f}, - {+0.001324f, +0.031148f, +0.000200f, -0.000256f, +0.000013f}, - {-0.310049f, -0.632628f, -0.040097f, +0.002280f, -0.000122f}, - {+0.001325f, -0.002753f, -0.005413f, +0.000102f, -0.000017f}, - {-0.184754f, -0.248324f, -0.030006f, +0.000823f, -0.000085f}, - {+0.099582f, +0.080360f, -0.007610f, +0.000330f, -0.000021f}, - {-0.399370f, -1.041121f, -0.030330f, +0.002858f, -0.000110f}, - {-0.005880f, -0.052171f, +0.002547f, -0.000108f, -0.000006f}, - {-0.313992f, -0.204082f, -0.025743f, +0.001207f, -0.000051f}, - {+0.019747f, -0.009044f, -0.004930f, +0.000386f, +0.000004f}, - {-0.235288f, -0.132120f, -0.018189f, +0.000805f, -0.000025f} - }, - { - {-0.031730f, +0.032618f, +0.005980f, -0.000345f, -0.000069f}, - {-0.036061f, -2.049852f, +0.017873f, +0.001326f, +0.000118f}, - {+0.048189f, -0.299501f, +0.006649f, +0.000278f, +0.000077f}, - {+0.009640f, -0.132629f, -0.002725f, +0.000234f, -0.000050f}, - {-0.088981f, -0.872832f, +0.010243f, +0.001133f, +0.000155f}, - {-0.001689f, +0.039941f, -0.001439f, -0.000417f, -0.000020f}, - {-0.100800f, -1.010534f, +0.017085f, +0.001478f, +0.000090f}, - {-0.000517f, -0.025997f, +0.009380f, +0.000610f, +0.000015f}, - {-0.052179f, -0.499015f, +0.012647f, +0.001020f, -0.000006f}, - {-0.056765f, +0.265453f, +0.012695f, +0.000691f, +0.000043f}, - {-0.109675f, -1.498579f, +0.008016f, +0.000837f, +0.000130f}, - {+0.005074f, -0.063245f, -0.003014f, +0.000316f, -0.000006f}, - {+0.061872f, -0.766380f, +0.004838f, +0.000273f, +0.000020f}, - {-0.017826f, +0.027182f, +0.007983f, +0.000078f, +0.000032f}, - {+0.048699f, -0.553249f, +0.001253f, +0.000294f, +0.000022f} - }, - { - {+0.019903f, +0.086704f, -0.007458f, -0.000169f, +0.000051f}, - {+0.512499f, -1.305378f, -0.011560f, -0.006425f, +0.000131f}, - {+0.082209f, -0.257165f, +0.004920f, -0.000746f, -0.000015f}, - {-0.006519f, -0.136496f, +0.009729f, +0.000296f, +0.000032f}, - {+0.284718f, -0.371880f, -0.012409f, -0.003530f, +0.000037f}, - {+0.000829f, +0.034413f, -0.003856f, +0.000595f, -0.000011f}, - {+0.344532f, -0.419919f, -0.018217f, -0.004473f, +0.000109f}, - {+0.000833f, -0.043443f, -0.009009f, -0.000486f, +0.000016f}, - {+0.207286f, -0.157646f, -0.009524f, -0.002206f, +0.000086f}, - {+0.013557f, +0.334502f, -0.014936f, -0.001054f, +0.000022f}, - {+0.394886f, -0.811218f, -0.014885f, -0.004885f, +0.000089f}, - {-0.003445f, -0.061047f, +0.005289f, -0.000034f, +0.000009f}, - {+0.157375f, -0.628940f, +0.005538f, -0.001860f, +0.000041f}, - {+0.012960f, +0.048297f, -0.009228f, -0.000446f, -0.000009f}, - {+0.111074f, -0.457260f, +0.006419f, -0.001195f, +0.000019f} - }, - { - {-0.008325f, +0.101463f, +0.007806f, +0.000222f, +0.000061f}, - {-0.448213f, -0.073435f, +0.043831f, -0.002036f, -0.000157f}, - {-0.086362f, -0.015184f, -0.001043f, -0.000590f, -0.000080f}, - {+0.003180f, -0.089659f, -0.026528f, -0.000770f, +0.000042f}, - {-0.212313f, +0.269444f, +0.022491f, -0.002262f, -0.000181f}, - {-0.000312f, +0.003749f, +0.018127f, +0.000631f, +0.000025f}, - {-0.262296f, +0.359676f, +0.026182f, -0.002987f, -0.000127f}, - {-0.001244f, -0.030938f, -0.011803f, -0.000968f, -0.000021f}, - {-0.154000f, +0.321358f, +0.010574f, -0.002216f, -0.000021f}, - {+0.011203f, +0.317368f, +0.004001f, -0.001332f, -0.000057f}, - {-0.314308f, +0.084402f, +0.038420f, -0.001607f, -0.000165f}, - {+0.001968f, -0.036558f, -0.013885f, -0.000585f, +0.000002f}, - {-0.169552f, -0.187140f, +0.006401f, -0.000360f, -0.000031f}, - {-0.007358f, +0.044960f, +0.010830f, +0.000051f, -0.000032f}, - {-0.118799f, -0.138798f, +0.002492f, -0.000352f, -0.000027f} - }, - { - {+0.001030f, +0.076361f, -0.016676f, +0.000614f, -0.000050f}, - {+0.176211f, +0.439467f, -0.166626f, +0.010372f, -0.000084f}, - {+0.027648f, +0.122383f, -0.009981f, +0.002109f, +0.000021f}, - {-0.002391f, -0.004071f, +0.048751f, +0.001909f, -0.000038f}, - {+0.060301f, +0.483123f, -0.062250f, +0.008767f, -0.000014f}, - {+0.001055f, -0.029752f, -0.015441f, -0.001494f, +0.000006f}, - {+0.076855f, +0.618372f, -0.079089f, +0.011397f, -0.000082f}, - {+0.000511f, +0.008400f, +0.025063f, +0.001785f, -0.000012f}, - {+0.034038f, +0.480307f, -0.030604f, +0.007648f, -0.000077f}, - {-0.017129f, +0.247573f, -0.000419f, +0.003919f, -0.000016f}, - {+0.114855f, +0.409675f, -0.120781f, +0.008892f, -0.000052f}, - {-0.001510f, +0.003557f, +0.023985f, +0.001157f, -0.000011f}, - {+0.076406f, +0.059144f, -0.051248f, +0.002627f, -0.000028f}, - {+0.003490f, +0.017100f, -0.019703f, -0.000030f, +0.000013f}, - {+0.051697f, +0.041218f, -0.031203f, +0.001716f, -0.000011f} - } -}; - -const float rightHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]= -{ - { - {-0.179291f, +0.196331f, +0.055128f, -0.017382f, +0.000411f}, - {-0.346479f, +0.553523f, -0.074098f, +0.001288f, +0.000309f}, - {-0.308239f, +0.469545f, -0.021575f, -0.009209f, -0.000303f}, - {-0.099071f, +0.016070f, +0.100474f, -0.004226f, +0.000147f}, - {-0.319940f, +0.524241f, -0.066771f, +0.005442f, -0.000530f}, - {-0.051710f, -0.119065f, +0.135568f, +0.002775f, +0.000069f}, - {-0.351211f, +0.583972f, -0.084062f, +0.005229f, +0.000125f}, - {-0.033639f, -0.174352f, +0.152669f, +0.005945f, -0.000002f}, - {-0.368726f, +0.609447f, -0.071839f, -0.005499f, +0.000133f}, - {-0.182972f, +0.167861f, +0.028830f, +0.007677f, -0.000251f}, - {-0.315952f, +0.475453f, -0.040412f, +0.000509f, -0.000243f}, - {-0.097863f, -0.017152f, +0.129397f, -0.007411f, +0.000002f}, - {-0.338545f, +0.555030f, -0.075577f, +0.002211f, +0.000183f}, - {-0.140354f, +0.105800f, +0.079004f, -0.006610f, -0.000113f}, - {-0.316247f, +0.514944f, -0.065273f, +0.002541f, +0.000041f} - }, - { - {+0.066726f, +0.399622f, -0.022457f, -0.006137f, +0.000284f}, - {-0.313913f, +0.623520f, -0.085495f, -0.012758f, +0.000202f}, - {-0.230132f, +0.565523f, +0.020706f, +0.030274f, -0.000219f}, - {+0.082351f, +0.095375f, -0.017487f, -0.006093f, +0.000108f}, - {-0.292072f, +0.667164f, +0.030070f, +0.013037f, -0.000365f}, - {+0.051057f, -0.282404f, -0.087651f, -0.005022f, +0.000044f}, - {-0.322802f, +0.748814f, +0.008866f, -0.001584f, +0.000068f}, - {+0.030674f, -0.445214f, -0.118754f, -0.004069f, -0.000004f}, - {-0.340687f, +0.775811f, +0.021863f, -0.011738f, +0.000102f}, - {+0.036892f, +0.307700f, -0.120513f, +0.004660f, -0.000164f}, - {-0.292932f, +0.449609f, -0.071120f, +0.002682f, -0.000141f}, - {+0.094247f, +0.038851f, -0.003446f, +0.004678f, +0.000001f}, - {-0.276687f, +0.712282f, -0.031372f, -0.011376f, +0.000121f}, - {+0.091193f, +0.305836f, +0.011105f, +0.007857f, -0.000080f}, - {-0.239959f, +0.695822f, -0.012889f, -0.004808f, +0.000027f} - }, - { - {+0.079556f, +0.212459f, +0.100114f, +0.008980f, -0.000484f}, - {+0.345193f, -0.332259f, -0.065579f, +0.004201f, -0.000370f}, - {+0.284314f, -0.233038f, +0.152863f, -0.033143f, +0.000355f}, - {-0.053656f, +0.193617f, +0.026103f, +0.008373f, -0.000172f}, - {+0.451352f, -0.399491f, +0.098548f, -0.007150f, +0.000625f}, - {-0.047980f, -0.347394f, +0.054169f, +0.004712f, -0.000082f}, - {+0.462996f, -0.367670f, +0.059995f, -0.007104f, -0.000153f}, - {-0.022116f, -0.563476f, +0.009055f, +0.001133f, +0.000002f}, - {+0.460543f, -0.352575f, +0.025131f, +0.016685f, -0.000155f}, - {+0.134535f, +0.214472f, -0.123198f, -0.004683f, +0.000298f}, - {+0.343716f, -0.687345f, +0.149443f, +0.002569f, +0.000291f}, - {-0.080865f, +0.213671f, +0.036393f, -0.002576f, -0.000002f}, - {+0.395678f, -0.353387f, +0.071605f, +0.009820f, -0.000218f}, - {-0.011178f, +0.435220f, +0.022000f, -0.003546f, +0.000133f}, - {+0.378160f, -0.247310f, +0.059701f, +0.003289f, -0.000050f} - }, - { - {-0.164514f, -0.148051f, +0.076663f, +0.007666f, -0.000132f}, - {+0.375535f, -0.323173f, -0.095592f, +0.016350f, -0.000072f}, - {+0.284282f, -0.406641f, +0.032308f, +0.013962f, +0.000119f}, - {+0.019004f, +0.294886f, +0.002183f, -0.000727f, -0.000061f}, - {+0.105923f, -0.905160f, +0.058855f, -0.012639f, +0.000165f}, - {+0.041573f, -0.292137f, -0.001643f, -0.002823f, -0.000013f}, - {+0.165541f, -0.804111f, +0.046702f, +0.009739f, +0.000003f}, - {+0.007903f, -0.553598f, -0.011295f, +0.001114f, +0.000006f}, - {+0.224451f, -0.660961f, +0.005300f, -0.001820f, -0.000066f}, - {-0.185058f, -0.068726f, +0.031108f, -0.004814f, +0.000057f}, - {+0.301096f, -0.858369f, +0.054950f, -0.005764f, +0.000016f}, - {+0.056632f, +0.323528f, -0.035298f, +0.002677f, +0.000000f}, - {+0.211913f, -0.708511f, -0.018970f, +0.000869f, -0.000046f}, - {-0.068438f, +0.370728f, +0.021857f, -0.002414f, +0.000040f}, - {+0.146364f, -0.655800f, -0.014996f, +0.001286f, -0.000009f} - }, - { - {+0.140573f, -0.389546f, -0.063161f, -0.008116f, +0.000493f}, - {-0.501452f, +0.957815f, -0.118949f, -0.016074f, +0.000374f}, - {-0.428055f, +0.655187f, -0.059033f, -0.003664f, -0.000369f}, - {+0.016162f, +0.401403f, -0.075825f, -0.002475f, +0.000180f}, - {-0.420740f, -0.088485f, -0.055413f, +0.007312f, -0.000635f}, - {-0.033630f, -0.215580f, +0.008255f, +0.002345f, +0.000081f}, - {-0.431842f, +0.120945f, -0.041884f, -0.000821f, +0.000146f}, - {+0.007127f, -0.487963f, -0.047197f, -0.001590f, -0.000003f}, - {-0.456816f, +0.379069f, -0.075615f, -0.009372f, +0.000166f}, - {+0.067359f, -0.452943f, +0.061128f, +0.004058f, -0.000297f}, - {-0.442776f, +0.317039f, -0.091288f, -0.002255f, -0.000272f}, - {-0.029340f, +0.381803f, +0.012060f, -0.003022f, +0.000002f}, - {-0.485489f, +0.275866f, -0.050681f, -0.003739f, +0.000220f}, - {+0.115592f, +0.171299f, -0.027425f, +0.001757f, -0.000137f}, - {-0.433227f, +0.159115f, -0.034801f, -0.002670f, +0.000050f} - }, - { - {-0.026859f, -0.481645f, +0.031329f, -0.003806f, -0.000014f}, - {-0.284469f, +1.284573f, -0.032011f, +0.001084f, -0.000052f}, - {-0.181950f, +0.902398f, -0.114462f, +0.006410f, -0.000019f}, - {-0.045901f, +0.421890f, +0.009606f, -0.000493f, +0.000014f}, - {+0.021997f, +0.558819f, -0.027875f, +0.007660f, +0.000026f}, - {+0.027202f, -0.176156f, -0.031817f, -0.000966f, -0.000015f}, - {-0.087312f, +0.637991f, -0.008565f, -0.005467f, -0.000065f}, - {-0.017589f, -0.361264f, +0.074423f, +0.001029f, -0.000008f}, - {-0.174838f, +0.815827f, -0.004047f, +0.005296f, +0.000027f}, - {+0.117370f, -0.475324f, -0.026060f, +0.002096f, +0.000041f}, - {-0.239564f, +0.721503f, +0.005066f, +0.004992f, +0.000091f}, - {+0.006224f, +0.373402f, -0.019625f, +0.001954f, -0.000001f}, - {-0.037676f, +0.907270f, -0.023327f, +0.000382f, -0.000025f}, - {-0.112449f, -0.106272f, +0.002858f, +0.001574f, -0.000001f}, - {+0.009142f, +0.797778f, +0.001456f, +0.000541f, -0.000008f} - }, - { - {-0.108873f, -0.326101f, +0.000791f, +0.004385f, -0.000443f}, - {+0.580646f, -0.125470f, +0.165931f, +0.003927f, -0.000327f}, - {+0.496298f, -0.294341f, +0.110947f, -0.003960f, +0.000347f}, - {+0.064021f, +0.305884f, -0.009984f, +0.000720f, -0.000171f}, - {+0.317324f, +0.084393f, +0.052686f, -0.002910f, +0.000568f}, - {-0.023665f, -0.162046f, +0.011591f, -0.001760f, -0.000067f}, - {+0.381756f, -0.083321f, +0.056496f, +0.001922f, -0.000109f}, - {+0.022505f, -0.184316f, -0.094023f, -0.000535f, +0.000005f}, - {+0.478358f, -0.157333f, +0.072547f, +0.000538f, -0.000166f}, - {-0.203282f, -0.003518f, -0.055916f, -0.001798f, +0.000253f}, - {+0.519003f, -0.345400f, +0.046524f, +0.002002f, +0.000201f}, - {+0.013005f, +0.354615f, -0.009640f, -0.000556f, -0.000001f}, - {+0.431496f, +0.164286f, +0.068299f, -0.000598f, -0.000192f}, - {+0.064065f, -0.335687f, -0.005413f, -0.000806f, +0.000126f}, - {+0.388320f, +0.218505f, +0.052578f, +0.000717f, -0.000043f} - }, - { - {+0.185578f, +0.048454f, -0.025037f, +0.000839f, +0.000125f}, - {+0.216647f, -0.769850f, +0.030547f, -0.001237f, +0.000145f}, - {+0.072152f, -1.087589f, -0.044540f, -0.002159f, -0.000064f}, - {-0.067226f, +0.128292f, -0.003394f, +0.001259f, +0.000027f}, - {-0.039230f, -0.436180f, +0.027982f, -0.005578f, -0.000170f}, - {+0.021967f, -0.147869f, -0.016949f, +0.001711f, +0.000034f}, - {+0.082931f, -0.543672f, +0.006471f, +0.000953f, +0.000105f}, - {-0.024250f, -0.000088f, +0.082224f, +0.000232f, +0.000008f}, - {+0.128785f, -0.676661f, +0.016555f, +0.000836f, +0.000011f}, - {+0.111738f, +0.509167f, +0.011773f, +0.000668f, -0.000110f}, - {+0.175186f, -0.840571f, +0.013734f, -0.002329f, -0.000152f}, - {-0.030736f, +0.323572f, +0.010841f, +0.000266f, +0.000002f}, - {-0.059856f, -0.586995f, +0.004766f, +0.001337f, +0.000077f}, - {+0.005153f, -0.413324f, -0.002875f, -0.000804f, -0.000030f}, - {-0.130055f, -0.569153f, -0.015286f, -0.000126f, +0.000020f} - }, - { - {-0.154342f, +0.462365f, +0.008918f, -0.000748f, +0.000359f}, - {-0.725838f, +0.613051f, -0.068139f, +0.001012f, +0.000250f}, - {-0.574125f, -0.202838f, -0.063484f, +0.001137f, -0.000299f}, - {+0.057184f, -0.048810f, -0.000147f, -0.000421f, +0.000150f}, - {-0.248430f, -0.076290f, -0.045952f, +0.001044f, -0.000454f}, - {-0.020627f, -0.132133f, +0.015873f, +0.000547f, +0.000047f}, - {-0.385646f, +0.160251f, -0.051383f, +0.000597f, +0.000057f}, - {+0.024004f, +0.146367f, -0.069359f, +0.000113f, -0.000008f}, - {-0.510211f, +0.346437f, -0.108605f, -0.002970f, +0.000155f}, - {+0.074260f, +0.560217f, +0.027236f, -0.002049f, -0.000186f}, - {-0.640923f, +0.399438f, -0.091106f, -0.002796f, -0.000106f}, - {+0.044642f, +0.248879f, -0.008677f, -0.000509f, +0.000000f}, - {-0.335263f, -0.156297f, -0.049323f, +0.000645f, +0.000147f}, - {-0.063966f, -0.317445f, -0.003743f, -0.000353f, -0.000104f}, - {-0.262625f, -0.364710f, -0.040769f, -0.000478f, +0.000032f} - }, - { - {+0.034174f, +0.634603f, -0.061570f, +0.001602f, -0.000188f}, - {-0.013628f, +1.647816f, -0.010906f, -0.000105f, -0.000196f}, - {+0.159259f, +0.839126f, -0.028715f, +0.002082f, +0.000121f}, - {-0.038877f, -0.161887f, +0.013994f, -0.000806f, -0.000056f}, - {-0.012978f, +0.315172f, +0.007498f, +0.002515f, +0.000252f}, - {+0.019363f, -0.116326f, -0.016454f, -0.000653f, -0.000042f}, - {-0.094327f, +0.601401f, -0.004764f, -0.000515f, -0.000115f}, - {-0.020768f, +0.223263f, +0.032482f, -0.000406f, -0.000007f}, - {-0.103308f, +0.996284f, -0.012091f, +0.001669f, -0.000042f}, - {-0.188420f, +0.132863f, -0.019901f, +0.000373f, +0.000142f}, - {-0.002933f, +1.351350f, -0.016706f, +0.001459f, +0.000157f}, - {-0.050602f, +0.139166f, +0.011699f, +0.000107f, -0.000001f}, - {+0.044496f, +0.422612f, +0.003243f, -0.000732f, -0.000105f}, - {+0.088139f, -0.113041f, -0.007062f, +0.000964f, +0.000050f}, - {+0.121488f, +0.224605f, +0.019225f, +0.000384f, -0.000026f} - }, - { - {+0.096822f, +0.476180f, +0.001375f, -0.004303f, -0.000266f}, - {+0.784649f, +0.402307f, +0.111953f, -0.001767f, -0.000165f}, - {+0.455351f, +0.319212f, +0.073899f, -0.000685f, +0.000240f}, - {+0.017834f, -0.185600f, -0.026574f, -0.000319f, -0.000122f}, - {+0.289202f, -0.112057f, +0.026763f, +0.000919f, +0.000329f}, - {-0.018413f, -0.094635f, +0.004745f, -0.000689f, -0.000026f}, - {+0.470118f, -0.258982f, +0.068848f, -0.000550f, -0.000008f}, - {+0.014543f, +0.234428f, -0.011333f, +0.000353f, +0.000011f}, - {+0.630013f, -0.134362f, +0.098657f, -0.000312f, -0.000136f}, - {+0.133981f, -0.356598f, +0.000886f, +0.001721f, +0.000118f}, - {+0.691576f, +0.262485f, +0.098749f, +0.001088f, +0.000023f}, - {+0.048698f, +0.024439f, -0.007108f, +0.000514f, +0.000001f}, - {+0.331076f, -0.023745f, +0.052104f, -0.001010f, -0.000099f}, - {-0.069842f, +0.096568f, +0.001861f, +0.000341f, +0.000080f}, - {+0.208364f, +0.091797f, +0.036409f, +0.000063f, -0.000021f} - }, - { - {-0.157471f, +0.109039f, +0.009535f, +0.001756f, +0.000208f}, - {-0.275485f, -1.249177f, -0.051619f, +0.000413f, +0.000207f}, - {-0.251132f, -0.782342f, -0.026586f, -0.001157f, -0.000151f}, - {+0.000952f, -0.142768f, +0.022685f, +0.000903f, +0.000072f}, - {+0.001377f, -0.518955f, +0.008364f, -0.001070f, -0.000274f}, - {+0.017479f, -0.075912f, -0.014473f, +0.000492f, +0.000040f}, - {+0.024915f, -0.938659f, -0.001094f, -0.000206f, +0.000101f}, - {-0.007828f, +0.216324f, -0.002450f, +0.000122f, +0.000005f}, - {-0.047015f, -1.194136f, -0.019166f, +0.000263f, +0.000066f}, - {+0.035179f, -0.495586f, -0.002434f, +0.000356f, -0.000140f}, - {-0.225369f, -1.146623f, -0.025041f, +0.000712f, -0.000119f}, - {-0.041993f, -0.079290f, +0.005374f, -0.000241f, +0.000001f}, - {-0.042950f, -0.611443f, -0.015577f, +0.000564f, +0.000110f}, - {+0.019868f, +0.221770f, +0.001086f, -0.000552f, -0.000058f}, - {-0.084537f, -0.361650f, -0.016659f, -0.000278f, +0.000027f} - }, - { - {+0.119463f, -0.260644f, +0.000730f, +0.002454f, +0.000187f}, - {-0.638841f, -0.716808f, -0.087844f, +0.000999f, +0.000093f}, - {-0.358444f, -0.623901f, -0.042829f, +0.000564f, -0.000182f}, - {-0.013400f, -0.075190f, -0.009967f, +0.000251f, +0.000094f}, - {-0.356273f, +0.051713f, -0.055059f, -0.001405f, -0.000222f}, - {-0.016391f, -0.073933f, +0.020325f, +0.000320f, +0.000010f}, - {-0.558219f, -0.041438f, -0.081336f, +0.000205f, -0.000026f}, - {+0.002911f, +0.179435f, +0.015582f, -0.000426f, -0.000012f}, - {-0.700096f, -0.217086f, -0.089015f, -0.000055f, +0.000112f}, - {-0.170406f, -0.188028f, -0.011393f, -0.001711f, -0.000064f}, - {-0.613387f, -0.542946f, -0.085584f, -0.000623f, +0.000026f}, - {+0.031711f, -0.166672f, -0.004751f, -0.000501f, -0.000001f}, - {-0.388203f, -0.100241f, -0.048703f, +0.000607f, +0.000060f}, - {+0.037926f, +0.212515f, -0.009955f, -0.000474f, -0.000058f}, - {-0.243489f, -0.119652f, -0.037808f, -0.000041f, +0.000012f} - }, - { - {-0.018243f, -0.427994f, +0.007742f, -0.001543f, -0.000197f}, - {+0.428480f, +0.916268f, +0.061127f, +0.000167f, -0.000191f}, - {+0.328028f, +0.427987f, +0.043949f, -0.000347f, +0.000159f}, - {+0.017299f, -0.013770f, +0.002341f, -0.000570f, -0.000078f}, - {+0.103644f, +0.768055f, +0.017035f, +0.000309f, +0.000256f}, - {+0.015958f, -0.076522f, -0.015048f, -0.000200f, -0.000031f}, - {+0.152316f, +1.054485f, +0.026241f, +0.000619f, -0.000075f}, - {+0.000543f, +0.133568f, -0.013971f, -0.000050f, -0.000002f}, - {+0.296986f, +1.289182f, +0.034915f, -0.000175f, -0.000081f}, - {+0.158818f, +0.295857f, +0.012511f, -0.000363f, +0.000119f}, - {+0.387624f, +1.005937f, +0.059332f, -0.001214f, +0.000064f}, - {-0.017600f, -0.228196f, +0.004584f, +0.000391f, +0.000000f}, - {+0.124621f, +0.674220f, +0.018405f, -0.000154f, -0.000100f}, - {-0.077494f, +0.080369f, +0.012731f, +0.000384f, +0.000057f}, - {+0.130947f, +0.464380f, +0.027044f, +0.000227f, -0.000024f} - }, - { - {-0.078278f, -0.330646f, -0.006905f, -0.001256f, -0.000133f}, - {+0.474270f, +0.848355f, +0.072295f, -0.000352f, -0.000045f}, - {+0.210978f, +0.611947f, +0.028321f, +0.000762f, +0.000134f}, - {-0.012805f, +0.031238f, -0.001412f, -0.000282f, -0.000070f}, - {+0.339239f, +0.417518f, +0.042058f, +0.001229f, +0.000149f}, - {-0.016853f, -0.064800f, +0.007621f, -0.000050f, -0.000001f}, - {+0.525031f, +0.496181f, +0.068966f, +0.000154f, +0.000041f}, - {-0.003936f, +0.097134f, +0.013071f, +0.000574f, +0.000012f}, - {+0.610173f, +0.790742f, +0.091162f, +0.000033f, -0.000087f}, - {-0.014322f, +0.547795f, -0.000233f, +0.001234f, +0.000033f}, - {+0.511076f, +0.828412f, +0.066510f, +0.000121f, -0.000037f}, - {+0.001487f, -0.254447f, +0.003704f, +0.000354f, +0.000001f}, - {+0.412615f, +0.228133f, +0.058325f, -0.000274f, -0.000034f}, - {+0.081818f, -0.118377f, -0.003734f, +0.000481f, +0.000041f}, - {+0.253975f, +0.294824f, +0.029043f, +0.000151f, -0.000007f} - }, - { - {+0.112532f, -0.069243f, -0.003530f, +0.000958f, +0.000176f}, - {-0.522564f, -0.689848f, -0.077661f, -0.000834f, +0.000166f}, - {-0.302251f, -0.172630f, -0.042769f, -0.000157f, -0.000153f}, - {+0.001708f, +0.057201f, +0.003140f, +0.000396f, +0.000076f}, - {-0.214362f, -0.409809f, -0.017566f, -0.000172f, -0.000221f}, - {+0.018111f, -0.036447f, -0.007132f, -0.000014f, +0.000022f}, - {-0.320094f, -0.781338f, -0.036876f, -0.000754f, +0.000050f}, - {+0.007080f, +0.079137f, -0.013350f, -0.000072f, -0.000001f}, - {-0.510842f, -0.943853f, -0.074947f, -0.000045f, +0.000087f}, - {-0.139752f, +0.365032f, -0.009628f, +0.000228f, -0.000093f}, - {-0.543962f, -0.791940f, -0.077879f, +0.000741f, -0.000016f}, - {+0.013164f, -0.250065f, -0.009012f, -0.000362f, -0.000001f}, - {-0.254482f, -0.797757f, -0.038335f, -0.000175f, +0.000085f}, - {-0.049796f, -0.291278f, +0.001346f, -0.000394f, -0.000053f}, - {-0.229974f, -0.433573f, -0.029915f, -0.000329f, +0.000021f} - }, - { - {-0.069628f, +0.172555f, +0.007715f, +0.000961f, +0.000103f}, - {-0.265772f, -1.102965f, -0.038204f, +0.000514f, +0.000019f}, - {-0.117719f, -0.454174f, -0.022429f, -0.000476f, -0.000099f}, - {+0.013244f, +0.062592f, -0.010308f, +0.000225f, +0.000052f}, - {-0.201529f, -0.405038f, -0.040488f, -0.000745f, -0.000107f}, - {-0.018100f, -0.013096f, +0.013467f, -0.000067f, -0.000001f}, - {-0.361155f, -0.708560f, -0.057133f, -0.000206f, -0.000040f}, - {-0.008695f, +0.076549f, +0.007847f, -0.000668f, -0.000011f}, - {-0.368660f, -1.181142f, -0.048879f, +0.000032f, +0.000065f}, - {+0.176656f, -0.096997f, +0.010473f, -0.000832f, -0.000022f}, - {-0.337856f, -1.120965f, -0.041209f, +0.000362f, +0.000020f}, - {-0.024579f, -0.224963f, +0.010283f, -0.000321f, -0.000001f}, - {-0.366798f, -0.628661f, -0.050159f, +0.000274f, +0.000021f}, - {-0.003667f, -0.351759f, -0.002318f, -0.000327f, -0.000030f}, - {-0.167111f, -0.533443f, -0.021361f, -0.000057f, +0.000004f} - }, - { - {-0.013799f, +0.233209f, -0.009213f, -0.000993f, -0.000158f}, - {+0.496756f, +0.057133f, +0.069911f, +0.000582f, -0.000145f}, - {+0.232556f, +0.085603f, +0.033781f, +0.000044f, +0.000142f}, - {-0.028336f, +0.044645f, +0.018511f, -0.000332f, -0.000071f}, - {+0.144537f, +0.136639f, +0.022436f, +0.000164f, +0.000188f}, - {+0.016829f, -0.022096f, -0.026397f, +0.000125f, -0.000014f}, - {+0.320451f, +0.325110f, +0.037509f, +0.000534f, -0.000034f}, - {+0.008799f, +0.071779f, -0.008463f, +0.000227f, +0.000003f}, - {+0.533956f, +0.174039f, +0.062174f, +0.000242f, -0.000087f}, - {-0.072117f, -0.457416f, +0.001824f, -0.000008f, +0.000074f}, - {+0.654744f, +0.389244f, +0.083646f, -0.000024f, -0.000011f}, - {+0.032888f, -0.190496f, -0.018766f, +0.000377f, +0.000002f}, - {+0.392163f, +0.534188f, +0.053345f, +0.000158f, -0.000074f}, - {+0.054650f, -0.275758f, -0.003951f, +0.000369f, +0.000048f}, - {+0.262065f, +0.107178f, +0.028017f, +0.000293f, -0.000020f} - }, - { - {+0.074284f, +0.084134f, +0.007785f, -0.000781f, -0.000086f}, - {+0.102800f, +0.661769f, +0.024778f, -0.000437f, -0.000005f}, - {+0.107119f, +0.278685f, +0.016547f, +0.000374f, +0.000075f}, - {+0.039407f, -0.003431f, -0.017016f, -0.000081f, -0.000039f}, - {+0.195513f, +0.053148f, +0.036408f, +0.000495f, +0.000088f}, - {-0.015811f, -0.069404f, +0.040379f, +0.000018f, -0.000001f}, - {+0.262170f, +0.386464f, +0.055981f, +0.000107f, +0.000032f}, - {-0.008796f, +0.039878f, +0.029331f, +0.000673f, +0.000009f}, - {+0.150457f, +0.722389f, +0.047459f, -0.000189f, -0.000048f}, - {-0.079622f, -0.437077f, -0.008280f, +0.000635f, +0.000020f}, - {+0.071443f, +1.277356f, +0.015093f, -0.000771f, +0.000006f}, - {-0.037714f, -0.147621f, +0.022372f, +0.000244f, +0.000000f}, - {+0.212102f, +0.813239f, +0.030110f, -0.000386f, -0.000015f}, - {-0.081528f, -0.108982f, +0.013906f, +0.000206f, +0.000024f}, - {+0.056613f, +0.402997f, +0.018809f, -0.000058f, -0.000003f} - }, - { - {-0.068348f, -0.137916f, -0.005467f, +0.001073f, +0.000148f}, - {-0.373541f, -0.070450f, -0.057055f, -0.000471f, +0.000133f}, - {-0.194055f, -0.183976f, -0.031319f, +0.000021f, -0.000131f}, - {-0.043324f, -0.079398f, +0.010729f, +0.000250f, +0.000065f}, - {-0.058021f, -0.340872f, -0.015175f, -0.000168f, -0.000167f}, - {+0.015544f, -0.120833f, -0.029676f, -0.000101f, +0.000010f}, - {-0.219601f, -0.375357f, -0.043726f, -0.000182f, +0.000029f}, - {+0.009251f, -0.012039f, -0.031983f, -0.000425f, -0.000004f}, - {-0.356500f, -0.091308f, -0.067895f, -0.000171f, +0.000085f}, - {+0.152562f, -0.092567f, +0.005582f, -0.000147f, -0.000064f}, - {-0.600122f, +0.246169f, -0.079809f, -0.000134f, +0.000016f}, - {+0.037990f, -0.088681f, -0.014096f, -0.000339f, -0.000002f}, - {-0.416114f, -0.143031f, -0.053447f, +0.000035f, +0.000068f}, - {+0.074697f, +0.073729f, -0.012828f, -0.000314f, -0.000044f}, - {-0.194989f, +0.005961f, -0.031053f, -0.000187f, +0.000019f} - }, - { - {+0.004230f, -0.247400f, +0.003124f, +0.000774f, +0.000074f}, - {-0.087659f, -0.512695f, -0.018072f, +0.000628f, -0.000005f}, - {-0.140227f, -0.269891f, -0.017446f, -0.000365f, -0.000059f}, - {+0.039115f, -0.159891f, -0.011788f, -0.000015f, +0.000031f}, - {-0.364382f, +0.144921f, -0.059984f, -0.000608f, -0.000077f}, - {-0.014698f, -0.139313f, +0.012041f, +0.000055f, +0.000003f}, - {-0.377988f, -0.130201f, -0.060381f, -0.000116f, -0.000028f}, - {-0.009092f, -0.048503f, +0.012832f, -0.000508f, -0.000007f}, - {-0.226054f, -0.302457f, -0.037146f, +0.000151f, +0.000034f}, - {-0.098171f, +0.266370f, -0.001070f, -0.000683f, -0.000019f}, - {+0.139489f, -0.879999f, +0.008732f, +0.000589f, -0.000026f}, - {-0.033828f, -0.018438f, +0.006260f, -0.000203f, +0.000001f}, - {-0.064067f, -0.676039f, -0.014733f, +0.000450f, +0.000011f}, - {-0.039508f, +0.203205f, +0.006838f, -0.000188f, -0.000019f}, - {-0.039081f, -0.235768f, -0.009467f, +0.000096f, +0.000001f} - }, - { - {+0.068235f, -0.162863f, -0.004225f, -0.001090f, -0.000145f}, - {+0.318402f, +0.113290f, +0.052715f, +0.000298f, -0.000128f}, - {+0.222259f, +0.286163f, +0.036304f, -0.000074f, +0.000123f}, - {-0.028003f, -0.213729f, +0.017741f, -0.000168f, -0.000060f}, - {+0.168949f, +1.006240f, +0.051466f, +0.000233f, +0.000155f}, - {+0.012329f, -0.133114f, -0.010035f, +0.000080f, -0.000008f}, - {+0.295804f, +0.931852f, +0.065440f, +0.000118f, -0.000031f}, - {+0.007439f, -0.068218f, -0.011914f, +0.000536f, +0.000003f}, - {+0.367568f, +0.620904f, +0.068733f, +0.000078f, -0.000081f}, - {-0.021528f, +0.360393f, -0.007525f, +0.000307f, +0.000061f}, - {+0.430741f, -0.415072f, +0.068905f, +0.000095f, -0.000010f}, - {+0.026607f, +0.045352f, -0.006073f, +0.000328f, +0.000002f}, - {+0.337971f, -0.061032f, +0.046616f, -0.000184f, -0.000066f}, - {-0.007696f, +0.230864f, -0.004179f, +0.000321f, +0.000041f}, - {+0.140962f, +0.039662f, +0.023194f, +0.000152f, -0.000020f} - }, - { - {-0.096632f, +0.049253f, +0.005518f, -0.000776f, -0.000061f}, - {+0.114366f, +0.439023f, +0.013577f, -0.000632f, +0.000018f}, - {+0.146025f, +0.413262f, +0.013620f, +0.000490f, +0.000047f}, - {+0.012919f, -0.226782f, -0.015875f, +0.000030f, -0.000025f}, - {+0.535433f, +0.502251f, +0.042436f, +0.000856f, +0.000067f}, - {-0.009438f, -0.120072f, +0.004422f, -0.000186f, -0.000005f}, - {+0.531267f, +0.602899f, +0.057270f, +0.000190f, +0.000029f}, - {-0.004993f, -0.093043f, +0.020060f, +0.000234f, +0.000006f}, - {+0.350940f, +0.655711f, +0.044044f, +0.000096f, -0.000024f}, - {+0.099390f, +0.167283f, +0.010833f, +0.000671f, +0.000016f}, - {-0.198525f, +0.570779f, -0.031605f, -0.000217f, +0.000035f}, - {-0.017518f, +0.088396f, +0.008215f, +0.000121f, -0.000002f}, - {+0.020489f, +0.410883f, +0.013705f, -0.000359f, -0.000004f}, - {+0.046927f, +0.149468f, +0.001282f, +0.000116f, +0.000015f}, - {+0.086552f, +0.116817f, +0.017093f, -0.000096f, +0.000002f} - }, - { - {+0.060863f, +0.238331f, -0.011460f, +0.000913f, +0.000143f}, - {-0.348389f, -0.260238f, -0.050528f, -0.000503f, +0.000124f}, - {-0.279661f, -0.215310f, -0.029652f, -0.000025f, -0.000117f}, - {+0.002338f, -0.204608f, +0.009349f, +0.000140f, +0.000057f}, - {-0.590548f, -1.177681f, -0.067007f, -0.000422f, -0.000149f}, - {+0.007460f, -0.098657f, +0.003842f, +0.000003f, +0.000008f}, - {-0.673358f, -1.238148f, -0.098880f, -0.000483f, +0.000033f}, - {+0.002912f, -0.110891f, -0.004777f, -0.000426f, -0.000003f}, - {-0.639886f, -0.885842f, -0.107555f, -0.000336f, +0.000078f}, - {-0.079159f, -0.098142f, -0.005001f, -0.000304f, -0.000060f}, - {-0.308064f, +0.413337f, -0.045363f, -0.000012f, +0.000001f}, - {+0.007477f, +0.105861f, -0.006424f, -0.000253f, -0.000001f}, - {-0.261775f, -0.043581f, -0.050039f, +0.000020f, +0.000065f}, - {-0.062463f, -0.000784f, +0.002260f, -0.000235f, -0.000039f}, - {-0.150809f, -0.261923f, -0.032650f, -0.000224f, +0.000020f} - }, - { - {+0.015472f, +0.264305f, +0.017737f, +0.000856f, +0.000046f}, - {-0.084802f, -0.667993f, -0.010575f, +0.000724f, -0.000035f}, - {-0.089394f, -0.474721f, -0.024189f, -0.000463f, -0.000036f}, - {-0.014406f, -0.156721f, -0.006466f, -0.000058f, +0.000021f}, - {-0.260757f, -1.668672f, -0.030273f, -0.000841f, -0.000056f}, - {-0.006401f, -0.070186f, -0.003971f, +0.000249f, +0.000005f}, - {-0.321247f, -1.806107f, -0.023973f, -0.000065f, -0.000036f}, - {-0.001179f, -0.100912f, -0.010248f, -0.000161f, -0.000006f}, - {-0.215765f, -1.592243f, +0.000805f, -0.000059f, +0.000015f}, - {-0.003715f, -0.201207f, -0.005927f, -0.000616f, -0.000010f}, - {+0.215203f, -0.393691f, +0.031962f, -0.000030f, -0.000036f}, - {+0.002052f, +0.101907f, +0.001064f, -0.000125f, +0.000002f}, - {-0.094885f, -0.311374f, -0.010396f, +0.000395f, -0.000004f}, - {+0.049378f, -0.150147f, -0.003824f, -0.000109f, -0.000012f}, - {-0.162343f, -0.260689f, -0.014631f, +0.000139f, -0.000005f} - }, - { - {-0.079129f, +0.089447f, -0.017358f, -0.000833f, -0.000140f}, - {+0.375523f, +0.023640f, +0.048685f, +0.000757f, -0.000117f}, - {+0.258582f, +0.079328f, +0.043901f, +0.000050f, +0.000112f}, - {+0.021223f, -0.092022f, +0.005689f, -0.000083f, -0.000054f}, - {+0.786144f, -0.080409f, +0.090050f, +0.000512f, +0.000142f}, - {+0.005503f, -0.044093f, +0.001337f, -0.000087f, -0.000009f}, - {+0.965102f, +0.119837f, +0.107386f, +0.000882f, -0.000031f}, - {-0.000981f, -0.077878f, +0.008428f, +0.000405f, +0.000002f}, - {+0.930096f, +0.098134f, +0.098802f, +0.000616f, -0.000075f}, - {+0.064026f, -0.088096f, +0.011146f, +0.000233f, +0.000056f}, - {+0.207826f, -0.415264f, +0.029295f, +0.000038f, +0.000002f}, - {-0.009657f, +0.084358f, +0.002160f, +0.000249f, +0.000001f}, - {+0.348493f, +0.377419f, +0.058713f, +0.000176f, -0.000061f}, - {-0.015606f, -0.234362f, +0.001126f, +0.000178f, +0.000037f}, - {+0.294795f, +0.433182f, +0.041685f, +0.000320f, -0.000019f} - }, - { - {+0.080505f, -0.187637f, +0.019358f, -0.000727f, -0.000031f}, - {+0.011617f, +0.566329f, +0.010818f, -0.000813f, +0.000052f}, - {+0.132841f, +0.262806f, +0.024438f, +0.000308f, +0.000026f}, - {-0.021831f, -0.022144f, -0.002755f, +0.000059f, -0.000017f}, - {-0.205095f, +1.404475f, -0.007402f, +0.000565f, +0.000044f}, - {-0.004774f, -0.026838f, -0.000147f, -0.000221f, -0.000005f}, - {-0.222202f, +1.897742f, -0.010669f, -0.000249f, +0.000043f}, - {+0.003482f, -0.062741f, -0.005241f, +0.000061f, +0.000006f}, - {-0.290105f, +1.917533f, -0.020963f, -0.000272f, -0.000007f}, - {-0.047371f, +0.088805f, -0.005938f, +0.000518f, +0.000004f}, - {-0.201041f, +0.205200f, -0.025538f, -0.000061f, +0.000035f}, - {+0.015038f, +0.059421f, -0.003892f, +0.000105f, -0.000002f}, - {+0.083840f, +0.806848f, -0.003013f, -0.000531f, +0.000012f}, - {-0.022639f, -0.224357f, +0.002261f, +0.000083f, +0.000008f}, - {+0.099553f, +0.738308f, +0.006449f, -0.000279f, +0.000009f} - }, - { - {-0.008676f, -0.381006f, -0.027530f, +0.000698f, +0.000133f}, - {-0.321962f, +0.045967f, -0.050855f, -0.000806f, +0.000106f}, - {-0.333039f, -0.490802f, -0.069288f, +0.000184f, -0.000106f}, - {+0.016172f, +0.039278f, +0.001628f, +0.000029f, +0.000052f}, - {-0.548412f, +0.842992f, -0.085952f, -0.000354f, -0.000134f}, - {+0.004662f, -0.018565f, -0.002225f, +0.000116f, +0.000008f}, - {-0.754935f, +1.057276f, -0.105512f, -0.000835f, +0.000025f}, - {-0.005191f, -0.055847f, +0.006776f, -0.000297f, -0.000002f}, - {-0.764167f, +1.164667f, -0.105780f, -0.000566f, +0.000072f}, - {-0.022628f, +0.130641f, -0.002714f, -0.000204f, -0.000050f}, - {-0.122642f, +0.322608f, -0.022110f, -0.000056f, +0.000000f}, - {-0.018356f, +0.029667f, +0.006419f, -0.000243f, -0.000000f}, - {-0.518100f, -0.094410f, -0.062463f, -0.000139f, +0.000056f}, - {+0.049287f, -0.133318f, -0.004421f, -0.000132f, -0.000035f}, - {-0.434073f, -0.068727f, -0.052169f, -0.000227f, +0.000017f} - }, - { - {-0.097840f, -0.332634f, +0.030265f, +0.000594f, +0.000019f}, - {-0.038137f, -0.385406f, -0.010409f, +0.000707f, -0.000065f}, - {-0.190441f, -0.753884f, -0.002223f, -0.000383f, -0.000017f}, - {-0.005702f, +0.080693f, -0.004935f, -0.000052f, +0.000014f}, - {+0.365869f, -0.574688f, +0.044782f, -0.000359f, -0.000035f}, - {-0.004896f, -0.016910f, +0.005971f, +0.000183f, +0.000004f}, - {+0.509461f, -0.878965f, +0.054906f, +0.000325f, -0.000047f}, - {+0.005446f, -0.041391f, -0.014691f, -0.000099f, -0.000006f}, - {+0.637245f, -0.985968f, +0.074777f, +0.000503f, +0.000000f}, - {+0.070412f, -0.012539f, +0.007876f, -0.000375f, -0.000000f}, - {+0.137132f, -0.078455f, +0.021394f, +0.000266f, -0.000037f}, - {+0.019181f, -0.003090f, -0.008425f, -0.000093f, +0.000002f}, - {+0.143668f, -1.098716f, +0.019876f, +0.000534f, -0.000018f}, - {-0.055115f, -0.004451f, +0.006264f, -0.000044f, -0.000005f}, - {+0.119466f, -0.909317f, +0.014091f, +0.000299f, -0.000011f} - }, - { - {+0.175273f, -0.023562f, -0.023746f, -0.000630f, -0.000126f}, - {+0.331132f, +0.194225f, +0.057578f, +0.000747f, -0.000093f}, - {+0.627504f, +0.480941f, +0.082337f, -0.000333f, +0.000101f}, - {-0.006544f, +0.094670f, +0.007541f, +0.000004f, -0.000050f}, - {+0.295039f, -0.672027f, +0.054372f, +0.000122f, +0.000125f}, - {+0.004837f, -0.019428f, -0.006928f, -0.000132f, -0.000008f}, - {+0.400343f, -1.020229f, +0.073414f, +0.000516f, -0.000018f}, - {-0.004969f, -0.009476f, +0.020427f, +0.000267f, +0.000003f}, - {+0.360870f, -1.393762f, +0.062226f, +0.000263f, -0.000070f}, - {-0.042458f, -0.192483f, -0.007499f, +0.000213f, +0.000044f}, - {+0.102962f, -0.133692f, +0.017046f, +0.000058f, -0.000004f}, - {-0.017204f, -0.034316f, +0.007328f, +0.000233f, -0.000000f}, - {+0.507541f, -0.537711f, +0.066509f, -0.000058f, -0.000050f}, - {+0.040095f, +0.110095f, -0.006831f, +0.000094f, +0.000032f}, - {+0.395091f, -0.483632f, +0.051459f, +0.000055f, -0.000014f} - }, - { - {-0.174931f, +0.405419f, +0.015309f, -0.000501f, -0.000010f}, - {+0.118595f, +0.523257f, +0.014397f, -0.000463f, +0.000073f}, - {-0.085629f, +1.588035f, -0.029002f, +0.000587f, +0.000010f}, - {+0.017435f, +0.079802f, -0.006823f, +0.000058f, -0.000011f}, - {-0.316752f, +0.288723f, -0.050699f, +0.000422f, +0.000029f}, - {-0.004561f, -0.022768f, +0.004869f, -0.000147f, -0.000004f}, - {-0.476204f, +0.355299f, -0.072463f, -0.000079f, +0.000046f}, - {+0.004815f, +0.024980f, -0.013792f, +0.000134f, +0.000006f}, - {-0.635138f, +0.151731f, -0.087481f, -0.000351f, +0.000006f}, - {-0.040376f, -0.208056f, +0.002374f, +0.000265f, -0.000001f}, - {-0.073883f, +0.134688f, -0.012750f, -0.000315f, +0.000044f}, - {+0.013304f, -0.059405f, -0.004532f, +0.000098f, -0.000002f}, - {-0.382443f, +0.828469f, -0.051294f, -0.000303f, +0.000022f}, - {-0.012384f, +0.169012f, +0.004629f, +0.000016f, +0.000003f}, - {-0.307076f, +0.591577f, -0.037893f, -0.000141f, +0.000013f} - }, - { - {+0.090958f, +0.736090f, -0.010403f, +0.000616f, +0.000121f}, - {-0.514918f, -0.473428f, -0.087995f, -0.000860f, +0.000083f}, - {-0.768360f, +0.569571f, -0.085193f, +0.000271f, -0.000095f}, - {-0.024982f, +0.041935f, +0.006845f, -0.000024f, +0.000049f}, - {-0.205286f, +0.468697f, -0.034216f, -0.000126f, -0.000117f}, - {+0.004522f, -0.022618f, -0.002848f, +0.000146f, +0.000007f}, - {-0.232457f, +0.742372f, -0.038652f, -0.000352f, +0.000014f}, - {-0.004903f, +0.042022f, +0.006039f, -0.000260f, -0.000003f}, - {-0.082110f, +0.999819f, -0.024102f, -0.000126f, +0.000067f}, - {+0.101242f, -0.005388f, +0.004804f, -0.000253f, -0.000039f}, - {-0.150602f, +0.011535f, -0.025408f, -0.000192f, +0.000005f}, - {-0.008744f, -0.076724f, +0.003425f, -0.000233f, +0.000000f}, - {-0.331406f, +0.906789f, -0.045131f, +0.000102f, +0.000045f}, - {-0.015290f, +0.157067f, -0.000981f, -0.000080f, -0.000030f}, - {-0.231030f, +0.702736f, -0.034462f, -0.000025f, +0.000012f} - }, - { - {+0.037936f, +0.793387f, +0.004314f, +0.000485f, +0.000003f}, - {-0.064600f, -1.204603f, +0.013970f, +0.000498f, -0.000080f}, - {+0.595520f, -1.501640f, +0.073453f, -0.000796f, -0.000004f}, - {+0.027976f, -0.007913f, -0.009415f, -0.000065f, +0.000009f}, - {+0.278663f, -0.282968f, +0.046268f, -0.000521f, -0.000025f}, - {-0.004530f, -0.017687f, +0.002804f, +0.000122f, +0.000005f}, - {+0.409986f, -0.249242f, +0.062201f, -0.000134f, -0.000045f}, - {+0.004262f, +0.042796f, -0.004138f, -0.000154f, -0.000006f}, - {+0.488486f, +0.105010f, +0.077657f, +0.000063f, -0.000011f}, - {-0.077961f, +0.260388f, -0.008472f, -0.000205f, +0.000001f}, - {+0.059362f, -0.318787f, +0.016238f, +0.000296f, -0.000053f}, - {+0.003914f, -0.085047f, -0.003947f, -0.000097f, +0.000002f}, - {+0.502012f, -0.371002f, +0.065309f, +0.000097f, -0.000025f}, - {+0.031462f, +0.090310f, -0.000921f, +0.000011f, -0.000002f}, - {+0.370084f, -0.223772f, +0.048680f, -0.000002f, -0.000014f} - }, - { - {-0.149636f, +0.538052f, +0.006084f, -0.000611f, -0.000118f}, - {+0.827722f, +0.144595f, +0.104500f, +0.001071f, -0.000077f}, - {+0.467195f, -1.692609f, +0.058903f, +0.000104f, +0.000089f}, - {-0.025636f, -0.055618f, +0.011600f, +0.000028f, -0.000048f}, - {+0.205441f, -0.402400f, +0.029844f, +0.000329f, +0.000110f}, - {+0.004098f, -0.011944f, -0.002929f, -0.000161f, -0.000006f}, - {+0.191709f, -0.584087f, +0.033433f, +0.000494f, -0.000015f}, - {-0.002619f, +0.040624f, +0.003157f, +0.000276f, +0.000002f}, - {+0.007387f, -0.645944f, +0.005672f, +0.000317f, -0.000066f}, - {-0.020149f, +0.355606f, +0.004860f, +0.000282f, +0.000036f}, - {+0.247232f, -0.035269f, +0.031769f, +0.000397f, -0.000002f}, - {+0.001071f, -0.081553f, +0.003085f, +0.000224f, -0.000001f}, - {+0.097784f, -0.984307f, +0.019871f, +0.000081f, -0.000042f}, - {-0.031261f, +0.005952f, +0.001021f, +0.000072f, +0.000028f}, - {+0.058999f, -0.697197f, +0.013908f, +0.000158f, -0.000011f} - }, - { - {+0.191950f, +0.087119f, -0.014576f, -0.000500f, +0.000005f}, - {-0.385403f, +2.025003f, -0.067170f, -0.000984f, +0.000091f}, - {-0.901808f, +0.409162f, -0.113518f, +0.000622f, -0.000001f}, - {+0.018604f, -0.087716f, -0.010677f, +0.000076f, -0.000007f}, - {-0.340540f, +0.449344f, -0.057337f, +0.000418f, +0.000024f}, - {-0.003480f, -0.009550f, +0.002629f, -0.000103f, -0.000006f}, - {-0.428687f, +0.393778f, -0.074774f, -0.000048f, +0.000047f}, - {+0.000921f, +0.042725f, -0.001194f, +0.000126f, +0.000006f}, - {-0.427440f, +0.038949f, -0.073317f, -0.000052f, +0.000018f}, - {+0.118426f, +0.167571f, +0.002305f, +0.000179f, -0.000000f}, - {-0.163420f, +0.598589f, -0.028490f, -0.000385f, +0.000063f}, - {-0.005293f, -0.066220f, -0.000854f, +0.000098f, -0.000003f}, - {-0.474783f, -0.093712f, -0.068247f, -0.000172f, +0.000028f}, - {+0.017599f, -0.057663f, -0.001087f, -0.000028f, +0.000002f}, - {-0.330717f, -0.088966f, -0.048155f, -0.000042f, +0.000016f} - }, - { - {-0.150777f, -0.352435f, +0.014939f, +0.000525f, +0.000117f}, - {-0.820967f, +1.396060f, -0.082591f, -0.001080f, +0.000073f}, - {+0.085997f, +1.932699f, +0.012400f, -0.000333f, -0.000084f}, - {-0.009271f, -0.099001f, +0.007488f, -0.000034f, +0.000049f}, - {-0.167433f, +0.744157f, -0.009296f, -0.000465f, -0.000105f}, - {+0.003289f, -0.009763f, -0.003111f, +0.000178f, +0.000006f}, - {-0.168349f, +0.830150f, -0.008407f, -0.000668f, +0.000020f}, - {-0.000000f, +0.045818f, +0.000068f, -0.000275f, -0.000002f}, - {+0.019397f, +0.761830f, +0.016865f, -0.000546f, +0.000066f}, - {-0.137355f, -0.195198f, -0.005364f, -0.000280f, -0.000033f}, - {-0.278983f, +0.428651f, -0.030784f, -0.000466f, -0.000003f}, - {+0.007779f, -0.044555f, -0.000090f, -0.000218f, +0.000002f}, - {+0.072264f, +0.751091f, +0.007010f, -0.000263f, +0.000040f}, - {+0.001751f, -0.077278f, +0.001048f, -0.000070f, -0.000027f}, - {+0.046426f, +0.493923f, +0.003695f, -0.000284f, +0.000010f} - }, - { - {+0.054928f, -0.599328f, -0.011137f, +0.000543f, -0.000015f}, - {+0.973999f, -1.326967f, +0.113765f, +0.001528f, -0.000109f}, - {+0.802011f, +0.850769f, +0.092957f, -0.000268f, +0.000004f}, - {+0.000070f, -0.093592f, -0.004683f, -0.000080f, +0.000005f}, - {+0.480304f, -0.226458f, +0.056755f, -0.000175f, -0.000025f}, - {-0.003370f, -0.008879f, +0.003376f, +0.000086f, +0.000007f}, - {+0.586783f, -0.312533f, +0.076617f, +0.000454f, -0.000057f}, - {-0.000529f, +0.044011f, +0.001089f, -0.000099f, -0.000007f}, - {+0.502607f, +0.042700f, +0.063103f, +0.000302f, -0.000026f}, - {+0.055993f, -0.478277f, +0.004329f, -0.000157f, -0.000001f}, - {+0.341832f, -0.520706f, +0.046329f, +0.000527f, -0.000073f}, - {-0.008726f, -0.022784f, +0.000128f, -0.000090f, +0.000003f}, - {+0.391916f, +0.250262f, +0.060370f, +0.000436f, -0.000035f}, - {-0.018050f, -0.050444f, +0.000411f, +0.000043f, -0.000002f}, - {+0.271217f, +0.138661f, +0.043494f, +0.000221f, -0.000019f} - }, - { - {+0.044873f, -0.585962f, +0.006926f, -0.000401f, -0.000114f}, - {+0.276224f, -2.380785f, +0.034378f, +0.000866f, -0.000064f}, - {-0.574027f, -1.239612f, -0.059121f, +0.000267f, +0.000080f}, - {+0.007798f, -0.076508f, +0.001694f, +0.000056f, -0.000050f}, - {-0.051565f, -1.034040f, -0.006426f, +0.000409f, +0.000100f}, - {+0.003128f, -0.005933f, -0.002193f, -0.000201f, -0.000006f}, - {-0.075554f, -1.342643f, -0.020635f, +0.000711f, -0.000022f}, - {+0.001410f, +0.036177f, -0.004574f, +0.000285f, +0.000001f}, - {-0.238736f, -1.105056f, -0.040104f, +0.000589f, -0.000067f}, - {+0.071149f, -0.471140f, -0.003694f, +0.000274f, +0.000030f}, - {+0.166940f, -0.787265f, +0.018834f, +0.000377f, +0.000010f}, - {+0.008828f, -0.002646f, -0.001328f, +0.000217f, -0.000003f}, - {-0.174730f, -0.637003f, -0.029684f, +0.000268f, -0.000036f}, - {+0.024692f, +0.006183f, -0.002075f, +0.000066f, +0.000027f}, - {-0.100930f, -0.449452f, -0.020006f, +0.000267f, -0.000009f} - }, - { - {-0.105333f, -0.370152f, -0.000654f, -0.000526f, +0.000028f}, - {-1.151547f, -0.177019f, -0.147650f, -0.001592f, +0.000133f}, - {-0.320006f, -1.612536f, -0.049464f, +0.000016f, -0.000007f}, - {-0.013351f, -0.049795f, +0.002652f, +0.000078f, -0.000002f}, - {-0.464082f, -0.398816f, -0.059983f, +0.000056f, +0.000030f}, - {-0.002706f, -0.003059f, +0.001010f, -0.000072f, -0.000009f}, - {-0.597404f, -0.567240f, -0.065924f, -0.000645f, +0.000074f}, - {-0.002412f, +0.025484f, +0.007743f, +0.000094f, +0.000009f}, - {-0.415527f, -0.863967f, -0.040017f, -0.000487f, +0.000038f}, - {-0.155531f, -0.165362f, +0.003964f, +0.000115f, +0.000002f}, - {-0.472799f, +0.203811f, -0.066731f, -0.000530f, +0.000086f}, - {-0.007973f, +0.016214f, +0.002714f, +0.000076f, -0.000003f}, - {-0.322387f, -0.417885f, -0.044341f, -0.000578f, +0.000043f}, - {-0.019699f, +0.064382f, +0.001702f, -0.000054f, +0.000002f}, - {-0.247379f, -0.232595f, -0.032902f, -0.000318f, +0.000022f} - }, - { - {+0.109194f, -0.083429f, -0.007573f, +0.000253f, +0.000107f}, - {+0.400658f, +2.216876f, +0.055668f, -0.000786f, +0.000043f}, - {+0.639706f, -0.140902f, +0.072396f, -0.000014f, -0.000077f}, - {+0.015129f, -0.017585f, -0.004936f, -0.000112f, +0.000052f}, - {+0.284163f, +0.751145f, +0.036029f, -0.000355f, -0.000100f}, - {+0.002697f, -0.000614f, -0.001413f, +0.000236f, +0.000007f}, - {+0.410114f, +0.956869f, +0.044194f, -0.000792f, +0.000016f}, - {+0.002771f, +0.014429f, -0.007336f, -0.000334f, -0.000001f}, - {+0.477635f, +0.474194f, +0.047166f, -0.000567f, +0.000064f}, - {+0.141060f, +0.239229f, -0.003525f, -0.000303f, -0.000027f}, - {+0.049727f, +1.021215f, +0.015862f, -0.000365f, -0.000022f}, - {+0.005773f, +0.031476f, -0.001860f, -0.000232f, +0.000005f}, - {+0.290338f, +0.530583f, +0.044252f, -0.000186f, +0.000029f}, - {+0.006527f, +0.097970f, +0.000079f, -0.000058f, -0.000028f}, - {+0.196262f, +0.454853f, +0.031214f, -0.000182f, +0.000005f} - }, - { - {-0.067664f, +0.140222f, +0.011371f, +0.000441f, -0.000039f}, - {+0.868093f, +1.506363f, +0.106932f, +0.001127f, -0.000158f}, - {-0.138699f, +1.024949f, +0.006458f, -0.000057f, +0.000008f}, - {-0.012779f, +0.011725f, +0.003006f, -0.000081f, -0.000003f}, - {+0.283018f, +0.749840f, +0.039299f, -0.000170f, -0.000037f}, - {-0.002926f, +0.002650f, +0.002597f, +0.000070f, +0.000011f}, - {+0.316157f, +1.081824f, +0.047726f, +0.000449f, -0.000095f}, - {-0.002571f, +0.002805f, +0.005457f, -0.000106f, -0.000012f}, - {+0.076037f, +1.061627f, +0.021993f, +0.000408f, -0.000053f}, - {-0.042799f, +0.484671f, +0.002594f, -0.000076f, -0.000006f}, - {+0.502391f, +0.334226f, +0.062590f, +0.000351f, -0.000099f}, - {-0.002836f, +0.040016f, -0.000130f, -0.000063f, +0.000002f}, - {+0.197709f, +0.684398f, +0.023525f, +0.000465f, -0.000051f}, - {+0.008301f, +0.095457f, -0.001040f, +0.000064f, -0.000001f}, - {+0.171518f, +0.504587f, +0.018187f, +0.000242f, -0.000026f} - }, - { - {+0.010196f, +0.223325f, -0.008752f, -0.000136f, -0.000097f}, - {-0.898846f, -1.202312f, -0.111127f, +0.001054f, -0.000007f}, - {-0.343277f, +0.666136f, -0.062566f, -0.000124f, +0.000075f}, - {+0.007972f, +0.031942f, -0.000691f, +0.000217f, -0.000054f}, - {-0.388314f, -0.288336f, -0.051984f, +0.000529f, +0.000106f}, - {+0.002760f, +0.005282f, -0.002549f, -0.000290f, -0.000009f}, - {-0.507471f, -0.197123f, -0.067791f, +0.001087f, +0.000002f}, - {+0.002531f, -0.008752f, -0.005660f, +0.000405f, +0.000003f}, - {-0.402253f, +0.307883f, -0.055228f, +0.000714f, -0.000056f}, - {-0.070650f, +0.437311f, -0.001748f, +0.000403f, +0.000026f}, - {-0.355768f, -0.993327f, -0.054010f, +0.000596f, +0.000042f}, - {+0.000216f, +0.042554f, +0.000495f, +0.000270f, -0.000007f}, - {-0.384987f, -0.208099f, -0.051771f, +0.000179f, -0.000017f}, - {-0.019085f, +0.061907f, +0.001579f, +0.000039f, +0.000029f}, - {-0.294088f, -0.204484f, -0.037474f, +0.000164f, +0.000001f} - }, - { - {+0.033052f, +0.171093f, +0.003980f, -0.000320f, +0.000047f}, - {-0.228146f, -2.230393f, -0.030166f, -0.000587f, +0.000173f}, - {+0.238184f, -0.258410f, +0.031322f, +0.000240f, -0.000009f}, - {-0.002377f, +0.043131f, +0.000706f, +0.000112f, +0.000010f}, - {-0.060595f, -0.793993f, -0.008858f, +0.000376f, +0.000046f}, - {-0.002466f, +0.004796f, +0.002037f, -0.000078f, -0.000013f}, - {-0.019463f, -0.946515f, -0.006128f, -0.000060f, +0.000114f}, - {-0.002532f, -0.018222f, +0.007151f, +0.000156f, +0.000015f}, - {+0.132522f, -0.511850f, +0.009797f, -0.000155f, +0.000069f}, - {+0.131055f, +0.158121f, -0.000712f, +0.000078f, +0.000013f}, - {-0.304768f, -1.096493f, -0.025525f, -0.000145f, +0.000111f}, - {+0.002020f, +0.042106f, -0.000158f, +0.000068f, +0.000001f}, - {+0.021990f, -0.842357f, +0.005944f, -0.000249f, +0.000055f}, - {+0.022964f, +0.011433f, -0.003037f, -0.000076f, -0.000000f}, - {+0.008259f, -0.672729f, +0.003280f, -0.000105f, +0.000028f} - }, - { - {-0.046962f, +0.050077f, -0.001588f, +0.000089f, +0.000085f}, - {+0.943378f, -0.436639f, +0.116310f, -0.001367f, -0.000041f}, - {+0.115227f, -0.449376f, +0.023077f, +0.000072f, -0.000075f}, - {-0.003813f, +0.046155f, +0.001083f, -0.000386f, +0.000055f}, - {+0.372567f, -0.120225f, +0.052721f, -0.000876f, -0.000120f}, - {+0.002831f, +0.003049f, -0.003032f, +0.000347f, +0.000013f}, - {+0.431974f, -0.236971f, +0.064468f, -0.001509f, -0.000032f}, - {+0.001694f, -0.025754f, -0.005209f, -0.000509f, -0.000007f}, - {+0.218317f, -0.357086f, +0.041148f, -0.001062f, +0.000041f}, - {-0.114286f, -0.170813f, +0.005662f, -0.000568f, -0.000029f}, - {+0.587905f, +0.248972f, +0.065981f, -0.000907f, -0.000072f}, - {-0.004398f, +0.039085f, +0.001995f, -0.000345f, +0.000007f}, - {+0.348249f, -0.355643f, +0.039940f, -0.000232f, +0.000002f}, - {-0.019684f, -0.039612f, +0.003962f, +0.000005f, -0.000030f}, - {+0.269139f, -0.282868f, +0.029869f, -0.000211f, -0.000009f} - }, - { - {+0.035262f, -0.064121f, +0.000062f, +0.000231f, -0.000051f}, - {-0.455566f, +1.708875f, -0.054162f, +0.000452f, -0.000172f}, - {-0.192219f, +0.039136f, -0.030233f, -0.000391f, +0.000011f}, - {+0.009960f, +0.040659f, -0.007882f, -0.000214f, -0.000019f}, - {-0.151787f, +0.702282f, -0.027744f, -0.000493f, -0.000050f}, - {-0.003459f, +0.003635f, +0.004308f, +0.000084f, +0.000014f}, - {-0.200317f, +0.758329f, -0.036988f, -0.000194f, -0.000123f}, - {-0.000135f, -0.033298f, +0.000587f, -0.000205f, -0.000017f}, - {-0.162215f, +0.255755f, -0.032320f, -0.000076f, -0.000082f}, - {+0.045175f, -0.377794f, -0.007841f, -0.000148f, -0.000019f}, - {-0.163597f, +1.399723f, -0.024713f, +0.000130f, -0.000114f}, - {+0.006504f, +0.032761f, -0.005276f, -0.000103f, -0.000004f}, - {-0.257894f, +0.565628f, -0.027666f, +0.000174f, -0.000054f}, - {+0.011291f, -0.076665f, -0.001833f, +0.000107f, +0.000003f}, - {-0.196880f, +0.422739f, -0.020026f, +0.000069f, -0.000027f} - }, - { - {-0.012127f, -0.127298f, +0.000833f, -0.000130f, -0.000074f}, - {-0.444057f, +1.759202f, -0.044910f, +0.001154f, +0.000093f}, - {-0.000736f, +0.347729f, +0.000522f, +0.000086f, +0.000076f}, - {-0.013551f, +0.034533f, +0.015459f, +0.000651f, -0.000052f}, - {-0.239560f, +0.592487f, -0.021732f, +0.001117f, +0.000142f}, - {+0.003047f, +0.002921f, -0.004247f, -0.000377f, -0.000018f}, - {-0.268864f, +0.681606f, -0.026063f, +0.001734f, +0.000070f}, - {-0.000753f, -0.039259f, +0.000292f, +0.000617f, +0.000012f}, - {-0.120721f, +0.337691f, -0.012906f, +0.001430f, -0.000019f}, - {+0.028936f, -0.393495f, +0.000834f, +0.000759f, +0.000038f}, - {-0.399844f, +1.078267f, -0.029979f, +0.000861f, +0.000110f}, - {-0.007180f, +0.027581f, +0.007224f, +0.000461f, -0.000007f}, - {-0.100654f, +0.814206f, -0.010958f, +0.000157f, +0.000013f}, - {-0.001782f, -0.092803f, -0.001649f, -0.000099f, +0.000032f}, - {-0.071714f, +0.616249f, -0.009039f, +0.000190f, +0.000018f} - }, - { - {-0.008466f, -0.134677f, +0.000839f, -0.000257f, +0.000052f}, - {+0.728813f, +0.047272f, +0.045531f, -0.001250f, +0.000150f}, - {+0.134468f, +0.147689f, +0.015667f, +0.000389f, -0.000013f}, - {+0.013016f, +0.046042f, -0.019821f, +0.000430f, +0.000028f}, - {+0.321579f, -0.236917f, +0.029762f, +0.000320f, +0.000044f}, - {-0.001621f, -0.009205f, +0.006632f, -0.000044f, -0.000012f}, - {+0.381969f, -0.286254f, +0.040372f, -0.000025f, +0.000117f}, - {+0.000378f, -0.034238f, -0.001813f, +0.000202f, +0.000016f}, - {+0.213097f, -0.171134f, +0.032810f, +0.000096f, +0.000087f}, - {-0.070649f, -0.265425f, +0.011686f, +0.000225f, +0.000022f}, - {+0.504933f, -0.224919f, +0.022626f, -0.000611f, +0.000102f}, - {+0.006280f, +0.031928f, -0.008216f, +0.000194f, +0.000007f}, - {+0.281733f, +0.259419f, +0.016821f, -0.000441f, +0.000047f}, - {-0.004934f, -0.092931f, +0.003049f, -0.000200f, -0.000006f}, - {+0.204994f, +0.212232f, +0.013279f, -0.000247f, +0.000023f} - }, - { - {+0.018527f, -0.109078f, -0.005489f, +0.000329f, +0.000065f}, - {-0.353923f, -1.504513f, +0.026198f, +0.000545f, -0.000139f}, - {-0.084133f, -0.180735f, -0.004411f, -0.000172f, -0.000078f}, - {-0.010424f, +0.082861f, +0.023474f, -0.001146f, +0.000046f}, - {-0.104183f, -0.869931f, +0.000308f, -0.000867f, -0.000168f}, - {+0.000803f, -0.033408f, -0.011897f, +0.000322f, +0.000023f}, - {-0.127493f, -1.057421f, -0.005120f, -0.001301f, -0.000109f}, - {+0.000030f, -0.008195f, +0.013279f, -0.000688f, -0.000018f}, - {-0.062108f, -0.611802f, -0.014295f, -0.001580f, -0.000008f}, - {+0.071132f, -0.106572f, -0.019660f, -0.000889f, -0.000050f}, - {-0.204127f, -1.223298f, +0.023938f, +0.000236f, -0.000149f}, - {-0.005016f, +0.047389f, +0.010625f, -0.000684f, +0.000004f}, - {-0.178390f, -0.395869f, +0.009715f, +0.000384f, -0.000026f}, - {+0.007626f, -0.088100f, -0.003566f, +0.000334f, -0.000032f}, - {-0.128575f, -0.262828f, +0.007081f, +0.000112f, -0.000025f} - }, - { - {-0.017699f, -0.082875f, +0.011891f, +0.000578f, -0.000051f}, - {-0.075338f, -1.875564f, -0.028130f, +0.004946f, -0.000109f}, - {-0.014569f, -0.282345f, -0.006765f, -0.000076f, +0.000018f}, - {+0.008768f, +0.121239f, -0.024347f, -0.000668f, -0.000035f}, - {-0.098275f, -0.910450f, -0.000658f, +0.001363f, -0.000027f}, - {-0.001248f, -0.047660f, +0.005049f, -0.000271f, +0.000009f}, - {-0.119123f, -1.128831f, +0.005878f, +0.002349f, -0.000097f}, - {+0.000623f, +0.026673f, -0.017741f, +0.000098f, -0.000014f}, - {-0.091052f, -0.631081f, +0.008868f, +0.001055f, -0.000083f}, - {-0.047507f, -0.016577f, +0.027027f, +0.000146f, -0.000020f}, - {-0.085761f, -1.374119f, -0.016598f, +0.003245f, -0.000072f}, - {+0.004269f, +0.061685f, -0.010970f, -0.000271f, -0.000010f}, - {+0.006812f, -0.632429f, -0.018052f, +0.001598f, -0.000035f}, - {-0.007650f, -0.083453f, +0.006678f, +0.000424f, +0.000011f}, - {+0.004270f, -0.429230f, -0.015157f, +0.000963f, -0.000015f} - }, - { - {+0.011626f, -0.074867f, -0.018739f, -0.001759f, -0.000058f}, - {+0.203973f, -1.473074f, -0.075689f, -0.015004f, +0.000170f}, - {+0.044772f, -0.201047f, -0.007619f, -0.000789f, +0.000081f}, - {-0.007757f, +0.115969f, +0.000011f, +0.002169f, -0.000037f}, - {+0.130690f, -0.666998f, -0.072078f, -0.005629f, +0.000191f}, - {+0.001511f, -0.025585f, +0.020575f, +0.000815f, -0.000027f}, - {+0.162096f, -0.852420f, -0.101067f, -0.007596f, +0.000143f}, - {-0.001484f, +0.030725f, -0.011317f, -0.000203f, +0.000023f}, - {+0.110171f, -0.452560f, -0.069373f, -0.002637f, +0.000034f}, - {+0.023832f, -0.027507f, -0.053270f, -0.000794f, +0.000063f}, - {+0.156053f, -1.053067f, -0.069492f, -0.011059f, +0.000178f}, - {-0.003568f, +0.054558f, -0.002654f, +0.001067f, -0.000000f}, - {+0.062334f, -0.517524f, -0.008781f, -0.004770f, +0.000034f}, - {+0.006460f, -0.072498f, -0.005914f, -0.001329f, +0.000031f}, - {+0.044193f, -0.342467f, -0.002536f, -0.002717f, +0.000029f} - } -}; -#endif const float hrtfShCoeffsRe[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]= { -- GitLab From fc81006a533b7edee4c6ba8bd21904323024222c Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:14:12 +0200 Subject: [PATCH 38/42] [cleanup] accept NONBE_FIX_778_TNS_UNFIED_STEREO_MSAN --- lib_com/options.h | 1 - lib_enc/ivas_tcx_core_enc.c | 6 ------ 2 files changed, 7 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 3e89da04da..a96089c1d3 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -179,7 +179,6 @@ #define NONBE_FIX_774_OSBA_MONO_DEC_CRASH /* FhG: issue 774: decoder crash for OSBA to mono */ #define NONBE_FIX_802_PARAMUPMIX_HIGHPASS /* Dlb: issue 802: Move HighPass filter operation for ParamUpmix */ -#define NONBE_FIX_778_TNS_UNFIED_STEREO_MSAN /* FhG: Issue 778: MSAN error due to uninitialized TNS configuration */ #define NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ /* VA: issue 797: fix of crash when the separated object is inactive and the MASA metadata is using very few bits */ #define NONBE_FIX_798_OSBA_MC_DEC_CRASH #define NONBE_FIX_806_OMASA_ONE_SEP_TRANSPORT_MIX /* Nokia: issue 806: fix one separated object mode transport mix of the separated object */ diff --git a/lib_enc/ivas_tcx_core_enc.c b/lib_enc/ivas_tcx_core_enc.c index afffd43092..7d8394f5af 100644 --- a/lib_enc/ivas_tcx_core_enc.c +++ b/lib_enc/ivas_tcx_core_enc.c @@ -54,9 +54,7 @@ void stereo_tcx_init_enc( Encoder_State *st /* i/o: encoder state structure */ ) { -#ifdef NONBE_FIX_778_TNS_UNFIED_STEREO_MSAN int16_t prev_IsTNSAllowed; -#endif assert( st->core_brate != SID_2k40 && st->core_brate != FRAME_NO_DATA ); /* Get the raw coder type from signal analysis*/ @@ -103,21 +101,17 @@ void stereo_tcx_init_enc( st->hTcxCfg->resq = getResq( st->bits_frame_nominal * FRAMES_PER_SEC ); st->hTcxEnc->tcx_lpc_shaped_ari = getTcxLpcShapedAri( st->bits_frame_nominal * FRAMES_PER_SEC, st->rf_mode, st->element_mode ); st->igf = getIgfPresent( st->element_mode, st->bits_frame_nominal * FRAMES_PER_SEC, st->bwidth, st->rf_mode ); -#ifdef NONBE_FIX_778_TNS_UNFIED_STEREO_MSAN prev_IsTNSAllowed = st->hTcxCfg->fIsTNSAllowed; -#endif if ( st->element_mode != EVS_MONO ) { st->hTcxCfg->fIsTNSAllowed = getTnsAllowed( st->bits_frame_nominal * FRAMES_PER_SEC, st->igf, st->element_mode ); } -#ifdef NONBE_FIX_778_TNS_UNFIED_STEREO_MSAN if ( !prev_IsTNSAllowed && st->hTcxCfg->fIsTNSAllowed && st->element_mode == IVAS_CPE_DFT ) /* may happen in unified stereo when switching stereo technologies */ { InitTnsConfigs( st->bwidth, st->hTcxCfg->tcx_coded_lines, st->hTcxCfg->tnsConfig, st->hIGFEnc->infoStopFrequency, st->bits_frame_nominal * FRAMES_PER_SEC, st->element_mode, 0 ); SetAllowTnsOnWhite( st->hTcxCfg->tnsConfig, 0 ); } -#endif st->core_brate = st->total_brate; return; -- GitLab From fc6f7e220ea3c402892c9e24731c3995b325d4b6 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:14:52 +0200 Subject: [PATCH 39/42] [cleanup] accept NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ --- lib_com/ivas_omasa_com.c | 8 -------- lib_com/ivas_prot.h | 4 ---- lib_com/options.h | 1 - lib_dec/acelp_core_dec.c | 4 ---- lib_dec/decision_matrix_dec.c | 2 -- lib_dec/init_dec.c | 2 -- lib_dec/ivas_core_dec.c | 4 ---- lib_dec/ivas_decision_matrix_dec.c | 2 -- lib_dec/stat_dec.h | 2 -- lib_enc/acelp_core_enc.c | 4 ---- lib_enc/decision_matrix_enc.c | 4 ---- lib_enc/init_enc.c | 2 -- lib_enc/ivas_core_enc.c | 4 ---- lib_enc/ivas_decision_matrix_enc.c | 2 -- lib_enc/stat_enc.h | 2 -- 15 files changed, 47 deletions(-) diff --git a/lib_com/ivas_omasa_com.c b/lib_com/ivas_omasa_com.c index cbf15dde4f..d031529f08 100644 --- a/lib_com/ivas_omasa_com.c +++ b/lib_com/ivas_omasa_com.c @@ -335,22 +335,16 @@ int32_t ivas_interformat_brate( void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int16_t core, /* i : core */ -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ const int32_t total_brate, /* i : total bitrate */ -#endif int32_t *core_brate, /* i/o: core bitrate */ -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ int16_t *inactive_coder_type_flag, /* o : inactive coder_type flag */ -#endif int16_t *diff_nBits /* o : number of differential bits */ ) { int16_t limit_high, nBits; -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ int32_t brate_diff; brate_diff = total_brate - *core_brate; -#endif /* sanity check: at lowest IVAS bit-rates and one ISM channel coded by low-rate core-coder mode, it can happen that the CPE (MASA) bit-budget @@ -375,7 +369,6 @@ void ivas_combined_format_brate_sanity( } } -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ /*-----------------------------------------------------------------* * set inactive coder_type flag in ACELP core *-----------------------------------------------------------------*/ @@ -388,7 +381,6 @@ void ivas_combined_format_brate_sanity( *inactive_coder_type_flag = 1; /* GSC */ } } -#endif return; } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index d2ef0f82e5..817ba618be 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5820,13 +5820,9 @@ int32_t ivas_interformat_brate( void ivas_combined_format_brate_sanity( const int32_t element_brate, /* i : element bitrate */ const int16_t core, /* i : core */ -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ const int32_t total_brate, /* i : total bitrate */ -#endif int32_t *core_brate, /* i/o: core bitrate */ -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ int16_t *inactive_coder_type_flag, /* o : inactive coder_type flag */ -#endif int16_t *diff_nBits /* o : number of differential bits */ ); diff --git a/lib_com/options.h b/lib_com/options.h index a96089c1d3..1a102b8d7b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -179,7 +179,6 @@ #define NONBE_FIX_774_OSBA_MONO_DEC_CRASH /* FhG: issue 774: decoder crash for OSBA to mono */ #define NONBE_FIX_802_PARAMUPMIX_HIGHPASS /* Dlb: issue 802: Move HighPass filter operation for ParamUpmix */ -#define NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ /* VA: issue 797: fix of crash when the separated object is inactive and the MASA metadata is using very few bits */ #define NONBE_FIX_798_OSBA_MC_DEC_CRASH #define NONBE_FIX_806_OMASA_ONE_SEP_TRANSPORT_MIX /* Nokia: issue 806: fix one separated object mode transport mix of the separated object */ #define NONBE_FIX_809_EXTERNAL_TARGET_INTERPOLATION /* FhG: issue 809: unify external target interpolation inter and intra frame behaviour */ diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index fb2d6277e7..d22d6138f9 100644 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -803,11 +803,7 @@ ivas_error acelp_core_dec( { decod_tran( st, st->L_frame, tc_subfr, Aq, Es_pred, pitch_buf, voice_factors, exc, exc2, bwe_exc, unbits, sharpFlag, gain_buf ); } -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ else if ( st->coder_type == AUDIO || ( st->coder_type == INACTIVE && st->inactive_coder_type_flag ) ) -#else - else if ( st->coder_type == AUDIO || ( st->coder_type == INACTIVE && st->total_brate <= MAX_GSC_INACTIVE_BRATE ) ) -#endif { /* AUDIO and INACTIVE frames (coded by GSC technology) */ decod_audio( st, dct_exc_tmp, Aq, &tmp_noise, pitch_buf, voice_factors, exc, exc2, bwe_exc, lsf_new, gain_buf, tdm_lp_reuse_flag, tdm_low_rate_mode, tdm_Pitch_reuse_flag, p_tdm_Pri_pitch_buf ); diff --git a/lib_dec/decision_matrix_dec.c b/lib_dec/decision_matrix_dec.c index 5f4bcb9812..f3b1194b06 100644 --- a/lib_dec/decision_matrix_dec.c +++ b/lib_dec/decision_matrix_dec.c @@ -558,7 +558,6 @@ void decision_matrix_dec( st->last_extl = st->extl; } -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ /*-----------------------------------------------------------------* * set inactive coder_type flag in ACELP core *-----------------------------------------------------------------*/ @@ -568,7 +567,6 @@ void decision_matrix_dec( { st->inactive_coder_type_flag = 1; /* GSC */ } -#endif return; } diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 299cecbc08..ba18a8e85e 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -85,9 +85,7 @@ ivas_error init_decoder( st->coder_type = GENERIC; st->last_coder_type = GENERIC; -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ st->inactive_coder_type_flag = 0; -#endif st->last_L_frame = st->L_frame; st->last_core_brate = st->core_brate; st->last_core = -1; diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index de5e6dd6d9..77495c76d1 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -279,11 +279,7 @@ ivas_error ivas_core_dec( if ( hCPE != NULL && hCPE->element_mode == IVAS_CPE_DFT && hCPE->brate_surplus > 0 ) { -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ ivas_combined_format_brate_sanity( hCPE->element_brate, sts[0]->core, sts[0]->total_brate, &( sts[0]->core_brate ), &( sts[0]->inactive_coder_type_flag ), &tmps ); -#else - ivas_combined_format_brate_sanity( hCPE->element_brate, sts[0]->core, &( sts[0]->core_brate ), &tmps ); -#endif } /*------------------------------------------------------------------* diff --git a/lib_dec/ivas_decision_matrix_dec.c b/lib_dec/ivas_decision_matrix_dec.c index a30ca065a1..ba53de1da1 100644 --- a/lib_dec/ivas_decision_matrix_dec.c +++ b/lib_dec/ivas_decision_matrix_dec.c @@ -433,7 +433,6 @@ void ivas_decision_matrix_dec( st->nb_subfr = NB_SUBFR; } -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ /*-----------------------------------------------------------------* * set inactive coder_type flag in ACELP core *-----------------------------------------------------------------*/ @@ -443,7 +442,6 @@ void ivas_decision_matrix_dec( { st->inactive_coder_type_flag = 1; /* GSC */ } -#endif /*-----------------------------------------------------------------* * Reconfigure in case when output_Fs < input_Fs diff --git a/lib_dec/stat_dec.h b/lib_dec/stat_dec.h index 52cc321790..43e100446a 100644 --- a/lib_dec/stat_dec.h +++ b/lib_dec/stat_dec.h @@ -936,9 +936,7 @@ typedef struct Decoder_State int16_t prev_coder_type; /* coding type of last frame */ int16_t low_rate_mode; /* low-rate mode flag */ int16_t last_low_rate_mode; /* previous frame low-rate mode flag */ -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ int16_t inactive_coder_type_flag; /* inactive coder type flag (0 = AVQ / 1 = GSC) */ -#endif /*----------------------------------------------------------------------------------* * ACELP core parameters diff --git a/lib_enc/acelp_core_enc.c b/lib_enc/acelp_core_enc.c index d18ef939b2..ca7dec18a1 100644 --- a/lib_enc/acelp_core_enc.c +++ b/lib_enc/acelp_core_enc.c @@ -563,11 +563,7 @@ ivas_error acelp_core_enc( encod_gen_voic( st, inp, Aw, Aq, Es_pred, res, syn, exc, exc2, pitch_buf, voice_factors, bwe_exc, unbits, tdm_Pitch_reuse_flag, tdm_Pri_pitch_buf ); } } -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ else if ( st->coder_type == AUDIO || ( st->coder_type == INACTIVE && st->inactive_coder_type_flag ) ) -#else - else if ( st->coder_type == AUDIO || ( st->coder_type == INACTIVE && st->total_brate <= MAX_GSC_INACTIVE_BRATE ) ) -#endif { /* AUDIO and INACTIVE frames (coded by GSC technology) */ encod_audio( st, inp, Aw, Aq, res, syn, exc, pitch_buf, voice_factors, bwe_exc, attack_flag, lsf_new, &tmp_noise, tdm_Pitch_reuse_flag, tdm_Pri_pitch_buf ); diff --git a/lib_enc/decision_matrix_enc.c b/lib_enc/decision_matrix_enc.c index d21fa934f1..e2587fbe0d 100644 --- a/lib_enc/decision_matrix_enc.c +++ b/lib_enc/decision_matrix_enc.c @@ -170,10 +170,8 @@ void decision_matrix_enc( } } -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ /* set inactive coder_type flag in ACELP core to GSC */ st->inactive_coder_type_flag = 1; -#endif return; } @@ -331,7 +329,6 @@ void decision_matrix_enc( st->last_extl = st->extl; } -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ /*-----------------------------------------------------------------* * set inactive coder_type flag in ACELP core *-----------------------------------------------------------------*/ @@ -341,7 +338,6 @@ void decision_matrix_enc( { st->inactive_coder_type_flag = 1; /* GSC */ } -#endif return; } diff --git a/lib_enc/init_enc.c b/lib_enc/init_enc.c index e22216d1c4..071ae25c89 100644 --- a/lib_enc/init_enc.c +++ b/lib_enc/init_enc.c @@ -100,9 +100,7 @@ ivas_error init_encoder( st->clas = UNVOICED_CLAS; st->low_rate_mode = 0; st->ini_frame = 0; -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ st->inactive_coder_type_flag = 0; -#endif st->coder_type_raw = VOICED; st->last_coder_type_raw = st->coder_type_raw; diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index fec16a8a9e..c242018ee0 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -196,11 +196,7 @@ ivas_error ivas_core_enc( diff_nBits = 0; if ( hCPE != NULL && hCPE->element_mode == IVAS_CPE_DFT && hCPE->brate_surplus > 0 ) { -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ ivas_combined_format_brate_sanity( hCPE->element_brate, sts[0]->core, sts[0]->total_brate, &( sts[0]->core_brate ), &( sts[0]->inactive_coder_type_flag ), &diff_nBits ); -#else - ivas_combined_format_brate_sanity( hCPE->element_brate, sts[0]->core, &( sts[0]->core_brate ), &diff_nBits ); -#endif } /*---------------------------------------------------------------------* diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index e01b63ea6e..b9578423b9 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -362,7 +362,6 @@ void ivas_decision_matrix_enc( st->last_extl = st->extl; } -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ /*-----------------------------------------------------------------* * set inactive coder_type flag in ACELP core *-----------------------------------------------------------------*/ @@ -372,7 +371,6 @@ void ivas_decision_matrix_enc( { st->inactive_coder_type_flag = 1; /* GSC */ } -#endif return; } diff --git a/lib_enc/stat_enc.h b/lib_enc/stat_enc.h index c2b2e4c611..1a882e876b 100644 --- a/lib_enc/stat_enc.h +++ b/lib_enc/stat_enc.h @@ -1167,9 +1167,7 @@ typedef struct enc_core_structure int16_t Opt_SC_VBR; /* flag indicating SC-VBR mode */ int16_t last_Opt_SC_VBR; /* flag indicating prev frame's SC-VBR mode */ int16_t low_rate_mode; /* low-rate mode flag */ -#ifdef NONBE_FIX_797_OMASA_INACTIVE_SEP_OBJ int16_t inactive_coder_type_flag; /* inactive coder type flag (0 = AVQ / 1 = GSC) */ -#endif #ifdef DEBUGGING int16_t force; /* flag indicating specific signal type (0 = speech, 1 = music, -1 = N/A) */ #endif -- GitLab From 5fb926347088496e8ba21c272de4221856205f36 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:15:34 +0200 Subject: [PATCH 40/42] [cleanup] accept NONBE_FIX_798_OSBA_MC_DEC_CRASH --- lib_com/options.h | 1 - lib_dec/ivas_init_dec.c | 4 ---- lib_dec/ivas_ism_dec.c | 8 -------- lib_dec/ivas_mc_paramupmix_dec.c | 4 ---- lib_dec/ivas_omasa_dec.c | 8 -------- lib_dec/ivas_osba_dec.c | 4 ---- lib_dec/ivas_sba_dec.c | 12 ------------ lib_dec/ivas_sba_rendering_internal.c | 4 ---- lib_rend/ivas_output_init.c | 12 ------------ lib_rend/ivas_prot_rend.h | 2 -- 10 files changed, 59 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 1a102b8d7b..5590060b61 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -179,7 +179,6 @@ #define NONBE_FIX_774_OSBA_MONO_DEC_CRASH /* FhG: issue 774: decoder crash for OSBA to mono */ #define NONBE_FIX_802_PARAMUPMIX_HIGHPASS /* Dlb: issue 802: Move HighPass filter operation for ParamUpmix */ -#define NONBE_FIX_798_OSBA_MC_DEC_CRASH #define NONBE_FIX_806_OMASA_ONE_SEP_TRANSPORT_MIX /* Nokia: issue 806: fix one separated object mode transport mix of the separated object */ #define NONBE_FIX_809_EXTERNAL_TARGET_INTERPOLATION /* FhG: issue 809: unify external target interpolation inter and intra frame behaviour */ #define NONBE_FIX_775_OSBA_BR_SWITCHING_CRASH /* FhG: issue 775: fix crash in OSBA with bitrate switching and output order lower than input order */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index fa0671b98d..82ae35936f 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -2239,11 +2239,7 @@ ivas_error ivas_init_decoder( if ( !st_ivas->hDecoderConfig->Opt_5ms ) { -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH for ( n = 0; n < ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); n++ ) -#else - for ( n = 0; n < ivas_get_nchan_buffers_dec( st_ivas ); n++ ) -#endif { /* note: these are intra-frame heap memories */ if ( ( st_ivas->p_output_f[n] = (float *) malloc( ( 48000 / FRAMES_PER_SEC ) * sizeof( float ) ) ) == NULL ) diff --git a/lib_dec/ivas_ism_dec.c b/lib_dec/ivas_ism_dec.c index 46a36ddf37..39c7c667d9 100644 --- a/lib_dec/ivas_ism_dec.c +++ b/lib_dec/ivas_ism_dec.c @@ -81,11 +81,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( st_ivas->ism_mode = last_ism_mode; ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); st_ivas->ism_mode = ism_mode; -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH nchan_out_buff_old = ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); -#else - nchan_out_buff_old = ivas_get_nchan_buffers_dec( st_ivas ); -#endif if ( ( error = ivas_ism_config( st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->nchan_ism, NULL, 0, NULL, NULL, element_brate_tmp, NULL, NULL, 0 ) ) != IVAS_ERR_OK ) { @@ -335,11 +331,7 @@ static ivas_error ivas_ism_bitrate_switching_dec( if ( !st_ivas->hDecoderConfig->Opt_5ms ) { -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); -#else - nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas ); -#endif if ( nchan_out_buff > nchan_out_buff_old ) { diff --git a/lib_dec/ivas_mc_paramupmix_dec.c b/lib_dec/ivas_mc_paramupmix_dec.c index ebd57a038e..6b7659b25e 100644 --- a/lib_dec/ivas_mc_paramupmix_dec.c +++ b/lib_dec/ivas_mc_paramupmix_dec.c @@ -444,11 +444,7 @@ void ivas_mc_paramupmix_dec( } } -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH for ( ch = first_empty_channel; ch < ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); ch++ ) -#else - for ( ch = first_empty_channel; ch < ivas_get_nchan_buffers_dec( st_ivas ); ch++ ) -#endif { set_f( output_f[ch], 0.0f, output_frame ); } diff --git a/lib_dec/ivas_omasa_dec.c b/lib_dec/ivas_omasa_dec.c index f631869b35..b6846dfe93 100644 --- a/lib_dec/ivas_omasa_dec.c +++ b/lib_dec/ivas_omasa_dec.c @@ -180,11 +180,7 @@ ivas_error ivas_omasa_dec_config( ivas_format_orig = st_ivas->ivas_format; st_ivas->ivas_format = st_ivas->last_ivas_format; ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH nchan_out_buff_old = ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); -#else - nchan_out_buff_old = ivas_get_nchan_buffers_dec( st_ivas ); -#endif st_ivas->ivas_format = ivas_format_orig; @@ -418,11 +414,7 @@ ivas_error ivas_omasa_dec_config( if ( !st_ivas->hDecoderConfig->Opt_5ms ) { -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); -#else - nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas ); -#endif if ( nchan_out_buff > nchan_out_buff_old ) { diff --git a/lib_dec/ivas_osba_dec.c b/lib_dec/ivas_osba_dec.c index e3cc62f71a..7b5a44c64c 100644 --- a/lib_dec/ivas_osba_dec.c +++ b/lib_dec/ivas_osba_dec.c @@ -337,11 +337,7 @@ ivas_error ivas_osba_render( nchan_out = st_ivas->hDecoderConfig->nchan_out; nchan_ism = st_ivas->nchan_ism; -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH for ( n = 0; n < max( nchan_out, nchan_ism ); n++ ) -#else - for ( n = 0; n < nchan_out; n++ ) -#endif { p_tmp_ism_out[n] = &tmp_ism_out[n][0]; } diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 11a707529f..c4c2d73765 100755 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -122,9 +122,7 @@ ivas_error ivas_sba_dec_reconfigure( int32_t last_ivas_total_brate; int16_t num_channels, num_md_sub_frames; int16_t ch, nchan_out_buff, nchan_out_buff_old; -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH int16_t sba_analysis_order_old; -#endif #ifdef JBM_FOR_OSBA int16_t sba_analysis_order_old_flush; #endif @@ -144,19 +142,13 @@ ivas_error ivas_sba_dec_reconfigure( #ifdef JBM_FOR_OSBA sba_analysis_order_old_flush = st_ivas->sba_analysis_order; #endif -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH sba_analysis_order_old = ivas_sba_get_analysis_order( last_ivas_total_brate, st_ivas->sba_order ); -#endif /*-----------------------------------------------------------------* * Set SBA high-level parameters * Save old SBA high-level parameters *-----------------------------------------------------------------*/ -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH nchan_out_buff_old = ivas_get_nchan_buffers_dec( st_ivas, sba_analysis_order_old, last_ivas_total_brate ); -#else - nchan_out_buff_old = ivas_get_nchan_buffers_dec( st_ivas ); -#endif ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); nchan_hp20_old = getNumChanSynthesis( st_ivas ); @@ -745,11 +737,7 @@ ivas_error ivas_sba_dec_reconfigure( if ( !st_ivas->hDecoderConfig->Opt_5ms ) { -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ); -#else - nchan_out_buff = ivas_get_nchan_buffers_dec( st_ivas ); -#endif if ( nchan_out_buff > nchan_out_buff_old ) { diff --git a/lib_dec/ivas_sba_rendering_internal.c b/lib_dec/ivas_sba_rendering_internal.c index 52a5ae4685..f685dc8ef6 100644 --- a/lib_dec/ivas_sba_rendering_internal.c +++ b/lib_dec/ivas_sba_rendering_internal.c @@ -491,11 +491,7 @@ ivas_error ivas_sba_upmixer_renderer( sba_ch_idx = st_ivas->nchan_ism; } -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH for ( ch = 0; ch < ivas_get_nchan_buffers_dec( st_ivas, st_ivas->sba_analysis_order, st_ivas->hDecoderConfig->ivas_total_brate ) - sba_ch_idx; ch++ ) -#else - for ( ch = 0; ch < ivas_get_nchan_buffers_dec( st_ivas ) - sba_ch_idx; ch++ ) -#endif { output_f[ch] = output[ch]; } diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index efe23f0b5f..9ffa67978c 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -36,9 +36,7 @@ #include "prot.h" #include "ivas_prot_rend.h" #include "ivas_rom_com.h" -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH #include "ivas_prot.h" -#endif #ifdef DEBUGGING #include "debug.h" #include @@ -267,11 +265,9 @@ void ivas_output_init( /*! r: number of decoder buffers */ int16_t ivas_get_nchan_buffers_dec( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH , const int16_t sba_analysis_order, /* i : SBA order evaluated in DirAC/SPAR encoder */ const int32_t ivas_total_brate /* i : total IVAS bitrate */ -#endif ) { int16_t nchan_out_buff; @@ -305,10 +301,8 @@ int16_t ivas_get_nchan_buffers_dec( } else if ( st_ivas->ivas_format == SBA_FORMAT ) { -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH int16_t nchan_internal; nchan_internal = ivas_sba_get_nchan_metadata( sba_analysis_order, ivas_total_brate ); -#endif nchan_out_buff = st_ivas->hDecoderConfig->nchan_out; if ( output_config == IVAS_AUDIO_CONFIG_LS_CUSTOM ) @@ -320,9 +314,7 @@ int16_t ivas_get_nchan_buffers_dec( nchan_out_buff = max( audioCfg2channels( st_ivas->transport_config ), audioCfg2channels( st_ivas->intern_config ) ); nchan_out_buff = max( nchan_out_buff, audioCfg2channels( output_config ) ); } -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH nchan_out_buff = max( nchan_out_buff, nchan_internal ); -#endif } else if ( st_ivas->ivas_format == MASA_FORMAT ) { @@ -354,10 +346,8 @@ int16_t ivas_get_nchan_buffers_dec( } else if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH int16_t nchan_internal; nchan_internal = ivas_sba_get_nchan_metadata( sba_analysis_order, ivas_total_brate ); -#endif nchan_out_buff = st_ivas->nchan_ism + st_ivas->nchan_transport; if ( st_ivas->hMCT != NULL ) @@ -387,14 +377,12 @@ int16_t ivas_get_nchan_buffers_dec( { nchan_out_buff = st_ivas->hDecoderConfig->nchan_out + st_ivas->nchan_ism; /*take into account sba_ch_idx' in ivas_dec() */ } -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH #ifdef JBM_FOR_OSBA if ( !( output_config == IVAS_AUDIO_CONFIG_MONO || output_config == IVAS_AUDIO_CONFIG_STEREO ) ) #endif { nchan_out_buff = max( nchan_out_buff, nchan_internal + st_ivas->nchan_ism ); } -#endif nchan_out_buff = min( nchan_out_buff, MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS ); } else if ( st_ivas->ivas_format == MC_FORMAT ) diff --git a/lib_rend/ivas_prot_rend.h b/lib_rend/ivas_prot_rend.h index 70285ac0f3..d9933c0488 100644 --- a/lib_rend/ivas_prot_rend.h +++ b/lib_rend/ivas_prot_rend.h @@ -73,11 +73,9 @@ void ivas_output_init( /*! r: number of decoder buffers */ int16_t ivas_get_nchan_buffers_dec( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ -#ifdef NONBE_FIX_798_OSBA_MC_DEC_CRASH , const int16_t sba_analysis_order, /* i : SBA order evaluated in DirAC/SPAR encoder */ const int32_t ivas_total_brate /* i : total IVAS bitrate */ -#endif ); -- GitLab From d4e59031f60a348900a1c42468aed9b216a8e9a9 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:16:19 +0200 Subject: [PATCH 41/42] [cleanup] accept NONBE_FIX_806_OMASA_ONE_SEP_TRANSPORT_MIX --- lib_com/options.h | 1 - lib_enc/ivas_omasa_enc.c | 7 ------- 2 files changed, 8 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 5590060b61..26505ad9b2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -179,7 +179,6 @@ #define NONBE_FIX_774_OSBA_MONO_DEC_CRASH /* FhG: issue 774: decoder crash for OSBA to mono */ #define NONBE_FIX_802_PARAMUPMIX_HIGHPASS /* Dlb: issue 802: Move HighPass filter operation for ParamUpmix */ -#define NONBE_FIX_806_OMASA_ONE_SEP_TRANSPORT_MIX /* Nokia: issue 806: fix one separated object mode transport mix of the separated object */ #define NONBE_FIX_809_EXTERNAL_TARGET_INTERPOLATION /* FhG: issue 809: unify external target interpolation inter and intra frame behaviour */ #define NONBE_FIX_775_OSBA_BR_SWITCHING_CRASH /* FhG: issue 775: fix crash in OSBA with bitrate switching and output order lower than input order */ diff --git a/lib_enc/ivas_omasa_enc.c b/lib_enc/ivas_omasa_enc.c index 41da10691a..304f45c7eb 100644 --- a/lib_enc/ivas_omasa_enc.c +++ b/lib_enc/ivas_omasa_enc.c @@ -578,11 +578,9 @@ void ivas_omasa_enc( ivas_omasa_energy_and_ratio_est( hOMasa, hMasa->data.hOmasaData, data_in_f, input_frame, nchan_ism ); } -#ifdef NONBE_FIX_806_OMASA_ONE_SEP_TRANSPORT_MIX /* Downmix */ ivas_omasa_dmx( data_in_f, data_out_f, input_frame, nchan_transport, nchan_ism, hIsmMeta, hOMasa->prev_object_dm_gains, hOMasa->interpolator ); -#endif /* Move the ISM metadata to the first entry for encoding in the MASA_ONE_OBJ mode */ if ( ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ ) { @@ -590,11 +588,6 @@ void ivas_omasa_enc( hIsmMeta[0]->elevation = hIsmMeta[*idx_separated_object]->elevation; } -#ifndef NONBE_FIX_806_OMASA_ONE_SEP_TRANSPORT_MIX - /* Downmix */ - ivas_omasa_dmx( data_in_f, data_out_f, input_frame, nchan_transport, nchan_ism, hIsmMeta, hOMasa->prev_object_dm_gains, hOMasa->interpolator ); - -#endif /* Merge transport signals */ ivas_merge_masa_transports( data_out_f, &( data_in_f[nchan_ism] ), data_in_f, input_frame, nchan_transport ); -- GitLab From e0010a4d46db587297ff1141636bf0d79027be78 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Wed, 27 Sep 2023 18:18:54 +0200 Subject: [PATCH 42/42] formatting --- lib_com/ivas_omasa_com.c | 10 +++---- lib_com/options.h | 2 -- lib_dec/ivas_spar_md_dec.c | 36 +++++++++++------------ lib_dec/lib_dec.c | 2 +- lib_dec/stat_dec.h | 58 +++++++++++++++++++------------------- lib_enc/ivas_enc.c | 1 - lib_enc/stat_enc.h | 56 ++++++++++++++++++------------------ lib_rend/lib_rend.c | 27 +++++++++--------- 8 files changed, 94 insertions(+), 98 deletions(-) diff --git a/lib_com/ivas_omasa_com.c b/lib_com/ivas_omasa_com.c index d031529f08..7416dad119 100644 --- a/lib_com/ivas_omasa_com.c +++ b/lib_com/ivas_omasa_com.c @@ -333,12 +333,12 @@ int32_t ivas_interformat_brate( * ---------------------------------------------------------------*/ void ivas_combined_format_brate_sanity( - const int32_t element_brate, /* i : element bitrate */ - const int16_t core, /* i : core */ - const int32_t total_brate, /* i : total bitrate */ - int32_t *core_brate, /* i/o: core bitrate */ + const int32_t element_brate, /* i : element bitrate */ + const int16_t core, /* i : core */ + const int32_t total_brate, /* i : total bitrate */ + int32_t *core_brate, /* i/o: core bitrate */ int16_t *inactive_coder_type_flag, /* o : inactive coder_type flag */ - int16_t *diff_nBits /* o : number of differential bits */ + int16_t *diff_nBits /* o : number of differential bits */ ) { int16_t limit_high, nBits; diff --git a/lib_com/options.h b/lib_com/options.h index 26505ad9b2..c1dcf8ed15 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -176,14 +176,12 @@ #define NONBE_FIX_787_PARAM_UPMIX_LEVEL /* Dlb: issue 787: fix level of Mono/Stereo for ParamUpmix mode */ - #define NONBE_FIX_774_OSBA_MONO_DEC_CRASH /* FhG: issue 774: decoder crash for OSBA to mono */ #define NONBE_FIX_802_PARAMUPMIX_HIGHPASS /* Dlb: issue 802: Move HighPass filter operation for ParamUpmix */ #define NONBE_FIX_809_EXTERNAL_TARGET_INTERPOLATION /* FhG: issue 809: unify external target interpolation inter and intra frame behaviour */ #define NONBE_FIX_775_OSBA_BR_SWITCHING_CRASH /* FhG: issue 775: fix crash in OSBA with bitrate switching and output order lower than input order */ #define JBM_FOR_OSBA /* FhG: implement OSBA format in the JBM path */ - #ifdef JBM_FOR_OSBA #define OSBA_ROOM_IR #endif diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index bd3901879d..682f7fd29e 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -667,7 +667,7 @@ static void ivas_dec_mono_sba_handling( } } -/* Combine the SPAR prediction coefs flag with the azimuth, elevation and energy ratio flag.*/ + /* Combine the SPAR prediction coefs flag with the azimuth, elevation and energy ratio flag.*/ mono_flag = mono_flag && ivas_spar_chk_zero_coefs( st_ivas ); if ( mono_flag ) @@ -877,33 +877,33 @@ int16_t ivas_spar_chk_zero_coefs( ndec = hMdDec->spar_md_cfg.num_decorr_per_band[0]; ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[0]; - for ( b = 0; b < min( hMdDec->spar_md.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); b++ ) + for ( b = 0; b < min( hMdDec->spar_md.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); b++ ) + { + for ( j = 0; j < ndm + ndec - 1; j++ ) { - for ( j = 0; j < ndm + ndec - 1; j++ ) + if ( hMdDec->spar_md.band_coeffs[b].pred_re[j] != 0.0f ) { - if ( hMdDec->spar_md.band_coeffs[b].pred_re[j] != 0.0f ) - { - mono = 0; - } + mono = 0; } - for ( j = 0; j < ndec; j++ ) + } + for ( j = 0; j < ndec; j++ ) + { + for ( k = 0; k < ndm - 1; k++ ) { - for ( k = 0; k < ndm - 1; k++ ) + if ( hMdDec->spar_md.band_coeffs[b].C_re[j][k] != 0.0f ) { - if ( hMdDec->spar_md.band_coeffs[b].C_re[j][k] != 0.0f ) - { - mono = 0; - } + mono = 0; } } - for ( j = 0; j < ndec; j++ ) + } + for ( j = 0; j < ndec; j++ ) + { + if ( hMdDec->spar_md.band_coeffs[b].P_re[j] != 0.0f ) { - if ( hMdDec->spar_md.band_coeffs[b].P_re[j] != 0.0f ) - { - mono = 0; - } + mono = 0; } } + } return mono; } diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 801eea7962..27839b824a 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -378,7 +378,7 @@ ivas_error IVAS_DEC_Configure( #ifdef FIX_708_DPID_COMMAND_LINE const int16_t Opt_dpid_on, /* i : enable directivity pattern option */ #endif - const uint16_t acousticEnvironmentId, /* i : Acoustic environment ID */ + const uint16_t acousticEnvironmentId, /* i : Acoustic environment ID */ const int16_t delayCompensationEnabled /* i : enable delay compensation */ ) { diff --git a/lib_dec/stat_dec.h b/lib_dec/stat_dec.h index 43e100446a..d83b77ab43 100644 --- a/lib_dec/stat_dec.h +++ b/lib_dec/stat_dec.h @@ -907,35 +907,35 @@ typedef struct Decoder_State int16_t mdct_sw; /* MDCT switching indicator */ int16_t last_codec_mode; /* last used codec mode */ - uint16_t *bit_stream; /* pointer to bitstream buffer */ - int16_t next_bit_pos; /* position of the next bit to be read from the bitstream */ - int16_t BER_detect; /* flag to signal detected bit error in the bitstream */ - int32_t output_Fs; /* output sampling rate */ - int32_t total_brate; /* total bitrate in kbps of the codec */ - int32_t last_total_brate; /* last total bitrate in kbps of the codec */ - int32_t last_total_brate_ber; /* last total bitrate in kbps of the codec - used only when first frame is lost and BER is detected afterwards */ - int16_t bits_frame_nominal; /* avg bits per frame on active frame */ - int32_t last_bits_frame_nominal; /* last avg bits per frame on active frame */ - int16_t flag_ACELP16k; /* flag indicating use of ACELP core at 16kHz internal sampling rate */ - int16_t bits_frame_channel; /* bits frame channel */ - int16_t side_bits_frame_channel; /* bits frame channel */ - int16_t core; /* core (ACELP_CORE, TCX_20_CORE, TCX_10_CORE, HQ_CORE, AMR_WB_CORE) */ - int16_t coder_type; /* coder type */ - int16_t transform_type[2]; /* TCX20/10/5 mode in each subframe */ - int32_t core_brate; /* core bitrate */ - int32_t last_core_brate; /* previous frame core bitrate */ - int16_t extl; /* extension layer */ - int16_t extl_orig; /* extension layer */ - int16_t last_extl; /* previous extension layer */ - int32_t extl_brate; /* extension layer bitrate */ - int32_t extl_brate_orig; /* extension layer bitrate */ - int16_t L_frame; /* ACELP core internal frame length */ - int16_t bwidth; /* encoded signal bandwidth */ - int16_t Opt_AMR_WB; /* flag indicating AMR-WB IO mode */ - int16_t ini_frame; /* initialization frames counter */ - int16_t prev_coder_type; /* coding type of last frame */ - int16_t low_rate_mode; /* low-rate mode flag */ - int16_t last_low_rate_mode; /* previous frame low-rate mode flag */ + uint16_t *bit_stream; /* pointer to bitstream buffer */ + int16_t next_bit_pos; /* position of the next bit to be read from the bitstream */ + int16_t BER_detect; /* flag to signal detected bit error in the bitstream */ + int32_t output_Fs; /* output sampling rate */ + int32_t total_brate; /* total bitrate in kbps of the codec */ + int32_t last_total_brate; /* last total bitrate in kbps of the codec */ + int32_t last_total_brate_ber; /* last total bitrate in kbps of the codec - used only when first frame is lost and BER is detected afterwards */ + int16_t bits_frame_nominal; /* avg bits per frame on active frame */ + int32_t last_bits_frame_nominal; /* last avg bits per frame on active frame */ + int16_t flag_ACELP16k; /* flag indicating use of ACELP core at 16kHz internal sampling rate */ + int16_t bits_frame_channel; /* bits frame channel */ + int16_t side_bits_frame_channel; /* bits frame channel */ + int16_t core; /* core (ACELP_CORE, TCX_20_CORE, TCX_10_CORE, HQ_CORE, AMR_WB_CORE) */ + int16_t coder_type; /* coder type */ + int16_t transform_type[2]; /* TCX20/10/5 mode in each subframe */ + int32_t core_brate; /* core bitrate */ + int32_t last_core_brate; /* previous frame core bitrate */ + int16_t extl; /* extension layer */ + int16_t extl_orig; /* extension layer */ + int16_t last_extl; /* previous extension layer */ + int32_t extl_brate; /* extension layer bitrate */ + int32_t extl_brate_orig; /* extension layer bitrate */ + int16_t L_frame; /* ACELP core internal frame length */ + int16_t bwidth; /* encoded signal bandwidth */ + int16_t Opt_AMR_WB; /* flag indicating AMR-WB IO mode */ + int16_t ini_frame; /* initialization frames counter */ + int16_t prev_coder_type; /* coding type of last frame */ + int16_t low_rate_mode; /* low-rate mode flag */ + int16_t last_low_rate_mode; /* previous frame low-rate mode flag */ int16_t inactive_coder_type_flag; /* inactive coder type flag (0 = AVQ / 1 = GSC) */ /*----------------------------------------------------------------------------------* diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c index 3c2bf63e16..481d7e23bd 100644 --- a/lib_enc/ivas_enc.c +++ b/lib_enc/ivas_enc.c @@ -413,7 +413,6 @@ ivas_error ivas_enc( /* get SBA TCs */ ivas_sba_getTCs( &data_f[n], st_ivas, input_frame ); - } /* core-coding of transport channels */ diff --git a/lib_enc/stat_enc.h b/lib_enc/stat_enc.h index 1a882e876b..9a1dd27135 100644 --- a/lib_enc/stat_enc.h +++ b/lib_enc/stat_enc.h @@ -1139,34 +1139,34 @@ typedef struct enc_core_structure BSTR_ENC_HANDLE hBstr; /* encoder bitstream handle */ int16_t bitstreamformat; /* Bitstream format flag (G.192/MIME) */ - int32_t input_Fs; /* input signal sampling frequency in Hz */ - int32_t total_brate; /* total bitrate in kbps of the codec */ - int32_t last_total_brate; /* last frame's total bitrate in kbps of the codec */ - int32_t last_total_brate_cng; /* last inactive frame's total bitrate in kbps of the codec */ - int16_t core; /* core (ACELP_CORE, TCX_20_CORE, TCX_10_CORE, HQ_CORE, AMR_WB_CORE) */ - int16_t last_core; /* previous frame core */ - int16_t coder_type; /* core coder type */ - int16_t flag_ACELP16k; /* flag indicating use of ACELP core at 16kHz internal sampling rate */ - int32_t core_brate; /* core bitrate */ - int32_t last_core_brate; /* previous frame core bitrate */ - int16_t extl; /* extension layer */ - int16_t last_extl; /* previous extension layer */ - int32_t extl_brate; /* extension layer bitrate */ - int16_t input_bwidth; /* input signal bandwidth */ - int16_t bwidth; /* encoded bandwidth NB, WB, SWB or FB */ - int16_t max_bwidth; /* maximum encoded bandwidth */ - int16_t last_input_bwidth; /* input signal bandwidth in the previous frame */ - int16_t last_bwidth; /* coded bandwidth in the previous frame */ - int16_t last_bwidth_cng; /* coded bandwidth in the previous inactive frame */ - int16_t bwidth_sw_cnt; /* bandwidth switching counter */ - int16_t L_frame; /* ACELP core internal frame length */ - int16_t Opt_AMR_WB; /* flag indicating AMR-WB IO mode */ - int16_t Opt_DTX_ON; /* flag indicating DTX operation */ - int16_t cng_type; /* flag indicating LP or CLDFB based SID/CNG */ - int16_t cng_sba_flag; /* flag indicating CNG/SID for SBA 2TC */ - int16_t Opt_SC_VBR; /* flag indicating SC-VBR mode */ - int16_t last_Opt_SC_VBR; /* flag indicating prev frame's SC-VBR mode */ - int16_t low_rate_mode; /* low-rate mode flag */ + int32_t input_Fs; /* input signal sampling frequency in Hz */ + int32_t total_brate; /* total bitrate in kbps of the codec */ + int32_t last_total_brate; /* last frame's total bitrate in kbps of the codec */ + int32_t last_total_brate_cng; /* last inactive frame's total bitrate in kbps of the codec */ + int16_t core; /* core (ACELP_CORE, TCX_20_CORE, TCX_10_CORE, HQ_CORE, AMR_WB_CORE) */ + int16_t last_core; /* previous frame core */ + int16_t coder_type; /* core coder type */ + int16_t flag_ACELP16k; /* flag indicating use of ACELP core at 16kHz internal sampling rate */ + int32_t core_brate; /* core bitrate */ + int32_t last_core_brate; /* previous frame core bitrate */ + int16_t extl; /* extension layer */ + int16_t last_extl; /* previous extension layer */ + int32_t extl_brate; /* extension layer bitrate */ + int16_t input_bwidth; /* input signal bandwidth */ + int16_t bwidth; /* encoded bandwidth NB, WB, SWB or FB */ + int16_t max_bwidth; /* maximum encoded bandwidth */ + int16_t last_input_bwidth; /* input signal bandwidth in the previous frame */ + int16_t last_bwidth; /* coded bandwidth in the previous frame */ + int16_t last_bwidth_cng; /* coded bandwidth in the previous inactive frame */ + int16_t bwidth_sw_cnt; /* bandwidth switching counter */ + int16_t L_frame; /* ACELP core internal frame length */ + int16_t Opt_AMR_WB; /* flag indicating AMR-WB IO mode */ + int16_t Opt_DTX_ON; /* flag indicating DTX operation */ + int16_t cng_type; /* flag indicating LP or CLDFB based SID/CNG */ + int16_t cng_sba_flag; /* flag indicating CNG/SID for SBA 2TC */ + int16_t Opt_SC_VBR; /* flag indicating SC-VBR mode */ + int16_t last_Opt_SC_VBR; /* flag indicating prev frame's SC-VBR mode */ + int16_t low_rate_mode; /* low-rate mode flag */ int16_t inactive_coder_type_flag; /* inactive coder type flag (0 = AVQ / 1 = GSC) */ #ifdef DEBUGGING int16_t force; /* flag indicating specific signal type (0 = speech, 1 = music, -1 = N/A) */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 5159a7c433..3df316dd64 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -6054,18 +6054,18 @@ static ivas_error renderIsmToBinauralRoom( } } - /* get previous position */ - if ( combinedOrientationEnabled ) - { - rotateAziEle( ismInput->previousPos.azimuth, ismInput->previousPos.elevation, &azi_rot, &ele_rot, ismInput->rot_mat_prev, 0 ); - rotatedPosPrev.azimuth = (float) azi_rot; - rotatedPosPrev.elevation = (float) ele_rot; - } - else - { - rotatedPosPrev.azimuth = ismInput->previousPos.azimuth; - rotatedPosPrev.elevation = ismInput->previousPos.elevation; - } + /* get previous position */ + if ( combinedOrientationEnabled ) + { + rotateAziEle( ismInput->previousPos.azimuth, ismInput->previousPos.elevation, &azi_rot, &ele_rot, ismInput->rot_mat_prev, 0 ); + rotatedPosPrev.azimuth = (float) azi_rot; + rotatedPosPrev.elevation = (float) ele_rot; + } + else + { + rotatedPosPrev.azimuth = ismInput->previousPos.azimuth; + rotatedPosPrev.elevation = ismInput->previousPos.elevation; + } /* get current position */ if ( combinedOrientationEnabled ) @@ -6233,8 +6233,7 @@ static ivas_error renderIsmToMc( if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, (int16_t) floorf( ismInput->previousPos.azimuth + 0.5f ), (int16_t) floorf( ismInput->previousPos.elevation + 0.5f ), - ismInput->prev_pan_gains - ) ) != IVAS_ERR_OK ) + ismInput->prev_pan_gains ) ) != IVAS_ERR_OK ) { return error; } -- GitLab