1#ifndef VP9_RTCD_H_ 2#define VP9_RTCD_H_ 3 4#ifdef RTCD_C 5#define RTCD_EXTERN 6#else 7#define RTCD_EXTERN extern 8#endif 9 10/* 11 * VP9 12 */ 13 14#include "vpx/vpx_integer.h" 15#include "vp9/common/vp9_enums.h" 16#include "vp9/common/vp9_idct.h" 17 18struct macroblockd; 19 20/* Encoder forward decls */ 21struct macroblock; 22struct vp9_variance_vtable; 23struct search_site_config; 24struct mv; 25union int_mv; 26struct yv12_buffer_config; 27 28#ifdef __cplusplus 29extern "C" { 30#endif 31 32int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz); 33#define vp9_block_error vp9_block_error_c 34 35void 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); 36void vp9_convolve8_sse2(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); 37void vp9_convolve8_ssse3(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); 38RTCD_EXTERN void (*vp9_convolve8)(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); 39 40void 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); 41void vp9_convolve8_avg_sse2(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); 42void vp9_convolve8_avg_ssse3(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); 43RTCD_EXTERN void (*vp9_convolve8_avg)(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); 44 45void 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); 46void vp9_convolve8_avg_horiz_sse2(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); 47void vp9_convolve8_avg_horiz_ssse3(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); 48RTCD_EXTERN void (*vp9_convolve8_avg_horiz)(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); 49 50void 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); 51void vp9_convolve8_avg_vert_sse2(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); 52void vp9_convolve8_avg_vert_ssse3(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); 53RTCD_EXTERN void (*vp9_convolve8_avg_vert)(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); 54 55void 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); 56void vp9_convolve8_horiz_sse2(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); 57void vp9_convolve8_horiz_ssse3(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); 58RTCD_EXTERN void (*vp9_convolve8_horiz)(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); 59 60void 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); 61void vp9_convolve8_vert_sse2(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); 62void vp9_convolve8_vert_ssse3(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); 63RTCD_EXTERN void (*vp9_convolve8_vert)(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); 64 65void 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); 66#define vp9_convolve_avg vp9_convolve_avg_c 67 68void 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); 69#define vp9_convolve_copy vp9_convolve_copy_c 70 71void vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 72#define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c 73 74void vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 75#define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c 76 77void vp9_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 78#define vp9_d117_predictor_4x4 vp9_d117_predictor_4x4_c 79 80void vp9_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 81#define vp9_d117_predictor_8x8 vp9_d117_predictor_8x8_c 82 83void vp9_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 84#define vp9_d135_predictor_16x16 vp9_d135_predictor_16x16_c 85 86void vp9_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 87#define vp9_d135_predictor_32x32 vp9_d135_predictor_32x32_c 88 89void vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 90#define vp9_d135_predictor_4x4 vp9_d135_predictor_4x4_c 91 92void vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 93#define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c 94 95void vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 96#define vp9_d153_predictor_16x16 vp9_d153_predictor_16x16_c 97 98void vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 99#define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c 100 101void vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 102#define vp9_d153_predictor_4x4 vp9_d153_predictor_4x4_c 103 104void vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 105#define vp9_d153_predictor_8x8 vp9_d153_predictor_8x8_c 106 107void vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 108#define vp9_d207_predictor_16x16 vp9_d207_predictor_16x16_c 109 110void vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 111#define vp9_d207_predictor_32x32 vp9_d207_predictor_32x32_c 112 113void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 114#define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c 115 116void vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 117#define vp9_d207_predictor_8x8 vp9_d207_predictor_8x8_c 118 119void vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 120#define vp9_d45_predictor_16x16 vp9_d45_predictor_16x16_c 121 122void vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 123#define vp9_d45_predictor_32x32 vp9_d45_predictor_32x32_c 124 125void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 126#define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c 127 128void vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 129#define vp9_d45_predictor_8x8 vp9_d45_predictor_8x8_c 130 131void vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 132#define vp9_d63_predictor_16x16 vp9_d63_predictor_16x16_c 133 134void vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 135#define vp9_d63_predictor_32x32 vp9_d63_predictor_32x32_c 136 137void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 138#define vp9_d63_predictor_4x4 vp9_d63_predictor_4x4_c 139 140void vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 141#define vp9_d63_predictor_8x8 vp9_d63_predictor_8x8_c 142 143void vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 144#define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c 145 146void vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 147#define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c 148 149void vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 150#define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c 151 152void vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 153#define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c 154 155void vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 156#define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c 157 158void vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 159#define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c 160 161void vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 162#define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c 163 164void vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 165#define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c 166 167void vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 168#define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_c 169 170void vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 171#define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_c 172 173void vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 174#define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_c 175 176void vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 177#define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_c 178 179void vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 180#define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c 181 182void vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 183#define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c 184 185void vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 186#define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c 187 188void vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 189#define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c 190 191int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv); 192#define vp9_diamond_search_sad vp9_diamond_search_sad_c 193 194void vp9_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride); 195void vp9_fdct16x16_sse2(const int16_t *input, tran_low_t *output, int stride); 196RTCD_EXTERN void (*vp9_fdct16x16)(const int16_t *input, tran_low_t *output, int stride); 197 198void vp9_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride); 199void vp9_fdct16x16_1_sse2(const int16_t *input, tran_low_t *output, int stride); 200RTCD_EXTERN void (*vp9_fdct16x16_1)(const int16_t *input, tran_low_t *output, int stride); 201 202void vp9_fdct32x32_c(const int16_t *input, tran_low_t *output, int stride); 203void vp9_fdct32x32_sse2(const int16_t *input, tran_low_t *output, int stride); 204RTCD_EXTERN void (*vp9_fdct32x32)(const int16_t *input, tran_low_t *output, int stride); 205 206void vp9_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride); 207void vp9_fdct32x32_1_sse2(const int16_t *input, tran_low_t *output, int stride); 208RTCD_EXTERN void (*vp9_fdct32x32_1)(const int16_t *input, tran_low_t *output, int stride); 209 210void vp9_fdct32x32_rd_c(const int16_t *input, tran_low_t *output, int stride); 211void vp9_fdct32x32_rd_sse2(const int16_t *input, tran_low_t *output, int stride); 212RTCD_EXTERN void (*vp9_fdct32x32_rd)(const int16_t *input, tran_low_t *output, int stride); 213 214void vp9_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride); 215void vp9_fdct4x4_sse2(const int16_t *input, tran_low_t *output, int stride); 216RTCD_EXTERN void (*vp9_fdct4x4)(const int16_t *input, tran_low_t *output, int stride); 217 218void vp9_fdct4x4_1_c(const int16_t *input, tran_low_t *output, int stride); 219void vp9_fdct4x4_1_sse2(const int16_t *input, tran_low_t *output, int stride); 220RTCD_EXTERN void (*vp9_fdct4x4_1)(const int16_t *input, tran_low_t *output, int stride); 221 222void vp9_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride); 223void vp9_fdct8x8_sse2(const int16_t *input, tran_low_t *output, int stride); 224RTCD_EXTERN void (*vp9_fdct8x8)(const int16_t *input, tran_low_t *output, int stride); 225 226void vp9_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride); 227void vp9_fdct8x8_1_sse2(const int16_t *input, tran_low_t *output, int stride); 228RTCD_EXTERN void (*vp9_fdct8x8_1)(const int16_t *input, tran_low_t *output, int stride); 229 230void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type); 231void vp9_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type); 232RTCD_EXTERN void (*vp9_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type); 233 234void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type); 235void vp9_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type); 236RTCD_EXTERN void (*vp9_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type); 237 238void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type); 239void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type); 240RTCD_EXTERN void (*vp9_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type); 241 242int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv); 243#define vp9_full_range_search vp9_full_range_search_c 244 245int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv); 246int vp9_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv); 247int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv); 248RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv); 249 250void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride); 251#define vp9_fwht4x4 vp9_fwht4x4_c 252 253void vp9_get16x16var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum); 254#define vp9_get16x16var vp9_get16x16var_c 255 256void vp9_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum); 257#define vp9_get8x8var vp9_get8x8var_c 258 259unsigned int vp9_get_mb_ss_c(const int16_t *); 260#define vp9_get_mb_ss vp9_get_mb_ss_c 261 262void vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 263#define vp9_h_predictor_16x16 vp9_h_predictor_16x16_c 264 265void vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 266#define vp9_h_predictor_32x32 vp9_h_predictor_32x32_c 267 268void vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 269#define vp9_h_predictor_4x4 vp9_h_predictor_4x4_c 270 271void vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 272#define vp9_h_predictor_8x8 vp9_h_predictor_8x8_c 273 274void vp9_idct16x16_10_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 275void vp9_idct16x16_10_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 276void vp9_idct16x16_10_add_ssse3(const tran_low_t *input, uint8_t *dest, int dest_stride); 277RTCD_EXTERN void (*vp9_idct16x16_10_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 278 279void vp9_idct16x16_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 280void vp9_idct16x16_1_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 281RTCD_EXTERN void (*vp9_idct16x16_1_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 282 283void vp9_idct16x16_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 284void vp9_idct16x16_256_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 285void vp9_idct16x16_256_add_ssse3(const tran_low_t *input, uint8_t *dest, int dest_stride); 286RTCD_EXTERN void (*vp9_idct16x16_256_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 287 288void vp9_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 289void vp9_idct32x32_1024_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 290RTCD_EXTERN void (*vp9_idct32x32_1024_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 291 292void vp9_idct32x32_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 293void vp9_idct32x32_1_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 294RTCD_EXTERN void (*vp9_idct32x32_1_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 295 296void vp9_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 297void vp9_idct32x32_34_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 298RTCD_EXTERN void (*vp9_idct32x32_34_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 299 300void vp9_idct4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 301void vp9_idct4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 302RTCD_EXTERN void (*vp9_idct4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 303 304void vp9_idct4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 305void vp9_idct4x4_1_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 306RTCD_EXTERN void (*vp9_idct4x4_1_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 307 308void vp9_idct8x8_12_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 309void vp9_idct8x8_12_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 310RTCD_EXTERN void (*vp9_idct8x8_12_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 311 312void vp9_idct8x8_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 313void vp9_idct8x8_1_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 314RTCD_EXTERN void (*vp9_idct8x8_1_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 315 316void vp9_idct8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 317void vp9_idct8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride); 318RTCD_EXTERN void (*vp9_idct8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride); 319 320void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type); 321void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type); 322RTCD_EXTERN void (*vp9_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type); 323 324void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type); 325void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type); 326RTCD_EXTERN void (*vp9_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type); 327 328void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type); 329void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type); 330RTCD_EXTERN void (*vp9_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type); 331 332void vp9_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 333#define vp9_iwht4x4_16_add vp9_iwht4x4_16_add_c 334 335void vp9_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride); 336#define vp9_iwht4x4_1_add vp9_iwht4x4_1_add_c 337 338void vp9_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 339void vp9_lpf_horizontal_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 340RTCD_EXTERN void (*vp9_lpf_horizontal_16)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 341 342void vp9_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 343void vp9_lpf_horizontal_4_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 344RTCD_EXTERN void (*vp9_lpf_horizontal_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 345 346void vp9_lpf_horizontal_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 347void vp9_lpf_horizontal_4_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 348RTCD_EXTERN void (*vp9_lpf_horizontal_4_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 349 350void vp9_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 351void vp9_lpf_horizontal_8_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 352RTCD_EXTERN void (*vp9_lpf_horizontal_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 353 354void vp9_lpf_horizontal_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 355void vp9_lpf_horizontal_8_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 356RTCD_EXTERN void (*vp9_lpf_horizontal_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 357 358void vp9_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 359void vp9_lpf_vertical_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 360RTCD_EXTERN void (*vp9_lpf_vertical_16)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 361 362void vp9_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 363void vp9_lpf_vertical_16_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 364RTCD_EXTERN void (*vp9_lpf_vertical_16_dual)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 365 366void vp9_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 367void vp9_lpf_vertical_4_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 368RTCD_EXTERN void (*vp9_lpf_vertical_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 369 370void vp9_lpf_vertical_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 371void vp9_lpf_vertical_4_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 372RTCD_EXTERN void (*vp9_lpf_vertical_4_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 373 374void vp9_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 375void vp9_lpf_vertical_8_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 376RTCD_EXTERN void (*vp9_lpf_vertical_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 377 378void vp9_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 379void vp9_lpf_vertical_8_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 380RTCD_EXTERN void (*vp9_lpf_vertical_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 381 382unsigned int vp9_mse16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse); 383#define vp9_mse16x16 vp9_mse16x16_c 384 385unsigned int vp9_mse16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse); 386#define vp9_mse16x8 vp9_mse16x8_c 387 388unsigned int vp9_mse8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse); 389#define vp9_mse8x16 vp9_mse8x16_c 390 391unsigned int vp9_mse8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse); 392#define vp9_mse8x8 vp9_mse8x8_c 393 394void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan); 395#define vp9_quantize_b vp9_quantize_b_c 396 397void vp9_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan); 398#define vp9_quantize_b_32x32 vp9_quantize_b_32x32_c 399 400void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan); 401#define vp9_quantize_fp vp9_quantize_fp_c 402 403void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan); 404#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c 405 406int vp9_refining_search_sad_c(const struct macroblock *x, struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv); 407#define vp9_refining_search_sad vp9_refining_search_sad_c 408 409unsigned int vp9_sad16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 410#define vp9_sad16x16 vp9_sad16x16_c 411 412unsigned int vp9_sad16x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 413#define vp9_sad16x16_avg vp9_sad16x16_avg_c 414 415void vp9_sad16x16x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 416void vp9_sad16x16x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 417void vp9_sad16x16x3_ssse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 418RTCD_EXTERN void (*vp9_sad16x16x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 419 420void vp9_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 421void vp9_sad16x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 422RTCD_EXTERN void (*vp9_sad16x16x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 423 424void vp9_sad16x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 425#define vp9_sad16x16x8 vp9_sad16x16x8_c 426 427unsigned int vp9_sad16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 428#define vp9_sad16x32 vp9_sad16x32_c 429 430unsigned int vp9_sad16x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 431#define vp9_sad16x32_avg vp9_sad16x32_avg_c 432 433void vp9_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 434void vp9_sad16x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 435RTCD_EXTERN void (*vp9_sad16x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 436 437unsigned int vp9_sad16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 438#define vp9_sad16x8 vp9_sad16x8_c 439 440unsigned int vp9_sad16x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 441#define vp9_sad16x8_avg vp9_sad16x8_avg_c 442 443void vp9_sad16x8x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 444void vp9_sad16x8x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 445void vp9_sad16x8x3_ssse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 446RTCD_EXTERN void (*vp9_sad16x8x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 447 448void vp9_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 449void vp9_sad16x8x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 450RTCD_EXTERN void (*vp9_sad16x8x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 451 452void vp9_sad16x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 453#define vp9_sad16x8x8 vp9_sad16x8x8_c 454 455unsigned int vp9_sad32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 456#define vp9_sad32x16 vp9_sad32x16_c 457 458unsigned int vp9_sad32x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 459#define vp9_sad32x16_avg vp9_sad32x16_avg_c 460 461void vp9_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 462void vp9_sad32x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 463RTCD_EXTERN void (*vp9_sad32x16x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 464 465unsigned int vp9_sad32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 466#define vp9_sad32x32 vp9_sad32x32_c 467 468unsigned int vp9_sad32x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 469#define vp9_sad32x32_avg vp9_sad32x32_avg_c 470 471void vp9_sad32x32x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 472#define vp9_sad32x32x3 vp9_sad32x32x3_c 473 474void vp9_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 475void vp9_sad32x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 476RTCD_EXTERN void (*vp9_sad32x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 477 478void vp9_sad32x32x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 479#define vp9_sad32x32x8 vp9_sad32x32x8_c 480 481unsigned int vp9_sad32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 482#define vp9_sad32x64 vp9_sad32x64_c 483 484unsigned int vp9_sad32x64_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 485#define vp9_sad32x64_avg vp9_sad32x64_avg_c 486 487void vp9_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 488void vp9_sad32x64x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 489RTCD_EXTERN void (*vp9_sad32x64x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 490 491unsigned int vp9_sad4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 492#define vp9_sad4x4 vp9_sad4x4_c 493 494unsigned int vp9_sad4x4_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 495#define vp9_sad4x4_avg vp9_sad4x4_avg_c 496 497void vp9_sad4x4x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 498void vp9_sad4x4x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 499RTCD_EXTERN void (*vp9_sad4x4x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 500 501void vp9_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 502void vp9_sad4x4x4d_sse(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 503RTCD_EXTERN void (*vp9_sad4x4x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 504 505void vp9_sad4x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 506#define vp9_sad4x4x8 vp9_sad4x4x8_c 507 508unsigned int vp9_sad4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 509#define vp9_sad4x8 vp9_sad4x8_c 510 511unsigned int vp9_sad4x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 512#define vp9_sad4x8_avg vp9_sad4x8_avg_c 513 514void vp9_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 515void vp9_sad4x8x4d_sse(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 516RTCD_EXTERN void (*vp9_sad4x8x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 517 518void vp9_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 519#define vp9_sad4x8x8 vp9_sad4x8x8_c 520 521unsigned int vp9_sad64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 522#define vp9_sad64x32 vp9_sad64x32_c 523 524unsigned int vp9_sad64x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 525#define vp9_sad64x32_avg vp9_sad64x32_avg_c 526 527void vp9_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 528void vp9_sad64x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 529RTCD_EXTERN void (*vp9_sad64x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 530 531unsigned int vp9_sad64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 532#define vp9_sad64x64 vp9_sad64x64_c 533 534unsigned int vp9_sad64x64_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 535#define vp9_sad64x64_avg vp9_sad64x64_avg_c 536 537void vp9_sad64x64x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 538#define vp9_sad64x64x3 vp9_sad64x64x3_c 539 540void vp9_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 541void vp9_sad64x64x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 542RTCD_EXTERN void (*vp9_sad64x64x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 543 544void vp9_sad64x64x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 545#define vp9_sad64x64x8 vp9_sad64x64x8_c 546 547unsigned int vp9_sad8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 548#define vp9_sad8x16 vp9_sad8x16_c 549 550unsigned int vp9_sad8x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 551#define vp9_sad8x16_avg vp9_sad8x16_avg_c 552 553void vp9_sad8x16x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 554void vp9_sad8x16x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 555RTCD_EXTERN void (*vp9_sad8x16x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 556 557void vp9_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 558void vp9_sad8x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 559RTCD_EXTERN void (*vp9_sad8x16x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 560 561void vp9_sad8x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 562#define vp9_sad8x16x8 vp9_sad8x16x8_c 563 564unsigned int vp9_sad8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 565#define vp9_sad8x4 vp9_sad8x4_c 566 567unsigned int vp9_sad8x4_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 568#define vp9_sad8x4_avg vp9_sad8x4_avg_c 569 570void vp9_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 571void vp9_sad8x4x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 572RTCD_EXTERN void (*vp9_sad8x4x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 573 574void vp9_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 575#define vp9_sad8x4x8 vp9_sad8x4x8_c 576 577unsigned int vp9_sad8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride); 578#define vp9_sad8x8 vp9_sad8x8_c 579 580unsigned int vp9_sad8x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred); 581#define vp9_sad8x8_avg vp9_sad8x8_avg_c 582 583void vp9_sad8x8x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 584void vp9_sad8x8x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 585RTCD_EXTERN void (*vp9_sad8x8x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array); 586 587void vp9_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 588void vp9_sad8x8x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 589RTCD_EXTERN void (*vp9_sad8x8x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array); 590 591void vp9_sad8x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array); 592#define vp9_sad8x8x8 vp9_sad8x8x8_c 593 594unsigned int vp9_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 595#define vp9_sub_pixel_avg_variance16x16 vp9_sub_pixel_avg_variance16x16_c 596 597unsigned int vp9_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 598#define vp9_sub_pixel_avg_variance16x32 vp9_sub_pixel_avg_variance16x32_c 599 600unsigned int vp9_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 601#define vp9_sub_pixel_avg_variance16x8 vp9_sub_pixel_avg_variance16x8_c 602 603unsigned int vp9_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 604#define vp9_sub_pixel_avg_variance32x16 vp9_sub_pixel_avg_variance32x16_c 605 606unsigned int vp9_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 607#define vp9_sub_pixel_avg_variance32x32 vp9_sub_pixel_avg_variance32x32_c 608 609unsigned int vp9_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 610#define vp9_sub_pixel_avg_variance32x64 vp9_sub_pixel_avg_variance32x64_c 611 612unsigned int vp9_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 613#define vp9_sub_pixel_avg_variance4x4 vp9_sub_pixel_avg_variance4x4_c 614 615unsigned int vp9_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 616#define vp9_sub_pixel_avg_variance4x8 vp9_sub_pixel_avg_variance4x8_c 617 618unsigned int vp9_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 619#define vp9_sub_pixel_avg_variance64x32 vp9_sub_pixel_avg_variance64x32_c 620 621unsigned int vp9_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 622#define vp9_sub_pixel_avg_variance64x64 vp9_sub_pixel_avg_variance64x64_c 623 624unsigned int vp9_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 625#define vp9_sub_pixel_avg_variance8x16 vp9_sub_pixel_avg_variance8x16_c 626 627unsigned int vp9_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 628#define vp9_sub_pixel_avg_variance8x4 vp9_sub_pixel_avg_variance8x4_c 629 630unsigned int vp9_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred); 631#define vp9_sub_pixel_avg_variance8x8 vp9_sub_pixel_avg_variance8x8_c 632 633unsigned int vp9_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 634#define vp9_sub_pixel_variance16x16 vp9_sub_pixel_variance16x16_c 635 636unsigned int vp9_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 637#define vp9_sub_pixel_variance16x32 vp9_sub_pixel_variance16x32_c 638 639unsigned int vp9_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 640#define vp9_sub_pixel_variance16x8 vp9_sub_pixel_variance16x8_c 641 642unsigned int vp9_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 643#define vp9_sub_pixel_variance32x16 vp9_sub_pixel_variance32x16_c 644 645unsigned int vp9_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 646#define vp9_sub_pixel_variance32x32 vp9_sub_pixel_variance32x32_c 647 648unsigned int vp9_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 649#define vp9_sub_pixel_variance32x64 vp9_sub_pixel_variance32x64_c 650 651unsigned int vp9_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 652#define vp9_sub_pixel_variance4x4 vp9_sub_pixel_variance4x4_c 653 654unsigned int vp9_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 655#define vp9_sub_pixel_variance4x8 vp9_sub_pixel_variance4x8_c 656 657unsigned int vp9_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 658#define vp9_sub_pixel_variance64x32 vp9_sub_pixel_variance64x32_c 659 660unsigned int vp9_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 661#define vp9_sub_pixel_variance64x64 vp9_sub_pixel_variance64x64_c 662 663unsigned int vp9_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 664#define vp9_sub_pixel_variance8x16 vp9_sub_pixel_variance8x16_c 665 666unsigned int vp9_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 667#define vp9_sub_pixel_variance8x4 vp9_sub_pixel_variance8x4_c 668 669unsigned int vp9_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 670#define vp9_sub_pixel_variance8x8 vp9_sub_pixel_variance8x8_c 671 672void vp9_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride); 673#define vp9_subtract_block vp9_subtract_block_c 674 675void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count); 676void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count); 677RTCD_EXTERN void (*vp9_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count); 678 679void vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 680#define vp9_tm_predictor_16x16 vp9_tm_predictor_16x16_c 681 682void vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 683#define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_c 684 685void vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 686#define vp9_tm_predictor_4x4 vp9_tm_predictor_4x4_c 687 688void vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 689#define vp9_tm_predictor_8x8 vp9_tm_predictor_8x8_c 690 691void vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 692#define vp9_v_predictor_16x16 vp9_v_predictor_16x16_c 693 694void vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 695#define vp9_v_predictor_32x32 vp9_v_predictor_32x32_c 696 697void vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 698#define vp9_v_predictor_4x4 vp9_v_predictor_4x4_c 699 700void vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 701#define vp9_v_predictor_8x8 vp9_v_predictor_8x8_c 702 703unsigned int vp9_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 704#define vp9_variance16x16 vp9_variance16x16_c 705 706unsigned int vp9_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 707#define vp9_variance16x32 vp9_variance16x32_c 708 709unsigned int vp9_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 710#define vp9_variance16x8 vp9_variance16x8_c 711 712unsigned int vp9_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 713#define vp9_variance32x16 vp9_variance32x16_c 714 715unsigned int vp9_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 716#define vp9_variance32x32 vp9_variance32x32_c 717 718unsigned int vp9_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 719#define vp9_variance32x64 vp9_variance32x64_c 720 721unsigned int vp9_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 722#define vp9_variance4x4 vp9_variance4x4_c 723 724unsigned int vp9_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 725#define vp9_variance4x8 vp9_variance4x8_c 726 727unsigned int vp9_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 728#define vp9_variance64x32 vp9_variance64x32_c 729 730unsigned int vp9_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 731#define vp9_variance64x64 vp9_variance64x64_c 732 733unsigned int vp9_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 734#define vp9_variance8x16 vp9_variance8x16_c 735 736unsigned int vp9_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 737#define vp9_variance8x4 vp9_variance8x4_c 738 739unsigned int vp9_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); 740#define vp9_variance8x8 vp9_variance8x8_c 741 742void vp9_rtcd(void); 743 744#ifdef RTCD_C 745#include "vpx_ports/x86.h" 746static void setup_rtcd_internal(void) 747{ 748 int flags = x86_simd_caps(); 749 750 (void)flags; 751 752 vp9_convolve8 = vp9_convolve8_c; 753 if (flags & HAS_SSE2) vp9_convolve8 = vp9_convolve8_sse2; 754 if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3; 755 vp9_convolve8_avg = vp9_convolve8_avg_c; 756 if (flags & HAS_SSE2) vp9_convolve8_avg = vp9_convolve8_avg_sse2; 757 if (flags & HAS_SSSE3) vp9_convolve8_avg = vp9_convolve8_avg_ssse3; 758 vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_c; 759 if (flags & HAS_SSE2) vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_sse2; 760 if (flags & HAS_SSSE3) vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_ssse3; 761 vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_c; 762 if (flags & HAS_SSE2) vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_sse2; 763 if (flags & HAS_SSSE3) vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_ssse3; 764 vp9_convolve8_horiz = vp9_convolve8_horiz_c; 765 if (flags & HAS_SSE2) vp9_convolve8_horiz = vp9_convolve8_horiz_sse2; 766 if (flags & HAS_SSSE3) vp9_convolve8_horiz = vp9_convolve8_horiz_ssse3; 767 vp9_convolve8_vert = vp9_convolve8_vert_c; 768 if (flags & HAS_SSE2) vp9_convolve8_vert = vp9_convolve8_vert_sse2; 769 if (flags & HAS_SSSE3) vp9_convolve8_vert = vp9_convolve8_vert_ssse3; 770 vp9_fdct16x16 = vp9_fdct16x16_c; 771 if (flags & HAS_SSE2) vp9_fdct16x16 = vp9_fdct16x16_sse2; 772 vp9_fdct16x16_1 = vp9_fdct16x16_1_c; 773 if (flags & HAS_SSE2) vp9_fdct16x16_1 = vp9_fdct16x16_1_sse2; 774 vp9_fdct32x32 = vp9_fdct32x32_c; 775 if (flags & HAS_SSE2) vp9_fdct32x32 = vp9_fdct32x32_sse2; 776 vp9_fdct32x32_1 = vp9_fdct32x32_1_c; 777 if (flags & HAS_SSE2) vp9_fdct32x32_1 = vp9_fdct32x32_1_sse2; 778 vp9_fdct32x32_rd = vp9_fdct32x32_rd_c; 779 if (flags & HAS_SSE2) vp9_fdct32x32_rd = vp9_fdct32x32_rd_sse2; 780 vp9_fdct4x4 = vp9_fdct4x4_c; 781 if (flags & HAS_SSE2) vp9_fdct4x4 = vp9_fdct4x4_sse2; 782 vp9_fdct4x4_1 = vp9_fdct4x4_1_c; 783 if (flags & HAS_SSE2) vp9_fdct4x4_1 = vp9_fdct4x4_1_sse2; 784 vp9_fdct8x8 = vp9_fdct8x8_c; 785 if (flags & HAS_SSE2) vp9_fdct8x8 = vp9_fdct8x8_sse2; 786 vp9_fdct8x8_1 = vp9_fdct8x8_1_c; 787 if (flags & HAS_SSE2) vp9_fdct8x8_1 = vp9_fdct8x8_1_sse2; 788 vp9_fht16x16 = vp9_fht16x16_c; 789 if (flags & HAS_SSE2) vp9_fht16x16 = vp9_fht16x16_sse2; 790 vp9_fht4x4 = vp9_fht4x4_c; 791 if (flags & HAS_SSE2) vp9_fht4x4 = vp9_fht4x4_sse2; 792 vp9_fht8x8 = vp9_fht8x8_c; 793 if (flags & HAS_SSE2) vp9_fht8x8 = vp9_fht8x8_sse2; 794 vp9_full_search_sad = vp9_full_search_sad_c; 795 if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3; 796 if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8; 797 vp9_idct16x16_10_add = vp9_idct16x16_10_add_c; 798 if (flags & HAS_SSE2) vp9_idct16x16_10_add = vp9_idct16x16_10_add_sse2; 799 if (flags & HAS_SSSE3) vp9_idct16x16_10_add = vp9_idct16x16_10_add_ssse3; 800 vp9_idct16x16_1_add = vp9_idct16x16_1_add_c; 801 if (flags & HAS_SSE2) vp9_idct16x16_1_add = vp9_idct16x16_1_add_sse2; 802 vp9_idct16x16_256_add = vp9_idct16x16_256_add_c; 803 if (flags & HAS_SSE2) vp9_idct16x16_256_add = vp9_idct16x16_256_add_sse2; 804 if (flags & HAS_SSSE3) vp9_idct16x16_256_add = vp9_idct16x16_256_add_ssse3; 805 vp9_idct32x32_1024_add = vp9_idct32x32_1024_add_c; 806 if (flags & HAS_SSE2) vp9_idct32x32_1024_add = vp9_idct32x32_1024_add_sse2; 807 vp9_idct32x32_1_add = vp9_idct32x32_1_add_c; 808 if (flags & HAS_SSE2) vp9_idct32x32_1_add = vp9_idct32x32_1_add_sse2; 809 vp9_idct32x32_34_add = vp9_idct32x32_34_add_c; 810 if (flags & HAS_SSE2) vp9_idct32x32_34_add = vp9_idct32x32_34_add_sse2; 811 vp9_idct4x4_16_add = vp9_idct4x4_16_add_c; 812 if (flags & HAS_SSE2) vp9_idct4x4_16_add = vp9_idct4x4_16_add_sse2; 813 vp9_idct4x4_1_add = vp9_idct4x4_1_add_c; 814 if (flags & HAS_SSE2) vp9_idct4x4_1_add = vp9_idct4x4_1_add_sse2; 815 vp9_idct8x8_12_add = vp9_idct8x8_12_add_c; 816 if (flags & HAS_SSE2) vp9_idct8x8_12_add = vp9_idct8x8_12_add_sse2; 817 vp9_idct8x8_1_add = vp9_idct8x8_1_add_c; 818 if (flags & HAS_SSE2) vp9_idct8x8_1_add = vp9_idct8x8_1_add_sse2; 819 vp9_idct8x8_64_add = vp9_idct8x8_64_add_c; 820 if (flags & HAS_SSE2) vp9_idct8x8_64_add = vp9_idct8x8_64_add_sse2; 821 vp9_iht16x16_256_add = vp9_iht16x16_256_add_c; 822 if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2; 823 vp9_iht4x4_16_add = vp9_iht4x4_16_add_c; 824 if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2; 825 vp9_iht8x8_64_add = vp9_iht8x8_64_add_c; 826 if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2; 827 vp9_lpf_horizontal_16 = vp9_lpf_horizontal_16_c; 828 if (flags & HAS_SSE2) vp9_lpf_horizontal_16 = vp9_lpf_horizontal_16_sse2; 829 vp9_lpf_horizontal_4 = vp9_lpf_horizontal_4_c; 830 if (flags & HAS_MMX) vp9_lpf_horizontal_4 = vp9_lpf_horizontal_4_mmx; 831 vp9_lpf_horizontal_4_dual = vp9_lpf_horizontal_4_dual_c; 832 if (flags & HAS_SSE2) vp9_lpf_horizontal_4_dual = vp9_lpf_horizontal_4_dual_sse2; 833 vp9_lpf_horizontal_8 = vp9_lpf_horizontal_8_c; 834 if (flags & HAS_SSE2) vp9_lpf_horizontal_8 = vp9_lpf_horizontal_8_sse2; 835 vp9_lpf_horizontal_8_dual = vp9_lpf_horizontal_8_dual_c; 836 if (flags & HAS_SSE2) vp9_lpf_horizontal_8_dual = vp9_lpf_horizontal_8_dual_sse2; 837 vp9_lpf_vertical_16 = vp9_lpf_vertical_16_c; 838 if (flags & HAS_SSE2) vp9_lpf_vertical_16 = vp9_lpf_vertical_16_sse2; 839 vp9_lpf_vertical_16_dual = vp9_lpf_vertical_16_dual_c; 840 if (flags & HAS_SSE2) vp9_lpf_vertical_16_dual = vp9_lpf_vertical_16_dual_sse2; 841 vp9_lpf_vertical_4 = vp9_lpf_vertical_4_c; 842 if (flags & HAS_MMX) vp9_lpf_vertical_4 = vp9_lpf_vertical_4_mmx; 843 vp9_lpf_vertical_4_dual = vp9_lpf_vertical_4_dual_c; 844 if (flags & HAS_SSE2) vp9_lpf_vertical_4_dual = vp9_lpf_vertical_4_dual_sse2; 845 vp9_lpf_vertical_8 = vp9_lpf_vertical_8_c; 846 if (flags & HAS_SSE2) vp9_lpf_vertical_8 = vp9_lpf_vertical_8_sse2; 847 vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_c; 848 if (flags & HAS_SSE2) vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_sse2; 849 vp9_sad16x16x3 = vp9_sad16x16x3_c; 850 if (flags & HAS_SSE3) vp9_sad16x16x3 = vp9_sad16x16x3_sse3; 851 if (flags & HAS_SSSE3) vp9_sad16x16x3 = vp9_sad16x16x3_ssse3; 852 vp9_sad16x16x4d = vp9_sad16x16x4d_c; 853 if (flags & HAS_SSE2) vp9_sad16x16x4d = vp9_sad16x16x4d_sse2; 854 vp9_sad16x32x4d = vp9_sad16x32x4d_c; 855 if (flags & HAS_SSE2) vp9_sad16x32x4d = vp9_sad16x32x4d_sse2; 856 vp9_sad16x8x3 = vp9_sad16x8x3_c; 857 if (flags & HAS_SSE3) vp9_sad16x8x3 = vp9_sad16x8x3_sse3; 858 if (flags & HAS_SSSE3) vp9_sad16x8x3 = vp9_sad16x8x3_ssse3; 859 vp9_sad16x8x4d = vp9_sad16x8x4d_c; 860 if (flags & HAS_SSE2) vp9_sad16x8x4d = vp9_sad16x8x4d_sse2; 861 vp9_sad32x16x4d = vp9_sad32x16x4d_c; 862 if (flags & HAS_SSE2) vp9_sad32x16x4d = vp9_sad32x16x4d_sse2; 863 vp9_sad32x32x4d = vp9_sad32x32x4d_c; 864 if (flags & HAS_SSE2) vp9_sad32x32x4d = vp9_sad32x32x4d_sse2; 865 vp9_sad32x64x4d = vp9_sad32x64x4d_c; 866 if (flags & HAS_SSE2) vp9_sad32x64x4d = vp9_sad32x64x4d_sse2; 867 vp9_sad4x4x3 = vp9_sad4x4x3_c; 868 if (flags & HAS_SSE3) vp9_sad4x4x3 = vp9_sad4x4x3_sse3; 869 vp9_sad4x4x4d = vp9_sad4x4x4d_c; 870 if (flags & HAS_SSE) vp9_sad4x4x4d = vp9_sad4x4x4d_sse; 871 vp9_sad4x8x4d = vp9_sad4x8x4d_c; 872 if (flags & HAS_SSE) vp9_sad4x8x4d = vp9_sad4x8x4d_sse; 873 vp9_sad64x32x4d = vp9_sad64x32x4d_c; 874 if (flags & HAS_SSE2) vp9_sad64x32x4d = vp9_sad64x32x4d_sse2; 875 vp9_sad64x64x4d = vp9_sad64x64x4d_c; 876 if (flags & HAS_SSE2) vp9_sad64x64x4d = vp9_sad64x64x4d_sse2; 877 vp9_sad8x16x3 = vp9_sad8x16x3_c; 878 if (flags & HAS_SSE3) vp9_sad8x16x3 = vp9_sad8x16x3_sse3; 879 vp9_sad8x16x4d = vp9_sad8x16x4d_c; 880 if (flags & HAS_SSE2) vp9_sad8x16x4d = vp9_sad8x16x4d_sse2; 881 vp9_sad8x4x4d = vp9_sad8x4x4d_c; 882 if (flags & HAS_SSE2) vp9_sad8x4x4d = vp9_sad8x4x4d_sse2; 883 vp9_sad8x8x3 = vp9_sad8x8x3_c; 884 if (flags & HAS_SSE3) vp9_sad8x8x3 = vp9_sad8x8x3_sse3; 885 vp9_sad8x8x4d = vp9_sad8x8x4d_c; 886 if (flags & HAS_SSE2) vp9_sad8x8x4d = vp9_sad8x8x4d_sse2; 887 vp9_temporal_filter_apply = vp9_temporal_filter_apply_c; 888 if (flags & HAS_SSE2) vp9_temporal_filter_apply = vp9_temporal_filter_apply_sse2; 889} 890#endif 891 892#ifdef __cplusplus 893} // extern "C" 894#endif 895 896#endif 897