Loading lib_com/ivas_masa_com.c +3 −6 Original line number Diff line number Diff line Loading @@ -330,14 +330,12 @@ void masa_sample_rate_band_correction( #endif uint8_t numBands48k; #ifdef FIX_HBR_MASAMETA if ( maxBand == MASA_FREQUENCY_BANDS - 1 ) #else #ifndef FIX_HBR_MASAMETA if ( sampling_rate == 48000 ) #endif { return; } #endif #ifndef FIX_HBR_MASAMETA /* Find maximum band usable at this sample rate */ Loading @@ -358,10 +356,9 @@ void masa_sample_rate_band_correction( if ( highBand >= maxBand ) { config->numCodingBands = band; hQMetaData->numCodingBands = band; #ifdef FIX_HBR_MASAMETA if ( !is_encoder ) if ( is_encoder ) { if ( hQMetaData->q_direction->cfg.nbands > band ) { Loading lib_com/ivas_prot.h +3 −3 Original line number Diff line number Diff line Loading @@ -3188,9 +3188,9 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: hQMetaData handle */ uint16_t *bitstream, /* i : bitstream */ int16_t *index, /* i/o: bitstream position */ SPHERICAL_GRID_DATA *sph_grid16, /* i: spherical grid for deindexing */ int16_t bits_sph_idx, int16_t bits_sp_coh const SPHERICAL_GRID_DATA *sph_grid16, /* i: spherical grid for deindexing */ const int16_t bits_sph_idx, const int16_t bits_sp_coh #ifdef FIX_HBR_MASAMETA , uint8_t ncoding_bands_config Loading lib_dec/ivas_masa_dec.c +3 −3 Original line number Diff line number Diff line Loading @@ -573,7 +573,7 @@ static ivas_error ivas_masa_dec_config( /* Find maximum band usable */ maxBin = (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH ); maxBand = 0; while ( MASA_band_grouping_24[maxBand] <= maxBin && maxBand < MASA_FREQUENCY_BANDS ) while ( MASA_band_grouping_24[maxBand] <= maxBin && maxBand <= MASA_FREQUENCY_BANDS ) { maxBand++; } Loading @@ -582,11 +582,11 @@ static ivas_error ivas_masa_dec_config( if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) { /* need to apply the sampling rate correction also for the EXT output MASA meta buffer */ masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hQMetaData, maxBand, ( 0 || ( st_ivas->hDecoderConfig->ivas_total_brate <= IVAS_256k ) ), hMasa->data.extOutMeta ); masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hQMetaData, maxBand, 0, hMasa->data.extOutMeta ); } else { masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hQMetaData, maxBand, ( 0 || ( st_ivas->hDecoderConfig->ivas_total_brate <= IVAS_256k ) ), NULL ); masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hQMetaData, maxBand, 0, NULL ); } #else if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) Loading lib_dec/ivas_qmetadata_dec.c +9 −8 Original line number Diff line number Diff line Loading @@ -809,9 +809,9 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: hQMetaData handle */ uint16_t *bitstream, /* i : bitstream */ int16_t *index, /* i/o: bitstream position */ SPHERICAL_GRID_DATA *sph_grid16, /* i: spherical grid for deindexing */ int16_t bits_sph_idx, int16_t bits_sp_coh const SPHERICAL_GRID_DATA *sph_grid16, /* i : spherical grid for deindexing */ const int16_t bits_sph_idx, const int16_t bits_sp_coh #ifdef FIX_HBR_MASAMETA , uint8_t ncoding_bands_config Loading @@ -830,6 +830,7 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( int16_t codedBands, sf_nbands0, sf_nbands1; sf_nbands1 = 1; #endif #ifdef DEBUG_MODE_QMETADATA static FILE *pF = NULL; static FILE *pF_azi = NULL; Loading Loading @@ -857,11 +858,11 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( /* read number of higher inactive/not encoded bands */ if ( bitstream[( *index )--] ) { codedBands = ncoding_bands_config - ivas_qmetadata_DecodeExtendedGR( bitstream, index, MASA_MAXIMUM_CODING_SUBBANDS, 1 ) - 1; codedBands = MASA_MAXIMUM_CODING_SUBBANDS - ivas_qmetadata_DecodeExtendedGR( bitstream, index, MASA_MAXIMUM_CODING_SUBBANDS, 1 ) - 1; } else { codedBands = ncoding_bands_config; codedBands = MASA_MAXIMUM_CODING_SUBBANDS; } for ( b = codedBands; b < ncoding_bands_config; b++ ) { Loading lib_enc/ivas_masa_enc.c +9 −7 Original line number Diff line number Diff line Loading @@ -655,7 +655,7 @@ ivas_error ivas_masa_enc_config( /* Find maximum band usable */ maxBin = (int16_t) ( st_ivas->hEncoderConfig->input_Fs * INV_CLDFB_BANDWIDTH ); maxBand = 0; while ( MASA_band_grouping_24[maxBand] <= maxBin && maxBand < MASA_FREQUENCY_BANDS ) while ( MASA_band_grouping_24[maxBand] <= maxBin && maxBand <= MASA_FREQUENCY_BANDS ) { maxBand++; } Loading @@ -663,12 +663,13 @@ ivas_error ivas_masa_enc_config( if ( ivas_total_brate > IVAS_256k ) { int16_t continueLoop = 1; int16_t continueLoop; continueLoop = 1; while ( maxBand > 5 && continueLoop ) { for ( sf = 0; sf < MAX_PARAM_SPATIAL_SUBFRAMES; sf++ ) { if ( hMasa->data.energy[sf][maxBand] > 100000 ) if ( hMasa->data.energy[sf][maxBand - 1] > 100000 ) { continueLoop = 0; break; Loading @@ -680,16 +681,17 @@ ivas_error ivas_masa_enc_config( } } if ( maxBand == MASA_MAXIMUM_CODING_SUBBANDS - 1 ) if ( maxBand < MASA_MAXIMUM_CODING_SUBBANDS ) { st_ivas->hQMetaData->q_direction->cfg.inactiveBands = 0; st_ivas->hQMetaData->q_direction->cfg.inactiveBands = MASA_MAXIMUM_CODING_SUBBANDS - maxBand; } else { st_ivas->hQMetaData->q_direction->cfg.inactiveBands = hMasa->config.numCodingBands - maxBand; st_ivas->hQMetaData->q_direction->cfg.inactiveBands = 0; } } masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, hQMetaData, maxBand, ( ivas_total_brate < IVAS_384k ), NULL ); masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, hQMetaData, maxBand, ivas_total_brate > IVAS_256k, NULL ); if ( hMasa->config.numTwoDirBands >= hMasa->config.numCodingBands ) { Loading Loading
lib_com/ivas_masa_com.c +3 −6 Original line number Diff line number Diff line Loading @@ -330,14 +330,12 @@ void masa_sample_rate_band_correction( #endif uint8_t numBands48k; #ifdef FIX_HBR_MASAMETA if ( maxBand == MASA_FREQUENCY_BANDS - 1 ) #else #ifndef FIX_HBR_MASAMETA if ( sampling_rate == 48000 ) #endif { return; } #endif #ifndef FIX_HBR_MASAMETA /* Find maximum band usable at this sample rate */ Loading @@ -358,10 +356,9 @@ void masa_sample_rate_band_correction( if ( highBand >= maxBand ) { config->numCodingBands = band; hQMetaData->numCodingBands = band; #ifdef FIX_HBR_MASAMETA if ( !is_encoder ) if ( is_encoder ) { if ( hQMetaData->q_direction->cfg.nbands > band ) { Loading
lib_com/ivas_prot.h +3 −3 Original line number Diff line number Diff line Loading @@ -3188,9 +3188,9 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: hQMetaData handle */ uint16_t *bitstream, /* i : bitstream */ int16_t *index, /* i/o: bitstream position */ SPHERICAL_GRID_DATA *sph_grid16, /* i: spherical grid for deindexing */ int16_t bits_sph_idx, int16_t bits_sp_coh const SPHERICAL_GRID_DATA *sph_grid16, /* i: spherical grid for deindexing */ const int16_t bits_sph_idx, const int16_t bits_sp_coh #ifdef FIX_HBR_MASAMETA , uint8_t ncoding_bands_config Loading
lib_dec/ivas_masa_dec.c +3 −3 Original line number Diff line number Diff line Loading @@ -573,7 +573,7 @@ static ivas_error ivas_masa_dec_config( /* Find maximum band usable */ maxBin = (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH ); maxBand = 0; while ( MASA_band_grouping_24[maxBand] <= maxBin && maxBand < MASA_FREQUENCY_BANDS ) while ( MASA_band_grouping_24[maxBand] <= maxBin && maxBand <= MASA_FREQUENCY_BANDS ) { maxBand++; } Loading @@ -582,11 +582,11 @@ static ivas_error ivas_masa_dec_config( if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) { /* need to apply the sampling rate correction also for the EXT output MASA meta buffer */ masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hQMetaData, maxBand, ( 0 || ( st_ivas->hDecoderConfig->ivas_total_brate <= IVAS_256k ) ), hMasa->data.extOutMeta ); masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hQMetaData, maxBand, 0, hMasa->data.extOutMeta ); } else { masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hQMetaData, maxBand, ( 0 || ( st_ivas->hDecoderConfig->ivas_total_brate <= IVAS_256k ) ), NULL ); masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, st_ivas->hQMetaData, maxBand, 0, NULL ); } #else if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) Loading
lib_dec/ivas_qmetadata_dec.c +9 −8 Original line number Diff line number Diff line Loading @@ -809,9 +809,9 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: hQMetaData handle */ uint16_t *bitstream, /* i : bitstream */ int16_t *index, /* i/o: bitstream position */ SPHERICAL_GRID_DATA *sph_grid16, /* i: spherical grid for deindexing */ int16_t bits_sph_idx, int16_t bits_sp_coh const SPHERICAL_GRID_DATA *sph_grid16, /* i : spherical grid for deindexing */ const int16_t bits_sph_idx, const int16_t bits_sp_coh #ifdef FIX_HBR_MASAMETA , uint8_t ncoding_bands_config Loading @@ -830,6 +830,7 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( int16_t codedBands, sf_nbands0, sf_nbands1; sf_nbands1 = 1; #endif #ifdef DEBUG_MODE_QMETADATA static FILE *pF = NULL; static FILE *pF_azi = NULL; Loading Loading @@ -857,11 +858,11 @@ int16_t ivas_qmetadata_dec_decode_hr_384_512( /* read number of higher inactive/not encoded bands */ if ( bitstream[( *index )--] ) { codedBands = ncoding_bands_config - ivas_qmetadata_DecodeExtendedGR( bitstream, index, MASA_MAXIMUM_CODING_SUBBANDS, 1 ) - 1; codedBands = MASA_MAXIMUM_CODING_SUBBANDS - ivas_qmetadata_DecodeExtendedGR( bitstream, index, MASA_MAXIMUM_CODING_SUBBANDS, 1 ) - 1; } else { codedBands = ncoding_bands_config; codedBands = MASA_MAXIMUM_CODING_SUBBANDS; } for ( b = codedBands; b < ncoding_bands_config; b++ ) { Loading
lib_enc/ivas_masa_enc.c +9 −7 Original line number Diff line number Diff line Loading @@ -655,7 +655,7 @@ ivas_error ivas_masa_enc_config( /* Find maximum band usable */ maxBin = (int16_t) ( st_ivas->hEncoderConfig->input_Fs * INV_CLDFB_BANDWIDTH ); maxBand = 0; while ( MASA_band_grouping_24[maxBand] <= maxBin && maxBand < MASA_FREQUENCY_BANDS ) while ( MASA_band_grouping_24[maxBand] <= maxBin && maxBand <= MASA_FREQUENCY_BANDS ) { maxBand++; } Loading @@ -663,12 +663,13 @@ ivas_error ivas_masa_enc_config( if ( ivas_total_brate > IVAS_256k ) { int16_t continueLoop = 1; int16_t continueLoop; continueLoop = 1; while ( maxBand > 5 && continueLoop ) { for ( sf = 0; sf < MAX_PARAM_SPATIAL_SUBFRAMES; sf++ ) { if ( hMasa->data.energy[sf][maxBand] > 100000 ) if ( hMasa->data.energy[sf][maxBand - 1] > 100000 ) { continueLoop = 0; break; Loading @@ -680,16 +681,17 @@ ivas_error ivas_masa_enc_config( } } if ( maxBand == MASA_MAXIMUM_CODING_SUBBANDS - 1 ) if ( maxBand < MASA_MAXIMUM_CODING_SUBBANDS ) { st_ivas->hQMetaData->q_direction->cfg.inactiveBands = 0; st_ivas->hQMetaData->q_direction->cfg.inactiveBands = MASA_MAXIMUM_CODING_SUBBANDS - maxBand; } else { st_ivas->hQMetaData->q_direction->cfg.inactiveBands = hMasa->config.numCodingBands - maxBand; st_ivas->hQMetaData->q_direction->cfg.inactiveBands = 0; } } masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, hQMetaData, maxBand, ( ivas_total_brate < IVAS_384k ), NULL ); masa_sample_rate_band_correction( &( hMasa->config ), hMasa->data.band_mapping, hQMetaData, maxBand, ivas_total_brate > IVAS_256k, NULL ); if ( hMasa->config.numTwoDirBands >= hMasa->config.numCodingBands ) { Loading