Commit 7db0bca5 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Few functions disabled in EVS for IVAS converted

[x] Below functions are converted to fixed point:
cldfbAnalysis
cldfbSynthesis
addBassPostFilter
core_switch_lb_upsamp
smoothTransitionDtxToTcx
parent 1a94c0b2
Loading
Loading
Loading
Loading
Loading
+523 −35

File changed.

Preview size limit exceeded, changes collapsed.

+24 −0
Original line number Diff line number Diff line
@@ -8021,4 +8021,28 @@ void bpf_pitch_coherence_fx(
    Decoder_State *st,       /* i/o: decoder state structure             */
    const Word32 pitch_buf[] /* i  : pitch for each subframe [0,1,2,3]   */
);

void cldfbAnalysis_ivas_fx(
    const Word32 *timeIn_fx,         /* i  : time buffer         Qx    */
    Word32 **realBuffer_fx,          /* o  : real value buffer   Qx - 5*/
    Word32 **imagBuffer_fx,          /* o  : imag value buffer   QX - 5*/
    const int16_t samplesToProcess,  /* i  : samples to process        */
    HANDLE_CLDFB_FILTER_BANK h_cldfb /* i  : filterbank state          */
);

void cldfbSynthesis_ivas_fx(
    Word32 **realBuffer_fx,          /* i  : real values                 Qx*/
    Word32 **imagBuffer_fx,          /* i  : imag values                 Qx*/
    Word32 *timeOut_fx,              /* o  : output time domain samples  Qx - 1*/
    const Word16 samplesToProcess,   /* i  : number of processed samples */
    HANDLE_CLDFB_FILTER_BANK h_cldfb /* i  : filter bank state           */
);

// bass_psfilter.c
void addBassPostFilter_fx(
    const Word32 *harm_timeIn_fx,
    const int16_t samplesToProcess,
    Word32 **rAnalysis_fx,
    Word32 **iAnalysis_fx,
    HANDLE_CLDFB_FILTER_BANK cldfb );
#endif
 No newline at end of file
