Showing the changes to test/encoder/EncUT_EncoderMbAux.cpp (1 of 1 file). Show all
Unified · Split
| @@ -292,6 +292,7 @@ TEST (EncodeMbAuxTest, WelsGetNoneZeroCount_sse2) { · 291 unmodified lines | ||
| 292 | 292 | #define WELS_ABS_LC(a) ((sign ^ (int32_t)(a)) - sign) |
| 293 | 293 | #define NEW_QUANT(pDct, ff, mf) (((ff)+ WELS_ABS_LC(pDct))*(mf)) >>16 |
| 294 | 294 | #define WELS_NEW_QUANT(pDct,ff,mf) WELS_ABS_LC(NEW_QUANT(pDct, ff, mf)) |
| 295 | +namespace { | |
| 295 | 296 | void WelsQuantFour4x4MaxAnchor (int16_t* pDct, int16_t* ff, int16_t* mf, int16_t* max) { |
| 296 | 297 | int32_t i, j, k, sign; |
| 297 | 298 | int16_t max_abs; |
| @@ -308,25 +309,7 @@ void WelsQuantFour4x4MaxAnchor (int16_t* pDct, int16_t* ff, int16_t* mf, int16_ · 10 unmodified lines | ||
| 308 | 309 | max[k] = max_abs; |
| 309 | 310 | } |
| 310 | 311 | } |
| 311 | −TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_c) { | |
| 312 | − int16_t ff[8], mf[8]; | |
| 313 | − int16_t iDctA[64], iMaxA[16]; | |
| 314 | − int16_t iDctC[64], iMaxC[16]; | |
| 315 | − for (int i = 0; i < 8; i++) { | |
| 316 | − ff[i] = rand() & 32767; | |
| 317 | − mf[i] = rand() & 32767; | |
| 318 | − } | |
| 319 | − for (int i = 0; i < 64; i++) | |
| 320 | − iDctA[i] = iDctC[i] = (rand() & 65535) - 32767; | |
| 321 | − WelsQuantFour4x4MaxAnchor (iDctA, ff, mf, iMaxA); | |
| 322 | − WelsQuantFour4x4Max_c (iDctC, ff, mf, iMaxC); | |
| 323 | − for (int i = 0; i < 64; i++) | |
| 324 | − EXPECT_EQ (iDctA[i], iDctC[i]); | |
| 325 | − for (int i = 0; i < 4; i++) | |
| 326 | − EXPECT_EQ (iMaxA[i], iMaxC[i]); | |
| 327 | −} | |
| 328 | −#ifdef X86_ASM | |
| 329 | −TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_sse2) { | |
| 312 | +void TestWelsQuantFour4x4Max (PQuantizationMaxFunc func) { | |
| 330 | 313 | CMemoryAlign cMemoryAlign (0); |
| 331 | 314 | ALLOC_MEMORY (int16_t, ff, 8); |
| 332 | 315 | ALLOC_MEMORY (int16_t, mf, 8); |
| @@ -340,8 +323,8 @@ TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_sse2) { · 7 unmodified lines | ||
| 340 | 323 | } |
| 341 | 324 | for (int i = 0; i < 64; i++) |
| 342 | 325 | iDctC[i] = iDctS[i] = (rand() & 65535) - 32767; |
| 343 | − WelsQuantFour4x4Max_c (iDctC, ff, mf, iMaxC); | |
| 344 | − WelsQuantFour4x4Max_sse2 (iDctS, ff, mf, iMaxS); | |
| 326 | + WelsQuantFour4x4MaxAnchor (iDctC, ff, mf, iMaxC); | |
| 327 | + func (iDctS, ff, mf, iMaxS); | |
| 345 | 328 | for (int i = 0; i < 64; i++) |
| 346 | 329 | EXPECT_EQ (iDctC[i], iDctS[i]); |
| 347 | 330 | for (int i = 0; i < 4; i++) |
| @@ -353,6 +336,14 @@ TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_sse2) { · 5 unmodified lines | ||
| 353 | 336 | FREE_MEMORY (iMaxC); |
| 354 | 337 | FREE_MEMORY (iMaxS); |
| 355 | 338 | } |
| 339 | +} // anon ns | |
| 340 | +TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_c) { | |
| 341 | + TestWelsQuantFour4x4Max (WelsQuantFour4x4Max_c); | |
| 342 | +} | |
| 343 | +#ifdef X86_ASM | |
| 344 | +TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_sse2) { | |
| 345 | + TestWelsQuantFour4x4Max (WelsQuantFour4x4Max_sse2); | |
| 346 | +} | |
| 356 | 347 | #endif |
| 357 | 348 | int32_t WelsHadamardQuant2x2SkipAnchor (int16_t* rs, int16_t ff, int16_t mf) { |
| 358 | 349 | int16_t pDct[4], s[4]; |