Loading lib_com/ivas_masa_com.c +0 −1 Original line number Diff line number Diff line Loading @@ -600,7 +600,6 @@ int32_t calculate_cpe_brate_MASA_ISM( int16_t k, sce_id; k = 0; while ( k < SIZE_IVAS_BRATE_TBL && ivas_total_brate != ivas_brate_tbl[k] ) { k++; Loading lib_com/ivas_prot.h +2 −0 Original line number Diff line number Diff line Loading @@ -5036,7 +5036,9 @@ void ivas_omasa_set_config( void ivas_omasa_enc( OMASA_ENC_HANDLE hOMasa, /* i/o: OMASA encoder handle */ #ifndef OMASA_DIFFUSE_ISM_MERGE IVAS_QMETADATA_HANDLE hQMeta, /* i/o: Qmetadata handle */ #endif MASA_ENCODER_HANDLE hMasa, /* i/o: MASA encoder handle */ ISM_METADATA_HANDLE hIsmMeta[], /* i/o: ISM metadata handle */ float data_in_f[][L_FRAME48k], /* i/o: Input / transport audio signals */ Loading lib_enc/ivas_enc.c +4 −0 Original line number Diff line number Diff line Loading @@ -340,7 +340,11 @@ ivas_error ivas_enc( if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC ) { /* Estimate MASA parameters for the objects */ #ifdef OMASA_DIFFUSE_ISM_MERGE ivas_omasa_enc( st_ivas->hOMasa, st_ivas->hMasa, st_ivas->hIsmMetaData, data_f, input_frame, st_ivas->nchan_transport, hEncoderConfig->nchan_ism, st_ivas->ism_mode, data_separated_object, &idx_separated_object ); #else ivas_omasa_enc( st_ivas->hOMasa, st_ivas->hQMetaData, st_ivas->hMasa, st_ivas->hIsmMetaData, data_f, input_frame, st_ivas->nchan_transport, hEncoderConfig->nchan_ism, st_ivas->ism_mode, data_separated_object, &idx_separated_object ); #endif } /* Encode ISMs transport channels */ Loading lib_enc/ivas_masa_enc.c +1 −1 Original line number Diff line number Diff line Loading @@ -2136,7 +2136,7 @@ static void ivas_merge_masa_metadata( /* target is original MASA diffuseness */ total_diff_nrg = eneBand * hMeta->common_meta.diffuse_to_total_ratio[sf][band]; /* criterion is mean of ISM ratio and new ratio */ energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.energy_ism[sf][band] ) ) ) / 2.0 * hMasa->data.energy_ism[sf][band]; energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.energy_ism[sf][band] ) ) ) / 2.0f * hMasa->data.energy_ism[sf][band]; /* Determine combined metadata based on the weights */ merge_dest = -1; Loading lib_enc/ivas_omasa_enc.c +9 −8 Original line number Diff line number Diff line Loading @@ -246,7 +246,7 @@ void ivas_omasa_set_config( #endif ) { int16_t i, maxBin; uint8_t i, maxBin; /* Determine the number of bands */ #ifdef OMASA_DIFFUSE_ISM_MERGE Loading Loading @@ -280,7 +280,7 @@ void ivas_omasa_set_config( } } maxBin = (int16_t) ( input_Fs * INV_CLDFB_BANDWIDTH + 0.5f ); maxBin = (uint8_t) ( input_Fs * INV_CLDFB_BANDWIDTH + 0.5f ); for ( i = 1; i < hOMasa->nbands + 1; i++ ) { Loading Loading @@ -310,7 +310,9 @@ void ivas_omasa_set_config( void ivas_omasa_enc( OMASA_ENC_HANDLE hOMasa, /* i/o: OMASA encoder handle */ #ifndef OMASA_DIFFUSE_ISM_MERGE IVAS_QMETADATA_HANDLE hQMeta, /* i/o: Qmetadata handle */ #endif MASA_ENCODER_HANDLE hMasa, /* i/o: MASA encoder handle */ ISM_METADATA_HANDLE hIsmMeta[], /* i/o: ISM metadata handle */ float data_in_f[][L_FRAME48k], /* i/o: Input / transport audio signals */ Loading @@ -331,7 +333,7 @@ void ivas_omasa_enc( #ifdef OMASA_DIFFUSE_ISM_MERGE OMASA_SPATIAL_META OMasaMeta; /* working memory for the ISM-object MASA-parameters */ OMASA_SPATIAL_META_HANDLE hOMasaMeta; int16_t n_bands_orig, n_subframes_orig; uint8_t n_bands_orig, n_subframes_orig; uint8_t numCodingBands_orig, joinedSubframes_orig; #else float elevation_m_values[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; Loading Loading @@ -361,7 +363,7 @@ void ivas_omasa_enc( hMasa->config.numCodingBands = n_bands_orig; } // force computation into high resolution /* force computation into high resolution */ n_bands_orig = hOMasa->nbands; n_subframes_orig = hOMasa->nSubframes; Loading @@ -372,8 +374,7 @@ void ivas_omasa_enc( /* NB: only first direction is populated */ /* NB2: in energy_ratios and surround_coherence only first sub-frame contains valid data */ ivas_omasa_param_est_enc( hOMasa, hMasa, hIsmMeta, data_in_f, hOMasaMeta->directional_meta[0].elevation, hOMasaMeta->directional_meta[0].azimuth, hOMasaMeta->directional_meta[0].energy_ratio[0], hOMasaMeta->directional_meta[0].spread_coherence, hOMasaMeta->common_meta.surround_coherence[0], hOMasaMeta->common_meta.diffuse_to_total_ratio[0], input_frame, nchan_ism ); hOMasaMeta->common_meta.diffuse_to_total_ratio[0], input_frame, nchan_ism ); /* copy energy_ratios and surrCoh from first sub-frame to the remaining ones */ for ( i = 1; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) Loading Loading
lib_com/ivas_masa_com.c +0 −1 Original line number Diff line number Diff line Loading @@ -600,7 +600,6 @@ int32_t calculate_cpe_brate_MASA_ISM( int16_t k, sce_id; k = 0; while ( k < SIZE_IVAS_BRATE_TBL && ivas_total_brate != ivas_brate_tbl[k] ) { k++; Loading
lib_com/ivas_prot.h +2 −0 Original line number Diff line number Diff line Loading @@ -5036,7 +5036,9 @@ void ivas_omasa_set_config( void ivas_omasa_enc( OMASA_ENC_HANDLE hOMasa, /* i/o: OMASA encoder handle */ #ifndef OMASA_DIFFUSE_ISM_MERGE IVAS_QMETADATA_HANDLE hQMeta, /* i/o: Qmetadata handle */ #endif MASA_ENCODER_HANDLE hMasa, /* i/o: MASA encoder handle */ ISM_METADATA_HANDLE hIsmMeta[], /* i/o: ISM metadata handle */ float data_in_f[][L_FRAME48k], /* i/o: Input / transport audio signals */ Loading
lib_enc/ivas_enc.c +4 −0 Original line number Diff line number Diff line Loading @@ -340,7 +340,11 @@ ivas_error ivas_enc( if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC ) { /* Estimate MASA parameters for the objects */ #ifdef OMASA_DIFFUSE_ISM_MERGE ivas_omasa_enc( st_ivas->hOMasa, st_ivas->hMasa, st_ivas->hIsmMetaData, data_f, input_frame, st_ivas->nchan_transport, hEncoderConfig->nchan_ism, st_ivas->ism_mode, data_separated_object, &idx_separated_object ); #else ivas_omasa_enc( st_ivas->hOMasa, st_ivas->hQMetaData, st_ivas->hMasa, st_ivas->hIsmMetaData, data_f, input_frame, st_ivas->nchan_transport, hEncoderConfig->nchan_ism, st_ivas->ism_mode, data_separated_object, &idx_separated_object ); #endif } /* Encode ISMs transport channels */ Loading
lib_enc/ivas_masa_enc.c +1 −1 Original line number Diff line number Diff line Loading @@ -2136,7 +2136,7 @@ static void ivas_merge_masa_metadata( /* target is original MASA diffuseness */ total_diff_nrg = eneBand * hMeta->common_meta.diffuse_to_total_ratio[sf][band]; /* criterion is mean of ISM ratio and new ratio */ energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.energy_ism[sf][band] ) ) ) / 2.0 * hMasa->data.energy_ism[sf][band]; energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.energy_ism[sf][band] ) ) ) / 2.0f * hMasa->data.energy_ism[sf][band]; /* Determine combined metadata based on the weights */ merge_dest = -1; Loading
lib_enc/ivas_omasa_enc.c +9 −8 Original line number Diff line number Diff line Loading @@ -246,7 +246,7 @@ void ivas_omasa_set_config( #endif ) { int16_t i, maxBin; uint8_t i, maxBin; /* Determine the number of bands */ #ifdef OMASA_DIFFUSE_ISM_MERGE Loading Loading @@ -280,7 +280,7 @@ void ivas_omasa_set_config( } } maxBin = (int16_t) ( input_Fs * INV_CLDFB_BANDWIDTH + 0.5f ); maxBin = (uint8_t) ( input_Fs * INV_CLDFB_BANDWIDTH + 0.5f ); for ( i = 1; i < hOMasa->nbands + 1; i++ ) { Loading Loading @@ -310,7 +310,9 @@ void ivas_omasa_set_config( void ivas_omasa_enc( OMASA_ENC_HANDLE hOMasa, /* i/o: OMASA encoder handle */ #ifndef OMASA_DIFFUSE_ISM_MERGE IVAS_QMETADATA_HANDLE hQMeta, /* i/o: Qmetadata handle */ #endif MASA_ENCODER_HANDLE hMasa, /* i/o: MASA encoder handle */ ISM_METADATA_HANDLE hIsmMeta[], /* i/o: ISM metadata handle */ float data_in_f[][L_FRAME48k], /* i/o: Input / transport audio signals */ Loading @@ -331,7 +333,7 @@ void ivas_omasa_enc( #ifdef OMASA_DIFFUSE_ISM_MERGE OMASA_SPATIAL_META OMasaMeta; /* working memory for the ISM-object MASA-parameters */ OMASA_SPATIAL_META_HANDLE hOMasaMeta; int16_t n_bands_orig, n_subframes_orig; uint8_t n_bands_orig, n_subframes_orig; uint8_t numCodingBands_orig, joinedSubframes_orig; #else float elevation_m_values[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; Loading Loading @@ -361,7 +363,7 @@ void ivas_omasa_enc( hMasa->config.numCodingBands = n_bands_orig; } // force computation into high resolution /* force computation into high resolution */ n_bands_orig = hOMasa->nbands; n_subframes_orig = hOMasa->nSubframes; Loading @@ -372,8 +374,7 @@ void ivas_omasa_enc( /* NB: only first direction is populated */ /* NB2: in energy_ratios and surround_coherence only first sub-frame contains valid data */ ivas_omasa_param_est_enc( hOMasa, hMasa, hIsmMeta, data_in_f, hOMasaMeta->directional_meta[0].elevation, hOMasaMeta->directional_meta[0].azimuth, hOMasaMeta->directional_meta[0].energy_ratio[0], hOMasaMeta->directional_meta[0].spread_coherence, hOMasaMeta->common_meta.surround_coherence[0], hOMasaMeta->common_meta.diffuse_to_total_ratio[0], input_frame, nchan_ism ); hOMasaMeta->common_meta.diffuse_to_total_ratio[0], input_frame, nchan_ism ); /* copy energy_ratios and surrCoh from first sub-frame to the remaining ones */ for ( i = 1; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) Loading