Loading lib_com/ivas_cnst.h +35 −0 Original line number Diff line number Diff line Loading @@ -1784,6 +1784,41 @@ typedef enum #define IVAS_LIMITER_THRESHOLD 32729 /* -0.01 dBFS */ #define IVAS_LIMITER_ATTACK_SECONDS 0.005f #ifdef ENHANCED_STEREO_DMX /*----------------------------------------------------------------------------------* * Stereo downmix EVS constants *----------------------------------------------------------------------------------*/ #define STEREO_DMX_EVS_PHA_LEN_16 48 #define STEREO_DMX_EVS_FAD_LEN_16 160 #define STEREO_DMX_EVS_PHA_LEN_32 96 #define STEREO_DMX_EVS_FAD_LEN_32 320 #define STEREO_DMX_EVS_PHA_LEN_48 96 #define STEREO_DMX_EVS_FAD_LEN_48 480 #define STEREO_DMX_EVS_SUBBAND_SIZE 2 #define STEREO_DMX_EVS_NB_SUBBAND_MAX (L_FRAME48k / (2 * STEREO_DMX_EVS_SUBBAND_SIZE)) #define STEREO_DMX_EVS_PHA_LEN_MAX 96 /* Max of PHA_LEN */ #define STEREO_DMX_EVS_FAD_LEN_MAX 480 /* Max of FAD_LEN */ #define STEREO_DMX_EVS_DATA_LEN_MAX (STEREO_DMX_EVS_PHA_LEN_MAX + L_FRAME48k) typedef enum { STEREO_DMX_EVS_PHA_IPD, STEREO_DMX_EVS_PHA_IPD2, STEREO_DMX_EVS_NO_PHA } STEREO_DMX_EVS_PHA; typedef enum { STEREO_DMX_EVS_PRC_POC, STEREO_DMX_EVS_PRC_PHA, } STEREO_DMX_EVS_PRC; #endif #endif /* clang-format on */ Loading lib_com/options.h +3 −0 Original line number Diff line number Diff line Loading @@ -234,8 +234,11 @@ #define FIX_TODO_NON_DIEGETIC_PAN_NOT_IMPLELENTED_IN_RENDERER /* ..\apps\renderer.c(240): .... (todo: implementation)",*/ #define REMOVE_OBS_CODE /* FhG: Remove unnecessary assignement after LFE cleanup (Issue #451)*/ #define ENHANCED_STEREO_DMX /* Orange : Contribution 48 - Enhanced stereo downmix. */ #define FIX_527_SBA_MONO_INPUT /* FhG: fix issue 527, artifacts in mono signals coded in SBA mode */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_enc/ivas_stat_enc.h +41 −0 Original line number Diff line number Diff line Loading @@ -1010,9 +1010,50 @@ typedef struct stereo_dmx_evs_phase_only_correlation_structure } STEREO_DMX_EVS_POC_DATA, *STEREO_DMX_EVS_POC_HANDLE; #ifdef ENHANCED_STEREO_DMX typedef struct stereo_dmx_evs_correlation_filter_structure { int16_t init_frmCntr; float isd_rate_s; float iccr_s; float ipd_ff[STEREO_DMX_EVS_NB_SUBBAND_MAX]; float Pr[STEREO_DMX_EVS_NB_SUBBAND_MAX]; float Pi[STEREO_DMX_EVS_NB_SUBBAND_MAX]; float rfft_ipd_coef[L_FRAME48k / 2 + 1]; int16_t pha_len; int16_t fad_len; float win[STEREO_DMX_EVS_PHA_LEN_MAX]; float fad_g[STEREO_DMX_EVS_FAD_LEN_MAX]; float *p_prev_taps[CPE_CHANNELS], prev_taps[CPE_CHANNELS][STEREO_DMX_EVS_PHA_LEN_MAX]; float *p_curr_taps[CPE_CHANNELS], curr_taps[CPE_CHANNELS][STEREO_DMX_EVS_PHA_LEN_MAX]; float data_mem[CPE_CHANNELS][STEREO_DMX_EVS_PHA_LEN_MAX]; STEREO_DMX_EVS_PHA curr_pha; STEREO_DMX_EVS_PHA prev_pha; int16_t pha_hys_cnt; int16_t prc_thres; STEREO_DMX_EVS_PRC curr_prc; STEREO_DMX_EVS_PRC prev_prc; int16_t prc_hys_cnt; float fad_g_prc[L_FRAME48k]; int16_t fad_len_prc; float trns_aux_energy[CPE_CHANNELS]; float crst_fctr; } STEREO_DMX_EVS_PHA_DATA, *STEREO_DMX_EVS_PHA_HANDLE; #endif typedef struct stereo_dmx_evs_enc_data_structure { STEREO_DMX_EVS_POC_HANDLE hPOC; #ifdef ENHANCED_STEREO_DMX STEREO_DMX_EVS_PHA_HANDLE hPHA; #endif float itd; Loading lib_enc/ivas_stereo_dmx_evs.c +749 −13 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
lib_com/ivas_cnst.h +35 −0 Original line number Diff line number Diff line Loading @@ -1784,6 +1784,41 @@ typedef enum #define IVAS_LIMITER_THRESHOLD 32729 /* -0.01 dBFS */ #define IVAS_LIMITER_ATTACK_SECONDS 0.005f #ifdef ENHANCED_STEREO_DMX /*----------------------------------------------------------------------------------* * Stereo downmix EVS constants *----------------------------------------------------------------------------------*/ #define STEREO_DMX_EVS_PHA_LEN_16 48 #define STEREO_DMX_EVS_FAD_LEN_16 160 #define STEREO_DMX_EVS_PHA_LEN_32 96 #define STEREO_DMX_EVS_FAD_LEN_32 320 #define STEREO_DMX_EVS_PHA_LEN_48 96 #define STEREO_DMX_EVS_FAD_LEN_48 480 #define STEREO_DMX_EVS_SUBBAND_SIZE 2 #define STEREO_DMX_EVS_NB_SUBBAND_MAX (L_FRAME48k / (2 * STEREO_DMX_EVS_SUBBAND_SIZE)) #define STEREO_DMX_EVS_PHA_LEN_MAX 96 /* Max of PHA_LEN */ #define STEREO_DMX_EVS_FAD_LEN_MAX 480 /* Max of FAD_LEN */ #define STEREO_DMX_EVS_DATA_LEN_MAX (STEREO_DMX_EVS_PHA_LEN_MAX + L_FRAME48k) typedef enum { STEREO_DMX_EVS_PHA_IPD, STEREO_DMX_EVS_PHA_IPD2, STEREO_DMX_EVS_NO_PHA } STEREO_DMX_EVS_PHA; typedef enum { STEREO_DMX_EVS_PRC_POC, STEREO_DMX_EVS_PRC_PHA, } STEREO_DMX_EVS_PRC; #endif #endif /* clang-format on */ Loading
lib_com/options.h +3 −0 Original line number Diff line number Diff line Loading @@ -234,8 +234,11 @@ #define FIX_TODO_NON_DIEGETIC_PAN_NOT_IMPLELENTED_IN_RENDERER /* ..\apps\renderer.c(240): .... (todo: implementation)",*/ #define REMOVE_OBS_CODE /* FhG: Remove unnecessary assignement after LFE cleanup (Issue #451)*/ #define ENHANCED_STEREO_DMX /* Orange : Contribution 48 - Enhanced stereo downmix. */ #define FIX_527_SBA_MONO_INPUT /* FhG: fix issue 527, artifacts in mono signals coded in SBA mode */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_enc/ivas_stat_enc.h +41 −0 Original line number Diff line number Diff line Loading @@ -1010,9 +1010,50 @@ typedef struct stereo_dmx_evs_phase_only_correlation_structure } STEREO_DMX_EVS_POC_DATA, *STEREO_DMX_EVS_POC_HANDLE; #ifdef ENHANCED_STEREO_DMX typedef struct stereo_dmx_evs_correlation_filter_structure { int16_t init_frmCntr; float isd_rate_s; float iccr_s; float ipd_ff[STEREO_DMX_EVS_NB_SUBBAND_MAX]; float Pr[STEREO_DMX_EVS_NB_SUBBAND_MAX]; float Pi[STEREO_DMX_EVS_NB_SUBBAND_MAX]; float rfft_ipd_coef[L_FRAME48k / 2 + 1]; int16_t pha_len; int16_t fad_len; float win[STEREO_DMX_EVS_PHA_LEN_MAX]; float fad_g[STEREO_DMX_EVS_FAD_LEN_MAX]; float *p_prev_taps[CPE_CHANNELS], prev_taps[CPE_CHANNELS][STEREO_DMX_EVS_PHA_LEN_MAX]; float *p_curr_taps[CPE_CHANNELS], curr_taps[CPE_CHANNELS][STEREO_DMX_EVS_PHA_LEN_MAX]; float data_mem[CPE_CHANNELS][STEREO_DMX_EVS_PHA_LEN_MAX]; STEREO_DMX_EVS_PHA curr_pha; STEREO_DMX_EVS_PHA prev_pha; int16_t pha_hys_cnt; int16_t prc_thres; STEREO_DMX_EVS_PRC curr_prc; STEREO_DMX_EVS_PRC prev_prc; int16_t prc_hys_cnt; float fad_g_prc[L_FRAME48k]; int16_t fad_len_prc; float trns_aux_energy[CPE_CHANNELS]; float crst_fctr; } STEREO_DMX_EVS_PHA_DATA, *STEREO_DMX_EVS_PHA_HANDLE; #endif typedef struct stereo_dmx_evs_enc_data_structure { STEREO_DMX_EVS_POC_HANDLE hPOC; #ifdef ENHANCED_STEREO_DMX STEREO_DMX_EVS_PHA_HANDLE hPHA; #endif float itd; Loading
lib_enc/ivas_stereo_dmx_evs.c +749 −13 File changed.Preview size limit exceeded, changes collapsed. Show changes