Loading lib_dec/ivas_svd_dec_fx.c +32 −7 Original line number Diff line number Diff line Loading @@ -939,7 +939,7 @@ static void HouseholderReduction_fx( { Word16 n; n=W_norm(singularVectors_Left_64[i][j]); printf("%08X ",W_extract_h(W_shl(singularVectors_Left_64[i][j],n))); printf("%08X<%3d ",W_extract_h(W_shl(singularVectors_Left_64[i][j],n)),n); } printf("\x1b[0m\n"); } Loading Loading @@ -988,7 +988,7 @@ static void HouseholderReduction_fx( for (j=0;j<nChannelsC;j++) { Word16 n; printf("%08X ",singularVectors_Left_fx[i][j]); printf("%08X<%3d ",singularVectors_Left_fx[i][j],singularVectors_Left_fx_e[i][j]); } printf("\n"); } Loading @@ -1010,6 +1010,19 @@ static void HouseholderReduction_fx( } } pop_wmops(); { int i,j; for (i=0;i<nChannelsL;i++) { for (j=0;j<nChannelsC;j++) { Word16 n; n=W_norm(singularVectors_Left_64[i][j]); singularVectors_Left_fx[i][j]=W_extract_h(W_shl(singularVectors_Left_64[i][j],n)); } } } /* SingularVecotr Accumulation */ singularVectorsAccumulationRight_fx( singularVectors_Left_fx, singularVectors_Right_fx, secDiag_fx, singularVectors_Left_fx_e, secDiag_fx_e, nChannelsC ); Loading Loading @@ -1126,8 +1139,6 @@ static void biDiagonalReductionLeft_64( switch(currChannel) { case 0: magic_shift_left=norm_x_e+23;break; case 1: magic_shift_left=norm_x_e+23;break; default:magic_shift_left=norm_x_e+23+r_e;break; } tmp2=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],tmpe)); Loading Loading @@ -1250,8 +1261,8 @@ static void biDiagonalReductionRight_64( //// NOT CORRECT YET!!!!!! ////////////////////////////////// switch(currChannel) { case 0: tmpe=30; break; case 1: tmpe=33; break; // case 0: tmpe=30; break; // case 1: tmpe=33; break; default: tmpe=32-(*g_e);break; } tmp64=W_shr(W_deposit32_h(*g),tmpe); Loading Loading @@ -1296,8 +1307,22 @@ static void biDiagonalReductionRight_64( case 5:magic_shift=norm_x_e+r_e+(*g_e)+16;break; case 6:magic_shift=norm_x_e+r_e+(*g_e)+12;break; case 7:magic_shift=norm_x_e+r_e+(*g_e)+10;break; default:magic_shift=norm_x_e+r_e+(*g_e)+ 8;break; } case 8:magic_shift=norm_x_e+r_e+(*g_e)+ 8;break; case 9:magic_shift=norm_x_e+r_e+(*g_e)+ 7;break; case 10:magic_shift=norm_x_e+r_e+(*g_e)+ 6;break; default:magic_shift=norm_x_e+r_e+(*g_e)+ 5;break; } // ONE 65,65> -3,0,22,-2,4,0,3,0,0 magic_shift=-3*currChannel+22-2*norm_x_e+4*r_e+3*f_e; printf("MAGICSHIFT%02d,%02d: ",currChannel,iCh); printf("magic_shift:%3d ",magic_shift); printf("norm_x_e:%3d ",norm_x_e); printf("r_e:%3d ",r_e); printf("g_e:%3d ",*g_e); printf("f_e:%3d ",f_e); printf("s_c,c+1:%3d ",W_norm(singularVectors_Left_64[currChannel][idx])); printf("s_i,c+1:%3d ",W_norm(singularVectors_Left_64[iCh][idx])); printf("\n"); // magic_shift=-32-30*norm_x_e-norm_x_e2+32*invVal_e+32*f_e; for (jCh=idx;jCh<nChannelsC; jCh++) { Loading Loading
lib_dec/ivas_svd_dec_fx.c +32 −7 Original line number Diff line number Diff line Loading @@ -939,7 +939,7 @@ static void HouseholderReduction_fx( { Word16 n; n=W_norm(singularVectors_Left_64[i][j]); printf("%08X ",W_extract_h(W_shl(singularVectors_Left_64[i][j],n))); printf("%08X<%3d ",W_extract_h(W_shl(singularVectors_Left_64[i][j],n)),n); } printf("\x1b[0m\n"); } Loading Loading @@ -988,7 +988,7 @@ static void HouseholderReduction_fx( for (j=0;j<nChannelsC;j++) { Word16 n; printf("%08X ",singularVectors_Left_fx[i][j]); printf("%08X<%3d ",singularVectors_Left_fx[i][j],singularVectors_Left_fx_e[i][j]); } printf("\n"); } Loading @@ -1010,6 +1010,19 @@ static void HouseholderReduction_fx( } } pop_wmops(); { int i,j; for (i=0;i<nChannelsL;i++) { for (j=0;j<nChannelsC;j++) { Word16 n; n=W_norm(singularVectors_Left_64[i][j]); singularVectors_Left_fx[i][j]=W_extract_h(W_shl(singularVectors_Left_64[i][j],n)); } } } /* SingularVecotr Accumulation */ singularVectorsAccumulationRight_fx( singularVectors_Left_fx, singularVectors_Right_fx, secDiag_fx, singularVectors_Left_fx_e, secDiag_fx_e, nChannelsC ); Loading Loading @@ -1126,8 +1139,6 @@ static void biDiagonalReductionLeft_64( switch(currChannel) { case 0: magic_shift_left=norm_x_e+23;break; case 1: magic_shift_left=norm_x_e+23;break; default:magic_shift_left=norm_x_e+23+r_e;break; } tmp2=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],tmpe)); Loading Loading @@ -1250,8 +1261,8 @@ static void biDiagonalReductionRight_64( //// NOT CORRECT YET!!!!!! ////////////////////////////////// switch(currChannel) { case 0: tmpe=30; break; case 1: tmpe=33; break; // case 0: tmpe=30; break; // case 1: tmpe=33; break; default: tmpe=32-(*g_e);break; } tmp64=W_shr(W_deposit32_h(*g),tmpe); Loading Loading @@ -1296,8 +1307,22 @@ static void biDiagonalReductionRight_64( case 5:magic_shift=norm_x_e+r_e+(*g_e)+16;break; case 6:magic_shift=norm_x_e+r_e+(*g_e)+12;break; case 7:magic_shift=norm_x_e+r_e+(*g_e)+10;break; default:magic_shift=norm_x_e+r_e+(*g_e)+ 8;break; } case 8:magic_shift=norm_x_e+r_e+(*g_e)+ 8;break; case 9:magic_shift=norm_x_e+r_e+(*g_e)+ 7;break; case 10:magic_shift=norm_x_e+r_e+(*g_e)+ 6;break; default:magic_shift=norm_x_e+r_e+(*g_e)+ 5;break; } // ONE 65,65> -3,0,22,-2,4,0,3,0,0 magic_shift=-3*currChannel+22-2*norm_x_e+4*r_e+3*f_e; printf("MAGICSHIFT%02d,%02d: ",currChannel,iCh); printf("magic_shift:%3d ",magic_shift); printf("norm_x_e:%3d ",norm_x_e); printf("r_e:%3d ",r_e); printf("g_e:%3d ",*g_e); printf("f_e:%3d ",f_e); printf("s_c,c+1:%3d ",W_norm(singularVectors_Left_64[currChannel][idx])); printf("s_i,c+1:%3d ",W_norm(singularVectors_Left_64[iCh][idx])); printf("\n"); // magic_shift=-32-30*norm_x_e-norm_x_e2+32*invVal_e+32*f_e; for (jCh=idx;jCh<nChannelsC; jCh++) { Loading