+117 −0
Original line number Diff line number Diff line
@@ -9976,35 +9976,73 @@ const float rot_vec_syn_re_L10[5] =
    0.1117172025f,0.1048929802f,0.0878011021f,0.0621146404f,0.0303479649f,
};
/*Q31*/
const Word32 rot_vec_syn_re_L10_fx[5] =
{
    239910864 ,225255952 ,188551424 ,133390176 ,65171760 ,
};
const float rot_vec_syn_im_L10[5] =
{
    -0.0043893808f,-0.0386970634f,-0.0692168078f,-0.0929611287f,-0.1076057667f,
};
/*Q31*/
const Word32 rot_vec_syn_im_L10_fx[5] =
{
    -9426123 ,-83101312 ,-148641968 ,-199632496 ,-231081632 ,
};
const float rot_vec_syn_re_L16[8] =
{
    0.1117697258f,0.1090868144f,0.1022117580f,0.0914087610f,0.0770929766f,0.0598145523f,
    0.0402374883f,0.0191141202f,
};
/*Q31*/
const Word32 rot_vec_syn_re_L16_fx[8] =
{
    240023664 ,234262144 ,219498080 ,196298816 ,165555904 ,128450776 ,86409352 ,41047260 ,
};
const float rot_vec_syn_im_L16[8] =
{
    -0.0027437928f,-0.0244962633f,-0.0453073563f,-0.0643773129f,-0.0809732855f,-0.0944575001f,
    -0.1043117660f,-0.1101573893f,
};
/*Q31*/
const Word32 rot_vec_syn_im_L16_fx[8] =
{
    -5892250 ,-52605324 ,-97296808 ,-138249232 ,-173888800 ,-202845936 ,-224007808 ,-236561200 ,
};
const float rot_vec_syn_re_L20[10] =
{
    0.1117818477f,0.1100622363f,0.1056325273f,0.0986017949f,0.0891431591f,0.0774895228f,
    0.0639278374f,0.0487920364f,0.0324548136f,0.0153184455f,
};
/*Q31*/
const Word32 rot_vec_syn_re_L20_fx[10] =
{
    240049696 ,236356848 ,226844128 ,211745744 ,191433472 ,166407488 ,137283984 ,104780104 ,69696184 ,32896112 ,
};
const float rot_vec_syn_im_L20[10] =
{
    -0.0021951135f,-0.0196546216f,-0.0366301676f,-0.0527037574f,-0.0674796057f,-0.0805938822f,
    -0.0917236698f,-0.1005949163f,-0.1069891821f,-0.1107490191f,
};
/*Q31*/
const Word32 rot_vec_syn_im_L20_fx[10] =
{
    -4713971 ,-42207980 ,-78662688 ,-113180456 ,-144911344 ,-173074048 ,-196975088 ,-216025936 ,-229757520 ,-237831712 ,
};
const float rot_vec_syn_re_L30[15] =
{
    0.1117938204f,0.1110284288f,0.1090465865f,0.1058700070f,0.1015334935f,0.0960845578f,
@@ -10012,6 +10050,13 @@ const float rot_vec_syn_re_L30[15] =
    0.0331543560f,0.0218117611f,0.0102301920f,
};
/*Q31*/
const Word32 rot_vec_syn_re_L30_fx[15] =
{
    240075408 ,238431728 ,234175760 ,227354112 ,218041520 ,206340016 ,192377808 ,176307872 ,
	158306272 ,138570240 ,117315992 ,94776408 ,71198440 ,46840400 ,21969170 ,
};
const float rot_vec_syn_im_L30[15] =
{
    -0.0014634613f,-0.0131410805f,-0.0246747234f,-0.0359380248f,-0.0468075816f,-0.0571643048f,
@@ -10019,6 +10064,13 @@ const float rot_vec_syn_im_L30[15] =
    -0.1067744758f,-0.1096551279f,-0.1113343755f,
};
/*Q31*/
const Word32 rot_vec_syn_im_L30_fx[15] =
{
    -3142759 ,-28220256 ,-52988564 ,-77176320 ,-100518520 ,-122759408 ,-143655328 ,-162977328 ,
	-180513712 ,-196072352 ,-209482768 ,-220598064 ,-229296448 ,-235482592 ,-239088752 ,
};
const float rot_vec_syn_re_L32[16] =
{
    0.1117949803f,0.1111221774f,0.1093792072f,0.1065828555f,0.1027600526f,0.0979476142f,
@@ -10026,6 +10078,13 @@ const float rot_vec_syn_re_L32[16] =
    0.0415145243f,0.0311394479f,0.0204644816f,0.0095924311f,
};
/*Q31*/
const Word32 rot_vec_syn_re_L32_fx[16] =
{
    240077888 ,238633056 ,234890064 ,228884944 ,220675536 ,210340896 ,197980576 ,183713584 ,
	167677328 ,150026240 ,130930336 ,110573488 ,89151760 ,66871456 ,43947140 ,20599588 ,
};
const float rot_vec_syn_im_L32[16] =
{
    -0.0013719997f,-0.0123232174f,-0.0231557558f,-0.0337652916f,-0.0440496492f,-0.0539097846f,
@@ -10033,6 +10092,13 @@ const float rot_vec_syn_im_L32[16] =
    -0.1038101357f,-0.1073793965f,-0.1099145349f,-0.1113911364f,
};
/*Q31*/
const Word32 rot_vec_syn_im_L32_fx[16] =
{
    -2946347 ,-26463908 ,-49726608 ,-72510408 ,-94595904 ,-115770384 ,-135829936 ,-154581360 ,
	-171844080 ,-187451856 ,-201254368 ,-213118704 ,-222930576 ,-230595504 ,-236039664 ,-239210640 ,
};
const float rot_vec_syn_re_L40[20] =
{
    0.1117980110f,0.1113672575f,0.1102498879f,0.1084527911f,0.1059870468f,0.1028678571f,
@@ -10041,6 +10107,14 @@ const float rot_vec_syn_re_L40[20] =
    0.0164049658f,0.0076773447f,
};
/*Q31*/
const Word32 rot_vec_syn_re_L40_fx[20] =
{
    240084400 ,239159360 ,236759824 ,232900592 ,227605456 ,220907040 ,212846672 ,203474016 ,
	192846896 ,181030800 ,168098592 ,154130000 ,139211136 ,123434000 ,106895848 ,89698648 ,
	71948424 ,53754620 ,35229396 ,16486972 ,
};
const float rot_vec_syn_im_L40[20] =
{
    -0.0010976097f,-0.0098657969f,-0.0185731583f,-0.0271660100f,-0.0355913742f,-0.0437973057f,
@@ -10049,6 +10123,14 @@ const float rot_vec_syn_im_L40[20] =
    -0.1105932959f,-0.1115394925f,
};
/*Q31*/
const Word32 rot_vec_syn_im_L40_fx[20] =
{
    -2357099 ,-21186638 ,-39885552 ,-58338564 ,-76431896 ,-94054000 ,-111096224 ,-127453512 ,
	-143025008 ,-157714704 ,-171432032 ,-184092416 ,-195617824 ,-205937184 ,-214986864 ,-222711088 ,
	-229062224 ,-234001104 ,-237497296 ,-239529232 ,
};
const float rot_vec_syn_re_L60[30] =
{
    0.1118010042f,0.1116094882f,0.1111120583f,0.1103100780f,0.1092057454f,0.1078020875f,
@@ -10058,6 +10140,15 @@ const float rot_vec_syn_re_L60[30] =
    0.0338524782f,0.0282294165f,0.0225289799f,0.0167667930f,0.0109586494f,0.0051204690f,
};
/*Q31*/
const Word32 rot_vec_syn_re_L60_fx[30] =
{
    240090832 ,239679552 ,238611328 ,236889088 ,234517552 ,231503216 ,227854352 ,223580960 ,218694736 ,
	213209088 ,207139056 ,200501264 ,193313904 ,185596688 ,177370784 ,168658704 ,159484336 ,149872832 ,
	139850544 ,129444936 ,118684528 ,107598816 ,96218184 ,84573816 ,72697640 ,60622212 ,48380616 ,
	36006412 ,23533520 ,10996123 ,
};
const float rot_vec_syn_im_L60[30] =
{
    -0.0007317463f,-0.0065819559f,-0.0124141249f,-0.0182122676f,-0.0239604917f,-0.0296430418f,
@@ -10067,6 +10158,15 @@ const float rot_vec_syn_im_L60[30] =
    -0.1065551956f,-0.1081808673f,-0.1095100227f,-0.1105390187f,-0.1112650350f,-0.1116860815f,
};
/*Q31*/
const Word32 rot_vec_syn_im_L60_fx[30] =
{
    -1571413 ,-14134643 ,-26659130 ,-39110548 ,-51454764 ,-63657948 ,-75686648 ,-87507896 ,-99089296 ,
	-110399096 ,-121406296 ,-132080736 ,-142393152 ,-152315264 ,-161819904 ,-170881008 ,-179473744 ,
	-187574544 ,-195161216 ,-202212960 ,-208710464 ,-214635904 ,-219973040 ,-224707248 ,-228825536 ,
	-232316640 ,-235170976 ,-237380736 ,-238939840 ,-239844032 ,
};
const float bpf_weights_16[CLDFB_NO_COL_MAX] =
{
@@ -10080,6 +10180,23 @@ const Word16 bpf_weights_16_Fx[16] =
    9/*0.000270f Q15*/,      3/*0.000080f Q15*/,      1/*0.000030f Q15*/,      3/*0.000082f Q15*/,
    3/*0.000081f Q15*/,      2/*0.000052f Q15*/,      1/*0.000017f Q15*/,      1/*0.000016f Q15*/
};
const Word16 bpf_weights_16_ivas_fx[16] =
{
    32767/*0.999969f Q15*/,  23022/*0.702561f Q15*/,   6843/*0.208838f Q15*/,     51/*0.001553f Q15*/,
    58/*0.001777f Q15*/,     45/*0.001370f Q15*/,     30/*0.000926f Q15*/,     18/*0.000554f Q15*/,
    9/*0.000270f Q15*/,      3/*0.000080f Q15*/,      1/*0.000030f Q15*/,      3/*0.000082f Q15*/,
    3/*0.000081f Q15*/,      2/*0.000052f Q15*/,      1/*0.000017f Q15*/,      1/*0.000016f Q15*/
};
const Word16 bpf_weights_16_ivas_fx_32[16] =
{
    1073784774/*0.999969f Q15*/,  754369130/*0.702561f Q15*/,   224238095/*0.208838f Q15*/,     1667521/*0.001553f Q15*/,
    1908039/*0.001777f Q15*/,     1435593/*0.001370f Q15*/,     994285/*0.000926f Q15*/,     594853/*0.000554f Q15*/,
    289910/*0.000270f Q15*/,      85899/*0.000080f Q15*/,      32212/*0.000030f Q15*/,      88047/*0.000082f Q15*/,
    86973/*0.000081f Q15*/,      55835/*0.000052f Q15*/,      18254/*0.000017f Q15*/,      17179/*0.000016f Q15*/
};
/*-------------------------------------------------------------------*
 * LP CNG excitation details code book
 *-------------------------------------------------------------------*/
