Commit df149924 authored by TYAGIRIS's avatar TYAGIRIS
Browse files

address review comments

parent 390eec42
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@
  <ItemGroup>
    <ClCompile Include="..\lib_isar\isar_lcld_decoder.c" />
    <ClCompile Include="..\lib_isar\isar_lcld_encoder.c" />
    <ClCompile Include="..\lib_isar\isar_lcld_rom_tables.c" />
    <ClCompile Include="..\lib_isar\isar_rom_lcld_tables.c" />
    <ClCompile Include="..\lib_isar\isar_splitRend_lcld_enc.c" />
    <ClCompile Include="..\lib_isar\isar_splitRend_lcld_dec.c" />
    <ClCompile Include="..\lib_isar\isar_lc3plus_common.c" />
@@ -164,7 +164,8 @@
    <ClInclude Include="..\lib_isar\isar_lcld_prot.h" />
    <ClInclude Include="..\lib_isar\isar_prot.h" />
    <ClInclude Include="..\lib_isar\isar_stat.h" />
    <ClInclude Include="..\lib_isar\isar_lcld_rom_tables.h" />
    <ClInclude Include="..\lib_isar\isar_cnst.h" />
    <ClInclude Include="..\lib_isar\isar_rom_lcld_tables.h" />
    <ClInclude Include="..\lib_isar\isar_lc3plus_common.h" />
    <ClInclude Include="..\lib_isar\isar_lc3plus_dec.h" />
    <ClInclude Include="..\lib_isar\isar_lc3plus_enc.h" />
+0 −91
Original line number Diff line number Diff line
@@ -123,14 +123,6 @@ typedef enum
    RENDERER_OMASA_MIX_EXT
} RENDERER_TYPE;

#ifdef SPLIT_REND_WITH_HEAD_ROT
typedef enum
{
    PCM_INT16,
    PCM_FLOAT32,
    PCM_NOT_KNOW = 0xffff
} PCM_RESOLUTION;
#endif

/*----------------------------------------------------------------------------------*
 * IVAS general constants
@@ -1483,18 +1475,6 @@ typedef enum
    EFAP_DMX_INTENSITY
} EFAP_VTX_DMX_TYPE;

#ifdef SPLIT_REND_WITH_HEAD_ROT
typedef enum
{
    ANY_YAW,
    PITCH_ONLY,
    ANY_ROLL,
    PRED_ONLY,
    PRED_ROLL_ONLY,
    COM_GAIN_ONLY,
    LR_GAIN_ONLY
} ISAR_SPLIT_REND_POSE_TYPE;
#endif

#define VBAP_NUM_SEARCH_SECTORS                 4

@@ -1537,64 +1517,6 @@ typedef enum
#define HEADROT_SHMAT_DIM2                      ( HEADROT_SHMAT_DIM * HEADROT_SHMAT_DIM )


#ifdef SPLIT_REND_WITH_HEAD_ROT
/*----------------------------------------------------------------------------------*
 * Split Binaural Rendering Constants
 *----------------------------------------------------------------------------------*/

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

#define SPLIT_REND_DECOR_ALPHA                  0.25f

#define SPLIT_REND_MAX_YAW_ONLY_POSES           2
#define SPLIT_REND_MAX_PITCH_ONLY_POSES         2
#define SPLIT_REND_MAX_ROLL_ONLY_POSES          2
#define SPLIT_REND_MAX_ONE_AXIS_MD_POSES        2
#define MAX_EXTRAPOLATION_ANGLE                 15.0f /* this means additional 15 degrees can be extrapolated on top of MD probing poses*/

#define SPLIT_REND_MAX_DOF                      3

#define MAX_HEAD_ROT_POSES                      (2 + SPLIT_REND_MAX_YAW_ONLY_POSES + SPLIT_REND_MAX_PITCH_ONLY_POSES + SPLIT_REND_MAX_ROLL_ONLY_POSES)
#define MAX_SPLIT_REND_MD_BANDS                 20
#define MAX_SPLIT_MD_SUBFRAMES                  1
#define COMPLEX_MD_BAND_THRESH                  MAX_SPLIT_REND_MD_BANDS
#define COMPLEX_MD_BAND_THRESH_LOW              5
#define SPLIT_REND_RO_MD_BAND_THRESH            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 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


/*----------------------------------------------------------------------------------*
 * TD Binaural Object renderer
 *----------------------------------------------------------------------------------*/
@@ -1798,19 +1720,6 @@ typedef enum
#define QUANT_STRAT_0                           0
#define QUANT_STRAT_2                           2

#ifdef SPLIT_REND_WITH_HEAD_ROT
/*----------------------------------------------------------------------------------*
 * Split rendering bitrate constants
 *----------------------------------------------------------------------------------*/

#define SPLIT_REND_256k                         256000
#define SPLIT_REND_320k                         320000
#define SPLIT_REND_384k                         384000
#define SPLIT_REND_512k                         512000
#define SPLIT_REND_768k                         768000
#define SPLIT_REND_MAX_BRATE                    SPLIT_REND_768k

#endif

