Move the MC routines to the common library
Use the decoder versions of the functions (which are capable of handling widths 4/8/16 for luma, not only 16 as in the encoder). By using the more generic versions, there may be a small performance loss since the functions need to check the width in every call. Actual measurements show that the actual change is very small (and the shared routines turn out to actually be faster than the existing ones in ARM NEON setups).
This commit is contained in:
@@ -55,6 +55,7 @@
|
||||
#include "crt_util_safe_x.h"
|
||||
#include "mb_cache.h"
|
||||
#include "expand_pic.h"
|
||||
#include "mc.h"
|
||||
|
||||
namespace WelsDec {
|
||||
#define MAX_PRED_MODE_ID_I16x16 3
|
||||
@@ -142,13 +143,6 @@ uint8_t uiLongRefCount[LIST_A]; // dependend on ref pic module
|
||||
int32_t iMaxLongTermFrameIdx;
|
||||
} SRefPic, *PRefPic;
|
||||
|
||||
typedef void (*PWelsMcFunc) (const uint8_t* pSrc, int32_t iSrcStride, uint8_t* pDst, int32_t iDstStride,
|
||||
int16_t iMvX, int16_t iMvY, int32_t iWidth, int32_t iHeight);
|
||||
typedef struct TagMcFunc {
|
||||
PWelsMcFunc pMcLumaFunc;
|
||||
PWelsMcFunc pMcChromaFunc;
|
||||
} SMcFunc;
|
||||
|
||||
typedef void (*PCopyFunc) (uint8_t* pDst, int32_t iStrideD, uint8_t* pSrc, int32_t iStrideS);
|
||||
typedef struct TagCopyFunc {
|
||||
PCopyFunc pCopyLumaFunc;
|
||||
|
||||
Reference in New Issue
Block a user