Commit 82eba0ac authored by vaclav's avatar vaclav
Browse files

Merge branch '76-SBA-order-in-the-bitstream' into 'main'

maintenance-76-SBA-order-in-the-bitstream

See merge request !100
parents b379d47c d94c66c5
Loading
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -1978,21 +1978,13 @@ ivas_error preview_indices(

            /* Read SBA planar flag and SBA order */
            st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA] == 1 );
#ifndef SBA_ORDER_BITSTREAM
            st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 );
            st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 );
#else
            st_ivas->hDecoderConfig->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 );
            st_ivas->hDecoderConfig->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 );
            st_ivas->sba_analysis_order = st_ivas->hDecoderConfig->sba_order;
#endif

#ifdef SBA_ORDER_BITSTREAM
            /*Hard coding the the sba_oder as 1 as higher not supported below 256k bitrate*/
            if ( total_brate < IVAS_256k )
            {
                st_ivas->sba_analysis_order = 1;
            }
            st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order );
#endif

#ifdef SBA_ORDER_BITSTREAM
            ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode );
#else
+1 −0
Original line number Diff line number Diff line
@@ -831,6 +831,7 @@ typedef enum {

#define SBA_PLANAR_BITS                         1
#define SBA_ORDER_BITS                          2
#define SBA_MIN_BRATE_HOA                       IVAS_256k
#define SBA_NHARM_HOA3                          16
#define SBA_T_DESIGN_11_SIZE                    70

+12 −2
Original line number Diff line number Diff line
@@ -3033,15 +3033,25 @@ void ivas_init_dec_get_num_cldfb_instances(
    int16_t *numCldfbSyntheses                                  /* o  : number of CLDFB synthesis instances     */
);

/*! r: Ambisonic (SBA) order */
int16_t ivas_sba_get_order(
    const int16_t nb_channels,                                  /* i  : Number of ambisonic channels            */
    const int16_t sba_planar                                    /* i  : SBA planar flag                         */
);

#ifdef SBA_ORDER_BITSTREAM
/*! r: Ambisonic (SBA) order used for analysis and coding */
int16_t ivas_sba_get_analysis_order(
    const int32_t ivas_total_brate,                             /* i  : IVAS total bitrate                      */
    const int16_t sba_order                                     /* i  : Ambisonic (SBA) order                   */
);
#endif

int16_t ivas_sba_get_order_transport(
    const int16_t nchan_transport                               /* i  : Number of transport channels            */
);

/*!r: number of Ambisonic channels */
int16_t ivas_sba_get_nchan(
    const int16_t sba_order,                                    /* i  : Ambisonic (SBA) order                   */
    const int16_t sba_planar                                    /* i  : SBA planar flag                         */
@@ -3858,7 +3868,7 @@ ivas_error ivas_spar_md_enc_open(
    const ENCODER_CONFIG_HANDLE hEncoderConfig                  /* i  : configuration structure                 */
#ifdef SBA_ORDER_BITSTREAM
    ,
    int16_t sba_order
    const int16_t sba_order                                     /* i  : Ambisonic (SBA) order                   */
#endif
);

@@ -3874,7 +3884,7 @@ ivas_error ivas_spar_md_enc_process(
    const int16_t dtx_silence_mode
#ifdef SBA_ORDER_BITSTREAM
    ,
    int16_t sba_order
    const int16_t sba_order                                     /* i  : Ambisonic (SBA) order                   */
#endif
);

+30 −0
Original line number Diff line number Diff line
@@ -158,6 +158,7 @@ void ivas_sba_config(
 * Get Ambisonic order from number of ambisonic channels
 *-------------------------------------------------------------------*/

/*! r: Ambisonic (SBA) order */
int16_t ivas_sba_get_order(
    const int16_t nb_channels, /* i  : Number of ambisonic channels     */
    const int16_t sba_planar   /* i  : SBA Planar flag                  */
@@ -182,6 +183,34 @@ int16_t ivas_sba_get_order(
}


#ifdef SBA_ORDER_BITSTREAM
/*-------------------------------------------------------------------*
 * ivas_sba_get_analysis_order()
 *
 * Get Ambisonic order used for analysis and coding
 *-------------------------------------------------------------------*/

/*! r: Ambisonic (SBA) order used for analysis and coding */
int16_t ivas_sba_get_analysis_order(
    const int32_t ivas_total_brate, /* i  : IVAS total bitrate      */
    const int16_t sba_order         /* i  : Ambisonic (SBA) order   */
)
{
    int16_t sba_analysis_order;

    sba_analysis_order = sba_order;

    if ( ivas_total_brate < SBA_MIN_BRATE_HOA )
    {
        /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */
        sba_analysis_order = 1;
    }

    return sba_analysis_order;
}
#endif


/*-------------------------------------------------------------------*
 * ivas_sba_get_order_transport()
 *
@@ -215,6 +244,7 @@ int16_t ivas_sba_get_order_transport(
 * Get number of Ambisonic channels
 *-------------------------------------------------------------------*/

/*!r: number of Ambisonic channels */
int16_t ivas_sba_get_nchan(
    const int16_t sba_order, /* i  : Ambisonic (SBA) order            */
    const int16_t sba_planar /* i  : SBA planar flag                  */
+1 −0
Original line number Diff line number Diff line
@@ -192,6 +192,7 @@ ivas_error ivas_dirac_dec_config(
        st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_order );
#endif
    }

    nchan_transport = st_ivas->nchan_transport;
    if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 )
    {
Loading