Commit 7788d9ca authored by TYAGIRIS's avatar TYAGIRIS
Browse files

renaming ISAR consts with ISAR_

parent c4140738
Loading
Loading
Loading
Loading
Loading
+26 −28
Original line number Diff line number Diff line
@@ -1542,9 +1542,7 @@ typedef enum
 * Split Binaural Rendering Constants
 *----------------------------------------------------------------------------------*/

#ifdef SPLIT_REND_WITH_HEAD_ROT
#define CLDFB_PLC_XF                            2 /* Length of cross-fade into first good frame after frame loss in CLDFB cols. */
#endif

#define SPLIT_REND_DECOR_ALPHA                  0.25f

@@ -1563,36 +1561,36 @@ typedef enum
#define COMPLEX_MD_BAND_THRESH_LOW              5
#define SPLIT_REND_RO_MD_BAND_THRESH            4

#define IVAS_SPLIT_REND_NUM_QUANT_STRATS        4
#define ISAR_SPLIT_REND_NUM_QUANT_STRATS        4
#define ISAR_SPLIT_REND_PRED_63QUANT_PNTS       63
#define IVAS_SPLIT_REND_PRED_31QUANT_PNTS       31
#define ISAR_SPLIT_REND_ROLL_PRED_QUANT_PNTS    31
#define ISAR_SPLIT_REND_D_QUANT_PNTS            15
#define IVAS_SPLIT_REND_PRED_MIN_VAL            -1.4f
#define IVAS_SPLIT_REND_PRED_MAX_VAL            1.4f

#define IVAS_SPLIT_REND_PITCH_G_MIN_VAL         0.5f
#define IVAS_SPLIT_REND_PITCH_G_MAX_VAL         1.5f
#define IVAS_SPLIT_REND_PITCH_G_QUANT_PNTS      ISAR_SPLIT_REND_D_QUANT_PNTS
#define IVAS_SPLIT_REND_D_MIN_VAL               0.0f
#define IVAS_SPLIT_REND_D_MAX_VAL               1.0f

#define IVAS_SPLIT_REND_PRED_ROLL_Q_STEP        (( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL ) / ( ISAR_SPLIT_REND_ROLL_PRED_QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_PRED_ROLL_1BYQ_STEP     (( ISAR_SPLIT_REND_ROLL_PRED_QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL )) 
#define IVAS_SPLIT_REND_PRED31_Q_STEP           (( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL ) / ( IVAS_SPLIT_REND_PRED_31QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_PRED31_1BYQ_STEP        (( IVAS_SPLIT_REND_PRED_31QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL )) 
#define IVAS_SPLIT_REND_PRED63_Q_STEP           (( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL ) / ( ISAR_SPLIT_REND_PRED_63QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_PRED63_1BYQ_STEP        (( ISAR_SPLIT_REND_PRED_63QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL )) 

#define IVAS_SPLIT_REND_D_Q_STEP                (( IVAS_SPLIT_REND_D_MAX_VAL - IVAS_SPLIT_REND_D_MIN_VAL ) / ( ISAR_SPLIT_REND_D_QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_D_1BYQ_STEP             (( ISAR_SPLIT_REND_D_QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_D_MAX_VAL - IVAS_SPLIT_REND_D_MIN_VAL )) 
#define IVAS_SPLIT_REND_PITCH_G_Q_STEP          (( IVAS_SPLIT_REND_PITCH_G_MAX_VAL - IVAS_SPLIT_REND_PITCH_G_MIN_VAL ) / ( IVAS_SPLIT_REND_PITCH_G_QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_PITCH_G_1BYQ_STEP       (( IVAS_SPLIT_REND_PITCH_G_QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_PITCH_G_MAX_VAL - IVAS_SPLIT_REND_PITCH_G_MIN_VAL )) 

#define IVAS_SPLIT_REND_MAX_NUM_BYTES           4000
#define IVAS_SPLIT_REND_HEAD_POSE_BITS          9
#define IVAS_SPLIT_REND_DOF_BITS                2
#define IVAS_SPLIT_REND_HQ_MODE_BITS            1
#define ISAR_SPLIT_REND_PRED_MIN_VAL            -1.4f
#define ISAR_SPLIT_REND_PRED_MAX_VAL            1.4f

