Convert tabs to spaces in assignment of SIMD function pointers
This commit is contained in:
parent
95ac72754e
commit
0ca7ff49e2
@ -115,27 +115,27 @@ static inline void ExpandPictureChroma_c (uint8_t* pDst, const int32_t kiStride,
|
||||
}
|
||||
|
||||
void InitExpandPictureFunc (SExpandPicFunc* pExpandPicFunc, const uint32_t kuiCPUFlag) {
|
||||
pExpandPicFunc->pfExpandLumaPicture = ExpandPictureLuma_c;
|
||||
pExpandPicFunc->pfExpandChromaPicture[0] = ExpandPictureChroma_c;
|
||||
pExpandPicFunc->pfExpandChromaPicture[1] = ExpandPictureChroma_c;
|
||||
pExpandPicFunc->pfExpandLumaPicture = ExpandPictureLuma_c;
|
||||
pExpandPicFunc->pfExpandChromaPicture[0] = ExpandPictureChroma_c;
|
||||
pExpandPicFunc->pfExpandChromaPicture[1] = ExpandPictureChroma_c;
|
||||
|
||||
#if defined(X86_ASM)
|
||||
if ((kuiCPUFlag & WELS_CPU_SSE2) == WELS_CPU_SSE2) {
|
||||
pExpandPicFunc->pfExpandLumaPicture = ExpandPictureLuma_sse2;
|
||||
pExpandPicFunc->pfExpandLumaPicture = ExpandPictureLuma_sse2;
|
||||
pExpandPicFunc->pfExpandChromaPicture[0] = ExpandPictureChromaUnalign_sse2;
|
||||
pExpandPicFunc->pfExpandChromaPicture[1] = ExpandPictureChromaAlign_sse2;
|
||||
}
|
||||
#endif//X86_ASM
|
||||
#if defined(HAVE_NEON)
|
||||
if (kuiCPUFlag & WELS_CPU_NEON) {
|
||||
pExpandPicFunc->pfExpandLumaPicture = ExpandPictureLuma_neon;
|
||||
pExpandPicFunc->pfExpandLumaPicture = ExpandPictureLuma_neon;
|
||||
pExpandPicFunc->pfExpandChromaPicture[0] = ExpandPictureChroma_neon;
|
||||
pExpandPicFunc->pfExpandChromaPicture[1] = ExpandPictureChroma_neon;
|
||||
}
|
||||
#endif//HAVE_NEON
|
||||
#if defined(HAVE_NEON_AARCH64)
|
||||
if (kuiCPUFlag & WELS_CPU_NEON) {
|
||||
pExpandPicFunc->pfExpandLumaPicture = ExpandPictureLuma_AArch64_neon;
|
||||
pExpandPicFunc->pfExpandLumaPicture = ExpandPictureLuma_AArch64_neon;
|
||||
pExpandPicFunc->pfExpandChromaPicture[0] = ExpandPictureChroma_AArch64_neon;
|
||||
pExpandPicFunc->pfExpandChromaPicture[1] = ExpandPictureChroma_AArch64_neon;
|
||||
}
|
||||
|
@ -941,59 +941,59 @@ void WelsDeblockingFilterSlice (PWelsDecoderContext pCtx, PDeblockingFilterMbFun
|
||||
*/
|
||||
|
||||
void DeblockingInit (SDeblockingFunc* pFunc, int32_t iCpu) {
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_c;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_c;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_c;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_c;
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_c;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_c;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_c;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_c;
|
||||
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_c;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_c;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_c;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_c;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_c;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_c;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_c;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_c;
|
||||
|
||||
pFunc->pfChromaDeblockingLT4Ver2 = DeblockChromaLt4V2_c;
|
||||
pFunc->pfChromaDeblockingEQ4Ver2 = DeblockChromaEq4V2_c;
|
||||
pFunc->pfChromaDeblockingLT4Hor2 = DeblockChromaLt4H2_c;
|
||||
pFunc->pfChromaDeblockingEQ4Hor2 = DeblockChromaEq4H2_c;
|
||||
pFunc->pfChromaDeblockingLT4Ver2 = DeblockChromaLt4V2_c;
|
||||
pFunc->pfChromaDeblockingEQ4Ver2 = DeblockChromaEq4V2_c;
|
||||
pFunc->pfChromaDeblockingLT4Hor2 = DeblockChromaLt4H2_c;
|
||||
pFunc->pfChromaDeblockingEQ4Hor2 = DeblockChromaEq4H2_c;
|
||||
|
||||
#ifdef X86_ASM
|
||||
if (iCpu & WELS_CPU_SSSE3) {
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_ssse3;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_ssse3;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_ssse3;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_ssse3;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_ssse3;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_ssse3;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_ssse3;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_ssse3;
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_ssse3;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_ssse3;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_ssse3;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_ssse3;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_ssse3;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_ssse3;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_ssse3;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_ssse3;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_NEON)
|
||||
if (iCpu & WELS_CPU_NEON) {
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_neon;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_neon;
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_neon;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_neon;
|
||||
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_neon;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_neon;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_neon;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_NEON_AARCH64)
|
||||
if (iCpu & WELS_CPU_NEON) {
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_AArch64_neon;
|
||||
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_AArch64_neon;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -2001,31 +2001,31 @@ int32_t WelsDecodeMbCavlcPSlice (PWelsDecoderContext pCtx, PNalUnit pNalCur, uin
|
||||
}
|
||||
|
||||
void WelsBlockFuncInit (SBlockFunc* pFunc, int32_t iCpu) {
|
||||
pFunc->pWelsSetNonZeroCountFunc = WelsNonZeroCount_c;
|
||||
pFunc->pWelsBlockZero16x16Func = WelsBlockZero16x16_c;
|
||||
pFunc->pWelsBlockZero8x8Func = WelsBlockZero8x8_c;
|
||||
pFunc->pWelsSetNonZeroCountFunc = WelsNonZeroCount_c;
|
||||
pFunc->pWelsBlockZero16x16Func = WelsBlockZero16x16_c;
|
||||
pFunc->pWelsBlockZero8x8Func = WelsBlockZero8x8_c;
|
||||
|
||||
#ifdef HAVE_NEON
|
||||
if (iCpu & WELS_CPU_NEON) {
|
||||
pFunc->pWelsSetNonZeroCountFunc = WelsNonZeroCount_neon;
|
||||
pFunc->pWelsBlockZero16x16Func = WelsBlockZero16x16_neon;
|
||||
pFunc->pWelsBlockZero8x8Func = WelsBlockZero8x8_neon;
|
||||
pFunc->pWelsSetNonZeroCountFunc = WelsNonZeroCount_neon;
|
||||
pFunc->pWelsBlockZero16x16Func = WelsBlockZero16x16_neon;
|
||||
pFunc->pWelsBlockZero8x8Func = WelsBlockZero8x8_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NEON_AARCH64
|
||||
if (iCpu & WELS_CPU_NEON) {
|
||||
pFunc->pWelsSetNonZeroCountFunc = WelsNonZeroCount_AArch64_neon;
|
||||
pFunc->pWelsBlockZero16x16Func = WelsBlockZero16x16_AArch64_neon;
|
||||
pFunc->pWelsBlockZero8x8Func = WelsBlockZero8x8_AArch64_neon;
|
||||
pFunc->pWelsSetNonZeroCountFunc = WelsNonZeroCount_AArch64_neon;
|
||||
pFunc->pWelsBlockZero16x16Func = WelsBlockZero16x16_AArch64_neon;
|
||||
pFunc->pWelsBlockZero8x8Func = WelsBlockZero8x8_AArch64_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(X86_ASM)
|
||||
if (iCpu & WELS_CPU_SSE2) {
|
||||
pFunc->pWelsSetNonZeroCountFunc = WelsNonZeroCount_sse2;
|
||||
pFunc->pWelsBlockZero16x16Func = WelsBlockZero16x16_sse2;
|
||||
pFunc->pWelsBlockZero8x8Func = WelsBlockZero8x8_sse2;
|
||||
pFunc->pWelsSetNonZeroCountFunc = WelsNonZeroCount_sse2;
|
||||
pFunc->pWelsBlockZero16x16Func = WelsBlockZero16x16_sse2;
|
||||
pFunc->pWelsBlockZero8x8Func = WelsBlockZero8x8_sse2;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -885,13 +885,13 @@ void AssignFuncPointerForRec (PWelsDecoderContext pCtx) {
|
||||
pCtx->pGetIChromaPredFunc[C_PRED_DC_T ] = WelsIChromaPredDcTop_c;
|
||||
pCtx->pGetIChromaPredFunc[C_PRED_DC_128] = WelsIChromaPredDcNA_c;
|
||||
|
||||
pCtx->pIdctResAddPredFunc = IdctResAddPred_c;
|
||||
pCtx->pIdctResAddPredFunc = IdctResAddPred_c;
|
||||
|
||||
pCtx->pIdctResAddPredFunc8x8 = IdctResAddPred8x8_c;
|
||||
pCtx->pIdctResAddPredFunc8x8 = IdctResAddPred8x8_c;
|
||||
|
||||
#if defined(HAVE_NEON)
|
||||
if (pCtx->uiCpuFlag & WELS_CPU_NEON) {
|
||||
pCtx->pIdctResAddPredFunc = IdctResAddPred_neon;
|
||||
pCtx->pIdctResAddPredFunc = IdctResAddPred_neon;
|
||||
|
||||
pCtx->pGetI16x16LumaPredFunc[I16_PRED_DC] = WelsDecoderI16x16LumaPredDc_neon;
|
||||
pCtx->pGetI16x16LumaPredFunc[I16_PRED_P] = WelsDecoderI16x16LumaPredPlane_neon;
|
||||
@ -916,7 +916,7 @@ void AssignFuncPointerForRec (PWelsDecoderContext pCtx) {
|
||||
|
||||
#if defined(HAVE_NEON_AARCH64)
|
||||
if (pCtx->uiCpuFlag & WELS_CPU_NEON) {
|
||||
pCtx->pIdctResAddPredFunc = IdctResAddPred_AArch64_neon;
|
||||
pCtx->pIdctResAddPredFunc = IdctResAddPred_AArch64_neon;
|
||||
|
||||
pCtx->pGetI16x16LumaPredFunc[I16_PRED_DC] = WelsDecoderI16x16LumaPredDc_AArch64_neon;
|
||||
pCtx->pGetI16x16LumaPredFunc[I16_PRED_P] = WelsDecoderI16x16LumaPredPlane_AArch64_neon;
|
||||
@ -946,7 +946,7 @@ void AssignFuncPointerForRec (PWelsDecoderContext pCtx) {
|
||||
|
||||
#if defined(X86_ASM)
|
||||
if (pCtx->uiCpuFlag & WELS_CPU_MMXEXT) {
|
||||
pCtx->pIdctResAddPredFunc = IdctResAddPred_mmx;
|
||||
pCtx->pIdctResAddPredFunc = IdctResAddPred_mmx;
|
||||
|
||||
///////mmx code opt---
|
||||
pCtx->pGetIChromaPredFunc[C_PRED_H] = WelsDecoderIChromaPredH_mmx;
|
||||
|
@ -64,15 +64,15 @@ void InitErrorCon (PWelsDecoderContext pCtx) {
|
||||
|
||||
#if defined(HAVE_NEON)
|
||||
if (pCtx->uiCpuFlag & WELS_CPU_NEON) {
|
||||
pCtx->sCopyFunc.pCopyLumaFunc = WelsCopy16x16_neon; //aligned
|
||||
pCtx->sCopyFunc.pCopyChromaFunc = WelsCopy8x8_neon; //aligned
|
||||
pCtx->sCopyFunc.pCopyLumaFunc = WelsCopy16x16_neon; //aligned
|
||||
pCtx->sCopyFunc.pCopyChromaFunc = WelsCopy8x8_neon; //aligned
|
||||
}
|
||||
#endif //HAVE_NEON
|
||||
|
||||
#if defined(HAVE_NEON_AARCH64)
|
||||
if (pCtx->uiCpuFlag & WELS_CPU_NEON) {
|
||||
pCtx->sCopyFunc.pCopyLumaFunc = WelsCopy16x16_AArch64_neon; //aligned
|
||||
pCtx->sCopyFunc.pCopyChromaFunc = WelsCopy8x8_AArch64_neon; //aligned
|
||||
pCtx->sCopyFunc.pCopyLumaFunc = WelsCopy16x16_AArch64_neon; //aligned
|
||||
pCtx->sCopyFunc.pCopyChromaFunc = WelsCopy8x8_AArch64_neon; //aligned
|
||||
}
|
||||
#endif //HAVE_NEON_AARCH64
|
||||
} //TODO add more methods here
|
||||
|
@ -794,64 +794,64 @@ void WelsBlockFuncInit (PSetNoneZeroCountZeroFunc* pfSetNZCZero, int32_t iCpu)
|
||||
}
|
||||
|
||||
void DeblockingInit (DeblockingFunc* pFunc, int32_t iCpu) {
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_c;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_c;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_c;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_c;
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_c;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_c;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_c;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_c;
|
||||
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_c;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_c;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_c;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_c;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_c;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_c;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_c;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_c;
|
||||
|
||||
pFunc->pfDeblockingBSCalc = DeblockingBSCalc_c;
|
||||
pFunc->pfDeblockingBSCalc = DeblockingBSCalc_c;
|
||||
|
||||
|
||||
#ifdef X86_ASM
|
||||
if (iCpu & WELS_CPU_SSSE3) {
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_ssse3;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_ssse3;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_ssse3;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_ssse3;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_ssse3;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_ssse3;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_ssse3;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_ssse3;
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_ssse3;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_ssse3;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_ssse3;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_ssse3;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_ssse3;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_ssse3;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_ssse3;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_ssse3;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_NEON)
|
||||
if (iCpu & WELS_CPU_NEON) {
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_neon;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_neon;
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_neon;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_neon;
|
||||
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_neon;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_neon;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_neon;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_neon;
|
||||
|
||||
#if defined(SINGLE_REF_FRAME)
|
||||
pFunc->pfDeblockingBSCalc = DeblockingBSCalc_neon;
|
||||
pFunc->pfDeblockingBSCalc = DeblockingBSCalc_neon;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_NEON_AARCH64)
|
||||
if (iCpu & WELS_CPU_NEON) {
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingLT4Ver = DeblockLumaLt4V_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Ver = DeblockLumaEq4V_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingLT4Hor = DeblockLumaLt4H_AArch64_neon;
|
||||
pFunc->pfLumaDeblockingEQ4Hor = DeblockLumaEq4H_AArch64_neon;
|
||||
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingLT4Ver = DeblockChromaLt4V_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Ver = DeblockChromaEq4V_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingLT4Hor = DeblockChromaLt4H_AArch64_neon;
|
||||
pFunc->pfChromaDeblockingEQ4Hor = DeblockChromaEq4H_AArch64_neon;
|
||||
|
||||
#if defined(SINGLE_REF_FRAME)
|
||||
pFunc->pfDeblockingBSCalc = DeblockingBSCalc_AArch64_neon;
|
||||
pFunc->pfDeblockingBSCalc = DeblockingBSCalc_AArch64_neon;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
@ -249,49 +249,49 @@ void WelsGetEncBlockStrideOffset (int32_t* pBlock, const int32_t kiStrideY, cons
|
||||
}
|
||||
|
||||
void WelsInitReconstructionFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) {
|
||||
pFuncList->pfDequantization4x4 = WelsDequant4x4_c;
|
||||
pFuncList->pfDequantizationFour4x4 = WelsDequantFour4x4_c;
|
||||
pFuncList->pfDequantizationIHadamard4x4 = WelsDequantIHadamard4x4_c;
|
||||
pFuncList->pfDequantization4x4 = WelsDequant4x4_c;
|
||||
pFuncList->pfDequantizationFour4x4 = WelsDequantFour4x4_c;
|
||||
pFuncList->pfDequantizationIHadamard4x4 = WelsDequantIHadamard4x4_c;
|
||||
|
||||
pFuncList->pfIDctT4 = WelsIDctT4Rec_c;
|
||||
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_c;
|
||||
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_c;
|
||||
pFuncList->pfIDctT4 = WelsIDctT4Rec_c;
|
||||
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_c;
|
||||
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_c;
|
||||
|
||||
#if defined(X86_ASM)
|
||||
if (uiCpuFlag & WELS_CPU_MMXEXT) {
|
||||
pFuncList->pfIDctT4 = WelsIDctT4Rec_mmx;
|
||||
pFuncList->pfIDctT4 = WelsIDctT4Rec_mmx;
|
||||
}
|
||||
if (uiCpuFlag & WELS_CPU_SSE2) {
|
||||
pFuncList->pfDequantization4x4 = WelsDequant4x4_sse2;
|
||||
pFuncList->pfDequantizationFour4x4 = WelsDequantFour4x4_sse2;
|
||||
pFuncList->pfDequantizationIHadamard4x4 = WelsDequantIHadamard4x4_sse2;
|
||||
pFuncList->pfDequantization4x4 = WelsDequant4x4_sse2;
|
||||
pFuncList->pfDequantizationFour4x4 = WelsDequantFour4x4_sse2;
|
||||
pFuncList->pfDequantizationIHadamard4x4 = WelsDequantIHadamard4x4_sse2;
|
||||
|
||||
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_sse2;
|
||||
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_sse2;
|
||||
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_sse2;
|
||||
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_sse2;
|
||||
}
|
||||
#endif//X86_ASM
|
||||
|
||||
#if defined(HAVE_NEON)
|
||||
if (uiCpuFlag & WELS_CPU_NEON) {
|
||||
pFuncList->pfDequantization4x4 = WelsDequant4x4_neon;
|
||||
pFuncList->pfDequantizationFour4x4 = WelsDequantFour4x4_neon;
|
||||
pFuncList->pfDequantizationIHadamard4x4 = WelsDequantIHadamard4x4_neon;
|
||||
pFuncList->pfDequantization4x4 = WelsDequant4x4_neon;
|
||||
pFuncList->pfDequantizationFour4x4 = WelsDequantFour4x4_neon;
|
||||
pFuncList->pfDequantizationIHadamard4x4 = WelsDequantIHadamard4x4_neon;
|
||||
|
||||
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_neon;
|
||||
pFuncList->pfIDctT4 = WelsIDctT4Rec_neon;
|
||||
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_neon;
|
||||
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_neon;
|
||||
pFuncList->pfIDctT4 = WelsIDctT4Rec_neon;
|
||||
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_NEON_AARCH64)
|
||||
if (uiCpuFlag & WELS_CPU_NEON) {
|
||||
pFuncList->pfDequantization4x4 = WelsDequant4x4_AArch64_neon;
|
||||
pFuncList->pfDequantizationFour4x4 = WelsDequantFour4x4_AArch64_neon;
|
||||
pFuncList->pfDequantizationIHadamard4x4 = WelsDequantIHadamard4x4_AArch64_neon;
|
||||
pFuncList->pfDequantization4x4 = WelsDequant4x4_AArch64_neon;
|
||||
pFuncList->pfDequantizationFour4x4 = WelsDequantFour4x4_AArch64_neon;
|
||||
pFuncList->pfDequantizationIHadamard4x4 = WelsDequantIHadamard4x4_AArch64_neon;
|
||||
|
||||
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_AArch64_neon;
|
||||
pFuncList->pfIDctT4 = WelsIDctT4Rec_AArch64_neon;
|
||||
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_AArch64_neon;
|
||||
pFuncList->pfIDctFourT4 = WelsIDctFourT4Rec_AArch64_neon;
|
||||
pFuncList->pfIDctT4 = WelsIDctT4Rec_AArch64_neon;
|
||||
pFuncList->pfIDctI16x16Dc = WelsIDctRecI16x16Dc_AArch64_neon;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -462,63 +462,63 @@ int32_t WelsHadamardQuant2x2Skip_AArch64_neon (int16_t* pRes, int16_t iFF, int1
|
||||
}
|
||||
#endif
|
||||
void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) {
|
||||
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_c;
|
||||
pFuncList->pfCopy16x16Aligned =
|
||||
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16_c;
|
||||
pFuncList->pfCopy16x8NotAligned = WelsCopy16x8_c;
|
||||
pFuncList->pfCopy8x16Aligned = WelsCopy8x16_c;
|
||||
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_c;
|
||||
pFuncList->pfCopy16x16Aligned =
|
||||
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16_c;
|
||||
pFuncList->pfCopy16x8NotAligned = WelsCopy16x8_c;
|
||||
pFuncList->pfCopy8x16Aligned = WelsCopy8x16_c;
|
||||
|
||||
pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_c;
|
||||
pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_c;
|
||||
pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_c;
|
||||
pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_c;
|
||||
pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_c;
|
||||
pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_c;
|
||||
|
||||
pFuncList->pfDctT4 = WelsDctT4_c;
|
||||
pFuncList->pfDctFourT4 = WelsDctFourT4_c;
|
||||
pFuncList->pfDctT4 = WelsDctT4_c;
|
||||
pFuncList->pfDctFourT4 = WelsDctFourT4_c;
|
||||
|
||||
pFuncList->pfScan4x4 = WelsScan4x4DcAc_c;
|
||||
pFuncList->pfScan4x4Ac = WelsScan4x4Ac_c;
|
||||
pFuncList->pfCalculateSingleCtr4x4 = WelsCalculateSingleCtr4x4_c;
|
||||
pFuncList->pfScan4x4 = WelsScan4x4DcAc_c;
|
||||
pFuncList->pfScan4x4Ac = WelsScan4x4Ac_c;
|
||||
pFuncList->pfCalculateSingleCtr4x4 = WelsCalculateSingleCtr4x4_c;
|
||||
|
||||
pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_c;
|
||||
pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_c;
|
||||
|
||||
pFuncList->pfQuantization4x4 = WelsQuant4x4_c;
|
||||
pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_c;
|
||||
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_c;
|
||||
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_c;
|
||||
pFuncList->pfQuantization4x4 = WelsQuant4x4_c;
|
||||
pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_c;
|
||||
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_c;
|
||||
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_c;
|
||||
|
||||
#if defined(X86_ASM)
|
||||
if (uiCpuFlag & WELS_CPU_MMXEXT) {
|
||||
|
||||
pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_mmx;
|
||||
pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_mmx;
|
||||
pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_mmx;
|
||||
pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_mmx;
|
||||
|
||||
pFuncList->pfDctT4 = WelsDctT4_mmx;
|
||||
pFuncList->pfDctT4 = WelsDctT4_mmx;
|
||||
|
||||
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_mmx;
|
||||
pFuncList->pfCopy8x16Aligned = WelsCopy8x16_mmx;
|
||||
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_mmx;
|
||||
pFuncList->pfCopy8x16Aligned = WelsCopy8x16_mmx;
|
||||
}
|
||||
if (uiCpuFlag & WELS_CPU_SSE2) {
|
||||
pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_sse2;
|
||||
pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_sse2;
|
||||
pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_sse2;
|
||||
pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_sse2;
|
||||
|
||||
pFuncList->pfQuantization4x4 = WelsQuant4x4_sse2;
|
||||
pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_sse2;
|
||||
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_sse2;
|
||||
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_sse2;
|
||||
pFuncList->pfQuantization4x4 = WelsQuant4x4_sse2;
|
||||
pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_sse2;
|
||||
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_sse2;
|
||||
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_sse2;
|
||||
|
||||
pFuncList->pfCopy16x16Aligned = WelsCopy16x16_sse2;
|
||||
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_sse2;
|
||||
pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_sse2;
|
||||
pFuncList->pfCopy16x16Aligned = WelsCopy16x16_sse2;
|
||||
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_sse2;
|
||||
pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_sse2;
|
||||
|
||||
pFuncList->pfScan4x4 = WelsScan4x4DcAc_sse2;
|
||||
pFuncList->pfScan4x4Ac = WelsScan4x4Ac_sse2;
|
||||
pFuncList->pfCalculateSingleCtr4x4 = WelsCalculateSingleCtr4x4_sse2;
|
||||
pFuncList->pfScan4x4 = WelsScan4x4DcAc_sse2;
|
||||
pFuncList->pfScan4x4Ac = WelsScan4x4Ac_sse2;
|
||||
pFuncList->pfCalculateSingleCtr4x4 = WelsCalculateSingleCtr4x4_sse2;
|
||||
|
||||
pFuncList->pfDctFourT4 = WelsDctFourT4_sse2;
|
||||
pFuncList->pfDctFourT4 = WelsDctFourT4_sse2;
|
||||
}
|
||||
//#ifndef MACOS
|
||||
if (uiCpuFlag & WELS_CPU_SSSE3) {
|
||||
pFuncList->pfScan4x4 = WelsScan4x4DcAc_ssse3;
|
||||
pFuncList->pfScan4x4 = WelsScan4x4DcAc_ssse3;
|
||||
}
|
||||
|
||||
//#endif//MACOS
|
||||
@ -527,47 +527,47 @@ void WelsInitEncodingFuncs (SWelsFuncPtrList* pFuncList, uint32_t uiCpuFlag) {
|
||||
|
||||
#if defined(HAVE_NEON)
|
||||
if (uiCpuFlag & WELS_CPU_NEON) {
|
||||
pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_neon;
|
||||
pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_neon;
|
||||
pFuncList->pfDctT4 = WelsDctT4_neon;
|
||||
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_neon;
|
||||
pFuncList->pfCopy8x16Aligned = WelsCopy8x16_neon;
|
||||
pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_neon;
|
||||
pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_neon;
|
||||
pFuncList->pfDctT4 = WelsDctT4_neon;
|
||||
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_neon;
|
||||
pFuncList->pfCopy8x16Aligned = WelsCopy8x16_neon;
|
||||
|
||||
pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_neon;
|
||||
pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_neon;
|
||||
pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_neon;
|
||||
pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_neon;
|
||||
|
||||
pFuncList->pfQuantization4x4 = WelsQuant4x4_neon;
|
||||
pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_neon;
|
||||
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_neon;
|
||||
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_neon;
|
||||
pFuncList->pfQuantization4x4 = WelsQuant4x4_neon;
|
||||
pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_neon;
|
||||
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_neon;
|
||||
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_neon;
|
||||
|
||||
pFuncList->pfCopy16x16Aligned = WelsCopy16x16_neon;
|
||||
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_neon;
|
||||
pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_neon;
|
||||
pFuncList->pfDctFourT4 = WelsDctFourT4_neon;
|
||||
pFuncList->pfCopy16x16Aligned = WelsCopy16x16_neon;
|
||||
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_neon;
|
||||
pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_neon;
|
||||
pFuncList->pfDctFourT4 = WelsDctFourT4_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_NEON_AARCH64)
|
||||
if (uiCpuFlag & WELS_CPU_NEON) {
|
||||
pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_AArch64_neon;
|
||||
pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_AArch64_neon;
|
||||
pFuncList->pfDctT4 = WelsDctT4_AArch64_neon;
|
||||
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_AArch64_neon;
|
||||
pFuncList->pfCopy8x16Aligned = WelsCopy8x16_AArch64_neon;
|
||||
pFuncList->pfQuantizationHadamard2x2 = WelsHadamardQuant2x2_AArch64_neon;
|
||||
pFuncList->pfQuantizationHadamard2x2Skip = WelsHadamardQuant2x2Skip_AArch64_neon;
|
||||
pFuncList->pfDctT4 = WelsDctT4_AArch64_neon;
|
||||
pFuncList->pfCopy8x8Aligned = WelsCopy8x8_AArch64_neon;
|
||||
pFuncList->pfCopy8x16Aligned = WelsCopy8x16_AArch64_neon;
|
||||
|
||||
pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_AArch64_neon;
|
||||
pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_AArch64_neon;
|
||||
pFuncList->pfGetNoneZeroCount = WelsGetNoneZeroCount_AArch64_neon;
|
||||
pFuncList->pfTransformHadamard4x4Dc = WelsHadamardT4Dc_AArch64_neon;
|
||||
|
||||
pFuncList->pfQuantization4x4 = WelsQuant4x4_AArch64_neon;
|
||||
pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_AArch64_neon;
|
||||
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_AArch64_neon;
|
||||
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_AArch64_neon;
|
||||
pFuncList->pfQuantization4x4 = WelsQuant4x4_AArch64_neon;
|
||||
pFuncList->pfQuantizationDc4x4 = WelsQuant4x4Dc_AArch64_neon;
|
||||
pFuncList->pfQuantizationFour4x4 = WelsQuantFour4x4_AArch64_neon;
|
||||
pFuncList->pfQuantizationFour4x4Max = WelsQuantFour4x4Max_AArch64_neon;
|
||||
|
||||
pFuncList->pfCopy16x16Aligned = WelsCopy16x16_AArch64_neon;
|
||||
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_AArch64_neon;
|
||||
pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_AArch64_neon;
|
||||
pFuncList->pfDctFourT4 = WelsDctFourT4_AArch64_neon;
|
||||
pFuncList->pfCopy16x16Aligned = WelsCopy16x16_AArch64_neon;
|
||||
pFuncList->pfCopy16x16NotAligned = WelsCopy16x16NotAligned_AArch64_neon;
|
||||
pFuncList->pfCopy16x8NotAligned = WelsCopy16x8NotAligned_AArch64_neon;
|
||||
pFuncList->pfDctFourT4 = WelsDctFourT4_AArch64_neon;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -159,33 +159,33 @@ int32_t InitFunctionPointers (sWelsEncCtx* pEncCtx, SWelsSvcCodingParam* pParam,
|
||||
bool bScreenContent = (SCREEN_CONTENT_REAL_TIME == pParam->iUsageType);
|
||||
|
||||
/* Functionality utilization of CPU instructions dependency */
|
||||
pFuncList->pfSetMemZeroSize8 = WelsSetMemZero_c; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZero_c; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64 = WelsSetMemZero_c; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize8 = WelsSetMemZero_c; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZero_c; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64 = WelsSetMemZero_c; // confirmed_safe_unsafe_usage
|
||||
#if defined(X86_ASM)
|
||||
if (uiCpuFlag & WELS_CPU_MMXEXT) {
|
||||
pFuncList->pfSetMemZeroSize8 = WelsSetMemZeroSize8_mmx; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZeroSize64_mmx; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64 = WelsSetMemZeroSize64_mmx; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize8 = WelsSetMemZeroSize8_mmx; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZeroSize64_mmx; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64 = WelsSetMemZeroSize64_mmx; // confirmed_safe_unsafe_usage
|
||||
}
|
||||
if (uiCpuFlag & WELS_CPU_SSE2) {
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZeroAligned64_sse2; // confirmed_safe_unsafe_usage
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZeroAligned64_sse2; // confirmed_safe_unsafe_usage
|
||||
}
|
||||
#endif//X86_ASM
|
||||
|
||||
#if defined(HAVE_NEON)
|
||||
if (uiCpuFlag & WELS_CPU_NEON) {
|
||||
pFuncList->pfSetMemZeroSize8 = WelsSetMemZero_neon;
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZero_neon;
|
||||
pFuncList->pfSetMemZeroSize64 = WelsSetMemZero_neon;
|
||||
pFuncList->pfSetMemZeroSize8 = WelsSetMemZero_neon;
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZero_neon;
|
||||
pFuncList->pfSetMemZeroSize64 = WelsSetMemZero_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_NEON_AARCH64)
|
||||
if (uiCpuFlag & WELS_CPU_NEON) {
|
||||
pFuncList->pfSetMemZeroSize8 = WelsSetMemZero_AArch64_neon;
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZero_AArch64_neon;
|
||||
pFuncList->pfSetMemZeroSize64 = WelsSetMemZero_AArch64_neon;
|
||||
pFuncList->pfSetMemZeroSize8 = WelsSetMemZero_AArch64_neon;
|
||||
pFuncList->pfSetMemZeroSize64Aligned16 = WelsSetMemZero_AArch64_neon;
|
||||
pFuncList->pfSetMemZeroSize64 = WelsSetMemZero_AArch64_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -475,21 +475,21 @@ int32_t AnalysisVaaInfoIntra_c (uint8_t* pDataY, const int32_t kiLineSize) {
|
||||
|
||||
// for pfGetVarianceFromIntraVaa function ptr adaptive by CPU features, 6/7/2010
|
||||
void InitIntraAnalysisVaaInfo (SWelsFuncPtrList* pFuncList, const uint32_t kuiCpuFlag) {
|
||||
pFuncList->pfGetVarianceFromIntraVaa = AnalysisVaaInfoIntra_c;
|
||||
pFuncList->pfGetMbSignFromInterVaa = MdInterAnalysisVaaInfo_c;
|
||||
pFuncList->pfUpdateMbMv = UpdateMbMv_c;
|
||||
pFuncList->pfGetVarianceFromIntraVaa = AnalysisVaaInfoIntra_c;
|
||||
pFuncList->pfGetMbSignFromInterVaa = MdInterAnalysisVaaInfo_c;
|
||||
pFuncList->pfUpdateMbMv = UpdateMbMv_c;
|
||||
|
||||
#if defined(X86_ASM)
|
||||
if ((kuiCpuFlag & WELS_CPU_SSE2) == WELS_CPU_SSE2) {
|
||||
pFuncList->pfGetVarianceFromIntraVaa = AnalysisVaaInfoIntra_sse2;
|
||||
pFuncList->pfGetMbSignFromInterVaa = MdInterAnalysisVaaInfo_sse2;
|
||||
pFuncList->pfUpdateMbMv = UpdateMbMv_sse2;
|
||||
pFuncList->pfGetVarianceFromIntraVaa = AnalysisVaaInfoIntra_sse2;
|
||||
pFuncList->pfGetMbSignFromInterVaa = MdInterAnalysisVaaInfo_sse2;
|
||||
pFuncList->pfUpdateMbMv = UpdateMbMv_sse2;
|
||||
}
|
||||
if ((kuiCpuFlag & WELS_CPU_SSSE3) == WELS_CPU_SSSE3) {
|
||||
pFuncList->pfGetVarianceFromIntraVaa = AnalysisVaaInfoIntra_ssse3;
|
||||
pFuncList->pfGetVarianceFromIntraVaa = AnalysisVaaInfoIntra_ssse3;
|
||||
}
|
||||
if ((kuiCpuFlag & WELS_CPU_SSE41) == WELS_CPU_SSE41) {
|
||||
pFuncList->pfGetMbSignFromInterVaa = MdInterAnalysisVaaInfo_sse41;
|
||||
pFuncList->pfGetMbSignFromInterVaa = MdInterAnalysisVaaInfo_sse41;
|
||||
}
|
||||
#endif//X86_ASM
|
||||
}
|
||||
|
@ -53,25 +53,25 @@ void CDownsampling::InitDownsampleFuncs (SDownsampleFuncs& sDownsampleFunc, int
|
||||
sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsampler_c;
|
||||
sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_c;
|
||||
sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_c;
|
||||
sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsampler_c;
|
||||
sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearFastDownsampler_c;
|
||||
sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsampler_c;
|
||||
sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearFastDownsampler_c;
|
||||
#if defined(X86_ASM)
|
||||
if (iCpuFlag & WELS_CPU_SSE) {
|
||||
sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_sse;
|
||||
sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_sse;
|
||||
sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsamplerWidthx8_sse;
|
||||
sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_sse;
|
||||
sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_sse;
|
||||
sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsamplerWidthx8_sse;
|
||||
}
|
||||
if (iCpuFlag & WELS_CPU_SSE2) {
|
||||
sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_sse2;
|
||||
sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearFastDownsamplerWrap_sse2;
|
||||
}
|
||||
if (iCpuFlag & WELS_CPU_SSSE3) {
|
||||
sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_ssse3;
|
||||
sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_ssse3;
|
||||
sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_ssse3;
|
||||
sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_ssse3;
|
||||
}
|
||||
if (iCpuFlag & WELS_CPU_SSE41) {
|
||||
sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_sse4;
|
||||
sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_sse4;
|
||||
sDownsampleFunc.pfHalfAverage[0] = DyadicBilinearDownsamplerWidthx32_sse4;
|
||||
sDownsampleFunc.pfHalfAverage[1] = DyadicBilinearDownsamplerWidthx16_sse4;
|
||||
}
|
||||
#endif//X86_ASM
|
||||
|
||||
@ -82,7 +82,7 @@ void CDownsampling::InitDownsampleFuncs (SDownsampleFuncs& sDownsampleFunc, int
|
||||
sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_neon;
|
||||
sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_neon;
|
||||
sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_neon;
|
||||
sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearAccurateDownsamplerWrap_neon;
|
||||
sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearAccurateDownsamplerWrap_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -93,7 +93,7 @@ void CDownsampling::InitDownsampleFuncs (SDownsampleFuncs& sDownsampleFunc, int
|
||||
sDownsampleFunc.pfHalfAverage[2] = DyadicBilinearDownsampler_AArch64_neon;
|
||||
sDownsampleFunc.pfHalfAverage[3] = DyadicBilinearDownsampler_AArch64_neon;
|
||||
sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_AArch64_neon;
|
||||
sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearAccurateDownsamplerWrap_AArch64_neon;
|
||||
sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearAccurateDownsamplerWrap_AArch64_neon;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -51,37 +51,37 @@ CVAACalculation::~CVAACalculation() {
|
||||
}
|
||||
|
||||
void CVAACalculation::InitVaaFuncs (SVaaFuncs& sVaaFuncs, int32_t iCpuFlag) {
|
||||
sVaaFuncs.pfVAACalcSad = VAACalcSad_c;
|
||||
sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_c;
|
||||
sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_c;
|
||||
sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_c;
|
||||
sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_c;
|
||||
sVaaFuncs.pfVAACalcSad = VAACalcSad_c;
|
||||
sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_c;
|
||||
sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_c;
|
||||
sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_c;
|
||||
sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_c;
|
||||
#ifdef X86_ASM
|
||||
if ((iCpuFlag & WELS_CPU_SSE2) == WELS_CPU_SSE2) {
|
||||
sVaaFuncs.pfVAACalcSad = VAACalcSad_sse2;
|
||||
sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_sse2;
|
||||
sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_sse2;
|
||||
sVaaFuncs.pfVAACalcSad = VAACalcSad_sse2;
|
||||
sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_sse2;
|
||||
sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_sse2;
|
||||
sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_sse2;
|
||||
sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_sse2;
|
||||
sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_sse2;
|
||||
}
|
||||
#endif//X86_ASM
|
||||
#ifdef HAVE_NEON
|
||||
if ((iCpuFlag & WELS_CPU_NEON) == WELS_CPU_NEON) {
|
||||
sVaaFuncs.pfVAACalcSad = VAACalcSad_neon;
|
||||
sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_neon;
|
||||
sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_neon;
|
||||
sVaaFuncs.pfVAACalcSad = VAACalcSad_neon;
|
||||
sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_neon;
|
||||
sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_neon;
|
||||
sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_neon;
|
||||
sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_neon;
|
||||
sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_neon;
|
||||
}
|
||||
#endif//HAVE_NEON
|
||||
|
||||
#ifdef HAVE_NEON_AARCH64
|
||||
if ((iCpuFlag & WELS_CPU_NEON) == WELS_CPU_NEON) {
|
||||
sVaaFuncs.pfVAACalcSad = VAACalcSad_AArch64_neon;
|
||||
sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_AArch64_neon;
|
||||
sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_AArch64_neon;
|
||||
sVaaFuncs.pfVAACalcSad = VAACalcSad_AArch64_neon;
|
||||
sVaaFuncs.pfVAACalcSadBgd = VAACalcSadBgd_AArch64_neon;
|
||||
sVaaFuncs.pfVAACalcSadSsd = VAACalcSadSsd_AArch64_neon;
|
||||
sVaaFuncs.pfVAACalcSadSsdBgd = VAACalcSadSsdBgd_AArch64_neon;
|
||||
sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_AArch64_neon;
|
||||
sVaaFuncs.pfVAACalcSadVar = VAACalcSadVar_AArch64_neon;
|
||||
}
|
||||
#endif//HAVE_NEON_AARCH64
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user