00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AVCODEC_ARM_VP8DSP_H
00020 #define AVCODEC_ARM_VP8DSP_H
00021
00022 #include "libavcodec/vp8dsp.h"
00023
00024 void ff_vp8dsp_init_armv6(VP8DSPContext *dsp);
00025 void ff_vp8dsp_init_neon(VP8DSPContext *dsp);
00026
00027 #define VP8_LF_Y(hv, inner, opt) \
00028 void ff_vp8_##hv##_loop_filter16##inner##_##opt(uint8_t *dst, \
00029 ptrdiff_t stride, \
00030 int flim_E, int flim_I, \
00031 int hev_thresh)
00032
00033 #define VP8_LF_UV(hv, inner, opt) \
00034 void ff_vp8_##hv##_loop_filter8uv##inner##_##opt(uint8_t *dstU, \
00035 uint8_t *dstV, \
00036 ptrdiff_t stride, \
00037 int flim_E, int flim_I, \
00038 int hev_thresh)
00039
00040 #define VP8_LF_SIMPLE(hv, opt) \
00041 void ff_vp8_##hv##_loop_filter16_simple_##opt(uint8_t *dst, \
00042 ptrdiff_t stride, \
00043 int flim)
00044
00045 #define VP8_LF_HV(inner, opt) \
00046 VP8_LF_Y(h, inner, opt); \
00047 VP8_LF_Y(v, inner, opt); \
00048 VP8_LF_UV(h, inner, opt); \
00049 VP8_LF_UV(v, inner, opt)
00050
00051 #define VP8_LF(opt) \
00052 VP8_LF_HV(, opt); \
00053 VP8_LF_HV(_inner, opt); \
00054 VP8_LF_SIMPLE(h, opt); \
00055 VP8_LF_SIMPLE(v, opt)
00056
00057 #define VP8_MC(n, opt) \
00058 void ff_put_vp8_##n##_##opt(uint8_t *dst, ptrdiff_t dststride, \
00059 uint8_t *src, ptrdiff_t srcstride, \
00060 int h, int x, int y)
00061
00062 #define VP8_EPEL(w, opt) \
00063 VP8_MC(pixels ## w, opt); \
00064 VP8_MC(epel ## w ## _h4, opt); \
00065 VP8_MC(epel ## w ## _h6, opt); \
00066 VP8_MC(epel ## w ## _v4, opt); \
00067 VP8_MC(epel ## w ## _h4v4, opt); \
00068 VP8_MC(epel ## w ## _h6v4, opt); \
00069 VP8_MC(epel ## w ## _v6, opt); \
00070 VP8_MC(epel ## w ## _h4v6, opt); \
00071 VP8_MC(epel ## w ## _h6v6, opt)
00072
00073 #define VP8_BILIN(w, opt) \
00074 VP8_MC(bilin ## w ## _h, opt); \
00075 VP8_MC(bilin ## w ## _v, opt); \
00076 VP8_MC(bilin ## w ## _hv, opt)
00077
00078 #endif