vp9_rtcd.h revision 5ae7ac49f08a179e4f054d99fcfc9dce78d26e58
1ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#ifndef VP9_RTCD_H_
2ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define VP9_RTCD_H_
3ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
4ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#ifdef RTCD_C
5ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define RTCD_EXTERN
6ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#else
7ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define RTCD_EXTERN extern
8ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif
9ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
10ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang/*
11ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang * VP9
12ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang */
13ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
14ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vpx/vpx_integer.h"
15ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vp9/common/vp9_enums.h"
16ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
17ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangstruct macroblockd;
18ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
19ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang/* Encoder forward decls */
20ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangstruct macroblock;
21ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangstruct vp9_variance_vtable;
22ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
23ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define DEC_MVCOSTS int *mvjcost, int *mvcost[2]
24ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangunion int_mv;
25ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangstruct yv12_buffer_config;
26ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
271184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
281184aebb761cbeac9124c37189a80a1a58f04b6bhkuang#define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c
29ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
301184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
3191037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c
32ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
331184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
3491037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d63_predictor_4x4 vp9_d63_predictor_4x4_c
35ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
361184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
3791037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_h_predictor_4x4 vp9_h_predictor_4x4_c
38ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
391184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
4091037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d117_predictor_4x4 vp9_d117_predictor_4x4_c
41ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
421184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
4391037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d135_predictor_4x4 vp9_d135_predictor_4x4_c
44ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
451184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
4691037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d153_predictor_4x4 vp9_d153_predictor_4x4_c
4791037db265ecdd914a26e056cf69207b4f50924ehkuang
481184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
4991037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_v_predictor_4x4 vp9_v_predictor_4x4_c
5091037db265ecdd914a26e056cf69207b4f50924ehkuang
511184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
5291037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_tm_predictor_4x4 vp9_tm_predictor_4x4_c
5391037db265ecdd914a26e056cf69207b4f50924ehkuang
541184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
5591037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_c
5691037db265ecdd914a26e056cf69207b4f50924ehkuang
571184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
5891037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c
5991037db265ecdd914a26e056cf69207b4f50924ehkuang
601184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
6191037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c
6291037db265ecdd914a26e056cf69207b4f50924ehkuang
631184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
6491037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c
6591037db265ecdd914a26e056cf69207b4f50924ehkuang
661184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
671184aebb761cbeac9124c37189a80a1a58f04b6bhkuang#define vp9_d207_predictor_8x8 vp9_d207_predictor_8x8_c
6891037db265ecdd914a26e056cf69207b4f50924ehkuang
691184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
7091037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d45_predictor_8x8 vp9_d45_predictor_8x8_c
7191037db265ecdd914a26e056cf69207b4f50924ehkuang
721184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
7391037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d63_predictor_8x8 vp9_d63_predictor_8x8_c
7491037db265ecdd914a26e056cf69207b4f50924ehkuang
751184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
7691037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_h_predictor_8x8 vp9_h_predictor_8x8_c
7791037db265ecdd914a26e056cf69207b4f50924ehkuang
781184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
7991037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d117_predictor_8x8 vp9_d117_predictor_8x8_c
8091037db265ecdd914a26e056cf69207b4f50924ehkuang
811184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
8291037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c
8391037db265ecdd914a26e056cf69207b4f50924ehkuang
841184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
8591037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d153_predictor_8x8 vp9_d153_predictor_8x8_c
8691037db265ecdd914a26e056cf69207b4f50924ehkuang
871184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
8891037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_v_predictor_8x8 vp9_v_predictor_8x8_c
8991037db265ecdd914a26e056cf69207b4f50924ehkuang
901184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
9191037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_tm_predictor_8x8 vp9_tm_predictor_8x8_c
9291037db265ecdd914a26e056cf69207b4f50924ehkuang
931184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
9491037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_c
9591037db265ecdd914a26e056cf69207b4f50924ehkuang
961184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
9791037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c
9891037db265ecdd914a26e056cf69207b4f50924ehkuang
991184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
10091037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c
10191037db265ecdd914a26e056cf69207b4f50924ehkuang
1021184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
10391037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c
10491037db265ecdd914a26e056cf69207b4f50924ehkuang
1051184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
1061184aebb761cbeac9124c37189a80a1a58f04b6bhkuang#define vp9_d207_predictor_16x16 vp9_d207_predictor_16x16_c
10791037db265ecdd914a26e056cf69207b4f50924ehkuang
1081184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
10991037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d45_predictor_16x16 vp9_d45_predictor_16x16_c
11091037db265ecdd914a26e056cf69207b4f50924ehkuang
1111184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
11291037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d63_predictor_16x16 vp9_d63_predictor_16x16_c
11391037db265ecdd914a26e056cf69207b4f50924ehkuang
1141184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
11591037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_h_predictor_16x16 vp9_h_predictor_16x16_c
11691037db265ecdd914a26e056cf69207b4f50924ehkuang
1171184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
11891037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c
11991037db265ecdd914a26e056cf69207b4f50924ehkuang
1201184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12191037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d135_predictor_16x16 vp9_d135_predictor_16x16_c
12291037db265ecdd914a26e056cf69207b4f50924ehkuang
1231184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12491037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d153_predictor_16x16 vp9_d153_predictor_16x16_c
12591037db265ecdd914a26e056cf69207b4f50924ehkuang
1261184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12791037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_v_predictor_16x16 vp9_v_predictor_16x16_c
12891037db265ecdd914a26e056cf69207b4f50924ehkuang
1291184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13091037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_tm_predictor_16x16 vp9_tm_predictor_16x16_c
13191037db265ecdd914a26e056cf69207b4f50924ehkuang
1321184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13391037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_c
13491037db265ecdd914a26e056cf69207b4f50924ehkuang
1351184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13691037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c
13791037db265ecdd914a26e056cf69207b4f50924ehkuang
1381184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13991037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c
14091037db265ecdd914a26e056cf69207b4f50924ehkuang
1411184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14291037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c
14391037db265ecdd914a26e056cf69207b4f50924ehkuang
1441184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
1451184aebb761cbeac9124c37189a80a1a58f04b6bhkuang#define vp9_d207_predictor_32x32 vp9_d207_predictor_32x32_c
14691037db265ecdd914a26e056cf69207b4f50924ehkuang
1471184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14891037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d45_predictor_32x32 vp9_d45_predictor_32x32_c
14991037db265ecdd914a26e056cf69207b4f50924ehkuang
1501184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15191037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d63_predictor_32x32 vp9_d63_predictor_32x32_c
15291037db265ecdd914a26e056cf69207b4f50924ehkuang
1531184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15491037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_h_predictor_32x32 vp9_h_predictor_32x32_c
15591037db265ecdd914a26e056cf69207b4f50924ehkuang
1561184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15791037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c
15891037db265ecdd914a26e056cf69207b4f50924ehkuang
1591184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16091037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d135_predictor_32x32 vp9_d135_predictor_32x32_c
16191037db265ecdd914a26e056cf69207b4f50924ehkuang
1621184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16391037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c
16491037db265ecdd914a26e056cf69207b4f50924ehkuang
1651184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16691037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_v_predictor_32x32 vp9_v_predictor_32x32_c
16791037db265ecdd914a26e056cf69207b4f50924ehkuang
1681184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16991037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_c
17091037db265ecdd914a26e056cf69207b4f50924ehkuang
1711184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
17291037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_c
17391037db265ecdd914a26e056cf69207b4f50924ehkuang
1741184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
17591037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c
17691037db265ecdd914a26e056cf69207b4f50924ehkuang
1771184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
17891037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c
17991037db265ecdd914a26e056cf69207b4f50924ehkuang
1801184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
18191037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c
182ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
183ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_mb_lpf_vertical_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
184f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuangvoid vp9_mb_lpf_vertical_edge_w_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
185f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang#define vp9_mb_lpf_vertical_edge_w vp9_mb_lpf_vertical_edge_w_neon
186ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
187ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_mbloop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
18891037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_mbloop_filter_vertical_edge_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
18991037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_mbloop_filter_vertical_edge vp9_mbloop_filter_vertical_edge_neon
190ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
191ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_loop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
19291037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_loop_filter_vertical_edge_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
19391037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_loop_filter_vertical_edge vp9_loop_filter_vertical_edge_neon
194ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
19591037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_mb_lpf_horizontal_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
196f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuangvoid vp9_mb_lpf_horizontal_edge_w_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
197f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang#define vp9_mb_lpf_horizontal_edge_w vp9_mb_lpf_horizontal_edge_w_neon
198ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
199ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_mbloop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
20091037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_mbloop_filter_horizontal_edge_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
20191037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_mbloop_filter_horizontal_edge vp9_mbloop_filter_horizontal_edge_neon
202ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
203ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_loop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
20491037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_loop_filter_horizontal_edge_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
20591037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_loop_filter_horizontal_edge vp9_loop_filter_horizontal_edge_neon
206ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
207ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_blend_mb_inner_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
208ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp9_blend_mb_inner vp9_blend_mb_inner_c
209ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
210ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_blend_mb_outer_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
211ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp9_blend_mb_outer vp9_blend_mb_outer_c
212ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
213ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_blend_b_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
214ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define vp9_blend_b vp9_blend_b_c
215ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
21691037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
2171184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_convolve_copy_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
2181184aebb761cbeac9124c37189a80a1a58f04b6bhkuang#define vp9_convolve_copy vp9_convolve_copy_neon
219ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
22091037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
2211184aebb761cbeac9124c37189a80a1a58f04b6bhkuangvoid vp9_convolve_avg_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
2221184aebb761cbeac9124c37189a80a1a58f04b6bhkuang#define vp9_convolve_avg vp9_convolve_avg_neon
223ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
22491037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
22591037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
22691037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_convolve8 vp9_convolve8_neon
227ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
22891037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
22991037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_horiz_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
23091037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_convolve8_horiz vp9_convolve8_horiz_neon
231ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
23291037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
23391037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_vert_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
23491037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_convolve8_vert vp9_convolve8_vert_neon
235ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
23691037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
23791037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_avg_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
23891037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_convolve8_avg vp9_convolve8_avg_neon
23991037db265ecdd914a26e056cf69207b4f50924ehkuang
24091037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
24191037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_avg_horiz_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
24291037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_convolve8_avg_horiz vp9_convolve8_avg_horiz_neon
24391037db265ecdd914a26e056cf69207b4f50924ehkuang
24491037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
24591037db265ecdd914a26e056cf69207b4f50924ehkuangvoid vp9_convolve8_avg_vert_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
24691037db265ecdd914a26e056cf69207b4f50924ehkuang#define vp9_convolve8_avg_vert vp9_convolve8_avg_vert_neon
247ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2485ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2495ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct4x4_1_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2505ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct4x4_1_add vp9_idct4x4_1_add_neon
251ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2525ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2535ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct4x4_16_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2545ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct4x4_16_add vp9_idct4x4_16_add_neon
255ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2565ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct8x8_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2575ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct8x8_1_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2585ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct8x8_1_add vp9_idct8x8_1_add_neon
259f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang
2605ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2615ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct8x8_64_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2625ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct8x8_64_add vp9_idct8x8_64_add_neon
263ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2645ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct8x8_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2655ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct8x8_10_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2665ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct8x8_10_add vp9_idct8x8_10_add_neon
267ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2685ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct16x16_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2695ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct16x16_1_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2705ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct16x16_1_add vp9_idct16x16_1_add_neon
271ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2725ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct16x16_256_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2735ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct16x16_256_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2745ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct16x16_256_add vp9_idct16x16_256_add_neon
275ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2765ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct16x16_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2775ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct16x16_10_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2785ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct16x16_10_add vp9_idct16x16_10_add_neon
279ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2805ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct32x32_1024_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2815ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct32x32_1024_add_neon(const int16_t *input, uint8_t *dest, int dest_stride);
2825ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct32x32_1024_add vp9_idct32x32_1024_add_neon
283ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2845ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct32x32_34_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2855ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct32x32_34_add vp9_idct32x32_34_add_c
286ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2875ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_idct32x32_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
2885ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_idct32x32_1_add vp9_idct32x32_1_add_c
289ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2905ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_iht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
2915ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_iht4x4_16_add_neon(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
2925ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_iht4x4_16_add vp9_iht4x4_16_add_neon
293ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2945ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_iht8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
2955ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_iht8x8_64_add_neon(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
2965ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_iht8x8_64_add vp9_iht8x8_64_add_neon
297ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
2985ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_iht16x16_256_add_c(const int16_t *input, uint8_t *output, int pitch, int tx_type);
2995ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
300ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
3015ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_iwht4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
3025ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_iwht4x4_1_add vp9_iwht4x4_1_add_c
303ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
3045ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuangvoid vp9_iwht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
3055ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang#define vp9_iwht4x4_16_add vp9_iwht4x4_16_add_c
306ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
307ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_rtcd(void);
308ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vpx_config.h"
309ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
310ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#ifdef RTCD_C
311ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vpx_ports/arm.h"
312ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangstatic void setup_rtcd_internal(void)
313ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang{
314ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang    int flags = arm_cpu_caps();
315ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
316ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang    (void)flags;
317ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
318ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
319ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang}
320ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif
321ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif
322