annotate ffmpeg/libavcodec/arm/vp8dsp.h @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents 6840f77b83aa
children
rev   line source
yading@10 1 /*
yading@10 2 * This file is part of Libav.
yading@10 3 *
yading@10 4 * Libav is free software; you can redistribute it and/or
yading@10 5 * modify it under the terms of the GNU Lesser General Public
yading@10 6 * License as published by the Free Software Foundation; either
yading@10 7 * version 2.1 of the License, or (at your option) any later version.
yading@10 8 *
yading@10 9 * Libav is distributed in the hope that it will be useful,
yading@10 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
yading@10 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
yading@10 12 * Lesser General Public License for more details.
yading@10 13 *
yading@10 14 * You should have received a copy of the GNU Lesser General Public
yading@10 15 * License along with Libav; if not, write to the Free Software
yading@10 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
yading@10 17 */
yading@10 18
yading@10 19 #ifndef AVCODEC_ARM_VP8DSP_H
yading@10 20 #define AVCODEC_ARM_VP8DSP_H
yading@10 21
yading@10 22 #include "libavcodec/vp8dsp.h"
yading@10 23
yading@10 24 void ff_vp8dsp_init_armv6(VP8DSPContext *dsp);
yading@10 25 void ff_vp8dsp_init_neon(VP8DSPContext *dsp);
yading@10 26
yading@10 27 #define VP8_LF_Y(hv, inner, opt) \
yading@10 28 void ff_vp8_##hv##_loop_filter16##inner##_##opt(uint8_t *dst, \
yading@10 29 ptrdiff_t stride, \
yading@10 30 int flim_E, int flim_I, \
yading@10 31 int hev_thresh)
yading@10 32
yading@10 33 #define VP8_LF_UV(hv, inner, opt) \
yading@10 34 void ff_vp8_##hv##_loop_filter8uv##inner##_##opt(uint8_t *dstU, \
yading@10 35 uint8_t *dstV, \
yading@10 36 ptrdiff_t stride, \
yading@10 37 int flim_E, int flim_I, \
yading@10 38 int hev_thresh)
yading@10 39
yading@10 40 #define VP8_LF_SIMPLE(hv, opt) \
yading@10 41 void ff_vp8_##hv##_loop_filter16_simple_##opt(uint8_t *dst, \
yading@10 42 ptrdiff_t stride, \
yading@10 43 int flim)
yading@10 44
yading@10 45 #define VP8_LF_HV(inner, opt) \
yading@10 46 VP8_LF_Y(h, inner, opt); \
yading@10 47 VP8_LF_Y(v, inner, opt); \
yading@10 48 VP8_LF_UV(h, inner, opt); \
yading@10 49 VP8_LF_UV(v, inner, opt)
yading@10 50
yading@10 51 #define VP8_LF(opt) \
yading@10 52 VP8_LF_HV(, opt); \
yading@10 53 VP8_LF_HV(_inner, opt); \
yading@10 54 VP8_LF_SIMPLE(h, opt); \
yading@10 55 VP8_LF_SIMPLE(v, opt)
yading@10 56
yading@10 57 #define VP8_MC(n, opt) \
yading@10 58 void ff_put_vp8_##n##_##opt(uint8_t *dst, ptrdiff_t dststride, \
yading@10 59 uint8_t *src, ptrdiff_t srcstride, \
yading@10 60 int h, int x, int y)
yading@10 61
yading@10 62 #define VP8_EPEL(w, opt) \
yading@10 63 VP8_MC(pixels ## w, opt); \
yading@10 64 VP8_MC(epel ## w ## _h4, opt); \
yading@10 65 VP8_MC(epel ## w ## _h6, opt); \
yading@10 66 VP8_MC(epel ## w ## _v4, opt); \
yading@10 67 VP8_MC(epel ## w ## _h4v4, opt); \
yading@10 68 VP8_MC(epel ## w ## _h6v4, opt); \
yading@10 69 VP8_MC(epel ## w ## _v6, opt); \
yading@10 70 VP8_MC(epel ## w ## _h4v6, opt); \
yading@10 71 VP8_MC(epel ## w ## _h6v6, opt)
yading@10 72
yading@10 73 #define VP8_BILIN(w, opt) \
yading@10 74 VP8_MC(bilin ## w ## _h, opt); \
yading@10 75 VP8_MC(bilin ## w ## _v, opt); \
yading@10 76 VP8_MC(bilin ## w ## _hv, opt)
yading@10 77
yading@10 78 #endif /* AVCODEC_ARM_VP8DSP_H */