Commit fa85b99b authored by Jan Kiene's avatar Jan Kiene
Browse files

add complexity optimization for paramMC modes

parent 107d150c
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1351,6 +1351,9 @@ typedef enum
#define PARAM_MC_BAND_TO_MDCT_BAND_RATIO        16                          /* Ratio of resolution of CLDFB Bands to MDCT Bands */
#define PARAM_MC_SLOT_ENC_NS                    2500000L
#define PARAM_MC_MDFT_NO_SLOTS                  8
#ifdef PARAMMC_SHORT_ENC_MDFT
#define PARAM_MC_CLDFB_TO_MDFT_FAC              2
#endif

/*----------------------------------------------------------------------------------*
 * LFE Coding Constants
@@ -1561,6 +1564,9 @@ typedef enum
#define IVAS_320_PT_LEN                         320
#define IVAS_240_PT_LEN                         240
#define IVAS_160_PT_LEN                         160
#ifdef PARAMMC_SHORT_ENC_MDFT
#define IVAS_120_PT_LEN                         120
#endif
#define IVAS_80_PT_LEN                          80
#define IVAS_40_PT_LEN                          40

+4 −0
Original line number Diff line number Diff line
@@ -156,7 +156,11 @@ ivas_error ivas_fb_set_cfg(
    {
        pFb_cfg->fb_latency = NS2SA( sampling_rate, DELAY_FB_1_NS );
        pFb_cfg->fade_len = NS2SA( sampling_rate, DELAY_FB_1_NS );
#ifdef PARAMMC_SHORT_ENC_MDFT
        pFb_cfg->prior_input_length = NS2SA( sampling_rate, DELAY_DIRAC_ENC_CMP_NS ) + NS2SA( sampling_rate, PARAM_MC_SLOT_ENC_NS );
#else
        pFb_cfg->prior_input_length = NS2SA( sampling_rate, DELAY_DIRAC_ENC_CMP_NS ) + 3 * NS2SA( sampling_rate, PARAM_MC_SLOT_ENC_NS );
#endif
    }

    *pFb_cfg_out = pFb_cfg;
+5 −0
Original line number Diff line number Diff line
@@ -82,6 +82,11 @@ static void ivas_get_mdft_twid_factors(
        case IVAS_160_PT_LEN:
            *ppTwid = &ivas_mdft_coeff_cos_twid_160[0];
            break;
#ifdef PARAMMC_SHORT_ENC_MDFT
        case IVAS_120_PT_LEN:
            *ppTwid = &ivas_mdft_coeff_cos_twid_120[0];
            break;
#endif
        case IVAS_80_PT_LEN:
            *ppTwid = &ivas_mdft_coeff_cos_twid_80[0];
            break;
+24 −0
Original line number Diff line number Diff line
@@ -3980,6 +3980,30 @@ const float ivas_cos_twiddle_160[IVAS_160_PT_LEN >> 1] =
    0.0760120586092433f,   0.0564205163668375f,   0.0368072229413588f,   0.0171797396307788f
};

#ifdef PARAMMC_SHORT_ENC_MDFT
const float ivas_mdft_coeff_cos_twid_120[IVAS_120_PT_LEN + 1] =
{
    1.0000000000f, 0.9999143276f, 0.9996573250f, 0.9992290362f, 0.9986295348f, 0.9978589232f, 0.9969173337f, 
    0.9958049276f, 0.9945218954f, 0.9930684570f, 0.9914448614f, 0.9896513868f, 0.9876883406f, 0.9855560591f, 
    0.9832549076f, 0.9807852804f, 0.9781476007f, 0.9753423205f, 0.9723699204f, 0.9692309097f, 0.9659258263f, 
    0.9624552365f, 0.9588197349f, 0.9550199445f, 0.9510565163f, 0.9469301295f, 0.9426414911f, 0.9381913359f, 
    0.9335804265f, 0.9288095529f, 0.9238795325f, 0.9187912101f, 0.9135454576f, 0.9081431738f, 0.9025852843f, 
    0.8968727415f, 0.8910065242f, 0.8849876375f, 0.8788171127f, 0.8724960071f, 0.8660254038f, 0.8594064115f, 
    0.8526401644f, 0.8457278217f, 0.8386705679f, 0.8314696123f, 0.8241261886f, 0.8166415552f, 0.8090169944f, 
    0.8012538127f, 0.7933533403f, 0.7853169309f, 0.7771459615f, 0.7688418321f, 0.7604059656f, 0.7518398075f, 
    0.7431448255f, 0.7343225094f, 0.7253743710f, 0.7163019434f, 0.7071067812f, 0.6977904598f, 0.6883545757f, 
    0.6788007455f, 0.6691306064f, 0.6593458151f, 0.6494480483f, 0.6394390020f, 0.6293203910f, 0.6190939493f, 
    0.6087614290f, 0.5983246006f, 0.5877852523f, 0.5771451900f, 0.5664062369f, 0.5555702330f, 0.5446390350f, 
    0.5336145159f, 0.5224985647f, 0.5112930861f, 0.5000000000f, 0.4886212415f, 0.4771587603f, 0.4656145203f, 
    0.4539904997f, 0.4422886902f, 0.4305110968f, 0.4186597375f, 0.4067366431f, 0.3947438564f, 0.3826834324f, 
    0.3705574375f, 0.3583679495f, 0.3461170571f, 0.3338068592f, 0.3214394653f, 0.3090169944f, 0.2965415750f, 
    0.2840153447f, 0.2714404499f, 0.2588190451f, 0.2461532930f, 0.2334453639f, 0.2206974350f, 0.2079116908f, 
    0.1950903220f, 0.1822355255f, 0.1693495038f, 0.1564344650f, 0.1434926220f, 0.1305261922f, 0.1175373975f, 
    0.1045284633f, 0.0915016187f, 0.0784590957f, 0.0654031292f, 0.0523359562f, 0.0392598158f, 0.0261769483f, 
    0.0130895956f, 0.0000000000f 
};
#endif

const float ivas_sin_twiddle_80[IVAS_80_PT_LEN >> 1] = 
{
    -0.00490871880799799f,  -0.0441642771270674f,   -0.0833517373318975f,   -0.122410675199216f,
+3 −0
Original line number Diff line number Diff line
@@ -364,6 +364,9 @@ extern const float ivas_cos_twiddle_80[IVAS_80_PT_LEN >> 1];

extern const float ivas_mdft_coeff_cos_twid_240[IVAS_240_PT_LEN + 1];
extern const float ivas_mdft_coeff_cos_twid_160[IVAS_160_PT_LEN + 1];
#ifdef PARAMMC_SHORT_ENC_MDFT
extern const float ivas_mdft_coeff_cos_twid_120[IVAS_120_PT_LEN + 1];
#endif
extern const float ivas_mdft_coeff_cos_twid_80[IVAS_80_PT_LEN + 1];
extern const float ivas_mdft_coeff_cos_twid_40[IVAS_40_PT_LEN + 1];
extern const float ivas_mdft_coeff_cos_twid_960[IVAS_960_PT_LEN + 1];
Loading