Add dct_mmi.c, quant_mmi.c and score_mmi.c in codec/encoder/core/mips
Showing the changes to test/encoder/EncUT_EncoderMbAux.cpp (1 of 13 files). Show all
Unified · Split
| @@ -315,6 +315,11 @@ TEST (EncodeMbAuxTest, WelsGetNoneZeroCount_sse42) { · 314 unmodified lines | |||
| 315 | TestGetNoneZeroCount (WelsGetNoneZeroCount_sse42); | 315 | TestGetNoneZeroCount (WelsGetNoneZeroCount_sse42); |
| 316 | } | 316 | } |
| 317 | #endif | 317 | #endif |
| 318 | #ifdef HAVE_MMI | ||
| 319 | TEST (EncodeMbAuxTest, WelsGetNoneZeroCount_mmi) { | ||
| 320 | TestGetNoneZeroCount (WelsGetNoneZeroCount_mmi); | ||
| 321 | } | ||
| 322 | #endif | ||
| 318 | #define WELS_ABS_LC(a) ((sign ^ (int32_t)(a)) - sign) | 323 | #define WELS_ABS_LC(a) ((sign ^ (int32_t)(a)) - sign) |
| 319 | #define NEW_QUANT(pDct, ff, mf) (((ff)+ WELS_ABS_LC(pDct))*(mf)) >>16 | 324 | #define NEW_QUANT(pDct, ff, mf) (((ff)+ WELS_ABS_LC(pDct))*(mf)) >>16 |
| 320 | #define WELS_NEW_QUANT(pDct,ff,mf) WELS_ABS_LC(NEW_QUANT(pDct, ff, mf)) | 325 | #define WELS_NEW_QUANT(pDct,ff,mf) WELS_ABS_LC(NEW_QUANT(pDct, ff, mf)) |
| @@ -478,6 +483,24 @@ TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_avx2) { · 157 unmodified lines | |||
| 478 | } | 483 | } |
| 479 | #endif //HAVE_AVX2 | 484 | #endif //HAVE_AVX2 |
| 480 | #endif | 485 | #endif |
| 486 | #ifdef HAVE_MMI | ||
| 487 | TEST (EncodeMbAuxTest, WelsQuant4x4_mmi) { | ||
| 488 | if (WelsCPUFeatureDetect (0) & WELS_CPU_MMI) | ||
| 489 | TestWelsQuant4x4 (WelsQuant4x4_mmi); | ||
| 490 | } | ||
| 491 | TEST (EncodeMbAuxTest, WelsQuant4x4Dc_mmi) { | ||
| 492 | if (WelsCPUFeatureDetect (0) & WELS_CPU_MMI) | ||
| 493 | TestWelsQuant4x4Dc (WelsQuant4x4Dc_mmi); | ||
| 494 | } | ||
| 495 | TEST (EncodeMbAuxTest, WelsQuantFour4x4_mmi) { | ||
| 496 | if (WelsCPUFeatureDetect (0) & WELS_CPU_MMI) | ||
| 497 | TestWelsQuantFour4x4 (WelsQuantFour4x4_mmi); | ||
| 498 | } | ||
| 499 | TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_mmi) { | ||
| 500 | if (WelsCPUFeatureDetect (0) & WELS_CPU_MMI) | ||
| 501 | TestWelsQuantFour4x4Max (WelsQuantFour4x4Max_mmi); | ||
| 502 | } | ||
| 503 | #endif //HAVE_MMI | ||
| 481 | int32_t WelsHadamardQuant2x2SkipAnchor (int16_t* rs, int16_t ff, int16_t mf) { | 504 | int32_t WelsHadamardQuant2x2SkipAnchor (int16_t* rs, int16_t ff, int16_t mf) { |
| 482 | int16_t pDct[4], s[4]; | 505 | int16_t pDct[4], s[4]; |
| 483 | int16_t threshold = ((1 << 16) - 1) / mf - ff; | 506 | int16_t threshold = ((1 << 16) - 1) / mf - ff; |
| @@ -611,3 +634,20 @@ TEST (EncodeMbAuxTest, WelsHadamardT4Dc_sse2) { · 127 unmodified lines | |||
| 611 | FREE_MEMORY (iLumaDcS); | 634 | FREE_MEMORY (iLumaDcS); |
| 612 | } | 635 | } |
| 613 | #endif | 636 | #endif |
| 637 | #ifdef HAVE_MMI | ||
| 638 | TEST (EncodeMbAuxTest, WelsHadamardT4Dc_mmi) { | ||
| 639 | CMemoryAlign cMemoryAlign (0); | ||
| 640 | ALLOC_MEMORY (int16_t, iDct, 128 * 16); | ||
| 641 | ALLOC_MEMORY (int16_t, iLumaDcC, 16); | ||
| 642 | ALLOC_MEMORY (int16_t, iLumaDcS, 16); | ||
| 643 | for (int i = 0; i < 128 * 16; i++) | ||
| 644 | iDct[i] = (rand() & 32767) - 16384; | ||
| 645 | WelsHadamardT4Dc_c (iLumaDcC, iDct); | ||
| 646 | WelsHadamardT4Dc_mmi (iLumaDcS, iDct); | ||
| 647 | for (int i = 0; i < 16; i++) | ||
| 648 | EXPECT_EQ (iLumaDcC[i], iLumaDcS[i]); | ||
| 649 | FREE_MEMORY (iDct); | ||
| 650 | FREE_MEMORY (iLumaDcC); | ||
| 651 | FREE_MEMORY (iLumaDcS); | ||
| 652 | } | ||
| 653 | #endif | ||