History

astyle all

huili2 committed 12 years ago

Commit dc3fae41 parent 101265385 files · +4906 −4701Browse files

Showing the changes to test/encoder/EncUT_Sample.cpp (1 of 85 files). Show all

Unified · Split

test/encoder/EncUT_Sample.cpp+522−503
@@ -11,134 +11,138 @@ · 10 unmodified lines
1111
1212 using namespace WelsSVCEnc;
1313 #ifdef X86_ASM
14−TEST(IntraSadSatdFuncTest, WelsIntra16x16Combined3Sad_ssse3){
14+TEST (IntraSadSatdFuncTest, WelsIntra16x16Combined3Sad_ssse3) {
1515 const int32_t iLineSizeDec = 32;
1616 const int32_t iLineSizeEnc = 32;
1717 int32_t tmpa, tmpb;
1818 int32_t iBestMode_c, iBestMode_a, iLambda = 50;
19− CMemoryAlign cMemoryAlign(0);
19+ CMemoryAlign cMemoryAlign (0);
2020 int32_t iCpuCores = 0;
21− uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect(&iCpuCores);
21+ uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);
2222 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSSE3))
2323 return;
24− uint8_t* pDec = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeDec<<5,"pDec");
25− uint8_t* pEnc = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeEnc<<5,"pEnc");
26− uint8_t* pDst = (uint8_t *)cMemoryAlign.WelsMalloc(512,"pDst");
27− srand((uint32_t)time(NULL));
28− for(int i=0;i<(iLineSizeDec<<5);i++)
29− pDec[i]=rand()%256;
30− for(int i=0;i<(iLineSizeEnc<<5);i++)
31− pEnc[i]=rand()%256;
24+ uint8_t* pDec = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDec");
25+ uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
26+ uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
27+ srand ((uint32_t)time (NULL));
28+ for (int i = 0; i < (iLineSizeDec << 5); i++)
29+ pDec[i] = rand() % 256;
30+ for (int i = 0; i < (iLineSizeEnc << 5); i++)
31+ pEnc[i] = rand() % 256;
3232
33− for(int i=0;i<512;i++)
34− pDst[i]=rand()%256;
35− tmpa = WelsSampleSadIntra16x16Combined3_c(pDec+128, iLineSizeDec, pEnc,iLineSizeEnc,&iBestMode_c, iLambda, pDst);
36− tmpb = WelsIntra16x16Combined3Sad_ssse3(pDec+128, iLineSizeDec, pEnc,iLineSizeEnc,&iBestMode_a, iLambda, pDst);
33+ for (int i = 0; i < 512; i++)
34+ pDst[i] = rand() % 256;
35+ tmpa = WelsSampleSadIntra16x16Combined3_c (pDec + 128, iLineSizeDec, pEnc, iLineSizeEnc, &iBestMode_c, iLambda, pDst);
36+ tmpb = WelsIntra16x16Combined3Sad_ssse3 (pDec + 128, iLineSizeDec, pEnc, iLineSizeEnc, &iBestMode_a, iLambda, pDst);
3737
38− ASSERT_EQ(tmpa, tmpb);
39− ASSERT_EQ(iBestMode_c, iBestMode_a);
38+ ASSERT_EQ (tmpa, tmpb);
39+ ASSERT_EQ (iBestMode_c, iBestMode_a);
4040
41− cMemoryAlign.WelsFree(pDec,"pDec");
42− cMemoryAlign.WelsFree(pEnc,"pEnc");
43− cMemoryAlign.WelsFree(pDst,"pDst");
41+ cMemoryAlign.WelsFree (pDec, "pDec");
42+ cMemoryAlign.WelsFree (pEnc, "pEnc");
43+ cMemoryAlign.WelsFree (pDst, "pDst");
4444 }
4545
46−TEST(IntraSadSatdFuncTest, WelsIntra16x16Combined3Satd_sse41){
46+TEST (IntraSadSatdFuncTest, WelsIntra16x16Combined3Satd_sse41) {
4747 const int32_t iLineSizeDec = 32;
4848 const int32_t iLineSizeEnc = 32;
4949 int32_t tmpa, tmpb;
5050 int32_t iBestMode_c, iBestMode_a, iLambda = 50;
51− CMemoryAlign cMemoryAlign(0);
51+ CMemoryAlign cMemoryAlign (0);
5252 int32_t iCpuCores = 0;
53− uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect(&iCpuCores);
53+ uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);
5454 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
5555 return;
56− uint8_t* pDec = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeDec<<5,"pDec");
57− uint8_t* pEnc = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeEnc<<5,"pEnc");
58− uint8_t* pDst = (uint8_t *)cMemoryAlign.WelsMalloc(512,"pDst");
59− srand((uint32_t)time(NULL));
60− for(int i=0;i<(iLineSizeDec<<5);i++)
61− pDec[i]=rand()%256;
62− for(int i=0;i<(iLineSizeEnc<<5);i++)
63− pEnc[i]=rand()%256;
64− for(int i=0;i<512;i++)
65− pDst[i]=rand()%256;
66− tmpa = WelsSampleSatdIntra16x16Combined3_c(pDec+128, iLineSizeDec, pEnc,iLineSizeEnc,&iBestMode_c, iLambda, pDst);
67− tmpb = WelsIntra16x16Combined3Satd_sse41(pDec+128, iLineSizeDec, pEnc,iLineSizeEnc,&iBestMode_a, iLambda, pDst);
68− ASSERT_EQ(tmpa, tmpb);
69− ASSERT_EQ(iBestMode_c, iBestMode_a);
70− cMemoryAlign.WelsFree(pDec,"pDec");
71− cMemoryAlign.WelsFree(pEnc,"pEnc");
72− cMemoryAlign.WelsFree(pDst,"pDst");
73−}
74−
75−TEST(IntraSadSatdFuncTest, WelsSampleSatdThree4x4_sse2){
56+ uint8_t* pDec = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDec");
57+ uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
58+ uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
59+ srand ((uint32_t)time (NULL));
60+ for (int i = 0; i < (iLineSizeDec << 5); i++)
61+ pDec[i] = rand() % 256;
62+ for (int i = 0; i < (iLineSizeEnc << 5); i++)
63+ pEnc[i] = rand() % 256;
64+ for (int i = 0; i < 512; i++)
65+ pDst[i] = rand() % 256;
66+ tmpa = WelsSampleSatdIntra16x16Combined3_c (pDec + 128, iLineSizeDec, pEnc, iLineSizeEnc, &iBestMode_c, iLambda, pDst);
67+ tmpb = WelsIntra16x16Combined3Satd_sse41 (pDec + 128, iLineSizeDec, pEnc, iLineSizeEnc, &iBestMode_a, iLambda, pDst);
68+ ASSERT_EQ (tmpa, tmpb);
69+ ASSERT_EQ (iBestMode_c, iBestMode_a);
70+ cMemoryAlign.WelsFree (pDec, "pDec");
71+ cMemoryAlign.WelsFree (pEnc, "pEnc");
72+ cMemoryAlign.WelsFree (pDst, "pDst");
73+}
74+
75+TEST (IntraSadSatdFuncTest, WelsSampleSatdThree4x4_sse2) {
7676 const int32_t iLineSizeDec = 32;
7777 const int32_t iLineSizeEnc = 32;
7878 int32_t tmpa, tmpb;
7979 int32_t iBestMode_c, iBestMode_a, iLambda = 50;
8080 int32_t lambda[2] = {iLambda << 2, iLambda};
81− int32_t iPredMode = rand()%3;
82− CMemoryAlign cMemoryAlign(0);
81+ int32_t iPredMode = rand() % 3;
82+ CMemoryAlign cMemoryAlign (0);
8383 int32_t iCpuCores = 0;
84− uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect(&iCpuCores);
84+ uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);
8585 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
8686 return;
87− uint8_t* pDec = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeDec<<5,"pDec");
88− uint8_t* pEnc = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeEnc<<5,"pEnc");
89− uint8_t* pDst = (uint8_t *)cMemoryAlign.WelsMalloc(512,"pDst");
90− WelsInitFillingPredFuncs(WELS_CPU_SSE2);
91− srand((uint32_t)time(NULL));
92− for(int i=0;i<(iLineSizeDec<<5);i++)
93− pDec[i]=rand()%256;
94− for(int i=0;i<(iLineSizeEnc<<5);i++)
95− pEnc[i]=rand()%256;
96− for(int i=0;i<512;i++)
97− pDst[i]=rand()%256;
98− tmpa = WelsSampleSatdIntra4x4Combined3_c(pDec+128, iLineSizeDec, pEnc,iLineSizeEnc, pDst, &iBestMode_c, lambda[iPredMode == 2], lambda[iPredMode == 1], lambda[iPredMode == 0]);
99− tmpb = WelsSampleSatdThree4x4_sse2(pDec+128, iLineSizeDec, pEnc,iLineSizeEnc, pDst, &iBestMode_a, lambda[iPredMode == 2], lambda[iPredMode == 1], lambda[iPredMode == 0]);
100− ASSERT_EQ(tmpa, tmpb);
101− ASSERT_EQ(iBestMode_c, iBestMode_a);
102− cMemoryAlign.WelsFree(pDec,"pDec");
103− cMemoryAlign.WelsFree(pEnc,"pEnc");
104− cMemoryAlign.WelsFree(pDst,"pDst");
105−}
106−
107−TEST(IntraSadSatdFuncTest, WelsIntraChroma8x8Combined3Satd_sse41){
87+ uint8_t* pDec = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDec");
88+ uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
89+ uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
90+ WelsInitFillingPredFuncs (WELS_CPU_SSE2);
91+ srand ((uint32_t)time (NULL));
92+ for (int i = 0; i < (iLineSizeDec << 5); i++)
93+ pDec[i] = rand() % 256;
94+ for (int i = 0; i < (iLineSizeEnc << 5); i++)
95+ pEnc[i] = rand() % 256;
96+ for (int i = 0; i < 512; i++)
97+ pDst[i] = rand() % 256;
98+ tmpa = WelsSampleSatdIntra4x4Combined3_c (pDec + 128, iLineSizeDec, pEnc, iLineSizeEnc, pDst, &iBestMode_c,
99+ lambda[iPredMode == 2], lambda[iPredMode == 1], lambda[iPredMode == 0]);
100+ tmpb = WelsSampleSatdThree4x4_sse2 (pDec + 128, iLineSizeDec, pEnc, iLineSizeEnc, pDst, &iBestMode_a,
101+ lambda[iPredMode == 2], lambda[iPredMode == 1], lambda[iPredMode == 0]);
102+ ASSERT_EQ (tmpa, tmpb);
103+ ASSERT_EQ (iBestMode_c, iBestMode_a);
104+ cMemoryAlign.WelsFree (pDec, "pDec");
105+ cMemoryAlign.WelsFree (pEnc, "pEnc");
106+ cMemoryAlign.WelsFree (pDst, "pDst");
107+}
108+
109+TEST (IntraSadSatdFuncTest, WelsIntraChroma8x8Combined3Satd_sse41) {
108110 const int32_t iLineSizeDec = 32;
109111 const int32_t iLineSizeEnc = 32;
110112 int32_t tmpa, tmpb;
111113 int32_t iBestMode_c, iBestMode_a, iLambda = 50;
112− CMemoryAlign cMemoryAlign(0);
114+ CMemoryAlign cMemoryAlign (0);
113115 int32_t iCpuCores = 0;
114− uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect(&iCpuCores);
116+ uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);
115117 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
116118 return;
117− uint8_t* pDecCb = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeDec<<5,"pDecCb");
118− uint8_t* pEncCb = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeEnc<<5,"pEncCb");
119− uint8_t* pDecCr = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeDec<<5,"pDecCr");
120− uint8_t* pEncCr = (uint8_t *)cMemoryAlign.WelsMalloc(iLineSizeEnc<<5,"pEncCr");
121− uint8_t* pDstChma = (uint8_t *)cMemoryAlign.WelsMalloc(512,"pDstChma");
122− srand((uint32_t)time(NULL));
123− for(int i=0;i<(iLineSizeDec<<5);i++){
124− pDecCb[i]=rand()%256;
125− pDecCr[i]=rand()%256;
119+ uint8_t* pDecCb = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDecCb");
120+ uint8_t* pEncCb = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEncCb");
121+ uint8_t* pDecCr = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDecCr");
122+ uint8_t* pEncCr = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEncCr");
123+ uint8_t* pDstChma = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDstChma");
124+ srand ((uint32_t)time (NULL));
125+ for (int i = 0; i < (iLineSizeDec << 5); i++) {
126+ pDecCb[i] = rand() % 256;
127+ pDecCr[i] = rand() % 256;
126128 }
127− for(int i=0;i<(iLineSizeEnc<<5);i++){
128− pEncCb[i]=rand()%256;
129− pEncCr[i]=rand()%256;
129+ for (int i = 0; i < (iLineSizeEnc << 5); i++) {
130+ pEncCb[i] = rand() % 256;
131+ pEncCr[i] = rand() % 256;
130132 }
131− for(int i=0;i<512;i++)
132− pDstChma[i]=rand()%256;
133− tmpa = WelsSampleSatdIntra8x8Combined3_c(pDecCb+128, iLineSizeDec, pEncCb,iLineSizeEnc,&iBestMode_c, iLambda, pDstChma, pDecCr+128, pEncCr);
134− tmpb = WelsIntraChroma8x8Combined3Satd_sse41(pDecCb+128, iLineSizeDec, pEncCb,iLineSizeEnc,&iBestMode_a, iLambda, pDstChma, pDecCr+128, pEncCr);
135− ASSERT_EQ(tmpa, tmpb);
136− ASSERT_EQ(iBestMode_c, iBestMode_a);
137− cMemoryAlign.WelsFree(pDecCb,"pDecCb");
138− cMemoryAlign.WelsFree(pEncCb,"pEncCb");
139− cMemoryAlign.WelsFree(pDecCr,"pDecCr");
140− cMemoryAlign.WelsFree(pEncCr,"pEncCr");
141− cMemoryAlign.WelsFree(pDstChma,"pDstChma");
133+ for (int i = 0; i < 512; i++)
134+ pDstChma[i] = rand() % 256;
135+ tmpa = WelsSampleSatdIntra8x8Combined3_c (pDecCb + 128, iLineSizeDec, pEncCb, iLineSizeEnc, &iBestMode_c, iLambda,
136+ pDstChma, pDecCr + 128, pEncCr);
137+ tmpb = WelsIntraChroma8x8Combined3Satd_sse41 (pDecCb + 128, iLineSizeDec, pEncCb, iLineSizeEnc, &iBestMode_a, iLambda,
138+ pDstChma, pDecCr + 128, pEncCr);
139+ ASSERT_EQ (tmpa, tmpb);
140+ ASSERT_EQ (iBestMode_c, iBestMode_a);
141+ cMemoryAlign.WelsFree (pDecCb, "pDecCb");
142+ cMemoryAlign.WelsFree (pEncCb, "pEncCb");
143+ cMemoryAlign.WelsFree (pDecCr, "pDecCr");
144+ cMemoryAlign.WelsFree (pEncCr, "pEncCr");
145+ cMemoryAlign.WelsFree (pDstChma, "pDstChma");
142146 }
143147 #endif
144148 #define ASSERT_MEMORY_FAIL2X(A, B) \
@@ -157,27 +161,27 @@ TEST(IntraSadSatdFuncTest, WelsIntraChroma8x8Combined3Satd_sse41){ · 12 unmodified lines
157161 #define PIXEL_STRIDE 32
158162
159163 class SadSatdCFuncTest : public testing::Test {
160−public:
164+ public:
161165 virtual void SetUp() {
162− pMemAlign = new CMemoryAlign(0);
163−
164− srand((uint32_t)time(NULL));
165− m_iStrideA = rand()%256 + PIXEL_STRIDE;
166− m_iStrideB = rand()%256 + PIXEL_STRIDE;
167− m_pPixSrcA = (uint8_t *)pMemAlign->WelsMalloc(m_iStrideA<<5,"Sad_m_pPixSrcA");
168− ASSERT_TRUE(NULL != m_pPixSrcA);
169− m_pPixSrcB = (uint8_t *)pMemAlign->WelsMalloc(m_iStrideB<<5,"Sad_m_pPixSrcB");
170− ASSERT_MEMORY_FAIL2X(m_pPixSrcA, m_pPixSrcB)
171− m_pSad = (int32_t*)pMemAlign->WelsMalloc(4*sizeof(int32_t), "m_pSad");
172− ASSERT_MEMORY_FAIL3X(m_pPixSrcA, m_pPixSrcB, m_pSad)
166+ pMemAlign = new CMemoryAlign (0);
167+
168+ srand ((uint32_t)time (NULL));
169+ m_iStrideA = rand() % 256 + PIXEL_STRIDE;
170+ m_iStrideB = rand() % 256 + PIXEL_STRIDE;
171+ m_pPixSrcA = (uint8_t*)pMemAlign->WelsMalloc (m_iStrideA << 5, "Sad_m_pPixSrcA");
172+ ASSERT_TRUE (NULL != m_pPixSrcA);
173+ m_pPixSrcB = (uint8_t*)pMemAlign->WelsMalloc (m_iStrideB << 5, "Sad_m_pPixSrcB");
174+ ASSERT_MEMORY_FAIL2X (m_pPixSrcA, m_pPixSrcB)
175+ m_pSad = (int32_t*)pMemAlign->WelsMalloc (4 * sizeof (int32_t), "m_pSad");
176+ ASSERT_MEMORY_FAIL3X (m_pPixSrcA, m_pPixSrcB, m_pSad)
173177 }
174178 virtual void TearDown() {
175− pMemAlign->WelsFree(m_pPixSrcA,"Sad_m_pPixSrcA");
176− pMemAlign->WelsFree(m_pPixSrcB,"Sad_m_pPixSrcB");
177− pMemAlign->WelsFree(m_pSad,"m_pSad");
179+ pMemAlign->WelsFree (m_pPixSrcA, "Sad_m_pPixSrcA");
180+ pMemAlign->WelsFree (m_pPixSrcB, "Sad_m_pPixSrcB");
181+ pMemAlign->WelsFree (m_pSad, "m_pSad");
178182 delete pMemAlign;
179183 }
180−public:
184+ public:
181185 uint8_t* m_pPixSrcA;
182186 uint8_t* m_pPixSrcB;
183187 int32_t m_iStrideA;
@@ -187,313 +191,313 @@ public: · 3 unmodified lines
187191 CMemoryAlign* pMemAlign;
188192 };
189193
190−TEST_F(SadSatdCFuncTest, WelsSampleSad4x4_c) {
191− srand((uint32_t)time(NULL));
192− for(int i=0; i<(m_iStrideA<<2); i++)
193− m_pPixSrcA[i]=rand()%256;
194− for(int i=0; i<(m_iStrideB<<2); i++)
195− m_pPixSrcB[i]=rand()%256;
196− uint8_t *pPixA=m_pPixSrcA;
197− uint8_t *pPixB=m_pPixSrcB;
194+TEST_F (SadSatdCFuncTest, WelsSampleSad4x4_c) {
195+ srand ((uint32_t)time (NULL));
196+ for (int i = 0; i < (m_iStrideA << 2); i++)
197+ m_pPixSrcA[i] = rand() % 256;
198+ for (int i = 0; i < (m_iStrideB << 2); i++)
199+ m_pPixSrcB[i] = rand() % 256;
200+ uint8_t* pPixA = m_pPixSrcA;
201+ uint8_t* pPixB = m_pPixSrcB;
198202
199203 int32_t iSumSad = 0;
200− for (int i = 0; i < 4; i++ ) {
201− for(int j=0; j<4; j++)
202− iSumSad+=abs(pPixA[j]-pPixB[j]);
204+ for (int i = 0; i < 4; i++) {
205+ for (int j = 0; j < 4; j++)
206+ iSumSad += abs (pPixA[j] - pPixB[j]);
203207 pPixA += m_iStrideA;
204208 pPixB += m_iStrideB;
205209 }
206− EXPECT_EQ(WelsSampleSad4x4_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
210+ EXPECT_EQ (WelsSampleSad4x4_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
207211 }
208212
209−TEST_F(SadSatdCFuncTest, WelsSampleSad8x8_c) {
210− srand((uint32_t)time(NULL));
211− for(int i=0; i<(m_iStrideA<<3); i++)
212− m_pPixSrcA[i]=rand()%256;
213− for(int i=0; i<(m_iStrideB<<3); i++)
214− m_pPixSrcB[i]=rand()%256;
215− uint8_t *pPixA=m_pPixSrcA;
216− uint8_t *pPixB=m_pPixSrcB;
213+TEST_F (SadSatdCFuncTest, WelsSampleSad8x8_c) {
214+ srand ((uint32_t)time (NULL));
215+ for (int i = 0; i < (m_iStrideA << 3); i++)
216+ m_pPixSrcA[i] = rand() % 256;
217+ for (int i = 0; i < (m_iStrideB << 3); i++)
218+ m_pPixSrcB[i] = rand() % 256;
219+ uint8_t* pPixA = m_pPixSrcA;
220+ uint8_t* pPixB = m_pPixSrcB;
217221
218222 int32_t iSumSad = 0;
219− for (int i = 0; i < 8; i++ ) {
220− for(int j=0; j<8; j++)
221− iSumSad+=abs(pPixA[j]-pPixB[j]);
223+ for (int i = 0; i < 8; i++) {
224+ for (int j = 0; j < 8; j++)
225+ iSumSad += abs (pPixA[j] - pPixB[j]);
222226
223227 pPixA += m_iStrideA;
224228 pPixB += m_iStrideB;
225229 }
226− EXPECT_EQ(WelsSampleSad8x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
230+ EXPECT_EQ (WelsSampleSad8x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
227231 }
228232
229−TEST_F(SadSatdCFuncTest, WelsSampleSad16x8_c) {
230− srand((uint32_t)time(NULL));
231− for(int i=0; i<(m_iStrideA<<3); i++)
232− m_pPixSrcA[i]=rand()%256;
233− for(int i=0; i<(m_iStrideB<<3); i++)
234− m_pPixSrcB[i]=rand()%256;
235− uint8_t *pPixA=m_pPixSrcA;
236− uint8_t *pPixB=m_pPixSrcB;
233+TEST_F (SadSatdCFuncTest, WelsSampleSad16x8_c) {
234+ srand ((uint32_t)time (NULL));
235+ for (int i = 0; i < (m_iStrideA << 3); i++)
236+ m_pPixSrcA[i] = rand() % 256;
237+ for (int i = 0; i < (m_iStrideB << 3); i++)
238+ m_pPixSrcB[i] = rand() % 256;
239+ uint8_t* pPixA = m_pPixSrcA;
240+ uint8_t* pPixB = m_pPixSrcB;
237241
238242 int32_t iSumSad = 0;
239− for (int i = 0; i <8; i++ ) {
240− for(int j=0; j<16; j++)
241− iSumSad+=abs(pPixA[j]-pPixB[j]);
243+ for (int i = 0; i < 8; i++) {
244+ for (int j = 0; j < 16; j++)
245+ iSumSad += abs (pPixA[j] - pPixB[j]);
242246
243247 pPixA += m_iStrideA;
244248 pPixB += m_iStrideB;
245249 }
246− EXPECT_EQ(WelsSampleSad16x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
250+ EXPECT_EQ (WelsSampleSad16x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
247251 }
248252
249−TEST_F(SadSatdCFuncTest, WelsSampleSad8x16_c) {
250− srand((uint32_t)time(NULL));
251− for(int i=0; i<(m_iStrideA<<4); i++)
252− m_pPixSrcA[i]=rand()%256;
253− for(int i=0; i<(m_iStrideB<<4); i++)
254− m_pPixSrcB[i]=rand()%256;
255− uint8_t *pPixA=m_pPixSrcA;
256− uint8_t *pPixB=m_pPixSrcB;
253+TEST_F (SadSatdCFuncTest, WelsSampleSad8x16_c) {
254+ srand ((uint32_t)time (NULL));
255+ for (int i = 0; i < (m_iStrideA << 4); i++)
256+ m_pPixSrcA[i] = rand() % 256;
257+ for (int i = 0; i < (m_iStrideB << 4); i++)
258+ m_pPixSrcB[i] = rand() % 256;
259+ uint8_t* pPixA = m_pPixSrcA;
260+ uint8_t* pPixB = m_pPixSrcB;
257261
258262 int32_t iSumSad = 0;
259− for (int i = 0; i <16; i++ ) {
260− for(int j=0; j<8; j++)
261− iSumSad+=abs(pPixA[j]-pPixB[j]);
263+ for (int i = 0; i < 16; i++) {
264+ for (int j = 0; j < 8; j++)
265+ iSumSad += abs (pPixA[j] - pPixB[j]);
262266
263267 pPixA += m_iStrideA;
264268 pPixB += m_iStrideB;
265269 }
266− EXPECT_EQ(WelsSampleSad8x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
270+ EXPECT_EQ (WelsSampleSad8x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
267271 }
268272
269−TEST_F(SadSatdCFuncTest, WelsSampleSad16x16_c) {
270− srand((uint32_t)time(NULL));
271− for(int i=0; i<(m_iStrideA<<4); i++)
272− m_pPixSrcA[i]=rand()%256;
273− for(int i=0; i<(m_iStrideB<<4); i++)
274− m_pPixSrcB[i]=rand()%256;
275− uint8_t *pPixA=m_pPixSrcA;
276− uint8_t *pPixB=m_pPixSrcB;
273+TEST_F (SadSatdCFuncTest, WelsSampleSad16x16_c) {
274+ srand ((uint32_t)time (NULL));
275+ for (int i = 0; i < (m_iStrideA << 4); i++)
276+ m_pPixSrcA[i] = rand() % 256;
277+ for (int i = 0; i < (m_iStrideB << 4); i++)
278+ m_pPixSrcB[i] = rand() % 256;
279+ uint8_t* pPixA = m_pPixSrcA;
280+ uint8_t* pPixB = m_pPixSrcB;
277281
278282 int32_t iSumSad = 0;
279− for (int i = 0; i <16; i++ ) {
280− for(int j=0; j<16; j++)
281− iSumSad+=abs(pPixA[j]-pPixB[j]);
283+ for (int i = 0; i < 16; i++) {
284+ for (int j = 0; j < 16; j++)
285+ iSumSad += abs (pPixA[j] - pPixB[j]);
282286
283287 pPixA += m_iStrideA;
284288 pPixB += m_iStrideB;
285289 }
286− EXPECT_EQ(WelsSampleSad16x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
287−}
288−
289−TEST_F(SadSatdCFuncTest, WelsSampleSatd4x4_c) {
290− srand((uint32_t)time(NULL));
291− for(int i=0; i<(m_iStrideA<<2); i++)
292− m_pPixSrcA[i]=rand()%256;
293− for(int i=0; i<(m_iStrideB<<2); i++)
294− m_pPixSrcB[i]=rand()%256;
295− uint8_t *pPixA=m_pPixSrcA;
296− uint8_t *pPixB=m_pPixSrcB;
297−
298− int32_t W[16],T[16],Y[16],k=0;
299− for(int i=0; i<4; i++) {
300− for(int j=0; j<4; j++)
301− W[k++]=pPixA[j]-pPixB[j];
290+ EXPECT_EQ (WelsSampleSad16x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), iSumSad);
291+}
292+
293+TEST_F (SadSatdCFuncTest, WelsSampleSatd4x4_c) {
294+ srand ((uint32_t)time (NULL));
295+ for (int i = 0; i < (m_iStrideA << 2); i++)
296+ m_pPixSrcA[i] = rand() % 256;
297+ for (int i = 0; i < (m_iStrideB << 2); i++)
298+ m_pPixSrcB[i] = rand() % 256;
299+ uint8_t* pPixA = m_pPixSrcA;
300+ uint8_t* pPixB = m_pPixSrcB;
301+
302+ int32_t W[16], T[16], Y[16], k = 0;
303+ for (int i = 0; i < 4; i++) {
304+ for (int j = 0; j < 4; j++)
305+ W[k++] = pPixA[j] - pPixB[j];
302306 pPixA += m_iStrideA;
303307 pPixB += m_iStrideB;
304308 }
305309
306− T[0]=W[0]+W[4]+W[8]+W[12];
307− T[1]=W[1]+W[5]+W[9]+W[13];
308− T[2]=W[2]+W[6]+W[10]+W[14];
309− T[3]=W[3]+W[7]+W[11]+W[15];
310−
311− T[4]=W[0]+W[4]-W[8]-W[12];
312− T[5]=W[1]+W[5]-W[9]-W[13];
313− T[6]=W[2]+W[6]-W[10]-W[14];
314− T[7]=W[3]+W[7]-W[11]-W[15];
315−
316− T[8]=W[0]-W[4]-W[8]+W[12];
317− T[9]=W[1]-W[5]-W[9]+W[13];
318− T[10]=W[2]-W[6]-W[10]+W[14];
319− T[11]=W[3]-W[7]-W[11]+W[15];
320−
321− T[12]=W[0]-W[4]+W[8]-W[12];
322− T[13]=W[1]-W[5]+W[9]-W[13];
323− T[14]=W[2]-W[6]+W[10]-W[14];
324− T[15]=W[3]-W[7]+W[11]-W[15];
325−
326− Y[0]=T[0]+T[1]+T[2]+T[3];
327− Y[1]=T[0]+T[1]-T[2]-T[3];
328− Y[2]=T[0]-T[1]-T[2]+T[3];
329− Y[3]=T[0]-T[1]+T[2]-T[3];
330−
331− Y[4]=T[4]+T[5]+T[6]+T[7];
332− Y[5]=T[4]+T[5]-T[6]-T[7];
333− Y[6]=T[4]-T[5]-T[6]+T[7];
334− Y[7]=T[4]-T[5]+T[6]-T[7];
335−
336− Y[8]=T[8]+T[9]+T[10]+T[11];
337− Y[9]=T[8]+T[9]-T[10]-T[11];
338− Y[10]=T[8]-T[9]-T[10]+T[11];
339− Y[11]=T[8]-T[9]+T[10]-T[11];
340−
341− Y[12]=T[12]+T[13]+T[14]+T[15];
342− Y[13]=T[12]+T[13]-T[14]-T[15];
343− Y[14]=T[12]-T[13]-T[14]+T[15];
344− Y[15]=T[12]-T[13]+T[14]-T[15];
310+ T[0] = W[0] + W[4] + W[8] + W[12];
311+ T[1] = W[1] + W[5] + W[9] + W[13];
312+ T[2] = W[2] + W[6] + W[10] + W[14];
313+ T[3] = W[3] + W[7] + W[11] + W[15];
314+
315+ T[4] = W[0] + W[4] - W[8] - W[12];
316+ T[5] = W[1] + W[5] - W[9] - W[13];
317+ T[6] = W[2] + W[6] - W[10] - W[14];
318+ T[7] = W[3] + W[7] - W[11] - W[15];
319+
320+ T[8] = W[0] - W[4] - W[8] + W[12];
321+ T[9] = W[1] - W[5] - W[9] + W[13];
322+ T[10] = W[2] - W[6] - W[10] + W[14];
323+ T[11] = W[3] - W[7] - W[11] + W[15];
324+
325+ T[12] = W[0] - W[4] + W[8] - W[12];
326+ T[13] = W[1] - W[5] + W[9] - W[13];
327+ T[14] = W[2] - W[6] + W[10] - W[14];
328+ T[15] = W[3] - W[7] + W[11] - W[15];
329+
330+ Y[0] = T[0] + T[1] + T[2] + T[3];
331+ Y[1] = T[0] + T[1] - T[2] - T[3];
332+ Y[2] = T[0] - T[1] - T[2] + T[3];
333+ Y[3] = T[0] - T[1] + T[2] - T[3];
334+
335+ Y[4] = T[4] + T[5] + T[6] + T[7];
336+ Y[5] = T[4] + T[5] - T[6] - T[7];
337+ Y[6] = T[4] - T[5] - T[6] + T[7];
338+ Y[7] = T[4] - T[5] + T[6] - T[7];
339+
340+ Y[8] = T[8] + T[9] + T[10] + T[11];
341+ Y[9] = T[8] + T[9] - T[10] - T[11];
342+ Y[10] = T[8] - T[9] - T[10] + T[11];
343+ Y[11] = T[8] - T[9] + T[10] - T[11];
344+
345+ Y[12] = T[12] + T[13] + T[14] + T[15];
346+ Y[13] = T[12] + T[13] - T[14] - T[15];
347+ Y[14] = T[12] - T[13] - T[14] + T[15];
348+ Y[15] = T[12] - T[13] + T[14] - T[15];
345349
346350 int32_t iSumSatd = 0;
347− for(int i=0; i<16; i++)
348− iSumSatd+=abs(Y[i]);
351+ for (int i = 0; i < 16; i++)
352+ iSumSatd += abs (Y[i]);
349353
350− EXPECT_EQ(WelsSampleSatd4x4_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), (iSumSatd+1)>>1);
354+ EXPECT_EQ (WelsSampleSatd4x4_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), (iSumSatd + 1) >> 1);
351355 }
352356
353−TEST_F(SadSatdCFuncTest, WelsSampleSadFour16x16_c) {
354− srand((uint32_t)time(NULL));
355− for(int i=0; i<(m_iStrideA<<5); i++)
356− m_pPixSrcA[i]=rand()%256;
357− for(int i=0; i<(m_iStrideB<<5); i++)
358− m_pPixSrcB[i]=rand()%256;
359− uint8_t *pPixA=m_pPixSrcA;
360− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
357+TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x16_c) {
358+ srand ((uint32_t)time (NULL));
359+ for (int i = 0; i < (m_iStrideA << 5); i++)
360+ m_pPixSrcA[i] = rand() % 256;
361+ for (int i = 0; i < (m_iStrideB << 5); i++)
362+ m_pPixSrcB[i] = rand() % 256;
363+ uint8_t* pPixA = m_pPixSrcA;
364+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
361365
362366 int32_t iSumSad = 0;
363− for (int i = 0; i <16; i++ ) {
364− for(int j=0; j<16; j++) {
365− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
366− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
367− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
368− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
367+ for (int i = 0; i < 16; i++) {
368+ for (int j = 0; j < 16; j++) {
369+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
370+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
371+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
372+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
369373 }
370374 pPixA += m_iStrideA;
371375 pPixB += m_iStrideB;
372376 }
373− WelsSampleSadFour16x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
374− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
377+ WelsSampleSadFour16x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
378+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
375379 }
376380
377−TEST_F(SadSatdCFuncTest, WelsSampleSadFour16x8_c) {
378− srand((uint32_t)time(NULL));
379− for(int i=0; i<(m_iStrideA<<5); i++)
380− m_pPixSrcA[i]=rand()%256;
381− for(int i=0; i<(m_iStrideB<<5); i++)
382− m_pPixSrcB[i]=rand()%256;
383− uint8_t *pPixA=m_pPixSrcA;
384− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
381+TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x8_c) {
382+ srand ((uint32_t)time (NULL));
383+ for (int i = 0; i < (m_iStrideA << 5); i++)
384+ m_pPixSrcA[i] = rand() % 256;
385+ for (int i = 0; i < (m_iStrideB << 5); i++)
386+ m_pPixSrcB[i] = rand() % 256;
387+ uint8_t* pPixA = m_pPixSrcA;
388+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
385389
386390 int32_t iSumSad = 0;
387− for (int i = 0; i <8; i++ ) {
388− for(int j=0; j<16; j++) {
389− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
390− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
391− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
392− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
391+ for (int i = 0; i < 8; i++) {
392+ for (int j = 0; j < 16; j++) {
393+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
394+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
395+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
396+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
393397 }
394398 pPixA += m_iStrideA;
395399 pPixB += m_iStrideB;
396400 }
397401
398− WelsSampleSadFour16x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
399− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
402+ WelsSampleSadFour16x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
403+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
400404 }
401405
402−TEST_F(SadSatdCFuncTest, WelsSampleSadFour8x16_c) {
403− srand((uint32_t)time(NULL));
404− for(int i=0; i<(m_iStrideA<<5); i++)
405− m_pPixSrcA[i]=rand()%256;
406− for(int i=0; i<(m_iStrideB<<5); i++)
407− m_pPixSrcB[i]=rand()%256;
408− uint8_t *pPixA=m_pPixSrcA;
409− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
406+TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x16_c) {
407+ srand ((uint32_t)time (NULL));
408+ for (int i = 0; i < (m_iStrideA << 5); i++)
409+ m_pPixSrcA[i] = rand() % 256;
410+ for (int i = 0; i < (m_iStrideB << 5); i++)
411+ m_pPixSrcB[i] = rand() % 256;
412+ uint8_t* pPixA = m_pPixSrcA;
413+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
410414
411415 int32_t iSumSad = 0;
412− for (int i = 0; i <16; i++ ) {
413− for(int j=0; j<8; j++) {
414− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
415− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
416− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
417− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
416+ for (int i = 0; i < 16; i++) {
417+ for (int j = 0; j < 8; j++) {
418+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
419+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
420+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
421+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
418422 }
419423 pPixA += m_iStrideA;
420424 pPixB += m_iStrideB;
421425 }
422426
423− WelsSampleSadFour8x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
424− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
427+ WelsSampleSadFour8x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
428+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
425429 }
426430
427−TEST_F(SadSatdCFuncTest, WelsSampleSadFour8x8_c) {
428− srand((uint32_t)time(NULL));
429− for(int i=0; i<(m_iStrideA<<4); i++)
430− m_pPixSrcA[i]=rand()%256;
431− for(int i=0; i<(m_iStrideB<<4); i++)
432− m_pPixSrcB[i]=rand()%256;
433− uint8_t *pPixA=m_pPixSrcA;
434− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
431+TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x8_c) {
432+ srand ((uint32_t)time (NULL));
433+ for (int i = 0; i < (m_iStrideA << 4); i++)
434+ m_pPixSrcA[i] = rand() % 256;
435+ for (int i = 0; i < (m_iStrideB << 4); i++)
436+ m_pPixSrcB[i] = rand() % 256;
437+ uint8_t* pPixA = m_pPixSrcA;
438+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
435439
436440 int32_t iSumSad = 0;
437− for (int i = 0; i <8; i++ ) {
438− for(int j=0; j<8; j++) {
439− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
440− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
441− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
442− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
441+ for (int i = 0; i < 8; i++) {
442+ for (int j = 0; j < 8; j++) {
443+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
444+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
445+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
446+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
443447 }
444448 pPixA += m_iStrideA;
445449 pPixB += m_iStrideB;
446450 }
447− WelsSampleSadFour8x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
448− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
451+ WelsSampleSadFour8x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
452+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
449453 }
450454
451−TEST_F(SadSatdCFuncTest, WelsSampleSadFour4x4_c) {
452− srand((uint32_t)time(NULL));
453− for(int i=0; i<(m_iStrideA<<3); i++)
454− m_pPixSrcA[i]=rand()%256;
455− for(int i=0; i<(m_iStrideB<<3); i++)
456− m_pPixSrcB[i]=rand()%256;
457− uint8_t *pPixA=m_pPixSrcA;
458− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
455+TEST_F (SadSatdCFuncTest, WelsSampleSadFour4x4_c) {
456+ srand ((uint32_t)time (NULL));
457+ for (int i = 0; i < (m_iStrideA << 3); i++)
458+ m_pPixSrcA[i] = rand() % 256;
459+ for (int i = 0; i < (m_iStrideB << 3); i++)
460+ m_pPixSrcB[i] = rand() % 256;
461+ uint8_t* pPixA = m_pPixSrcA;
462+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
459463
460464 int32_t iSumSad = 0;
461− for (int i = 0; i <4; i++ ) {
462− for(int j=0; j<4; j++) {
463− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
464− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
465− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
466− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
465+ for (int i = 0; i < 4; i++) {
466+ for (int j = 0; j < 4; j++) {
467+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
468+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
469+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
470+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
467471 }
468472 pPixA += m_iStrideA;
469473 pPixB += m_iStrideB;
470474 }
471− WelsSampleSadFour4x4_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
472− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
475+ WelsSampleSadFour4x4_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
476+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
473477 }
474478
475479 #ifdef X86_ASM
476480 class SadSatdAssemblyFuncTest : public testing::Test {
477−public:
481+ public:
478482 virtual void SetUp() {
479483 int32_t iCpuCores = 0;
480− m_uiCpuFeatureFlag = WelsCPUFeatureDetect(&iCpuCores);
481− pMemAlign = new CMemoryAlign(16);
484+ m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);
485+ pMemAlign = new CMemoryAlign (16);
482486 m_iStrideA = m_iStrideB = PIXEL_STRIDE;
483− m_pPixSrcA = (uint8_t *)pMemAlign->WelsMalloc(m_iStrideA<<5,"Sad_m_pPixSrcA");
484− ASSERT_TRUE(NULL != m_pPixSrcA);
485− m_pPixSrcB = (uint8_t *)pMemAlign->WelsMalloc(m_iStrideB<<5,"Sad_m_pPixSrcB");
486− ASSERT_MEMORY_FAIL2X(m_pPixSrcA, m_pPixSrcB)
487− m_pSad = (int32_t*)pMemAlign->WelsMalloc(4*sizeof(int32_t), "m_pSad");
488− ASSERT_MEMORY_FAIL3X(m_pPixSrcA, m_pPixSrcB, m_pSad)
487+ m_pPixSrcA = (uint8_t*)pMemAlign->WelsMalloc (m_iStrideA << 5, "Sad_m_pPixSrcA");
488+ ASSERT_TRUE (NULL != m_pPixSrcA);
489+ m_pPixSrcB = (uint8_t*)pMemAlign->WelsMalloc (m_iStrideB << 5, "Sad_m_pPixSrcB");
490+ ASSERT_MEMORY_FAIL2X (m_pPixSrcA, m_pPixSrcB)
491+ m_pSad = (int32_t*)pMemAlign->WelsMalloc (4 * sizeof (int32_t), "m_pSad");
492+ ASSERT_MEMORY_FAIL3X (m_pPixSrcA, m_pPixSrcB, m_pSad)
489493 }
490494 virtual void TearDown() {
491− pMemAlign->WelsFree(m_pPixSrcA,"Sad_m_pPixSrcA");
492− pMemAlign->WelsFree(m_pPixSrcB,"Sad_m_pPixSrcB");
493− pMemAlign->WelsFree(m_pSad,"m_pSad");
495+ pMemAlign->WelsFree (m_pPixSrcA, "Sad_m_pPixSrcA");
496+ pMemAlign->WelsFree (m_pPixSrcB, "Sad_m_pPixSrcB");
497+ pMemAlign->WelsFree (m_pSad, "m_pSad");
494498 delete pMemAlign;
495499 }
496−public:
500+ public:
497501 uint32_t m_uiCpuFeatureFlag;
498502 uint8_t* m_pPixSrcA;
499503 uint8_t* m_pPixSrcB;
@@ -504,332 +508,347 @@ public: · 4 unmodified lines
504508 CMemoryAlign* pMemAlign;
505509 };
506510
507−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSad4x4_mmx) {
511+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad4x4_mmx) {
508512 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_MMXEXT))
509513 return;
510514
511− srand((uint32_t)time(NULL));
512− for(int i=0; i<(m_iStrideA<<2); i++)
513− m_pPixSrcA[i]=rand()%256;
514− for(int i=0; i<(m_iStrideB<<2); i++)
515− m_pPixSrcB[i]=rand()%256;
515+ srand ((uint32_t)time (NULL));
516+ for (int i = 0; i < (m_iStrideA << 2); i++)
517+ m_pPixSrcA[i] = rand() % 256;
518+ for (int i = 0; i < (m_iStrideB << 2); i++)
519+ m_pPixSrcB[i] = rand() % 256;
516520
517− EXPECT_EQ(WelsSampleSad4x4_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad4x4_mmx(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
521+ EXPECT_EQ (WelsSampleSad4x4_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad4x4_mmx (m_pPixSrcA,
522+ m_iStrideA, m_pPixSrcB, m_iStrideB));
518523 }
519524
520525
521−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSad8x8_sse21) {
526+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x8_sse21) {
522527 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
523528 return;
524529
525− srand((uint32_t)time(NULL));
526− for(int i=0; i<(m_iStrideA<<3); i++)
527− m_pPixSrcA[i]=rand()%256;
528− for(int i=0; i<(m_iStrideB<<3); i++)
529− m_pPixSrcB[i]=rand()%256;
530+ srand ((uint32_t)time (NULL));
531+ for (int i = 0; i < (m_iStrideA << 3); i++)
532+ m_pPixSrcA[i] = rand() % 256;
533+ for (int i = 0; i < (m_iStrideB << 3); i++)
534+ m_pPixSrcB[i] = rand() % 256;
530535
531− EXPECT_EQ(WelsSampleSad8x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad8x8_sse21(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB ));
536+ EXPECT_EQ (WelsSampleSad8x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad8x8_sse21 (m_pPixSrcA,
537+ m_iStrideA, m_pPixSrcB, m_iStrideB));
532538 }
533539
534−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSad8x16_sse2) {
540+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x16_sse2) {
535541 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
536542 return;
537− srand((uint32_t)time(NULL));
538− for(int i=0; i<(m_iStrideA<<4); i++)
539− m_pPixSrcA[i]=rand()%256;
540− for(int i=0; i<(m_iStrideB<<4); i++)
541− m_pPixSrcB[i]=rand()%256;
543+ srand ((uint32_t)time (NULL));
544+ for (int i = 0; i < (m_iStrideA << 4); i++)
545+ m_pPixSrcA[i] = rand() % 256;
546+ for (int i = 0; i < (m_iStrideB << 4); i++)
547+ m_pPixSrcB[i] = rand() % 256;
542548
543− EXPECT_EQ(WelsSampleSad8x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad8x16_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
549+ EXPECT_EQ (WelsSampleSad8x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad8x16_sse2 (m_pPixSrcA,
550+ m_iStrideA, m_pPixSrcB, m_iStrideB));
544551 }
545552
546−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSad16x8_sse2) {
553+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x8_sse2) {
547554 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
548555 return;
549− srand((uint32_t)time(NULL));
550− for(int i=0; i<(m_iStrideA<<3); i++)
551− m_pPixSrcA[i]=rand()%256;
552− for(int i=0; i<(m_iStrideB<<3); i++)
553− m_pPixSrcB[i]=rand()%256;
556+ srand ((uint32_t)time (NULL));
557+ for (int i = 0; i < (m_iStrideA << 3); i++)
558+ m_pPixSrcA[i] = rand() % 256;
559+ for (int i = 0; i < (m_iStrideB << 3); i++)
560+ m_pPixSrcB[i] = rand() % 256;
554561
555− EXPECT_EQ(WelsSampleSad16x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad16x8_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
562+ EXPECT_EQ (WelsSampleSad16x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad16x8_sse2 (m_pPixSrcA,
563+ m_iStrideA, m_pPixSrcB, m_iStrideB));
556564 }
557565
558−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSad16x16_sse2) {
566+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x16_sse2) {
559567 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
560568 return;
561− srand((uint32_t)time(NULL));
562− for(int i=0; i<(m_iStrideA<<4); i++)
563− m_pPixSrcA[i]=rand()%256;
564− for(int i=0; i<(m_iStrideB<<4); i++)
565− m_pPixSrcB[i]=rand()%256;
569+ srand ((uint32_t)time (NULL));
570+ for (int i = 0; i < (m_iStrideA << 4); i++)
571+ m_pPixSrcA[i] = rand() % 256;
572+ for (int i = 0; i < (m_iStrideB << 4); i++)
573+ m_pPixSrcB[i] = rand() % 256;
566574
567− EXPECT_EQ(WelsSampleSad16x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad16x16_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
575+ EXPECT_EQ (WelsSampleSad16x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSad16x16_sse2 (m_pPixSrcA,
576+ m_iStrideA, m_pPixSrcB, m_iStrideB));
568577 }
569578
570−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse2) {
579+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse2) {
571580 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
572581 return;
573− srand((uint32_t)time(NULL));
574− for(int i=0; i<(m_iStrideA<<2); i++)
575− m_pPixSrcA[i]=rand()%256;
576− for(int i=0; i<(m_iStrideB<<2); i++)
577− m_pPixSrcB[i]=rand()%256;
582+ srand ((uint32_t)time (NULL));
583+ for (int i = 0; i < (m_iStrideA << 2); i++)
584+ m_pPixSrcA[i] = rand() % 256;
585+ for (int i = 0; i < (m_iStrideB << 2); i++)
586+ m_pPixSrcB[i] = rand() % 256;
578587
579− EXPECT_EQ(WelsSampleSatd4x4_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd4x4_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
588+ EXPECT_EQ (WelsSampleSatd4x4_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd4x4_sse2 (m_pPixSrcA,
589+ m_iStrideA, m_pPixSrcB, m_iStrideB));
580590 }
581591
582−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse2) {
592+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse2) {
583593 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
584594 return;
585− srand((uint32_t)time(NULL));
586− for(int i=0; i<(m_iStrideA<<3); i++)
587− m_pPixSrcA[i]=rand()%256;
588− for(int i=0; i<(m_iStrideB<<3); i++)
589− m_pPixSrcB[i]=rand()%256;
595+ srand ((uint32_t)time (NULL));
596+ for (int i = 0; i < (m_iStrideA << 3); i++)
597+ m_pPixSrcA[i] = rand() % 256;
598+ for (int i = 0; i < (m_iStrideB << 3); i++)
599+ m_pPixSrcB[i] = rand() % 256;
590600
591− EXPECT_EQ(WelsSampleSatd8x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd8x8_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB ));
601+ EXPECT_EQ (WelsSampleSatd8x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd8x8_sse2 (m_pPixSrcA,
602+ m_iStrideA, m_pPixSrcB, m_iStrideB));
592603 }
593604
594−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse2) {
605+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse2) {
595606 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
596607 return;
597− srand((uint32_t)time(NULL));
598− for(int i=0; i<(m_iStrideA<<4); i++)
599− m_pPixSrcA[i]=rand()%256;
600− for(int i=0; i<(m_iStrideB<<4); i++)
601− m_pPixSrcB[i]=rand()%256;
608+ srand ((uint32_t)time (NULL));
609+ for (int i = 0; i < (m_iStrideA << 4); i++)
610+ m_pPixSrcA[i] = rand() % 256;
611+ for (int i = 0; i < (m_iStrideB << 4); i++)
612+ m_pPixSrcB[i] = rand() % 256;
602613
603− EXPECT_EQ(WelsSampleSatd8x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd8x16_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
614+ EXPECT_EQ (WelsSampleSatd8x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd8x16_sse2 (m_pPixSrcA,
615+ m_iStrideA, m_pPixSrcB, m_iStrideB));
604616 }
605617
606−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse2) {
618+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse2) {
607619 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
608620 return;
609− srand((uint32_t)time(NULL));
610− for(int i=0; i<(m_iStrideA<<3); i++)
611− m_pPixSrcA[i]=rand()%256;
612− for(int i=0; i<(m_iStrideB<<3); i++)
613− m_pPixSrcB[i]=rand()%256;
621+ srand ((uint32_t)time (NULL));
622+ for (int i = 0; i < (m_iStrideA << 3); i++)
623+ m_pPixSrcA[i] = rand() % 256;
624+ for (int i = 0; i < (m_iStrideB << 3); i++)
625+ m_pPixSrcB[i] = rand() % 256;
614626
615− EXPECT_EQ(WelsSampleSatd16x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd16x8_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
627+ EXPECT_EQ (WelsSampleSatd16x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd16x8_sse2 (m_pPixSrcA,
628+ m_iStrideA, m_pPixSrcB, m_iStrideB));
616629 }
617630
618−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse2) {
631+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse2) {
619632 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
620633 return;
621− srand((uint32_t)time(NULL));
622− for(int i=0; i<(m_iStrideA<<4); i++)
623− m_pPixSrcA[i]=rand()%256;
624− for(int i=0; i<(m_iStrideB<<4); i++)
625− m_pPixSrcB[i]=rand()%256;
634+ srand ((uint32_t)time (NULL));
635+ for (int i = 0; i < (m_iStrideA << 4); i++)
636+ m_pPixSrcA[i] = rand() % 256;
637+ for (int i = 0; i < (m_iStrideB << 4); i++)
638+ m_pPixSrcB[i] = rand() % 256;
626639
627− EXPECT_EQ(WelsSampleSatd16x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd16x16_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
640+ EXPECT_EQ (WelsSampleSatd16x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd16x16_sse2 (m_pPixSrcA,
641+ m_iStrideA, m_pPixSrcB, m_iStrideB));
628642 }
629643
630−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse41) {
644+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse41) {
631645 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
632646 return;
633− srand((uint32_t)time(NULL));
634− for(int i=0; i<(m_iStrideA<<2); i++)
635− m_pPixSrcA[i]=rand()%256;
636− for(int i=0; i<(m_iStrideB<<2); i++)
637− m_pPixSrcB[i]=rand()%256;
647+ srand ((uint32_t)time (NULL));
648+ for (int i = 0; i < (m_iStrideA << 2); i++)
649+ m_pPixSrcA[i] = rand() % 256;
650+ for (int i = 0; i < (m_iStrideB << 2); i++)
651+ m_pPixSrcB[i] = rand() % 256;
638652
639− EXPECT_EQ(WelsSampleSatd4x4_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd4x4_sse41(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
653+ EXPECT_EQ (WelsSampleSatd4x4_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd4x4_sse41 (m_pPixSrcA,
654+ m_iStrideA, m_pPixSrcB, m_iStrideB));
640655 }
641656
642−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse41) {
657+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse41) {
643658 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
644659 return;
645− srand((uint32_t)time(NULL));
646− for(int i=0; i<(m_iStrideA<<3); i++)
647− m_pPixSrcA[i]=rand()%256;
648− for(int i=0; i<(m_iStrideB<<3); i++)
649− m_pPixSrcB[i]=rand()%256;
660+ srand ((uint32_t)time (NULL));
661+ for (int i = 0; i < (m_iStrideA << 3); i++)
662+ m_pPixSrcA[i] = rand() % 256;
663+ for (int i = 0; i < (m_iStrideB << 3); i++)
664+ m_pPixSrcB[i] = rand() % 256;
650665
651− EXPECT_EQ(WelsSampleSatd8x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd8x8_sse41(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB ));
666+ EXPECT_EQ (WelsSampleSatd8x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd8x8_sse41 (m_pPixSrcA,
667+ m_iStrideA, m_pPixSrcB, m_iStrideB));
652668 }
653669
654−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse41) {
670+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse41) {
655671 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
656672 return;
657− srand((uint32_t)time(NULL));
658− for(int i=0; i<(m_iStrideA<<4); i++)
659− m_pPixSrcA[i]=rand()%256;
660− for(int i=0; i<(m_iStrideB<<4); i++)
661− m_pPixSrcB[i]=rand()%256;
673+ srand ((uint32_t)time (NULL));
674+ for (int i = 0; i < (m_iStrideA << 4); i++)
675+ m_pPixSrcA[i] = rand() % 256;
676+ for (int i = 0; i < (m_iStrideB << 4); i++)
677+ m_pPixSrcB[i] = rand() % 256;
662678
663− EXPECT_EQ(WelsSampleSatd8x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd8x16_sse41(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
679+ EXPECT_EQ (WelsSampleSatd8x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd8x16_sse41 (m_pPixSrcA,
680+ m_iStrideA, m_pPixSrcB, m_iStrideB));
664681 }
665682
666−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse41) {
683+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse41) {
667684 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
668685 return;
669− srand((uint32_t)time(NULL));
670− for(int i=0; i<(m_iStrideA<<3); i++)
671− m_pPixSrcA[i]=rand()%256;
672− for(int i=0; i<(m_iStrideB<<3); i++)
673− m_pPixSrcB[i]=rand()%256;
686+ srand ((uint32_t)time (NULL));
687+ for (int i = 0; i < (m_iStrideA << 3); i++)
688+ m_pPixSrcA[i] = rand() % 256;
689+ for (int i = 0; i < (m_iStrideB << 3); i++)
690+ m_pPixSrcB[i] = rand() % 256;
674691
675− EXPECT_EQ(WelsSampleSatd16x8_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd16x8_sse41(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
692+ EXPECT_EQ (WelsSampleSatd16x8_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd16x8_sse41 (m_pPixSrcA,
693+ m_iStrideA, m_pPixSrcB, m_iStrideB));
676694 }
677695
678−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse41) {
696+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse41) {
679697 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
680698 return;
681− srand((uint32_t)time(NULL));
682− for(int i=0; i<(m_iStrideA<<4); i++)
683− m_pPixSrcA[i]=rand()%256;
684− for(int i=0; i<(m_iStrideB<<4); i++)
685− m_pPixSrcB[i]=rand()%256;
699+ srand ((uint32_t)time (NULL));
700+ for (int i = 0; i < (m_iStrideA << 4); i++)
701+ m_pPixSrcA[i] = rand() % 256;
702+ for (int i = 0; i < (m_iStrideB << 4); i++)
703+ m_pPixSrcB[i] = rand() % 256;
686704
687− EXPECT_EQ(WelsSampleSatd16x16_c(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB), WelsSampleSatd16x16_sse41(m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
705+ EXPECT_EQ (WelsSampleSatd16x16_c (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB),
706+ WelsSampleSatd16x16_sse41 (m_pPixSrcA, m_iStrideA, m_pPixSrcB, m_iStrideB));
688707 }
689708
690−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSadFour16x16_sse2) {
709+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour16x16_sse2) {
691710 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
692711 return;
693712
694− srand((uint32_t)time(NULL));
695− for(int i=0; i<(m_iStrideA<<5); i++)
696− m_pPixSrcA[i]=rand()%256;
697− for(int i=0; i<(m_iStrideB<<5); i++)
698− m_pPixSrcB[i]=rand()%256;
699− uint8_t *pPixA=m_pPixSrcA;
700− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
713+ srand ((uint32_t)time (NULL));
714+ for (int i = 0; i < (m_iStrideA << 5); i++)
715+ m_pPixSrcA[i] = rand() % 256;
716+ for (int i = 0; i < (m_iStrideB << 5); i++)
717+ m_pPixSrcB[i] = rand() % 256;
718+ uint8_t* pPixA = m_pPixSrcA;
719+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
701720
702721 int32_t iSumSad = 0;
703− for (int i = 0; i <16; i++ ) {
704− for(int j=0; j<16; j++) {
705− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
706− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
707− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
708− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
722+ for (int i = 0; i < 16; i++) {
723+ for (int j = 0; j < 16; j++) {
724+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
725+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
726+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
727+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
709728 }
710729
711730 pPixA += m_iStrideA;
712731 pPixB += m_iStrideB;
713732 }
714733
715− WelsSampleSadFour16x16_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
716− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
734+ WelsSampleSadFour16x16_sse2 (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
735+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
717736 }
718737
719−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSadFour16x8_sse2) {
738+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour16x8_sse2) {
720739 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
721740 return;
722741
723− srand((uint32_t)time(NULL));
724− for(int i=0; i<(m_iStrideA<<5); i++)
725− m_pPixSrcA[i]=rand()%256;
726− for(int i=0; i<(m_iStrideB<<5); i++)
727− m_pPixSrcB[i]=rand()%256;
728− uint8_t *pPixA=m_pPixSrcA;
729− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
742+ srand ((uint32_t)time (NULL));
743+ for (int i = 0; i < (m_iStrideA << 5); i++)
744+ m_pPixSrcA[i] = rand() % 256;
745+ for (int i = 0; i < (m_iStrideB << 5); i++)
746+ m_pPixSrcB[i] = rand() % 256;
747+ uint8_t* pPixA = m_pPixSrcA;
748+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
730749
731750 int32_t iSumSad = 0;
732− for (int i = 0; i <8; i++ ) {
733− for(int j=0; j<16; j++) {
734− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
735− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
736− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
737− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
751+ for (int i = 0; i < 8; i++) {
752+ for (int j = 0; j < 16; j++) {
753+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
754+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
755+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
756+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
738757 }
739758
740759 pPixA += m_iStrideA;
741760 pPixB += m_iStrideB;
742761 }
743762
744− WelsSampleSadFour16x8_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
745− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
763+ WelsSampleSadFour16x8_sse2 (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
764+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
746765 }
747766
748−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSadFour8x16_sse2) {
767+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour8x16_sse2) {
749768 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
750769 return;
751770
752− srand((uint32_t)time(NULL));
753− for(int i=0; i<(m_iStrideA<<5); i++)
754− m_pPixSrcA[i]=rand()%256;
755− for(int i=0; i<(m_iStrideB<<5); i++)
756− m_pPixSrcB[i]=rand()%256;
757− uint8_t *pPixA=m_pPixSrcA;
758− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
771+ srand ((uint32_t)time (NULL));
772+ for (int i = 0; i < (m_iStrideA << 5); i++)
773+ m_pPixSrcA[i] = rand() % 256;
774+ for (int i = 0; i < (m_iStrideB << 5); i++)
775+ m_pPixSrcB[i] = rand() % 256;
776+ uint8_t* pPixA = m_pPixSrcA;
777+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
759778
760779 int32_t iSumSad = 0;
761− for (int i = 0; i <16; i++ ) {
762− for(int j=0; j<8; j++) {
763− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
764− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
765− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
766− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
780+ for (int i = 0; i < 16; i++) {
781+ for (int j = 0; j < 8; j++) {
782+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
783+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
784+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
785+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
767786 }
768787
769788 pPixA += m_iStrideA;
770789 pPixB += m_iStrideB;
771790 }
772791
773− WelsSampleSadFour8x16_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
774− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
792+ WelsSampleSadFour8x16_sse2 (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
793+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
775794 }
776795
777−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSadFour8x8_sse2) {
796+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour8x8_sse2) {
778797 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
779798 return;
780799
781− srand((uint32_t)time(NULL));
782− for(int i=0; i<(m_iStrideA<<4); i++)
783− m_pPixSrcA[i]=rand()%256;
784− for(int i=0; i<(m_iStrideB<<4); i++)
785− m_pPixSrcB[i]=rand()%256;
786− uint8_t *pPixA=m_pPixSrcA;
787− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
800+ srand ((uint32_t)time (NULL));
801+ for (int i = 0; i < (m_iStrideA << 4); i++)
802+ m_pPixSrcA[i] = rand() % 256;
803+ for (int i = 0; i < (m_iStrideB << 4); i++)
804+ m_pPixSrcB[i] = rand() % 256;
805+ uint8_t* pPixA = m_pPixSrcA;
806+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
788807
789808 int32_t iSumSad = 0;
790− for (int i = 0; i <8; i++ ) {
791− for(int j=0; j<8; j++) {
792− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
793− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
794− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
795− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
809+ for (int i = 0; i < 8; i++) {
810+ for (int j = 0; j < 8; j++) {
811+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
812+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
813+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
814+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
796815 }
797816
798817 pPixA += m_iStrideA;
799818 pPixB += m_iStrideB;
800819 }
801820
802− WelsSampleSadFour8x8_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
803− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
821+ WelsSampleSadFour8x8_sse2 (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
822+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
804823 }
805824
806825
807−TEST_F(SadSatdAssemblyFuncTest, WelsSampleSadFour4x4_sse2) {
826+TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour4x4_sse2) {
808827 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
809828 return;
810829
811− srand((uint32_t)time(NULL));
812− for(int i=0; i<(m_iStrideA<<3); i++)
813− m_pPixSrcA[i]=rand()%256;
814− for(int i=0; i<(m_iStrideB<<3); i++)
815− m_pPixSrcB[i]=rand()%256;
816− uint8_t *pPixA=m_pPixSrcA;
817− uint8_t *pPixB=m_pPixSrcB+m_iStrideB;
830+ srand ((uint32_t)time (NULL));
831+ for (int i = 0; i < (m_iStrideA << 3); i++)
832+ m_pPixSrcA[i] = rand() % 256;
833+ for (int i = 0; i < (m_iStrideB << 3); i++)
834+ m_pPixSrcB[i] = rand() % 256;
835+ uint8_t* pPixA = m_pPixSrcA;
836+ uint8_t* pPixB = m_pPixSrcB + m_iStrideB;
818837
819838 int32_t iSumSad = 0;
820− for (int i = 0; i <4; i++ ) {
821− for(int j=0; j<4; j++) {
822− iSumSad+=abs(pPixA[j]-pPixB[j-1]);
823− iSumSad+=abs(pPixA[j]-pPixB[j+1]);
824− iSumSad+=abs(pPixA[j]-pPixB[j-m_iStrideB]);
825− iSumSad+=abs(pPixA[j]-pPixB[j+m_iStrideB]);
839+ for (int i = 0; i < 4; i++) {
840+ for (int j = 0; j < 4; j++) {
841+ iSumSad += abs (pPixA[j] - pPixB[j - 1]);
842+ iSumSad += abs (pPixA[j] - pPixB[j + 1]);
843+ iSumSad += abs (pPixA[j] - pPixB[j - m_iStrideB]);
844+ iSumSad += abs (pPixA[j] - pPixB[j + m_iStrideB]);
826845 }
827846
828847 pPixA += m_iStrideA;
829848 pPixB += m_iStrideB;
830849 }
831850
832− WelsSampleSadFour4x4_sse2(m_pPixSrcA, m_iStrideA, m_pPixSrcB+m_iStrideB, m_iStrideB, m_pSad);
833− EXPECT_EQ(m_pSad[0]+m_pSad[1]+m_pSad[2]+m_pSad[3],iSumSad);
851+ WelsSampleSadFour4x4_sse2 (m_pPixSrcA, m_iStrideA, m_pPixSrcB + m_iStrideB, m_iStrideB, m_pSad);
852+ EXPECT_EQ (m_pSad[0] + m_pSad[1] + m_pSad[2] + m_pSad[3], iSumSad);
834853 }
835854 #endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t