1. Add dct_mmi.c in codec/decoder/core/mips 2. Add vaa_mmi.c in codec/processing/src/mips 3. Add optimization functions in codec/common/src/mc.cpp
Showing the changes to test/encoder/EncUT_EncoderMbAux.cpp (1 of 14 files). Show all
Unified · Split
| @@ -74,6 +74,39 @@ TEST (EncodeMbAuxTest, WelsScan4x4DcAc_sse2) { · 73 unmodified lines | ||
| 74 | 74 | FREE_MEMORY (iDct); |
| 75 | 75 | } |
| 76 | 76 | #endif |
| 77 | +#ifdef HAVE_MMI | |
| 78 | +TEST (EncodeMbAuxTest, WelsScan4x4Ac_mmi) { | |
| 79 | + CMemoryAlign cMemoryAlign (0); | |
| 80 | + ALLOC_MEMORY (int16_t, iLevelA, 16); | |
| 81 | + ALLOC_MEMORY (int16_t, iLevelB, 16); | |
| 82 | + ALLOC_MEMORY (int16_t, iDct, 16); | |
| 83 | + for (int i = 0; i < 16; i++) { | |
| 84 | + iDct[i] = rand() % 256 + 1; | |
| 85 | + } | |
| 86 | + WelsScan4x4Ac_c (iLevelA, iDct); | |
| 87 | + WelsScan4x4Ac_mmi (iLevelB, iDct); | |
| 88 | + for (int j = 0; j < 16; j++) | |
| 89 | + EXPECT_EQ (iLevelA[j], iLevelB[j]); | |
| 90 | + FREE_MEMORY (iLevelA); | |
| 91 | + FREE_MEMORY (iLevelB); | |
| 92 | + FREE_MEMORY (iDct); | |
| 93 | +} | |
| 94 | +TEST (EncodeMbAuxTest, WelsScan4x4DcAc_mmi) { | |
| 95 | + CMemoryAlign cMemoryAlign (0); | |
| 96 | + ALLOC_MEMORY (int16_t, iLevelA, 32); | |
| 97 | + ALLOC_MEMORY (int16_t, iLevelB, 32); | |
| 98 | + ALLOC_MEMORY (int16_t, iDct, 32); | |
| 99 | + for (int i = 0; i < 32; i++) | |
| 100 | + iDct[i] = (rand() & 32767) - 16384; | |
| 101 | + WelsScan4x4DcAc_mmi (iLevelA, iDct); | |
| 102 | + WelsScan4x4DcAc_c (iLevelB, iDct); | |
| 103 | + for (int i = 0; i < 16; i++) | |
| 104 | + EXPECT_EQ (iLevelA[i], iLevelB[i]); | |
| 105 | + FREE_MEMORY (iLevelA); | |
| 106 | + FREE_MEMORY (iLevelB); | |
| 107 | + FREE_MEMORY (iDct); | |
| 108 | +} | |
| 109 | +#endif | |
| 77 | 110 | TEST (EncodeMbAuxTest, TestScan_4x4_dcc) { |
| 78 | 111 | CMemoryAlign cMemoryAlign (0); |
| 79 | 112 | ALLOC_MEMORY (int16_t, iLevel, 16); |
| @@ -236,6 +269,29 @@ TEST (EncodeMbAuxTest, WelsCalculateSingleCtr4x4_sse2) { · 156 unmodified lines | ||
| 236 | 269 | FREE_MEMORY (iDctS); |
| 237 | 270 | } |
| 238 | 271 | #endif |
| 272 | +#ifdef HAVE_MMI | |
| 273 | +TEST (EncodeMbAuxTest, WelsDctT4_mmi) { | |
| 274 | + TestDctT4 (WelsDctT4_mmi); | |
| 275 | +} | |
| 276 | + | |
| 277 | +TEST (EncodeMbAuxTest, WelsDctFourT4_mmi) { | |
| 278 | + TestDctFourT4 (WelsDctFourT4_mmi); | |
| 279 | +} | |
| 280 | + | |
| 281 | +TEST (EncodeMbAuxTest, WelsCalculateSingleCtr4x4_mmi) { | |
| 282 | + CMemoryAlign cMemoryAlign (0); | |
| 283 | + ALLOC_MEMORY (int16_t, iDctC, 16); | |
| 284 | + ALLOC_MEMORY (int16_t, iDctS, 16); | |
| 285 | + for (int i = 0; i < 16; i++) | |
| 286 | + iDctC[i] = iDctS[i] = (rand() & 65535) - 32768; | |
| 287 | + WelsCalculateSingleCtr4x4_c (iDctC); | |
| 288 | + WelsCalculateSingleCtr4x4_mmi (iDctS); | |
| 289 | + for (int i = 0; i < 16; i++) | |
| 290 | + EXPECT_EQ (iDctC[i], iDctS[i]); | |
| 291 | + FREE_MEMORY (iDctC); | |
| 292 | + FREE_MEMORY (iDctS); | |
| 293 | +} | |
| 294 | +#endif | |
| 239 | 295 | |
| 240 | 296 | void copy (uint8_t* pDst, int32_t iDStride, uint8_t* pSrc, int32_t iSStride, int32_t iWidth, int32_t iHeight) { |
| 241 | 297 | for (int i = 0; i < iHeight; i++) |