Home | History | Annotate | Download | only in armv7a-neon
      1 #ifndef VP8_RTCD_H_
      2 #define VP8_RTCD_H_
      3 
      4 #ifdef RTCD_C
      5 #define RTCD_EXTERN
      6 #else
      7 #define RTCD_EXTERN extern
      8 #endif
      9 
     10 /*
     11  * VP8
     12  */
     13 
     14 struct blockd;
     15 struct macroblockd;
     16 struct loop_filter_info;
     17 
     18 /* Encoder forward decls */
     19 struct block;
     20 struct macroblock;
     21 struct variance_vtable;
     22 union int_mv;
     23 struct yv12_buffer_config;
     24 
     25 void vp8_clear_system_state_c();
     26 #define vp8_clear_system_state vp8_clear_system_state_c
     27 
     28 void vp8_dequantize_b_c(struct blockd*, short *dqc);
     29 void vp8_dequantize_b_v6(struct blockd*, short *dqc);
     30 void vp8_dequantize_b_neon(struct blockd*, short *dqc);
     31 #define vp8_dequantize_b vp8_dequantize_b_neon
     32 
     33 void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
     34 void vp8_dequant_idct_add_v6(short *input, short *dq, unsigned char *output, int stride);
     35 void vp8_dequant_idct_add_neon(short *input, short *dq, unsigned char *output, int stride);
     36 #define vp8_dequant_idct_add vp8_dequant_idct_add_neon
     37 
     38 void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
     39 void vp8_dequant_idct_add_y_block_v6(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
     40 void vp8_dequant_idct_add_y_block_neon(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
     41 #define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_neon
     42 
     43 void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
     44 void vp8_dequant_idct_add_uv_block_v6(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
     45 void vp8_dequant_idct_add_uv_block_neon(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
     46 #define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_neon
     47 
     48 void vp8_loop_filter_mbv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     49 void vp8_loop_filter_mbv_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     50 void vp8_loop_filter_mbv_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     51 #define vp8_loop_filter_mbv vp8_loop_filter_mbv_neon
     52 
     53 void vp8_loop_filter_bv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     54 void vp8_loop_filter_bv_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     55 void vp8_loop_filter_bv_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     56 #define vp8_loop_filter_bv vp8_loop_filter_bv_neon
     57 
     58 void vp8_loop_filter_mbh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     59 void vp8_loop_filter_mbh_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     60 void vp8_loop_filter_mbh_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     61 #define vp8_loop_filter_mbh vp8_loop_filter_mbh_neon
     62 
     63 void vp8_loop_filter_bh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     64 void vp8_loop_filter_bh_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     65 void vp8_loop_filter_bh_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
     66 #define vp8_loop_filter_bh vp8_loop_filter_bh_neon
     67 
     68 void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
     69 void vp8_loop_filter_simple_vertical_edge_armv6(unsigned char *y, int ystride, const unsigned char *blimit);
     70 void vp8_loop_filter_mbvs_neon(unsigned char *y, int ystride, const unsigned char *blimit);
     71 #define vp8_loop_filter_simple_mbv vp8_loop_filter_mbvs_neon
     72 
     73 void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
     74 void vp8_loop_filter_simple_horizontal_edge_armv6(unsigned char *y, int ystride, const unsigned char *blimit);
     75 void vp8_loop_filter_mbhs_neon(unsigned char *y, int ystride, const unsigned char *blimit);
     76 #define vp8_loop_filter_simple_mbh vp8_loop_filter_mbhs_neon
     77 
     78 void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
     79 void vp8_loop_filter_bvs_armv6(unsigned char *y, int ystride, const unsigned char *blimit);
     80 void vp8_loop_filter_bvs_neon(unsigned char *y, int ystride, const unsigned char *blimit);
     81 #define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_neon
     82 
     83 void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
     84 void vp8_loop_filter_bhs_armv6(unsigned char *y, int ystride, const unsigned char *blimit);
     85 void vp8_loop_filter_bhs_neon(unsigned char *y, int ystride, const unsigned char *blimit);
     86 #define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_neon
     87 
     88 void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
     89 void vp8_short_idct4x4llm_v6_dual(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
     90 void vp8_short_idct4x4llm_neon(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
     91 #define vp8_short_idct4x4llm vp8_short_idct4x4llm_neon
     92 
     93 void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
     94 #define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
     95 
     96 void vp8_short_inv_walsh4x4_c(short *input, short *output);
     97 void vp8_short_inv_walsh4x4_v6(short *input, short *output);
     98 void vp8_short_inv_walsh4x4_neon(short *input, short *output);
     99 #define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_neon
    100 
    101 void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
    102 void vp8_dc_only_idct_add_v6(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
    103 void vp8_dc_only_idct_add_neon(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
    104 #define vp8_dc_only_idct_add vp8_dc_only_idct_add_neon
    105 
    106 void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    107 void vp8_copy_mem16x16_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    108 void vp8_copy_mem16x16_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    109 #define vp8_copy_mem16x16 vp8_copy_mem16x16_neon
    110 
    111 void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    112 void vp8_copy_mem8x8_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    113 void vp8_copy_mem8x8_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    114 #define vp8_copy_mem8x8 vp8_copy_mem8x8_neon
    115 
    116 void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    117 void vp8_copy_mem8x4_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    118 void vp8_copy_mem8x4_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
    119 #define vp8_copy_mem8x4 vp8_copy_mem8x4_neon
    120 
    121 void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
    122 #define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
    123 
    124 void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row,  unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
    125 #define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
    126 
    127 void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
    128 void vp8_intra4x4_predict_armv6(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
    129 #define vp8_intra4x4_predict vp8_intra4x4_predict_armv6
    130 
    131 void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    132 void vp8_sixtap_predict16x16_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    133 void vp8_sixtap_predict16x16_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    134 #define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_neon
    135 
    136 void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    137 void vp8_sixtap_predict8x8_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    138 void vp8_sixtap_predict8x8_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    139 #define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_neon
    140 
    141 void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    142 void vp8_sixtap_predict8x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    143 void vp8_sixtap_predict8x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    144 #define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_neon
    145 
    146 void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    147 void vp8_sixtap_predict4x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    148 void vp8_sixtap_predict4x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    149 #define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_neon
    150 
    151 void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    152 void vp8_bilinear_predict16x16_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    153 void vp8_bilinear_predict16x16_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    154 #define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_neon
    155 
    156 void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    157 void vp8_bilinear_predict8x8_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    158 void vp8_bilinear_predict8x8_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    159 #define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_neon
    160 
    161 void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    162 void vp8_bilinear_predict8x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    163 void vp8_bilinear_predict8x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    164 #define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_neon
    165 
    166 void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    167 void vp8_bilinear_predict4x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    168 void vp8_bilinear_predict4x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
    169 #define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_neon
    170 
    171 unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    172 #define vp8_variance4x4 vp8_variance4x4_c
    173 
    174 unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    175 unsigned int vp8_variance8x8_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    176 unsigned int vp8_variance8x8_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    177 #define vp8_variance8x8 vp8_variance8x8_neon
    178 
    179 unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    180 unsigned int vp8_variance8x16_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    181 #define vp8_variance8x16 vp8_variance8x16_neon
    182 
    183 unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    184 unsigned int vp8_variance16x8_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    185 #define vp8_variance16x8 vp8_variance16x8_neon
    186 
    187 unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    188 unsigned int vp8_variance16x16_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    189 unsigned int vp8_variance16x16_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    190 #define vp8_variance16x16 vp8_variance16x16_neon
    191 
    192 unsigned int vp8_sub_pixel_variance4x4_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    193 #define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_c
    194 
    195 unsigned int vp8_sub_pixel_variance8x8_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    196 unsigned int vp8_sub_pixel_variance8x8_armv6(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    197 unsigned int vp8_sub_pixel_variance8x8_neon(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    198 #define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_neon
    199 
    200 unsigned int vp8_sub_pixel_variance8x16_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    201 #define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_c
    202 
    203 unsigned int vp8_sub_pixel_variance16x8_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    204 #define vp8_sub_pixel_variance16x8 vp8_sub_pixel_variance16x8_c
    205 
    206 unsigned int vp8_sub_pixel_variance16x16_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    207 unsigned int vp8_sub_pixel_variance16x16_armv6(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    208 unsigned int vp8_sub_pixel_variance16x16_neon(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    209 #define vp8_sub_pixel_variance16x16 vp8_sub_pixel_variance16x16_neon
    210 
    211 unsigned int vp8_variance_halfpixvar16x16_h_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    212 unsigned int vp8_variance_halfpixvar16x16_h_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    213 unsigned int vp8_variance_halfpixvar16x16_h_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    214 #define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_neon
    215 
    216 unsigned int vp8_variance_halfpixvar16x16_v_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    217 unsigned int vp8_variance_halfpixvar16x16_v_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    218 unsigned int vp8_variance_halfpixvar16x16_v_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    219 #define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_neon
    220 
    221 unsigned int vp8_variance_halfpixvar16x16_hv_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    222 unsigned int vp8_variance_halfpixvar16x16_hv_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    223 unsigned int vp8_variance_halfpixvar16x16_hv_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    224 #define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_neon
    225 
    226 unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    227 unsigned int vp8_sad4x4_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    228 #define vp8_sad4x4 vp8_sad4x4_neon
    229 
    230 unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    231 unsigned int vp8_sad8x8_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    232 #define vp8_sad8x8 vp8_sad8x8_neon
    233 
    234 unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    235 unsigned int vp8_sad8x16_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    236 #define vp8_sad8x16 vp8_sad8x16_neon
    237 
    238 unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    239 unsigned int vp8_sad16x8_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    240 #define vp8_sad16x8 vp8_sad16x8_neon
    241 
    242 unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    243 unsigned int vp8_sad16x16_armv6(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    244 unsigned int vp8_sad16x16_neon(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
    245 #define vp8_sad16x16 vp8_sad16x16_neon
    246 
    247 void vp8_sad4x4x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
    248 #define vp8_sad4x4x3 vp8_sad4x4x3_c
    249 
    250 void vp8_sad8x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
    251 #define vp8_sad8x8x3 vp8_sad8x8x3_c
    252 
    253 void vp8_sad8x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
    254 #define vp8_sad8x16x3 vp8_sad8x16x3_c
    255 
    256 void vp8_sad16x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
    257 #define vp8_sad16x8x3 vp8_sad16x8x3_c
    258 
    259 void vp8_sad16x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
    260 #define vp8_sad16x16x3 vp8_sad16x16x3_c
    261 
    262 void vp8_sad4x4x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
    263 #define vp8_sad4x4x8 vp8_sad4x4x8_c
    264 
    265 void vp8_sad8x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
    266 #define vp8_sad8x8x8 vp8_sad8x8x8_c
    267 
    268 void vp8_sad8x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
    269 #define vp8_sad8x16x8 vp8_sad8x16x8_c
    270 
    271 void vp8_sad16x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
    272 #define vp8_sad16x8x8 vp8_sad16x8x8_c
    273 
    274 void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
    275 #define vp8_sad16x16x8 vp8_sad16x16x8_c
    276 
    277 void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    278 #define vp8_sad4x4x4d vp8_sad4x4x4d_c
    279 
    280 void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    281 #define vp8_sad8x8x4d vp8_sad8x8x4d_c
    282 
    283 void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    284 #define vp8_sad8x16x4d vp8_sad8x16x4d_c
    285 
    286 void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    287 #define vp8_sad16x8x4d vp8_sad16x8x4d_c
    288 
    289 void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    290 #define vp8_sad16x16x4d vp8_sad16x16x4d_c
    291 
    292 unsigned int vp8_get_mb_ss_c(const short *);
    293 #define vp8_get_mb_ss vp8_get_mb_ss_c
    294 
    295 unsigned int vp8_sub_pixel_mse16x16_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
    296 #define vp8_sub_pixel_mse16x16 vp8_sub_pixel_mse16x16_c
    297 
    298 unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    299 unsigned int vp8_mse16x16_armv6(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    300 unsigned int vp8_mse16x16_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
    301 #define vp8_mse16x16 vp8_mse16x16_neon
    302 
    303 unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride);
    304 unsigned int vp8_get4x4sse_cs_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride);
    305 #define vp8_get4x4sse_cs vp8_get4x4sse_cs_neon
    306 
    307 void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
    308 void vp8_short_fdct4x4_armv6(short *input, short *output, int pitch);
    309 void vp8_short_fdct4x4_neon(short *input, short *output, int pitch);
    310 #define vp8_short_fdct4x4 vp8_short_fdct4x4_neon
    311 
    312 void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
    313 void vp8_short_fdct8x4_armv6(short *input, short *output, int pitch);
    314 void vp8_short_fdct8x4_neon(short *input, short *output, int pitch);
    315 #define vp8_short_fdct8x4 vp8_short_fdct8x4_neon
    316 
    317 void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
    318 void vp8_short_walsh4x4_armv6(short *input, short *output, int pitch);
    319 void vp8_short_walsh4x4_neon(short *input, short *output, int pitch);
    320 #define vp8_short_walsh4x4 vp8_short_walsh4x4_neon
    321 
    322 void vp8_regular_quantize_b_c(struct block *, struct blockd *);
    323 #define vp8_regular_quantize_b vp8_regular_quantize_b_c
    324 
    325 void vp8_fast_quantize_b_c(struct block *, struct blockd *);
    326 void vp8_fast_quantize_b_armv6(struct block *, struct blockd *);
    327 void vp8_fast_quantize_b_neon(struct block *, struct blockd *);
    328 #define vp8_fast_quantize_b vp8_fast_quantize_b_neon
    329 
    330 void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
    331 #define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c
    332 
    333 void vp8_fast_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
    334 void vp8_fast_quantize_b_pair_neon(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
    335 #define vp8_fast_quantize_b_pair vp8_fast_quantize_b_pair_neon
    336 
    337 void vp8_quantize_mb_c(struct macroblock *);
    338 void vp8_quantize_mb_neon(struct macroblock *);
    339 #define vp8_quantize_mb vp8_quantize_mb_neon
    340 
    341 void vp8_quantize_mby_c(struct macroblock *);
    342 void vp8_quantize_mby_neon(struct macroblock *);
    343 #define vp8_quantize_mby vp8_quantize_mby_neon
    344 
    345 void vp8_quantize_mbuv_c(struct macroblock *);
    346 void vp8_quantize_mbuv_neon(struct macroblock *);
    347 #define vp8_quantize_mbuv vp8_quantize_mbuv_neon
    348 
    349 int vp8_block_error_c(short *coeff, short *dqcoeff);
    350 #define vp8_block_error vp8_block_error_c
    351 
    352 int vp8_mbblock_error_c(struct macroblock *mb, int dc);
    353 #define vp8_mbblock_error vp8_mbblock_error_c
    354 
    355 int vp8_mbuverror_c(struct macroblock *mb);
    356 #define vp8_mbuverror vp8_mbuverror_c
    357 
    358 void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
    359 void vp8_subtract_b_armv6(struct block *be, struct blockd *bd, int pitch);
    360 void vp8_subtract_b_neon(struct block *be, struct blockd *bd, int pitch);
    361 #define vp8_subtract_b vp8_subtract_b_neon
    362 
    363 void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
    364 void vp8_subtract_mby_armv6(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
    365 void vp8_subtract_mby_neon(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
    366 #define vp8_subtract_mby vp8_subtract_mby_neon
    367 
    368 void vp8_subtract_mbuv_c(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
    369 void vp8_subtract_mbuv_armv6(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
    370 void vp8_subtract_mbuv_neon(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
    371 #define vp8_subtract_mbuv vp8_subtract_mbuv_neon
    372 
    373 int vp8_full_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
    374 #define vp8_full_search_sad vp8_full_search_sad_c
    375 
    376 int vp8_refining_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
    377 #define vp8_refining_search_sad vp8_refining_search_sad_c
    378 
    379 int vp8_diamond_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, union int_mv *best_mv, int search_param, int sad_per_bit, int *num00, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
    380 #define vp8_diamond_search_sad vp8_diamond_search_sad_c
    381 
    382 void vp8_yv12_copy_partial_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
    383 void vp8_yv12_copy_partial_frame_neon(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
    384 #define vp8_yv12_copy_partial_frame vp8_yv12_copy_partial_frame_neon
    385 
    386 int vp8_denoiser_filter_c(struct yv12_buffer_config* mc_running_avg, struct yv12_buffer_config* running_avg, struct macroblock* signal, unsigned int motion_magnitude2, int y_offset, int uv_offset);
    387 #define vp8_denoiser_filter vp8_denoiser_filter_c
    388 
    389 void vp8_rtcd(void);
    390 #include "vpx_config.h"
    391 
    392 #ifdef RTCD_C
    393 #include "vpx_ports/arm.h"
    394 static void setup_rtcd_internal(void)
    395 {
    396     int flags = arm_cpu_caps();
    397 
    398     (void)flags;
    399 
    400 
    401 }
    402 #endif
    403 #endif
    404