Loading lib_enc/ivas_masa_enc.c +6 −3 Original line number Diff line number Diff line Loading @@ -2651,6 +2651,9 @@ void ivas_merge_masa_metadata( float total_diff_nrg; float eneBand; float energyMerged[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; #ifdef FIX_1161_REDUCE_OMASA_HEAP OMASA_ENCODER_ENERGY_HANDLE hOmasaEnergy = hMasa->data.hOmasaData->hOmasaEnergy; #endif numCodingBands = hMasa->config.numCodingBands; numDirections = hMasa->config.numberOfDirections; Loading Loading @@ -2680,7 +2683,7 @@ void ivas_merge_masa_metadata( /* Compute energies */ eneBand = hMasa->data.energy[sf][band]; #ifdef FIX_1161_REDUCE_OMASA_HEAP energyMerged[sf][band] = eneBand + hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band]; energyMerged[sf][band] = eneBand + hOmasaEnergy->energy_ism[sf][band]; #else energyMerged[sf][band] = eneBand + hMasa->data.hOmasaData->energy_ism[sf][band]; #endif Loading @@ -2701,7 +2704,7 @@ void ivas_merge_masa_metadata( /* criterion is mean of ISM ratio and new ratio */ #ifdef FIX_1161_REDUCE_OMASA_HEAP energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band] ) ) ) / 2.0f * hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band]; energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hOmasaEnergy->energy_ism[sf][band] ) ) ) / 2.0f * hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band]; #else energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.hOmasaData->energy_ism[sf][band] ) ) ) / 2.0f * hMasa->data.hOmasaData->energy_ism[sf][band]; #endif Loading @@ -2727,7 +2730,7 @@ void ivas_merge_masa_metadata( /* limit with the earlier direct-energy ratio */ #ifdef FIX_1161_REDUCE_OMASA_HEAP dir_sum = 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band] ); /* new dir ratio */ dir_sum = 1.0f - total_diff_nrg / ( EPSILON + eneBand + hOmasaEnergy->energy_ism[sf][band] ); /* new dir ratio */ #else dir_sum = 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.hOmasaData->energy_ism[sf][band] ); /* new dir ratio */ #endif Loading lib_enc/ivas_omasa_enc.c +15 −9 Original line number Diff line number Diff line Loading @@ -839,6 +839,9 @@ static void ivas_omasa_param_est_enc( float renormalization_factor_diff[MASA_FREQUENCY_BANDS]; float norm_tmp; int16_t mrange[2], brange[2]; #ifdef FIX_1161_REDUCE_OMASA_HEAP OMASA_ENCODER_ENERGY_HANDLE hOmasaEnergy = hOmasaData->hOmasaEnergy; #endif num_freq_bins = hOMasa->cldfbAnaEnc[0]->no_channels; num_freq_bands = hOMasa->nbands; Loading Loading @@ -871,7 +874,7 @@ static void ivas_omasa_param_est_enc( } #ifdef FIX_1161_REDUCE_OMASA_HEAP set_zero( hOmasaData->hOmasaEnergy->energy_ism[block_m_idx], num_freq_bands ); set_zero( hOmasaEnergy->energy_ism[block_m_idx], num_freq_bands ); #else set_zero( hOmasaData->energy_ism[block_m_idx], num_freq_bands ); #endif Loading @@ -893,7 +896,7 @@ static void ivas_omasa_param_est_enc( for ( k = 0; k < nchan_ism; k++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ism[block_m_idx][i] += Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j]; hOmasaEnergy->energy_ism[block_m_idx][i] += Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j]; #else hOmasaData->energy_ism[block_m_idx][i] += Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j]; #endif Loading Loading @@ -1024,6 +1027,9 @@ static void ivas_omasa_energy_and_ratio_est( int16_t mrange[2], brange[2]; float tftile_energy; float ism_ratio_sum; #ifdef FIX_1161_REDUCE_OMASA_HEAP OMASA_ENCODER_ENERGY_HANDLE hOmasaEnergy = hOmasaData->hOmasaEnergy; #endif num_freq_bands = hOMasa->nbands; l_ts = input_frame / CLDFB_NO_COL_MAX; Loading @@ -1038,13 +1044,13 @@ static void ivas_omasa_energy_and_ratio_est( for ( i = 0; i < hOMasa->nbands; i++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP set_zero( hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i], nchan_ism ); set_zero( hOmasaEnergy->energy_ratio_ism[block_m_idx][i], nchan_ism ); #else set_zero( hOmasaData->energy_ratio_ism[block_m_idx][i], nchan_ism ); #endif } #ifdef FIX_1161_REDUCE_OMASA_HEAP set_zero( hOmasaData->hOmasaEnergy->energy_ism[block_m_idx], num_freq_bands ); set_zero( hOmasaEnergy->energy_ism[block_m_idx], num_freq_bands ); #else set_zero( hOmasaData->energy_ism[block_m_idx], num_freq_bands ); #endif Loading @@ -1068,8 +1074,8 @@ static void ivas_omasa_energy_and_ratio_est( { tftile_energy = Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j]; #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ism[block_m_idx][i] += tftile_energy; hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i][k] += tftile_energy; hOmasaEnergy->energy_ism[block_m_idx][i] += tftile_energy; hOmasaEnergy->energy_ratio_ism[block_m_idx][i][k] += tftile_energy; #else hOmasaData->energy_ism[block_m_idx][i] += tftile_energy; Loading @@ -1087,8 +1093,8 @@ static void ivas_omasa_energy_and_ratio_est( for ( j = 0; j < nchan_ism; j++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j] /= ( hOmasaData->hOmasaEnergy->energy_ism[block_m_idx][i] + EPSILON ); ism_ratio_sum += hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j]; hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j] /= ( hOmasaEnergy->energy_ism[block_m_idx][i] + EPSILON ); ism_ratio_sum += hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j]; #else hOmasaData->energy_ratio_ism[block_m_idx][i][j] /= ( hOmasaData->energy_ism[block_m_idx][i] + EPSILON ); ism_ratio_sum += hOmasaData->energy_ratio_ism[block_m_idx][i][j]; Loading @@ -1101,7 +1107,7 @@ static void ivas_omasa_energy_and_ratio_est( for ( j = 0; j < nchan_ism; j++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j] = temp_ism_ratio; hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j] = temp_ism_ratio; #else hOmasaData->energy_ratio_ism[block_m_idx][i][j] = temp_ism_ratio; #endif Loading Loading
lib_enc/ivas_masa_enc.c +6 −3 Original line number Diff line number Diff line Loading @@ -2651,6 +2651,9 @@ void ivas_merge_masa_metadata( float total_diff_nrg; float eneBand; float energyMerged[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; #ifdef FIX_1161_REDUCE_OMASA_HEAP OMASA_ENCODER_ENERGY_HANDLE hOmasaEnergy = hMasa->data.hOmasaData->hOmasaEnergy; #endif numCodingBands = hMasa->config.numCodingBands; numDirections = hMasa->config.numberOfDirections; Loading Loading @@ -2680,7 +2683,7 @@ void ivas_merge_masa_metadata( /* Compute energies */ eneBand = hMasa->data.energy[sf][band]; #ifdef FIX_1161_REDUCE_OMASA_HEAP energyMerged[sf][band] = eneBand + hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band]; energyMerged[sf][band] = eneBand + hOmasaEnergy->energy_ism[sf][band]; #else energyMerged[sf][band] = eneBand + hMasa->data.hOmasaData->energy_ism[sf][band]; #endif Loading @@ -2701,7 +2704,7 @@ void ivas_merge_masa_metadata( /* criterion is mean of ISM ratio and new ratio */ #ifdef FIX_1161_REDUCE_OMASA_HEAP energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band] ) ) ) / 2.0f * hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band]; energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hOmasaEnergy->energy_ism[sf][band] ) ) ) / 2.0f * hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band]; #else energyTimesRatioISM = ( hOMasaMeta->directional_meta[0].energy_ratio[sf][band] + ( 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.hOmasaData->energy_ism[sf][band] ) ) ) / 2.0f * hMasa->data.hOmasaData->energy_ism[sf][band]; #endif Loading @@ -2727,7 +2730,7 @@ void ivas_merge_masa_metadata( /* limit with the earlier direct-energy ratio */ #ifdef FIX_1161_REDUCE_OMASA_HEAP dir_sum = 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.hOmasaData->hOmasaEnergy->energy_ism[sf][band] ); /* new dir ratio */ dir_sum = 1.0f - total_diff_nrg / ( EPSILON + eneBand + hOmasaEnergy->energy_ism[sf][band] ); /* new dir ratio */ #else dir_sum = 1.0f - total_diff_nrg / ( EPSILON + eneBand + hMasa->data.hOmasaData->energy_ism[sf][band] ); /* new dir ratio */ #endif Loading
lib_enc/ivas_omasa_enc.c +15 −9 Original line number Diff line number Diff line Loading @@ -839,6 +839,9 @@ static void ivas_omasa_param_est_enc( float renormalization_factor_diff[MASA_FREQUENCY_BANDS]; float norm_tmp; int16_t mrange[2], brange[2]; #ifdef FIX_1161_REDUCE_OMASA_HEAP OMASA_ENCODER_ENERGY_HANDLE hOmasaEnergy = hOmasaData->hOmasaEnergy; #endif num_freq_bins = hOMasa->cldfbAnaEnc[0]->no_channels; num_freq_bands = hOMasa->nbands; Loading Loading @@ -871,7 +874,7 @@ static void ivas_omasa_param_est_enc( } #ifdef FIX_1161_REDUCE_OMASA_HEAP set_zero( hOmasaData->hOmasaEnergy->energy_ism[block_m_idx], num_freq_bands ); set_zero( hOmasaEnergy->energy_ism[block_m_idx], num_freq_bands ); #else set_zero( hOmasaData->energy_ism[block_m_idx], num_freq_bands ); #endif Loading @@ -893,7 +896,7 @@ static void ivas_omasa_param_est_enc( for ( k = 0; k < nchan_ism; k++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ism[block_m_idx][i] += Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j]; hOmasaEnergy->energy_ism[block_m_idx][i] += Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j]; #else hOmasaData->energy_ism[block_m_idx][i] += Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j]; #endif Loading Loading @@ -1024,6 +1027,9 @@ static void ivas_omasa_energy_and_ratio_est( int16_t mrange[2], brange[2]; float tftile_energy; float ism_ratio_sum; #ifdef FIX_1161_REDUCE_OMASA_HEAP OMASA_ENCODER_ENERGY_HANDLE hOmasaEnergy = hOmasaData->hOmasaEnergy; #endif num_freq_bands = hOMasa->nbands; l_ts = input_frame / CLDFB_NO_COL_MAX; Loading @@ -1038,13 +1044,13 @@ static void ivas_omasa_energy_and_ratio_est( for ( i = 0; i < hOMasa->nbands; i++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP set_zero( hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i], nchan_ism ); set_zero( hOmasaEnergy->energy_ratio_ism[block_m_idx][i], nchan_ism ); #else set_zero( hOmasaData->energy_ratio_ism[block_m_idx][i], nchan_ism ); #endif } #ifdef FIX_1161_REDUCE_OMASA_HEAP set_zero( hOmasaData->hOmasaEnergy->energy_ism[block_m_idx], num_freq_bands ); set_zero( hOmasaEnergy->energy_ism[block_m_idx], num_freq_bands ); #else set_zero( hOmasaData->energy_ism[block_m_idx], num_freq_bands ); #endif Loading @@ -1068,8 +1074,8 @@ static void ivas_omasa_energy_and_ratio_est( { tftile_energy = Chnl_RealBuffer[k][j] * Chnl_RealBuffer[k][j] + Chnl_ImagBuffer[k][j] * Chnl_ImagBuffer[k][j]; #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ism[block_m_idx][i] += tftile_energy; hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i][k] += tftile_energy; hOmasaEnergy->energy_ism[block_m_idx][i] += tftile_energy; hOmasaEnergy->energy_ratio_ism[block_m_idx][i][k] += tftile_energy; #else hOmasaData->energy_ism[block_m_idx][i] += tftile_energy; Loading @@ -1087,8 +1093,8 @@ static void ivas_omasa_energy_and_ratio_est( for ( j = 0; j < nchan_ism; j++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j] /= ( hOmasaData->hOmasaEnergy->energy_ism[block_m_idx][i] + EPSILON ); ism_ratio_sum += hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j]; hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j] /= ( hOmasaEnergy->energy_ism[block_m_idx][i] + EPSILON ); ism_ratio_sum += hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j]; #else hOmasaData->energy_ratio_ism[block_m_idx][i][j] /= ( hOmasaData->energy_ism[block_m_idx][i] + EPSILON ); ism_ratio_sum += hOmasaData->energy_ratio_ism[block_m_idx][i][j]; Loading @@ -1101,7 +1107,7 @@ static void ivas_omasa_energy_and_ratio_est( for ( j = 0; j < nchan_ism; j++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j] = temp_ism_ratio; hOmasaEnergy->energy_ratio_ism[block_m_idx][i][j] = temp_ism_ratio; #else hOmasaData->energy_ratio_ism[block_m_idx][i][j] = temp_ism_ratio; #endif Loading