Commit 5364eb33 authored by vaclav's avatar vaclav
Browse files

HO-DirAC/HO-MASA merge improvements

parent b5bfd17c
Loading
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -49,9 +49,22 @@
 *---------------------------------------------------------------*/

#define MASA_EXTRA_BAND_META_BITS 40

#define MASA_SMALL_INC_META_BITS 10


#ifdef HR_METADATA
/*---------------------------------------------------------------
 * Local prototypes
 *---------------------------------------------------------------*/

static int16_t quantize_theta_masa( float x, const int16_t no_cb, float *xhat );

static int16_t quantize_phi_masa( float phi, const int16_t flag_delta, float *phi_hat, const int16_t n );

#endif


/*---------------------------------------------------------------
 * ivas_masa_setup()
 *
@@ -451,7 +464,7 @@ uint16_t index_theta_phi_16(
        sign_th = 1;
    }

    id_th = quantize_theta( abs_theta, gridData->no_theta, &theta_hat );
    id_th = quantize_theta_masa( abs_theta, gridData->no_theta, &theta_hat );
    if ( gridData->no_theta > 1 )
    {
        if ( gridData->no_phi[id_th] > 1 )
@@ -519,7 +532,7 @@ uint16_t index_theta_phi_16(
 *------------------------------------------------------------------------*/

/*! r: output index */
int16_t quantize_theta(
static int16_t quantize_theta_masa(
    float x,             /* i  : theta value to be quantized  */
    const int16_t no_cb, /* i  : number of codewords          */
    float *xhat          /* o  : quantized value              */
@@ -561,7 +574,7 @@ int16_t quantize_theta(
 *------------------------------------------------------------------------*/

/*! r: index azimuth */
int16_t quantize_phi_masa(
static int16_t quantize_phi_masa(
    float phi,                /* i  : azimuth value                                                   */
    const int16_t flag_delta, /* i  : flag indicating if the azimuth codebook is translated or not    */
    float *phi_hat,           /* o  : quantized azimuth                                               */
+0 −15
Original line number Diff line number Diff line
@@ -3135,21 +3135,6 @@ uint16_t index_theta_phi_16(
    float * p_phi,                                              /* i/o: input azimuth to be indexed             */
    const SPHERICAL_GRID_DATA *gridData                         /* i  : generated grid data                     */
);

/*! r: output index */
int16_t quantize_theta(
    float x,                                                    /* i  : theta value to be quantized             */
    const int16_t no_cb,                                        /* i  : number of codewords                     */
    float *xhat                                                 /* o  : quantized value                         */
);

/*! r: index azimuth */
int16_t quantize_phi_masa(
    float phi,                                                  /* i  : azimuth value                                                   */
    const int16_t flag_delta,                                   /* i  : flag indicating if the azimuth codebook is translated or not    */
    float *phi_hat,                                             /* o  : quantized azimuth                                               */
    const int16_t n                                             /* i  : azimuth codebook size                                           */
);
#endif

void reset_metadata_spatial(
+2 −2
Original line number Diff line number Diff line
@@ -192,7 +192,7 @@ ivas_error ivas_jbm_dec_tc(
            {
                ivas_dirac_dec_read_BS( ivas_total_brate, st, st_ivas->hDirAC, st_ivas->hQMetaData, &nb_bits_metadata[0], st_ivas->sba_mode,
#ifdef HODIRAC
                                        st_ivas->sba_analysis_order > 1 && ivas_total_brate > IVAS_256k,
                                        ivas_get_hodirac_flag( ivas_total_brate, st_ivas->sba_analysis_order ),
#endif
                                        0 );
            }
@@ -217,7 +217,7 @@ ivas_error ivas_jbm_dec_tc(
                    &nb_bits_metadata[0],
                    st_ivas->sba_mode,
#ifdef HODIRAC
                    st_ivas->sba_analysis_order > 1 && ivas_total_brate > IVAS_256k,
                    ivas_get_hodirac_flag( ivas_total_brate, st_ivas->sba_analysis_order ),
#endif
                    st_ivas->hSpar->dirac_to_spar_md_bands );
            }
+2 −2
Original line number Diff line number Diff line
@@ -609,8 +609,8 @@ static ivas_error ivas_spar_enc_process(
    ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, data_f, ppIn_FR_real, ppIn_FR_imag, input_frame, st_ivas->sba_mode
#ifdef HODIRAC
                              ,
                              st_ivas->sba_analysis_order > 1 && ivas_total_brate > IVAS_256k,
                              st_ivas->sba_analysis_order > 1 && ivas_total_brate > IVAS_256k ? HOA2_CHANNELS : FOA_CHANNELS
                              ivas_get_hodirac_flag( ivas_total_brate, st_ivas->sba_analysis_order ),
                              ivas_get_hodirac_flag( ivas_total_brate, st_ivas->sba_analysis_order ) ? HOA2_CHANNELS : FOA_CHANNELS
#endif
    );