#include <assert.h>
#include "src/dsp/dsp.h"
#include "src/dec/vp8i_dec.h"
#include "src/utils/utils.h"
static WEBP_INLINE uint8_t clip_8b(int v) { … }
#define STORE …
#define STORE2 …
#if !WEBP_NEON_OMIT_C_CODE
static void TransformOne_C(const int16_t* in, uint8_t* dst) { … }
static void TransformAC3_C(const int16_t* in, uint8_t* dst) { … }
#undef STORE2
static void TransformTwo_C(const int16_t* in, uint8_t* dst, int do_two) { … }
#endif
static void TransformUV_C(const int16_t* in, uint8_t* dst) { … }
#if !WEBP_NEON_OMIT_C_CODE
static void TransformDC_C(const int16_t* in, uint8_t* dst) { … }
#endif
static void TransformDCUV_C(const int16_t* in, uint8_t* dst) { … }
#undef STORE
#if !WEBP_NEON_OMIT_C_CODE
static void TransformWHT_C(const int16_t* in, int16_t* out) { … }
#endif
void (*VP8TransformWHT)(const int16_t* in, int16_t* out);
#define DST …
#if !WEBP_NEON_OMIT_C_CODE
static WEBP_INLINE void TrueMotion(uint8_t* dst, int size) { … }
static void TM4_C(uint8_t* dst) { … }
static void TM8uv_C(uint8_t* dst) { … }
static void TM16_C(uint8_t* dst) { … }
static void VE16_C(uint8_t* dst) { … }
static void HE16_C(uint8_t* dst) { … }
static WEBP_INLINE void Put16(int v, uint8_t* dst) { … }
static void DC16_C(uint8_t* dst) { … }
static void DC16NoTop_C(uint8_t* dst) { … }
static void DC16NoLeft_C(uint8_t* dst) { … }
static void DC16NoTopLeft_C(uint8_t* dst) { … }
#endif
VP8PredFunc VP8PredLuma16[NUM_B_DC_MODES];
#define AVG3 …
#define AVG2 …
#if !WEBP_NEON_OMIT_C_CODE
static void VE4_C(uint8_t* dst) { … }
#endif
static void HE4_C(uint8_t* dst) { … }
#if !WEBP_NEON_OMIT_C_CODE
static void DC4_C(uint8_t* dst) { … }
static void RD4_C(uint8_t* dst) { … }
static void LD4_C(uint8_t* dst) { … }
#endif
static void VR4_C(uint8_t* dst) { … }
static void VL4_C(uint8_t* dst) { … }
static void HU4_C(uint8_t* dst) { … }
static void HD4_C(uint8_t* dst) { … }
#undef DST
#undef AVG3
#undef AVG2
VP8PredFunc VP8PredLuma4[NUM_BMODES];
#if !WEBP_NEON_OMIT_C_CODE
static void VE8uv_C(uint8_t* dst) { … }
static void HE8uv_C(uint8_t* dst) { … }
static WEBP_INLINE void Put8x8uv(uint8_t value, uint8_t* dst) { … }
static void DC8uv_C(uint8_t* dst) { … }
static void DC8uvNoLeft_C(uint8_t* dst) { … }
static void DC8uvNoTop_C(uint8_t* dst) { … }
static void DC8uvNoTopLeft_C(uint8_t* dst) { … }
#endif
VP8PredFunc VP8PredChroma8[NUM_B_DC_MODES];
#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC
static WEBP_INLINE void DoFilter2_C(uint8_t* p, int step) { … }
static WEBP_INLINE void DoFilter4_C(uint8_t* p, int step) { … }
static WEBP_INLINE void DoFilter6_C(uint8_t* p, int step) { … }
static WEBP_INLINE int Hev(const uint8_t* p, int step, int thresh) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE
static WEBP_INLINE int NeedsFilter_C(const uint8_t* p, int step, int t) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC
static WEBP_INLINE int NeedsFilter2_C(const uint8_t* p,
int step, int t, int it) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE
static void SimpleVFilter16_C(uint8_t* p, int stride, int thresh) { … }
static void SimpleHFilter16_C(uint8_t* p, int stride, int thresh) { … }
static void SimpleVFilter16i_C(uint8_t* p, int stride, int thresh) { … }
static void SimpleHFilter16i_C(uint8_t* p, int stride, int thresh) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC
static WEBP_INLINE void FilterLoop26_C(uint8_t* p,
int hstride, int vstride, int size,
int thresh, int ithresh,
int hev_thresh) { … }
static WEBP_INLINE void FilterLoop24_C(uint8_t* p,
int hstride, int vstride, int size,
int thresh, int ithresh,
int hev_thresh) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE
static void VFilter16_C(uint8_t* p, int stride,
int thresh, int ithresh, int hev_thresh) { … }
static void HFilter16_C(uint8_t* p, int stride,
int thresh, int ithresh, int hev_thresh) { … }
static void VFilter16i_C(uint8_t* p, int stride,
int thresh, int ithresh, int hev_thresh) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC
static void HFilter16i_C(uint8_t* p, int stride,
int thresh, int ithresh, int hev_thresh) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE
static void VFilter8_C(uint8_t* u, uint8_t* v, int stride,
int thresh, int ithresh, int hev_thresh) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC
static void HFilter8_C(uint8_t* u, uint8_t* v, int stride,
int thresh, int ithresh, int hev_thresh) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE
static void VFilter8i_C(uint8_t* u, uint8_t* v, int stride,
int thresh, int ithresh, int hev_thresh) { … }
#endif
#if !WEBP_NEON_OMIT_C_CODE || WEBP_NEON_WORK_AROUND_GCC
static void HFilter8i_C(uint8_t* u, uint8_t* v, int stride,
int thresh, int ithresh, int hev_thresh) { … }
#endif
static void DitherCombine8x8_C(const uint8_t* dither, uint8_t* dst,
int dst_stride) { … }
VP8DecIdct2 VP8Transform;
VP8DecIdct VP8TransformAC3;
VP8DecIdct VP8TransformUV;
VP8DecIdct VP8TransformDC;
VP8DecIdct VP8TransformDCUV;
VP8LumaFilterFunc VP8VFilter16;
VP8LumaFilterFunc VP8HFilter16;
VP8ChromaFilterFunc VP8VFilter8;
VP8ChromaFilterFunc VP8HFilter8;
VP8LumaFilterFunc VP8VFilter16i;
VP8LumaFilterFunc VP8HFilter16i;
VP8ChromaFilterFunc VP8VFilter8i;
VP8ChromaFilterFunc VP8HFilter8i;
VP8SimpleFilterFunc VP8SimpleVFilter16;
VP8SimpleFilterFunc VP8SimpleHFilter16;
VP8SimpleFilterFunc VP8SimpleVFilter16i;
VP8SimpleFilterFunc VP8SimpleHFilter16i;
void (*VP8DitherCombine8x8)(const uint8_t* dither, uint8_t* dst,
int dst_stride);
extern VP8CPUInfo VP8GetCPUInfo;
extern void VP8DspInitSSE2(void);
extern void VP8DspInitSSE41(void);
extern void VP8DspInitNEON(void);
extern void VP8DspInitMIPS32(void);
extern void VP8DspInitMIPSdspR2(void);
extern void VP8DspInitMSA(void);
WEBP_DSP_INIT_FUNC(VP8DspInit) { … }