static inline void McHorVer32_c (uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride, int32_t iWidth, int32_t iHeight) { uint8_t uiVerTmp[256] = { 0 }; uint8_t uiCtrTmp[256] = { 0 }; McHorVer02_c (pSrc + 1, iSrcStride, uiVerTmp, 16, iWidth, iHeight); McHorVer22_c (pSrc, iSrcStride, uiCtrTmp, 16, iWidth, iHeight); PixelAvg_c (pDst, iDstStride, uiVerTmp, 16, uiCtrTmp, 16, iWidth, iHeight); }
static inline void McHorVer23_c (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride, int32_t iWidth, int32_t iHeight) { uint8_t uiHorTmp[256]; uint8_t uiCtrTmp[256]; McHorVer20_c (pSrc + iSrcStride, iSrcStride, uiHorTmp, 16, iWidth, iHeight); McHorVer22_c (pSrc, iSrcStride, uiCtrTmp, 16, iWidth, iHeight); PixelAvg_c (pDst, iDstStride, uiHorTmp, 16, uiCtrTmp, 16, iWidth, iHeight); }
static inline void McHorVer22_sse2 (uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride, int32_t iWidth, int32_t iHeight) { if (iWidth == 16) McHorVer22WidthEq16_sse2 (pSrc, iSrcStride, pDst, iDstStride, iHeight); else if (iWidth == 8) McHorVer22WidthEq8_sse2 (pSrc, iSrcStride, pDst, iDstStride, iHeight); else McHorVer22_c (pSrc, iSrcStride, pDst, iDstStride, 4, iHeight); }
static inline void McHorVer32_sse2 (uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride, int32_t iWidth, int32_t iHeight) { ENFORCE_STACK_ALIGN_1D (uint8_t, pVerTmp, 256, 16); ENFORCE_STACK_ALIGN_1D (uint8_t, pCtrTmp, 256, 16); if (iWidth == 16) { McHorVer02WidthEq16_sse2 (pSrc + 1, iSrcStride, pVerTmp, 16, iHeight); McHorVer22WidthEq16_sse2 (pSrc, iSrcStride, pCtrTmp, 16, iHeight); PixelAvgWidthEq16_sse2 (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight); } else if (iWidth == 8) { McHorVer02WidthEq8_sse2 (pSrc + 1, iSrcStride, pVerTmp, 16, iHeight); McHorVer22WidthEq8_sse2 (pSrc, iSrcStride, pCtrTmp, 16, iHeight); PixelAvgWidthEq8_mmx (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight); } else { McHorVer02_c (pSrc + 1, iSrcStride, pVerTmp, 16, 4, iHeight); McHorVer22_c (pSrc, iSrcStride, pCtrTmp, 16, 4, iHeight); PixelAvgWidthEq4_mmx (pDst, iDstStride, pVerTmp, 16, pCtrTmp, 16, iHeight); } }