/*----------------------------------------------------------------------------------*
 * Limiter constants
+4 −4
Original line number Diff line number Diff line
@@ -90,7 +90,7 @@ static ivas_error ivas_dec_reconfig_split_rend(
        cldfb_in_flag = 1;
    }

    isar_pre_rend_GetMultiBinPoseData( &st_ivas->hRenderConfig->split_rend_config, &hSplitRendWrapper->multiBinPoseData, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->sr_pose_pred_axis : DEFAULT_AXIS );
    ISAR_PRE_REND_GetMultiBinPoseData( &st_ivas->hRenderConfig->split_rend_config, &hSplitRendWrapper->multiBinPoseData, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->sr_pose_pred_axis : DEFAULT_AXIS );

    isCldfbNeeded = 0;

@@ -219,7 +219,7 @@ static ivas_error ivas_dec_init_split_rend(
        cldfb_in_flag = 1;
    }

    isar_pre_rend_GetMultiBinPoseData( &st_ivas->hRenderConfig->split_rend_config, &st_ivas->hSplitBinRend.splitrend.multiBinPoseData, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->sr_pose_pred_axis : DEFAULT_AXIS );
    ISAR_PRE_REND_GetMultiBinPoseData( &st_ivas->hRenderConfig->split_rend_config, &st_ivas->hSplitBinRend.splitrend.multiBinPoseData, ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->sr_pose_pred_axis : DEFAULT_AXIS );

    if ( cldfb_in_flag == 1 && ( st_ivas->hSplitBinRend.splitrend.multiBinPoseData.poseCorrectionMode == ISAR_SPLIT_REND_POSE_CORRECTION_MODE_NONE ) )
    {
@@ -236,7 +236,7 @@ static ivas_error ivas_dec_init_split_rend(
        mixed_td_cldfb_flag = 1;
    }

    error = isar_pre_rend_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize, mixed_td_cldfb_flag );
    error = ISAR_PRE_REND_open( &st_ivas->hSplitBinRend.splitrend, &st_ivas->hRenderConfig->split_rend_config, st_ivas->hDecoderConfig->output_Fs, cldfb_in_flag, pcm_out_flag, (int16_t) st_ivas->hDecoderConfig->render_framesize, mixed_td_cldfb_flag );
    return error;
}
#endif
@@ -2674,7 +2674,7 @@ void ivas_destroy_dec(

#ifdef SPLIT_REND_WITH_HEAD_ROT
    /* Split binaural renderer handle */
    isar_pre_rend_close( &st_ivas->hSplitBinRend.splitrend, NULL );
    ISAR_PRE_REND_close( &st_ivas->hSplitBinRend.splitrend, NULL );

    for ( i = 0; i < MAX_HEAD_ROT_POSES - 1; ++i )
    {
+3 −4
Original line number Diff line number Diff line
@@ -277,7 +277,7 @@ static ivas_error isar_set_split_rend_setup(
        return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for split rendering structure" );
    }

    isar_pre_rend_GetMultiBinPoseData( hSplitBinConfig, &hSplitBinRend->splitrend.multiBinPoseData, ( hCombinedOrientationData != NULL ) ? hCombinedOrientationData->sr_pose_pred_axis : DEFAULT_AXIS );
    ISAR_PRE_REND_GetMultiBinPoseData( hSplitBinConfig, &hSplitBinRend->splitrend.multiBinPoseData, ( hCombinedOrientationData != NULL ) ? hCombinedOrientationData->sr_pose_pred_axis : DEFAULT_AXIS );

    isar_set_split_rend_ht_setup( &hSplitBinRend->splitrend, hCombinedOrientationData );

@@ -1223,7 +1223,7 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream(
        Quaternion.y = 0.0f;
        Quaternion.z = 0.0f;
    }
    if ( ( error = isar_pre_rend_MultiBinToSplitBinaural( &hSplitBinRend->splitrend,
    if ( ( error = ISAR_PRE_REND_MultiBinToSplitBinaural( &hSplitBinRend->splitrend,
                                                          Quaternion,
                                                          st_ivas->hRenderConfig->split_rend_config.splitRendBitRate,
                                                          st_ivas->hRenderConfig->split_rend_config.codec,
@@ -3748,10 +3748,9 @@ ivas_error IVAS_DEC_GetSplitRendBitstreamHeader(
/*---------------------------------------------------------------------*
 * IVAS_DEC_GetCldfbSamples()
 *
 *
 * API function to output CLDFB samples
 *---------------------------------------------------------------------*/

// ToDo: currently unused
ivas_error IVAS_DEC_GetCldfbSamples(
    IVAS_DEC_HANDLE hIvasDec,   /* i/o: IVAS decoder handle                                    */
    float *out_real,            /* o  : buffer for decoded PCM real output in CLDFB domain     */
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@
#include "options.h"
#include <stdint.h>
#ifdef SPLIT_REND_WITH_HEAD_ROT
#include "isar_lcld_rom_tables.h"
#include "isar_rom_lcld_tables.h"
#include "isar_lcld_prot.h"
#include "isar_prot.h"
#include "wmc_auto.h"
Loading