namespace neon {
// typedefs
typedef std::integral_constant<int, 3> C3;
typedef std::integral_constant<int, 4> C4;
typedef MapperUnit<float, int> MapperUnit32F;
typedef MapperUnit<Q0_16, short> MapperUnit8U;
// global functions
template <int chanNum>
CV_ALWAYS_INLINE void channels2planes_store(
std::array<std::array<uint8_t \*, 4>, chanNum>& dst,
const uchar \* src,
const int width,
const int line
);
CV_ALWAYS_INLINE void vertical_anyLPI(
const uchar \* src0,
const uchar \* src1,
uchar \* tmp,
const int inLength,
const short beta
);
template <int chanNum>
CV_ALWAYS_INLINE void horizontal_anyLPI(
std::array<std::array<uint8_t \*, 4>, chanNum>& dst,
const uchar \* src,
const short mapsx[],
const short alpha[],
const int width,
const int line
);
CV_ALWAYS_INLINE void vertical_4LPI(
const uint8_t \* src0[],
const uint8_t \* src1[],
uchar tmp[],
const short beta[],
const int length
);
template <int chanNum>
CV_ALWAYS_INLINE void horizontal_4LPI(
std::array<std::array<uint8_t \*, 4>, chanNum>& dst,
const uchar \* tmp,
const short mapsx[],
const uchar _mask_horizontal[],
const short clone[],
const int length
);
template <int chanNum>
CV_ALWAYS_INLINE bool calcRowLinear_8UC_Impl(
neon_tag,
std::array<std::array<uint8_t \*, 4>, chanNum>& dst,
const uint8_t \* src0[],
const uint8_t \* src1[],
const short alpha[],
const short clone[],
const short mapsx[],
const short beta[],
uint8_t tmp[],
const Size& inSz,
const Size& outSz,
const int lpi
);
CV_ALWAYS_INLINE void horizontal_4LPI(
uint8_t \* dst[],
const uchar \* tmp,
const short mapsx[],
const short clone[],
const int length
);
CV_ALWAYS_INLINE void horizontal_anyLPI(
uint8_t \* dst,
const uchar \* src,
const short mapsx[],
const short alpha[],
const int length
);
void calcRowArea_8U(
uchar dst[],
const uchar \* src[],
const Size& inSz,
const Size& outSz,
Q0_16 yalpha,
const MapperUnit8U& ymap,
int xmaxdf,
const short xindex[],
const Q0_16 xalpha[],
Q8_8 vbuf[]
);
void calcRowArea_32F(
float dst[],
const float \* src[],
const Size& inSz,
const Size& outSz,
float yalpha,
const MapperUnit32F& ymap,
int xmaxdf,
const int xindex[],
const float xalpha[],
float vbuf[]
);
} // namespace neon