diff --git a/3rd-party/bluedroid/encoder/include/sbc_encoder.h b/3rd-party/bluedroid/encoder/include/sbc_encoder.h index 20cbd9ab5..22c272240 100644 --- a/3rd-party/bluedroid/encoder/include/sbc_encoder.h +++ b/3rd-party/bluedroid/encoder/include/sbc_encoder.h @@ -196,6 +196,10 @@ typedef struct SBC_ENC_PARAMS_TAG UINT16 u16PacketLength; /* BK4BTSTACK_CHANGE START */ UINT8 mSBCEnabled; + // from sbc_analysis + SINT32 s32DCTY[16];// = {0}; + SINT32 s32X[ENC_VX_BUFFER_SIZE/2]; + SINT16 *s16X;//=(SINT16*) s32X; /* s16X must be 32 bits aligned cf SHIFTUP_X8_2*/ /* BK4BTSTACK_CHANGE END */ }SBC_ENC_PARAMS; diff --git a/3rd-party/bluedroid/encoder/srce/sbc_analysis.c b/3rd-party/bluedroid/encoder/srce/sbc_analysis.c index 3d46e4cff..55b649dcb 100644 --- a/3rd-party/bluedroid/encoder/srce/sbc_analysis.c +++ b/3rd-party/bluedroid/encoder/srce/sbc_analysis.c @@ -153,12 +153,6 @@ #define WIND_8_SUBBANDS_8_2 (SINT16)0x12CF /* 40 = 0x12CF6C75 */ #endif -#if (SBC_USE_ARM_PRAGMA==TRUE) -#pragma arm section zidata = "sbc_s32_analysis_section" -#endif -static SINT32 s32DCTY[16] = {0}; -static SINT32 s32X[ENC_VX_BUFFER_SIZE/2]; -static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf SHIFTUP_X8_2*/ #if (SBC_USE_ARM_PRAGMA==TRUE) #pragma arm section zidata #endif @@ -166,7 +160,7 @@ static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf S /* This macro is for 4 subbands */ #define SHIFTUP_X4 \ { \ - ps32X=(SINT32 *)(s16X+EncMaxShiftCounter+38); \ + ps32X=(SINT32 *)(pstrEncParams->s16X+EncMaxShiftCounter+38); \ for (i=0;i<9;i++) \ { \ *ps32X=*(ps32X-2-(ShiftCounter>>1)); ps32X--; \ @@ -175,8 +169,8 @@ static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf S } #define SHIFTUP_X4_2 \ { \ - ps32X=(SINT32 *)(s16X+EncMaxShiftCounter+38); \ - ps32X2=(SINT32 *)(s16X+(EncMaxShiftCounter<<1)+78); \ + ps32X=(SINT32 *)(pstrEncParams->s16X+EncMaxShiftCounter+38); \ + ps32X2=(SINT32 *)(pstrEncParams->s16X+(EncMaxShiftCounter<<1)+78); \ for (i=0;i<9;i++) \ { \ *ps32X=*(ps32X-2-(ShiftCounter>>1)); *(ps32X2)=*(ps32X2-2-(ShiftCounter>>1)); ps32X--; ps32X2--; \ @@ -187,7 +181,7 @@ static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf S /* This macro is for 8 subbands */ #define SHIFTUP_X8 \ { \ - ps32X=(SINT32 *)(s16X+EncMaxShiftCounter+78); \ + ps32X=(SINT32 *)(pstrEncParams->s16X+EncMaxShiftCounter+78); \ for (i=0;i<9;i++) \ { \ *ps32X=*(ps32X-4-(ShiftCounter>>1)); ps32X--; \ @@ -198,8 +192,8 @@ static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf S } #define SHIFTUP_X8_2 \ { \ - ps32X=(SINT32 *)(s16X+EncMaxShiftCounter+78); \ - ps32X2=(SINT32 *)(s16X+(EncMaxShiftCounter<<1)+158); \ + ps32X=(SINT32 *)(pstrEncParams->s16X+EncMaxShiftCounter+78); \ + ps32X2=(SINT32 *)(pstrEncParams->s16X+(EncMaxShiftCounter<<1)+158); \ for (i=0;i<9;i++) \ { \ *ps32X=*(ps32X-4-(ShiftCounter>>1)); *(ps32X2)=*(ps32X2-4-(ShiftCounter>>1)); ps32X--; ps32X2--; \ @@ -214,218 +208,218 @@ static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf S {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_0_1,(s16X[ChOffset+16]-s16X[ChOffset+64]);\ - MLA s32Hi,WIND_8_SUBBANDS_0_2,(s16X[ChOffset+32]-s16X[ChOffset+48]),s32Hi;\ - MOV s32DCTY[0],s32Hi;\ + MUL s32Hi,WIND_8_SUBBANDS_0_1,(pstrEncParams->s16X[ChOffset+16]-pstrEncParams->s16X[ChOffset+64]);\ + MLA s32Hi,WIND_8_SUBBANDS_0_2,(pstrEncParams->s16X[ChOffset+32]-pstrEncParams->s16X[ChOffset+48]),s32Hi;\ + MOV pstrEncParams->s32DCTY[0],s32Hi;\ }\ } #define WINDOW_ACCU_8_1_15 \ {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_1_0,s16X[ChOffset+1];\ - MUL s32Hi2,WIND_8_SUBBANDS_1_0,s16X[ChOffset+64+15];\ - MLA s32Hi,WIND_8_SUBBANDS_1_1,s16X[ChOffset+16+1],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_1_1,s16X[ChOffset+48+15],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_1_2,s16X[ChOffset+32+1],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_1_2,s16X[ChOffset+32+15],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_1_3,s16X[ChOffset+48+1],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_1_3,s16X[ChOffset+16+15],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_1_4,s16X[ChOffset+64+1],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_1_4,s16X[ChOffset+15],s32Hi2;\ - MOV s32DCTY[1],s32Hi;\ - MOV s32DCTY[15],s32Hi2;\ + MUL s32Hi,WIND_8_SUBBANDS_1_0,pstrEncParams->s16X[ChOffset+1];\ + MUL s32Hi2,WIND_8_SUBBANDS_1_0,pstrEncParams->s16X[ChOffset+64+15];\ + MLA s32Hi,WIND_8_SUBBANDS_1_1,pstrEncParams->s16X[ChOffset+16+1],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_1_1,pstrEncParams->s16X[ChOffset+48+15],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_1_2,pstrEncParams->s16X[ChOffset+32+1],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_1_2,pstrEncParams->s16X[ChOffset+32+15],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_1_3,pstrEncParams->s16X[ChOffset+48+1],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_1_3,pstrEncParams->s16X[ChOffset+16+15],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_1_4,pstrEncParams->s16X[ChOffset+64+1],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_1_4,pstrEncParams->s16X[ChOffset+15],s32Hi2;\ + MOV pstrEncParams->s32DCTY[1],s32Hi;\ + MOV pstrEncParams->s32DCTY[15],s32Hi2;\ }\ } #define WINDOW_ACCU_8_2_14 \ {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_2_0,s16X[ChOffset+2];\ - MUL s32Hi2,WIND_8_SUBBANDS_2_0,s16X[ChOffset+64+14];\ - MLA s32Hi,WIND_8_SUBBANDS_2_1,s16X[ChOffset+16+2],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_2_1,s16X[ChOffset+48+14],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_2_2,s16X[ChOffset+32+2],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_2_2,s16X[ChOffset+32+14],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_2_3,s16X[ChOffset+48+2],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_2_3,s16X[ChOffset+16+14],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_2_4,s16X[ChOffset+64+2],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_2_4,s16X[ChOffset+14],s32Hi2;\ - MOV s32DCTY[2],s32Hi;\ - MOV s32DCTY[14],s32Hi2;\ + MUL s32Hi,WIND_8_SUBBANDS_2_0,pstrEncParams->s16X[ChOffset+2];\ + MUL s32Hi2,WIND_8_SUBBANDS_2_0,pstrEncParams->s16X[ChOffset+64+14];\ + MLA s32Hi,WIND_8_SUBBANDS_2_1,pstrEncParams->s16X[ChOffset+16+2],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_2_1,pstrEncParams->s16X[ChOffset+48+14],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_2_2,pstrEncParams->s16X[ChOffset+32+2],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_2_2,pstrEncParams->s16X[ChOffset+32+14],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_2_3,pstrEncParams->s16X[ChOffset+48+2],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_2_3,pstrEncParams->s16X[ChOffset+16+14],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_2_4,pstrEncParams->s16X[ChOffset+64+2],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_2_4,pstrEncParams->s16X[ChOffset+14],s32Hi2;\ + MOV pstrEncParams->s32DCTY[2],s32Hi;\ + MOV pstrEncParams->s32DCTY[14],s32Hi2;\ }\ } #define WINDOW_ACCU_8_3_13 \ {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_3_0,s16X[ChOffset+3];\ - MUL s32Hi2,WIND_8_SUBBANDS_3_0,s16X[ChOffset+64+13];\ - MLA s32Hi,WIND_8_SUBBANDS_3_1,s16X[ChOffset+16+3],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_3_1,s16X[ChOffset+48+13],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_3_2,s16X[ChOffset+32+3],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_3_2,s16X[ChOffset+32+13],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_3_3,s16X[ChOffset+48+3],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_3_3,s16X[ChOffset+16+13],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_3_4,s16X[ChOffset+64+3],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_3_4,s16X[ChOffset+13],s32Hi2;\ - MOV s32DCTY[3],s32Hi;\ - MOV s32DCTY[13],s32Hi2;\ + MUL s32Hi,WIND_8_SUBBANDS_3_0,pstrEncParams->s16X[ChOffset+3];\ + MUL s32Hi2,WIND_8_SUBBANDS_3_0,pstrEncParams->s16X[ChOffset+64+13];\ + MLA s32Hi,WIND_8_SUBBANDS_3_1,pstrEncParams->s16X[ChOffset+16+3],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_3_1,pstrEncParams->s16X[ChOffset+48+13],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_3_2,pstrEncParams->s16X[ChOffset+32+3],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_3_2,pstrEncParams->s16X[ChOffset+32+13],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_3_3,pstrEncParams->s16X[ChOffset+48+3],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_3_3,pstrEncParams->s16X[ChOffset+16+13],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_3_4,pstrEncParams->s16X[ChOffset+64+3],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_3_4,pstrEncParams->s16X[ChOffset+13],s32Hi2;\ + MOV pstrEncParams->s32DCTY[3],s32Hi;\ + MOV pstrEncParams->s32DCTY[13],s32Hi2;\ }\ } #define WINDOW_ACCU_8_4_12 \ {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_4_0,s16X[ChOffset+4];\ - MUL s32Hi2,WIND_8_SUBBANDS_4_0,s16X[ChOffset+64+12];\ - MLA s32Hi,WIND_8_SUBBANDS_4_1,s16X[ChOffset+16+4],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_4_1,s16X[ChOffset+48+12],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_4_2,s16X[ChOffset+32+4],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_4_2,s16X[ChOffset+32+12],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_4_3,s16X[ChOffset+48+4],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_4_3,s16X[ChOffset+16+12],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_4_4,s16X[ChOffset+64+4],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_4_4,s16X[ChOffset+12],s32Hi2;\ - MOV s32DCTY[4],s32Hi;\ - MOV s32DCTY[12],s32Hi2;\ + MUL s32Hi,WIND_8_SUBBANDS_4_0,pstrEncParams->s16X[ChOffset+4];\ + MUL s32Hi2,WIND_8_SUBBANDS_4_0,pstrEncParams->s16X[ChOffset+64+12];\ + MLA s32Hi,WIND_8_SUBBANDS_4_1,pstrEncParams->s16X[ChOffset+16+4],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_4_1,pstrEncParams->s16X[ChOffset+48+12],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_4_2,pstrEncParams->s16X[ChOffset+32+4],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_4_2,pstrEncParams->s16X[ChOffset+32+12],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_4_3,pstrEncParams->s16X[ChOffset+48+4],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_4_3,pstrEncParams->s16X[ChOffset+16+12],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_4_4,pstrEncParams->s16X[ChOffset+64+4],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_4_4,pstrEncParams->s16X[ChOffset+12],s32Hi2;\ + MOV pstrEncParams->s32DCTY[4],s32Hi;\ + MOV pstrEncParams->s32DCTY[12],s32Hi2;\ }\ } #define WINDOW_ACCU_8_5_11 \ {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_5_0,s16X[ChOffset+5];\ - MUL s32Hi2,WIND_8_SUBBANDS_5_0,s16X[ChOffset+64+11];\ - MLA s32Hi,WIND_8_SUBBANDS_5_1,s16X[ChOffset+16+5],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_5_1,s16X[ChOffset+48+11],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_5_2,s16X[ChOffset+32+5],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_5_2,s16X[ChOffset+32+11],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_5_3,s16X[ChOffset+48+5],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_5_3,s16X[ChOffset+16+11],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_5_4,s16X[ChOffset+64+5],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_5_4,s16X[ChOffset+11],s32Hi2;\ - MOV s32DCTY[5],s32Hi;\ - MOV s32DCTY[11],s32Hi2;\ + MUL s32Hi,WIND_8_SUBBANDS_5_0,pstrEncParams->s16X[ChOffset+5];\ + MUL s32Hi2,WIND_8_SUBBANDS_5_0,pstrEncParams->s16X[ChOffset+64+11];\ + MLA s32Hi,WIND_8_SUBBANDS_5_1,pstrEncParams->s16X[ChOffset+16+5],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_5_1,pstrEncParams->s16X[ChOffset+48+11],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_5_2,pstrEncParams->s16X[ChOffset+32+5],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_5_2,pstrEncParams->s16X[ChOffset+32+11],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_5_3,pstrEncParams->s16X[ChOffset+48+5],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_5_3,pstrEncParams->s16X[ChOffset+16+11],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_5_4,pstrEncParams->s16X[ChOffset+64+5],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_5_4,pstrEncParams->s16X[ChOffset+11],s32Hi2;\ + MOV pstrEncParams->s32DCTY[5],s32Hi;\ + MOV pstrEncParams->s32DCTY[11],s32Hi2;\ }\ } #define WINDOW_ACCU_8_6_10 \ {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_6_0,s16X[ChOffset+6];\ - MUL s32Hi2,WIND_8_SUBBANDS_6_0,s16X[ChOffset+64+10];\ - MLA s32Hi,WIND_8_SUBBANDS_6_1,s16X[ChOffset+16+6],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_6_1,s16X[ChOffset+48+10],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_6_2,s16X[ChOffset+32+6],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_6_2,s16X[ChOffset+32+10],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_6_3,s16X[ChOffset+48+6],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_6_3,s16X[ChOffset+16+10],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_6_4,s16X[ChOffset+64+6],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_6_4,s16X[ChOffset+10],s32Hi2;\ - MOV s32DCTY[6],s32Hi;\ - MOV s32DCTY[10],s32Hi2;\ + MUL s32Hi,WIND_8_SUBBANDS_6_0,pstrEncParams->s16X[ChOffset+6];\ + MUL s32Hi2,WIND_8_SUBBANDS_6_0,pstrEncParams->s16X[ChOffset+64+10];\ + MLA s32Hi,WIND_8_SUBBANDS_6_1,pstrEncParams->s16X[ChOffset+16+6],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_6_1,pstrEncParams->s16X[ChOffset+48+10],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_6_2,pstrEncParams->s16X[ChOffset+32+6],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_6_2,pstrEncParams->s16X[ChOffset+32+10],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_6_3,pstrEncParams->s16X[ChOffset+48+6],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_6_3,pstrEncParams->s16X[ChOffset+16+10],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_6_4,pstrEncParams->s16X[ChOffset+64+6],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_6_4,pstrEncParams->s16X[ChOffset+10],s32Hi2;\ + MOV pstrEncParams->s32DCTY[6],s32Hi;\ + MOV pstrEncParams->s32DCTY[10],s32Hi2;\ }\ } #define WINDOW_ACCU_8_7_9 \ {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_7_0,s16X[ChOffset+7];\ - MUL s32Hi2,WIND_8_SUBBANDS_7_0,s16X[ChOffset+64+9];\ - MLA s32Hi,WIND_8_SUBBANDS_7_1,s16X[ChOffset+16+7],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_7_1,s16X[ChOffset+48+9],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_7_2,s16X[ChOffset+32+7],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_7_2,s16X[ChOffset+32+9],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_7_3,s16X[ChOffset+48+7],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_7_3,s16X[ChOffset+16+9],s32Hi2;\ - MLA s32Hi,WIND_8_SUBBANDS_7_4,s16X[ChOffset+64+7],s32Hi;\ - MLA s32Hi2,WIND_8_SUBBANDS_7_4,s16X[ChOffset+9],s32Hi2;\ - MOV s32DCTY[7],s32Hi;\ - MOV s32DCTY[9],s32Hi2;\ + MUL s32Hi,WIND_8_SUBBANDS_7_0,pstrEncParams->s16X[ChOffset+7];\ + MUL s32Hi2,WIND_8_SUBBANDS_7_0,pstrEncParams->s16X[ChOffset+64+9];\ + MLA s32Hi,WIND_8_SUBBANDS_7_1,pstrEncParams->s16X[ChOffset+16+7],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_7_1,pstrEncParams->s16X[ChOffset+48+9],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_7_2,pstrEncParams->s16X[ChOffset+32+7],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_7_2,pstrEncParams->s16X[ChOffset+32+9],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_7_3,pstrEncParams->s16X[ChOffset+48+7],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_7_3,pstrEncParams->s16X[ChOffset+16+9],s32Hi2;\ + MLA s32Hi,WIND_8_SUBBANDS_7_4,pstrEncParams->s16X[ChOffset+64+7],s32Hi;\ + MLA s32Hi2,WIND_8_SUBBANDS_7_4,pstrEncParams->s16X[ChOffset+9],s32Hi2;\ + MOV pstrEncParams->s32DCTY[7],s32Hi;\ + MOV pstrEncParams->s32DCTY[9],s32Hi2;\ }\ } #define WINDOW_ACCU_8_8 \ {\ __asm\ {\ - MUL s32Hi,WIND_8_SUBBANDS_8_0,(s16X[ChOffset+8]+s16X[ChOffset+8+64]);\ - MLA s32Hi,WIND_8_SUBBANDS_8_1,(s16X[ChOffset+8+16]+s16X[ChOffset+8+64]),s32Hi;\ - MLA s32Hi,WIND_8_SUBBANDS_8_2,s16X[ChOffset+8+32],s32Hi;\ - MOV s32DCTY[8],s32Hi;\ + MUL s32Hi,WIND_8_SUBBANDS_8_0,(pstrEncParams->s16X[ChOffset+8]+pstrEncParams->s16X[ChOffset+8+64]);\ + MLA s32Hi,WIND_8_SUBBANDS_8_1,(pstrEncParams->s16X[ChOffset+8+16]+pstrEncParams->s16X[ChOffset+8+64]),s32Hi;\ + MLA s32Hi,WIND_8_SUBBANDS_8_2,pstrEncParams->s16X[ChOffset+8+32],s32Hi;\ + MOV pstrEncParams->s32DCTY[8],s32Hi;\ }\ } #define WINDOW_ACCU_4_0 \ {\ __asm\ {\ - MUL s32Hi,WIND_4_SUBBANDS_0_1,(s16X[ChOffset+8]-s16X[ChOffset+32]);\ - MLA s32Hi,WIND_4_SUBBANDS_0_2,(s16X[ChOffset+16]-s16X[ChOffset+24]),s32Hi;\ - MOV s32DCTY[0],s32Hi;\ + MUL s32Hi,WIND_4_SUBBANDS_0_1,(pstrEncParams->s16X[ChOffset+8]-pstrEncParams->s16X[ChOffset+32]);\ + MLA s32Hi,WIND_4_SUBBANDS_0_2,(pstrEncParams->s16X[ChOffset+16]-pstrEncParams->s16X[ChOffset+24]),s32Hi;\ + MOV pstrEncParams->s32DCTY[0],s32Hi;\ }\ } #define WINDOW_ACCU_4_1_7 \ {\ __asm\ {\ - MUL s32Hi,WIND_4_SUBBANDS_1_0,s16X[ChOffset+1];\ - MUL s32Hi2,WIND_4_SUBBANDS_1_0,s16X[ChOffset+32+7];\ - MLA s32Hi,WIND_4_SUBBANDS_1_1,s16X[ChOffset+8+1],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_1_1,s16X[ChOffset+24+7],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_1_2,s16X[ChOffset+16+1],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_1_2,s16X[ChOffset+16+7],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_1_3,s16X[ChOffset+24+1],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_1_3,s16X[ChOffset+8+7],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_1_4,s16X[ChOffset+32+1],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_1_4,s16X[ChOffset+7],s32Hi2;\ - MOV s32DCTY[1],s32Hi;\ - MOV s32DCTY[7],s32Hi2;\ + MUL s32Hi,WIND_4_SUBBANDS_1_0,pstrEncParams->s16X[ChOffset+1];\ + MUL s32Hi2,WIND_4_SUBBANDS_1_0,pstrEncParams->s16X[ChOffset+32+7];\ + MLA s32Hi,WIND_4_SUBBANDS_1_1,pstrEncParams->s16X[ChOffset+8+1],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_1_1,pstrEncParams->s16X[ChOffset+24+7],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_1_2,pstrEncParams->s16X[ChOffset+16+1],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_1_2,pstrEncParams->s16X[ChOffset+16+7],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_1_3,pstrEncParams->s16X[ChOffset+24+1],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_1_3,pstrEncParams->s16X[ChOffset+8+7],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_1_4,pstrEncParams->s16X[ChOffset+32+1],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_1_4,pstrEncParams->s16X[ChOffset+7],s32Hi2;\ + MOV pstrEncParams->s32DCTY[1],s32Hi;\ + MOV pstrEncParams->s32DCTY[7],s32Hi2;\ }\ } #define WINDOW_ACCU_4_2_6 \ {\ __asm\ {\ - MUL s32Hi,WIND_4_SUBBANDS_2_0,s16X[ChOffset+2];\ - MUL s32Hi2,WIND_4_SUBBANDS_2_0,s16X[ChOffset+32+6];\ - MLA s32Hi,WIND_4_SUBBANDS_2_1,s16X[ChOffset+8+2],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_2_1,s16X[ChOffset+24+6],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_2_2,s16X[ChOffset+16+2],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_2_2,s16X[ChOffset+16+6],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_2_3,s16X[ChOffset+24+2],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_2_3,s16X[ChOffset+8+6],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_2_4,s16X[ChOffset+32+2],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_2_4,s16X[ChOffset+6],s32Hi2;\ - MOV s32DCTY[2],s32Hi;\ - MOV s32DCTY[6],s32Hi2;\ + MUL s32Hi,WIND_4_SUBBANDS_2_0,pstrEncParams->s16X[ChOffset+2];\ + MUL s32Hi2,WIND_4_SUBBANDS_2_0,pstrEncParams->s16X[ChOffset+32+6];\ + MLA s32Hi,WIND_4_SUBBANDS_2_1,pstrEncParams->s16X[ChOffset+8+2],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_2_1,pstrEncParams->s16X[ChOffset+24+6],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_2_2,pstrEncParams->s16X[ChOffset+16+2],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_2_2,pstrEncParams->s16X[ChOffset+16+6],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_2_3,pstrEncParams->s16X[ChOffset+24+2],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_2_3,pstrEncParams->s16X[ChOffset+8+6],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_2_4,pstrEncParams->s16X[ChOffset+32+2],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_2_4,pstrEncParams->s16X[ChOffset+6],s32Hi2;\ + MOV pstrEncParams->s32DCTY[2],s32Hi;\ + MOV pstrEncParams->s32DCTY[6],s32Hi2;\ }\ } #define WINDOW_ACCU_4_3_5 \ {\ __asm\ {\ - MUL s32Hi,WIND_4_SUBBANDS_3_0,s16X[ChOffset+3];\ - MUL s32Hi2,WIND_4_SUBBANDS_3_0,s16X[ChOffset+32+5];\ - MLA s32Hi,WIND_4_SUBBANDS_3_1,s16X[ChOffset+8+3],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_3_1,s16X[ChOffset+24+5],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_3_2,s16X[ChOffset+16+3],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_3_2,s16X[ChOffset+16+5],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_3_3,s16X[ChOffset+24+3],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_3_3,s16X[ChOffset+8+5],s32Hi2;\ - MLA s32Hi,WIND_4_SUBBANDS_3_4,s16X[ChOffset+32+3],s32Hi;\ - MLA s32Hi2,WIND_4_SUBBANDS_3_4,s16X[ChOffset+5],s32Hi2;\ - MOV s32DCTY[3],s32Hi;\ - MOV s32DCTY[5],s32Hi2;\ + MUL s32Hi,WIND_4_SUBBANDS_3_0,pstrEncParams->s16X[ChOffset+3];\ + MUL s32Hi2,WIND_4_SUBBANDS_3_0,pstrEncParams->s16X[ChOffset+32+5];\ + MLA s32Hi,WIND_4_SUBBANDS_3_1,pstrEncParams->s16X[ChOffset+8+3],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_3_1,pstrEncParams->s16X[ChOffset+24+5],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_3_2,pstrEncParams->s16X[ChOffset+16+3],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_3_2,pstrEncParams->s16X[ChOffset+16+5],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_3_3,pstrEncParams->s16X[ChOffset+24+3],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_3_3,pstrEncParams->s16X[ChOffset+8+5],s32Hi2;\ + MLA s32Hi,WIND_4_SUBBANDS_3_4,pstrEncParams->s16X[ChOffset+32+3],s32Hi;\ + MLA s32Hi2,WIND_4_SUBBANDS_3_4,pstrEncParams->s16X[ChOffset+5],s32Hi2;\ + MOV pstrEncParams->s32DCTY[3],s32Hi;\ + MOV pstrEncParams->s32DCTY[5],s32Hi2;\ }\ } #define WINDOW_ACCU_4_4 \ {\ __asm\ {\ - MUL s32Hi,WIND_4_SUBBANDS_4_0,(s16X[ChOffset+4]+s16X[ChOffset+4+32]);\ - MLA s32Hi,WIND_4_SUBBANDS_4_1,(s16X[ChOffset+4+8]+s16X[ChOffset+4+24]),s32Hi;\ - MLA s32Hi,WIND_4_SUBBANDS_4_2,s16X[ChOffset+4+16],s32Hi;\ - MOV s32DCTY[4],s32Hi;\ + MUL s32Hi,WIND_4_SUBBANDS_4_0,(pstrEncParams->s16X[ChOffset+4]+pstrEncParams->s16X[ChOffset+4+32]);\ + MLA s32Hi,WIND_4_SUBBANDS_4_1,(pstrEncParams->s16X[ChOffset+4+8]+pstrEncParams->s16X[ChOffset+4+24]),s32Hi;\ + MLA s32Hi,WIND_4_SUBBANDS_4_2,pstrEncParams->s16X[ChOffset+4+16],s32Hi;\ + MOV pstrEncParams->s32DCTY[4],s32Hi;\ }\ } @@ -451,358 +445,358 @@ static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf S #if (SBC_IS_64_MULT_IN_WINDOW_ACCU == TRUE) #define WINDOW_ACCU_8_0 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_0_1*(SINT64)(s16X[ChOffset+16]-s16X[ChOffset+64]);\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_0_2*(SINT64)(s16X[ChOffset+32]-s16X[ChOffset+48]);\ - s32DCTY[0]=(SINT32)(s64Temp>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_0_1*(SINT64)(pstrEncParams->s16X[ChOffset+16]-pstrEncParams->s16X[ChOffset+64]);\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_0_2*(SINT64)(pstrEncParams->s16X[ChOffset+32]-pstrEncParams->s16X[ChOffset+48]);\ + pstrEncParams->s32DCTY[0]=(SINT32)(s64Temp>>16);\ } #define WINDOW_ACCU_8_1_15 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_1_0*(SINT64)s16X[ChOffset+1];\ - s64Temp2=(SINT64)WIND_8_SUBBANDS_1_0*(SINT64)s16X[ChOffset+64+15];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_1_1*(SINT64)s16X[ChOffset+16+1];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_1_1*(SINT64)s16X[ChOffset+48+15];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_1_2*(SINT64)s16X[ChOffset+32+1];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_1_2*(SINT64)s16X[ChOffset+32+15];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_1_3*(SINT64)s16X[ChOffset+48+1];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_1_3*(SINT64)s16X[ChOffset+16+15];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_1_4*(SINT64)s16X[ChOffset+64+1];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_1_4*(SINT64)s16X[ChOffset+15];\ - s32DCTY[1]=(SINT32)(s64Temp>>16);\ - s32DCTY[15]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_1_0*(SINT64)pstrEncParams->s16X[ChOffset+1];\ + s64Temp2=(SINT64)WIND_8_SUBBANDS_1_0*(SINT64)pstrEncParams->s16X[ChOffset+64+15];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_1_1*(SINT64)pstrEncParams->s16X[ChOffset+16+1];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_1_1*(SINT64)pstrEncParams->s16X[ChOffset+48+15];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_1_2*(SINT64)pstrEncParams->s16X[ChOffset+32+1];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_1_2*(SINT64)pstrEncParams->s16X[ChOffset+32+15];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_1_3*(SINT64)pstrEncParams->s16X[ChOffset+48+1];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_1_3*(SINT64)pstrEncParams->s16X[ChOffset+16+15];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_1_4*(SINT64)pstrEncParams->s16X[ChOffset+64+1];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_1_4*(SINT64)pstrEncParams->s16X[ChOffset+15];\ + pstrEncParams->s32DCTY[1]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[15]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_8_2_14 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_2_0*(SINT64)s16X[ChOffset+2];\ - s64Temp2=(SINT64)WIND_8_SUBBANDS_2_0*(SINT64)s16X[ChOffset+64+14];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_2_1*(SINT64)s16X[ChOffset+16+2];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_2_1*(SINT64)s16X[ChOffset+48+14];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_2_2*(SINT64)s16X[ChOffset+32+2];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_2_2*(SINT64)s16X[ChOffset+32+14];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_2_3*(SINT64)s16X[ChOffset+48+2];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_2_3*(SINT64)s16X[ChOffset+16+14];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_2_4*(SINT64)s16X[ChOffset+64+2];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_2_4*(SINT64)s16X[ChOffset+14];\ - s32DCTY[2]=(SINT32)(s64Temp>>16);\ - s32DCTY[14]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_2_0*(SINT64)pstrEncParams->s16X[ChOffset+2];\ + s64Temp2=(SINT64)WIND_8_SUBBANDS_2_0*(SINT64)pstrEncParams->s16X[ChOffset+64+14];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_2_1*(SINT64)pstrEncParams->s16X[ChOffset+16+2];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_2_1*(SINT64)pstrEncParams->s16X[ChOffset+48+14];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_2_2*(SINT64)pstrEncParams->s16X[ChOffset+32+2];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_2_2*(SINT64)pstrEncParams->s16X[ChOffset+32+14];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_2_3*(SINT64)pstrEncParams->s16X[ChOffset+48+2];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_2_3*(SINT64)pstrEncParams->s16X[ChOffset+16+14];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_2_4*(SINT64)pstrEncParams->s16X[ChOffset+64+2];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_2_4*(SINT64)pstrEncParams->s16X[ChOffset+14];\ + pstrEncParams->s32DCTY[2]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[14]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_8_3_13 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_3_0*(SINT64)s16X[ChOffset+3];\ - s64Temp2=(SINT64)WIND_8_SUBBANDS_3_0*(SINT64)s16X[ChOffset+64+13];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_3_1*(SINT64)s16X[ChOffset+16+3];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_3_1*(SINT64)s16X[ChOffset+48+13];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_3_2*(SINT64)s16X[ChOffset+32+3];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_3_2*(SINT64)s16X[ChOffset+32+13];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_3_3*(SINT64)s16X[ChOffset+48+3];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_3_3*(SINT64)s16X[ChOffset+16+13];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_3_4*(SINT64)s16X[ChOffset+64+3];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_3_4*(SINT64)s16X[ChOffset+13];\ - s32DCTY[3]=(SINT32)(s64Temp>>16);\ - s32DCTY[13]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_3_0*(SINT64)pstrEncParams->s16X[ChOffset+3];\ + s64Temp2=(SINT64)WIND_8_SUBBANDS_3_0*(SINT64)pstrEncParams->s16X[ChOffset+64+13];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_3_1*(SINT64)pstrEncParams->s16X[ChOffset+16+3];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_3_1*(SINT64)pstrEncParams->s16X[ChOffset+48+13];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_3_2*(SINT64)pstrEncParams->s16X[ChOffset+32+3];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_3_2*(SINT64)pstrEncParams->s16X[ChOffset+32+13];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_3_3*(SINT64)pstrEncParams->s16X[ChOffset+48+3];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_3_3*(SINT64)pstrEncParams->s16X[ChOffset+16+13];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_3_4*(SINT64)pstrEncParams->s16X[ChOffset+64+3];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_3_4*(SINT64)pstrEncParams->s16X[ChOffset+13];\ + pstrEncParams->s32DCTY[3]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[13]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_8_4_12 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_4_0*(SINT64)s16X[ChOffset+4];\ - s64Temp2=(SINT64)WIND_8_SUBBANDS_4_0*(SINT64)s16X[ChOffset+64+12];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_4_1*(SINT64)s16X[ChOffset+16+4];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_4_1*(SINT64)s16X[ChOffset+48+12];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_4_2*(SINT64)s16X[ChOffset+32+4];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_4_2*(SINT64)s16X[ChOffset+32+12];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_4_3*(SINT64)s16X[ChOffset+48+4];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_4_3*(SINT64)s16X[ChOffset+16+12];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_4_4*(SINT64)s16X[ChOffset+64+4];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_4_4*(SINT64)s16X[ChOffset+12];\ - s32DCTY[4]=(SINT32)(s64Temp>>16);\ - s32DCTY[12]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_4_0*(SINT64)pstrEncParams->s16X[ChOffset+4];\ + s64Temp2=(SINT64)WIND_8_SUBBANDS_4_0*(SINT64)pstrEncParams->s16X[ChOffset+64+12];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_4_1*(SINT64)pstrEncParams->s16X[ChOffset+16+4];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_4_1*(SINT64)pstrEncParams->s16X[ChOffset+48+12];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_4_2*(SINT64)pstrEncParams->s16X[ChOffset+32+4];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_4_2*(SINT64)pstrEncParams->s16X[ChOffset+32+12];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_4_3*(SINT64)pstrEncParams->s16X[ChOffset+48+4];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_4_3*(SINT64)pstrEncParams->s16X[ChOffset+16+12];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_4_4*(SINT64)pstrEncParams->s16X[ChOffset+64+4];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_4_4*(SINT64)pstrEncParams->s16X[ChOffset+12];\ + pstrEncParams->s32DCTY[4]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[12]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_8_5_11 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_5_0*(SINT64)s16X[ChOffset+5];\ - s64Temp2=(SINT64)WIND_8_SUBBANDS_5_0*(SINT64)s16X[ChOffset+64+11];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_5_1*(SINT64)s16X[ChOffset+16+5];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_5_1*(SINT64)s16X[ChOffset+48+11];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_5_2*(SINT64)s16X[ChOffset+32+5];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_5_2*(SINT64)s16X[ChOffset+32+11];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_5_3*(SINT64)s16X[ChOffset+48+5];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_5_3*(SINT64)s16X[ChOffset+16+11];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_5_4*(SINT64)s16X[ChOffset+64+5];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_5_4*(SINT64)s16X[ChOffset+11];\ - s32DCTY[5]=(SINT32)(s64Temp>>16);\ - s32DCTY[11]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_5_0*(SINT64)pstrEncParams->s16X[ChOffset+5];\ + s64Temp2=(SINT64)WIND_8_SUBBANDS_5_0*(SINT64)pstrEncParams->s16X[ChOffset+64+11];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_5_1*(SINT64)pstrEncParams->s16X[ChOffset+16+5];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_5_1*(SINT64)pstrEncParams->s16X[ChOffset+48+11];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_5_2*(SINT64)pstrEncParams->s16X[ChOffset+32+5];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_5_2*(SINT64)pstrEncParams->s16X[ChOffset+32+11];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_5_3*(SINT64)pstrEncParams->s16X[ChOffset+48+5];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_5_3*(SINT64)pstrEncParams->s16X[ChOffset+16+11];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_5_4*(SINT64)pstrEncParams->s16X[ChOffset+64+5];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_5_4*(SINT64)pstrEncParams->s16X[ChOffset+11];\ + pstrEncParams->s32DCTY[5]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[11]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_8_6_10 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_6_0*(SINT64)s16X[ChOffset+6];\ - s64Temp2=(SINT64)WIND_8_SUBBANDS_6_0*(SINT64)s16X[ChOffset+64+10];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_6_1*(SINT64)s16X[ChOffset+16+6];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_6_1*(SINT64)s16X[ChOffset+48+10];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_6_2*(SINT64)s16X[ChOffset+32+6];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_6_2*(SINT64)s16X[ChOffset+32+10];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_6_3*(SINT64)s16X[ChOffset+48+6];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_6_3*(SINT64)s16X[ChOffset+16+10];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_6_4*(SINT64)s16X[ChOffset+64+6];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_6_4*(SINT64)s16X[ChOffset+10];\ - s32DCTY[6]=(SINT32)(s64Temp>>16);\ - s32DCTY[10]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_6_0*(SINT64)pstrEncParams->s16X[ChOffset+6];\ + s64Temp2=(SINT64)WIND_8_SUBBANDS_6_0*(SINT64)pstrEncParams->s16X[ChOffset+64+10];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_6_1*(SINT64)pstrEncParams->s16X[ChOffset+16+6];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_6_1*(SINT64)pstrEncParams->s16X[ChOffset+48+10];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_6_2*(SINT64)pstrEncParams->s16X[ChOffset+32+6];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_6_2*(SINT64)pstrEncParams->s16X[ChOffset+32+10];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_6_3*(SINT64)pstrEncParams->s16X[ChOffset+48+6];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_6_3*(SINT64)pstrEncParams->s16X[ChOffset+16+10];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_6_4*(SINT64)pstrEncParams->s16X[ChOffset+64+6];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_6_4*(SINT64)pstrEncParams->s16X[ChOffset+10];\ + pstrEncParams->s32DCTY[6]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[10]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_8_7_9 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_7_0*(SINT64)s16X[ChOffset+7];\ - s64Temp2=(SINT64)WIND_8_SUBBANDS_7_0*(SINT64)s16X[ChOffset+64+9];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_7_1*(SINT64)s16X[ChOffset+16+7];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_7_1*(SINT64)s16X[ChOffset+48+9];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_7_2*(SINT64)s16X[ChOffset+32+7];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_7_2*(SINT64)s16X[ChOffset+32+9];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_7_3*(SINT64)s16X[ChOffset+48+7];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_7_3*(SINT64)s16X[ChOffset+16+9];\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_7_4*(SINT64)s16X[ChOffset+64+7];\ - s64Temp2+=(SINT64)WIND_8_SUBBANDS_7_4*(SINT64)s16X[ChOffset+9];\ - s32DCTY[7]=(SINT32)(s64Temp>>16);\ - s32DCTY[9]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_7_0*(SINT64)pstrEncParams->s16X[ChOffset+7];\ + s64Temp2=(SINT64)WIND_8_SUBBANDS_7_0*(SINT64)pstrEncParams->s16X[ChOffset+64+9];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_7_1*(SINT64)pstrEncParams->s16X[ChOffset+16+7];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_7_1*(SINT64)pstrEncParams->s16X[ChOffset+48+9];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_7_2*(SINT64)pstrEncParams->s16X[ChOffset+32+7];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_7_2*(SINT64)pstrEncParams->s16X[ChOffset+32+9];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_7_3*(SINT64)pstrEncParams->s16X[ChOffset+48+7];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_7_3*(SINT64)pstrEncParams->s16X[ChOffset+16+9];\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_7_4*(SINT64)pstrEncParams->s16X[ChOffset+64+7];\ + s64Temp2+=(SINT64)WIND_8_SUBBANDS_7_4*(SINT64)pstrEncParams->s16X[ChOffset+9];\ + pstrEncParams->s32DCTY[7]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[9]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_8_8 \ {\ - s64Temp=(SINT64)WIND_8_SUBBANDS_8_0*(SINT64)(s16X[ChOffset+8]+s16X[ChOffset+64+8]);\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_8_1*(SINT64)(s16X[ChOffset+16+8]+s16X[ChOffset+48+8]);\ - s64Temp+=(SINT64)WIND_8_SUBBANDS_8_2*(SINT64)s16X[ChOffset+32+8];\ - s32DCTY[8]=(SINT32)(s64Temp>>16);\ + s64Temp=(SINT64)WIND_8_SUBBANDS_8_0*(SINT64)(pstrEncParams->s16X[ChOffset+8]+pstrEncParams->s16X[ChOffset+64+8]);\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_8_1*(SINT64)(pstrEncParams->s16X[ChOffset+16+8]+pstrEncParams->s16X[ChOffset+48+8]);\ + s64Temp+=(SINT64)WIND_8_SUBBANDS_8_2*(SINT64)pstrEncParams->s16X[ChOffset+32+8];\ + pstrEncParams->s32DCTY[8]=(SINT32)(s64Temp>>16);\ } #define WINDOW_ACCU_4_0 \ {\ - s64Temp=(SINT64)WIND_4_SUBBANDS_0_1*(SINT64)(s16X[ChOffset+8]-s16X[ChOffset+32]);\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_0_2*(SINT64)(s16X[ChOffset+16]-s16X[ChOffset+24]);\ - s32DCTY[0]=(SINT32)(s64Temp>>16);\ + s64Temp=(SINT64)WIND_4_SUBBANDS_0_1*(SINT64)(pstrEncParams->s16X[ChOffset+8]-pstrEncParams->s16X[ChOffset+32]);\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_0_2*(SINT64)(pstrEncParams->s16X[ChOffset+16]-pstrEncParams->s16X[ChOffset+24]);\ + pstrEncParams->s32DCTY[0]=(SINT32)(s64Temp>>16);\ } #define WINDOW_ACCU_4_1_7 \ {\ - s64Temp=(SINT64)WIND_4_SUBBANDS_1_0*(SINT64)s16X[ChOffset+1];\ - s64Temp2=(SINT64)WIND_4_SUBBANDS_1_0*(SINT64)s16X[ChOffset+32+7];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_1_1*(SINT64)s16X[ChOffset+8+1];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_1_1*(SINT64)s16X[ChOffset+24+7];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_1_2*(SINT64)s16X[ChOffset+16+1];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_1_2*(SINT64)s16X[ChOffset+16+7];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_1_3*(SINT64)s16X[ChOffset+24+1];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_1_3*(SINT64)s16X[ChOffset+8+7];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_1_4*(SINT64)s16X[ChOffset+32+1];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_1_4*(SINT64)s16X[ChOffset+7];\ - s32DCTY[1]=(SINT32)(s64Temp>>16);\ - s32DCTY[7]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_4_SUBBANDS_1_0*(SINT64)pstrEncParams->s16X[ChOffset+1];\ + s64Temp2=(SINT64)WIND_4_SUBBANDS_1_0*(SINT64)pstrEncParams->s16X[ChOffset+32+7];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_1_1*(SINT64)pstrEncParams->s16X[ChOffset+8+1];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_1_1*(SINT64)pstrEncParams->s16X[ChOffset+24+7];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_1_2*(SINT64)pstrEncParams->s16X[ChOffset+16+1];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_1_2*(SINT64)pstrEncParams->s16X[ChOffset+16+7];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_1_3*(SINT64)pstrEncParams->s16X[ChOffset+24+1];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_1_3*(SINT64)pstrEncParams->s16X[ChOffset+8+7];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_1_4*(SINT64)pstrEncParams->s16X[ChOffset+32+1];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_1_4*(SINT64)pstrEncParams->s16X[ChOffset+7];\ + pstrEncParams->s32DCTY[1]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[7]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_4_2_6 \ {\ - s64Temp=(SINT64)WIND_4_SUBBANDS_2_0*(SINT64)s16X[ChOffset+2];\ - s64Temp2=(SINT64)WIND_4_SUBBANDS_2_0*(SINT64)s16X[ChOffset+32+6];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_2_1*(SINT64)s16X[ChOffset+8+2];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_2_1*(SINT64)s16X[ChOffset+24+6];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_2_2*(SINT64)s16X[ChOffset+16+2];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_2_2*(SINT64)s16X[ChOffset+16+6];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_2_3*(SINT64)s16X[ChOffset+24+2];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_2_3*(SINT64)s16X[ChOffset+8+6];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_2_4*(SINT64)s16X[ChOffset+32+2];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_2_4*(SINT64)s16X[ChOffset+6];\ - s32DCTY[2]=(SINT32)(s64Temp>>16);\ - s32DCTY[6]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_4_SUBBANDS_2_0*(SINT64)pstrEncParams->s16X[ChOffset+2];\ + s64Temp2=(SINT64)WIND_4_SUBBANDS_2_0*(SINT64)pstrEncParams->s16X[ChOffset+32+6];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_2_1*(SINT64)pstrEncParams->s16X[ChOffset+8+2];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_2_1*(SINT64)pstrEncParams->s16X[ChOffset+24+6];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_2_2*(SINT64)pstrEncParams->s16X[ChOffset+16+2];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_2_2*(SINT64)pstrEncParams->s16X[ChOffset+16+6];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_2_3*(SINT64)pstrEncParams->s16X[ChOffset+24+2];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_2_3*(SINT64)pstrEncParams->s16X[ChOffset+8+6];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_2_4*(SINT64)pstrEncParams->s16X[ChOffset+32+2];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_2_4*(SINT64)pstrEncParams->s16X[ChOffset+6];\ + pstrEncParams->s32DCTY[2]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[6]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_4_3_5 \ {\ - s64Temp=(SINT64)WIND_4_SUBBANDS_3_0*(SINT64)s16X[ChOffset+3];\ - s64Temp2=(SINT64)WIND_4_SUBBANDS_3_0*(SINT64)s16X[ChOffset+32+5];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_3_1*(SINT64)s16X[ChOffset+8+3];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_3_1*(SINT64)s16X[ChOffset+24+5];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_3_2*(SINT64)s16X[ChOffset+16+3];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_3_2*(SINT64)s16X[ChOffset+16+5];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_3_3*(SINT64)s16X[ChOffset+24+3];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_3_3*(SINT64)s16X[ChOffset+8+5];\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_3_4*(SINT64)s16X[ChOffset+32+3];\ - s64Temp2+=(SINT64)WIND_4_SUBBANDS_3_4*(SINT64)s16X[ChOffset+5];\ - s32DCTY[3]=(SINT32)(s64Temp>>16);\ - s32DCTY[5]=(SINT32)(s64Temp2>>16);\ + s64Temp=(SINT64)WIND_4_SUBBANDS_3_0*(SINT64)pstrEncParams->s16X[ChOffset+3];\ + s64Temp2=(SINT64)WIND_4_SUBBANDS_3_0*(SINT64)pstrEncParams->s16X[ChOffset+32+5];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_3_1*(SINT64)pstrEncParams->s16X[ChOffset+8+3];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_3_1*(SINT64)pstrEncParams->s16X[ChOffset+24+5];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_3_2*(SINT64)pstrEncParams->s16X[ChOffset+16+3];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_3_2*(SINT64)pstrEncParams->s16X[ChOffset+16+5];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_3_3*(SINT64)pstrEncParams->s16X[ChOffset+24+3];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_3_3*(SINT64)pstrEncParams->s16X[ChOffset+8+5];\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_3_4*(SINT64)pstrEncParams->s16X[ChOffset+32+3];\ + s64Temp2+=(SINT64)WIND_4_SUBBANDS_3_4*(SINT64)pstrEncParams->s16X[ChOffset+5];\ + pstrEncParams->s32DCTY[3]=(SINT32)(s64Temp>>16);\ + pstrEncParams->s32DCTY[5]=(SINT32)(s64Temp2>>16);\ } #define WINDOW_ACCU_4_4 \ {\ - s64Temp=(SINT64)WIND_4_SUBBANDS_4_0*(SINT64)(s16X[ChOffset+4]+s16X[ChOffset+4+32]);\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_4_1*(SINT64)(s16X[ChOffset+4+8]+s16X[ChOffset+4+24]);\ - s64Temp+=(SINT64)WIND_4_SUBBANDS_4_2*(SINT64)s16X[ChOffset+4+16];\ - s32DCTY[4]=(SINT32)(s64Temp>>16);\ + s64Temp=(SINT64)WIND_4_SUBBANDS_4_0*(SINT64)(pstrEncParams->s16X[ChOffset+4]+pstrEncParams->s16X[ChOffset+4+32]);\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_4_1*(SINT64)(pstrEncParams->s16X[ChOffset+4+8]+pstrEncParams->s16X[ChOffset+4+24]);\ + s64Temp+=(SINT64)WIND_4_SUBBANDS_4_2*(SINT64)pstrEncParams->s16X[ChOffset+4+16];\ + pstrEncParams->s32DCTY[4]=(SINT32)(s64Temp>>16);\ } #else /* SBC_IS_64_MULT_IN_WINDOW_ACCU == FALSE */ #define WINDOW_ACCU_8_0 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_0_1*(SINT32)(s16X[ChOffset+16]-s16X[ChOffset+64]);\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_0_2*(SINT32)(s16X[ChOffset+32]-s16X[ChOffset+48]);\ - s32DCTY[0]=(SINT32)s32Temp;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_0_1*(SINT32)(pstrEncParams->s16X[ChOffset+16]-pstrEncParams->s16X[ChOffset+64]);\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_0_2*(SINT32)(pstrEncParams->s16X[ChOffset+32]-pstrEncParams->s16X[ChOffset+48]);\ + pstrEncParams->s32DCTY[0]=(SINT32)s32Temp;\ } #define WINDOW_ACCU_8_1_15 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_1_0*(SINT32)s16X[ChOffset+1];\ - s32Temp2=(SINT32)WIND_8_SUBBANDS_1_0*(SINT32)s16X[ChOffset+64+15];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_1_1*(SINT32)s16X[ChOffset+16+1];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_1_1*(SINT32)s16X[ChOffset+48+15];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_1_2*(SINT32)s16X[ChOffset+32+1];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_1_2*(SINT32)s16X[ChOffset+32+15];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_1_3*(SINT32)s16X[ChOffset+48+1];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_1_3*(SINT32)s16X[ChOffset+16+15];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_1_4*(SINT32)s16X[ChOffset+64+1];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_1_4*(SINT32)s16X[ChOffset+15];\ - s32DCTY[1]=(SINT32)s32Temp;\ - s32DCTY[15]=(SINT32)s32Temp2;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_1_0*(SINT32)pstrEncParams->s16X[ChOffset+1];\ + s32Temp2=(SINT32)WIND_8_SUBBANDS_1_0*(SINT32)pstrEncParams->s16X[ChOffset+64+15];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_1_1*(SINT32)pstrEncParams->s16X[ChOffset+16+1];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_1_1*(SINT32)pstrEncParams->s16X[ChOffset+48+15];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_1_2*(SINT32)pstrEncParams->s16X[ChOffset+32+1];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_1_2*(SINT32)pstrEncParams->s16X[ChOffset+32+15];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_1_3*(SINT32)pstrEncParams->s16X[ChOffset+48+1];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_1_3*(SINT32)pstrEncParams->s16X[ChOffset+16+15];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_1_4*(SINT32)pstrEncParams->s16X[ChOffset+64+1];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_1_4*(SINT32)pstrEncParams->s16X[ChOffset+15];\ + pstrEncParams->s32DCTY[1]=(SINT32)s32Temp;\ + pstrEncParams->s32DCTY[15]=(SINT32)s32Temp2;\ } #define WINDOW_ACCU_8_2_14 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_2_0*(SINT32)s16X[ChOffset+2];\ - s32Temp2=(SINT32)WIND_8_SUBBANDS_2_0*(SINT32)s16X[ChOffset+64+14];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_2_1*(SINT32)s16X[ChOffset+16+2];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_2_1*(SINT32)s16X[ChOffset+48+14];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_2_2*(SINT32)s16X[ChOffset+32+2];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_2_2*(SINT32)s16X[ChOffset+32+14];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_2_3*(SINT32)s16X[ChOffset+48+2];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_2_3*(SINT32)s16X[ChOffset+16+14];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_2_4*(SINT32)s16X[ChOffset+64+2];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_2_4*(SINT32)s16X[ChOffset+14];\ - s32DCTY[2]=(SINT32)s32Temp;\ - s32DCTY[14]=(SINT32)s32Temp2;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_2_0*(SINT32)pstrEncParams->s16X[ChOffset+2];\ + s32Temp2=(SINT32)WIND_8_SUBBANDS_2_0*(SINT32)pstrEncParams->s16X[ChOffset+64+14];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_2_1*(SINT32)pstrEncParams->s16X[ChOffset+16+2];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_2_1*(SINT32)pstrEncParams->s16X[ChOffset+48+14];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_2_2*(SINT32)pstrEncParams->s16X[ChOffset+32+2];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_2_2*(SINT32)pstrEncParams->s16X[ChOffset+32+14];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_2_3*(SINT32)pstrEncParams->s16X[ChOffset+48+2];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_2_3*(SINT32)pstrEncParams->s16X[ChOffset+16+14];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_2_4*(SINT32)pstrEncParams->s16X[ChOffset+64+2];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_2_4*(SINT32)pstrEncParams->s16X[ChOffset+14];\ + pstrEncParams->s32DCTY[2]=(SINT32)s32Temp;\ + pstrEncParams->s32DCTY[14]=(SINT32)s32Temp2;\ } #define WINDOW_ACCU_8_3_13 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_3_0*(SINT32)s16X[ChOffset+3];\ - s32Temp2=(SINT32)WIND_8_SUBBANDS_3_0*(SINT32)s16X[ChOffset+64+13];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_3_1*(SINT32)s16X[ChOffset+16+3];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_3_1*(SINT32)s16X[ChOffset+48+13];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_3_2*(SINT32)s16X[ChOffset+32+3];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_3_2*(SINT32)s16X[ChOffset+32+13];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_3_3*(SINT32)s16X[ChOffset+48+3];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_3_3*(SINT32)s16X[ChOffset+16+13];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_3_4*(SINT32)s16X[ChOffset+64+3];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_3_4*(SINT32)s16X[ChOffset+13];\ - s32DCTY[3]=(SINT32)s32Temp;\ - s32DCTY[13]=(SINT32)s32Temp2;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_3_0*(SINT32)pstrEncParams->s16X[ChOffset+3];\ + s32Temp2=(SINT32)WIND_8_SUBBANDS_3_0*(SINT32)pstrEncParams->s16X[ChOffset+64+13];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_3_1*(SINT32)pstrEncParams->s16X[ChOffset+16+3];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_3_1*(SINT32)pstrEncParams->s16X[ChOffset+48+13];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_3_2*(SINT32)pstrEncParams->s16X[ChOffset+32+3];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_3_2*(SINT32)pstrEncParams->s16X[ChOffset+32+13];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_3_3*(SINT32)pstrEncParams->s16X[ChOffset+48+3];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_3_3*(SINT32)pstrEncParams->s16X[ChOffset+16+13];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_3_4*(SINT32)pstrEncParams->s16X[ChOffset+64+3];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_3_4*(SINT32)pstrEncParams->s16X[ChOffset+13];\ + pstrEncParams->s32DCTY[3]=(SINT32)s32Temp;\ + pstrEncParams->s32DCTY[13]=(SINT32)s32Temp2;\ } #define WINDOW_ACCU_8_4_12 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_4_0*(SINT32)s16X[ChOffset+4];\ - s32Temp2=(SINT32)WIND_8_SUBBANDS_4_0*(SINT32)s16X[ChOffset+64+12];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_4_1*(SINT32)s16X[ChOffset+16+4];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_4_1*(SINT32)s16X[ChOffset+48+12];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_4_2*(SINT32)s16X[ChOffset+32+4];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_4_2*(SINT32)s16X[ChOffset+32+12];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_4_3*(SINT32)s16X[ChOffset+48+4];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_4_3*(SINT32)s16X[ChOffset+16+12];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_4_4*(SINT32)s16X[ChOffset+64+4];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_4_4*(SINT32)s16X[ChOffset+12];\ - s32DCTY[4]=(SINT32)s32Temp;\ - s32DCTY[12]=(SINT32)s32Temp2;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_4_0*(SINT32)pstrEncParams->s16X[ChOffset+4];\ + s32Temp2=(SINT32)WIND_8_SUBBANDS_4_0*(SINT32)pstrEncParams->s16X[ChOffset+64+12];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_4_1*(SINT32)pstrEncParams->s16X[ChOffset+16+4];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_4_1*(SINT32)pstrEncParams->s16X[ChOffset+48+12];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_4_2*(SINT32)pstrEncParams->s16X[ChOffset+32+4];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_4_2*(SINT32)pstrEncParams->s16X[ChOffset+32+12];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_4_3*(SINT32)pstrEncParams->s16X[ChOffset+48+4];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_4_3*(SINT32)pstrEncParams->s16X[ChOffset+16+12];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_4_4*(SINT32)pstrEncParams->s16X[ChOffset+64+4];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_4_4*(SINT32)pstrEncParams->s16X[ChOffset+12];\ + pstrEncParams->s32DCTY[4]=(SINT32)s32Temp;\ + pstrEncParams->s32DCTY[12]=(SINT32)s32Temp2;\ } #define WINDOW_ACCU_8_5_11 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_5_0*(SINT32)s16X[ChOffset+5];\ - s32Temp2=(SINT32)WIND_8_SUBBANDS_5_0*(SINT32)s16X[ChOffset+64+11];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_5_1*(SINT32)s16X[ChOffset+16+5];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_5_1*(SINT32)s16X[ChOffset+48+11];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_5_2*(SINT32)s16X[ChOffset+32+5];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_5_2*(SINT32)s16X[ChOffset+32+11];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_5_3*(SINT32)s16X[ChOffset+48+5];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_5_3*(SINT32)s16X[ChOffset+16+11];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_5_4*(SINT32)s16X[ChOffset+64+5];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_5_4*(SINT32)s16X[ChOffset+11];\ - s32DCTY[5]=(SINT32)s32Temp;\ - s32DCTY[11]=(SINT32)s32Temp2;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_5_0*(SINT32)pstrEncParams->s16X[ChOffset+5];\ + s32Temp2=(SINT32)WIND_8_SUBBANDS_5_0*(SINT32)pstrEncParams->s16X[ChOffset+64+11];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_5_1*(SINT32)pstrEncParams->s16X[ChOffset+16+5];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_5_1*(SINT32)pstrEncParams->s16X[ChOffset+48+11];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_5_2*(SINT32)pstrEncParams->s16X[ChOffset+32+5];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_5_2*(SINT32)pstrEncParams->s16X[ChOffset+32+11];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_5_3*(SINT32)pstrEncParams->s16X[ChOffset+48+5];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_5_3*(SINT32)pstrEncParams->s16X[ChOffset+16+11];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_5_4*(SINT32)pstrEncParams->s16X[ChOffset+64+5];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_5_4*(SINT32)pstrEncParams->s16X[ChOffset+11];\ + pstrEncParams->s32DCTY[5]=(SINT32)s32Temp;\ + pstrEncParams->s32DCTY[11]=(SINT32)s32Temp2;\ } #define WINDOW_ACCU_8_6_10 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_6_0*(SINT32)s16X[ChOffset+6];\ - s32Temp2=(SINT32)WIND_8_SUBBANDS_6_0*(SINT32)s16X[ChOffset+64+10];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_6_1*(SINT32)s16X[ChOffset+16+6];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_6_1*(SINT32)s16X[ChOffset+48+10];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_6_2*(SINT32)s16X[ChOffset+32+6];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_6_2*(SINT32)s16X[ChOffset+32+10];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_6_3*(SINT32)s16X[ChOffset+48+6];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_6_3*(SINT32)s16X[ChOffset+16+10];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_6_4*(SINT32)s16X[ChOffset+64+6];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_6_4*(SINT32)s16X[ChOffset+10];\ - s32DCTY[6]=(SINT32)s32Temp;\ - s32DCTY[10]=(SINT32)s32Temp2;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_6_0*(SINT32)pstrEncParams->s16X[ChOffset+6];\ + s32Temp2=(SINT32)WIND_8_SUBBANDS_6_0*(SINT32)pstrEncParams->s16X[ChOffset+64+10];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_6_1*(SINT32)pstrEncParams->s16X[ChOffset+16+6];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_6_1*(SINT32)pstrEncParams->s16X[ChOffset+48+10];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_6_2*(SINT32)pstrEncParams->s16X[ChOffset+32+6];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_6_2*(SINT32)pstrEncParams->s16X[ChOffset+32+10];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_6_3*(SINT32)pstrEncParams->s16X[ChOffset+48+6];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_6_3*(SINT32)pstrEncParams->s16X[ChOffset+16+10];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_6_4*(SINT32)pstrEncParams->s16X[ChOffset+64+6];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_6_4*(SINT32)pstrEncParams->s16X[ChOffset+10];\ + pstrEncParams->s32DCTY[6]=(SINT32)s32Temp;\ + pstrEncParams->s32DCTY[10]=(SINT32)s32Temp2;\ } #define WINDOW_ACCU_8_7_9 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_7_0*(SINT32)s16X[ChOffset+7];\ - s32Temp2=(SINT32)WIND_8_SUBBANDS_7_0*(SINT32)s16X[ChOffset+64+9];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_7_1*(SINT32)s16X[ChOffset+16+7];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_7_1*(SINT32)s16X[ChOffset+48+9];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_7_2*(SINT32)s16X[ChOffset+32+7];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_7_2*(SINT32)s16X[ChOffset+32+9];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_7_3*(SINT32)s16X[ChOffset+48+7];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_7_3*(SINT32)s16X[ChOffset+16+9];\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_7_4*(SINT32)s16X[ChOffset+64+7];\ - s32Temp2+=(SINT32)WIND_8_SUBBANDS_7_4*(SINT32)s16X[ChOffset+9];\ - s32DCTY[7]=(SINT32)s32Temp;\ - s32DCTY[9]=(SINT32)s32Temp2;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_7_0*(SINT32)pstrEncParams->s16X[ChOffset+7];\ + s32Temp2=(SINT32)WIND_8_SUBBANDS_7_0*(SINT32)pstrEncParams->s16X[ChOffset+64+9];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_7_1*(SINT32)pstrEncParams->s16X[ChOffset+16+7];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_7_1*(SINT32)pstrEncParams->s16X[ChOffset+48+9];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_7_2*(SINT32)pstrEncParams->s16X[ChOffset+32+7];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_7_2*(SINT32)pstrEncParams->s16X[ChOffset+32+9];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_7_3*(SINT32)pstrEncParams->s16X[ChOffset+48+7];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_7_3*(SINT32)pstrEncParams->s16X[ChOffset+16+9];\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_7_4*(SINT32)pstrEncParams->s16X[ChOffset+64+7];\ + s32Temp2+=(SINT32)WIND_8_SUBBANDS_7_4*(SINT32)pstrEncParams->s16X[ChOffset+9];\ + pstrEncParams->s32DCTY[7]=(SINT32)s32Temp;\ + pstrEncParams->s32DCTY[9]=(SINT32)s32Temp2;\ } #define WINDOW_ACCU_8_8 \ {\ - s32Temp=(SINT32)WIND_8_SUBBANDS_8_0*(SINT32)(s16X[ChOffset+8]+s16X[ChOffset+64+8]);\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_8_1*(SINT32)(s16X[ChOffset+16+8]+s16X[ChOffset+48+8]);\ - s32Temp+=(SINT32)WIND_8_SUBBANDS_8_2*(SINT32)s16X[ChOffset+32+8];\ - s32DCTY[8]=(SINT32)s32Temp;\ + s32Temp=(SINT32)WIND_8_SUBBANDS_8_0*(SINT32)(pstrEncParams->s16X[ChOffset+8]+pstrEncParams->s16X[ChOffset+64+8]);\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_8_1*(SINT32)(pstrEncParams->s16X[ChOffset+16+8]+pstrEncParams->s16X[ChOffset+48+8]);\ + s32Temp+=(SINT32)WIND_8_SUBBANDS_8_2*(SINT32)pstrEncParams->s16X[ChOffset+32+8];\ + pstrEncParams->s32DCTY[8]=(SINT32)s32Temp;\ } #define WINDOW_ACCU_4_0 \ {\ - s32Temp=(SINT32)WIND_4_SUBBANDS_0_1*(SINT32)(s16X[ChOffset+8]-s16X[ChOffset+32]);\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_0_2*(SINT32)(s16X[ChOffset+16]-s16X[ChOffset+24]);\ - s32DCTY[0]=(SINT32)(s32Temp);\ + s32Temp=(SINT32)WIND_4_SUBBANDS_0_1*(SINT32)(pstrEncParams->s16X[ChOffset+8]-pstrEncParams->s16X[ChOffset+32]);\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_0_2*(SINT32)(pstrEncParams->s16X[ChOffset+16]-pstrEncParams->s16X[ChOffset+24]);\ + pstrEncParams->s32DCTY[0]=(SINT32)(s32Temp);\ } #define WINDOW_ACCU_4_1_7 \ {\ - s32Temp=(SINT32)WIND_4_SUBBANDS_1_0*(SINT32)s16X[ChOffset+1];\ - s32Temp2=(SINT32)WIND_4_SUBBANDS_1_0*(SINT32)s16X[ChOffset+32+7];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_1_1*(SINT32)s16X[ChOffset+8+1];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_1_1*(SINT32)s16X[ChOffset+24+7];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_1_2*(SINT32)s16X[ChOffset+16+1];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_1_2*(SINT32)s16X[ChOffset+16+7];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_1_3*(SINT32)s16X[ChOffset+24+1];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_1_3*(SINT32)s16X[ChOffset+8+7];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_1_4*(SINT32)s16X[ChOffset+32+1];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_1_4*(SINT32)s16X[ChOffset+7];\ - s32DCTY[1]=(SINT32)(s32Temp);\ - s32DCTY[7]=(SINT32)(s32Temp2);\ + s32Temp=(SINT32)WIND_4_SUBBANDS_1_0*(SINT32)pstrEncParams->s16X[ChOffset+1];\ + s32Temp2=(SINT32)WIND_4_SUBBANDS_1_0*(SINT32)pstrEncParams->s16X[ChOffset+32+7];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_1_1*(SINT32)pstrEncParams->s16X[ChOffset+8+1];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_1_1*(SINT32)pstrEncParams->s16X[ChOffset+24+7];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_1_2*(SINT32)pstrEncParams->s16X[ChOffset+16+1];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_1_2*(SINT32)pstrEncParams->s16X[ChOffset+16+7];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_1_3*(SINT32)pstrEncParams->s16X[ChOffset+24+1];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_1_3*(SINT32)pstrEncParams->s16X[ChOffset+8+7];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_1_4*(SINT32)pstrEncParams->s16X[ChOffset+32+1];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_1_4*(SINT32)pstrEncParams->s16X[ChOffset+7];\ + pstrEncParams->s32DCTY[1]=(SINT32)(s32Temp);\ + pstrEncParams->s32DCTY[7]=(SINT32)(s32Temp2);\ } #define WINDOW_ACCU_4_2_6 \ {\ - s32Temp=(SINT32)WIND_4_SUBBANDS_2_0*(SINT32)s16X[ChOffset+2];\ - s32Temp2=(SINT32)WIND_4_SUBBANDS_2_0*(SINT32)s16X[ChOffset+32+6];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_2_1*(SINT32)s16X[ChOffset+8+2];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_2_1*(SINT32)s16X[ChOffset+24+6];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_2_2*(SINT32)s16X[ChOffset+16+2];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_2_2*(SINT32)s16X[ChOffset+16+6];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_2_3*(SINT32)s16X[ChOffset+24+2];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_2_3*(SINT32)s16X[ChOffset+8+6];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_2_4*(SINT32)s16X[ChOffset+32+2];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_2_4*(SINT32)s16X[ChOffset+6];\ - s32DCTY[2]=(SINT32)(s32Temp);\ - s32DCTY[6]=(SINT32)(s32Temp2);\ + s32Temp=(SINT32)WIND_4_SUBBANDS_2_0*(SINT32)pstrEncParams->s16X[ChOffset+2];\ + s32Temp2=(SINT32)WIND_4_SUBBANDS_2_0*(SINT32)pstrEncParams->s16X[ChOffset+32+6];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_2_1*(SINT32)pstrEncParams->s16X[ChOffset+8+2];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_2_1*(SINT32)pstrEncParams->s16X[ChOffset+24+6];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_2_2*(SINT32)pstrEncParams->s16X[ChOffset+16+2];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_2_2*(SINT32)pstrEncParams->s16X[ChOffset+16+6];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_2_3*(SINT32)pstrEncParams->s16X[ChOffset+24+2];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_2_3*(SINT32)pstrEncParams->s16X[ChOffset+8+6];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_2_4*(SINT32)pstrEncParams->s16X[ChOffset+32+2];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_2_4*(SINT32)pstrEncParams->s16X[ChOffset+6];\ + pstrEncParams->s32DCTY[2]=(SINT32)(s32Temp);\ + pstrEncParams->s32DCTY[6]=(SINT32)(s32Temp2);\ } #define WINDOW_ACCU_4_3_5 \ {\ - s32Temp=(SINT32)WIND_4_SUBBANDS_3_0*(SINT32)s16X[ChOffset+3];\ - s32Temp2=(SINT32)WIND_4_SUBBANDS_3_0*(SINT32)s16X[ChOffset+32+5];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_3_1*(SINT32)s16X[ChOffset+8+3];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_3_1*(SINT32)s16X[ChOffset+24+5];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_3_2*(SINT32)s16X[ChOffset+16+3];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_3_2*(SINT32)s16X[ChOffset+16+5];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_3_3*(SINT32)s16X[ChOffset+24+3];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_3_3*(SINT32)s16X[ChOffset+8+5];\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_3_4*(SINT32)s16X[ChOffset+32+3];\ - s32Temp2+=(SINT32)WIND_4_SUBBANDS_3_4*(SINT32)s16X[ChOffset+5];\ - s32DCTY[3]=(SINT32)(s32Temp);\ - s32DCTY[5]=(SINT32)(s32Temp2);\ + s32Temp=(SINT32)WIND_4_SUBBANDS_3_0*(SINT32)pstrEncParams->s16X[ChOffset+3];\ + s32Temp2=(SINT32)WIND_4_SUBBANDS_3_0*(SINT32)pstrEncParams->s16X[ChOffset+32+5];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_3_1*(SINT32)pstrEncParams->s16X[ChOffset+8+3];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_3_1*(SINT32)pstrEncParams->s16X[ChOffset+24+5];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_3_2*(SINT32)pstrEncParams->s16X[ChOffset+16+3];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_3_2*(SINT32)pstrEncParams->s16X[ChOffset+16+5];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_3_3*(SINT32)pstrEncParams->s16X[ChOffset+24+3];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_3_3*(SINT32)pstrEncParams->s16X[ChOffset+8+5];\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_3_4*(SINT32)pstrEncParams->s16X[ChOffset+32+3];\ + s32Temp2+=(SINT32)WIND_4_SUBBANDS_3_4*(SINT32)pstrEncParams->s16X[ChOffset+5];\ + pstrEncParams->s32DCTY[3]=(SINT32)(s32Temp);\ + pstrEncParams->s32DCTY[5]=(SINT32)(s32Temp2);\ } #define WINDOW_ACCU_4_4 \ {\ - s32Temp=(SINT32)WIND_4_SUBBANDS_4_0*(SINT32)(s16X[ChOffset+4]+s16X[ChOffset+4+32]);\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_4_1*(SINT32)(s16X[ChOffset+4+8]+s16X[ChOffset+4+24]);\ - s32Temp+=(SINT32)WIND_4_SUBBANDS_4_2*(SINT32)s16X[ChOffset+4+16];\ - s32DCTY[4]=(SINT32)(s32Temp);\ + s32Temp=(SINT32)WIND_4_SUBBANDS_4_0*(SINT32)(pstrEncParams->s16X[ChOffset+4]+pstrEncParams->s16X[ChOffset+4+32]);\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_4_1*(SINT32)(pstrEncParams->s16X[ChOffset+4+8]+pstrEncParams->s16X[ChOffset+4+24]);\ + s32Temp+=(SINT32)WIND_4_SUBBANDS_4_2*(SINT32)pstrEncParams->s16X[ChOffset+4+16];\ + pstrEncParams->s32DCTY[4]=(SINT32)(s32Temp);\ } #endif #define WINDOW_PARTIAL_4 \ @@ -824,26 +818,26 @@ static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf S #if (SBC_IS_64_MULT_IN_WINDOW_ACCU == TRUE) #define WINDOW_ACCU_4(i) \ {\ - s64Temp=((SINT64)gas32CoeffFor4SBs[i] * (SINT64)s16X[ChOffset+i]); \ - s64Temp+=((SINT64)gas32CoeffFor4SBs[(i+8)] * (SINT64)s16X[ChOffset+i+8]); \ - s64Temp+=((SINT64)gas32CoeffFor4SBs[(i+16)] * (SINT64)s16X[ChOffset+i+16]); \ - s64Temp+=((SINT64)gas32CoeffFor4SBs[(i+24)] * (SINT64)s16X[ChOffset+i+24]); \ - s64Temp+=((SINT64)gas32CoeffFor4SBs[(i+32)] * (SINT64)s16X[ChOffset+i+32]); \ - s32DCTY[i]=(SINT32)(s64Temp>>16);\ + s64Temp=((SINT64)gas32CoeffFor4SBs[i] * (SINT64)pstrEncParams->s16X[ChOffset+i]); \ + s64Temp+=((SINT64)gas32CoeffFor4SBs[(i+8)] * (SINT64)pstrEncParams->s16X[ChOffset+i+8]); \ + s64Temp+=((SINT64)gas32CoeffFor4SBs[(i+16)] * (SINT64)pstrEncParams->s16X[ChOffset+i+16]); \ + s64Temp+=((SINT64)gas32CoeffFor4SBs[(i+24)] * (SINT64)pstrEncParams->s16X[ChOffset+i+24]); \ + s64Temp+=((SINT64)gas32CoeffFor4SBs[(i+32)] * (SINT64)pstrEncParams->s16X[ChOffset+i+32]); \ + pstrEncParams->s32DCTY[i]=(SINT32)(s64Temp>>16);\ } #else #define WINDOW_ACCU_4(i) \ {\ - s32DCTY[i]=(gas32CoeffFor4SBs[i * 2] * s16X[ChOffset+i]) \ - + (((SINT32)(UINT16)(gas32CoeffFor4SBs[(i * 2) + 1]) * s16X[ChOffset+i]) >> 16); \ - s32DCTY[i]+=(gas32CoeffFor4SBs[(i+8) * 2] * s16X[ChOffset+i+8]) \ - + (((SINT32)(UINT16)(gas32CoeffFor4SBs[((i+8) * 2) + 1]) * s16X[ChOffset+i+8]) >> 16); \ - s32DCTY[i]+=(gas32CoeffFor4SBs[(i+16) * 2] * s16X[ChOffset+i+16]) \ - + (((SINT32)(UINT16)(gas32CoeffFor4SBs[((i+16) * 2) + 1]) * s16X[ChOffset+i+16]) >> 16); \ - s32DCTY[i]+=(gas32CoeffFor4SBs[(i+24) * 2] * s16X[ChOffset+i+24]) \ - + (((SINT32)(UINT16)(gas32CoeffFor4SBs[((i+24) * 2) + 1]) * s16X[ChOffset+i+24]) >> 16); \ - s32DCTY[i]+=(gas32CoeffFor4SBs[(i+32) * 2] * s16X[ChOffset+i+32]) \ - + (((SINT32)(UINT16)(gas32CoeffFor4SBs[((i+32) * 2) + 1]) * s16X[ChOffset+i+32]) >> 16); \ + pstrEncParams->s32DCTY[i]=(gas32CoeffFor4SBs[i * 2] * pstrEncParams->s16X[ChOffset+i]) \ + + (((SINT32)(UINT16)(gas32CoeffFor4SBs[(i * 2) + 1]) * pstrEncParams->s16X[ChOffset+i]) >> 16); \ + pstrEncParams->s32DCTY[i]+=(gas32CoeffFor4SBs[(i+8) * 2] * pstrEncParams->s16X[ChOffset+i+8]) \ + + (((SINT32)(UINT16)(gas32CoeffFor4SBs[((i+8) * 2) + 1]) * pstrEncParams->s16X[ChOffset+i+8]) >> 16); \ + pstrEncParams->s32DCTY[i]+=(gas32CoeffFor4SBs[(i+16) * 2] * pstrEncParams->s16X[ChOffset+i+16]) \ + + (((SINT32)(UINT16)(gas32CoeffFor4SBs[((i+16) * 2) + 1]) * pstrEncParams->s16X[ChOffset+i+16]) >> 16); \ + pstrEncParams->s32DCTY[i]+=(gas32CoeffFor4SBs[(i+24) * 2] * pstrEncParams->s16X[ChOffset+i+24]) \ + + (((SINT32)(UINT16)(gas32CoeffFor4SBs[((i+24) * 2) + 1]) * pstrEncParams->s16X[ChOffset+i+24]) >> 16); \ + pstrEncParams->s32DCTY[i]+=(gas32CoeffFor4SBs[(i+32) * 2] * pstrEncParams->s16X[ChOffset+i+32]) \ + + (((SINT32)(UINT16)(gas32CoeffFor4SBs[((i+32) * 2) + 1]) * pstrEncParams->s16X[ChOffset+i+32]) >> 16); \ } #endif #define WINDOW_PARTIAL_4 \ @@ -857,26 +851,26 @@ static SINT16 *s16X=(SINT16*) s32X; /* s16X must be 32 bits aligned cf S #if (SBC_IS_64_MULT_IN_WINDOW_ACCU == TRUE) #define WINDOW_ACCU_8(i) \ {\ - s64Temp = ((((SINT64)gas32CoeffFor8SBs[i] * (SINT64)s16X[ChOffset+i] ))); \ - s64Temp+= ((((SINT64)gas32CoeffFor8SBs[(i+16)] * (SINT64)s16X[ChOffset+i+16]))); \ - s64Temp+= ((((SINT64)gas32CoeffFor8SBs[(i+32)] * (SINT64)s16X[ChOffset+i+32]))); \ - s64Temp+= ((((SINT64)gas32CoeffFor8SBs[(i+48)] * (SINT64)s16X[ChOffset+i+48]))); \ - s64Temp+= ((((SINT64)gas32CoeffFor8SBs[(i+64)] * (SINT64)s16X[ChOffset+i+64]))); \ - s32DCTY[i]=(SINT32)(s64Temp>>16);\ + s64Temp = ((((SINT64)gas32CoeffFor8SBs[i] * (SINT64)pstrEncParams->s16X[ChOffset+i] ))); \ + s64Temp+= ((((SINT64)gas32CoeffFor8SBs[(i+16)] * (SINT64)pstrEncParams->s16X[ChOffset+i+16]))); \ + s64Temp+= ((((SINT64)gas32CoeffFor8SBs[(i+32)] * (SINT64)pstrEncParams->s16X[ChOffset+i+32]))); \ + s64Temp+= ((((SINT64)gas32CoeffFor8SBs[(i+48)] * (SINT64)pstrEncParams->s16X[ChOffset+i+48]))); \ + s64Temp+= ((((SINT64)gas32CoeffFor8SBs[(i+64)] * (SINT64)pstrEncParams->s16X[ChOffset+i+64]))); \ + pstrEncParams->s32DCTY[i]=(SINT32)(s64Temp>>16);\ } #else #define WINDOW_ACCU_8(i) \ {\ - s32DCTY[i]=(gas32CoeffFor8SBs[i * 2] * s16X[ChOffset+i]) \ - + (((SINT32)(UINT16)(gas32CoeffFor8SBs[(i * 2) + 1]) * s16X[ChOffset+i]) >> 16); \ - s32DCTY[i]+=(gas32CoeffFor8SBs[(i+16) * 2] * s16X[ChOffset+i+16]) \ - + (((SINT32)(UINT16)(gas32CoeffFor8SBs[((i+16) * 2) + 1]) * s16X[ChOffset+i+16]) >> 16); \ - s32DCTY[i]+=(gas32CoeffFor8SBs[(i+32) * 2] * s16X[ChOffset+i+32]) \ - + (((SINT32)(UINT16)(gas32CoeffFor8SBs[((i+32) * 2) + 1]) * s16X[ChOffset+i+32]) >> 16); \ - s32DCTY[i]+=(gas32CoeffFor8SBs[(i+48) * 2] * s16X[ChOffset+i+48]) \ - + (((SINT32)(UINT16)(gas32CoeffFor8SBs[((i+48) * 2) + 1]) * s16X[ChOffset+i+48]) >> 16); \ - s32DCTY[i]+=(gas32CoeffFor8SBs[(i+64) * 2] * s16X[ChOffset+i+64]) \ - + (((SINT32)(UINT16)(gas32CoeffFor8SBs[((i+64) * 2) + 1]) * s16X[ChOffset+i+64]) >> 16); \ + pstrEncParams->s32DCTY[i]=(gas32CoeffFor8SBs[i * 2] * pstrEncParams->s16X[ChOffset+i]) \ + + (((SINT32)(UINT16)(gas32CoeffFor8SBs[(i * 2) + 1]) * pstrEncParams->s16X[ChOffset+i]) >> 16); \ + pstrEncParams->s32DCTY[i]+=(gas32CoeffFor8SBs[(i+16) * 2] * pstrEncParams->s16X[ChOffset+i+16]) \ + + (((SINT32)(UINT16)(gas32CoeffFor8SBs[((i+16) * 2) + 1]) * pstrEncParams->s16X[ChOffset+i+16]) >> 16); \ + pstrEncParams->s32DCTY[i]+=(gas32CoeffFor8SBs[(i+32) * 2] * pstrEncParams->s16X[ChOffset+i+32]) \ + + (((SINT32)(UINT16)(gas32CoeffFor8SBs[((i+32) * 2) + 1]) * pstrEncParams->s16X[ChOffset+i+32]) >> 16); \ + pstrEncParams->s32DCTY[i]+=(gas32CoeffFor8SBs[(i+48) * 2] * pstrEncParams->s16X[ChOffset+i+48]) \ + + (((SINT32)(UINT16)(gas32CoeffFor8SBs[((i+48) * 2) + 1]) * pstrEncParams->s16X[ChOffset+i+48]) >> 16); \ + pstrEncParams->s32DCTY[i]+=(gas32CoeffFor8SBs[(i+64) * 2] * pstrEncParams->s16X[ChOffset+i+64]) \ + + (((SINT32)(UINT16)(gas32CoeffFor8SBs[((i+64) * 2) + 1]) * pstrEncParams->s16X[ChOffset+i+64]) >> 16); \ } #endif #define WINDOW_PARTIAL_8 \ @@ -940,22 +934,22 @@ void SbcAnalysisFilter4(SBC_ENC_PARAMS *pstrEncParams) /* Store new samples */ if (s32NumOfChannels==1) { - s16X[3+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[2+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[1+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[0+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[3+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[2+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[1+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[0+Offset] = *ps16PcmBuf; ps16PcmBuf++; } else { - s16X[3+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+3+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[2+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+2+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[1+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+1+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[0+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+0+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[3+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+3+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[2+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+2+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[1+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+1+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[0+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+0+Offset] = *ps16PcmBuf; ps16PcmBuf++; } for (s32Ch=0;s32Chs32DCTY, ps32SbBuf); ps32SbBuf +=SUB_BANDS_4; } if (s32NumOfChannels==1) @@ -1032,33 +1026,33 @@ void SbcAnalysisFilter8 (SBC_ENC_PARAMS *pstrEncParams) /* Store new samples */ if (s32NumOfChannels==1) { - s16X[7+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[6+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[5+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[4+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[3+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[2+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[1+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[0+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[7+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[6+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[5+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[4+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[3+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[2+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[1+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[0+Offset] = *ps16PcmBuf; ps16PcmBuf++; } else { - s16X[7+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+7+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[6+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+6+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[5+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+5+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[4+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+4+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[3+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+3+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[2+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+2+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[1+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+1+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[0+Offset] = *ps16PcmBuf; ps16PcmBuf++; - s16X[Offset2+0+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[7+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+7+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[6+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+6+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[5+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+5+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[4+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+4+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[3+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+3+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[2+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+2+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[1+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+1+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[0+Offset] = *ps16PcmBuf; ps16PcmBuf++; + pstrEncParams->s16X[Offset2+0+Offset] = *ps16PcmBuf; ps16PcmBuf++; } for (s32Ch=0;s32Chs32DCTY, ps32SbBuf); ps32SbBuf +=SUB_BANDS_8; } @@ -1099,6 +1093,10 @@ void SbcAnalysisFilter8 (SBC_ENC_PARAMS *pstrEncParams) void SbcAnalysisInit (SBC_ENC_PARAMS *pstrEncParams) { - memset(s16X,0,ENC_VX_BUFFER_SIZE*sizeof(SINT16)); ShiftCounter=0; + + // s16X must be 32 bits aligned cf + pstrEncParams->s16X = (SINT16*) (pstrEncParams->s32X); + memset(pstrEncParams->s16X,0,ENC_VX_BUFFER_SIZE*sizeof(SINT16)); + memset(pstrEncParams->s32DCTY, 0, sizeof(pstrEncParams->s32DCTY)); }