Loading lib_com/frame_ener.c +2 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,7 @@ void fer_energy_fx( } #endif // IVAS_FLOAT_FIXED #ifndef IVAS_FLOAT_FIXED /*------------------------------------------------------------------------* * frame_energy() * Loading Loading @@ -183,6 +184,7 @@ float frame_energy( return enern; } #endif #if 0 Loading lib_com/ivas_cnst.h +9 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ #define _180_OVER_PI ( 180.0f / EVS_PI ) #ifdef IVAS_FLOAT_FIXED #define _180_OVER_PI_Q25 1922521886 #define PI_OVER_180_Q25 ( 585635 ) #define _180_IN_Q22 (754974720) #define _360_IN_Q22 (1509949440) #define _180_OVER_PI_FX (Word32) (( 180.0f / EVS_PI ) *ONE_IN_Q10) Loading Loading @@ -1392,6 +1393,11 @@ typedef enum #define MCMASA_LFE_1BIT_THRES 0.03f #define MCMASA_LFE_ALPHA 0.67f #define MCMASA_LFE_BETA 0.09f #ifdef IVAS_FLOAT_FIXED #define MCMASA_LFE_1BIT_THRES_Q31 64424509 /* 0.03f in Q31 */ #define MCMASA_LFE_ALPHA_Q31 1438814044 /* 0.67f in Q31 */ #define MCMASA_LFE_BETA_Q31 193273528 /* 0.09f in Q31 */ #endif #define MCMASA_LFE_THETA 1.3f #define MCMASA_LFE_SYNTH_ALPHA 0.95f /* Smoothing coefficient for LFE synthesis */ #ifdef IVAS_FLOAT_FIXED Loading Loading @@ -1547,8 +1553,11 @@ typedef enum #define PARAM_MC_MAX_PARAM_BAND_ABS_COV_ENC 10 #define PARAM_MC_MAX_BAND_ABS_COV_DEC 10 #define PARAM_MC_ENER_LIMIT_INTRAFRAME (1.5f) #define PARAM_MC_ENER_LIMIT_INTRAFRAME_FX_Q21 3145728 #define PARAM_MC_ENER_LIMIT_INTERFRAME (2.0f) #define PARAM_MC_ENER_LIMIT_INTERFRAME_FX_Q21 4194304 #define PARAM_MC_ENER_LIMIT_MAX_DELTA_FAC (15.0f) #define PARAM_MC_ENER_LIMIT_MAX_DELTA_FAC_FX_Q21 31457280 #define PARAM_MC_NUM_ATTACK_ILD_THRESH (3) #define PARAM_MC_LFE_ON_THRESH (8000.0f) #define PARAM_MC_LFE_ON_THRESH_FX 8000 //Q0 Loading lib_com/ivas_cov_smooth.c +18 −6 Original line number Diff line number Diff line Loading @@ -316,6 +316,11 @@ ivas_error ivas_spar_covar_smooth_enc_open_fx( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR COV encoder Fixed" ); } set16_fx( hCovState->q_cov_real_per_band[i][j], Q31, cov_smooth_cfg->max_bands ); IF( ( hCovState->q_prior_cov_real_per_band[i][j] = (Word16 *) malloc( sizeof( Word16 ) * cov_smooth_cfg->max_bands ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR COV encoder Fixed" ); } set16_fx( hCovState->q_prior_cov_real_per_band[i][j], Q31, cov_smooth_cfg->max_bands ); } } Loading Loading @@ -404,6 +409,8 @@ void ivas_spar_covar_smooth_enc_close_fx( hCovState->pPrior_cov_real_fx[i][j] = NULL; free( hCovState->q_cov_real_per_band[i][j] ); hCovState->q_cov_real_per_band[i][j] = NULL; free( hCovState->q_prior_cov_real_per_band[i][j] ); hCovState->q_prior_cov_real_per_band[i][j] = NULL; } } Loading Loading @@ -493,7 +500,7 @@ static void ivas_compute_smooth_cov_fx( { FOR( j = 0; j < num_ch; j++ ) { set16_fx( hCovState->q_cov_real_per_band[i][j], q_cov[i][j], pFb->filterbank_num_bands ); set16_fx( hCovState->q_cov_real_per_band[i][j], q_cov[i][j], sub( end_band, start_band ) ); } } FOR( i = 0; i < num_ch; i++ ) Loading Loading @@ -529,7 +536,7 @@ static void ivas_compute_smooth_cov_fx( { L_tmp = Mpy_32_32( hCovState->pSmoothing_factor_fx[k], pCov_buf[i][j][k] ); // (Q31, q_cov[i][j]) -> q_cov[i][j] L_tmp1 = Mpy_32_32( L_sub( ONE_IN_Q31, hCovState->pSmoothing_factor_fx[k] ), pPrior_cov_buf[i][j][k] ); // (Q31, hCovState->q_cov_real_per_band[i][j][k]) -> hCovState->q_cov_real_per_band[i][j][k] pCov_buf[i][j][k] = BASOP_Util_Add_Mant32Exp( L_tmp, sub( Q31, q_cov[i][j] ), L_tmp1, sub( Q31, hCovState->q_cov_real_per_band[i][j][k] ), &q_tmp[k] ); pCov_buf[i][j][k] = BASOP_Util_Add_Mant32Exp( L_tmp, sub( Q31, q_cov[i][j] ), L_tmp1, sub( Q31, hCovState->q_prior_cov_real_per_band[i][j][k] ), &q_tmp[k] ); move32(); q_tmp[k] = sub( Q31, q_tmp[k] ); move16(); Loading @@ -537,7 +544,7 @@ static void ivas_compute_smooth_cov_fx( pCov_buf[i][j][k] = L_add( pCov_buf[i][j][k], L_tmp ); move32(); } Copy( q_tmp, hCovState->q_cov_real_per_band[i][j], pFb->filterbank_num_bands ); Copy( q_tmp, hCovState->q_cov_real_per_band[i][j], sub( end_band, start_band ) ); } } FOR( i = 0; i < num_ch; i++ ) Loading Loading @@ -571,7 +578,7 @@ static void ivas_compute_smooth_cov_fx( { L_tmp = Mpy_32_32( hCovState->pSmoothing_factor_fx[k], pCov_buf[i][j][k] ); // (Q31, q_cov[i][j]) -> q_cov[i][j] L_tmp1 = Mpy_32_32( L_sub( ONE_IN_Q31, hCovState->pSmoothing_factor_fx[k] ), pPrior_cov_buf[i][j][k] ); // (Q31, hCovState->q_cov_real_per_band[i][j][k]) -> hCovState->q_cov_real_per_band[i][j][k] pCov_buf[i][j][k] = BASOP_Util_Add_Mant32Exp( L_tmp, sub( Q31, q_cov[i][j] ), L_tmp1, sub( Q31, hCovState->q_cov_real_per_band[i][j][k] ), &q_tmp[k] ); pCov_buf[i][j][k] = BASOP_Util_Add_Mant32Exp( L_tmp, sub( Q31, q_cov[i][j] ), L_tmp1, sub( Q31, hCovState->q_prior_cov_real_per_band[i][j][k] ), &q_tmp[k] ); move32(); q_tmp[k] = sub( Q31, q_tmp[k] ); move16(); Loading @@ -579,7 +586,7 @@ static void ivas_compute_smooth_cov_fx( pCov_buf[i][j][k] = L_add( pCov_buf[i][j][k], L_tmp ); move32(); } Copy( q_tmp, hCovState->q_cov_real_per_band[i][j], pFb->filterbank_num_bands ); Copy( q_tmp, hCovState->q_cov_real_per_band[i][j], sub( end_band, start_band ) ); } } } Loading Loading @@ -698,7 +705,7 @@ void ivas_cov_smooth_process_fx( const Word16 transient_det[2], Word16 *q_cov[IVAS_SPAR_MAX_CH] ) { Word16 i, j; Word16 i, j, k; Word16 num_bands = sub( end_band, start_band ); ivas_compute_smooth_cov_fx( hCovState, pFb, cov_real, hCovState->pPrior_cov_real_fx, 0, start_band, end_band, num_ch, transient_det, q_cov ); Loading @@ -708,6 +715,11 @@ void ivas_cov_smooth_process_fx( FOR( j = 0; j < num_ch; j++ ) { Copy32( &cov_real[i][j][start_band], &hCovState->pPrior_cov_real_fx[i][j][start_band], num_bands ); FOR( k = 0; k < num_bands; k++ ) { hCovState->q_prior_cov_real_per_band[i][j][start_band + k] = hCovState->q_cov_real_per_band[i][j][start_band + k]; move16(); } } } Loading lib_com/ivas_mc_param_com.c +24 −0 Original line number Diff line number Diff line Loading @@ -942,6 +942,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->icc_coding.sym_freq_delta = &ivas_param_mc_sym_freq_icc_delta_cicp6_48_16bits[0]; hMetadataPMC->icc_coding.quantizer = &ivas_param_mc_quant_icc[0]; hMetadataPMC->icc_coding.quantizer_size = PARAM_MC_SZ_ICC_QUANTIZER; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->icc_coding.quantizer_fx = &ivas_param_mc_quant_icc_fx[0]; #endif hMetadataPMC->icc_coding.uni_bits = PARAM_MC_NUM_BITS_ICC_SCALAR_QUANT; /* ILD */ hMetadataPMC->ild_coding.cum_freq = &ivas_param_mc_cum_freq_ild_cicp6_48_16bits[0]; Loading @@ -949,6 +952,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->ild_coding.cum_freq_delta = &ivas_param_mc_cum_freq_ild_delta_cicp6_48_16bits[0]; hMetadataPMC->ild_coding.sym_freq_delta = &ivas_param_mc_sym_freq_ild_delta_cicp6_48_16bits[0]; hMetadataPMC->ild_coding.quantizer = &ivas_param_mc_quant_ild_5d1_48[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->ild_coding.quantizer_fx = &ivas_param_mc_quant_ild_5d1_48_fx[0]; #endif hMetadataPMC->ild_coding.quantizer_size = PARAM_MC_SZ_ILD_QUANTIZER_4BITS; hMetadataPMC->ild_coding.uni_bits = PARAM_MC_NUM_BITS_ILD_SCALAR_QUANT; break; Loading @@ -959,6 +965,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->icc_coding.cum_freq_delta = &ivas_param_mc_cum_freq_icc_delta_cicp12_48_16bits[0]; hMetadataPMC->icc_coding.sym_freq_delta = &ivas_param_mc_sym_freq_icc_delta_cicp12_48_16bits[0]; hMetadataPMC->icc_coding.quantizer = &ivas_param_mc_quant_icc[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->icc_coding.quantizer_fx = &ivas_param_mc_quant_icc_fx[0]; #endif hMetadataPMC->icc_coding.quantizer_size = PARAM_MC_SZ_ICC_QUANTIZER; hMetadataPMC->icc_coding.uni_bits = PARAM_MC_NUM_BITS_ICC_SCALAR_QUANT; /* ILD */ Loading @@ -967,6 +976,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->ild_coding.cum_freq_delta = &ivas_param_mc_cum_freq_ild_delta_cicp12_48_16bits[0]; hMetadataPMC->ild_coding.sym_freq_delta = &ivas_param_mc_sym_freq_ild_delta_cicp12_48_16bits[0]; hMetadataPMC->ild_coding.quantizer = &ivas_param_mc_quant_ild_5d1_48[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->ild_coding.quantizer_fx = &ivas_param_mc_quant_ild_5d1_48_fx[0]; #endif hMetadataPMC->ild_coding.quantizer_size = PARAM_MC_SZ_ILD_QUANTIZER_4BITS; hMetadataPMC->ild_coding.uni_bits = PARAM_MC_NUM_BITS_ILD_SCALAR_QUANT; break; Loading @@ -977,6 +989,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->icc_coding.cum_freq_delta = &ivas_param_mc_cum_freq_icc_delta_cicp14_48_16bits[0]; hMetadataPMC->icc_coding.sym_freq_delta = &ivas_param_mc_sym_freq_icc_delta_cicp14_48_16bits[0]; hMetadataPMC->icc_coding.quantizer = &ivas_param_mc_quant_icc[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->icc_coding.quantizer_fx = &ivas_param_mc_quant_icc_fx[0]; #endif hMetadataPMC->icc_coding.quantizer_size = PARAM_MC_SZ_ICC_QUANTIZER; hMetadataPMC->icc_coding.uni_bits = PARAM_MC_NUM_BITS_ICC_SCALAR_QUANT; /* ILD */ Loading @@ -985,6 +1000,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->ild_coding.cum_freq_delta = &ivas_param_mc_cum_freq_ild_delta_cicp14_48_16bits[0]; hMetadataPMC->ild_coding.sym_freq_delta = &ivas_param_mc_sym_freq_ild_delta_cicp14_48_16bits[0]; hMetadataPMC->ild_coding.quantizer = &ivas_param_mc_quant_ild_5d1_48[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->ild_coding.quantizer_fx = &ivas_param_mc_quant_ild_5d1_48_fx[0]; #endif hMetadataPMC->ild_coding.quantizer_size = PARAM_MC_SZ_ILD_QUANTIZER_4BITS; hMetadataPMC->ild_coding.uni_bits = PARAM_MC_NUM_BITS_ILD_SCALAR_QUANT; break; Loading @@ -996,6 +1014,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->icc_coding.cum_freq_delta = &ivas_param_mc_cum_freq_icc_delta_combined_48_16bits[0]; hMetadataPMC->icc_coding.sym_freq_delta = &ivas_param_mc_sym_freq_icc_delta_combined_48_16bits[0]; hMetadataPMC->icc_coding.quantizer = &ivas_param_mc_quant_icc[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->icc_coding.quantizer_fx = &ivas_param_mc_quant_icc_fx[0]; #endif hMetadataPMC->icc_coding.quantizer_size = PARAM_MC_SZ_ICC_QUANTIZER; hMetadataPMC->icc_coding.uni_bits = PARAM_MC_NUM_BITS_ICC_SCALAR_QUANT; /* ILD */ Loading @@ -1004,6 +1025,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->ild_coding.cum_freq_delta = &ivas_param_mc_cum_freq_ild_delta_combined_48_16bits[0]; hMetadataPMC->ild_coding.sym_freq_delta = &ivas_param_mc_sym_freq_ild_delta_combined_48_16bits[0]; hMetadataPMC->ild_coding.quantizer = &ivas_param_mc_quant_ild_5d1_48[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->ild_coding.quantizer_fx = &ivas_param_mc_quant_ild_5d1_48_fx[0]; #endif hMetadataPMC->ild_coding.quantizer_size = PARAM_MC_SZ_ILD_QUANTIZER_4BITS; hMetadataPMC->ild_coding.uni_bits = PARAM_MC_NUM_BITS_ILD_SCALAR_QUANT; break; Loading lib_com/ivas_prot.h +16 −0 Original line number Diff line number Diff line Loading @@ -6928,6 +6928,16 @@ void ivas_quantise_real_values_fx( Word32 *quant_fx, const Word16 dim); void ivas_quantise_real_values_enc_fx( const Word32 *values_fx,//Q28 const Word16 q_levels, const Word32 min_value_fx,//Q28 const Word32 max_value_fx,//Q28 Word16 *index, Word32 *quant_fx,//Q28 const Word16 dim); void ivas_spar_get_uniform_quant_strat( ivas_spar_md_com_cfg *pSpar_md_com_cfg, const int16_t table_idx Loading Loading @@ -7134,9 +7144,15 @@ void ivas_merge_masa_metadata( OMASA_SPATIAL_META_HANDLE hOMasaMeta /* i : ISM-object metadata to be merged with the MASA metadata */ ); #ifdef IVAS_FLOAT_FIXED void ivas_masa_combine_directions_fx( MASA_ENCODER_HANDLE hMasa /* i/o: MASA encoder handle */ ); #else void ivas_masa_combine_directions( MASA_ENCODER_HANDLE hMasa /* i/o: MASA encoder handle */ ); #endif /*!r : number of bits for ISM ratio index */ int16_t bits_index_ism_ratio( Loading Loading
lib_com/frame_ener.c +2 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,7 @@ void fer_energy_fx( } #endif // IVAS_FLOAT_FIXED #ifndef IVAS_FLOAT_FIXED /*------------------------------------------------------------------------* * frame_energy() * Loading Loading @@ -183,6 +184,7 @@ float frame_energy( return enern; } #endif #if 0 Loading
lib_com/ivas_cnst.h +9 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ #define _180_OVER_PI ( 180.0f / EVS_PI ) #ifdef IVAS_FLOAT_FIXED #define _180_OVER_PI_Q25 1922521886 #define PI_OVER_180_Q25 ( 585635 ) #define _180_IN_Q22 (754974720) #define _360_IN_Q22 (1509949440) #define _180_OVER_PI_FX (Word32) (( 180.0f / EVS_PI ) *ONE_IN_Q10) Loading Loading @@ -1392,6 +1393,11 @@ typedef enum #define MCMASA_LFE_1BIT_THRES 0.03f #define MCMASA_LFE_ALPHA 0.67f #define MCMASA_LFE_BETA 0.09f #ifdef IVAS_FLOAT_FIXED #define MCMASA_LFE_1BIT_THRES_Q31 64424509 /* 0.03f in Q31 */ #define MCMASA_LFE_ALPHA_Q31 1438814044 /* 0.67f in Q31 */ #define MCMASA_LFE_BETA_Q31 193273528 /* 0.09f in Q31 */ #endif #define MCMASA_LFE_THETA 1.3f #define MCMASA_LFE_SYNTH_ALPHA 0.95f /* Smoothing coefficient for LFE synthesis */ #ifdef IVAS_FLOAT_FIXED Loading Loading @@ -1547,8 +1553,11 @@ typedef enum #define PARAM_MC_MAX_PARAM_BAND_ABS_COV_ENC 10 #define PARAM_MC_MAX_BAND_ABS_COV_DEC 10 #define PARAM_MC_ENER_LIMIT_INTRAFRAME (1.5f) #define PARAM_MC_ENER_LIMIT_INTRAFRAME_FX_Q21 3145728 #define PARAM_MC_ENER_LIMIT_INTERFRAME (2.0f) #define PARAM_MC_ENER_LIMIT_INTERFRAME_FX_Q21 4194304 #define PARAM_MC_ENER_LIMIT_MAX_DELTA_FAC (15.0f) #define PARAM_MC_ENER_LIMIT_MAX_DELTA_FAC_FX_Q21 31457280 #define PARAM_MC_NUM_ATTACK_ILD_THRESH (3) #define PARAM_MC_LFE_ON_THRESH (8000.0f) #define PARAM_MC_LFE_ON_THRESH_FX 8000 //Q0 Loading
lib_com/ivas_cov_smooth.c +18 −6 Original line number Diff line number Diff line Loading @@ -316,6 +316,11 @@ ivas_error ivas_spar_covar_smooth_enc_open_fx( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR COV encoder Fixed" ); } set16_fx( hCovState->q_cov_real_per_band[i][j], Q31, cov_smooth_cfg->max_bands ); IF( ( hCovState->q_prior_cov_real_per_band[i][j] = (Word16 *) malloc( sizeof( Word16 ) * cov_smooth_cfg->max_bands ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR COV encoder Fixed" ); } set16_fx( hCovState->q_prior_cov_real_per_band[i][j], Q31, cov_smooth_cfg->max_bands ); } } Loading Loading @@ -404,6 +409,8 @@ void ivas_spar_covar_smooth_enc_close_fx( hCovState->pPrior_cov_real_fx[i][j] = NULL; free( hCovState->q_cov_real_per_band[i][j] ); hCovState->q_cov_real_per_band[i][j] = NULL; free( hCovState->q_prior_cov_real_per_band[i][j] ); hCovState->q_prior_cov_real_per_band[i][j] = NULL; } } Loading Loading @@ -493,7 +500,7 @@ static void ivas_compute_smooth_cov_fx( { FOR( j = 0; j < num_ch; j++ ) { set16_fx( hCovState->q_cov_real_per_band[i][j], q_cov[i][j], pFb->filterbank_num_bands ); set16_fx( hCovState->q_cov_real_per_band[i][j], q_cov[i][j], sub( end_band, start_band ) ); } } FOR( i = 0; i < num_ch; i++ ) Loading Loading @@ -529,7 +536,7 @@ static void ivas_compute_smooth_cov_fx( { L_tmp = Mpy_32_32( hCovState->pSmoothing_factor_fx[k], pCov_buf[i][j][k] ); // (Q31, q_cov[i][j]) -> q_cov[i][j] L_tmp1 = Mpy_32_32( L_sub( ONE_IN_Q31, hCovState->pSmoothing_factor_fx[k] ), pPrior_cov_buf[i][j][k] ); // (Q31, hCovState->q_cov_real_per_band[i][j][k]) -> hCovState->q_cov_real_per_band[i][j][k] pCov_buf[i][j][k] = BASOP_Util_Add_Mant32Exp( L_tmp, sub( Q31, q_cov[i][j] ), L_tmp1, sub( Q31, hCovState->q_cov_real_per_band[i][j][k] ), &q_tmp[k] ); pCov_buf[i][j][k] = BASOP_Util_Add_Mant32Exp( L_tmp, sub( Q31, q_cov[i][j] ), L_tmp1, sub( Q31, hCovState->q_prior_cov_real_per_band[i][j][k] ), &q_tmp[k] ); move32(); q_tmp[k] = sub( Q31, q_tmp[k] ); move16(); Loading @@ -537,7 +544,7 @@ static void ivas_compute_smooth_cov_fx( pCov_buf[i][j][k] = L_add( pCov_buf[i][j][k], L_tmp ); move32(); } Copy( q_tmp, hCovState->q_cov_real_per_band[i][j], pFb->filterbank_num_bands ); Copy( q_tmp, hCovState->q_cov_real_per_band[i][j], sub( end_band, start_band ) ); } } FOR( i = 0; i < num_ch; i++ ) Loading Loading @@ -571,7 +578,7 @@ static void ivas_compute_smooth_cov_fx( { L_tmp = Mpy_32_32( hCovState->pSmoothing_factor_fx[k], pCov_buf[i][j][k] ); // (Q31, q_cov[i][j]) -> q_cov[i][j] L_tmp1 = Mpy_32_32( L_sub( ONE_IN_Q31, hCovState->pSmoothing_factor_fx[k] ), pPrior_cov_buf[i][j][k] ); // (Q31, hCovState->q_cov_real_per_band[i][j][k]) -> hCovState->q_cov_real_per_band[i][j][k] pCov_buf[i][j][k] = BASOP_Util_Add_Mant32Exp( L_tmp, sub( Q31, q_cov[i][j] ), L_tmp1, sub( Q31, hCovState->q_cov_real_per_band[i][j][k] ), &q_tmp[k] ); pCov_buf[i][j][k] = BASOP_Util_Add_Mant32Exp( L_tmp, sub( Q31, q_cov[i][j] ), L_tmp1, sub( Q31, hCovState->q_prior_cov_real_per_band[i][j][k] ), &q_tmp[k] ); move32(); q_tmp[k] = sub( Q31, q_tmp[k] ); move16(); Loading @@ -579,7 +586,7 @@ static void ivas_compute_smooth_cov_fx( pCov_buf[i][j][k] = L_add( pCov_buf[i][j][k], L_tmp ); move32(); } Copy( q_tmp, hCovState->q_cov_real_per_band[i][j], pFb->filterbank_num_bands ); Copy( q_tmp, hCovState->q_cov_real_per_band[i][j], sub( end_band, start_band ) ); } } } Loading Loading @@ -698,7 +705,7 @@ void ivas_cov_smooth_process_fx( const Word16 transient_det[2], Word16 *q_cov[IVAS_SPAR_MAX_CH] ) { Word16 i, j; Word16 i, j, k; Word16 num_bands = sub( end_band, start_band ); ivas_compute_smooth_cov_fx( hCovState, pFb, cov_real, hCovState->pPrior_cov_real_fx, 0, start_band, end_band, num_ch, transient_det, q_cov ); Loading @@ -708,6 +715,11 @@ void ivas_cov_smooth_process_fx( FOR( j = 0; j < num_ch; j++ ) { Copy32( &cov_real[i][j][start_band], &hCovState->pPrior_cov_real_fx[i][j][start_band], num_bands ); FOR( k = 0; k < num_bands; k++ ) { hCovState->q_prior_cov_real_per_band[i][j][start_band + k] = hCovState->q_cov_real_per_band[i][j][start_band + k]; move16(); } } } Loading
lib_com/ivas_mc_param_com.c +24 −0 Original line number Diff line number Diff line Loading @@ -942,6 +942,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->icc_coding.sym_freq_delta = &ivas_param_mc_sym_freq_icc_delta_cicp6_48_16bits[0]; hMetadataPMC->icc_coding.quantizer = &ivas_param_mc_quant_icc[0]; hMetadataPMC->icc_coding.quantizer_size = PARAM_MC_SZ_ICC_QUANTIZER; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->icc_coding.quantizer_fx = &ivas_param_mc_quant_icc_fx[0]; #endif hMetadataPMC->icc_coding.uni_bits = PARAM_MC_NUM_BITS_ICC_SCALAR_QUANT; /* ILD */ hMetadataPMC->ild_coding.cum_freq = &ivas_param_mc_cum_freq_ild_cicp6_48_16bits[0]; Loading @@ -949,6 +952,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->ild_coding.cum_freq_delta = &ivas_param_mc_cum_freq_ild_delta_cicp6_48_16bits[0]; hMetadataPMC->ild_coding.sym_freq_delta = &ivas_param_mc_sym_freq_ild_delta_cicp6_48_16bits[0]; hMetadataPMC->ild_coding.quantizer = &ivas_param_mc_quant_ild_5d1_48[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->ild_coding.quantizer_fx = &ivas_param_mc_quant_ild_5d1_48_fx[0]; #endif hMetadataPMC->ild_coding.quantizer_size = PARAM_MC_SZ_ILD_QUANTIZER_4BITS; hMetadataPMC->ild_coding.uni_bits = PARAM_MC_NUM_BITS_ILD_SCALAR_QUANT; break; Loading @@ -959,6 +965,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->icc_coding.cum_freq_delta = &ivas_param_mc_cum_freq_icc_delta_cicp12_48_16bits[0]; hMetadataPMC->icc_coding.sym_freq_delta = &ivas_param_mc_sym_freq_icc_delta_cicp12_48_16bits[0]; hMetadataPMC->icc_coding.quantizer = &ivas_param_mc_quant_icc[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->icc_coding.quantizer_fx = &ivas_param_mc_quant_icc_fx[0]; #endif hMetadataPMC->icc_coding.quantizer_size = PARAM_MC_SZ_ICC_QUANTIZER; hMetadataPMC->icc_coding.uni_bits = PARAM_MC_NUM_BITS_ICC_SCALAR_QUANT; /* ILD */ Loading @@ -967,6 +976,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->ild_coding.cum_freq_delta = &ivas_param_mc_cum_freq_ild_delta_cicp12_48_16bits[0]; hMetadataPMC->ild_coding.sym_freq_delta = &ivas_param_mc_sym_freq_ild_delta_cicp12_48_16bits[0]; hMetadataPMC->ild_coding.quantizer = &ivas_param_mc_quant_ild_5d1_48[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->ild_coding.quantizer_fx = &ivas_param_mc_quant_ild_5d1_48_fx[0]; #endif hMetadataPMC->ild_coding.quantizer_size = PARAM_MC_SZ_ILD_QUANTIZER_4BITS; hMetadataPMC->ild_coding.uni_bits = PARAM_MC_NUM_BITS_ILD_SCALAR_QUANT; break; Loading @@ -977,6 +989,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->icc_coding.cum_freq_delta = &ivas_param_mc_cum_freq_icc_delta_cicp14_48_16bits[0]; hMetadataPMC->icc_coding.sym_freq_delta = &ivas_param_mc_sym_freq_icc_delta_cicp14_48_16bits[0]; hMetadataPMC->icc_coding.quantizer = &ivas_param_mc_quant_icc[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->icc_coding.quantizer_fx = &ivas_param_mc_quant_icc_fx[0]; #endif hMetadataPMC->icc_coding.quantizer_size = PARAM_MC_SZ_ICC_QUANTIZER; hMetadataPMC->icc_coding.uni_bits = PARAM_MC_NUM_BITS_ICC_SCALAR_QUANT; /* ILD */ Loading @@ -985,6 +1000,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->ild_coding.cum_freq_delta = &ivas_param_mc_cum_freq_ild_delta_cicp14_48_16bits[0]; hMetadataPMC->ild_coding.sym_freq_delta = &ivas_param_mc_sym_freq_ild_delta_cicp14_48_16bits[0]; hMetadataPMC->ild_coding.quantizer = &ivas_param_mc_quant_ild_5d1_48[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->ild_coding.quantizer_fx = &ivas_param_mc_quant_ild_5d1_48_fx[0]; #endif hMetadataPMC->ild_coding.quantizer_size = PARAM_MC_SZ_ILD_QUANTIZER_4BITS; hMetadataPMC->ild_coding.uni_bits = PARAM_MC_NUM_BITS_ILD_SCALAR_QUANT; break; Loading @@ -996,6 +1014,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->icc_coding.cum_freq_delta = &ivas_param_mc_cum_freq_icc_delta_combined_48_16bits[0]; hMetadataPMC->icc_coding.sym_freq_delta = &ivas_param_mc_sym_freq_icc_delta_combined_48_16bits[0]; hMetadataPMC->icc_coding.quantizer = &ivas_param_mc_quant_icc[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->icc_coding.quantizer_fx = &ivas_param_mc_quant_icc_fx[0]; #endif hMetadataPMC->icc_coding.quantizer_size = PARAM_MC_SZ_ICC_QUANTIZER; hMetadataPMC->icc_coding.uni_bits = PARAM_MC_NUM_BITS_ICC_SCALAR_QUANT; /* ILD */ Loading @@ -1004,6 +1025,9 @@ static void ivas_param_mc_set_coding_scheme( hMetadataPMC->ild_coding.cum_freq_delta = &ivas_param_mc_cum_freq_ild_delta_combined_48_16bits[0]; hMetadataPMC->ild_coding.sym_freq_delta = &ivas_param_mc_sym_freq_ild_delta_combined_48_16bits[0]; hMetadataPMC->ild_coding.quantizer = &ivas_param_mc_quant_ild_5d1_48[0]; #ifdef IVAS_FLOAT_FIXED hMetadataPMC->ild_coding.quantizer_fx = &ivas_param_mc_quant_ild_5d1_48_fx[0]; #endif hMetadataPMC->ild_coding.quantizer_size = PARAM_MC_SZ_ILD_QUANTIZER_4BITS; hMetadataPMC->ild_coding.uni_bits = PARAM_MC_NUM_BITS_ILD_SCALAR_QUANT; break; Loading
lib_com/ivas_prot.h +16 −0 Original line number Diff line number Diff line Loading @@ -6928,6 +6928,16 @@ void ivas_quantise_real_values_fx( Word32 *quant_fx, const Word16 dim); void ivas_quantise_real_values_enc_fx( const Word32 *values_fx,//Q28 const Word16 q_levels, const Word32 min_value_fx,//Q28 const Word32 max_value_fx,//Q28 Word16 *index, Word32 *quant_fx,//Q28 const Word16 dim); void ivas_spar_get_uniform_quant_strat( ivas_spar_md_com_cfg *pSpar_md_com_cfg, const int16_t table_idx Loading Loading @@ -7134,9 +7144,15 @@ void ivas_merge_masa_metadata( OMASA_SPATIAL_META_HANDLE hOMasaMeta /* i : ISM-object metadata to be merged with the MASA metadata */ ); #ifdef IVAS_FLOAT_FIXED void ivas_masa_combine_directions_fx( MASA_ENCODER_HANDLE hMasa /* i/o: MASA encoder handle */ ); #else void ivas_masa_combine_directions( MASA_ENCODER_HANDLE hMasa /* i/o: MASA encoder handle */ ); #endif /*!r : number of bits for ISM ratio index */ int16_t bits_index_ism_ratio( Loading