#define ISAR_SPLIT_REND_PITCH_G_MIN_VAL         0.5f
#define ISAR_SPLIT_REND_PITCH_G_MAX_VAL         1.5f
#define ISAR_SPLIT_REND_PITCH_G_QUANT_PNTS      ISAR_SPLIT_REND_D_QUANT_PNTS
#define ISAR_SPLIT_REND_D_MIN_VAL               0.0f
#define ISAR_SPLIT_REND_D_MAX_VAL               1.0f

#define ISAR_SPLIT_REND_PRED_ROLL_Q_STEP        (( ISAR_SPLIT_REND_PRED_MAX_VAL - ISAR_SPLIT_REND_PRED_MIN_VAL ) / ( ISAR_SPLIT_REND_ROLL_PRED_QUANT_PNTS - 1 ))
#define ISAR_SPLIT_REND_PRED_ROLL_1BYQ_STEP     (( ISAR_SPLIT_REND_ROLL_PRED_QUANT_PNTS - 1 )/( ISAR_SPLIT_REND_PRED_MAX_VAL - ISAR_SPLIT_REND_PRED_MIN_VAL )) 
#define ISAR_SPLIT_REND_PRED31_Q_STEP           (( ISAR_SPLIT_REND_PRED_MAX_VAL - ISAR_SPLIT_REND_PRED_MIN_VAL ) / ( IVAS_SPLIT_REND_PRED_31QUANT_PNTS - 1 ))
#define ISAR_SPLIT_REND_PRED31_1BYQ_STEP        (( IVAS_SPLIT_REND_PRED_31QUANT_PNTS - 1 )/( ISAR_SPLIT_REND_PRED_MAX_VAL - ISAR_SPLIT_REND_PRED_MIN_VAL )) 
#define ISAR_SPLIT_REND_PRED63_Q_STEP           (( ISAR_SPLIT_REND_PRED_MAX_VAL - ISAR_SPLIT_REND_PRED_MIN_VAL ) / ( ISAR_SPLIT_REND_PRED_63QUANT_PNTS - 1 ))
#define ISAR_SPLIT_REND_PRED63_1BYQ_STEP        (( ISAR_SPLIT_REND_PRED_63QUANT_PNTS - 1 )/( ISAR_SPLIT_REND_PRED_MAX_VAL - ISAR_SPLIT_REND_PRED_MIN_VAL )) 

#define ISAR_SPLIT_REND_D_Q_STEP                (( ISAR_SPLIT_REND_D_MAX_VAL - ISAR_SPLIT_REND_D_MIN_VAL ) / ( ISAR_SPLIT_REND_D_QUANT_PNTS - 1 ))
#define ISAR_SPLIT_REND_D_1BYQ_STEP             (( ISAR_SPLIT_REND_D_QUANT_PNTS - 1 )/( ISAR_SPLIT_REND_D_MAX_VAL - ISAR_SPLIT_REND_D_MIN_VAL )) 
#define ISAR_SPLIT_REND_PITCH_G_Q_STEP          (( ISAR_SPLIT_REND_PITCH_G_MAX_VAL - ISAR_SPLIT_REND_PITCH_G_MIN_VAL ) / ( ISAR_SPLIT_REND_PITCH_G_QUANT_PNTS - 1 ))
#define ISAR_SPLIT_REND_PITCH_G_1BYQ_STEP       (( ISAR_SPLIT_REND_PITCH_G_QUANT_PNTS - 1 )/( ISAR_SPLIT_REND_PITCH_G_MAX_VAL - ISAR_SPLIT_REND_PITCH_G_MIN_VAL )) 

#define ISAR_SPLIT_REND_MAX_NUM_BYTES           4000
#define ISAR_SPLIT_REND_HEAD_POSE_BITS          9
#define ISAR_SPLIT_REND_DOF_BITS                2
#define ISAR_SPLIT_REND_HQ_MODE_BITS            1
#define ISAR_SPLIT_REND_ROT_AXIS_BITS           3
#endif

+9 −35
Original line number Diff line number Diff line
@@ -117,21 +117,6 @@ void isar_log_cldfb2wav_data(
    const char *filename );
#endif

