From e0afcd5626a7dc9181f76a3552ca17c9709d75c6 Mon Sep 17 00:00:00 2001 From: "Brown, Stefanie" Date: Thu, 11 May 2023 15:34:07 +1000 Subject: [PATCH 1/3] DirAC 20ms parameter estiamtion bug fix --- lib_com/options.h | 2 ++ lib_enc/ivas_dirac_enc.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 9fe797240d..04f80349e8 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -177,6 +177,8 @@ #define FIX_435_ISM_MERGE_BUG /* Eri: Merge bug fix for ISM NULL metadata and tcx_only cases */ #define FIX_355_REFACTOR_PARAMBIN_TO_5MS /* Nokia: Fixes issue 355 by refactoring parametric binauralizer code to 5 ms mode */ +#define LBR_SBA_DIRAC_FIX /* DLB: Bug fix for DirAC at low bitrates */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 45ce09bb15..bbd0a52ab5 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -679,11 +679,19 @@ void ivas_dirac_param_est_enc( assert( pp_fr_real ); assert( pp_fr_imag ); #endif +#ifdef LBR_SBA_DIRAC_FIX + for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) + { + mvr2r( &pp_fr_real[i][ts * l_ts], Cldfb_RealBuffer[i], l_ts ); + mvr2r( &pp_fr_imag[i][ts * l_ts], Cldfb_ImagBuffer[i], l_ts ); + } +#else for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) { mvr2r( &pp_fr_real[i][block_m_idx * l_ts], Cldfb_RealBuffer[i], l_ts ); mvr2r( &pp_fr_imag[i][block_m_idx * l_ts], Cldfb_ImagBuffer[i], l_ts ); } +#endif } num_freq_bands = hDirAC->hConfig->nbands; -- GitLab From 077f5849704952385a35171a60d6b7f9c1e55cab Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 11 May 2023 19:10:54 +0200 Subject: [PATCH 2/3] fix initialization of hDirAC->block_grouping in case of BR switching --- lib_enc/ivas_dirac_enc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index de487c43ea..69a6b434e0 100755 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -247,8 +247,21 @@ ivas_error ivas_dirac_enc_reconfigure( /* :TODO: if the number of parameter bands change, do a meaningful mapping of parameter buffers from old to new band setting */ +#ifdef LBR_SBA_DIRAC_FIX + + if ( st_ivas->hQMetaData->useLowerRes ) + { + hDirAC->block_grouping[0] = 0; + hDirAC->block_grouping[1] = MAX_PARAM_SPATIAL_SUBFRAMES; + } + else + { + mvs2s( DirAC_block_grouping_5ms_MDFT, hDirAC->block_grouping, MAX_PARAM_SPATIAL_SUBFRAMES + 1 ); + } +#else mvs2s( DirAC_block_grouping, hDirAC->block_grouping, MAX_PARAM_SPATIAL_SUBFRAMES + 1 ); +#endif return error; } -- GitLab From 77655defb055aa2b603ed4a1d4b23684d43da95a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 11 May 2023 19:23:42 +0200 Subject: [PATCH 3/3] formatting --- lib_enc/ivas_dirac_enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 lib_enc/ivas_dirac_enc.c diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c old mode 100755 new mode 100644 index 69a6b434e0..72d55bc171 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -247,7 +247,7 @@ ivas_error ivas_dirac_enc_reconfigure( /* :TODO: if the number of parameter bands change, do a meaningful mapping of parameter buffers from old to new band setting */ -#ifdef LBR_SBA_DIRAC_FIX +#ifdef LBR_SBA_DIRAC_FIX if ( st_ivas->hQMetaData->useLowerRes ) { -- GitLab