From 522e904a4c14a33f2ac44d297e3c16f2e811fcc2 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 9 Oct 2023 16:49:05 +0200 Subject: [PATCH 1/2] issue 820: Double precision arithmetic in combined formats; under FIX_819_DOUBLE_PREC_COMB_FORMATS; --- lib_com/options.h | 2 +- lib_enc/ivas_omasa_enc.c | 4 ++++ lib_enc/ivas_osba_enc.c | 5 ++++- lib_rend/ivas_omasa_ana.c | 4 ++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 89f4a28754..a4bc3780ff 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -165,7 +165,7 @@ #define FIX_818_DOUBLE_PREC_KERNEL_SW /* FhG: Issue 818: Avoid double precision in kernel switching */ #define FIX_822_REFACTOR_BIN_REVERB_OPEN /* Nokia: Addresses first step of issue 822 by refactoring ivas_binaural_reverb_open */ #define FIX_847_OUTPUT_PCM_BUFFER /* VA: issue 847: Allocate decoder output PCM buffer dynamically */ - +#define FIX_819_DOUBLE_PREC_COMB_FORMATS /* VA: issue 820: Double precision arithmetic in combined formats */ /* #################### End BE switches ################################## */ diff --git a/lib_enc/ivas_omasa_enc.c b/lib_enc/ivas_omasa_enc.c index 304f45c7eb..cf6e50a444 100644 --- a/lib_enc/ivas_omasa_enc.c +++ b/lib_enc/ivas_omasa_enc.c @@ -127,7 +127,11 @@ ivas_error ivas_omasa_enc_open( for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) { +#ifdef FIX_819_DOUBLE_PREC_COMB_FORMATS + set_f( hOMasa->prev_object_dm_gains[i], INV_SQRT_2, MASA_MAX_TRANSPORT_CHANNELS ); +#else set_f( hOMasa->prev_object_dm_gains[i], (float) sqrt( 0.5 ), MASA_MAX_TRANSPORT_CHANNELS ); +#endif } set_zero( hOMasa->broadband_energy_sm, MAX_NUM_OBJECTS + MASA_MAX_TRANSPORT_CHANNELS ); set_zero( hOMasa->broadband_energy_prev, MAX_NUM_OBJECTS + MASA_MAX_TRANSPORT_CHANNELS ); diff --git a/lib_enc/ivas_osba_enc.c b/lib_enc/ivas_osba_enc.c index 96d0a30fea..15f93769d7 100644 --- a/lib_enc/ivas_osba_enc.c +++ b/lib_enc/ivas_osba_enc.c @@ -102,10 +102,13 @@ ivas_error ivas_osba_enc_open( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for OMASA encoder\n" ) ); } - for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) { +#ifdef FIX_819_DOUBLE_PREC_COMB_FORMATS + set_f( hOSba->prev_object_dm_gains[i], INV_SQRT_2, MAX_INPUT_CHANNELS ); +#else set_f( hOSba->prev_object_dm_gains[i], (float) sqrt( 0.5 ), MAX_INPUT_CHANNELS ); +#endif } len = NS2SA( st_ivas->hEncoderConfig->input_Fs, IVAS_FB_ENC_DELAY_NS ); diff --git a/lib_rend/ivas_omasa_ana.c b/lib_rend/ivas_omasa_ana.c index 7284acb8cf..38de1c45a0 100644 --- a/lib_rend/ivas_omasa_ana.c +++ b/lib_rend/ivas_omasa_ana.c @@ -150,7 +150,11 @@ ivas_error ivas_omasa_ana_open( for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) { +#ifdef FIX_819_DOUBLE_PREC_COMB_FORMATS + set_f( hOMasa->prev_object_dm_gains[i], INV_SQRT_2, MASA_MAX_TRANSPORT_CHANNELS ); +#else set_f( hOMasa->prev_object_dm_gains[i], (float) sqrt( 0.5 ), MASA_MAX_TRANSPORT_CHANNELS ); +#endif } input_frame = (int16_t) ( input_Fs / FRAMES_PER_SEC ); -- GitLab From 4d28b0aa9dd938dc6e26c61fabdf0ff45757194b Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 10 Oct 2023 16:48:48 +0200 Subject: [PATCH 2/2] rename FIX_819_DOUBLE_PREC_COMB_FORMATS to NONBE_FIX_819_DOUBLE_PREC_COMB_FORMATS --- lib_com/options.h | 2 +- lib_enc/ivas_omasa_enc.c | 2 +- lib_enc/ivas_osba_enc.c | 2 +- lib_rend/ivas_omasa_ana.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index a4bc3780ff..d717d352d5 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -165,7 +165,6 @@ #define FIX_818_DOUBLE_PREC_KERNEL_SW /* FhG: Issue 818: Avoid double precision in kernel switching */ #define FIX_822_REFACTOR_BIN_REVERB_OPEN /* Nokia: Addresses first step of issue 822 by refactoring ivas_binaural_reverb_open */ #define FIX_847_OUTPUT_PCM_BUFFER /* VA: issue 847: Allocate decoder output PCM buffer dynamically */ -#define FIX_819_DOUBLE_PREC_COMB_FORMATS /* VA: issue 820: Double precision arithmetic in combined formats */ /* #################### End BE switches ################################## */ @@ -185,6 +184,7 @@ #define NONBE_FIX_840_PARAMMC_RS /* FhG: Issue #840: Resolve "MC RS ParamMC hoa encoder wrongly set to zero" */ #define NONBE_FIX_826_JBM_MASA_CNA_CNG /* FhG: issue #826: Resolve "JBM MASA: CNA and CNG not in sync with non-JBM decoding" */ #define NONBE_FIX_835_JBM_PARAMUPMIX_HEADROT /* FhG: issue #835: Resolve "JBM: ParamUpmix head rotation broken" */ +#define NONBE_FIX_819_DOUBLE_PREC_COMB_FORMATS /* VA: issue 820: Double precision arithmetic in combined formats */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_enc/ivas_omasa_enc.c b/lib_enc/ivas_omasa_enc.c index cf6e50a444..7a17117acd 100644 --- a/lib_enc/ivas_omasa_enc.c +++ b/lib_enc/ivas_omasa_enc.c @@ -127,7 +127,7 @@ ivas_error ivas_omasa_enc_open( for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) { -#ifdef FIX_819_DOUBLE_PREC_COMB_FORMATS +#ifdef NONBE_FIX_819_DOUBLE_PREC_COMB_FORMATS set_f( hOMasa->prev_object_dm_gains[i], INV_SQRT_2, MASA_MAX_TRANSPORT_CHANNELS ); #else set_f( hOMasa->prev_object_dm_gains[i], (float) sqrt( 0.5 ), MASA_MAX_TRANSPORT_CHANNELS ); diff --git a/lib_enc/ivas_osba_enc.c b/lib_enc/ivas_osba_enc.c index 15f93769d7..c9f49ba4ef 100644 --- a/lib_enc/ivas_osba_enc.c +++ b/lib_enc/ivas_osba_enc.c @@ -104,7 +104,7 @@ ivas_error ivas_osba_enc_open( for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) { -#ifdef FIX_819_DOUBLE_PREC_COMB_FORMATS +#ifdef NONBE_FIX_819_DOUBLE_PREC_COMB_FORMATS set_f( hOSba->prev_object_dm_gains[i], INV_SQRT_2, MAX_INPUT_CHANNELS ); #else set_f( hOSba->prev_object_dm_gains[i], (float) sqrt( 0.5 ), MAX_INPUT_CHANNELS ); diff --git a/lib_rend/ivas_omasa_ana.c b/lib_rend/ivas_omasa_ana.c index 38de1c45a0..3114e8dd24 100644 --- a/lib_rend/ivas_omasa_ana.c +++ b/lib_rend/ivas_omasa_ana.c @@ -150,7 +150,7 @@ ivas_error ivas_omasa_ana_open( for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) { -#ifdef FIX_819_DOUBLE_PREC_COMB_FORMATS +#ifdef NONBE_FIX_819_DOUBLE_PREC_COMB_FORMATS set_f( hOMasa->prev_object_dm_gains[i], INV_SQRT_2, MASA_MAX_TRANSPORT_CHANNELS ); #else set_f( hOMasa->prev_object_dm_gains[i], (float) sqrt( 0.5 ), MASA_MAX_TRANSPORT_CHANNELS ); -- GitLab