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 | FREE_MEMORY (iDct); | 74 | FREE_MEMORY (iDct); |
| 75 | } | 75 | } |
| 76 | #endif | 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 | TEST (EncodeMbAuxTest, TestScan_4x4_dcc) { | 110 | TEST (EncodeMbAuxTest, TestScan_4x4_dcc) { |
| 78 | CMemoryAlign cMemoryAlign (0); | 111 | CMemoryAlign cMemoryAlign (0); |
| 79 | ALLOC_MEMORY (int16_t, iLevel, 16); | 112 | ALLOC_MEMORY (int16_t, iLevel, 16); |
| @@ -236,6 +269,29 @@ TEST (EncodeMbAuxTest, WelsCalculateSingleCtr4x4_sse2) { · 156 unmodified lines | |||
| 236 | FREE_MEMORY (iDctS); | 269 | FREE_MEMORY (iDctS); |
| 237 | } | 270 | } |
| 238 | #endif | 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 | void copy (uint8_t* pDst, int32_t iDStride, uint8_t* pSrc, int32_t iSStride, int32_t iWidth, int32_t iHeight) { | 296 | void copy (uint8_t* pDst, int32_t iDStride, uint8_t* pSrc, int32_t iSStride, int32_t iWidth, int32_t iHeight) { |
| 241 | for (int i = 0; i < iHeight; i++) | 297 | for (int i = 0; i < iHeight; i++) |