Loading lib_com/ivas_dirac_com_fx.c +34 −9 Original line number Diff line number Diff line Loading @@ -223,11 +223,19 @@ ivas_error ivas_dirac_config_fx( IF( EQ_32( ivas_format, SBA_FORMAT ) || EQ_32( ivas_format, SBA_ISM_FORMAT ) ) { // 100861_dirac_dec #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, (Word16) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hConfig->enc_param_start_band, hFbMdft, 1 ); #else ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, (Word16) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hConfig->enc_param_start_band, hFbMdft ); #endif } ELSE { #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( band_grouping, hConfig->nbands, (Word16) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), NULL, 0, 0, hFbMdft, 1 ); #else ivas_dirac_config_bands_fx( band_grouping, hConfig->nbands, (Word16) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), NULL, 0, 0, hFbMdft ); #endif } return error; Loading @@ -235,11 +243,22 @@ ivas_error ivas_dirac_config_fx( /*------------------------------------------------------------------------- * ivas_dirac_sba_config_bands() * ivas_dirac_config_bands_fx() * * DirAC Configuration freq. band function; used also in MASA decoder *------------------------------------------------------------------------*/ #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING void ivas_dirac_config_bands_fx( Word16 *band_grouping, /* o : band grouping */ const Word16 nbands, /* i : number of bands */ const Word16 max_band, /* i : maximal band index +1 */ Word16 *dirac_to_spar_md_bands, /* o : mapping of DirAC parameter band index to SPAR FB band index */ const Word8 useLowerBandRes, /* i : flag indicating lower band resolution for DirAC */ const Word16 enc_param_start_band, /* i : band index of first DirAC parameter band */ IVAS_FB_MIXER_HANDLE hFbMdft, const Word8 BandGroupLowRes ) #else void ivas_dirac_config_bands_fx( Word16 *band_grouping, /* o : band grouping */ const Word16 nbands, /* i : number of bands */ Loading @@ -248,6 +267,7 @@ void ivas_dirac_config_bands_fx( const Word8 useLowerBandRes, const Word16 enc_param_start_band, IVAS_FB_MIXER_HANDLE hFbMdft ) #endif { Word16 i; { Loading Loading @@ -307,6 +327,10 @@ void ivas_dirac_config_bands_fx( Word16 step = DIRAC_LOW_BANDRES_STEP; move16(); Word16 reduced_band; #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING IF( BandGroupLowRes ) #endif { FOR( ( band = enc_param_start_band + 2, reduced_band = enc_param_start_band + 1 ); band <= DIRAC_MAX_NBANDS; ( band += step, reduced_band++ ) ) { band_grouping[reduced_band] = band_grouping[band]; Loading @@ -317,6 +341,7 @@ void ivas_dirac_config_bands_fx( band_grouping[reduced_band] = max_band; move16(); } } FOR( ( band = enc_param_start_band + ( DIRAC_MAX_NBANDS - enc_param_start_band ) / 2 - 1, reduced_band = DIRAC_MAX_NBANDS - 1 ); band >= enc_param_start_band; ( band--, reduced_band -= step ) ) { dirac_to_spar_md_bands[reduced_band] = dirac_to_spar_md_bands[band]; Loading lib_com/ivas_prot_fx.h +12 −0 Original line number Diff line number Diff line Loading @@ -4985,6 +4985,17 @@ void ivas_sba2mc_cldfb_fixed( const Word32 *hoa_dec_mtx /* i : HOA decoding mtx */ ); #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING void ivas_dirac_config_bands_fx( Word16 *band_grouping, /* o : band grouping */ const Word16 nbands, /* i : number of bands */ const Word16 max_band, /* i : maximal band index +1 */ Word16 *dirac_to_spar_md_bands, /* o : mapping of DirAC parameter band index to SPAR FB band index */ const Word8 useLowerBandRes, /* i : flag indicating lower band resolution for DirAC */ const Word16 enc_param_start_band, /* i : band index of first DirAC parameter band */ IVAS_FB_MIXER_HANDLE hFbMdft, const Word8 BandGroupLowRes ); #else void ivas_dirac_config_bands_fx( Word16 *band_grouping, /* o : band grouping */ const Word16 nbands, /* i : number of bands */ Loading @@ -4993,6 +5004,7 @@ void ivas_dirac_config_bands_fx( const Word8 useLowerBandRes, /* i : flag indicating lower band resolution for DirAC */ const Word16 enc_param_start_band, /* i : band index of first DirAC parameter band */ IVAS_FB_MIXER_HANDLE hFbMdft ); #endif void ivas_dirac_dec_close_fx( DIRAC_DEC_HANDLE *hDirAC_out ); Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ #define FIX_929_RENDERER_CMDL /* Nokia: issue #929: renderer command line option */ #define NONBE_FIX_BINAURAL_ROOM_IR_REVERBERATOR /* FhG: re-enable acidentially disabled reverberator for BINAURAL_ROOM_IR */ #define NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM /* FhG: issue 1058: do not initialize EFAP when IntSetup is HOA3 */ #define NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING /* Dlb: issue 907: fix for band mapping at VLBR */ /* #################### End BASOP porting switches ############################ */ Loading lib_dec/ivas_dirac_dec_fx.c +8 −1 Original line number Diff line number Diff line Loading @@ -1624,7 +1624,11 @@ void ivas_qmetadata_to_dirac_fx( move16(); hDirAC->hConfig->nbands = 5; move16(); #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( hDirAC->band_grouping, hDirAC->hConfig->nbands, nbands, NULL, 0, 0, NULL, 1 ); #else ivas_dirac_config_bands_fx( hDirAC->band_grouping, hDirAC->hConfig->nbands, nbands, NULL, 0, 0, NULL ); #endif nbands = 5; move16(); } Loading @@ -1643,8 +1647,11 @@ void ivas_qmetadata_to_dirac_fx( move16(); } #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( hDirAC->band_grouping, hDirAC->hConfig->nbands, nbands, dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hDirAC->hConfig->enc_param_start_band, hDirAC->hFbMdft, 0 ); #else ivas_dirac_config_bands_fx( hDirAC->band_grouping, hDirAC->hConfig->nbands, nbands, dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hDirAC->hConfig->enc_param_start_band, hDirAC->hFbMdft ); #endif nbands = hDirAC->hConfig->nbands; move16(); if ( hQMetaData->q_direction[0].cfg.nblocks == 0 ) Loading lib_dec/ivas_init_dec.c +10 −0 Original line number Diff line number Diff line Loading @@ -1569,8 +1569,13 @@ ivas_error ivas_init_decoder_fx( move16(); } #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, extract_l( Mpy_32_32_r( st_ivas->hDecoderConfig->output_Fs, INV_CLDFB_BANDWIDTH_Q31 ) ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0, 1 ); #else ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, extract_l( Mpy_32_32_r( st_ivas->hDecoderConfig->output_Fs, INV_CLDFB_BANDWIDTH_Q31 ) ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); #endif } st_ivas->sba_dirac_stereo_flag = ivas_get_sba_dirac_stereo_flag( st_ivas ); move16(); Loading Loading @@ -1759,8 +1764,13 @@ ivas_error ivas_init_decoder_fx( move16(); } #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, extract_l( Mpy_32_32_r( st_ivas->hDecoderConfig->output_Fs, INV_CLDFB_BANDWIDTH_Q31 ) ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0, 1 ); #else ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, extract_l( Mpy_32_32_r( st_ivas->hDecoderConfig->output_Fs, INV_CLDFB_BANDWIDTH_Q31 ) ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); #endif } FOR( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) Loading Loading
lib_com/ivas_dirac_com_fx.c +34 −9 Original line number Diff line number Diff line Loading @@ -223,11 +223,19 @@ ivas_error ivas_dirac_config_fx( IF( EQ_32( ivas_format, SBA_FORMAT ) || EQ_32( ivas_format, SBA_ISM_FORMAT ) ) { // 100861_dirac_dec #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, (Word16) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hConfig->enc_param_start_band, hFbMdft, 1 ); #else ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, (Word16) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hConfig->enc_param_start_band, hFbMdft ); #endif } ELSE { #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( band_grouping, hConfig->nbands, (Word16) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), NULL, 0, 0, hFbMdft, 1 ); #else ivas_dirac_config_bands_fx( band_grouping, hConfig->nbands, (Word16) ( Fs * INV_CLDFB_BANDWIDTH + 0.5f ), NULL, 0, 0, hFbMdft ); #endif } return error; Loading @@ -235,11 +243,22 @@ ivas_error ivas_dirac_config_fx( /*------------------------------------------------------------------------- * ivas_dirac_sba_config_bands() * ivas_dirac_config_bands_fx() * * DirAC Configuration freq. band function; used also in MASA decoder *------------------------------------------------------------------------*/ #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING void ivas_dirac_config_bands_fx( Word16 *band_grouping, /* o : band grouping */ const Word16 nbands, /* i : number of bands */ const Word16 max_band, /* i : maximal band index +1 */ Word16 *dirac_to_spar_md_bands, /* o : mapping of DirAC parameter band index to SPAR FB band index */ const Word8 useLowerBandRes, /* i : flag indicating lower band resolution for DirAC */ const Word16 enc_param_start_band, /* i : band index of first DirAC parameter band */ IVAS_FB_MIXER_HANDLE hFbMdft, const Word8 BandGroupLowRes ) #else void ivas_dirac_config_bands_fx( Word16 *band_grouping, /* o : band grouping */ const Word16 nbands, /* i : number of bands */ Loading @@ -248,6 +267,7 @@ void ivas_dirac_config_bands_fx( const Word8 useLowerBandRes, const Word16 enc_param_start_band, IVAS_FB_MIXER_HANDLE hFbMdft ) #endif { Word16 i; { Loading Loading @@ -307,6 +327,10 @@ void ivas_dirac_config_bands_fx( Word16 step = DIRAC_LOW_BANDRES_STEP; move16(); Word16 reduced_band; #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING IF( BandGroupLowRes ) #endif { FOR( ( band = enc_param_start_band + 2, reduced_band = enc_param_start_band + 1 ); band <= DIRAC_MAX_NBANDS; ( band += step, reduced_band++ ) ) { band_grouping[reduced_band] = band_grouping[band]; Loading @@ -317,6 +341,7 @@ void ivas_dirac_config_bands_fx( band_grouping[reduced_band] = max_band; move16(); } } FOR( ( band = enc_param_start_band + ( DIRAC_MAX_NBANDS - enc_param_start_band ) / 2 - 1, reduced_band = DIRAC_MAX_NBANDS - 1 ); band >= enc_param_start_band; ( band--, reduced_band -= step ) ) { dirac_to_spar_md_bands[reduced_band] = dirac_to_spar_md_bands[band]; Loading
lib_com/ivas_prot_fx.h +12 −0 Original line number Diff line number Diff line Loading @@ -4985,6 +4985,17 @@ void ivas_sba2mc_cldfb_fixed( const Word32 *hoa_dec_mtx /* i : HOA decoding mtx */ ); #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING void ivas_dirac_config_bands_fx( Word16 *band_grouping, /* o : band grouping */ const Word16 nbands, /* i : number of bands */ const Word16 max_band, /* i : maximal band index +1 */ Word16 *dirac_to_spar_md_bands, /* o : mapping of DirAC parameter band index to SPAR FB band index */ const Word8 useLowerBandRes, /* i : flag indicating lower band resolution for DirAC */ const Word16 enc_param_start_band, /* i : band index of first DirAC parameter band */ IVAS_FB_MIXER_HANDLE hFbMdft, const Word8 BandGroupLowRes ); #else void ivas_dirac_config_bands_fx( Word16 *band_grouping, /* o : band grouping */ const Word16 nbands, /* i : number of bands */ Loading @@ -4993,6 +5004,7 @@ void ivas_dirac_config_bands_fx( const Word8 useLowerBandRes, /* i : flag indicating lower band resolution for DirAC */ const Word16 enc_param_start_band, /* i : band index of first DirAC parameter band */ IVAS_FB_MIXER_HANDLE hFbMdft ); #endif void ivas_dirac_dec_close_fx( DIRAC_DEC_HANDLE *hDirAC_out ); Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ #define FIX_929_RENDERER_CMDL /* Nokia: issue #929: renderer command line option */ #define NONBE_FIX_BINAURAL_ROOM_IR_REVERBERATOR /* FhG: re-enable acidentially disabled reverberator for BINAURAL_ROOM_IR */ #define NONBE_FIX_1058_DECODER_ERROR_WITH_REVERB_ROOM /* FhG: issue 1058: do not initialize EFAP when IntSetup is HOA3 */ #define NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING /* Dlb: issue 907: fix for band mapping at VLBR */ /* #################### End BASOP porting switches ############################ */ Loading
lib_dec/ivas_dirac_dec_fx.c +8 −1 Original line number Diff line number Diff line Loading @@ -1624,7 +1624,11 @@ void ivas_qmetadata_to_dirac_fx( move16(); hDirAC->hConfig->nbands = 5; move16(); #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( hDirAC->band_grouping, hDirAC->hConfig->nbands, nbands, NULL, 0, 0, NULL, 1 ); #else ivas_dirac_config_bands_fx( hDirAC->band_grouping, hDirAC->hConfig->nbands, nbands, NULL, 0, 0, NULL ); #endif nbands = 5; move16(); } Loading @@ -1643,8 +1647,11 @@ void ivas_qmetadata_to_dirac_fx( move16(); } #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( hDirAC->band_grouping, hDirAC->hConfig->nbands, nbands, dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hDirAC->hConfig->enc_param_start_band, hDirAC->hFbMdft, 0 ); #else ivas_dirac_config_bands_fx( hDirAC->band_grouping, hDirAC->hConfig->nbands, nbands, dirac_to_spar_md_bands, hQMetaData->useLowerBandRes, hDirAC->hConfig->enc_param_start_band, hDirAC->hFbMdft ); #endif nbands = hDirAC->hConfig->nbands; move16(); if ( hQMetaData->q_direction[0].cfg.nblocks == 0 ) Loading
lib_dec/ivas_init_dec.c +10 −0 Original line number Diff line number Diff line Loading @@ -1569,8 +1569,13 @@ ivas_error ivas_init_decoder_fx( move16(); } #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, extract_l( Mpy_32_32_r( st_ivas->hDecoderConfig->output_Fs, INV_CLDFB_BANDWIDTH_Q31 ) ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0, 1 ); #else ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, extract_l( Mpy_32_32_r( st_ivas->hDecoderConfig->output_Fs, INV_CLDFB_BANDWIDTH_Q31 ) ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); #endif } st_ivas->sba_dirac_stereo_flag = ivas_get_sba_dirac_stereo_flag( st_ivas ); move16(); Loading Loading @@ -1759,8 +1764,13 @@ ivas_error ivas_init_decoder_fx( move16(); } #ifdef NONBE_FIX_907_VLBR_DIRAC_BAND_MAPPING ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, extract_l( Mpy_32_32_r( st_ivas->hDecoderConfig->output_Fs, INV_CLDFB_BANDWIDTH_Q31 ) ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0, 1 ); #else ivas_dirac_config_bands_fx( band_grouping, IVAS_MAX_NUM_BANDS, extract_l( Mpy_32_32_r( st_ivas->hDecoderConfig->output_Fs, INV_CLDFB_BANDWIDTH_Q31 ) ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); #endif } FOR( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) Loading