Loading lib_dec/ivas_svd_dec_fx.c +2 −4 Original line number Diff line number Diff line Loading @@ -1082,7 +1082,7 @@ static void biDiagonalReductionLeft_64( norm_x_e = W_norm( norm_64 ); norm_x = W_extract_h( W_shl( norm_64, norm_x_e ) ); f = Mpy_32_32( norm_x, invVal ); magic_shift = norm_x_e+22+HEADROOM_LEFT_3+2*HEADROOM_LEFT_1-r_e; magic_shift = norm_x_e-r_e+(28-HEADROOM_LEFT_3); // works with headroom_left: 1,2,2 FOR( jCh = currChannel; jCh < nChannelsL; jCh++ ) { factor1 = W_extract_h( W_shl( singularVectors_Left_64[jCh][currChannel], 32-HEADROOM_LEFT_3 ) ); Loading Loading @@ -1189,9 +1189,7 @@ static void biDiagonalReductionRight_64( norm_x_e = W_norm( norm_64 ); norm_x = W_extract_h( W_shl( norm_64, norm_x_e ) ); f = Mpy_32_32( norm_x, invVal ); // magic_shift = 25 + norm_x_e - r_e; // FIXME: Why does this work? // magic_shift = norm_x_e-r_e +33-(HEADROOM_RIGHT_3+2*HEADROOM_RIGHT_2); magic_shift = norm_x_e-r_e +29-(HEADROOM_RIGHT_3); magic_shift = norm_x_e-r_e +29-(HEADROOM_RIGHT_3); // works with headroom_right: 2,2,2 printf("magic_shift:%3d norm_x_e:%3d r_e:%3d [",magic_shift,norm_x_e,r_e); FOR( jCh = idx; jCh < nChannelsC; jCh++ ) Loading Loading
lib_dec/ivas_svd_dec_fx.c +2 −4 Original line number Diff line number Diff line Loading @@ -1082,7 +1082,7 @@ static void biDiagonalReductionLeft_64( norm_x_e = W_norm( norm_64 ); norm_x = W_extract_h( W_shl( norm_64, norm_x_e ) ); f = Mpy_32_32( norm_x, invVal ); magic_shift = norm_x_e+22+HEADROOM_LEFT_3+2*HEADROOM_LEFT_1-r_e; magic_shift = norm_x_e-r_e+(28-HEADROOM_LEFT_3); // works with headroom_left: 1,2,2 FOR( jCh = currChannel; jCh < nChannelsL; jCh++ ) { factor1 = W_extract_h( W_shl( singularVectors_Left_64[jCh][currChannel], 32-HEADROOM_LEFT_3 ) ); Loading Loading @@ -1189,9 +1189,7 @@ static void biDiagonalReductionRight_64( norm_x_e = W_norm( norm_64 ); norm_x = W_extract_h( W_shl( norm_64, norm_x_e ) ); f = Mpy_32_32( norm_x, invVal ); // magic_shift = 25 + norm_x_e - r_e; // FIXME: Why does this work? // magic_shift = norm_x_e-r_e +33-(HEADROOM_RIGHT_3+2*HEADROOM_RIGHT_2); magic_shift = norm_x_e-r_e +29-(HEADROOM_RIGHT_3); magic_shift = norm_x_e-r_e +29-(HEADROOM_RIGHT_3); // works with headroom_right: 2,2,2 printf("magic_shift:%3d norm_x_e:%3d r_e:%3d [",magic_shift,norm_x_e,r_e); FOR( jCh = idx; jCh < nChannelsC; jCh++ ) Loading