1sub vp9_common_forward_decls() { 2print <<EOF 3/* 4 * VP9 5 */ 6 7#include "vpx/vpx_integer.h" 8#include "vp9/common/vp9_enums.h" 9#include "vp9/common/vp9_idct.h" 10 11struct macroblockd; 12 13/* Encoder forward decls */ 14struct macroblock; 15struct vp9_variance_vtable; 16struct search_site_config; 17struct mv; 18union int_mv; 19struct yv12_buffer_config; 20EOF 21} 22forward_decls qw/vp9_common_forward_decls/; 23 24# x86inc.asm doesn't work if pic is enabled on 32 bit platforms so no assembly. 25if (vpx_config("CONFIG_USE_X86INC") eq "yes") { 26 $mmx_x86inc = 'mmx'; 27 $sse_x86inc = 'sse'; 28 $sse2_x86inc = 'sse2'; 29 $ssse3_x86inc = 'ssse3'; 30 $avx_x86inc = 'avx'; 31 $avx2_x86inc = 'avx2'; 32} else { 33 $mmx_x86inc = $sse_x86inc = $sse2_x86inc = $ssse3_x86inc = 34 $avx_x86inc = $avx2_x86inc = ''; 35} 36 37# this variable is for functions that are 64 bit only. 38if ($opts{arch} eq "x86_64") { 39 $mmx_x86_64 = 'mmx'; 40 $sse2_x86_64 = 'sse2'; 41 $ssse3_x86_64 = 'ssse3'; 42 $avx_x86_64 = 'avx'; 43 $avx2_x86_64 = 'avx2'; 44} else { 45 $mmx_x86_64 = $sse2_x86_64 = $ssse3_x86_64 = 46 $avx_x86_64 = $avx2_x86_64 = ''; 47} 48 49# optimizations which depend on multiple features 50if ((vpx_config("HAVE_AVX2") eq "yes") && (vpx_config("HAVE_SSSE3") eq "yes")) { 51 $avx2_ssse3 = 'avx2'; 52} else { 53 $avx2_ssse3 = ''; 54} 55 56# 57# RECON 58# 59add_proto qw/void vp9_d207_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 60specialize qw/vp9_d207_predictor_4x4/, "$ssse3_x86inc"; 61 62add_proto qw/void vp9_d45_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 63specialize qw/vp9_d45_predictor_4x4/, "$ssse3_x86inc"; 64 65add_proto qw/void vp9_d63_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 66specialize qw/vp9_d63_predictor_4x4/, "$ssse3_x86inc"; 67 68add_proto qw/void vp9_h_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 69specialize qw/vp9_h_predictor_4x4 neon_asm dspr2/, "$ssse3_x86inc"; 70$vp9_h_predictor_4x4_neon_asm=vp9_h_predictor_4x4_neon; 71 72add_proto qw/void vp9_d117_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 73specialize qw/vp9_d117_predictor_4x4/; 74 75add_proto qw/void vp9_d135_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 76specialize qw/vp9_d135_predictor_4x4/; 77 78add_proto qw/void vp9_d153_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 79specialize qw/vp9_d153_predictor_4x4/, "$ssse3_x86inc"; 80 81add_proto qw/void vp9_v_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 82specialize qw/vp9_v_predictor_4x4 neon_asm/, "$sse_x86inc"; 83$vp9_v_predictor_4x4_neon_asm=vp9_v_predictor_4x4_neon; 84 85add_proto qw/void vp9_tm_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 86specialize qw/vp9_tm_predictor_4x4 neon_asm dspr2/, "$sse_x86inc"; 87$vp9_tm_predictor_4x4_neon_asm=vp9_tm_predictor_4x4_neon; 88 89add_proto qw/void vp9_dc_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 90specialize qw/vp9_dc_predictor_4x4 dspr2/, "$sse_x86inc"; 91 92add_proto qw/void vp9_dc_top_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 93specialize qw/vp9_dc_top_predictor_4x4/; 94 95add_proto qw/void vp9_dc_left_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 96specialize qw/vp9_dc_left_predictor_4x4/; 97 98add_proto qw/void vp9_dc_128_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 99specialize qw/vp9_dc_128_predictor_4x4/; 100 101add_proto qw/void vp9_d207_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 102specialize qw/vp9_d207_predictor_8x8/, "$ssse3_x86inc"; 103 104add_proto qw/void vp9_d45_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 105specialize qw/vp9_d45_predictor_8x8/, "$ssse3_x86inc"; 106 107add_proto qw/void vp9_d63_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 108specialize qw/vp9_d63_predictor_8x8/, "$ssse3_x86inc"; 109 110add_proto qw/void vp9_h_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 111specialize qw/vp9_h_predictor_8x8 neon_asm dspr2/, "$ssse3_x86inc"; 112$vp9_h_predictor_8x8_neon_asm=vp9_h_predictor_8x8_neon; 113 114add_proto qw/void vp9_d117_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 115specialize qw/vp9_d117_predictor_8x8/; 116 117add_proto qw/void vp9_d135_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 118specialize qw/vp9_d135_predictor_8x8/; 119 120add_proto qw/void vp9_d153_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 121specialize qw/vp9_d153_predictor_8x8/, "$ssse3_x86inc"; 122 123add_proto qw/void vp9_v_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 124specialize qw/vp9_v_predictor_8x8 neon_asm/, "$sse_x86inc"; 125$vp9_v_predictor_8x8_neon_asm=vp9_v_predictor_8x8_neon; 126 127add_proto qw/void vp9_tm_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 128specialize qw/vp9_tm_predictor_8x8 neon_asm dspr2/, "$sse2_x86inc"; 129$vp9_tm_predictor_8x8_neon_asm=vp9_tm_predictor_8x8_neon; 130 131add_proto qw/void vp9_dc_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 132specialize qw/vp9_dc_predictor_8x8 dspr2/, "$sse_x86inc"; 133 134add_proto qw/void vp9_dc_top_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 135specialize qw/vp9_dc_top_predictor_8x8/; 136 137add_proto qw/void vp9_dc_left_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 138specialize qw/vp9_dc_left_predictor_8x8/; 139 140add_proto qw/void vp9_dc_128_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 141specialize qw/vp9_dc_128_predictor_8x8/; 142 143add_proto qw/void vp9_d207_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 144specialize qw/vp9_d207_predictor_16x16/, "$ssse3_x86inc"; 145 146add_proto qw/void vp9_d45_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 147specialize qw/vp9_d45_predictor_16x16/, "$ssse3_x86inc"; 148 149add_proto qw/void vp9_d63_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 150specialize qw/vp9_d63_predictor_16x16/, "$ssse3_x86inc"; 151 152add_proto qw/void vp9_h_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 153specialize qw/vp9_h_predictor_16x16 neon_asm dspr2/, "$ssse3_x86inc"; 154$vp9_h_predictor_16x16_neon_asm=vp9_h_predictor_16x16_neon; 155 156add_proto qw/void vp9_d117_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 157specialize qw/vp9_d117_predictor_16x16/; 158 159add_proto qw/void vp9_d135_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 160specialize qw/vp9_d135_predictor_16x16/; 161 162add_proto qw/void vp9_d153_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 163specialize qw/vp9_d153_predictor_16x16/, "$ssse3_x86inc"; 164 165add_proto qw/void vp9_v_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 166specialize qw/vp9_v_predictor_16x16 neon_asm/, "$sse2_x86inc"; 167$vp9_v_predictor_16x16_neon_asm=vp9_v_predictor_16x16_neon; 168 169add_proto qw/void vp9_tm_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 170specialize qw/vp9_tm_predictor_16x16 neon_asm/, "$sse2_x86inc"; 171$vp9_tm_predictor_16x16_neon_asm=vp9_tm_predictor_16x16_neon; 172 173add_proto qw/void vp9_dc_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 174specialize qw/vp9_dc_predictor_16x16 dspr2/, "$sse2_x86inc"; 175 176add_proto qw/void vp9_dc_top_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 177specialize qw/vp9_dc_top_predictor_16x16/; 178 179add_proto qw/void vp9_dc_left_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 180specialize qw/vp9_dc_left_predictor_16x16/; 181 182add_proto qw/void vp9_dc_128_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 183specialize qw/vp9_dc_128_predictor_16x16/; 184 185add_proto qw/void vp9_d207_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 186specialize qw/vp9_d207_predictor_32x32/, "$ssse3_x86inc"; 187 188add_proto qw/void vp9_d45_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 189specialize qw/vp9_d45_predictor_32x32/, "$ssse3_x86inc"; 190 191add_proto qw/void vp9_d63_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 192specialize qw/vp9_d63_predictor_32x32/, "$ssse3_x86inc"; 193 194add_proto qw/void vp9_h_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 195specialize qw/vp9_h_predictor_32x32 neon_asm/, "$ssse3_x86inc"; 196$vp9_h_predictor_32x32_neon_asm=vp9_h_predictor_32x32_neon; 197 198add_proto qw/void vp9_d117_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 199specialize qw/vp9_d117_predictor_32x32/; 200 201add_proto qw/void vp9_d135_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 202specialize qw/vp9_d135_predictor_32x32/; 203 204add_proto qw/void vp9_d153_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 205specialize qw/vp9_d153_predictor_32x32/; 206 207add_proto qw/void vp9_v_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 208specialize qw/vp9_v_predictor_32x32 neon_asm/, "$sse2_x86inc"; 209$vp9_v_predictor_32x32_neon_asm=vp9_v_predictor_32x32_neon; 210 211add_proto qw/void vp9_tm_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 212specialize qw/vp9_tm_predictor_32x32 neon_asm/, "$sse2_x86_64"; 213$vp9_tm_predictor_32x32_neon_asm=vp9_tm_predictor_32x32_neon; 214 215add_proto qw/void vp9_dc_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 216specialize qw/vp9_dc_predictor_32x32/, "$sse2_x86inc"; 217 218add_proto qw/void vp9_dc_top_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 219specialize qw/vp9_dc_top_predictor_32x32/; 220 221add_proto qw/void vp9_dc_left_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 222specialize qw/vp9_dc_left_predictor_32x32/; 223 224add_proto qw/void vp9_dc_128_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 225specialize qw/vp9_dc_128_predictor_32x32/; 226 227# 228# Loopfilter 229# 230add_proto qw/void vp9_lpf_vertical_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"; 231specialize qw/vp9_lpf_vertical_16 sse2 neon_asm dspr2/; 232$vp9_lpf_vertical_16_neon_asm=vp9_lpf_vertical_16_neon; 233 234add_proto qw/void vp9_lpf_vertical_16_dual/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"; 235specialize qw/vp9_lpf_vertical_16_dual sse2 neon_asm dspr2/; 236$vp9_lpf_vertical_16_dual_neon_asm=vp9_lpf_vertical_16_dual_neon; 237 238add_proto qw/void vp9_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 239specialize qw/vp9_lpf_vertical_8 sse2 neon_asm dspr2/; 240$vp9_lpf_vertical_8_neon_asm=vp9_lpf_vertical_8_neon; 241 242add_proto qw/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"; 243specialize qw/vp9_lpf_vertical_8_dual sse2 neon_asm dspr2/; 244$vp9_lpf_vertical_8_dual_neon_asm=vp9_lpf_vertical_8_dual_neon; 245 246add_proto qw/void vp9_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 247specialize qw/vp9_lpf_vertical_4 mmx neon_asm dspr2/; 248$vp9_lpf_vertical_4_neon_asm=vp9_lpf_vertical_4_neon; 249 250add_proto qw/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"; 251specialize qw/vp9_lpf_vertical_4_dual sse2 neon_asm dspr2/; 252$vp9_lpf_vertical_4_dual_neon_asm=vp9_lpf_vertical_4_dual_neon; 253 254add_proto qw/void vp9_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 255specialize qw/vp9_lpf_horizontal_16 sse2 avx2 neon_asm dspr2/; 256$vp9_lpf_horizontal_16_neon_asm=vp9_lpf_horizontal_16_neon; 257 258add_proto qw/void vp9_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 259specialize qw/vp9_lpf_horizontal_8 sse2 neon_asm dspr2/; 260$vp9_lpf_horizontal_8_neon_asm=vp9_lpf_horizontal_8_neon; 261 262add_proto qw/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"; 263specialize qw/vp9_lpf_horizontal_8_dual sse2 neon_asm dspr2/; 264$vp9_lpf_horizontal_8_dual_neon_asm=vp9_lpf_horizontal_8_dual_neon; 265 266add_proto qw/void vp9_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 267specialize qw/vp9_lpf_horizontal_4 mmx neon_asm dspr2/; 268$vp9_lpf_horizontal_4_neon_asm=vp9_lpf_horizontal_4_neon; 269 270add_proto qw/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"; 271specialize qw/vp9_lpf_horizontal_4_dual sse2 neon_asm dspr2/; 272$vp9_lpf_horizontal_4_dual_neon_asm=vp9_lpf_horizontal_4_dual_neon; 273 274# 275# post proc 276# 277if (vpx_config("CONFIG_VP9_POSTPROC") eq "yes") { 278add_proto qw/void vp9_mbpost_proc_down/, "uint8_t *dst, int pitch, int rows, int cols, int flimit"; 279specialize qw/vp9_mbpost_proc_down sse2/; 280$vp9_mbpost_proc_down_sse2=vp9_mbpost_proc_down_xmm; 281 282add_proto qw/void vp9_mbpost_proc_across_ip/, "uint8_t *src, int pitch, int rows, int cols, int flimit"; 283specialize qw/vp9_mbpost_proc_across_ip sse2/; 284$vp9_mbpost_proc_across_ip_sse2=vp9_mbpost_proc_across_ip_xmm; 285 286add_proto qw/void vp9_post_proc_down_and_across/, "const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit"; 287specialize qw/vp9_post_proc_down_and_across sse2/; 288$vp9_post_proc_down_and_across_sse2=vp9_post_proc_down_and_across_xmm; 289 290add_proto qw/void vp9_plane_add_noise/, "uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch"; 291specialize qw/vp9_plane_add_noise sse2/; 292$vp9_plane_add_noise_sse2=vp9_plane_add_noise_wmt; 293} 294 295# 296# Sub Pixel Filters 297# 298add_proto qw/void vp9_convolve_copy/, "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"; 299specialize qw/vp9_convolve_copy neon_asm dspr2/, "$sse2_x86inc"; 300$vp9_convolve_copy_neon_asm=vp9_convolve_copy_neon; 301 302add_proto qw/void vp9_convolve_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"; 303specialize qw/vp9_convolve_avg neon_asm dspr2/, "$sse2_x86inc"; 304$vp9_convolve_avg_neon_asm=vp9_convolve_avg_neon; 305 306add_proto qw/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"; 307specialize qw/vp9_convolve8 sse2 ssse3 neon_asm dspr2/, "$avx2_ssse3"; 308$vp9_convolve8_neon_asm=vp9_convolve8_neon; 309 310add_proto qw/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"; 311specialize qw/vp9_convolve8_horiz sse2 ssse3 neon_asm dspr2/, "$avx2_ssse3"; 312$vp9_convolve8_horiz_neon_asm=vp9_convolve8_horiz_neon; 313 314add_proto qw/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"; 315specialize qw/vp9_convolve8_vert sse2 ssse3 neon_asm dspr2/, "$avx2_ssse3"; 316$vp9_convolve8_vert_neon_asm=vp9_convolve8_vert_neon; 317 318add_proto qw/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"; 319specialize qw/vp9_convolve8_avg sse2 ssse3 neon_asm dspr2/; 320$vp9_convolve8_avg_neon_asm=vp9_convolve8_avg_neon; 321 322add_proto qw/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"; 323specialize qw/vp9_convolve8_avg_horiz sse2 ssse3 neon_asm dspr2/; 324$vp9_convolve8_avg_horiz_neon_asm=vp9_convolve8_avg_horiz_neon; 325 326add_proto qw/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"; 327specialize qw/vp9_convolve8_avg_vert sse2 ssse3 neon_asm dspr2/; 328$vp9_convolve8_avg_vert_neon_asm=vp9_convolve8_avg_vert_neon; 329 330# 331# dct 332# 333if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 334 add_proto qw/void vp9_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 335 specialize qw/vp9_idct4x4_1_add/; 336 337 add_proto qw/void vp9_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 338 specialize qw/vp9_idct4x4_16_add/; 339 340 add_proto qw/void vp9_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 341 specialize qw/vp9_idct8x8_1_add/; 342 343 add_proto qw/void vp9_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 344 specialize qw/vp9_idct8x8_64_add/; 345 346 add_proto qw/void vp9_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 347 specialize qw/vp9_idct8x8_12_add/; 348 349 add_proto qw/void vp9_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 350 specialize qw/vp9_idct16x16_1_add/; 351 352 add_proto qw/void vp9_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 353 specialize qw/vp9_idct16x16_256_add/; 354 355 add_proto qw/void vp9_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 356 specialize qw/vp9_idct16x16_10_add/; 357 358 add_proto qw/void vp9_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 359 specialize qw/vp9_idct32x32_1024_add/; 360 361 add_proto qw/void vp9_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 362 specialize qw/vp9_idct32x32_34_add/; 363 364 add_proto qw/void vp9_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 365 specialize qw/vp9_idct32x32_1_add/; 366 367 add_proto qw/void vp9_iht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type"; 368 specialize qw/vp9_iht4x4_16_add/; 369 370 add_proto qw/void vp9_iht8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type"; 371 specialize qw/vp9_iht8x8_64_add/; 372 373 add_proto qw/void vp9_iht16x16_256_add/, "const tran_low_t *input, uint8_t *output, int pitch, int tx_type"; 374 specialize qw/vp9_iht16x16_256_add/; 375 376 # dct and add 377 378 add_proto qw/void vp9_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 379 specialize qw/vp9_iwht4x4_1_add/; 380 381 add_proto qw/void vp9_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 382 specialize qw/vp9_iwht4x4_16_add/; 383} else { 384 add_proto qw/void vp9_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 385 specialize qw/vp9_idct4x4_1_add sse2 neon_asm dspr2/; 386 $vp9_idct4x4_1_add_neon_asm=vp9_idct4x4_1_add_neon; 387 388 add_proto qw/void vp9_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 389 specialize qw/vp9_idct4x4_16_add sse2 neon_asm dspr2/; 390 $vp9_idct4x4_16_add_neon_asm=vp9_idct4x4_16_add_neon; 391 392 add_proto qw/void vp9_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 393 specialize qw/vp9_idct8x8_1_add sse2 neon_asm dspr2/; 394 $vp9_idct8x8_1_add_neon_asm=vp9_idct8x8_1_add_neon; 395 396 add_proto qw/void vp9_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 397 specialize qw/vp9_idct8x8_64_add sse2 neon_asm dspr2/, "$ssse3_x86_64"; 398 $vp9_idct8x8_64_add_neon_asm=vp9_idct8x8_64_add_neon; 399 400 add_proto qw/void vp9_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 401 specialize qw/vp9_idct8x8_12_add sse2 neon_asm dspr2/, "$ssse3_x86_64"; 402 $vp9_idct8x8_12_add_neon_asm=vp9_idct8x8_12_add_neon; 403 404 add_proto qw/void vp9_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 405 specialize qw/vp9_idct16x16_1_add sse2 neon_asm dspr2/; 406 $vp9_idct16x16_1_add_neon_asm=vp9_idct16x16_1_add_neon; 407 408 add_proto qw/void vp9_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 409 specialize qw/vp9_idct16x16_256_add sse2 ssse3 neon_asm dspr2/; 410 $vp9_idct16x16_256_add_neon_asm=vp9_idct16x16_256_add_neon; 411 412 add_proto qw/void vp9_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 413 specialize qw/vp9_idct16x16_10_add sse2 ssse3 neon_asm dspr2/; 414 $vp9_idct16x16_10_add_neon_asm=vp9_idct16x16_10_add_neon; 415 416 add_proto qw/void vp9_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 417 specialize qw/vp9_idct32x32_1024_add sse2 neon_asm dspr2/; 418 $vp9_idct32x32_1024_add_neon_asm=vp9_idct32x32_1024_add_neon; 419 420 add_proto qw/void vp9_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 421 specialize qw/vp9_idct32x32_34_add sse2 neon_asm dspr2/; 422 $vp9_idct32x32_34_add_neon_asm=vp9_idct32x32_1024_add_neon; 423 424 add_proto qw/void vp9_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 425 specialize qw/vp9_idct32x32_1_add sse2 neon_asm dspr2/; 426 $vp9_idct32x32_1_add_neon_asm=vp9_idct32x32_1_add_neon; 427 428 add_proto qw/void vp9_iht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type"; 429 specialize qw/vp9_iht4x4_16_add sse2 neon_asm dspr2/; 430 $vp9_iht4x4_16_add_neon_asm=vp9_iht4x4_16_add_neon; 431 432 add_proto qw/void vp9_iht8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type"; 433 specialize qw/vp9_iht8x8_64_add sse2 neon_asm dspr2/; 434 $vp9_iht8x8_64_add_neon_asm=vp9_iht8x8_64_add_neon; 435 436 add_proto qw/void vp9_iht16x16_256_add/, "const tran_low_t *input, uint8_t *output, int pitch, int tx_type"; 437 specialize qw/vp9_iht16x16_256_add sse2 dspr2/; 438 439 # dct and add 440 441 add_proto qw/void vp9_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 442 specialize qw/vp9_iwht4x4_1_add/; 443 444 add_proto qw/void vp9_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 445 specialize qw/vp9_iwht4x4_16_add/; 446} 447 448# High bitdepth functions 449if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 450 # 451 # Intra prediction 452 # 453 add_proto qw/void vp9_high_d207_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 454 specialize qw/vp9_high_d207_predictor_4x4/; 455 456 add_proto qw/void vp9_high_d45_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 457 specialize qw/vp9_high_d45_predictor_4x4/; 458 459 add_proto qw/void vp9_high_d63_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 460 specialize qw/vp9_high_d63_predictor_4x4/; 461 462 add_proto qw/void vp9_high_h_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 463 specialize qw/vp9_high_h_predictor_4x4/; 464 465 add_proto qw/void vp9_high_d117_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 466 specialize qw/vp9_high_d117_predictor_4x4/; 467 468 add_proto qw/void vp9_high_d135_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 469 specialize qw/vp9_high_d135_predictor_4x4/; 470 471 add_proto qw/void vp9_high_d153_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 472 specialize qw/vp9_high_d153_predictor_4x4/; 473 474 add_proto qw/void vp9_high_v_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 475 specialize qw/vp9_high_v_predictor_4x4 neon/, "$sse_x86inc"; 476 477 add_proto qw/void vp9_high_tm_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 478 specialize qw/vp9_high_tm_predictor_4x4/, "$sse_x86inc"; 479 480 add_proto qw/void vp9_high_dc_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 481 specialize qw/vp9_high_dc_predictor_4x4/, "$sse_x86inc"; 482 483 add_proto qw/void vp9_high_dc_top_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 484 specialize qw/vp9_high_dc_top_predictor_4x4/; 485 486 add_proto qw/void vp9_high_dc_left_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 487 specialize qw/vp9_high_dc_left_predictor_4x4/; 488 489 add_proto qw/void vp9_high_dc_128_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 490 specialize qw/vp9_high_dc_128_predictor_4x4/; 491 492 add_proto qw/void vp9_high_d207_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 493 specialize qw/vp9_high_d207_predictor_8x8/; 494 495 add_proto qw/void vp9_high_d45_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 496 specialize qw/vp9_high_d45_predictor_8x8/; 497 498 add_proto qw/void vp9_high_d63_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 499 specialize qw/vp9_high_d63_predictor_8x8/; 500 501 add_proto qw/void vp9_high_h_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 502 specialize qw/vp9_high_h_predictor_8x8/; 503 504 add_proto qw/void vp9_high_d117_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 505 specialize qw/vp9_high_d117_predictor_8x8/; 506 507 add_proto qw/void vp9_high_d135_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 508 specialize qw/vp9_high_d135_predictor_8x8/; 509 510 add_proto qw/void vp9_high_d153_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 511 specialize qw/vp9_high_d153_predictor_8x8/; 512 513 add_proto qw/void vp9_high_v_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 514 specialize qw/vp9_high_v_predictor_8x8/, "$sse2_x86inc"; 515 516 add_proto qw/void vp9_high_tm_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 517 specialize qw/vp9_high_tm_predictor_8x8/, "$sse2_x86inc"; 518 519 add_proto qw/void vp9_high_dc_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 520 specialize qw/vp9_high_dc_predictor_8x8/, "$sse2_x86inc";; 521 522 add_proto qw/void vp9_high_dc_top_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 523 specialize qw/vp9_high_dc_top_predictor_8x8/; 524 525 add_proto qw/void vp9_high_dc_left_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 526 specialize qw/vp9_high_dc_left_predictor_8x8/; 527 528 add_proto qw/void vp9_high_dc_128_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 529 specialize qw/vp9_high_dc_128_predictor_8x8/; 530 531 add_proto qw/void vp9_high_d207_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 532 specialize qw/vp9_high_d207_predictor_16x16/; 533 534 add_proto qw/void vp9_high_d45_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 535 specialize qw/vp9_high_d45_predictor_16x16/; 536 537 add_proto qw/void vp9_high_d63_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 538 specialize qw/vp9_high_d63_predictor_16x16/; 539 540 add_proto qw/void vp9_high_h_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 541 specialize qw/vp9_high_h_predictor_16x16/; 542 543 add_proto qw/void vp9_high_d117_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 544 specialize qw/vp9_high_d117_predictor_16x16/; 545 546 add_proto qw/void vp9_high_d135_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 547 specialize qw/vp9_high_d135_predictor_16x16/; 548 549 add_proto qw/void vp9_high_d153_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 550 specialize qw/vp9_high_d153_predictor_16x16/; 551 552 add_proto qw/void vp9_high_v_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 553 specialize qw/vp9_high_v_predictor_16x16 neon/, "$sse2_x86inc"; 554 555 add_proto qw/void vp9_high_tm_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 556 specialize qw/vp9_high_tm_predictor_16x16/, "$sse2_x86_64"; 557 558 add_proto qw/void vp9_high_dc_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 559 specialize qw/vp9_high_dc_predictor_16x16/, "$sse2_x86inc"; 560 561 add_proto qw/void vp9_high_dc_top_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 562 specialize qw/vp9_high_dc_top_predictor_16x16/; 563 564 add_proto qw/void vp9_high_dc_left_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 565 specialize qw/vp9_high_dc_left_predictor_16x16/; 566 567 add_proto qw/void vp9_high_dc_128_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 568 specialize qw/vp9_high_dc_128_predictor_16x16/; 569 570 add_proto qw/void vp9_high_d207_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 571 specialize qw/vp9_high_d207_predictor_32x32/; 572 573 add_proto qw/void vp9_high_d45_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 574 specialize qw/vp9_high_d45_predictor_32x32/; 575 576 add_proto qw/void vp9_high_d63_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 577 specialize qw/vp9_high_d63_predictor_32x32/; 578 579 add_proto qw/void vp9_high_h_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 580 specialize qw/vp9_high_h_predictor_32x32/; 581 582 add_proto qw/void vp9_high_d117_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 583 specialize qw/vp9_high_d117_predictor_32x32/; 584 585 add_proto qw/void vp9_high_d135_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 586 specialize qw/vp9_high_d135_predictor_32x32/; 587 588 add_proto qw/void vp9_high_d153_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 589 specialize qw/vp9_high_d153_predictor_32x32/; 590 591 add_proto qw/void vp9_high_v_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 592 specialize qw/vp9_high_v_predictor_32x32/, "$sse2_x86inc"; 593 594 add_proto qw/void vp9_high_tm_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 595 specialize qw/vp9_high_tm_predictor_32x32/, "$sse2_x86_64"; 596 597 add_proto qw/void vp9_high_dc_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 598 specialize qw/vp9_high_dc_predictor_32x32/, "$sse2_x86_64"; 599 600 add_proto qw/void vp9_high_dc_top_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 601 specialize qw/vp9_high_dc_top_predictor_32x32/; 602 603 add_proto qw/void vp9_high_dc_left_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 604 specialize qw/vp9_high_dc_left_predictor_32x32/; 605 606 add_proto qw/void vp9_high_dc_128_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bps"; 607 specialize qw/vp9_high_dc_128_predictor_32x32/; 608 609 # 610 # Sub Pixel Filters 611 # 612 add_proto qw/void vp9_high_convolve_copy/, "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, int bps"; 613 specialize qw/vp9_high_convolve_copy/; 614 615 add_proto qw/void vp9_high_convolve_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, int bps"; 616 specialize qw/vp9_high_convolve_avg/; 617 618 add_proto qw/void vp9_high_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, int bps"; 619 specialize qw/vp9_high_convolve8/, "$sse2_x86_64"; 620 621 add_proto qw/void vp9_high_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, int bps"; 622 specialize qw/vp9_high_convolve8_horiz/, "$sse2_x86_64"; 623 624 add_proto qw/void vp9_high_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, int bps"; 625 specialize qw/vp9_high_convolve8_vert/, "$sse2_x86_64"; 626 627 add_proto qw/void vp9_high_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, int bps"; 628 specialize qw/vp9_high_convolve8_avg/, "$sse2_x86_64"; 629 630 add_proto qw/void vp9_high_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, int bps"; 631 specialize qw/vp9_high_convolve8_avg_horiz/, "$sse2_x86_64"; 632 633 add_proto qw/void vp9_high_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, int bps"; 634 specialize qw/vp9_high_convolve8_avg_vert/, "$sse2_x86_64"; 635 636 # 637 # dct 638 # 639 add_proto qw/void vp9_high_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 640 specialize qw/vp9_high_idct4x4_1_add/; 641 642 add_proto qw/void vp9_high_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 643 specialize qw/vp9_high_idct4x4_16_add/; 644 645 add_proto qw/void vp9_high_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 646 specialize qw/vp9_high_idct8x8_1_add/; 647 648 add_proto qw/void vp9_high_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 649 specialize qw/vp9_high_idct8x8_64_add/; 650 651 add_proto qw/void vp9_high_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 652 specialize qw/vp9_high_idct8x8_10_add/; 653 654 add_proto qw/void vp9_high_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 655 specialize qw/vp9_high_idct16x16_1_add/; 656 657 add_proto qw/void vp9_high_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 658 specialize qw/vp9_high_idct16x16_256_add/; 659 660 add_proto qw/void vp9_high_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 661 specialize qw/vp9_high_idct16x16_10_add/; 662 663 add_proto qw/void vp9_high_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 664 specialize qw/vp9_high_idct32x32_1024_add/; 665 666 add_proto qw/void vp9_high_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 667 specialize qw/vp9_high_idct32x32_34_add/; 668 669 add_proto qw/void vp9_high_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 670 specialize qw/vp9_high_idct32x32_1_add/; 671 672 add_proto qw/void vp9_high_iht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd"; 673 specialize qw/vp9_high_iht4x4_16_add/; 674 675 add_proto qw/void vp9_high_iht8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type, int bd"; 676 specialize qw/vp9_high_iht8x8_64_add/; 677 678 add_proto qw/void vp9_high_iht16x16_256_add/, "const tran_low_t *input, uint8_t *output, int pitch, int tx_type, int bd"; 679 specialize qw/vp9_high_iht16x16_256_add/; 680 681 # dct and add 682 683 add_proto qw/void vp9_high_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 684 specialize qw/vp9_high_iwht4x4_1_add/; 685 686 add_proto qw/void vp9_high_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 687 specialize qw/vp9_high_iwht4x4_16_add/; 688} 689 690# 691# Encoder functions below this point. 692# 693if (vpx_config("CONFIG_VP9_ENCODER") eq "yes") { 694 695 696# variance 697add_proto qw/unsigned int vp9_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 698specialize qw/vp9_variance32x16 avx2/, "$sse2_x86inc"; 699 700add_proto qw/unsigned int vp9_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 701specialize qw/vp9_variance16x32/, "$sse2_x86inc"; 702 703add_proto qw/unsigned int vp9_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 704specialize qw/vp9_variance64x32 avx2/, "$sse2_x86inc"; 705 706add_proto qw/unsigned int vp9_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 707specialize qw/vp9_variance32x64/, "$sse2_x86inc"; 708 709add_proto qw/unsigned int vp9_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 710specialize qw/vp9_variance32x32 avx2 neon/, "$sse2_x86inc"; 711 712add_proto qw/unsigned int vp9_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 713specialize qw/vp9_variance64x64 avx2/, "$sse2_x86inc"; 714 715add_proto qw/unsigned int vp9_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 716specialize qw/vp9_variance16x16 avx2 neon/, "$sse2_x86inc"; 717 718add_proto qw/unsigned int vp9_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 719specialize qw/vp9_variance16x8/, "$sse2_x86inc"; 720 721add_proto qw/unsigned int vp9_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 722specialize qw/vp9_variance8x16/, "$sse2_x86inc"; 723 724add_proto qw/unsigned int vp9_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 725specialize qw/vp9_variance8x8 neon/, "$sse2_x86inc"; 726 727add_proto qw/void vp9_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 728specialize qw/vp9_get8x8var neon/, "$sse2_x86inc"; 729 730add_proto qw/void vp9_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 731specialize qw/vp9_get16x16var avx2 neon/, "$sse2_x86inc"; 732 733add_proto qw/unsigned int vp9_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 734specialize qw/vp9_variance8x4/, "$sse2_x86inc"; 735 736add_proto qw/unsigned int vp9_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 737specialize qw/vp9_variance4x8/, "$sse2_x86inc"; 738 739add_proto qw/unsigned int vp9_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 740specialize qw/vp9_variance4x4/, "$sse2_x86inc"; 741 742add_proto qw/unsigned int vp9_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 743specialize qw/vp9_sub_pixel_variance64x64 avx2/, "$sse2_x86inc", "$ssse3_x86inc"; 744 745add_proto qw/unsigned int vp9_sub_pixel_avg_variance64x64/, "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"; 746specialize qw/vp9_sub_pixel_avg_variance64x64 avx2/, "$sse2_x86inc", "$ssse3_x86inc"; 747 748add_proto qw/unsigned int vp9_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 749specialize qw/vp9_sub_pixel_variance32x64/, "$sse2_x86inc", "$ssse3_x86inc"; 750 751add_proto qw/unsigned int vp9_sub_pixel_avg_variance32x64/, "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"; 752specialize qw/vp9_sub_pixel_avg_variance32x64/, "$sse2_x86inc", "$ssse3_x86inc"; 753 754add_proto qw/unsigned int vp9_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 755specialize qw/vp9_sub_pixel_variance64x32/, "$sse2_x86inc", "$ssse3_x86inc"; 756 757add_proto qw/unsigned int vp9_sub_pixel_avg_variance64x32/, "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"; 758specialize qw/vp9_sub_pixel_avg_variance64x32/, "$sse2_x86inc", "$ssse3_x86inc"; 759 760add_proto qw/unsigned int vp9_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 761specialize qw/vp9_sub_pixel_variance32x16/, "$sse2_x86inc", "$ssse3_x86inc"; 762 763add_proto qw/unsigned int vp9_sub_pixel_avg_variance32x16/, "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"; 764specialize qw/vp9_sub_pixel_avg_variance32x16/, "$sse2_x86inc", "$ssse3_x86inc"; 765 766add_proto qw/unsigned int vp9_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 767specialize qw/vp9_sub_pixel_variance16x32/, "$sse2_x86inc", "$ssse3_x86inc"; 768 769add_proto qw/unsigned int vp9_sub_pixel_avg_variance16x32/, "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"; 770specialize qw/vp9_sub_pixel_avg_variance16x32/, "$sse2_x86inc", "$ssse3_x86inc"; 771 772add_proto qw/unsigned int vp9_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 773specialize qw/vp9_sub_pixel_variance32x32 avx2 neon/, "$sse2_x86inc", "$ssse3_x86inc"; 774 775add_proto qw/unsigned int vp9_sub_pixel_avg_variance32x32/, "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"; 776specialize qw/vp9_sub_pixel_avg_variance32x32 avx2/, "$sse2_x86inc", "$ssse3_x86inc"; 777 778add_proto qw/unsigned int vp9_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 779specialize qw/vp9_sub_pixel_variance16x16 neon/, "$sse2_x86inc", "$ssse3_x86inc"; 780 781add_proto qw/unsigned int vp9_sub_pixel_avg_variance16x16/, "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"; 782specialize qw/vp9_sub_pixel_avg_variance16x16/, "$sse2_x86inc", "$ssse3_x86inc"; 783 784add_proto qw/unsigned int vp9_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 785specialize qw/vp9_sub_pixel_variance8x16/, "$sse2_x86inc", "$ssse3_x86inc"; 786 787add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x16/, "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"; 788specialize qw/vp9_sub_pixel_avg_variance8x16/, "$sse2_x86inc", "$ssse3_x86inc"; 789 790add_proto qw/unsigned int vp9_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 791specialize qw/vp9_sub_pixel_variance16x8/, "$sse2_x86inc", "$ssse3_x86inc"; 792 793add_proto qw/unsigned int vp9_sub_pixel_avg_variance16x8/, "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"; 794specialize qw/vp9_sub_pixel_avg_variance16x8/, "$sse2_x86inc", "$ssse3_x86inc"; 795 796add_proto qw/unsigned int vp9_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 797specialize qw/vp9_sub_pixel_variance8x8 neon/, "$sse2_x86inc", "$ssse3_x86inc"; 798 799add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x8/, "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"; 800specialize qw/vp9_sub_pixel_avg_variance8x8/, "$sse2_x86inc", "$ssse3_x86inc"; 801 802# TODO(jingning): need to convert 8x4/4x8 functions into mmx/sse form 803add_proto qw/unsigned int vp9_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 804specialize qw/vp9_sub_pixel_variance8x4/, "$sse2_x86inc", "$ssse3_x86inc"; 805 806add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x4/, "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"; 807specialize qw/vp9_sub_pixel_avg_variance8x4/, "$sse2_x86inc", "$ssse3_x86inc"; 808 809add_proto qw/unsigned int vp9_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 810specialize qw/vp9_sub_pixel_variance4x8/, "$sse_x86inc", "$ssse3_x86inc"; 811 812add_proto qw/unsigned int vp9_sub_pixel_avg_variance4x8/, "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"; 813specialize qw/vp9_sub_pixel_avg_variance4x8/, "$sse_x86inc", "$ssse3_x86inc"; 814 815add_proto qw/unsigned int vp9_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 816specialize qw/vp9_sub_pixel_variance4x4/, "$sse_x86inc", "$ssse3_x86inc"; 817#vp9_sub_pixel_variance4x4_sse2=vp9_sub_pixel_variance4x4_wmt 818 819add_proto qw/unsigned int vp9_sub_pixel_avg_variance4x4/, "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"; 820specialize qw/vp9_sub_pixel_avg_variance4x4/, "$sse_x86inc", "$ssse3_x86inc"; 821 822add_proto qw/unsigned int vp9_sad64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 823specialize qw/vp9_sad64x64 neon/, "$sse2_x86inc"; 824 825add_proto qw/unsigned int vp9_sad32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 826specialize qw/vp9_sad32x64/, "$sse2_x86inc"; 827 828add_proto qw/unsigned int vp9_sad64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 829specialize qw/vp9_sad64x32/, "$sse2_x86inc"; 830 831add_proto qw/unsigned int vp9_sad32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 832specialize qw/vp9_sad32x16/, "$sse2_x86inc"; 833 834add_proto qw/unsigned int vp9_sad16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 835specialize qw/vp9_sad16x32/, "$sse2_x86inc"; 836 837add_proto qw/unsigned int vp9_sad32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 838specialize qw/vp9_sad32x32 neon/, "$sse2_x86inc"; 839 840add_proto qw/unsigned int vp9_sad16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 841specialize qw/vp9_sad16x16 neon/, "$sse2_x86inc"; 842 843add_proto qw/unsigned int vp9_sad16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 844specialize qw/vp9_sad16x8/, "$sse2_x86inc"; 845 846add_proto qw/unsigned int vp9_sad8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 847specialize qw/vp9_sad8x16/, "$sse2_x86inc"; 848 849add_proto qw/unsigned int vp9_sad8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 850specialize qw/vp9_sad8x8 neon/, "$sse2_x86inc"; 851 852add_proto qw/unsigned int vp9_sad8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 853specialize qw/vp9_sad8x4/, "$sse2_x86inc"; 854 855add_proto qw/unsigned int vp9_sad4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 856specialize qw/vp9_sad4x8/, "$sse_x86inc"; 857 858add_proto qw/unsigned int vp9_sad4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 859specialize qw/vp9_sad4x4/, "$sse_x86inc"; 860 861add_proto qw/unsigned int vp9_sad64x64_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 862specialize qw/vp9_sad64x64_avg/, "$sse2_x86inc"; 863 864add_proto qw/unsigned int vp9_sad32x64_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 865specialize qw/vp9_sad32x64_avg/, "$sse2_x86inc"; 866 867add_proto qw/unsigned int vp9_sad64x32_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 868specialize qw/vp9_sad64x32_avg/, "$sse2_x86inc"; 869 870add_proto qw/unsigned int vp9_sad32x16_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 871specialize qw/vp9_sad32x16_avg/, "$sse2_x86inc"; 872 873add_proto qw/unsigned int vp9_sad16x32_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 874specialize qw/vp9_sad16x32_avg/, "$sse2_x86inc"; 875 876add_proto qw/unsigned int vp9_sad32x32_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 877specialize qw/vp9_sad32x32_avg/, "$sse2_x86inc"; 878 879add_proto qw/unsigned int vp9_sad16x16_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 880specialize qw/vp9_sad16x16_avg/, "$sse2_x86inc"; 881 882add_proto qw/unsigned int vp9_sad16x8_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 883specialize qw/vp9_sad16x8_avg/, "$sse2_x86inc"; 884 885add_proto qw/unsigned int vp9_sad8x16_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 886specialize qw/vp9_sad8x16_avg/, "$sse2_x86inc"; 887 888add_proto qw/unsigned int vp9_sad8x8_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 889specialize qw/vp9_sad8x8_avg/, "$sse2_x86inc"; 890 891add_proto qw/unsigned int vp9_sad8x4_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 892specialize qw/vp9_sad8x4_avg/, "$sse2_x86inc"; 893 894add_proto qw/unsigned int vp9_sad4x8_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 895specialize qw/vp9_sad4x8_avg/, "$sse_x86inc"; 896 897add_proto qw/unsigned int vp9_sad4x4_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 898specialize qw/vp9_sad4x4_avg/, "$sse_x86inc"; 899 900add_proto qw/void vp9_sad64x64x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 901specialize qw/vp9_sad64x64x3/; 902 903add_proto qw/void vp9_sad32x32x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 904specialize qw/vp9_sad32x32x3/; 905 906add_proto qw/void vp9_sad16x16x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 907specialize qw/vp9_sad16x16x3 sse3 ssse3/; 908 909add_proto qw/void vp9_sad16x8x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 910specialize qw/vp9_sad16x8x3 sse3 ssse3/; 911 912add_proto qw/void vp9_sad8x16x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 913specialize qw/vp9_sad8x16x3 sse3/; 914 915add_proto qw/void vp9_sad8x8x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 916specialize qw/vp9_sad8x8x3 sse3/; 917 918add_proto qw/void vp9_sad4x4x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 919specialize qw/vp9_sad4x4x3 sse3/; 920 921add_proto qw/void vp9_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 922specialize qw/vp9_sad64x64x8/; 923 924add_proto qw/void vp9_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 925specialize qw/vp9_sad32x32x8/; 926 927add_proto qw/void vp9_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 928specialize qw/vp9_sad16x16x8 sse4/; 929 930add_proto qw/void vp9_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 931specialize qw/vp9_sad16x8x8 sse4/; 932 933add_proto qw/void vp9_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 934specialize qw/vp9_sad8x16x8 sse4/; 935 936add_proto qw/void vp9_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 937specialize qw/vp9_sad8x8x8 sse4/; 938 939add_proto qw/void vp9_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 940specialize qw/vp9_sad8x4x8/; 941 942add_proto qw/void vp9_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 943specialize qw/vp9_sad4x8x8/; 944 945add_proto qw/void vp9_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 946specialize qw/vp9_sad4x4x8 sse4/; 947 948add_proto qw/void vp9_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 949specialize qw/vp9_sad64x64x4d sse2 avx2/; 950 951add_proto qw/void vp9_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 952specialize qw/vp9_sad32x64x4d sse2/; 953 954add_proto qw/void vp9_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 955specialize qw/vp9_sad64x32x4d sse2/; 956 957add_proto qw/void vp9_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 958specialize qw/vp9_sad32x16x4d sse2/; 959 960add_proto qw/void vp9_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 961specialize qw/vp9_sad16x32x4d sse2/; 962 963add_proto qw/void vp9_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 964specialize qw/vp9_sad32x32x4d sse2 avx2/; 965 966add_proto qw/void vp9_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 967specialize qw/vp9_sad16x16x4d sse2/; 968 969add_proto qw/void vp9_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 970specialize qw/vp9_sad16x8x4d sse2/; 971 972add_proto qw/void vp9_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 973specialize qw/vp9_sad8x16x4d sse2/; 974 975add_proto qw/void vp9_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 976specialize qw/vp9_sad8x8x4d sse2/; 977 978# TODO(jingning): need to convert these 4x8/8x4 functions into sse2 form 979add_proto qw/void vp9_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 980specialize qw/vp9_sad8x4x4d sse2/; 981 982add_proto qw/void vp9_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 983specialize qw/vp9_sad4x8x4d sse/; 984 985add_proto qw/void vp9_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 986specialize qw/vp9_sad4x4x4d sse/; 987 988add_proto qw/unsigned int vp9_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 989specialize qw/vp9_mse16x16 avx2/, "$sse2_x86inc"; 990 991add_proto qw/unsigned int vp9_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 992specialize qw/vp9_mse8x16/, "$sse2_x86inc"; 993 994add_proto qw/unsigned int vp9_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 995specialize qw/vp9_mse16x8/, "$sse2_x86inc"; 996 997add_proto qw/unsigned int vp9_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 998specialize qw/vp9_mse8x8/, "$sse2_x86inc"; 999 1000add_proto qw/unsigned int vp9_get_mb_ss/, "const int16_t *"; 1001specialize qw/vp9_get_mb_ss/, "$sse2_x86inc"; 1002# ENCODEMB INVOKE 1003 1004add_proto qw/void vp9_subtract_block/, "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"; 1005specialize qw/vp9_subtract_block neon/, "$sse2_x86inc"; 1006 1007if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 1008# the transform coefficients are held in 32-bit 1009# values, so the assembler code for vp9_block_error can no longer be used. 1010 add_proto qw/int64_t vp9_block_error/, "const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz"; 1011 specialize qw/vp9_block_error/; 1012 1013 add_proto qw/void vp9_quantize_fp/, "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"; 1014 specialize qw/vp9_quantize_fp/; 1015 1016 add_proto qw/void vp9_quantize_fp_32x32/, "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"; 1017 specialize qw/vp9_quantize_fp_32x32/; 1018 1019 add_proto qw/void vp9_quantize_b/, "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"; 1020 specialize qw/vp9_quantize_b/; 1021 1022 add_proto qw/void vp9_quantize_b_32x32/, "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"; 1023 specialize qw/vp9_quantize_b_32x32/; 1024} else { 1025 add_proto qw/int64_t vp9_block_error/, "const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz"; 1026 specialize qw/vp9_block_error avx2/, "$sse2_x86inc"; 1027 1028 add_proto qw/void vp9_quantize_fp/, "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"; 1029 specialize qw/vp9_quantize_fp neon/, "$ssse3_x86_64"; 1030 1031 add_proto qw/void vp9_quantize_fp_32x32/, "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"; 1032 specialize qw/vp9_quantize_fp_32x32/, "$ssse3_x86_64"; 1033 1034 add_proto qw/void vp9_quantize_b/, "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"; 1035 specialize qw/vp9_quantize_b/, "$ssse3_x86_64"; 1036 1037 add_proto qw/void vp9_quantize_b_32x32/, "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"; 1038 specialize qw/vp9_quantize_b_32x32/, "$ssse3_x86_64"; 1039} 1040 1041# 1042# Structured Similarity (SSIM) 1043# 1044if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { 1045 add_proto qw/void vp9_ssim_parms_8x8/, "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"; 1046 specialize qw/vp9_ssim_parms_8x8/, "$sse2_x86_64"; 1047 1048 add_proto qw/void vp9_ssim_parms_16x16/, "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"; 1049 specialize qw/vp9_ssim_parms_16x16/, "$sse2_x86_64"; 1050} 1051 1052# fdct functions 1053 1054if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 1055 add_proto qw/void vp9_fht4x4/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1056 specialize qw/vp9_fht4x4/; 1057 1058 add_proto qw/void vp9_fht8x8/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1059 specialize qw/vp9_fht8x8/; 1060 1061 add_proto qw/void vp9_fht16x16/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1062 specialize qw/vp9_fht16x16/; 1063 1064 add_proto qw/void vp9_fwht4x4/, "const int16_t *input, tran_low_t *output, int stride"; 1065 specialize qw/vp9_fwht4x4/; 1066 1067 add_proto qw/void vp9_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride"; 1068 specialize qw/vp9_fdct4x4_1/; 1069 1070 add_proto qw/void vp9_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 1071 specialize qw/vp9_fdct4x4/; 1072 1073 add_proto qw/void vp9_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 1074 specialize qw/vp9_fdct8x8_1/; 1075 1076 add_proto qw/void vp9_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 1077 specialize qw/vp9_fdct8x8/; 1078 1079 add_proto qw/void vp9_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 1080 specialize qw/vp9_fdct16x16_1/; 1081 1082 add_proto qw/void vp9_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 1083 specialize qw/vp9_fdct16x16/; 1084 1085 add_proto qw/void vp9_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 1086 specialize qw/vp9_fdct32x32_1/; 1087 1088 add_proto qw/void vp9_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 1089 specialize qw/vp9_fdct32x32/; 1090 1091 add_proto qw/void vp9_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 1092 specialize qw/vp9_fdct32x32_rd/; 1093} else { 1094 add_proto qw/void vp9_fht4x4/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1095 specialize qw/vp9_fht4x4 sse2/; 1096 1097 add_proto qw/void vp9_fht8x8/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1098 specialize qw/vp9_fht8x8 sse2/; 1099 1100 add_proto qw/void vp9_fht16x16/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1101 specialize qw/vp9_fht16x16 sse2/; 1102 1103 add_proto qw/void vp9_fwht4x4/, "const int16_t *input, tran_low_t *output, int stride"; 1104 specialize qw/vp9_fwht4x4/, "$mmx_x86inc"; 1105 1106 add_proto qw/void vp9_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride"; 1107 specialize qw/vp9_fdct4x4_1 sse2/; 1108 1109 add_proto qw/void vp9_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 1110 specialize qw/vp9_fdct4x4 sse2/; 1111 1112 add_proto qw/void vp9_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 1113 specialize qw/vp9_fdct8x8_1 sse2 neon/; 1114 1115 add_proto qw/void vp9_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 1116 specialize qw/vp9_fdct8x8 sse2 neon/, "$ssse3_x86_64"; 1117 1118 add_proto qw/void vp9_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 1119 specialize qw/vp9_fdct16x16_1 sse2/; 1120 1121 add_proto qw/void vp9_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 1122 specialize qw/vp9_fdct16x16 sse2/; 1123 1124 add_proto qw/void vp9_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 1125 specialize qw/vp9_fdct32x32_1 sse2/; 1126 1127 add_proto qw/void vp9_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 1128 specialize qw/vp9_fdct32x32 sse2 avx2/; 1129 1130 add_proto qw/void vp9_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 1131 specialize qw/vp9_fdct32x32_rd sse2 avx2/; 1132} 1133 1134# 1135# Motion search 1136# 1137add_proto qw/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"; 1138specialize qw/vp9_full_search_sad sse3 sse4_1/; 1139$vp9_full_search_sad_sse3=vp9_full_search_sadx3; 1140$vp9_full_search_sad_sse4_1=vp9_full_search_sadx8; 1141 1142add_proto qw/int vp9_refining_search_sad/, "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"; 1143specialize qw/vp9_refining_search_sad/; 1144 1145add_proto qw/int vp9_diamond_search_sad/, "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"; 1146specialize qw/vp9_diamond_search_sad/; 1147 1148add_proto qw/int vp9_full_range_search/, "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"; 1149specialize qw/vp9_full_range_search/; 1150 1151add_proto qw/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"; 1152specialize qw/vp9_temporal_filter_apply sse2/; 1153 1154if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 1155 1156 # variance 1157 add_proto qw/unsigned int vp9_high_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1158 specialize qw/vp9_high_variance32x16/; 1159 1160 add_proto qw/unsigned int vp9_high_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1161 specialize qw/vp9_high_variance16x32/; 1162 1163 add_proto qw/unsigned int vp9_high_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1164 specialize qw/vp9_high_variance64x32/; 1165 1166 add_proto qw/unsigned int vp9_high_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1167 specialize qw/vp9_high_variance32x64/; 1168 1169 add_proto qw/unsigned int vp9_high_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1170 specialize qw/vp9_high_variance32x32/; 1171 1172 add_proto qw/unsigned int vp9_high_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1173 specialize qw/vp9_high_variance64x64/; 1174 1175 add_proto qw/unsigned int vp9_high_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1176 specialize qw/vp9_high_variance16x16/; 1177 1178 add_proto qw/unsigned int vp9_high_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1179 specialize qw/vp9_high_variance16x8/; 1180 1181 add_proto qw/unsigned int vp9_high_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1182 specialize qw/vp9_high_variance8x16/; 1183 1184 add_proto qw/unsigned int vp9_high_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1185 specialize qw/vp9_high_variance8x8/; 1186 1187 add_proto qw/unsigned int vp9_high_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1188 specialize qw/vp9_high_variance8x4/; 1189 1190 add_proto qw/unsigned int vp9_high_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1191 specialize qw/vp9_high_variance4x8/; 1192 1193 add_proto qw/unsigned int vp9_high_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1194 specialize qw/vp9_high_variance4x4/; 1195 1196 add_proto qw/void vp9_high_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1197 specialize qw/vp9_high_get8x8var/; 1198 1199 add_proto qw/void vp9_high_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1200 specialize qw/vp9_high_get16x16var/; 1201 1202 add_proto qw/unsigned int vp9_high_10_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1203 specialize qw/vp9_high_10_variance32x16/; 1204 1205 add_proto qw/unsigned int vp9_high_10_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1206 specialize qw/vp9_high_10_variance16x32/; 1207 1208 add_proto qw/unsigned int vp9_high_10_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1209 specialize qw/vp9_high_10_variance64x32/; 1210 1211 add_proto qw/unsigned int vp9_high_10_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1212 specialize qw/vp9_high_10_variance32x64/; 1213 1214 add_proto qw/unsigned int vp9_high_10_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1215 specialize qw/vp9_high_10_variance32x32/; 1216 1217 add_proto qw/unsigned int vp9_high_10_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1218 specialize qw/vp9_high_10_variance64x64/; 1219 1220 add_proto qw/unsigned int vp9_high_10_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1221 specialize qw/vp9_high_10_variance16x16/; 1222 1223 add_proto qw/unsigned int vp9_high_10_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1224 specialize qw/vp9_high_10_variance16x8/; 1225 1226 add_proto qw/unsigned int vp9_high_10_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1227 specialize qw/vp9_high_10_variance8x16/; 1228 1229 add_proto qw/unsigned int vp9_high_10_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1230 specialize qw/vp9_high_10_variance8x8/; 1231 1232 add_proto qw/unsigned int vp9_high_10_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1233 specialize qw/vp9_high_10_variance8x4/; 1234 1235 add_proto qw/unsigned int vp9_high_10_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1236 specialize qw/vp9_high_10_variance4x8/; 1237 1238 add_proto qw/unsigned int vp9_high_10_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1239 specialize qw/vp9_high_10_variance4x4/; 1240 1241 add_proto qw/void vp9_high_10_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1242 specialize qw/vp9_high_10_get8x8var/; 1243 1244 add_proto qw/void vp9_high_10_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1245 specialize qw/vp9_high_10_get16x16var/; 1246 1247 add_proto qw/unsigned int vp9_high_12_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1248 specialize qw/vp9_high_12_variance32x16/; 1249 1250 add_proto qw/unsigned int vp9_high_12_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1251 specialize qw/vp9_high_12_variance16x32/; 1252 1253 add_proto qw/unsigned int vp9_high_12_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1254 specialize qw/vp9_high_12_variance64x32/; 1255 1256 add_proto qw/unsigned int vp9_high_12_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1257 specialize qw/vp9_high_12_variance32x64/; 1258 1259 add_proto qw/unsigned int vp9_high_12_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1260 specialize qw/vp9_high_12_variance32x32/; 1261 1262 add_proto qw/unsigned int vp9_high_12_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1263 specialize qw/vp9_high_12_variance64x64/; 1264 1265 add_proto qw/unsigned int vp9_high_12_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1266 specialize qw/vp9_high_12_variance16x16/; 1267 1268 add_proto qw/unsigned int vp9_high_12_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1269 specialize qw/vp9_high_12_variance16x8/; 1270 1271 add_proto qw/unsigned int vp9_high_12_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1272 specialize qw/vp9_high_12_variance8x16/; 1273 1274 add_proto qw/unsigned int vp9_high_12_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1275 specialize qw/vp9_high_12_variance8x8/; 1276 1277 add_proto qw/unsigned int vp9_high_12_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1278 specialize qw/vp9_high_12_variance8x4/; 1279 1280 add_proto qw/unsigned int vp9_high_12_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1281 specialize qw/vp9_high_12_variance4x8/; 1282 1283 add_proto qw/unsigned int vp9_high_12_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1284 specialize qw/vp9_high_12_variance4x4/; 1285 1286 add_proto qw/void vp9_high_12_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1287 specialize qw/vp9_high_12_get8x8var/; 1288 1289 add_proto qw/void vp9_high_12_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1290 specialize qw/vp9_high_12_get16x16var/; 1291 1292 add_proto qw/unsigned int vp9_high_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1293 specialize qw/vp9_high_sub_pixel_variance64x64/; 1294 1295 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance64x64/, "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"; 1296 specialize qw/vp9_high_sub_pixel_avg_variance64x64/; 1297 1298 add_proto qw/unsigned int vp9_high_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1299 specialize qw/vp9_high_sub_pixel_variance32x64/; 1300 1301 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance32x64/, "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"; 1302 specialize qw/vp9_high_sub_pixel_avg_variance32x64/; 1303 1304 add_proto qw/unsigned int vp9_high_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1305 specialize qw/vp9_high_sub_pixel_variance64x32/; 1306 1307 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance64x32/, "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"; 1308 specialize qw/vp9_high_sub_pixel_avg_variance64x32/; 1309 1310 add_proto qw/unsigned int vp9_high_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1311 specialize qw/vp9_high_sub_pixel_variance32x16/; 1312 1313 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance32x16/, "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"; 1314 specialize qw/vp9_high_sub_pixel_avg_variance32x16/; 1315 1316 add_proto qw/unsigned int vp9_high_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1317 specialize qw/vp9_high_sub_pixel_variance16x32/; 1318 1319 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance16x32/, "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"; 1320 specialize qw/vp9_high_sub_pixel_avg_variance16x32/; 1321 1322 add_proto qw/unsigned int vp9_high_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1323 specialize qw/vp9_high_sub_pixel_variance32x32/; 1324 1325 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance32x32/, "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"; 1326 specialize qw/vp9_high_sub_pixel_avg_variance32x32/; 1327 1328 add_proto qw/unsigned int vp9_high_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1329 specialize qw/vp9_high_sub_pixel_variance16x16/; 1330 1331 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance16x16/, "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"; 1332 specialize qw/vp9_high_sub_pixel_avg_variance16x16/; 1333 1334 add_proto qw/unsigned int vp9_high_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1335 specialize qw/vp9_high_sub_pixel_variance8x16/; 1336 1337 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance8x16/, "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"; 1338 specialize qw/vp9_high_sub_pixel_avg_variance8x16/; 1339 1340 add_proto qw/unsigned int vp9_high_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1341 specialize qw/vp9_high_sub_pixel_variance16x8/; 1342 1343 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance16x8/, "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"; 1344 specialize qw/vp9_high_sub_pixel_avg_variance16x8/; 1345 1346 add_proto qw/unsigned int vp9_high_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1347 specialize qw/vp9_high_sub_pixel_variance8x8/; 1348 1349 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance8x8/, "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"; 1350 specialize qw/vp9_high_sub_pixel_avg_variance8x8/; 1351 1352 add_proto qw/unsigned int vp9_high_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1353 specialize qw/vp9_high_sub_pixel_variance8x4/; 1354 1355 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance8x4/, "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"; 1356 specialize qw/vp9_high_sub_pixel_avg_variance8x4/; 1357 1358 add_proto qw/unsigned int vp9_high_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1359 specialize qw/vp9_high_sub_pixel_variance4x8/; 1360 1361 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance4x8/, "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"; 1362 specialize qw/vp9_high_sub_pixel_avg_variance4x8/; 1363 1364 add_proto qw/unsigned int vp9_high_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1365 specialize qw/vp9_high_sub_pixel_variance4x4/; 1366 1367 add_proto qw/unsigned int vp9_high_sub_pixel_avg_variance4x4/, "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"; 1368 specialize qw/vp9_high_sub_pixel_avg_variance4x4/; 1369 1370 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1371 specialize qw/vp9_high_10_sub_pixel_variance64x64/; 1372 1373 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance64x64/, "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"; 1374 specialize qw/vp9_high_10_sub_pixel_avg_variance64x64/; 1375 1376 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1377 specialize qw/vp9_high_10_sub_pixel_variance32x64/; 1378 1379 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance32x64/, "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"; 1380 specialize qw/vp9_high_10_sub_pixel_avg_variance32x64/; 1381 1382 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1383 specialize qw/vp9_high_10_sub_pixel_variance64x32/; 1384 1385 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance64x32/, "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"; 1386 specialize qw/vp9_high_10_sub_pixel_avg_variance64x32/; 1387 1388 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1389 specialize qw/vp9_high_10_sub_pixel_variance32x16/; 1390 1391 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance32x16/, "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"; 1392 specialize qw/vp9_high_10_sub_pixel_avg_variance32x16/; 1393 1394 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1395 specialize qw/vp9_high_10_sub_pixel_variance16x32/; 1396 1397 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance16x32/, "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"; 1398 specialize qw/vp9_high_10_sub_pixel_avg_variance16x32/; 1399 1400 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1401 specialize qw/vp9_high_10_sub_pixel_variance32x32/; 1402 1403 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance32x32/, "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"; 1404 specialize qw/vp9_high_10_sub_pixel_avg_variance32x32/; 1405 1406 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1407 specialize qw/vp9_high_10_sub_pixel_variance16x16/; 1408 1409 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance16x16/, "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"; 1410 specialize qw/vp9_high_10_sub_pixel_avg_variance16x16/; 1411 1412 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1413 specialize qw/vp9_high_10_sub_pixel_variance8x16/; 1414 1415 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance8x16/, "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"; 1416 specialize qw/vp9_high_10_sub_pixel_avg_variance8x16/; 1417 1418 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1419 specialize qw/vp9_high_10_sub_pixel_variance16x8/; 1420 1421 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance16x8/, "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"; 1422 specialize qw/vp9_high_10_sub_pixel_avg_variance16x8/; 1423 1424 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1425 specialize qw/vp9_high_10_sub_pixel_variance8x8/; 1426 1427 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance8x8/, "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"; 1428 specialize qw/vp9_high_10_sub_pixel_avg_variance8x8/; 1429 1430 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1431 specialize qw/vp9_high_10_sub_pixel_variance8x4/; 1432 1433 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance8x4/, "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"; 1434 specialize qw/vp9_high_10_sub_pixel_avg_variance8x4/; 1435 1436 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1437 specialize qw/vp9_high_10_sub_pixel_variance4x8/; 1438 1439 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance4x8/, "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"; 1440 specialize qw/vp9_high_10_sub_pixel_avg_variance4x8/; 1441 1442 add_proto qw/unsigned int vp9_high_10_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1443 specialize qw/vp9_high_10_sub_pixel_variance4x4/; 1444 1445 add_proto qw/unsigned int vp9_high_10_sub_pixel_avg_variance4x4/, "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"; 1446 specialize qw/vp9_high_10_sub_pixel_avg_variance4x4/; 1447 1448 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1449 specialize qw/vp9_high_12_sub_pixel_variance64x64/; 1450 1451 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance64x64/, "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"; 1452 specialize qw/vp9_high_12_sub_pixel_avg_variance64x64/; 1453 1454 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1455 specialize qw/vp9_high_12_sub_pixel_variance32x64/; 1456 1457 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance32x64/, "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"; 1458 specialize qw/vp9_high_12_sub_pixel_avg_variance32x64/; 1459 1460 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1461 specialize qw/vp9_high_12_sub_pixel_variance64x32/; 1462 1463 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance64x32/, "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"; 1464 specialize qw/vp9_high_12_sub_pixel_avg_variance64x32/; 1465 1466 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1467 specialize qw/vp9_high_12_sub_pixel_variance32x16/; 1468 1469 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance32x16/, "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"; 1470 specialize qw/vp9_high_12_sub_pixel_avg_variance32x16/; 1471 1472 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1473 specialize qw/vp9_high_12_sub_pixel_variance16x32/; 1474 1475 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance16x32/, "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"; 1476 specialize qw/vp9_high_12_sub_pixel_avg_variance16x32/; 1477 1478 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1479 specialize qw/vp9_high_12_sub_pixel_variance32x32/; 1480 1481 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance32x32/, "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"; 1482 specialize qw/vp9_high_12_sub_pixel_avg_variance32x32/; 1483 1484 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1485 specialize qw/vp9_high_12_sub_pixel_variance16x16/; 1486 1487 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance16x16/, "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"; 1488 specialize qw/vp9_high_12_sub_pixel_avg_variance16x16/; 1489 1490 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1491 specialize qw/vp9_high_12_sub_pixel_variance8x16/; 1492 1493 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance8x16/, "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"; 1494 specialize qw/vp9_high_12_sub_pixel_avg_variance8x16/; 1495 1496 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1497 specialize qw/vp9_high_12_sub_pixel_variance16x8/; 1498 1499 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance16x8/, "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"; 1500 specialize qw/vp9_high_12_sub_pixel_avg_variance16x8/; 1501 1502 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1503 specialize qw/vp9_high_12_sub_pixel_variance8x8/; 1504 1505 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance8x8/, "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"; 1506 specialize qw/vp9_high_12_sub_pixel_avg_variance8x8/; 1507 1508 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1509 specialize qw/vp9_high_12_sub_pixel_variance8x4/; 1510 1511 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance8x4/, "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"; 1512 specialize qw/vp9_high_12_sub_pixel_avg_variance8x4/; 1513 1514 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1515 specialize qw/vp9_high_12_sub_pixel_variance4x8/; 1516 1517 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance4x8/, "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"; 1518 specialize qw/vp9_high_12_sub_pixel_avg_variance4x8/; 1519 1520 add_proto qw/unsigned int vp9_high_12_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1521 specialize qw/vp9_high_12_sub_pixel_variance4x4/; 1522 1523 add_proto qw/unsigned int vp9_high_12_sub_pixel_avg_variance4x4/, "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"; 1524 specialize qw/vp9_high_12_sub_pixel_avg_variance4x4/; 1525 1526 add_proto qw/unsigned int vp9_high_sad64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1527 specialize qw/vp9_high_sad64x64/; 1528 1529 add_proto qw/unsigned int vp9_high_sad32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1530 specialize qw/vp9_high_sad32x64/; 1531 1532 add_proto qw/unsigned int vp9_high_sad64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1533 specialize qw/vp9_high_sad64x32/; 1534 1535 add_proto qw/unsigned int vp9_high_sad32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1536 specialize qw/vp9_high_sad32x16/; 1537 1538 add_proto qw/unsigned int vp9_high_sad16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1539 specialize qw/vp9_high_sad16x32/; 1540 1541 add_proto qw/unsigned int vp9_high_sad32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1542 specialize qw/vp9_high_sad32x32/; 1543 1544 add_proto qw/unsigned int vp9_high_sad16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1545 specialize qw/vp9_high_sad16x16/; 1546 1547 add_proto qw/unsigned int vp9_high_sad16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1548 specialize qw/vp9_high_sad16x8/; 1549 1550 add_proto qw/unsigned int vp9_high_sad8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1551 specialize qw/vp9_high_sad8x16/; 1552 1553 add_proto qw/unsigned int vp9_high_sad8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1554 specialize qw/vp9_high_sad8x8/; 1555 1556 add_proto qw/unsigned int vp9_high_sad8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1557 specialize qw/vp9_high_sad8x4/; 1558 1559 add_proto qw/unsigned int vp9_high_sad4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1560 specialize qw/vp9_high_sad4x8/; 1561 1562 add_proto qw/unsigned int vp9_high_sad4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride"; 1563 specialize qw/vp9_high_sad4x4/; 1564 1565 add_proto qw/unsigned int vp9_high_sad64x64_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1566 specialize qw/vp9_high_sad64x64_avg/; 1567 1568 add_proto qw/unsigned int vp9_high_sad32x64_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1569 specialize qw/vp9_high_sad32x64_avg/; 1570 1571 add_proto qw/unsigned int vp9_high_sad64x32_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1572 specialize qw/vp9_high_sad64x32_avg/; 1573 1574 add_proto qw/unsigned int vp9_high_sad32x16_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1575 specialize qw/vp9_high_sad32x16_avg/; 1576 1577 add_proto qw/unsigned int vp9_high_sad16x32_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1578 specialize qw/vp9_high_sad16x32_avg/; 1579 1580 add_proto qw/unsigned int vp9_high_sad32x32_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1581 specialize qw/vp9_high_sad32x32_avg/; 1582 1583 add_proto qw/unsigned int vp9_high_sad16x16_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1584 specialize qw/vp9_high_sad16x16_avg/; 1585 1586 add_proto qw/unsigned int vp9_high_sad16x8_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1587 specialize qw/vp9_high_sad16x8_avg/; 1588 1589 add_proto qw/unsigned int vp9_high_sad8x16_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1590 specialize qw/vp9_high_sad8x16_avg/; 1591 1592 add_proto qw/unsigned int vp9_high_sad8x8_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1593 specialize qw/vp9_high_sad8x8_avg/; 1594 1595 add_proto qw/unsigned int vp9_high_sad8x4_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1596 specialize qw/vp9_high_sad8x4_avg/; 1597 1598 add_proto qw/unsigned int vp9_high_sad4x8_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1599 specialize qw/vp9_high_sad4x8_avg/; 1600 1601 add_proto qw/unsigned int vp9_high_sad4x4_avg/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1602 specialize qw/vp9_high_sad4x4_avg/; 1603 1604 add_proto qw/void vp9_high_sad64x64x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 1605 specialize qw/vp9_high_sad64x64x3/; 1606 1607 add_proto qw/void vp9_high_sad32x32x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 1608 specialize qw/vp9_high_sad32x32x3/; 1609 1610 add_proto qw/void vp9_high_sad16x16x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 1611 specialize qw/vp9_high_sad16x16x3/; 1612 1613 add_proto qw/void vp9_high_sad16x8x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 1614 specialize qw/vp9_high_sad16x8x3/; 1615 1616 add_proto qw/void vp9_high_sad8x16x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 1617 specialize qw/vp9_high_sad8x16x3/; 1618 1619 add_proto qw/void vp9_high_sad8x8x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 1620 specialize qw/vp9_high_sad8x8x3/; 1621 1622 add_proto qw/void vp9_high_sad4x4x3/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; 1623 specialize qw/vp9_high_sad4x4x3/; 1624 1625 add_proto qw/void vp9_high_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1626 specialize qw/vp9_high_sad64x64x8/; 1627 1628 add_proto qw/void vp9_high_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1629 specialize qw/vp9_high_sad32x32x8/; 1630 1631 add_proto qw/void vp9_high_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1632 specialize qw/vp9_high_sad16x16x8/; 1633 1634 add_proto qw/void vp9_high_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1635 specialize qw/vp9_high_sad16x8x8/; 1636 1637 add_proto qw/void vp9_high_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1638 specialize qw/vp9_high_sad8x16x8/; 1639 1640 add_proto qw/void vp9_high_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1641 specialize qw/vp9_high_sad8x8x8/; 1642 1643 add_proto qw/void vp9_high_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1644 specialize qw/vp9_high_sad8x4x8/; 1645 1646 add_proto qw/void vp9_high_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1647 specialize qw/vp9_high_sad4x8x8/; 1648 1649 add_proto qw/void vp9_high_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1650 specialize qw/vp9_high_sad4x4x8/; 1651 1652 add_proto qw/void vp9_high_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1653 specialize qw/vp9_high_sad64x64x4d/; 1654 1655 add_proto qw/void vp9_high_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1656 specialize qw/vp9_high_sad32x64x4d/; 1657 1658 add_proto qw/void vp9_high_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1659 specialize qw/vp9_high_sad64x32x4d/; 1660 1661 add_proto qw/void vp9_high_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1662 specialize qw/vp9_high_sad32x16x4d/; 1663 1664 add_proto qw/void vp9_high_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1665 specialize qw/vp9_high_sad16x32x4d/; 1666 1667 add_proto qw/void vp9_high_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1668 specialize qw/vp9_high_sad32x32x4d/; 1669 1670 add_proto qw/void vp9_high_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1671 specialize qw/vp9_high_sad16x16x4d/; 1672 1673 add_proto qw/void vp9_high_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1674 specialize qw/vp9_high_sad16x8x4d/; 1675 1676 add_proto qw/void vp9_high_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1677 specialize qw/vp9_high_sad8x16x4d/; 1678 1679 add_proto qw/void vp9_high_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1680 specialize qw/vp9_high_sad8x8x4d/; 1681 1682 # TODO(jingning): need to convert these 4x8/8x4 functions into sse2 form 1683 add_proto qw/void vp9_high_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1684 specialize qw/vp9_high_sad8x4x4d/; 1685 1686 add_proto qw/void vp9_high_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1687 specialize qw/vp9_high_sad4x8x4d/; 1688 1689 add_proto qw/void vp9_high_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; 1690 specialize qw/vp9_high_sad4x4x4d/; 1691 1692 add_proto qw/unsigned int vp9_high_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1693 specialize qw/vp9_high_mse16x16/; 1694 1695 add_proto qw/unsigned int vp9_high_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1696 specialize qw/vp9_high_mse8x16/; 1697 1698 add_proto qw/unsigned int vp9_high_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1699 specialize qw/vp9_high_mse16x8/; 1700 1701 add_proto qw/unsigned int vp9_high_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1702 specialize qw/vp9_high_mse8x8/; 1703 1704 add_proto qw/unsigned int vp9_high_10_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1705 specialize qw/vp9_high_10_mse16x16/; 1706 1707 add_proto qw/unsigned int vp9_high_10_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1708 specialize qw/vp9_high_10_mse8x16/; 1709 1710 add_proto qw/unsigned int vp9_high_10_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1711 specialize qw/vp9_high_10_mse16x8/; 1712 1713 add_proto qw/unsigned int vp9_high_10_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1714 specialize qw/vp9_high_10_mse8x8/; 1715 1716 add_proto qw/unsigned int vp9_high_12_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1717 specialize qw/vp9_high_12_mse16x16/; 1718 1719 add_proto qw/unsigned int vp9_high_12_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1720 specialize qw/vp9_high_12_mse8x16/; 1721 1722 add_proto qw/unsigned int vp9_high_12_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1723 specialize qw/vp9_high_12_mse16x8/; 1724 1725 add_proto qw/unsigned int vp9_high_12_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1726 specialize qw/vp9_high_12_mse8x8/; 1727 1728 # ENCODEMB INVOKE 1729 1730 add_proto qw/int64_t vp9_high_block_error/, "const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz, int bd"; 1731 specialize qw/vp9_high_block_error/; 1732 1733 add_proto qw/void vp9_high_subtract_block/, "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, int bd"; 1734 specialize qw/vp9_high_subtract_block/; 1735 1736 add_proto qw/void vp9_high_quantize_fp/, "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"; 1737 specialize qw/vp9_high_quantize_fp/; 1738 1739 add_proto qw/void vp9_high_quantize_fp_32x32/, "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"; 1740 specialize qw/vp9_high_quantize_fp_32x32/; 1741 1742 add_proto qw/void vp9_high_quantize_b/, "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"; 1743 specialize qw/vp9_high_quantize_b/; 1744 1745 add_proto qw/void vp9_high_quantize_b_32x32/, "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"; 1746 specialize qw/vp9_high_quantize_b_32x32/; 1747 1748 # 1749 # Structured Similarity (SSIM) 1750 # 1751 if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { 1752 add_proto qw/void vp9_high_ssim_parms_8x8/, "uint16_t *s, int sp, uint16_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr"; 1753 specialize qw/vp9_high_ssim_parms_8x8/; 1754 1755 add_proto qw/void vp9_high_ssim_parms_8x8_shift/, "uint16_t *s, int sp, uint16_t *r, int rp, uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s, uint32_t *sum_sq_r, uint32_t *sum_sxr, unsigned int bd, unsigned int shift"; 1756 specialize qw/vp9_high_ssim_parms_8x8_shift/; 1757 } 1758 1759 # fdct functions 1760 add_proto qw/void vp9_high_fht4x4/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1761 specialize qw/vp9_high_fht4x4/; 1762 1763 add_proto qw/void vp9_high_fht8x8/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1764 specialize qw/vp9_high_fht8x8/; 1765 1766 add_proto qw/void vp9_high_fht16x16/, "const int16_t *input, tran_low_t *output, int stride, int tx_type"; 1767 specialize qw/vp9_high_fht16x16/; 1768 1769 add_proto qw/void vp9_high_fwht4x4/, "const int16_t *input, tran_low_t *output, int stride"; 1770 specialize qw/vp9_high_fwht4x4/; 1771 1772 add_proto qw/void vp9_high_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 1773 specialize qw/vp9_high_fdct4x4/; 1774 1775 add_proto qw/void vp9_high_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 1776 specialize qw/vp9_high_fdct8x8_1/; 1777 1778 add_proto qw/void vp9_high_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 1779 specialize qw/vp9_high_fdct8x8/; 1780 1781 add_proto qw/void vp9_high_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 1782 specialize qw/vp9_high_fdct16x16_1/; 1783 1784 add_proto qw/void vp9_high_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 1785 specialize qw/vp9_high_fdct16x16/; 1786 1787 add_proto qw/void vp9_high_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 1788 specialize qw/vp9_high_fdct32x32_1/; 1789 1790 add_proto qw/void vp9_high_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 1791 specialize qw/vp9_high_fdct32x32/; 1792 1793 add_proto qw/void vp9_high_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 1794 specialize qw/vp9_high_fdct32x32_rd/; 1795 1796 add_proto qw/void vp9_high_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"; 1797 specialize qw/vp9_high_temporal_filter_apply/; 1798 1799} 1800# End vp9_high encoder functions 1801 1802} 1803# end encoder functions 18041; 1805