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