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

ivas sce, cpe modules converted to fixed point.

[x] There is a Macro IVAS_FLOAT_FIXED_TO_BE_REMOVED
defined in ivas_sce_dec_fx.c & ivas_cpe_dec_fx.c, it is
for computation happening in floating point. This macro
and code active under this is to be removed once the
intermediate conversions to float are not required.
parent 56540968
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -279,6 +279,7 @@
    <ClCompile Include="..\lib_dec\ivas_corecoder_dec_reconfig.c" />
    <ClCompile Include="..\lib_dec\ivas_core_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_cpe_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_cpe_dec_fx.c" />
    <ClCompile Include="..\lib_dec\ivas_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_decision_matrix_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_dirac_dec.c" />
@@ -319,6 +320,7 @@
    <ClCompile Include="..\lib_dec\ivas_sba_dirac_stereo_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_sba_rendering_internal.c" />
    <ClCompile Include="..\lib_dec\ivas_sce_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_sce_dec_fx.c" />
    <ClCompile Include="..\lib_dec\ivas_sns_dec_fx.c" />
    <ClCompile Include="..\lib_dec\ivas_spar_decoder.c" />
    <ClCompile Include="..\lib_dec\ivas_spar_md_dec.c" />
+7 −1
Original line number Diff line number Diff line
@@ -818,6 +818,12 @@
    <ClCompile Include="..\lib_dec\lib_dec_fx.c">
      <Filter>decoder_all_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\ivas_sce_dec_fx.c">
      <Filter>decoder_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\ivas_cpe_dec_fx.c">
      <Filter>decoder_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\ivas_lfe_dec_fx.c">
      <Filter>decoder_ivas_c</Filter>
    </ClCompile>
+4 −0
Original line number Diff line number Diff line
@@ -321,6 +321,7 @@ ivas_error ivas_dec_setup(
    int16_t *data                                               /* o  : output synthesis signal                 */
);

#ifndef IVAS_FLOAT_FIXED
ivas_error create_sce_dec(
    Decoder_Struct *st_ivas,                                    /* i/o: IVAS decoder structure                  */
    const int16_t cpe_id,                                       /* i  : SCE # identifier                        */
@@ -332,6 +333,7 @@ ivas_error create_cpe_dec(
    const int16_t cpe_id,                                       /* i  : CPE # identifier                        */
    const int32_t element_brate                                 /* i  : element bitrate                         */
);
#endif // !IVAS_FLOAT_FIXED

ivas_error create_mct_dec(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder handle                     */
@@ -342,6 +344,7 @@ ivas_error mct_dec_reconfigure(
    const uint16_t b_nchan_change                               /* i  : flag indicating different channel count */
);

#ifndef IVAS_FLOAT_FIXED
void destroy_sce_dec(
    SCE_DEC_HANDLE hSCE                                         /* i/o: SCE decoder structure                   */
);
@@ -349,6 +352,7 @@ void destroy_sce_dec(
void destroy_cpe_dec(
    CPE_DEC_HANDLE hCPE                                         /* i/o: CPE decoder structure                   */
);
#endif // IVAS_FLOAT_FIXED

void ivas_mct_dec_close(
    MCT_DEC_HANDLE *hMCT                                        /* i/o: MCT decoder structure                   */
+42 −1
Original line number Diff line number Diff line
@@ -490,6 +490,47 @@ void ivas_ism_metadata_sid_dec_fx(
    Word16 nb_bits_metadata[]      /* o  : number of metadata bits     */
);

#ifdef IVAS_FLOAT_FIXED
// ivas_sce_dec_fx.c
ivas_error create_sce_dec(
    Decoder_Struct *st_ivas,   /* i/o: IVAS decoder structure                  */
    const Word16 cpe_id,       /* i  : SCE # identifier                        */
    const Word32 element_brate /* i  : element bitrate                         */
);

void destroy_sce_dec(
    SCE_DEC_HANDLE hSCE /* i/o: SCE decoder structure                   */
);

ivas_error ivas_sce_dec_fx(
    Decoder_Struct *st_ivas,      /* i/o: IVAS decoder structure              */
    const Word16 sce_id,          /* i  : SCE # identifier                    */
    Word32 *output[1],            /* o  : output synthesis signal             */
    const Word16 output_frame,    /* i  : output frame length per channel     */
    const Word16 nb_bits_metadata /* i  : number of metadata bits             */
);

// ivas_cpe_dec_fx.c
ivas_error create_cpe_dec(
    Decoder_Struct *st_ivas,   /* i/o: IVAS decoder structure                  */
    const Word16 cpe_id,       /* i  : CPE # identifier                        */
    const Word32 element_brate /* i  : element bitrate                         */
);

void destroy_cpe_dec(
    CPE_DEC_HANDLE hCPE /* i/o: CPE decoder structure                   */
);

ivas_error ivas_cpe_dec_fx(
    Decoder_Struct *st_ivas,       /* i/o: IVAS decoder structure          */
    const Word16 cpe_id,           /* i  : CPE # identifier                */
    Word32 *output[CPE_CHANNELS],  /* o  : output synthesis signal         */
    const Word16 output_frame,     /* i  : output frame length per channel */
    const Word16 nb_bits_metadata, /* i  : number of metadata bits         */
    Word16 *q_output               /* i/o : Q of output synthesis signal         */
);
#endif

//ivas_lfe_dec_fx.c

void ivas_lfe_dec_close_fx(
+3 −0
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@
#include "options.h"
#include "ivas_cnst.h"
#include "ivas_prot.h"
#ifdef IVAS_FLOAT_FIXED
#include "ivas_prot_fx.h"
#endif // IVAS_FLOAT_FIXED
#include "prot.h"
#include <stdint.h>
#include "wmc_auto.h"
Loading