Commit b57c348b authored by thomas dettbarn's avatar thomas dettbarn
Browse files

best one yet!

parent 279bf335
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -1003,9 +1003,9 @@ static void biDiagonalReductionLeft_64(
    Word16 *g_e )
{

#define HEADROOM_LEFT_1 1
#define HEADROOM_LEFT_2 1
#define HEADROOM_LEFT_3 15
#define HEADROOM_LEFT_1 2
#define HEADROOM_LEFT_2 2
#define HEADROOM_LEFT_3 2
#define HEADROOM_LEFT_4 15

    Word16 iCh, jCh;
@@ -1085,9 +1085,7 @@ static void biDiagonalReductionLeft_64(
            norm_x = W_extract_h( W_shl( norm_64, norm_x_e ) );
            f = Mpy_32_32( norm_x, invVal );
	printf("\nF:%08X norm_x_e:%3d r_e:%3d\n",f,norm_x_e,r_e);
//            magic_shift = norm_x_e - r_e + ( 28 - HEADROOM_LEFT_4 ); // works with headroom_left: 1,2,2 and 1,2,0
            magic_shift = norm_x_e - r_e + ( 32 -2*HEADROOM_LEFT_3 - HEADROOM_LEFT_4 ); // works with headroom_left: 1,2,2 and 1,2,0
//            magic_shift = norm_x_e - r_e + ( 30 - HEADROOM_LEFT_4 );
            magic_shift = norm_x_e - r_e + ( 32 + 2*HEADROOM_LEFT_1 - HEADROOM_LEFT_2 -2*HEADROOM_LEFT_3 - HEADROOM_LEFT_4 );
	printf("OUT:");
            FOR( jCh = currChannel; jCh < nChannelsL; jCh++ )
            {
@@ -1122,7 +1120,7 @@ static void biDiagonalReductionRight_64(

#define HEADROOM_RIGHT_1 2
#define HEADROOM_RIGHT_2 2
#define HEADROOM_RIGHT_3 15
#define HEADROOM_RIGHT_3 2
#define HEADROOM_RIGHT_4 15


@@ -1198,8 +1196,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 = norm_x_e - r_e + 29 - ( HEADROOM_RIGHT_4 ); // works with headroom_right: 2,2,2
                magic_shift = norm_x_e - r_e + 33 -2*HEADROOM_RIGHT_3 - ( HEADROOM_RIGHT_4 ); // works with headroom_right: 2,2,2
                magic_shift = norm_x_e - r_e + ( 32 + 2*HEADROOM_RIGHT_1 - HEADROOM_RIGHT_2 -2*HEADROOM_RIGHT_3 - HEADROOM_RIGHT_4 );

                FOR( jCh = idx; jCh < nChannelsC; jCh++ )
                {