+17 −0
Original line number Diff line number Diff line
@@ -1604,8 +1604,25 @@ extern const float rot_vec_syn_im_L40[20];
extern const float rot_vec_syn_re_L60[30];
extern const float rot_vec_syn_im_L60[30];

extern const Word32 rot_vec_syn_re_L10_fx[5];
extern const Word32 rot_vec_syn_im_L10_fx[5];
extern const Word32 rot_vec_syn_re_L16_fx[8];
extern const Word32 rot_vec_syn_im_L16_fx[8];
extern const Word32 rot_vec_syn_re_L20_fx[10];
extern const Word32 rot_vec_syn_im_L20_fx[10];
extern const Word32 rot_vec_syn_re_L30_fx[15];
extern const Word32 rot_vec_syn_im_L30_fx[15];
extern const Word32 rot_vec_syn_re_L32_fx[16];
extern const Word32 rot_vec_syn_im_L32_fx[16];
extern const Word32 rot_vec_syn_re_L40_fx[20];
extern const Word32 rot_vec_syn_im_L40_fx[20];
extern const Word32 rot_vec_syn_re_L60_fx[30];
extern const Word32 rot_vec_syn_im_L60_fx[30];

extern const float bpf_weights_16[CLDFB_NO_COL_MAX];
extern const Word16 bpf_weights_16_Fx[16];
extern const Word16 bpf_weights_16_ivas_fx[16];
extern const Word16 bpf_weights_16_ivas_fx_32[16];

extern const float CNG_details_codebook[64][NUM_ENV_CNG];
extern const Word16 CNG_details_codebook_fx[64][NUM_ENV_CNG];
+7 −0
Original line number Diff line number Diff line
@@ -693,6 +693,13 @@ typedef struct cldfb_filter_bank_struct
    const float *rot_vec_syn_re;
    const float *rot_vec_syn_im;

#ifdef IVAS_FLOAT_FIXED
    const Word32 *rot_vec_syn_re_fx;
    const Word32 *rot_vec_syn_im_fx;

    const Word32 *rot_vec_syn_delay_re_fx;
    const Word32 *rot_vec_syn_delay_im_fx;
#endif
    /* rotation vectors for delay */
    const float *rot_vec_ana_delay_re;
    const float *rot_vec_ana_delay_im;
Loading