Loading lib_enc/ivas_masa_enc.c +18 −15 Original line number Diff line number Diff line Loading @@ -3433,6 +3433,9 @@ static void ivas_encode_masaism_metadata( int16_t tmp, rotate; int16_t n_ism_tmp, i; OMASA_ENCODER_DATA_HANDLE hOmasaData = hMasa->data.hOmasaData; #ifdef FIX_1161_REDUCE_OMASA_HEAP OMASA_ENCODER_ENERGY_HANDLE hOmasaEnergy = hOmasaData->hOmasaEnergy; #endif int16_t nbands_work; /* use the values from hQMetaData */ Loading @@ -3444,7 +3447,7 @@ static void ivas_encode_masaism_metadata( for ( sf = 0; sf < numSf; sf++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP if ( sum_f( hOmasaData->hOmasaEnergy->energy_ism[sf], omasa_nbands ) == 0.0f ) if ( sum_f( hOmasaEnergy->energy_ism[sf], omasa_nbands ) == 0.0f ) #else if ( sum_f( hOmasaData->energy_ism[sf], omasa_nbands ) == 0.0f ) #endif Loading @@ -3470,14 +3473,14 @@ static void ivas_encode_masaism_metadata( for ( band = 0; band < omasa_nbands; band++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP energy_ism += hOmasaData->hOmasaEnergy->energy_ism[sf][band]; energy_ism += hOmasaEnergy->energy_ism[sf][band]; #else energy_ism += hOmasaData->energy_ism[sf][band]; #endif for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP energy_ism_ind[obj] += hOmasaData->hOmasaEnergy->energy_ism[sf][band] * hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj]; energy_ism_ind[obj] += hOmasaEnergy->energy_ism[sf][band] * hOmasaEnergy->energy_ratio_ism[sf][band][obj]; #else energy_ism_ind[obj] += hOmasaData->energy_ism[sf][band] * hOmasaData->energy_ratio_ism[sf][band][obj]; #endif Loading @@ -3487,7 +3490,7 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][0][obj] = energy_ism_ind[obj] / energy_ism; hOmasaEnergy->energy_ratio_ism[sf][0][obj] = energy_ism_ind[obj] / energy_ism; #else hOmasaData->energy_ratio_ism[sf][0][obj] = energy_ism_ind[obj] / energy_ism; #endif Loading @@ -3508,14 +3511,14 @@ static void ivas_encode_masaism_metadata( for ( sf = 0; sf < omasa_nblocks; sf++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP energy_ism += hOmasaData->hOmasaEnergy->energy_ism[sf][band]; energy_ism += hOmasaEnergy->energy_ism[sf][band]; #else energy_ism += hOmasaData->energy_ism[sf][band]; #endif for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP energy_ism_ind[obj] += hOmasaData->hOmasaEnergy->energy_ism[sf][band] * hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj]; energy_ism_ind[obj] += hOmasaEnergy->energy_ism[sf][band] * hOmasaEnergy->energy_ratio_ism[sf][band][obj]; #else energy_ism_ind[obj] += hOmasaData->energy_ism[sf][band] * hOmasaData->energy_ratio_ism[sf][band][obj]; #endif Loading @@ -3531,7 +3534,7 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[0][band][obj] = energy_ism_ind[obj] / energy_ism; hOmasaEnergy->energy_ratio_ism[0][band][obj] = energy_ism_ind[obj] / energy_ism; #else hOmasaData->energy_ratio_ism[0][band][obj] = energy_ism_ind[obj] / energy_ism; #endif Loading @@ -3557,7 +3560,7 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[0][band][obj] = hOmasaData->hOmasaEnergy->energy_ratio_ism[0][nbands_work - 1][obj]; hOmasaEnergy->energy_ratio_ism[0][band][obj] = hOmasaEnergy->energy_ratio_ism[0][nbands_work - 1][obj]; #else hOmasaData->energy_ratio_ism[0][band][obj] = hOmasaData->energy_ratio_ism[0][nbands_work - 1][obj]; #endif Loading @@ -3571,7 +3574,7 @@ static void ivas_encode_masaism_metadata( for ( band = 0; band < nbands_work; band++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP if ( hOmasaData->hOmasaEnergy->energy_ism[sf][band] == 0.0f ) if ( hOmasaEnergy->energy_ism[sf][band] == 0.0f ) #else if ( hOmasaData->energy_ism[sf][band] == 0.0f ) #endif Loading @@ -3589,7 +3592,7 @@ static void ivas_encode_masaism_metadata( eneBand += hMasa->data.energy[sf][bin]; } #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->masa_to_total_energy_ratio[sf][band] = eneBand / ( eneBand + hOmasaData->hOmasaEnergy->energy_ism[sf][band] + EPSILON ); hOmasaData->masa_to_total_energy_ratio[sf][band] = eneBand / ( eneBand + hOmasaEnergy->energy_ism[sf][band] + EPSILON ); #else hOmasaData->masa_to_total_energy_ratio[sf][band] = eneBand / ( eneBand + hOmasaData->energy_ism[sf][band] + EPSILON ); #endif Loading @@ -3602,7 +3605,7 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj] = hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][nbands_work - 1][obj]; hOmasaEnergy->energy_ratio_ism[sf][band][obj] = hOmasaEnergy->energy_ratio_ism[sf][nbands_work - 1][obj]; #else hOmasaData->energy_ratio_ism[sf][band][obj] = hOmasaData->energy_ratio_ism[sf][nbands_work - 1][obj]; #endif Loading @@ -3628,8 +3631,8 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP assert( ( hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj] >= 0 ) && ( hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj] <= 1 ) ); ratio_ism[band][obj] = hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj]; assert( ( hOmasaEnergy->energy_ratio_ism[sf][band][obj] >= 0 ) && ( hOmasaEnergy->energy_ratio_ism[sf][band][obj] <= 1 ) ); ratio_ism[band][obj] = hOmasaEnergy->energy_ratio_ism[sf][band][obj]; #else assert( ( hOmasaData->energy_ratio_ism[sf][band][obj] >= 0 ) && ( hOmasaData->energy_ratio_ism[sf][band][obj] <= 1 ) ); ratio_ism[band][obj] = hOmasaData->energy_ratio_ism[sf][band][obj]; Loading Loading @@ -3658,7 +3661,7 @@ static void ivas_encode_masaism_metadata( /* reconstructed values */ #ifdef FIX_1161_REDUCE_OMASA_HEAP reconstruct_ism_ratios( ratio_ism_idx[band], nchan_ism, step, hMasa->data.hOmasaData->hOmasaEnergy->q_energy_ratio_ism[sf][band] ); reconstruct_ism_ratios( ratio_ism_idx[band], nchan_ism, step, hOmasaEnergy->q_energy_ratio_ism[sf][band] ); #else reconstruct_ism_ratios( ratio_ism_idx[band], nchan_ism, step, hMasa->data.hOmasaData->q_energy_ratio_ism[sf][band] ); #endif Loading Loading @@ -3737,7 +3740,7 @@ static void ivas_encode_masaism_metadata( } #ifdef FIX_1161_REDUCE_OMASA_HEAP calculate_nbits_meta( nchan_ism, hOmasaData->hOmasaEnergy->q_energy_ratio_ism, hOmasaData->masa_to_total_energy_ratio, numSf, numCodingBands, bits_ism, idx_separated_object, ism_imp ); calculate_nbits_meta( nchan_ism, hOmasaEnergy->q_energy_ratio_ism, hOmasaData->masa_to_total_energy_ratio, numSf, numCodingBands, bits_ism, idx_separated_object, ism_imp ); #else calculate_nbits_meta( nchan_ism, hOmasaData->q_energy_ratio_ism, hOmasaData->masa_to_total_energy_ratio, numSf, numCodingBands, bits_ism, idx_separated_object, ism_imp ); #endif Loading Loading
lib_enc/ivas_masa_enc.c +18 −15 Original line number Diff line number Diff line Loading @@ -3433,6 +3433,9 @@ static void ivas_encode_masaism_metadata( int16_t tmp, rotate; int16_t n_ism_tmp, i; OMASA_ENCODER_DATA_HANDLE hOmasaData = hMasa->data.hOmasaData; #ifdef FIX_1161_REDUCE_OMASA_HEAP OMASA_ENCODER_ENERGY_HANDLE hOmasaEnergy = hOmasaData->hOmasaEnergy; #endif int16_t nbands_work; /* use the values from hQMetaData */ Loading @@ -3444,7 +3447,7 @@ static void ivas_encode_masaism_metadata( for ( sf = 0; sf < numSf; sf++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP if ( sum_f( hOmasaData->hOmasaEnergy->energy_ism[sf], omasa_nbands ) == 0.0f ) if ( sum_f( hOmasaEnergy->energy_ism[sf], omasa_nbands ) == 0.0f ) #else if ( sum_f( hOmasaData->energy_ism[sf], omasa_nbands ) == 0.0f ) #endif Loading @@ -3470,14 +3473,14 @@ static void ivas_encode_masaism_metadata( for ( band = 0; band < omasa_nbands; band++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP energy_ism += hOmasaData->hOmasaEnergy->energy_ism[sf][band]; energy_ism += hOmasaEnergy->energy_ism[sf][band]; #else energy_ism += hOmasaData->energy_ism[sf][band]; #endif for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP energy_ism_ind[obj] += hOmasaData->hOmasaEnergy->energy_ism[sf][band] * hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj]; energy_ism_ind[obj] += hOmasaEnergy->energy_ism[sf][band] * hOmasaEnergy->energy_ratio_ism[sf][band][obj]; #else energy_ism_ind[obj] += hOmasaData->energy_ism[sf][band] * hOmasaData->energy_ratio_ism[sf][band][obj]; #endif Loading @@ -3487,7 +3490,7 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][0][obj] = energy_ism_ind[obj] / energy_ism; hOmasaEnergy->energy_ratio_ism[sf][0][obj] = energy_ism_ind[obj] / energy_ism; #else hOmasaData->energy_ratio_ism[sf][0][obj] = energy_ism_ind[obj] / energy_ism; #endif Loading @@ -3508,14 +3511,14 @@ static void ivas_encode_masaism_metadata( for ( sf = 0; sf < omasa_nblocks; sf++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP energy_ism += hOmasaData->hOmasaEnergy->energy_ism[sf][band]; energy_ism += hOmasaEnergy->energy_ism[sf][band]; #else energy_ism += hOmasaData->energy_ism[sf][band]; #endif for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP energy_ism_ind[obj] += hOmasaData->hOmasaEnergy->energy_ism[sf][band] * hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj]; energy_ism_ind[obj] += hOmasaEnergy->energy_ism[sf][band] * hOmasaEnergy->energy_ratio_ism[sf][band][obj]; #else energy_ism_ind[obj] += hOmasaData->energy_ism[sf][band] * hOmasaData->energy_ratio_ism[sf][band][obj]; #endif Loading @@ -3531,7 +3534,7 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[0][band][obj] = energy_ism_ind[obj] / energy_ism; hOmasaEnergy->energy_ratio_ism[0][band][obj] = energy_ism_ind[obj] / energy_ism; #else hOmasaData->energy_ratio_ism[0][band][obj] = energy_ism_ind[obj] / energy_ism; #endif Loading @@ -3557,7 +3560,7 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[0][band][obj] = hOmasaData->hOmasaEnergy->energy_ratio_ism[0][nbands_work - 1][obj]; hOmasaEnergy->energy_ratio_ism[0][band][obj] = hOmasaEnergy->energy_ratio_ism[0][nbands_work - 1][obj]; #else hOmasaData->energy_ratio_ism[0][band][obj] = hOmasaData->energy_ratio_ism[0][nbands_work - 1][obj]; #endif Loading @@ -3571,7 +3574,7 @@ static void ivas_encode_masaism_metadata( for ( band = 0; band < nbands_work; band++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP if ( hOmasaData->hOmasaEnergy->energy_ism[sf][band] == 0.0f ) if ( hOmasaEnergy->energy_ism[sf][band] == 0.0f ) #else if ( hOmasaData->energy_ism[sf][band] == 0.0f ) #endif Loading @@ -3589,7 +3592,7 @@ static void ivas_encode_masaism_metadata( eneBand += hMasa->data.energy[sf][bin]; } #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->masa_to_total_energy_ratio[sf][band] = eneBand / ( eneBand + hOmasaData->hOmasaEnergy->energy_ism[sf][band] + EPSILON ); hOmasaData->masa_to_total_energy_ratio[sf][band] = eneBand / ( eneBand + hOmasaEnergy->energy_ism[sf][band] + EPSILON ); #else hOmasaData->masa_to_total_energy_ratio[sf][band] = eneBand / ( eneBand + hOmasaData->energy_ism[sf][band] + EPSILON ); #endif Loading @@ -3602,7 +3605,7 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj] = hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][nbands_work - 1][obj]; hOmasaEnergy->energy_ratio_ism[sf][band][obj] = hOmasaEnergy->energy_ratio_ism[sf][nbands_work - 1][obj]; #else hOmasaData->energy_ratio_ism[sf][band][obj] = hOmasaData->energy_ratio_ism[sf][nbands_work - 1][obj]; #endif Loading @@ -3628,8 +3631,8 @@ static void ivas_encode_masaism_metadata( for ( obj = 0; obj < nchan_ism; obj++ ) { #ifdef FIX_1161_REDUCE_OMASA_HEAP assert( ( hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj] >= 0 ) && ( hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj] <= 1 ) ); ratio_ism[band][obj] = hOmasaData->hOmasaEnergy->energy_ratio_ism[sf][band][obj]; assert( ( hOmasaEnergy->energy_ratio_ism[sf][band][obj] >= 0 ) && ( hOmasaEnergy->energy_ratio_ism[sf][band][obj] <= 1 ) ); ratio_ism[band][obj] = hOmasaEnergy->energy_ratio_ism[sf][band][obj]; #else assert( ( hOmasaData->energy_ratio_ism[sf][band][obj] >= 0 ) && ( hOmasaData->energy_ratio_ism[sf][band][obj] <= 1 ) ); ratio_ism[band][obj] = hOmasaData->energy_ratio_ism[sf][band][obj]; Loading Loading @@ -3658,7 +3661,7 @@ static void ivas_encode_masaism_metadata( /* reconstructed values */ #ifdef FIX_1161_REDUCE_OMASA_HEAP reconstruct_ism_ratios( ratio_ism_idx[band], nchan_ism, step, hMasa->data.hOmasaData->hOmasaEnergy->q_energy_ratio_ism[sf][band] ); reconstruct_ism_ratios( ratio_ism_idx[band], nchan_ism, step, hOmasaEnergy->q_energy_ratio_ism[sf][band] ); #else reconstruct_ism_ratios( ratio_ism_idx[band], nchan_ism, step, hMasa->data.hOmasaData->q_energy_ratio_ism[sf][band] ); #endif Loading Loading @@ -3737,7 +3740,7 @@ static void ivas_encode_masaism_metadata( } #ifdef FIX_1161_REDUCE_OMASA_HEAP calculate_nbits_meta( nchan_ism, hOmasaData->hOmasaEnergy->q_energy_ratio_ism, hOmasaData->masa_to_total_energy_ratio, numSf, numCodingBands, bits_ism, idx_separated_object, ism_imp ); calculate_nbits_meta( nchan_ism, hOmasaEnergy->q_energy_ratio_ism, hOmasaData->masa_to_total_energy_ratio, numSf, numCodingBands, bits_ism, idx_separated_object, ism_imp ); #else calculate_nbits_meta( nchan_ism, hOmasaData->q_energy_ratio_ism, hOmasaData->masa_to_total_energy_ratio, numSf, numCodingBands, bits_ism, idx_separated_object, ism_imp ); #endif Loading