void isar_SplitRenderer_GetRotMd(
    ISAR_BIN_HR_SPLIT_PRE_REND_HANDLE hBinHrSplitPreRend, /* i/o: binaural renderer handle        */
    MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData,
    float Cldfb_RealBuffer_Ref_Binaural[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* o  : Reference Binaural signals      */
    float Cldfb_ImagBuffer_Ref_Binaural[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* o  : Reference Binaural signals      */
    const int16_t low_res,
    const int16_t ro_md_flag );

void isar_SplitRenderer_PostRenderer(
    ISAR_BIN_HR_SPLIT_POST_REND_HANDLE hBinPostRenderer, /* i/o: binaural renderer handle        */
    MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData,
    float Cldfb_RealBuffer_Ref_Binaural[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o  : Reference/out Binaural signals */
    float Cldfb_ImagBuffer_Ref_Binaural[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o  : Reference/out Binaural signals */
    const IVAS_QUATERNION Quaternion_act );

void isar_splitBinLCLDDecProcess(
    ISAR_BIN_HR_SPLIT_LCLD_DEC_HANDLE hSplitBinLCLDDec,
    ISAR_SPLIT_REND_BITS_HANDLE pBits,
@@ -177,15 +162,15 @@ void isar_SplitRenderer_getdiagdiff(

void isar_split_rend_get_quant_params(
    const int16_t num_md_bands,
    int16_t pred_real_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_imag_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_quant_pnts_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    float pred_quantstep_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    float pred_1byquantstep_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t d_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t bands_pitch[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_real_bands_roll[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_imag_bands_roll[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_real_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_imag_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_quant_pnts_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    float pred_quantstep_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    float pred_1byquantstep_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t d_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t bands_pitch[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_real_bands_roll[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_imag_bands_roll[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t *num_quant_strats,
    int16_t *num_complex_bands );

@@ -232,17 +217,6 @@ void isar_renderSplitGetMultiBinPoseData(
    MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData,
    const ISAR_SPLIT_REND_ROT_AXIS rot_axis );

void isar_rend_CldfbSplitPreRendProcess(
    const ISAR_BIN_HR_SPLIT_PRE_REND_HANDLE hBinHrSplitPreRend,
    const IVAS_QUATERNION headPosition,
    MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData,
    float Cldfb_In_BinReal[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
    float Cldfb_In_BinImag[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX],
    ISAR_SPLIT_REND_BITS_HANDLE pBits,
    const int32_t target_md_bits,
    const int16_t low_res_pre_rend_rot,
    const int16_t ro_md_flag );

void isar_init_split_post_rend_handles(
    ISAR_SPLIT_POST_REND_WRAPPER *hSplitRendWrapper );

+30 −19
Original line number Diff line number Diff line
@@ -46,6 +46,17 @@
#endif
#include "wmc_auto.h"

/*---------------------------------------------------------------------*
 * Local function declarations
 *---------------------------------------------------------------------*/

static void isar_SplitRenderer_PostRenderer(
    ISAR_BIN_HR_SPLIT_POST_REND_HANDLE hBinPostRenderer, /* i/o: binaural renderer handle        */
    MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData,
    float Cldfb_RealBuffer_Ref_Binaural[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o  : Reference/out Binaural signals */
    float Cldfb_ImagBuffer_Ref_Binaural[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o  : Reference/out Binaural signals */
    const IVAS_QUATERNION Quaternion_act );


/*-------------------------------------------------------------------------
 * isar_splitBinPostRendOpen()
@@ -263,18 +274,18 @@ static void ivas_split_rend_unquant_md(
    }
    else if ( pose_type == COM_GAIN_ONLY )
    {
        gd_idx_min = (int16_t) roundf( IVAS_SPLIT_REND_D_1BYQ_STEP * IVAS_SPLIT_REND_D_MIN_VAL );
        gd_idx_min = (int16_t) roundf( ISAR_SPLIT_REND_D_1BYQ_STEP * ISAR_SPLIT_REND_D_MIN_VAL );
        hMd->gd_idx += gd_idx_min;
        hMd->gd = hMd->gd_idx * IVAS_SPLIT_REND_D_Q_STEP;
        hMd->gd = hMd->gd_idx * ISAR_SPLIT_REND_D_Q_STEP;
    }
    else if ( pose_type == LR_GAIN_ONLY )
    {
        gd_idx_min = (int16_t) roundf( IVAS_SPLIT_REND_PITCH_G_1BYQ_STEP * IVAS_SPLIT_REND_PITCH_G_MIN_VAL );
        gd_idx_min = (int16_t) roundf( ISAR_SPLIT_REND_PITCH_G_1BYQ_STEP * ISAR_SPLIT_REND_PITCH_G_MIN_VAL );
        hMd->gd_idx += gd_idx_min;
        hMd->gd = hMd->gd_idx * IVAS_SPLIT_REND_PITCH_G_Q_STEP;
        hMd->gd = hMd->gd_idx * ISAR_SPLIT_REND_PITCH_G_Q_STEP;

        hMd->gd2_idx += gd_idx_min;
        hMd->gd2 = hMd->gd2_idx * IVAS_SPLIT_REND_PITCH_G_Q_STEP;
        hMd->gd2 = hMd->gd2_idx * ISAR_SPLIT_REND_PITCH_G_Q_STEP;
    }
    else
    {
@@ -560,14 +571,14 @@ void isar_splitBinPostRendMdDec(
)
{
    int16_t pos_idx, b, sf_idx, num_subframes, ch1;
    int16_t pred_real_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS], pred_real_bands_roll[IVAS_SPLIT_REND_NUM_QUANT_STRATS];
    int16_t pred_imag_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS], pred_imag_bands_roll[IVAS_SPLIT_REND_NUM_QUANT_STRATS];
    int16_t d_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS], bands_pitch[IVAS_SPLIT_REND_NUM_QUANT_STRATS];
    int16_t pred_real_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS], pred_real_bands_roll[ISAR_SPLIT_REND_NUM_QUANT_STRATS];
    int16_t pred_imag_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS], pred_imag_bands_roll[ISAR_SPLIT_REND_NUM_QUANT_STRATS];
    int16_t d_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS], bands_pitch[ISAR_SPLIT_REND_NUM_QUANT_STRATS];
    int16_t num_complex_bands, num_quant_strats;
    int32_t quant_strat_bits, is_huff_coding, quant_strat;
    int16_t pred_quant_pnts_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS];
    float pred_1byquantstep_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS];
    float pred_quantstep_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS];
    int16_t pred_quant_pnts_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS];
    float pred_1byquantstep_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS];
    float pred_quantstep_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS];
#ifdef SPLIT_REND_WITH_HEAD_ROT_DEBUG
    int16_t ch1, ch2;
#endif
@@ -577,8 +588,8 @@ void isar_splitBinPostRendMdDec(

    hBinHrSplitPostRend->low_Res = 1;

    split_rend_config.dof = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, IVAS_SPLIT_REND_DOF_BITS );
    split_rend_config.hq_mode = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, IVAS_SPLIT_REND_HQ_MODE_BITS );
    split_rend_config.dof = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, ISAR_SPLIT_REND_DOF_BITS );
    split_rend_config.hq_mode = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, ISAR_SPLIT_REND_HQ_MODE_BITS );
    rot_axis = (ISAR_SPLIT_REND_ROT_AXIS) ISAR_SPLIT_REND_BITStream_read_int32( pBits, ISAR_SPLIT_REND_ROT_AXIS_BITS );

    isar_renderSplitGetMultiBinPoseData( &split_rend_config, pMultiBinPoseData, rot_axis );
@@ -593,15 +604,15 @@ void isar_splitBinPostRendMdDec(

        hBinHrSplitPostRend->QuaternionsPre[sf_idx].w = -3.0f;

        angle = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, IVAS_SPLIT_REND_HEAD_POSE_BITS );
        angle = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, ISAR_SPLIT_REND_HEAD_POSE_BITS );
        angle -= 180;
        hBinHrSplitPostRend->QuaternionsPre[sf_idx].x = (float) angle;

        angle = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, IVAS_SPLIT_REND_HEAD_POSE_BITS );
        angle = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, ISAR_SPLIT_REND_HEAD_POSE_BITS );
        angle -= 180;
        hBinHrSplitPostRend->QuaternionsPre[sf_idx].y = (float) angle;

        angle = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, IVAS_SPLIT_REND_HEAD_POSE_BITS );
        angle = (int16_t) ISAR_SPLIT_REND_BITStream_read_int32( pBits, ISAR_SPLIT_REND_HEAD_POSE_BITS );
        angle -= 180;
        hBinHrSplitPostRend->QuaternionsPre[sf_idx].z = (float) angle;
    }
@@ -812,12 +823,12 @@ void isar_splitBinPostRendMdDec(
                for ( b = 0; b < pred_imag_bands_roll[quant_strat]; b++ )
                {
                    hMd = &hBinHrSplitPostRend->rot_md[pos_idx][sf_idx][b];
                    ivas_split_rend_unquant_md( hMd, PRED_ROLL_ONLY, 0, hBinHrSplitPostRend->fix_pos_rot_mat[pos_idx], IVAS_SPLIT_REND_PRED_ROLL_Q_STEP );
                    ivas_split_rend_unquant_md( hMd, PRED_ROLL_ONLY, 0, hBinHrSplitPostRend->fix_pos_rot_mat[pos_idx], ISAR_SPLIT_REND_PRED_ROLL_Q_STEP );
                }
                for ( ; b < pred_real_bands_roll[quant_strat]; b++ )
                {
                    hMd = &hBinHrSplitPostRend->rot_md[pos_idx][sf_idx][b];
                    ivas_split_rend_unquant_md( hMd, PRED_ROLL_ONLY, 1, hBinHrSplitPostRend->fix_pos_rot_mat[pos_idx], IVAS_SPLIT_REND_PRED_ROLL_Q_STEP );
                    ivas_split_rend_unquant_md( hMd, PRED_ROLL_ONLY, 1, hBinHrSplitPostRend->fix_pos_rot_mat[pos_idx], ISAR_SPLIT_REND_PRED_ROLL_Q_STEP );
                }
                for ( ; b < MAX_SPLIT_REND_MD_BANDS; b++ )
                {
@@ -1339,7 +1350,7 @@ static void interpolate_rend_md(
 *
 *-----------------------------------------------------------------------------------------*/

void isar_SplitRenderer_PostRenderer(
static void isar_SplitRenderer_PostRenderer(
    ISAR_BIN_HR_SPLIT_POST_REND_HANDLE hBinPostRenderer, /* i/o: binaural renderer handle    */
    MULTI_BIN_REND_POSE_DATA *pMultiBinPoseData,
    float Cldfb_RealBuffer_Ref_Binaural[][CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o  : Reference/out Binaural signals */
+59 −36

File changed.

Preview size limit exceeded, changes collapsed.

+14 −14
Original line number Diff line number Diff line
@@ -804,32 +804,32 @@ ivas_error isar_split_rend_validate_config(

void isar_split_rend_get_quant_params(
    const int16_t num_md_bands,
    int16_t pred_real_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_imag_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_quant_pnts_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    float pred_quantstep_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    float pred_1byquantstep_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t d_bands_yaw[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t bands_pitch[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_real_bands_roll[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_imag_bands_roll[IVAS_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_real_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_imag_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_quant_pnts_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    float pred_quantstep_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    float pred_1byquantstep_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t d_bands_yaw[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t bands_pitch[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_real_bands_roll[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t pred_imag_bands_roll[ISAR_SPLIT_REND_NUM_QUANT_STRATS],
    int16_t *num_quant_strats,
    int16_t *num_complex_bands )
{
    int16_t q;

    *num_quant_strats = IVAS_SPLIT_REND_NUM_QUANT_STRATS;
    *num_quant_strats = ISAR_SPLIT_REND_NUM_QUANT_STRATS;
    *num_complex_bands = COMPLEX_MD_BAND_THRESH_LOW;
    assert( *num_complex_bands <= num_md_bands );

    pred_quant_pnts_yaw[0] = ISAR_SPLIT_REND_PRED_63QUANT_PNTS;
    pred_quantstep_yaw[0] = IVAS_SPLIT_REND_PRED63_Q_STEP;
    pred_1byquantstep_yaw[0] = IVAS_SPLIT_REND_PRED63_1BYQ_STEP;
    pred_quantstep_yaw[0] = ISAR_SPLIT_REND_PRED63_Q_STEP;
    pred_1byquantstep_yaw[0] = ISAR_SPLIT_REND_PRED63_1BYQ_STEP;
    for ( q = 1; q < *num_quant_strats; q++ )
    {
        pred_quant_pnts_yaw[q] = IVAS_SPLIT_REND_PRED_31QUANT_PNTS;
        pred_quantstep_yaw[q] = IVAS_SPLIT_REND_PRED31_Q_STEP;
        pred_1byquantstep_yaw[q] = IVAS_SPLIT_REND_PRED31_1BYQ_STEP;
        pred_quantstep_yaw[q] = ISAR_SPLIT_REND_PRED31_Q_STEP;
        pred_1byquantstep_yaw[q] = ISAR_SPLIT_REND_PRED31_1BYQ_STEP;
    }

    for ( q = 0; q < *num_quant_strats; q++ )