Commit 5f8f40fe authored by PLAINSI's avatar PLAINSI
Browse files

Merge branch 'dlb_mc_160kbps' into 'main'

[Non-BE] DLB Contribution 39: DLB Multichannel Parametric Upmix

See merge request !532
parents 4f09f8bc 36dcb306
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -290,6 +290,7 @@
    <ClCompile Include="..\lib_dec\ivas_mct_core_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mct_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mct_dec_mct.c" />
    <ClCompile Include="..\lib_dec\ivas_mc_paramupmix_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mc_param_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mdct_core_dec.c" />
    <ClCompile Include="..\lib_dec\ivas_mono_dmx_renderer.c" />
+3 −0
Original line number Diff line number Diff line
@@ -518,6 +518,9 @@
    <ClCompile Include="..\lib_dec\ivas_ism_dec.c">
      <Filter>dec_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_dec\ivas_mc_paramupmix_dec.c">
      <Filter>dec_ivas_c</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_dec\jbm_jb4_inputbuffer.h">
+1 −0
Original line number Diff line number Diff line
@@ -213,6 +213,7 @@
    <ClCompile Include="..\lib_enc\ivas_entropy_coder.c" />
    <ClCompile Include="..\lib_enc\ivas_ism_dtx_enc.c" />
    <ClCompile Include="..\lib_enc\ivas_lfe_enc.c" />
    <ClCompile Include="..\lib_enc\ivas_mc_paramupmix_enc.c" />
    <ClCompile Include="..\lib_enc\ivas_mc_param_enc.c" />
    <ClCompile Include="..\lib_enc\ivas_pca_enc.c" />
    <ClCompile Include="..\lib_enc\ivas_range_uni_enc.c" />
+3 −0
Original line number Diff line number Diff line
@@ -587,6 +587,9 @@
    <ClCompile Include="..\lib_enc\ivas_ism_dtx_enc.c">
      <Filter>enc_ivas_c</Filter>
    </ClCompile>
    <ClCompile Include="..\lib_enc\ivas_mc_paramupmix_enc.c">
      <Filter>enc_ivas_c</Filter>
    </ClCompile>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\lib_enc\ivas_stat_enc.h">
+56 −0
Original line number Diff line number Diff line
@@ -1261,7 +1261,12 @@ typedef enum
    MC_MODE_NONE,
    MC_MODE_MCT,
    MC_MODE_PARAMMC,
#ifndef MC_PARAMUPMIX_MODE
    MC_MODE_MCMASA
#else
    MC_MODE_MCMASA,
    MC_MODE_PARAMUPMIX
#endif
} MC_MODE;

typedef enum
@@ -1321,6 +1326,57 @@ typedef enum
    MCT_CHAN_MODE_IGNORE
} MCT_CHAN_MODE;

#ifdef MC_PARAMUPMIX_MODE
/*----------------------------------------------------------------------------------*
 * MC Param-Upmix Mode Constants
 *----------------------------------------------------------------------------------*/
#define MC_PARAMUPMIX_MAX_TRANSPORT_CHANS  8
#define MC_PARAMUPMIX_MAX_INPUT_CHANS      12
#define MC_PARAMUPMIX_MAX_BITS             1024        /* Maximum number of bits for the MC Param-Upmix metadata */
#define MC_PARAMUPMIX_COMBINATIONS         4           /* number of sets of 2 channels combined */
#define MC_PARAMUPMIX_NCH                  2           /* number of channels to combine into 1 */
#define MC_PARAMUPMIX_MIN_CLDFB            8

typedef struct {
    const int32_t *value;
    const uint16_t *length;
} HUFF_TAB;

typedef struct {
    int32_t value[81];
    unsigned short length[81];
} HUFF_ELEMENTS;

typedef struct {
    HUFF_ELEMENTS df0;
    HUFF_ELEMENTS df;
    HUFF_ELEMENTS dt;
} HUFF_TABLE;

typedef enum {
    ALPHA,
    BETA
} PAR_TYPE;

typedef enum {
    FINE,
    COARSE
} QUANT_TYPE;

typedef struct {
    int16_t nquant;
    int16_t offset;
    float data[35];
} ACPL_QUANT_TABLE;  

typedef struct
{
    const int16_t (*alpha[2])[2];
    const int16_t (*beta[2])[2];
} HUFF_NODE_TABLE;


#endif
/*----------------------------------------------------------------------------------*
 * Parametric MC Constants
 *----------------------------------------------------------------------------------*/
Loading