Loading lib_com/hp50_fx.c +22 −21 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #include "wmc_auto.h" #define HP20_COEFF_SCALE ( 2 ) #define HP20_FX_COEFF_SCALE ( 1 ) /* * hp20 * Loading Loading @@ -355,7 +356,7 @@ void hp20_fx_32( Word16 prescale, prescaleOld, prescale_current_frame, diff; prescale = L_norm_arr( signal_fx, lg ); prescale_current_frame = sub( HP20_COEFF_SCALE, prescale ); prescale_current_frame = sub( add( 1, HP20_FX_COEFF_SCALE ), prescale ); prescaleOld = extract_l( mem_fx[4] ); Loading @@ -375,7 +376,7 @@ void hp20_fx_32( prescale = s_min( prescale, diff ); } prescale = sub( HP20_COEFF_SCALE, prescale ); prescale = sub( add( 1, HP20_FX_COEFF_SCALE ), prescale ); diff = sub( prescale, prescaleOld ); #ifdef ISSUE_1836_replace_overflow_libcom Loading Loading @@ -405,10 +406,10 @@ void hp20_fx_32( [b,a] = butter(2, 20.0/4000.0, 'high'); b = [0.988954248067140 -1.977908496134280 0.988954248067140] a =[1.000000000000000 -1.977786483776764 0.978030508491796]*/ a1_fx = 1061816033l /* 1.977786483776764 Q29*/; a2_fx = -525076131l /*-0.978030508491796 Q29*/; b1_fx = -1061881538l /*-1.977908496134280 Q29*/; b2_fx = 530940769l /* 0.988954248067140 Q29*/; a1_fx = 2123632067 /* 1.977786483776764 Q30*/; a2_fx = -1050152262 /*-0.978030508491796 Q30*/; b1_fx = -2123763076 /*-1.977908496134280 Q30*/; b2_fx = 1061881538 /* 0.988954248067140 Q30*/; } ELSE IF( EQ_32( Fs, 16000 ) ) { Loading @@ -416,10 +417,10 @@ void hp20_fx_32( [b,a] = butter(2, 20.0/8000.0, 'high'); b =[ 0.994461788958195 -1.988923577916390 0.994461788958195] a =[1.000000000000000 -1.988892905899653 0.988954249933127] */ a1_fx = 1067778748l /* 1.988892905899653 Q29*/; a2_fx = -530940770l /*-0.988954249933127 Q29*/; b1_fx = -1067795215l /*-1.988923577916390 Q29*/; b2_fx = 533897608l /* 0.994461788958195 Q29*/; a1_fx = 2135557497 /* 1.988892905899653 Q30*/; a2_fx = -1061881540 /*-0.988954249933127 Q30*/; b1_fx = -2135590430 /*-1.988923577916390 Q30*/; b2_fx = 1067795215 /* 0.994461788958195 Q30*/; } ELSE IF( EQ_32( Fs, 32000 ) ) { Loading @@ -427,10 +428,10 @@ void hp20_fx_32( [b,a] = butter(2, 20.0/16000.0, 'high'); b =[0.997227049904470 -1.994454099808940 0.997227049904470] a =[1.000000000000000 -1.994446410541927 0.994461789075954]*/ a1_fx = 1070760263l /* 1.994446410541927 Q29*/; a2_fx = -533897608l /*-0.994461789075954 Q29*/; b1_fx = -1070764392l /*-1.994454099808940 Q29*/; b2_fx = 535382196l /* 0.997227049904470 Q29*/; a1_fx = 2141520527 /* 1.994446410541927 Q30*/; a2_fx = -1067795215 /*-0.994461789075954 Q30*/; b1_fx = -2141528783 /*-1.994454099808940 Q30*/; b2_fx = 1070764392 /* 0.997227049904470 Q30*/; } ELSE { Loading @@ -438,10 +439,10 @@ void hp20_fx_32( [b,a] = butter(2, 20.0/24000.0, 'high'); b =[ 0.998150511190452 -1.996301022380904 0.998150511190452] a =[1.000000000000000 -1.996297601769122 0.996304442992686]*/ a1_fx = 1071754114l /* 1.996297601769122 Q29*/; a2_fx = -534886875l /*-0.996304442992686 Q29*/; b1_fx = -1071755951l /*-1.996301022380904 Q29*/; b2_fx = 535877975l /* 0.998150511190452 Q29*/; a1_fx = 2143508228 /* 1.996297601769122 Q30*/; a2_fx = -1069773750 /*-0.996304442992686 Q30*/; b1_fx = -2143511901 /*-1.996301022380904 Q30*/; b2_fx = 1071755951 /* 0.998150511190452 Q30*/; } move32(); move32(); Loading @@ -456,7 +457,7 @@ void hp20_fx_32( W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x2 ) ); /* b2*x0 */ W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[0], a2_fx ) ); /* y2*a2 */ W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[1], a1_fx ) ); /* y1*a1 */ W_y2 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) ); W_y2 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) ); signal_fx[0] = W_round64_L( W_shl( W_y2, prescale ) ); move32(); Loading @@ -466,7 +467,7 @@ void hp20_fx_32( W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x1 ) ); /* b2*x0 */ W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[1], a2_fx ) ); /* y2*a2 */ W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y2 ), a1_fx ) ); /* y1*a1 */ W_y1 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) ); W_y1 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) ); signal_fx[1] = W_round64_L( W_shl( W_y1, prescale ) ); move32(); Loading @@ -484,7 +485,7 @@ void hp20_fx_32( W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x0 ) ); /* b2*x0 */ W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y2 ), a2_fx ) ); /* y2*a2 */ W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y1 ), a1_fx ) ); /* y1*a1 */ W_y0 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) ); W_y0 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) ); signal_fx[i] = W_round64_L( W_shl( W_y0, prescale_current_frame ) ); move32(); Loading Loading
lib_com/hp50_fx.c +22 −21 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #include "wmc_auto.h" #define HP20_COEFF_SCALE ( 2 ) #define HP20_FX_COEFF_SCALE ( 1 ) /* * hp20 * Loading Loading @@ -355,7 +356,7 @@ void hp20_fx_32( Word16 prescale, prescaleOld, prescale_current_frame, diff; prescale = L_norm_arr( signal_fx, lg ); prescale_current_frame = sub( HP20_COEFF_SCALE, prescale ); prescale_current_frame = sub( add( 1, HP20_FX_COEFF_SCALE ), prescale ); prescaleOld = extract_l( mem_fx[4] ); Loading @@ -375,7 +376,7 @@ void hp20_fx_32( prescale = s_min( prescale, diff ); } prescale = sub( HP20_COEFF_SCALE, prescale ); prescale = sub( add( 1, HP20_FX_COEFF_SCALE ), prescale ); diff = sub( prescale, prescaleOld ); #ifdef ISSUE_1836_replace_overflow_libcom Loading Loading @@ -405,10 +406,10 @@ void hp20_fx_32( [b,a] = butter(2, 20.0/4000.0, 'high'); b = [0.988954248067140 -1.977908496134280 0.988954248067140] a =[1.000000000000000 -1.977786483776764 0.978030508491796]*/ a1_fx = 1061816033l /* 1.977786483776764 Q29*/; a2_fx = -525076131l /*-0.978030508491796 Q29*/; b1_fx = -1061881538l /*-1.977908496134280 Q29*/; b2_fx = 530940769l /* 0.988954248067140 Q29*/; a1_fx = 2123632067 /* 1.977786483776764 Q30*/; a2_fx = -1050152262 /*-0.978030508491796 Q30*/; b1_fx = -2123763076 /*-1.977908496134280 Q30*/; b2_fx = 1061881538 /* 0.988954248067140 Q30*/; } ELSE IF( EQ_32( Fs, 16000 ) ) { Loading @@ -416,10 +417,10 @@ void hp20_fx_32( [b,a] = butter(2, 20.0/8000.0, 'high'); b =[ 0.994461788958195 -1.988923577916390 0.994461788958195] a =[1.000000000000000 -1.988892905899653 0.988954249933127] */ a1_fx = 1067778748l /* 1.988892905899653 Q29*/; a2_fx = -530940770l /*-0.988954249933127 Q29*/; b1_fx = -1067795215l /*-1.988923577916390 Q29*/; b2_fx = 533897608l /* 0.994461788958195 Q29*/; a1_fx = 2135557497 /* 1.988892905899653 Q30*/; a2_fx = -1061881540 /*-0.988954249933127 Q30*/; b1_fx = -2135590430 /*-1.988923577916390 Q30*/; b2_fx = 1067795215 /* 0.994461788958195 Q30*/; } ELSE IF( EQ_32( Fs, 32000 ) ) { Loading @@ -427,10 +428,10 @@ void hp20_fx_32( [b,a] = butter(2, 20.0/16000.0, 'high'); b =[0.997227049904470 -1.994454099808940 0.997227049904470] a =[1.000000000000000 -1.994446410541927 0.994461789075954]*/ a1_fx = 1070760263l /* 1.994446410541927 Q29*/; a2_fx = -533897608l /*-0.994461789075954 Q29*/; b1_fx = -1070764392l /*-1.994454099808940 Q29*/; b2_fx = 535382196l /* 0.997227049904470 Q29*/; a1_fx = 2141520527 /* 1.994446410541927 Q30*/; a2_fx = -1067795215 /*-0.994461789075954 Q30*/; b1_fx = -2141528783 /*-1.994454099808940 Q30*/; b2_fx = 1070764392 /* 0.997227049904470 Q30*/; } ELSE { Loading @@ -438,10 +439,10 @@ void hp20_fx_32( [b,a] = butter(2, 20.0/24000.0, 'high'); b =[ 0.998150511190452 -1.996301022380904 0.998150511190452] a =[1.000000000000000 -1.996297601769122 0.996304442992686]*/ a1_fx = 1071754114l /* 1.996297601769122 Q29*/; a2_fx = -534886875l /*-0.996304442992686 Q29*/; b1_fx = -1071755951l /*-1.996301022380904 Q29*/; b2_fx = 535877975l /* 0.998150511190452 Q29*/; a1_fx = 2143508228 /* 1.996297601769122 Q30*/; a2_fx = -1069773750 /*-0.996304442992686 Q30*/; b1_fx = -2143511901 /*-1.996301022380904 Q30*/; b2_fx = 1071755951 /* 0.998150511190452 Q30*/; } move32(); move32(); Loading @@ -456,7 +457,7 @@ void hp20_fx_32( W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x2 ) ); /* b2*x0 */ W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[0], a2_fx ) ); /* y2*a2 */ W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[1], a1_fx ) ); /* y1*a1 */ W_y2 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) ); W_y2 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) ); signal_fx[0] = W_round64_L( W_shl( W_y2, prescale ) ); move32(); Loading @@ -466,7 +467,7 @@ void hp20_fx_32( W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x1 ) ); /* b2*x0 */ W_sum = W_add( W_sum, W_mult0_32_32( mem_fx[1], a2_fx ) ); /* y2*a2 */ W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y2 ), a1_fx ) ); /* y1*a1 */ W_y1 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) ); W_y1 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) ); signal_fx[1] = W_round64_L( W_shl( W_y1, prescale ) ); move32(); Loading @@ -484,7 +485,7 @@ void hp20_fx_32( W_sum = W_add( W_sum, W_mult0_32_32( b2_fx, x0 ) ); /* b2*x0 */ W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y2 ), a2_fx ) ); /* y2*a2 */ W_sum = W_add( W_sum, W_mult0_32_32( W_round64_L( W_y1 ), a1_fx ) ); /* y1*a1 */ W_y0 = W_shl( W_sum, add( 1, HP20_COEFF_SCALE ) ); W_y0 = W_shl( W_sum, add( 1, HP20_FX_COEFF_SCALE ) ); signal_fx[i] = W_round64_L( W_shl( W_y0, prescale_current_frame ) ); move32(); Loading