Showing the changes to codec/encoder/core/src/encode_mb_aux.cpp (1 of 12 files). Show all
Unified · Split
| @@ -462,63 +462,63 @@ int32_t WelsHadamardQuant2x2Skip_AArch64_neon (int16_t* pRes, int16_t iFF, int1 · 461 unmodified lines | |||
| 462 | } | 462 | } |
| 463 | #endif | 463 | #endif |
| 464 | void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { | 464 | void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { |
| 465 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_c; | 465 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_c; |
| 466 | pFuncList->pfCopy16x16Aligned = | 466 | pFuncList->pfCopy16x16Aligned = |
| 467 | pFuncList->pfCopy16x16NotAligned = WelsCopy16x16_c; | 467 | pFuncList->pfCopy16x16NotAligned = WelsCopy16x16_c; |
| 468 | pFuncList->pfCopy16x8NotAligned = WelsCopy16x8_c; | 468 | pFuncList->pfCopy16x8NotAligned = WelsCopy16x8_c; |
| 469 | pFuncList->pfCopy8x16Aligned = WelsCopy8x16_c; | 469 | pFuncList->pfCopy8x16Aligned = WelsCopy8x16_c; |
| 470 | 470 | ||
| 471 | pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_c; | 471 | pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_c; |
| 472 | pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_c; | 472 | pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_c; |
| 473 | pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_c; | 473 | pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_c; |
| 474 | 474 | ||
| 475 | pFuncList->pfDctT4 = WelsDctT4_c; | 475 | pFuncList->pfDctT4 = WelsDctT4_c; |
| 476 | pFuncList->pfDctFourT4 = WelsDctFourT4_c; | 476 | pFuncList->pfDctFourT4 = WelsDctFourT4_c; |
| 477 | 477 | ||
| 478 | pFuncList->pfScan4x4 = WelsScan4x4DcAc_c; | 478 | pFuncList->pfScan4x4 = WelsScan4x4DcAc_c; |
| 479 | pFuncList->pfScan4x4Ac = WelsScan4x4Ac_c; | 479 | pFuncList->pfScan4x4Ac = WelsScan4x4Ac_c; |
| 480 | pFuncList->pfCalculateSingleCtr4x4 = WelsCalculateSingleCtr4x4_c; | 480 | pFuncList->pfCalculateSingleCtr4x4 = WelsCalculateSingleCtr4x4_c; |
| 481 | 481 | ||
| 482 | pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_c; | 482 | pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_c; |
| 483 | 483 | ||
| 484 | pFuncList->pfQuantization4x4 = WelsQuant4x4_c; | 484 | pFuncList->pfQuantization4x4 = WelsQuant4x4_c; |
| 485 | pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_c; | 485 | pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_c; |
| 486 | pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_c; | 486 | pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_c; |
| 487 | pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_c; | 487 | pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_c; |
| 488 | 488 | ||
| 489 | #if defined(X86_ASM) | 489 | #if defined(X86_ASM) |
| 490 | if (uiCpuFlag & WELS_CPU_MMXEXT) { | 490 | if (uiCpuFlag & WELS_CPU_MMXEXT) { |
| 491 | 491 | ||
| 492 | pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_mmx; | 492 | pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_mmx; |
| 493 | pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_mmx; | 493 | pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_mmx; |
| 494 | 494 | ||
| 495 | pFuncList->pfDctT4 = WelsDctT4_mmx; | 495 | pFuncList->pfDctT4 = WelsDctT4_mmx; |
| 496 | 496 | ||
| 497 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_mmx; | 497 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_mmx; |
| 498 | pFuncList->pfCopy8x16Aligned = WelsCopy8x16_mmx; | 498 | pFuncList->pfCopy8x16Aligned = WelsCopy8x16_mmx; |
| 499 | } | 499 | } |
| 500 | if (uiCpuFlag & WELS_CPU_SSE2) { | 500 | if (uiCpuFlag & WELS_CPU_SSE2) { |
| 501 | pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_sse2; | 501 | pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_sse2; |
| 502 | pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_sse2; | 502 | pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_sse2; |
| 503 | 503 | ||
| 504 | pFuncList->pfQuantization4x4 = WelsQuant4x4_sse2; | 504 | pFuncList->pfQuantization4x4 = WelsQuant4x4_sse2; |
| 505 | pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_sse2; | 505 | pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_sse2; |
| 506 | pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_sse2; | 506 | pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_sse2; |
| 507 | pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_sse2; | 507 | pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_sse2; |
| 508 | 508 | ||
| 509 | pFuncList->pfCopy16x16Aligned = WelsCopy16x16_sse2; | 509 | pFuncList->pfCopy16x16Aligned = WelsCopy16x16_sse2; |
| 510 | pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_sse2; | 510 | pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_sse2; |
| 511 | pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_sse2; | 511 | pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_sse2; |
| 512 | 512 | ||
| 513 | pFuncList->pfScan4x4 = WelsScan4x4DcAc_sse2; | 513 | pFuncList->pfScan4x4 = WelsScan4x4DcAc_sse2; |
| 514 | pFuncList->pfScan4x4Ac = WelsScan4x4Ac_sse2; | 514 | pFuncList->pfScan4x4Ac = WelsScan4x4Ac_sse2; |
| 515 | pFuncList->pfCalculateSingleCtr4x4 = WelsCalculateSingleCtr4x4_sse2; | 515 | pFuncList->pfCalculateSingleCtr4x4 = WelsCalculateSingleCtr4x4_sse2; |
| 516 | 516 | ||
| 517 | pFuncList->pfDctFourT4 = WelsDctFourT4_sse2; | 517 | pFuncList->pfDctFourT4 = WelsDctFourT4_sse2; |
| 518 | } | 518 | } |
| 519 | //#ifndef MACOS | 519 | //#ifndef MACOS |
| 520 | if (uiCpuFlag & WELS_CPU_SSSE3) { | 520 | if (uiCpuFlag & WELS_CPU_SSSE3) { |
| 521 | pFuncList->pfScan4x4 = WelsScan4x4DcAc_ssse3; | 521 | pFuncList->pfScan4x4 = WelsScan4x4DcAc_ssse3; |
| 522 | } | 522 | } |
| 523 | 523 | ||
| 524 | //#endif//MACOS | 524 | //#endif//MACOS |
| @@ -527,47 +527,47 @@ void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) { · 2 unmodified lines | |||
| 527 | 527 | ||
| 528 | #if defined(HAVE_NEON) | 528 | #if defined(HAVE_NEON) |
| 529 | if (uiCpuFlag & WELS_CPU_NEON) { | 529 | if (uiCpuFlag & WELS_CPU_NEON) { |
| 530 | pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_neon; | 530 | pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_neon; |
| 531 | pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_neon; | 531 | pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_neon; |
| 532 | pFuncList->pfDctT4 = WelsDctT4_neon; | 532 | pFuncList->pfDctT4 = WelsDctT4_neon; |
| 533 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_neon; | 533 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_neon; |
| 534 | pFuncList->pfCopy8x16Aligned = WelsCopy8x16_neon; | 534 | pFuncList->pfCopy8x16Aligned = WelsCopy8x16_neon; |
| 535 | 535 | ||
| 536 | pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_neon; | 536 | pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_neon; |
| 537 | pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_neon; | 537 | pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_neon; |
| 538 | 538 | ||
| 539 | pFuncList->pfQuantization4x4 = WelsQuant4x4_neon; | 539 | pFuncList->pfQuantization4x4 = WelsQuant4x4_neon; |
| 540 | pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_neon; | 540 | pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_neon; |
| 541 | pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_neon; | 541 | pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_neon; |
| 542 | pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_neon; | 542 | pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_neon; |
| 543 | 543 | ||
| 544 | pFuncList->pfCopy16x16Aligned = WelsCopy16x16_neon; | 544 | pFuncList->pfCopy16x16Aligned = WelsCopy16x16_neon; |
| 545 | pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_neon; | 545 | pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_neon; |
| 546 | pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_neon; | 546 | pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_neon; |
| 547 | pFuncList->pfDctFourT4 = WelsDctFourT4_neon; | 547 | pFuncList->pfDctFourT4 = WelsDctFourT4_neon; |
| 548 | } | 548 | } |
| 549 | #endif | 549 | #endif |
| 550 | 550 | ||
| 551 | #if defined(HAVE_NEON_AARCH64) | 551 | #if defined(HAVE_NEON_AARCH64) |
| 552 | if (uiCpuFlag & WELS_CPU_NEON) { | 552 | if (uiCpuFlag & WELS_CPU_NEON) { |
| 553 | pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_AArch64_neon; | 553 | pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_AArch64_neon; |
| 554 | pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_AArch64_neon; | 554 | pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_AArch64_neon; |
| 555 | pFuncList->pfDctT4 = WelsDctT4_AArch64_neon; | 555 | pFuncList->pfDctT4 = WelsDctT4_AArch64_neon; |
| 556 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_AArch64_neon; | 556 | pFuncList->pfCopy8x8Aligned = WelsCopy8x8_AArch64_neon; |
| 557 | pFuncList->pfCopy8x16Aligned = WelsCopy8x16_AArch64_neon; | 557 | pFuncList->pfCopy8x16Aligned = WelsCopy8x16_AArch64_neon; |
| 558 | 558 | ||
| 559 | pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_AArch64_neon; | 559 | pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_AArch64_neon; |
| 560 | pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_AArch64_neon; | 560 | pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_AArch64_neon; |
| 561 | 561 | ||
| 562 | pFuncList->pfQuantization4x4 = WelsQuant4x4_AArch64_neon; | 562 | pFuncList->pfQuantization4x4 = WelsQuant4x4_AArch64_neon; |
| 563 | pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_AArch64_neon; | 563 | pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_AArch64_neon; |
| 564 | pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_AArch64_neon; | 564 | pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_AArch64_neon; |
| 565 | pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_AArch64_neon; | 565 | pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_AArch64_neon; |
| 566 | 566 | ||
| 567 | pFuncList->pfCopy16x16Aligned = WelsCopy16x16_AArch64_neon; | 567 | pFuncList->pfCopy16x16Aligned = WelsCopy16x16_AArch64_neon; |
| 568 | pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_AArch64_neon; | 568 | pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_AArch64_neon; |
| 569 | pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_AArch64_neon; | 569 | pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_AArch64_neon; |
| 570 | pFuncList->pfDctFourT4 = WelsDctFourT4_AArch64_neon; | 570 | pFuncList->pfDctFourT4 = WelsDctFourT4_AArch64_neon; |
| 571 | } | 571 | } |
| 572 | #endif | 572 | #endif |
| 573 | } | 573 | } |