Commit a19c33cb authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

MASA path changes and float code cleanup

[x] MSAN error fixes in encoder
[x] MASA path conversion and cleanup
[x] Q-info addition for decoder files
parent 48a885f2
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -811,15 +811,8 @@ void ivas_ism_reset_metadata_enc(
    move32();
    hIsmMeta->pitch_fx = 0;
    move32();
    hIsmMeta->radius_fx = 1 << 9;
    hIsmMeta->radius_fx = 1 << 9; // Q9
    move16();
#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED
    hIsmMeta->azimuth = 0.0f;
    hIsmMeta->elevation = 0.0f;
    hIsmMeta->yaw = 0.0f;
    hIsmMeta->pitch = 0.0f;
    hIsmMeta->radius = 1.0f;
#endif
    hIsmMeta->ism_metadata_flag = 0;
    move16();
    hIsmMeta->non_diegetic_flag = 0;
+1 −1
Original line number Diff line number Diff line
@@ -6506,7 +6506,7 @@ void ivas_enc_cov_handler_process_fx(
    ivas_enc_cov_handler_state_t *hCovEnc,                      /* i/o: SPAR Covar. encoder handle              */
    Word32 **ppIn_FR_real,
    Word32 **ppIn_FR_imag,
    Word16 *q_ppIn_FR,
    Word16 q_ppIn_FR,
    Word32 *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
    Word16 *q_cov_real[IVAS_SPAR_MAX_CH],
    Word32 *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
+1 −1
Original line number Diff line number Diff line
@@ -3814,7 +3814,7 @@ void ivas_get_spar_md_from_dirac_fx(
                    }
                    ELSE
                    {
                        cov_real_dirac_fx[i][j][band] = L_shl_sat( Mpy_32_32( Mpy_32_32( en_ratio_fac_fx, response_avg_fx[i] ), response_avg_fx[j] ), 1 );
                        cov_real_dirac_fx[i][j][band] = L_shl( Mpy_32_32( Mpy_32_32( en_ratio_fac_fx, response_avg_fx[i] ), response_avg_fx[j] ), 1 );
                        move32();
                    }
                }
+25 −19
Original line number Diff line number Diff line
@@ -65,12 +65,13 @@ typedef struct
    Word16 radius_fx; /* radius value read from the input metadata file */       /* Q9 */
    Word32 yaw_fx; /* yaw value read from the input metadata file */             /* Q22 */
    Word32 pitch_fx; /* pitch value read from the input metadata file */         /* Q22 */
#endif
#else
    float azimuth;                                                                        /* azimuth value read from the input metadata file */
    float elevation;                                                                      /* elevation value read from the input metadata file */
    float radius;                                                                         /* radius value read from the input metadata file */
    float yaw;                                                                            /* yaw value read from the input metadata file */
    float pitch;                                                                          /* pitch value read from the input metadata file */
#endif

    int16_t non_diegetic_flag; /* Non-diegetic (non-headtracked) object flag */

@@ -79,11 +80,12 @@ typedef struct
    int16_t last_radius_idx;              /* last frame index of coded radius */
    int16_t radius_diff_cnt;              /* FEC counter of consecutive differentially radius coded frames */

#ifndef IVAS_FLOAT_FIXED
    float last_azimuth;        /* MD smoothing in DTX- last Q azimuth value */
    float last_elevation;      /* MD smoothing in DTX - last Q elevation value */
    float last_true_azimuth;   /* MD smoothing in DTX- last true Q azimuth value */
    float last_true_elevation; /* MD smoothing in DTX- last true Q elevation value */
#ifdef IVAS_FLOAT_FIXED
#else
    Word32 last_azimuth_fx; /* MD smoothing in DTX- last Q azimuth value */               /* Q22 */
    Word32 last_elevation_fx; /* MD smoothing in DTX - last Q elevation value */          /* Q22 */
    Word32 last_true_azimuth_fx; /* MD smoothing in DTX- last true Q azimuth value */     /* Q22 */
@@ -92,8 +94,9 @@ typedef struct

    int16_t ism_md_fec_cnt_enc;  /* counter of continuous frames where MD are not transmitted */
    int16_t ism_md_inc_diff_cnt; /* counter of continuous frames where MD are transmitted in inactive segments when MD significantly changes */
#ifndef IVAS_FLOAT_FIXED
    float last_true_radius; /* last true Q radius value */
#ifdef IVAS_FLOAT_FIXED
#else
    Word16 last_true_radius_fx;                                                           /* last true Q radius value */
#endif

@@ -103,9 +106,10 @@ typedef struct
#ifdef IVAS_FLOAT_FIXED
    Word32 q_azimuth_old_fx;
    Word32 q_elevation_old_fx;
#endif
#else
    float q_azimuth_old;
    float q_elevation_old;
#endif

} ISM_METADATA_FRAME, *ISM_METADATA_HANDLE;

@@ -453,11 +457,12 @@ typedef struct ivas_masa_descriptive_meta_struct

typedef struct ivas_masa_directional_spatial_meta_struct
{
#ifndef IVAS_FLOAT_FIXED
    float azimuth[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
    float elevation[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
    float energy_ratio[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
    float spread_coherence[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
#ifdef IVAS_FLOAT_FIXED
#else
    Word32 azimuth_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];                  /* Q22 */
    Word32 elevation_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];                /* Q22 */
    Word32 energy_ratio_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];             /* Q30 */
@@ -469,14 +474,15 @@ typedef struct ivas_masa_directional_spatial_meta_struct

typedef struct ivas_masa_common_spatial_meta_struct
{
#ifndef IVAS_FLOAT_FIXED
    float diffuse_to_total_ratio[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
    float surround_coherence[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
#ifdef IVAS_FLOAT_FIXED
    float remainder_to_total_ratio[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
#else
    Word32 diffuse_to_total_ratio_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];   // Q30
    Word16 surround_coherence_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];       // Q14
    Word16 surround_coherence_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];       // Q15
    Word32 remainder_to_total_ratio_fx[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS]; // Q30
#endif
    float remainder_to_total_ratio[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];

} MASA_COMMON_SPATIAL_META;

+2 −0
Original line number Diff line number Diff line
@@ -9345,6 +9345,7 @@ void FEC_clas_estim(
    const int16_t FEC_mode             /* i  : ACELP FEC mode                                 */
);
#ifndef IVAS_FLOAT_FIXED
void InitTransientDetection(
    const int16_t nFrameLength,
    const int16_t nTCXDelay,
@@ -9367,6 +9368,7 @@ float GetTCXMaxenergyChange(
    const int16_t isTCX10,
    const int16_t nCurrentSubblocks,
    const int16_t nPrevSubblocks );
#endif
void SetTCXModeInfo(
    Encoder_State *st,        /* i/o: encoder state structure                 */
Loading