1sub vpx_dsp_forward_decls() { 2print <<EOF 3/* 4 * DSP 5 */ 6 7#include "vpx/vpx_integer.h" 8#include "vpx_dsp/vpx_dsp_common.h" 9 10EOF 11} 12forward_decls qw/vpx_dsp_forward_decls/; 13 14# x86inc.asm had specific constraints. break it out so it's easy to disable. 15# zero all the variables to avoid tricky else conditions. 16$mmx_x86inc = $sse_x86inc = $sse2_x86inc = $ssse3_x86inc = $avx_x86inc = 17 $avx2_x86inc = ''; 18$mmx_x86_64_x86inc = $sse_x86_64_x86inc = $sse2_x86_64_x86inc = 19 $ssse3_x86_64_x86inc = $avx_x86_64_x86inc = $avx2_x86_64_x86inc = ''; 20if (vpx_config("CONFIG_USE_X86INC") eq "yes") { 21 $mmx_x86inc = 'mmx'; 22 $sse_x86inc = 'sse'; 23 $sse2_x86inc = 'sse2'; 24 $ssse3_x86inc = 'ssse3'; 25 $avx_x86inc = 'avx'; 26 $avx2_x86inc = 'avx2'; 27 if ($opts{arch} eq "x86_64") { 28 $mmx_x86_64_x86inc = 'mmx'; 29 $sse_x86_64_x86inc = 'sse'; 30 $sse2_x86_64_x86inc = 'sse2'; 31 $ssse3_x86_64_x86inc = 'ssse3'; 32 $avx_x86_64_x86inc = 'avx'; 33 $avx2_x86_64_x86inc = 'avx2'; 34 } 35} 36 37# optimizations which depend on multiple features 38$avx2_ssse3 = ''; 39if ((vpx_config("HAVE_AVX2") eq "yes") && (vpx_config("HAVE_SSSE3") eq "yes")) { 40 $avx2_ssse3 = 'avx2'; 41} 42 43# functions that are 64 bit only. 44$mmx_x86_64 = $sse2_x86_64 = $ssse3_x86_64 = $avx_x86_64 = $avx2_x86_64 = ''; 45if ($opts{arch} eq "x86_64") { 46 $mmx_x86_64 = 'mmx'; 47 $sse2_x86_64 = 'sse2'; 48 $ssse3_x86_64 = 'ssse3'; 49 $avx_x86_64 = 'avx'; 50 $avx2_x86_64 = 'avx2'; 51} 52 53# 54# Intra prediction 55# 56 57add_proto qw/void vpx_d207_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 58specialize qw/vpx_d207_predictor_4x4/, "$ssse3_x86inc"; 59 60add_proto qw/void vpx_d207e_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 61specialize qw/vpx_d207e_predictor_4x4/; 62 63add_proto qw/void vpx_d45_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 64specialize qw/vpx_d45_predictor_4x4 neon/, "$ssse3_x86inc"; 65 66add_proto qw/void vpx_d45e_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 67specialize qw/vpx_d45e_predictor_4x4/; 68 69add_proto qw/void vpx_d63_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 70specialize qw/vpx_d63_predictor_4x4/, "$ssse3_x86inc"; 71 72add_proto qw/void vpx_d63e_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 73specialize qw/vpx_d63e_predictor_4x4/; 74 75add_proto qw/void vpx_d63f_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 76specialize qw/vpx_d63f_predictor_4x4/; 77 78add_proto qw/void vpx_h_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 79specialize qw/vpx_h_predictor_4x4 neon dspr2 msa/, "$ssse3_x86inc"; 80 81add_proto qw/void vpx_he_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 82specialize qw/vpx_he_predictor_4x4/; 83 84add_proto qw/void vpx_d117_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 85specialize qw/vpx_d117_predictor_4x4/; 86 87add_proto qw/void vpx_d135_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 88specialize qw/vpx_d135_predictor_4x4 neon/; 89 90add_proto qw/void vpx_d153_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 91specialize qw/vpx_d153_predictor_4x4/, "$ssse3_x86inc"; 92 93add_proto qw/void vpx_v_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 94specialize qw/vpx_v_predictor_4x4 neon msa/, "$sse_x86inc"; 95 96add_proto qw/void vpx_ve_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 97specialize qw/vpx_ve_predictor_4x4/; 98 99add_proto qw/void vpx_tm_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 100specialize qw/vpx_tm_predictor_4x4 neon dspr2 msa/, "$sse_x86inc"; 101 102add_proto qw/void vpx_dc_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 103specialize qw/vpx_dc_predictor_4x4 dspr2 msa neon/, "$sse_x86inc"; 104 105add_proto qw/void vpx_dc_top_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 106specialize qw/vpx_dc_top_predictor_4x4 msa neon/, "$sse_x86inc"; 107 108add_proto qw/void vpx_dc_left_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 109specialize qw/vpx_dc_left_predictor_4x4 msa neon/, "$sse_x86inc"; 110 111add_proto qw/void vpx_dc_128_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 112specialize qw/vpx_dc_128_predictor_4x4 msa neon/, "$sse_x86inc"; 113 114add_proto qw/void vpx_d207_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 115specialize qw/vpx_d207_predictor_8x8/, "$ssse3_x86inc"; 116 117add_proto qw/void vpx_d207e_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 118specialize qw/vpx_d207e_predictor_8x8/; 119 120add_proto qw/void vpx_d45_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 121specialize qw/vpx_d45_predictor_8x8 neon/, "$ssse3_x86inc"; 122 123add_proto qw/void vpx_d45e_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 124specialize qw/vpx_d45e_predictor_8x8/; 125 126add_proto qw/void vpx_d63_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 127specialize qw/vpx_d63_predictor_8x8/, "$ssse3_x86inc"; 128 129add_proto qw/void vpx_d63e_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 130specialize qw/vpx_d63e_predictor_8x8/; 131 132add_proto qw/void vpx_h_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 133specialize qw/vpx_h_predictor_8x8 neon dspr2 msa/, "$ssse3_x86inc"; 134 135add_proto qw/void vpx_d117_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 136specialize qw/vpx_d117_predictor_8x8/; 137 138add_proto qw/void vpx_d135_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 139specialize qw/vpx_d135_predictor_8x8/; 140 141add_proto qw/void vpx_d153_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 142specialize qw/vpx_d153_predictor_8x8/, "$ssse3_x86inc"; 143 144add_proto qw/void vpx_v_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 145specialize qw/vpx_v_predictor_8x8 neon msa/, "$sse_x86inc"; 146 147add_proto qw/void vpx_tm_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 148specialize qw/vpx_tm_predictor_8x8 neon dspr2 msa/, "$sse2_x86inc"; 149 150add_proto qw/void vpx_dc_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 151specialize qw/vpx_dc_predictor_8x8 dspr2 neon msa/, "$sse_x86inc"; 152 153add_proto qw/void vpx_dc_top_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 154specialize qw/vpx_dc_top_predictor_8x8 neon msa/, "$sse_x86inc"; 155 156add_proto qw/void vpx_dc_left_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 157specialize qw/vpx_dc_left_predictor_8x8 neon msa/, "$sse_x86inc"; 158 159add_proto qw/void vpx_dc_128_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 160specialize qw/vpx_dc_128_predictor_8x8 neon msa/, "$sse_x86inc"; 161 162add_proto qw/void vpx_d207_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 163specialize qw/vpx_d207_predictor_16x16/, "$ssse3_x86inc"; 164 165add_proto qw/void vpx_d207e_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 166specialize qw/vpx_d207e_predictor_16x16/; 167 168add_proto qw/void vpx_d45_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 169specialize qw/vpx_d45_predictor_16x16 neon/, "$ssse3_x86inc"; 170 171add_proto qw/void vpx_d45e_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 172specialize qw/vpx_d45e_predictor_16x16/; 173 174add_proto qw/void vpx_d63_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 175specialize qw/vpx_d63_predictor_16x16/, "$ssse3_x86inc"; 176 177add_proto qw/void vpx_d63e_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 178specialize qw/vpx_d63e_predictor_16x16/; 179 180add_proto qw/void vpx_h_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 181specialize qw/vpx_h_predictor_16x16 neon dspr2 msa/, "$ssse3_x86inc"; 182 183add_proto qw/void vpx_d117_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 184specialize qw/vpx_d117_predictor_16x16/; 185 186add_proto qw/void vpx_d135_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 187specialize qw/vpx_d135_predictor_16x16/; 188 189add_proto qw/void vpx_d153_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 190specialize qw/vpx_d153_predictor_16x16/, "$ssse3_x86inc"; 191 192add_proto qw/void vpx_v_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 193specialize qw/vpx_v_predictor_16x16 neon msa/, "$sse2_x86inc"; 194 195add_proto qw/void vpx_tm_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 196specialize qw/vpx_tm_predictor_16x16 neon msa/, "$sse2_x86inc"; 197 198add_proto qw/void vpx_dc_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 199specialize qw/vpx_dc_predictor_16x16 dspr2 neon msa/, "$sse2_x86inc"; 200 201add_proto qw/void vpx_dc_top_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 202specialize qw/vpx_dc_top_predictor_16x16 neon msa/, "$sse2_x86inc"; 203 204add_proto qw/void vpx_dc_left_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 205specialize qw/vpx_dc_left_predictor_16x16 neon msa/, "$sse2_x86inc"; 206 207add_proto qw/void vpx_dc_128_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 208specialize qw/vpx_dc_128_predictor_16x16 neon msa/, "$sse2_x86inc"; 209 210add_proto qw/void vpx_d207_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 211specialize qw/vpx_d207_predictor_32x32/, "$ssse3_x86inc"; 212 213add_proto qw/void vpx_d207e_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 214specialize qw/vpx_d207e_predictor_32x32/; 215 216add_proto qw/void vpx_d45_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 217specialize qw/vpx_d45_predictor_32x32/, "$ssse3_x86inc"; 218 219add_proto qw/void vpx_d45e_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 220specialize qw/vpx_d45e_predictor_32x32/; 221 222add_proto qw/void vpx_d63_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 223specialize qw/vpx_d63_predictor_32x32/, "$ssse3_x86inc"; 224 225add_proto qw/void vpx_d63e_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 226specialize qw/vpx_d63e_predictor_32x32/; 227 228add_proto qw/void vpx_h_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 229specialize qw/vpx_h_predictor_32x32 neon msa/, "$ssse3_x86inc"; 230 231add_proto qw/void vpx_d117_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 232specialize qw/vpx_d117_predictor_32x32/; 233 234add_proto qw/void vpx_d135_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 235specialize qw/vpx_d135_predictor_32x32/; 236 237add_proto qw/void vpx_d153_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 238specialize qw/vpx_d153_predictor_32x32/, "$ssse3_x86inc"; 239 240add_proto qw/void vpx_v_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 241specialize qw/vpx_v_predictor_32x32 neon msa/, "$sse2_x86inc"; 242 243add_proto qw/void vpx_tm_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 244specialize qw/vpx_tm_predictor_32x32 neon msa/, "$sse2_x86_64_x86inc"; 245 246add_proto qw/void vpx_dc_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 247specialize qw/vpx_dc_predictor_32x32 msa neon/, "$sse2_x86inc"; 248 249add_proto qw/void vpx_dc_top_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 250specialize qw/vpx_dc_top_predictor_32x32 msa neon/, "$sse2_x86inc"; 251 252add_proto qw/void vpx_dc_left_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 253specialize qw/vpx_dc_left_predictor_32x32 msa neon/, "$sse2_x86inc"; 254 255add_proto qw/void vpx_dc_128_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left"; 256specialize qw/vpx_dc_128_predictor_32x32 msa neon/, "$sse2_x86inc"; 257 258# High bitdepth functions 259if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 260 add_proto qw/void vpx_highbd_d207_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 261 specialize qw/vpx_highbd_d207_predictor_4x4/; 262 263 add_proto qw/void vpx_highbd_d207e_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 264 specialize qw/vpx_highbd_d207e_predictor_4x4/; 265 266 add_proto qw/void vpx_highbd_d45_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 267 specialize qw/vpx_highbd_d45_predictor_4x4/; 268 269 add_proto qw/void vpx_highbd_d45e_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 270 specialize qw/vpx_highbd_d45e_predictor_4x4/; 271 272 add_proto qw/void vpx_highbd_d63_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 273 specialize qw/vpx_highbd_d63_predictor_4x4/; 274 275 add_proto qw/void vpx_highbd_d63e_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 276 specialize qw/vpx_highbd_d63e_predictor_4x4/; 277 278 add_proto qw/void vpx_highbd_h_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 279 specialize qw/vpx_highbd_h_predictor_4x4/; 280 281 add_proto qw/void vpx_highbd_d117_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 282 specialize qw/vpx_highbd_d117_predictor_4x4/; 283 284 add_proto qw/void vpx_highbd_d135_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 285 specialize qw/vpx_highbd_d135_predictor_4x4/; 286 287 add_proto qw/void vpx_highbd_d153_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 288 specialize qw/vpx_highbd_d153_predictor_4x4/; 289 290 add_proto qw/void vpx_highbd_v_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 291 specialize qw/vpx_highbd_v_predictor_4x4/, "$sse_x86inc"; 292 293 add_proto qw/void vpx_highbd_tm_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 294 specialize qw/vpx_highbd_tm_predictor_4x4/, "$sse_x86inc"; 295 296 add_proto qw/void vpx_highbd_dc_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 297 specialize qw/vpx_highbd_dc_predictor_4x4/, "$sse_x86inc"; 298 299 add_proto qw/void vpx_highbd_dc_top_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 300 specialize qw/vpx_highbd_dc_top_predictor_4x4/; 301 302 add_proto qw/void vpx_highbd_dc_left_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 303 specialize qw/vpx_highbd_dc_left_predictor_4x4/; 304 305 add_proto qw/void vpx_highbd_dc_128_predictor_4x4/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 306 specialize qw/vpx_highbd_dc_128_predictor_4x4/; 307 308 add_proto qw/void vpx_highbd_d207_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 309 specialize qw/vpx_highbd_d207_predictor_8x8/; 310 311 add_proto qw/void vpx_highbd_d207e_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 312 specialize qw/vpx_highbd_d207e_predictor_8x8/; 313 314 add_proto qw/void vpx_highbd_d45_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 315 specialize qw/vpx_highbd_d45_predictor_8x8/; 316 317 add_proto qw/void vpx_highbd_d45e_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 318 specialize qw/vpx_highbd_d45e_predictor_8x8/; 319 320 add_proto qw/void vpx_highbd_d63_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 321 specialize qw/vpx_highbd_d63_predictor_8x8/; 322 323 add_proto qw/void vpx_highbd_d63e_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 324 specialize qw/vpx_highbd_d63e_predictor_8x8/; 325 326 add_proto qw/void vpx_highbd_h_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 327 specialize qw/vpx_highbd_h_predictor_8x8/; 328 329 add_proto qw/void vpx_highbd_d117_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 330 specialize qw/vpx_highbd_d117_predictor_8x8/; 331 332 add_proto qw/void vpx_highbd_d135_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 333 specialize qw/vpx_highbd_d135_predictor_8x8/; 334 335 add_proto qw/void vpx_highbd_d153_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 336 specialize qw/vpx_highbd_d153_predictor_8x8/; 337 338 add_proto qw/void vpx_highbd_v_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 339 specialize qw/vpx_highbd_v_predictor_8x8/, "$sse2_x86inc"; 340 341 add_proto qw/void vpx_highbd_tm_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 342 specialize qw/vpx_highbd_tm_predictor_8x8/, "$sse2_x86inc"; 343 344 add_proto qw/void vpx_highbd_dc_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 345 specialize qw/vpx_highbd_dc_predictor_8x8/, "$sse2_x86inc";; 346 347 add_proto qw/void vpx_highbd_dc_top_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 348 specialize qw/vpx_highbd_dc_top_predictor_8x8/; 349 350 add_proto qw/void vpx_highbd_dc_left_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 351 specialize qw/vpx_highbd_dc_left_predictor_8x8/; 352 353 add_proto qw/void vpx_highbd_dc_128_predictor_8x8/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 354 specialize qw/vpx_highbd_dc_128_predictor_8x8/; 355 356 add_proto qw/void vpx_highbd_d207_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 357 specialize qw/vpx_highbd_d207_predictor_16x16/; 358 359 add_proto qw/void vpx_highbd_d207e_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 360 specialize qw/vpx_highbd_d207e_predictor_16x16/; 361 362 add_proto qw/void vpx_highbd_d45_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 363 specialize qw/vpx_highbd_d45_predictor_16x16/; 364 365 add_proto qw/void vpx_highbd_d45e_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 366 specialize qw/vpx_highbd_d45e_predictor_16x16/; 367 368 add_proto qw/void vpx_highbd_d63_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 369 specialize qw/vpx_highbd_d63_predictor_16x16/; 370 371 add_proto qw/void vpx_highbd_d63e_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 372 specialize qw/vpx_highbd_d63e_predictor_16x16/; 373 374 add_proto qw/void vpx_highbd_h_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 375 specialize qw/vpx_highbd_h_predictor_16x16/; 376 377 add_proto qw/void vpx_highbd_d117_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 378 specialize qw/vpx_highbd_d117_predictor_16x16/; 379 380 add_proto qw/void vpx_highbd_d135_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 381 specialize qw/vpx_highbd_d135_predictor_16x16/; 382 383 add_proto qw/void vpx_highbd_d153_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 384 specialize qw/vpx_highbd_d153_predictor_16x16/; 385 386 add_proto qw/void vpx_highbd_v_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 387 specialize qw/vpx_highbd_v_predictor_16x16/, "$sse2_x86inc"; 388 389 add_proto qw/void vpx_highbd_tm_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 390 specialize qw/vpx_highbd_tm_predictor_16x16/, "$sse2_x86_64_x86inc"; 391 392 add_proto qw/void vpx_highbd_dc_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 393 specialize qw/vpx_highbd_dc_predictor_16x16/, "$sse2_x86inc"; 394 395 add_proto qw/void vpx_highbd_dc_top_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 396 specialize qw/vpx_highbd_dc_top_predictor_16x16/; 397 398 add_proto qw/void vpx_highbd_dc_left_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 399 specialize qw/vpx_highbd_dc_left_predictor_16x16/; 400 401 add_proto qw/void vpx_highbd_dc_128_predictor_16x16/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 402 specialize qw/vpx_highbd_dc_128_predictor_16x16/; 403 404 add_proto qw/void vpx_highbd_d207_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 405 specialize qw/vpx_highbd_d207_predictor_32x32/; 406 407 add_proto qw/void vpx_highbd_d207e_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 408 specialize qw/vpx_highbd_d207e_predictor_32x32/; 409 410 add_proto qw/void vpx_highbd_d45_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 411 specialize qw/vpx_highbd_d45_predictor_32x32/; 412 413 add_proto qw/void vpx_highbd_d45e_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 414 specialize qw/vpx_highbd_d45e_predictor_32x32/; 415 416 add_proto qw/void vpx_highbd_d63_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 417 specialize qw/vpx_highbd_d63_predictor_32x32/; 418 419 add_proto qw/void vpx_highbd_d63e_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 420 specialize qw/vpx_highbd_d63e_predictor_32x32/; 421 422 add_proto qw/void vpx_highbd_h_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 423 specialize qw/vpx_highbd_h_predictor_32x32/; 424 425 add_proto qw/void vpx_highbd_d117_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 426 specialize qw/vpx_highbd_d117_predictor_32x32/; 427 428 add_proto qw/void vpx_highbd_d135_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 429 specialize qw/vpx_highbd_d135_predictor_32x32/; 430 431 add_proto qw/void vpx_highbd_d153_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 432 specialize qw/vpx_highbd_d153_predictor_32x32/; 433 434 add_proto qw/void vpx_highbd_v_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 435 specialize qw/vpx_highbd_v_predictor_32x32/, "$sse2_x86inc"; 436 437 add_proto qw/void vpx_highbd_tm_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 438 specialize qw/vpx_highbd_tm_predictor_32x32/, "$sse2_x86_64_x86inc"; 439 440 add_proto qw/void vpx_highbd_dc_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 441 specialize qw/vpx_highbd_dc_predictor_32x32/, "$sse2_x86_64_x86inc"; 442 443 add_proto qw/void vpx_highbd_dc_top_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 444 specialize qw/vpx_highbd_dc_top_predictor_32x32/; 445 446 add_proto qw/void vpx_highbd_dc_left_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 447 specialize qw/vpx_highbd_dc_left_predictor_32x32/; 448 449 add_proto qw/void vpx_highbd_dc_128_predictor_32x32/, "uint16_t *dst, ptrdiff_t y_stride, const uint16_t *above, const uint16_t *left, int bd"; 450 specialize qw/vpx_highbd_dc_128_predictor_32x32/; 451} # CONFIG_VP9_HIGHBITDEPTH 452 453# 454# Sub Pixel Filters 455# 456add_proto qw/void vpx_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"; 457specialize qw/vpx_convolve_copy neon dspr2 msa/, "$sse2_x86inc"; 458 459add_proto qw/void vpx_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"; 460specialize qw/vpx_convolve_avg neon dspr2 msa/, "$sse2_x86inc"; 461 462add_proto qw/void vpx_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"; 463specialize qw/vpx_convolve8 sse2 ssse3 neon dspr2 msa/, "$avx2_ssse3"; 464 465add_proto qw/void vpx_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"; 466specialize qw/vpx_convolve8_horiz sse2 ssse3 neon dspr2 msa/, "$avx2_ssse3"; 467 468add_proto qw/void vpx_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"; 469specialize qw/vpx_convolve8_vert sse2 ssse3 neon dspr2 msa/, "$avx2_ssse3"; 470 471add_proto qw/void vpx_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"; 472specialize qw/vpx_convolve8_avg sse2 ssse3 neon dspr2 msa/; 473 474add_proto qw/void vpx_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"; 475specialize qw/vpx_convolve8_avg_horiz sse2 ssse3 neon dspr2 msa/; 476 477add_proto qw/void vpx_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"; 478specialize qw/vpx_convolve8_avg_vert sse2 ssse3 neon dspr2 msa/; 479 480add_proto qw/void vpx_scaled_2d/, "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"; 481specialize qw/vpx_scaled_2d ssse3/; 482 483add_proto qw/void vpx_scaled_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"; 484specialize qw/vpx_scaled_horiz/; 485 486add_proto qw/void vpx_scaled_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"; 487specialize qw/vpx_scaled_vert/; 488 489add_proto qw/void vpx_scaled_avg_2d/, "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"; 490specialize qw/vpx_scaled_avg_2d/; 491 492add_proto qw/void vpx_scaled_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"; 493specialize qw/vpx_scaled_avg_horiz/; 494 495add_proto qw/void vpx_scaled_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"; 496specialize qw/vpx_scaled_avg_vert/; 497 498if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 499 # 500 # Sub Pixel Filters 501 # 502 add_proto qw/void vpx_highbd_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"; 503 specialize qw/vpx_highbd_convolve_copy/, "$sse2_x86inc"; 504 505 add_proto qw/void vpx_highbd_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"; 506 specialize qw/vpx_highbd_convolve_avg/, "$sse2_x86inc"; 507 508 add_proto qw/void vpx_highbd_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"; 509 specialize qw/vpx_highbd_convolve8/, "$sse2_x86_64"; 510 511 add_proto qw/void vpx_highbd_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"; 512 specialize qw/vpx_highbd_convolve8_horiz/, "$sse2_x86_64"; 513 514 add_proto qw/void vpx_highbd_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"; 515 specialize qw/vpx_highbd_convolve8_vert/, "$sse2_x86_64"; 516 517 add_proto qw/void vpx_highbd_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"; 518 specialize qw/vpx_highbd_convolve8_avg/, "$sse2_x86_64"; 519 520 add_proto qw/void vpx_highbd_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"; 521 specialize qw/vpx_highbd_convolve8_avg_horiz/, "$sse2_x86_64"; 522 523 add_proto qw/void vpx_highbd_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"; 524 specialize qw/vpx_highbd_convolve8_avg_vert/, "$sse2_x86_64"; 525} # CONFIG_VP9_HIGHBITDEPTH 526 527# 528# Loopfilter 529# 530add_proto qw/void vpx_lpf_vertical_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"; 531specialize qw/vpx_lpf_vertical_16 sse2 neon_asm dspr2 msa/; 532$vpx_lpf_vertical_16_neon_asm=vpx_lpf_vertical_16_neon; 533 534add_proto qw/void vpx_lpf_vertical_16_dual/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh"; 535specialize qw/vpx_lpf_vertical_16_dual sse2 neon_asm dspr2 msa/; 536$vpx_lpf_vertical_16_dual_neon_asm=vpx_lpf_vertical_16_dual_neon; 537 538add_proto qw/void vpx_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 539specialize qw/vpx_lpf_vertical_8 sse2 neon dspr2 msa/; 540 541add_proto qw/void vpx_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"; 542specialize qw/vpx_lpf_vertical_8_dual sse2 neon_asm dspr2 msa/; 543$vpx_lpf_vertical_8_dual_neon_asm=vpx_lpf_vertical_8_dual_neon; 544 545add_proto qw/void vpx_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 546specialize qw/vpx_lpf_vertical_4 mmx neon dspr2 msa/; 547 548add_proto qw/void vpx_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"; 549specialize qw/vpx_lpf_vertical_4_dual sse2 neon dspr2 msa/; 550 551add_proto qw/void vpx_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 552specialize qw/vpx_lpf_horizontal_16 sse2 avx2 neon_asm dspr2 msa/; 553$vpx_lpf_horizontal_16_neon_asm=vpx_lpf_horizontal_16_neon; 554 555add_proto qw/void vpx_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 556specialize qw/vpx_lpf_horizontal_8 sse2 neon dspr2 msa/; 557 558add_proto qw/void vpx_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"; 559specialize qw/vpx_lpf_horizontal_8_dual sse2 neon_asm dspr2 msa/; 560$vpx_lpf_horizontal_8_dual_neon_asm=vpx_lpf_horizontal_8_dual_neon; 561 562add_proto qw/void vpx_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; 563specialize qw/vpx_lpf_horizontal_4 mmx neon dspr2 msa/; 564 565add_proto qw/void vpx_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"; 566specialize qw/vpx_lpf_horizontal_4_dual sse2 neon dspr2 msa/; 567 568if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 569 add_proto qw/void vpx_highbd_lpf_vertical_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd"; 570 specialize qw/vpx_highbd_lpf_vertical_16 sse2/; 571 572 add_proto qw/void vpx_highbd_lpf_vertical_16_dual/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int bd"; 573 specialize qw/vpx_highbd_lpf_vertical_16_dual sse2/; 574 575 add_proto qw/void vpx_highbd_lpf_vertical_8/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 576 specialize qw/vpx_highbd_lpf_vertical_8 sse2/; 577 578 add_proto qw/void vpx_highbd_lpf_vertical_8_dual/, "uint16_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, int bd"; 579 specialize qw/vpx_highbd_lpf_vertical_8_dual sse2/; 580 581 add_proto qw/void vpx_highbd_lpf_vertical_4/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 582 specialize qw/vpx_highbd_lpf_vertical_4 sse2/; 583 584 add_proto qw/void vpx_highbd_lpf_vertical_4_dual/, "uint16_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, int bd"; 585 specialize qw/vpx_highbd_lpf_vertical_4_dual sse2/; 586 587 add_proto qw/void vpx_highbd_lpf_horizontal_16/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 588 specialize qw/vpx_highbd_lpf_horizontal_16 sse2/; 589 590 add_proto qw/void vpx_highbd_lpf_horizontal_8/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 591 specialize qw/vpx_highbd_lpf_horizontal_8 sse2/; 592 593 add_proto qw/void vpx_highbd_lpf_horizontal_8_dual/, "uint16_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, int bd"; 594 specialize qw/vpx_highbd_lpf_horizontal_8_dual sse2/; 595 596 add_proto qw/void vpx_highbd_lpf_horizontal_4/, "uint16_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count, int bd"; 597 specialize qw/vpx_highbd_lpf_horizontal_4 sse2/; 598 599 add_proto qw/void vpx_highbd_lpf_horizontal_4_dual/, "uint16_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, int bd"; 600 specialize qw/vpx_highbd_lpf_horizontal_4_dual sse2/; 601} # CONFIG_VP9_HIGHBITDEPTH 602 603# 604# Encoder functions. 605# 606 607# 608# Forward transform 609# 610if ((vpx_config("CONFIG_VP9_ENCODER") eq "yes") || (vpx_config("CONFIG_VP10_ENCODER") eq "yes")) { 611if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 612 add_proto qw/void vpx_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 613 specialize qw/vpx_fdct4x4 sse2/; 614 615 add_proto qw/void vpx_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride"; 616 specialize qw/vpx_fdct4x4_1 sse2/; 617 618 add_proto qw/void vpx_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 619 specialize qw/vpx_fdct8x8 sse2/; 620 621 add_proto qw/void vpx_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 622 specialize qw/vpx_fdct8x8_1 sse2/; 623 624 add_proto qw/void vpx_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 625 specialize qw/vpx_fdct16x16 sse2/; 626 627 add_proto qw/void vpx_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 628 specialize qw/vpx_fdct16x16_1 sse2/; 629 630 add_proto qw/void vpx_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 631 specialize qw/vpx_fdct32x32 sse2/; 632 633 add_proto qw/void vpx_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 634 specialize qw/vpx_fdct32x32_rd sse2/; 635 636 add_proto qw/void vpx_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 637 specialize qw/vpx_fdct32x32_1 sse2/; 638 639 add_proto qw/void vpx_highbd_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 640 specialize qw/vpx_highbd_fdct4x4 sse2/; 641 642 add_proto qw/void vpx_highbd_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 643 specialize qw/vpx_highbd_fdct8x8 sse2/; 644 645 add_proto qw/void vpx_highbd_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 646 specialize qw/vpx_highbd_fdct8x8_1/; 647 648 add_proto qw/void vpx_highbd_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 649 specialize qw/vpx_highbd_fdct16x16 sse2/; 650 651 add_proto qw/void vpx_highbd_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 652 specialize qw/vpx_highbd_fdct16x16_1/; 653 654 add_proto qw/void vpx_highbd_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 655 specialize qw/vpx_highbd_fdct32x32 sse2/; 656 657 add_proto qw/void vpx_highbd_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 658 specialize qw/vpx_highbd_fdct32x32_rd sse2/; 659 660 add_proto qw/void vpx_highbd_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 661 specialize qw/vpx_highbd_fdct32x32_1/; 662} else { 663 add_proto qw/void vpx_fdct4x4/, "const int16_t *input, tran_low_t *output, int stride"; 664 specialize qw/vpx_fdct4x4 sse2 msa/; 665 666 add_proto qw/void vpx_fdct4x4_1/, "const int16_t *input, tran_low_t *output, int stride"; 667 specialize qw/vpx_fdct4x4_1 sse2/; 668 669 add_proto qw/void vpx_fdct8x8/, "const int16_t *input, tran_low_t *output, int stride"; 670 specialize qw/vpx_fdct8x8 sse2 neon msa/, "$ssse3_x86_64_x86inc"; 671 672 add_proto qw/void vpx_fdct8x8_1/, "const int16_t *input, tran_low_t *output, int stride"; 673 specialize qw/vpx_fdct8x8_1 sse2 neon msa/; 674 675 add_proto qw/void vpx_fdct16x16/, "const int16_t *input, tran_low_t *output, int stride"; 676 specialize qw/vpx_fdct16x16 sse2 msa/; 677 678 add_proto qw/void vpx_fdct16x16_1/, "const int16_t *input, tran_low_t *output, int stride"; 679 specialize qw/vpx_fdct16x16_1 sse2 msa/; 680 681 add_proto qw/void vpx_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; 682 specialize qw/vpx_fdct32x32 sse2 avx2 msa/; 683 684 add_proto qw/void vpx_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; 685 specialize qw/vpx_fdct32x32_rd sse2 avx2 msa/; 686 687 add_proto qw/void vpx_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; 688 specialize qw/vpx_fdct32x32_1 sse2 msa/; 689} # CONFIG_VP9_HIGHBITDEPTH 690} # CONFIG_VP9_ENCODER || CONFIG_VP10_ENCODER 691 692# 693# Inverse transform 694if ((vpx_config("CONFIG_VP9") eq "yes") || (vpx_config("CONFIG_VP10") eq "yes")) { 695if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 696 # Note as optimized versions of these functions are added we need to add a check to ensure 697 # that when CONFIG_EMULATE_HARDWARE is on, it defaults to the C versions only. 698 add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 699 specialize qw/vpx_iwht4x4_1_add/; 700 701 add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 702 specialize qw/vpx_iwht4x4_16_add/; 703 704 add_proto qw/void vpx_highbd_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 705 specialize qw/vpx_highbd_idct4x4_1_add/; 706 707 add_proto qw/void vpx_highbd_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 708 specialize qw/vpx_highbd_idct8x8_1_add/; 709 710 add_proto qw/void vpx_highbd_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 711 specialize qw/vpx_highbd_idct16x16_1_add/; 712 713 add_proto qw/void vpx_highbd_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 714 specialize qw/vpx_highbd_idct32x32_1024_add/; 715 716 add_proto qw/void vpx_highbd_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 717 specialize qw/vpx_highbd_idct32x32_34_add/; 718 719 add_proto qw/void vpx_highbd_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 720 specialize qw/vpx_highbd_idct32x32_1_add/; 721 722 add_proto qw/void vpx_highbd_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 723 specialize qw/vpx_highbd_iwht4x4_1_add/; 724 725 add_proto qw/void vpx_highbd_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 726 specialize qw/vpx_highbd_iwht4x4_16_add/; 727 728 # Force C versions if CONFIG_EMULATE_HARDWARE is 1 729 if (vpx_config("CONFIG_EMULATE_HARDWARE") eq "yes") { 730 add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 731 specialize qw/vpx_idct4x4_16_add/; 732 733 add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 734 specialize qw/vpx_idct4x4_1_add/; 735 736 add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 737 specialize qw/vpx_idct8x8_64_add/; 738 739 add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 740 specialize qw/vpx_idct8x8_12_add/; 741 742 add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 743 specialize qw/vpx_idct8x8_1_add/; 744 745 add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 746 specialize qw/vpx_idct16x16_256_add/; 747 748 add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 749 specialize qw/vpx_idct16x16_10_add/; 750 751 add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 752 specialize qw/vpx_idct16x16_1_add/; 753 754 add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 755 specialize qw/vpx_idct32x32_1024_add/; 756 757 add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 758 specialize qw/vpx_idct32x32_34_add/; 759 760 add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 761 specialize qw/vpx_idct32x32_1_add/; 762 763 add_proto qw/void vpx_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 764 specialize qw/vpx_highbd_idct4x4_16_add/; 765 766 add_proto qw/void vpx_highbd_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 767 specialize qw/vpx_highbd_idct8x8_64_add/; 768 769 add_proto qw/void vpx_highbd_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 770 specialize qw/vpx_highbd_idct8x8_10_add/; 771 772 add_proto qw/void vpx_highbd_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 773 specialize qw/vpx_highbd_idct16x16_256_add/; 774 775 add_proto qw/void vpx_highbd_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 776 specialize qw/vpx_highbd_idct16x16_10_add/; 777 } else { 778 add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 779 specialize qw/vpx_idct4x4_16_add sse2/; 780 781 add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 782 specialize qw/vpx_idct4x4_1_add sse2/; 783 784 add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 785 specialize qw/vpx_idct8x8_64_add sse2/; 786 787 add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 788 specialize qw/vpx_idct8x8_12_add sse2/; 789 790 add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 791 specialize qw/vpx_idct8x8_1_add sse2/; 792 793 add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 794 specialize qw/vpx_idct16x16_256_add sse2/; 795 796 add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 797 specialize qw/vpx_idct16x16_10_add sse2/; 798 799 add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 800 specialize qw/vpx_idct16x16_1_add sse2/; 801 802 add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 803 specialize qw/vpx_idct32x32_1024_add sse2/; 804 805 add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 806 specialize qw/vpx_idct32x32_34_add sse2/; 807 808 add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 809 specialize qw/vpx_idct32x32_1_add sse2/; 810 811 add_proto qw/void vpx_highbd_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 812 specialize qw/vpx_highbd_idct4x4_16_add sse2/; 813 814 add_proto qw/void vpx_highbd_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 815 specialize qw/vpx_highbd_idct8x8_64_add sse2/; 816 817 add_proto qw/void vpx_highbd_idct8x8_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 818 specialize qw/vpx_highbd_idct8x8_10_add sse2/; 819 820 add_proto qw/void vpx_highbd_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 821 specialize qw/vpx_highbd_idct16x16_256_add sse2/; 822 823 add_proto qw/void vpx_highbd_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride, int bd"; 824 specialize qw/vpx_highbd_idct16x16_10_add sse2/; 825 } # CONFIG_EMULATE_HARDWARE 826} else { 827 # Force C versions if CONFIG_EMULATE_HARDWARE is 1 828 if (vpx_config("CONFIG_EMULATE_HARDWARE") eq "yes") { 829 add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 830 specialize qw/vpx_idct4x4_1_add/; 831 832 add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 833 specialize qw/vpx_idct4x4_16_add/; 834 835 add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 836 specialize qw/vpx_idct8x8_1_add/; 837 838 add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 839 specialize qw/vpx_idct8x8_64_add/; 840 841 add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 842 specialize qw/vpx_idct8x8_12_add/; 843 844 add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 845 specialize qw/vpx_idct16x16_1_add/; 846 847 add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 848 specialize qw/vpx_idct16x16_256_add/; 849 850 add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 851 specialize qw/vpx_idct16x16_10_add/; 852 853 add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 854 specialize qw/vpx_idct32x32_1024_add/; 855 856 add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 857 specialize qw/vpx_idct32x32_34_add/; 858 859 add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 860 specialize qw/vpx_idct32x32_1_add/; 861 862 add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 863 specialize qw/vpx_iwht4x4_1_add/; 864 865 add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 866 specialize qw/vpx_iwht4x4_16_add/; 867 } else { 868 add_proto qw/void vpx_idct4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 869 specialize qw/vpx_idct4x4_1_add sse2 neon dspr2 msa/; 870 871 add_proto qw/void vpx_idct4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 872 specialize qw/vpx_idct4x4_16_add sse2 neon dspr2 msa/; 873 874 add_proto qw/void vpx_idct8x8_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 875 specialize qw/vpx_idct8x8_1_add sse2 neon dspr2 msa/; 876 877 add_proto qw/void vpx_idct8x8_64_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 878 specialize qw/vpx_idct8x8_64_add sse2 neon dspr2 msa/, "$ssse3_x86_64_x86inc"; 879 880 add_proto qw/void vpx_idct8x8_12_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 881 specialize qw/vpx_idct8x8_12_add sse2 neon dspr2 msa/, "$ssse3_x86_64_x86inc"; 882 883 add_proto qw/void vpx_idct16x16_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 884 specialize qw/vpx_idct16x16_1_add sse2 neon dspr2 msa/; 885 886 add_proto qw/void vpx_idct16x16_256_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 887 specialize qw/vpx_idct16x16_256_add sse2 neon dspr2 msa/; 888 889 add_proto qw/void vpx_idct16x16_10_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 890 specialize qw/vpx_idct16x16_10_add sse2 neon dspr2 msa/; 891 892 add_proto qw/void vpx_idct32x32_1024_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 893 specialize qw/vpx_idct32x32_1024_add sse2 neon dspr2 msa/; 894 895 add_proto qw/void vpx_idct32x32_34_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 896 specialize qw/vpx_idct32x32_34_add sse2 neon_asm dspr2 msa/; 897 # Need to add 34 eob idct32x32 neon implementation. 898 $vpx_idct32x32_34_add_neon_asm=vpx_idct32x32_1024_add_neon; 899 900 add_proto qw/void vpx_idct32x32_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 901 specialize qw/vpx_idct32x32_1_add sse2 neon dspr2 msa/; 902 903 add_proto qw/void vpx_iwht4x4_1_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 904 specialize qw/vpx_iwht4x4_1_add msa/; 905 906 add_proto qw/void vpx_iwht4x4_16_add/, "const tran_low_t *input, uint8_t *dest, int dest_stride"; 907 specialize qw/vpx_iwht4x4_16_add msa/, "$sse2_x86inc"; 908 } # CONFIG_EMULATE_HARDWARE 909} # CONFIG_VP9_HIGHBITDEPTH 910} # CONFIG_VP9 || CONFIG_VP10 911 912# 913# Quantization 914# 915if ((vpx_config("CONFIG_VP9_ENCODER") eq "yes") || (vpx_config("CONFIG_VP10_ENCODER") eq "yes")) { 916 add_proto qw/void vpx_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, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 917 specialize qw/vpx_quantize_b sse2/, "$ssse3_x86_64_x86inc", "$avx_x86_64_x86inc"; 918 919 add_proto qw/void vpx_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, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 920 specialize qw/vpx_quantize_b_32x32/, "$ssse3_x86_64_x86inc", "$avx_x86_64_x86inc"; 921 922 if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 923 add_proto qw/void vpx_highbd_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, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 924 specialize qw/vpx_highbd_quantize_b sse2/; 925 926 add_proto qw/void vpx_highbd_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, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan"; 927 specialize qw/vpx_highbd_quantize_b_32x32 sse2/; 928 } # CONFIG_VP9_HIGHBITDEPTH 929} # CONFIG_VP9_ENCODER || CONFIG_VP10_ENCODER 930 931if (vpx_config("CONFIG_ENCODERS") eq "yes") { 932# 933# Block subtraction 934# 935add_proto qw/void vpx_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"; 936specialize qw/vpx_subtract_block neon msa/, "$sse2_x86inc"; 937 938# 939# Single block SAD 940# 941add_proto qw/unsigned int vpx_sad64x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 942specialize qw/vpx_sad64x64 avx2 neon msa/, "$sse2_x86inc"; 943 944add_proto qw/unsigned int vpx_sad64x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 945specialize qw/vpx_sad64x32 avx2 msa/, "$sse2_x86inc"; 946 947add_proto qw/unsigned int vpx_sad32x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 948specialize qw/vpx_sad32x64 avx2 msa/, "$sse2_x86inc"; 949 950add_proto qw/unsigned int vpx_sad32x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 951specialize qw/vpx_sad32x32 avx2 neon msa/, "$sse2_x86inc"; 952 953add_proto qw/unsigned int vpx_sad32x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 954specialize qw/vpx_sad32x16 avx2 msa/, "$sse2_x86inc"; 955 956add_proto qw/unsigned int vpx_sad16x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 957specialize qw/vpx_sad16x32 msa/, "$sse2_x86inc"; 958 959add_proto qw/unsigned int vpx_sad16x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 960specialize qw/vpx_sad16x16 mmx media neon msa/, "$sse2_x86inc"; 961 962add_proto qw/unsigned int vpx_sad16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 963specialize qw/vpx_sad16x8 mmx neon msa/, "$sse2_x86inc"; 964 965add_proto qw/unsigned int vpx_sad8x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 966specialize qw/vpx_sad8x16 mmx neon msa/, "$sse2_x86inc"; 967 968add_proto qw/unsigned int vpx_sad8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 969specialize qw/vpx_sad8x8 mmx neon msa/, "$sse2_x86inc"; 970 971add_proto qw/unsigned int vpx_sad8x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 972specialize qw/vpx_sad8x4 msa/, "$sse2_x86inc"; 973 974add_proto qw/unsigned int vpx_sad4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 975specialize qw/vpx_sad4x8 msa/, "$sse_x86inc"; 976 977add_proto qw/unsigned int vpx_sad4x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 978specialize qw/vpx_sad4x4 mmx neon msa/, "$sse_x86inc"; 979 980# 981# Avg 982# 983add_proto qw/unsigned int vpx_sad64x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 984specialize qw/vpx_sad64x64_avg avx2 msa/, "$sse2_x86inc"; 985 986add_proto qw/unsigned int vpx_sad64x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 987specialize qw/vpx_sad64x32_avg avx2 msa/, "$sse2_x86inc"; 988 989add_proto qw/unsigned int vpx_sad32x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 990specialize qw/vpx_sad32x64_avg avx2 msa/, "$sse2_x86inc"; 991 992add_proto qw/unsigned int vpx_sad32x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 993specialize qw/vpx_sad32x32_avg avx2 msa/, "$sse2_x86inc"; 994 995add_proto qw/unsigned int vpx_sad32x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 996specialize qw/vpx_sad32x16_avg avx2 msa/, "$sse2_x86inc"; 997 998add_proto qw/unsigned int vpx_sad16x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 999specialize qw/vpx_sad16x32_avg msa/, "$sse2_x86inc"; 1000 1001add_proto qw/unsigned int vpx_sad16x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1002specialize qw/vpx_sad16x16_avg msa/, "$sse2_x86inc"; 1003 1004add_proto qw/unsigned int vpx_sad16x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1005specialize qw/vpx_sad16x8_avg msa/, "$sse2_x86inc"; 1006 1007add_proto qw/unsigned int vpx_sad8x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1008specialize qw/vpx_sad8x16_avg msa/, "$sse2_x86inc"; 1009 1010add_proto qw/unsigned int vpx_sad8x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1011specialize qw/vpx_sad8x8_avg msa/, "$sse2_x86inc"; 1012 1013add_proto qw/unsigned int vpx_sad8x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1014specialize qw/vpx_sad8x4_avg msa/, "$sse2_x86inc"; 1015 1016add_proto qw/unsigned int vpx_sad4x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1017specialize qw/vpx_sad4x8_avg msa/, "$sse_x86inc"; 1018 1019add_proto qw/unsigned int vpx_sad4x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1020specialize qw/vpx_sad4x4_avg msa/, "$sse_x86inc"; 1021 1022# 1023# Multi-block SAD, comparing a reference to N blocks 1 pixel apart horizontally 1024# 1025# Blocks of 3 1026add_proto qw/void vpx_sad64x64x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1027specialize qw/vpx_sad64x64x3 msa/; 1028 1029add_proto qw/void vpx_sad32x32x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1030specialize qw/vpx_sad32x32x3 msa/; 1031 1032add_proto qw/void vpx_sad16x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1033specialize qw/vpx_sad16x16x3 sse3 ssse3 msa/; 1034 1035add_proto qw/void vpx_sad16x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1036specialize qw/vpx_sad16x8x3 sse3 ssse3 msa/; 1037 1038add_proto qw/void vpx_sad8x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1039specialize qw/vpx_sad8x16x3 sse3 msa/; 1040 1041add_proto qw/void vpx_sad8x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1042specialize qw/vpx_sad8x8x3 sse3 msa/; 1043 1044add_proto qw/void vpx_sad4x4x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1045specialize qw/vpx_sad4x4x3 sse3 msa/; 1046 1047# Blocks of 8 1048add_proto qw/void vpx_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1049specialize qw/vpx_sad64x64x8 msa/; 1050 1051add_proto qw/void vpx_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1052specialize qw/vpx_sad32x32x8 msa/; 1053 1054add_proto qw/void vpx_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1055specialize qw/vpx_sad16x16x8 sse4_1 msa/; 1056 1057add_proto qw/void vpx_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1058specialize qw/vpx_sad16x8x8 sse4_1 msa/; 1059 1060add_proto qw/void vpx_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1061specialize qw/vpx_sad8x16x8 sse4_1 msa/; 1062 1063add_proto qw/void vpx_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1064specialize qw/vpx_sad8x8x8 sse4_1 msa/; 1065 1066add_proto qw/void vpx_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1067specialize qw/vpx_sad8x4x8 msa/; 1068 1069add_proto qw/void vpx_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1070specialize qw/vpx_sad4x8x8 msa/; 1071 1072add_proto qw/void vpx_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1073specialize qw/vpx_sad4x4x8 sse4_1 msa/; 1074 1075# 1076# Multi-block SAD, comparing a reference to N independent blocks 1077# 1078add_proto qw/void vpx_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1079specialize qw/vpx_sad64x64x4d avx2 neon msa/, "$sse2_x86inc"; 1080 1081add_proto qw/void vpx_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1082specialize qw/vpx_sad64x32x4d msa/, "$sse2_x86inc"; 1083 1084add_proto qw/void vpx_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1085specialize qw/vpx_sad32x64x4d msa/, "$sse2_x86inc"; 1086 1087add_proto qw/void vpx_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1088specialize qw/vpx_sad32x32x4d avx2 neon msa/, "$sse2_x86inc"; 1089 1090add_proto qw/void vpx_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1091specialize qw/vpx_sad32x16x4d msa/, "$sse2_x86inc"; 1092 1093add_proto qw/void vpx_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1094specialize qw/vpx_sad16x32x4d msa/, "$sse2_x86inc"; 1095 1096add_proto qw/void vpx_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1097specialize qw/vpx_sad16x16x4d neon msa/, "$sse2_x86inc"; 1098 1099add_proto qw/void vpx_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1100specialize qw/vpx_sad16x8x4d msa/, "$sse2_x86inc"; 1101 1102add_proto qw/void vpx_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1103specialize qw/vpx_sad8x16x4d msa/, "$sse2_x86inc"; 1104 1105add_proto qw/void vpx_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1106specialize qw/vpx_sad8x8x4d msa/, "$sse2_x86inc"; 1107 1108add_proto qw/void vpx_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1109specialize qw/vpx_sad8x4x4d msa/, "$sse2_x86inc"; 1110 1111add_proto qw/void vpx_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1112specialize qw/vpx_sad4x8x4d msa/, "$sse_x86inc"; 1113 1114add_proto qw/void vpx_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1115specialize qw/vpx_sad4x4x4d msa/, "$sse_x86inc"; 1116 1117# 1118# Structured Similarity (SSIM) 1119# 1120if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { 1121 add_proto qw/void vpx_ssim_parms_8x8/, "const uint8_t *s, int sp, const uint8_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"; 1122 specialize qw/vpx_ssim_parms_8x8/, "$sse2_x86_64"; 1123 1124 add_proto qw/void vpx_ssim_parms_16x16/, "const uint8_t *s, int sp, const uint8_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"; 1125 specialize qw/vpx_ssim_parms_16x16/, "$sse2_x86_64"; 1126} 1127 1128if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 1129 # 1130 # Block subtraction 1131 # 1132 add_proto qw/void vpx_highbd_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"; 1133 specialize qw/vpx_highbd_subtract_block/; 1134 1135 # 1136 # Single block SAD 1137 # 1138 add_proto qw/unsigned int vpx_highbd_sad64x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1139 specialize qw/vpx_highbd_sad64x64/, "$sse2_x86inc"; 1140 1141 add_proto qw/unsigned int vpx_highbd_sad64x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1142 specialize qw/vpx_highbd_sad64x32/, "$sse2_x86inc"; 1143 1144 add_proto qw/unsigned int vpx_highbd_sad32x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1145 specialize qw/vpx_highbd_sad32x64/, "$sse2_x86inc"; 1146 1147 add_proto qw/unsigned int vpx_highbd_sad32x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1148 specialize qw/vpx_highbd_sad32x32/, "$sse2_x86inc"; 1149 1150 add_proto qw/unsigned int vpx_highbd_sad32x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1151 specialize qw/vpx_highbd_sad32x16/, "$sse2_x86inc"; 1152 1153 add_proto qw/unsigned int vpx_highbd_sad16x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1154 specialize qw/vpx_highbd_sad16x32/, "$sse2_x86inc"; 1155 1156 add_proto qw/unsigned int vpx_highbd_sad16x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1157 specialize qw/vpx_highbd_sad16x16/, "$sse2_x86inc"; 1158 1159 add_proto qw/unsigned int vpx_highbd_sad16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1160 specialize qw/vpx_highbd_sad16x8/, "$sse2_x86inc"; 1161 1162 add_proto qw/unsigned int vpx_highbd_sad8x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1163 specialize qw/vpx_highbd_sad8x16/, "$sse2_x86inc"; 1164 1165 add_proto qw/unsigned int vpx_highbd_sad8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1166 specialize qw/vpx_highbd_sad8x8/, "$sse2_x86inc"; 1167 1168 add_proto qw/unsigned int vpx_highbd_sad8x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1169 specialize qw/vpx_highbd_sad8x4/, "$sse2_x86inc"; 1170 1171 add_proto qw/unsigned int vpx_highbd_sad4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1172 specialize qw/vpx_highbd_sad4x8/; 1173 1174 add_proto qw/unsigned int vpx_highbd_sad4x4/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; 1175 specialize qw/vpx_highbd_sad4x4/; 1176 1177 # 1178 # Avg 1179 # 1180 add_proto qw/unsigned int vpx_highbd_sad64x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1181 specialize qw/vpx_highbd_sad64x64_avg/, "$sse2_x86inc"; 1182 1183 add_proto qw/unsigned int vpx_highbd_sad64x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1184 specialize qw/vpx_highbd_sad64x32_avg/, "$sse2_x86inc"; 1185 1186 add_proto qw/unsigned int vpx_highbd_sad32x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1187 specialize qw/vpx_highbd_sad32x64_avg/, "$sse2_x86inc"; 1188 1189 add_proto qw/unsigned int vpx_highbd_sad32x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1190 specialize qw/vpx_highbd_sad32x32_avg/, "$sse2_x86inc"; 1191 1192 add_proto qw/unsigned int vpx_highbd_sad32x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1193 specialize qw/vpx_highbd_sad32x16_avg/, "$sse2_x86inc"; 1194 1195 add_proto qw/unsigned int vpx_highbd_sad16x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1196 specialize qw/vpx_highbd_sad16x32_avg/, "$sse2_x86inc"; 1197 1198 add_proto qw/unsigned int vpx_highbd_sad16x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1199 specialize qw/vpx_highbd_sad16x16_avg/, "$sse2_x86inc"; 1200 1201 add_proto qw/unsigned int vpx_highbd_sad16x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1202 specialize qw/vpx_highbd_sad16x8_avg/, "$sse2_x86inc"; 1203 1204 add_proto qw/unsigned int vpx_highbd_sad8x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1205 specialize qw/vpx_highbd_sad8x16_avg/, "$sse2_x86inc"; 1206 1207 add_proto qw/unsigned int vpx_highbd_sad8x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1208 specialize qw/vpx_highbd_sad8x8_avg/, "$sse2_x86inc"; 1209 1210 add_proto qw/unsigned int vpx_highbd_sad8x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1211 specialize qw/vpx_highbd_sad8x4_avg/, "$sse2_x86inc"; 1212 1213 add_proto qw/unsigned int vpx_highbd_sad4x8_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1214 specialize qw/vpx_highbd_sad4x8_avg/; 1215 1216 add_proto qw/unsigned int vpx_highbd_sad4x4_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; 1217 specialize qw/vpx_highbd_sad4x4_avg/; 1218 1219 # 1220 # Multi-block SAD, comparing a reference to N blocks 1 pixel apart horizontally 1221 # 1222 # Blocks of 3 1223 add_proto qw/void vpx_highbd_sad64x64x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1224 specialize qw/vpx_highbd_sad64x64x3/; 1225 1226 add_proto qw/void vpx_highbd_sad32x32x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1227 specialize qw/vpx_highbd_sad32x32x3/; 1228 1229 add_proto qw/void vpx_highbd_sad16x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1230 specialize qw/vpx_highbd_sad16x16x3/; 1231 1232 add_proto qw/void vpx_highbd_sad16x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1233 specialize qw/vpx_highbd_sad16x8x3/; 1234 1235 add_proto qw/void vpx_highbd_sad8x16x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1236 specialize qw/vpx_highbd_sad8x16x3/; 1237 1238 add_proto qw/void vpx_highbd_sad8x8x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1239 specialize qw/vpx_highbd_sad8x8x3/; 1240 1241 add_proto qw/void vpx_highbd_sad4x4x3/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1242 specialize qw/vpx_highbd_sad4x4x3/; 1243 1244 # Blocks of 8 1245 add_proto qw/void vpx_highbd_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1246 specialize qw/vpx_highbd_sad64x64x8/; 1247 1248 add_proto qw/void vpx_highbd_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1249 specialize qw/vpx_highbd_sad32x32x8/; 1250 1251 add_proto qw/void vpx_highbd_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1252 specialize qw/vpx_highbd_sad16x16x8/; 1253 1254 add_proto qw/void vpx_highbd_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1255 specialize qw/vpx_highbd_sad16x8x8/; 1256 1257 add_proto qw/void vpx_highbd_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1258 specialize qw/vpx_highbd_sad8x16x8/; 1259 1260 add_proto qw/void vpx_highbd_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1261 specialize qw/vpx_highbd_sad8x8x8/; 1262 1263 add_proto qw/void vpx_highbd_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1264 specialize qw/vpx_highbd_sad8x4x8/; 1265 1266 add_proto qw/void vpx_highbd_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1267 specialize qw/vpx_highbd_sad4x8x8/; 1268 1269 add_proto qw/void vpx_highbd_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; 1270 specialize qw/vpx_highbd_sad4x4x8/; 1271 1272 # 1273 # Multi-block SAD, comparing a reference to N independent blocks 1274 # 1275 add_proto qw/void vpx_highbd_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1276 specialize qw/vpx_highbd_sad64x64x4d/, "$sse2_x86inc"; 1277 1278 add_proto qw/void vpx_highbd_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1279 specialize qw/vpx_highbd_sad64x32x4d/, "$sse2_x86inc"; 1280 1281 add_proto qw/void vpx_highbd_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1282 specialize qw/vpx_highbd_sad32x64x4d/, "$sse2_x86inc"; 1283 1284 add_proto qw/void vpx_highbd_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1285 specialize qw/vpx_highbd_sad32x32x4d/, "$sse2_x86inc"; 1286 1287 add_proto qw/void vpx_highbd_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1288 specialize qw/vpx_highbd_sad32x16x4d/, "$sse2_x86inc"; 1289 1290 add_proto qw/void vpx_highbd_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1291 specialize qw/vpx_highbd_sad16x32x4d/, "$sse2_x86inc"; 1292 1293 add_proto qw/void vpx_highbd_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1294 specialize qw/vpx_highbd_sad16x16x4d/, "$sse2_x86inc"; 1295 1296 add_proto qw/void vpx_highbd_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1297 specialize qw/vpx_highbd_sad16x8x4d/, "$sse2_x86inc"; 1298 1299 add_proto qw/void vpx_highbd_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1300 specialize qw/vpx_highbd_sad8x16x4d/, "$sse2_x86inc"; 1301 1302 add_proto qw/void vpx_highbd_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1303 specialize qw/vpx_highbd_sad8x8x4d/, "$sse2_x86inc"; 1304 1305 add_proto qw/void vpx_highbd_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1306 specialize qw/vpx_highbd_sad8x4x4d/, "$sse2_x86inc"; 1307 1308 add_proto qw/void vpx_highbd_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1309 specialize qw/vpx_highbd_sad4x8x4d/, "$sse2_x86inc"; 1310 1311 add_proto qw/void vpx_highbd_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, uint32_t *sad_array"; 1312 specialize qw/vpx_highbd_sad4x4x4d/, "$sse2_x86inc"; 1313 1314 # 1315 # Structured Similarity (SSIM) 1316 # 1317 if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { 1318 add_proto qw/void vpx_highbd_ssim_parms_8x8/, "const uint16_t *s, int sp, const 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"; 1319 specialize qw/vpx_highbd_ssim_parms_8x8/; 1320 } 1321} # CONFIG_VP9_HIGHBITDEPTH 1322} # CONFIG_ENCODERS 1323 1324if (vpx_config("CONFIG_ENCODERS") eq "yes" || vpx_config("CONFIG_POSTPROC") eq "yes" || vpx_config("CONFIG_VP9_POSTPROC") eq "yes") { 1325 1326# 1327# Variance 1328# 1329add_proto qw/unsigned int vpx_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1330 specialize qw/vpx_variance64x64 sse2 avx2 neon msa/; 1331 1332add_proto qw/unsigned int vpx_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1333 specialize qw/vpx_variance64x32 sse2 avx2 neon msa/; 1334 1335add_proto qw/unsigned int vpx_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1336 specialize qw/vpx_variance32x64 sse2 neon msa/; 1337 1338add_proto qw/unsigned int vpx_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1339 specialize qw/vpx_variance32x32 sse2 avx2 neon msa/; 1340 1341add_proto qw/unsigned int vpx_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1342 specialize qw/vpx_variance32x16 sse2 avx2 msa/; 1343 1344add_proto qw/unsigned int vpx_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1345 specialize qw/vpx_variance16x32 sse2 msa/; 1346 1347add_proto qw/unsigned int vpx_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1348 specialize qw/vpx_variance16x16 mmx sse2 avx2 media neon msa/; 1349 1350add_proto qw/unsigned int vpx_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1351 specialize qw/vpx_variance16x8 mmx sse2 neon msa/; 1352 1353add_proto qw/unsigned int vpx_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1354 specialize qw/vpx_variance8x16 mmx sse2 neon msa/; 1355 1356add_proto qw/unsigned int vpx_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1357 specialize qw/vpx_variance8x8 mmx sse2 media neon msa/; 1358 1359add_proto qw/unsigned int vpx_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1360 specialize qw/vpx_variance8x4 sse2 msa/; 1361 1362add_proto qw/unsigned int vpx_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1363 specialize qw/vpx_variance4x8 sse2 msa/; 1364 1365add_proto qw/unsigned int vpx_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1366 specialize qw/vpx_variance4x4 mmx sse2 msa/; 1367 1368# 1369# Specialty Variance 1370# 1371add_proto qw/void vpx_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1372 specialize qw/vpx_get16x16var sse2 avx2 neon msa/; 1373 1374add_proto qw/void vpx_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1375 specialize qw/vpx_get8x8var mmx sse2 neon msa/; 1376 1377add_proto qw/unsigned int vpx_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1378 specialize qw/vpx_mse16x16 mmx sse2 avx2 media neon msa/; 1379 1380add_proto qw/unsigned int vpx_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1381 specialize qw/vpx_mse16x8 sse2 msa/; 1382 1383add_proto qw/unsigned int vpx_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1384 specialize qw/vpx_mse8x16 sse2 msa/; 1385 1386add_proto qw/unsigned int vpx_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1387 specialize qw/vpx_mse8x8 sse2 msa/; 1388 1389add_proto qw/unsigned int vpx_get_mb_ss/, "const int16_t *"; 1390 specialize qw/vpx_get_mb_ss mmx sse2 msa/; 1391 1392add_proto qw/unsigned int vpx_get4x4sse_cs/, "const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride"; 1393 specialize qw/vpx_get4x4sse_cs neon msa/; 1394 1395add_proto qw/void vpx_comp_avg_pred/, "uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride"; 1396 1397# 1398# Subpixel Variance 1399# 1400add_proto qw/uint32_t vpx_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1401 specialize qw/vpx_sub_pixel_variance64x64 avx2 neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1402 1403add_proto qw/uint32_t vpx_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1404 specialize qw/vpx_sub_pixel_variance64x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1405 1406add_proto qw/uint32_t vpx_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1407 specialize qw/vpx_sub_pixel_variance32x64 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1408 1409add_proto qw/uint32_t vpx_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1410 specialize qw/vpx_sub_pixel_variance32x32 avx2 neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1411 1412add_proto qw/uint32_t vpx_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1413 specialize qw/vpx_sub_pixel_variance32x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1414 1415add_proto qw/uint32_t vpx_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1416 specialize qw/vpx_sub_pixel_variance16x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1417 1418add_proto qw/uint32_t vpx_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1419 specialize qw/vpx_sub_pixel_variance16x16 mmx media neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1420 1421add_proto qw/uint32_t vpx_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1422 specialize qw/vpx_sub_pixel_variance16x8 mmx msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1423 1424add_proto qw/uint32_t vpx_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1425 specialize qw/vpx_sub_pixel_variance8x16 mmx msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1426 1427add_proto qw/uint32_t vpx_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1428 specialize qw/vpx_sub_pixel_variance8x8 mmx media neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1429 1430add_proto qw/uint32_t vpx_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1431 specialize qw/vpx_sub_pixel_variance8x4 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1432 1433add_proto qw/uint32_t vpx_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1434 specialize qw/vpx_sub_pixel_variance4x8 msa/, "$sse_x86inc", "$ssse3_x86inc"; 1435 1436add_proto qw/uint32_t vpx_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1437 specialize qw/vpx_sub_pixel_variance4x4 mmx msa/, "$sse_x86inc", "$ssse3_x86inc"; 1438 1439add_proto qw/uint32_t vpx_sub_pixel_avg_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1440 specialize qw/vpx_sub_pixel_avg_variance64x64 avx2 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1441 1442add_proto qw/uint32_t vpx_sub_pixel_avg_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1443 specialize qw/vpx_sub_pixel_avg_variance64x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1444 1445add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1446 specialize qw/vpx_sub_pixel_avg_variance32x64 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1447 1448add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1449 specialize qw/vpx_sub_pixel_avg_variance32x32 avx2 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1450 1451add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1452 specialize qw/vpx_sub_pixel_avg_variance32x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1453 1454add_proto qw/uint32_t vpx_sub_pixel_avg_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1455 specialize qw/vpx_sub_pixel_avg_variance16x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1456 1457add_proto qw/uint32_t vpx_sub_pixel_avg_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1458 specialize qw/vpx_sub_pixel_avg_variance16x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1459 1460add_proto qw/uint32_t vpx_sub_pixel_avg_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1461 specialize qw/vpx_sub_pixel_avg_variance16x8 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1462 1463add_proto qw/uint32_t vpx_sub_pixel_avg_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1464 specialize qw/vpx_sub_pixel_avg_variance8x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1465 1466add_proto qw/uint32_t vpx_sub_pixel_avg_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1467 specialize qw/vpx_sub_pixel_avg_variance8x8 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1468 1469add_proto qw/uint32_t vpx_sub_pixel_avg_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1470 specialize qw/vpx_sub_pixel_avg_variance8x4 msa/, "$sse2_x86inc", "$ssse3_x86inc"; 1471 1472add_proto qw/uint32_t vpx_sub_pixel_avg_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1473 specialize qw/vpx_sub_pixel_avg_variance4x8 msa/, "$sse_x86inc", "$ssse3_x86inc"; 1474 1475add_proto qw/uint32_t vpx_sub_pixel_avg_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1476 specialize qw/vpx_sub_pixel_avg_variance4x4 msa/, "$sse_x86inc", "$ssse3_x86inc"; 1477 1478# 1479# Specialty Subpixel 1480# 1481add_proto qw/uint32_t vpx_variance_halfpixvar16x16_h/, "const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, uint32_t *sse"; 1482 specialize qw/vpx_variance_halfpixvar16x16_h mmx sse2 media/; 1483 1484add_proto qw/uint32_t vpx_variance_halfpixvar16x16_v/, "const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, uint32_t *sse"; 1485 specialize qw/vpx_variance_halfpixvar16x16_v mmx sse2 media/; 1486 1487add_proto qw/uint32_t vpx_variance_halfpixvar16x16_hv/, "const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, uint32_t *sse"; 1488 specialize qw/vpx_variance_halfpixvar16x16_hv mmx sse2 media/; 1489 1490if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { 1491 add_proto qw/unsigned int vpx_highbd_12_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1492 specialize qw/vpx_highbd_12_variance64x64 sse2/; 1493 1494 add_proto qw/unsigned int vpx_highbd_12_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1495 specialize qw/vpx_highbd_12_variance64x32 sse2/; 1496 1497 add_proto qw/unsigned int vpx_highbd_12_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1498 specialize qw/vpx_highbd_12_variance32x64 sse2/; 1499 1500 add_proto qw/unsigned int vpx_highbd_12_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1501 specialize qw/vpx_highbd_12_variance32x32 sse2/; 1502 1503 add_proto qw/unsigned int vpx_highbd_12_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1504 specialize qw/vpx_highbd_12_variance32x16 sse2/; 1505 1506 add_proto qw/unsigned int vpx_highbd_12_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1507 specialize qw/vpx_highbd_12_variance16x32 sse2/; 1508 1509 add_proto qw/unsigned int vpx_highbd_12_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1510 specialize qw/vpx_highbd_12_variance16x16 sse2/; 1511 1512 add_proto qw/unsigned int vpx_highbd_12_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1513 specialize qw/vpx_highbd_12_variance16x8 sse2/; 1514 1515 add_proto qw/unsigned int vpx_highbd_12_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1516 specialize qw/vpx_highbd_12_variance8x16 sse2/; 1517 1518 add_proto qw/unsigned int vpx_highbd_12_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1519 specialize qw/vpx_highbd_12_variance8x8 sse2/; 1520 1521 add_proto qw/unsigned int vpx_highbd_12_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1522 add_proto qw/unsigned int vpx_highbd_12_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1523 add_proto qw/unsigned int vpx_highbd_12_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1524 1525 add_proto qw/unsigned int vpx_highbd_10_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1526 specialize qw/vpx_highbd_10_variance64x64 sse2/; 1527 1528 add_proto qw/unsigned int vpx_highbd_10_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1529 specialize qw/vpx_highbd_10_variance64x32 sse2/; 1530 1531 add_proto qw/unsigned int vpx_highbd_10_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1532 specialize qw/vpx_highbd_10_variance32x64 sse2/; 1533 1534 add_proto qw/unsigned int vpx_highbd_10_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1535 specialize qw/vpx_highbd_10_variance32x32 sse2/; 1536 1537 add_proto qw/unsigned int vpx_highbd_10_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1538 specialize qw/vpx_highbd_10_variance32x16 sse2/; 1539 1540 add_proto qw/unsigned int vpx_highbd_10_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1541 specialize qw/vpx_highbd_10_variance16x32 sse2/; 1542 1543 add_proto qw/unsigned int vpx_highbd_10_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1544 specialize qw/vpx_highbd_10_variance16x16 sse2/; 1545 1546 add_proto qw/unsigned int vpx_highbd_10_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1547 specialize qw/vpx_highbd_10_variance16x8 sse2/; 1548 1549 add_proto qw/unsigned int vpx_highbd_10_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1550 specialize qw/vpx_highbd_10_variance8x16 sse2/; 1551 1552 add_proto qw/unsigned int vpx_highbd_10_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1553 specialize qw/vpx_highbd_10_variance8x8 sse2/; 1554 1555 add_proto qw/unsigned int vpx_highbd_10_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1556 add_proto qw/unsigned int vpx_highbd_10_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1557 add_proto qw/unsigned int vpx_highbd_10_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1558 1559 add_proto qw/unsigned int vpx_highbd_8_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1560 specialize qw/vpx_highbd_8_variance64x64 sse2/; 1561 1562 add_proto qw/unsigned int vpx_highbd_8_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1563 specialize qw/vpx_highbd_8_variance64x32 sse2/; 1564 1565 add_proto qw/unsigned int vpx_highbd_8_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1566 specialize qw/vpx_highbd_8_variance32x64 sse2/; 1567 1568 add_proto qw/unsigned int vpx_highbd_8_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1569 specialize qw/vpx_highbd_8_variance32x32 sse2/; 1570 1571 add_proto qw/unsigned int vpx_highbd_8_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1572 specialize qw/vpx_highbd_8_variance32x16 sse2/; 1573 1574 add_proto qw/unsigned int vpx_highbd_8_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1575 specialize qw/vpx_highbd_8_variance16x32 sse2/; 1576 1577 add_proto qw/unsigned int vpx_highbd_8_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1578 specialize qw/vpx_highbd_8_variance16x16 sse2/; 1579 1580 add_proto qw/unsigned int vpx_highbd_8_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1581 specialize qw/vpx_highbd_8_variance16x8 sse2/; 1582 1583 add_proto qw/unsigned int vpx_highbd_8_variance8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1584 specialize qw/vpx_highbd_8_variance8x16 sse2/; 1585 1586 add_proto qw/unsigned int vpx_highbd_8_variance8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1587 specialize qw/vpx_highbd_8_variance8x8 sse2/; 1588 1589 add_proto qw/unsigned int vpx_highbd_8_variance8x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1590 add_proto qw/unsigned int vpx_highbd_8_variance4x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1591 add_proto qw/unsigned int vpx_highbd_8_variance4x4/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; 1592 1593 add_proto qw/void vpx_highbd_8_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1594 add_proto qw/void vpx_highbd_8_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1595 1596 add_proto qw/void vpx_highbd_10_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1597 add_proto qw/void vpx_highbd_10_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1598 1599 add_proto qw/void vpx_highbd_12_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1600 add_proto qw/void vpx_highbd_12_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; 1601 1602 add_proto qw/unsigned int vpx_highbd_8_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1603 specialize qw/vpx_highbd_8_mse16x16 sse2/; 1604 1605 add_proto qw/unsigned int vpx_highbd_8_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1606 add_proto qw/unsigned int vpx_highbd_8_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1607 add_proto qw/unsigned int vpx_highbd_8_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1608 specialize qw/vpx_highbd_8_mse8x8 sse2/; 1609 1610 add_proto qw/unsigned int vpx_highbd_10_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1611 specialize qw/vpx_highbd_10_mse16x16 sse2/; 1612 1613 add_proto qw/unsigned int vpx_highbd_10_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1614 add_proto qw/unsigned int vpx_highbd_10_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1615 add_proto qw/unsigned int vpx_highbd_10_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1616 specialize qw/vpx_highbd_10_mse8x8 sse2/; 1617 1618 add_proto qw/unsigned int vpx_highbd_12_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1619 specialize qw/vpx_highbd_12_mse16x16 sse2/; 1620 1621 add_proto qw/unsigned int vpx_highbd_12_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1622 add_proto qw/unsigned int vpx_highbd_12_mse8x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1623 add_proto qw/unsigned int vpx_highbd_12_mse8x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; 1624 specialize qw/vpx_highbd_12_mse8x8 sse2/; 1625 1626 add_proto qw/void vpx_highbd_comp_avg_pred/, "uint16_t *comp_pred, const uint8_t *pred8, int width, int height, const uint8_t *ref8, int ref_stride"; 1627 1628 # 1629 # Subpixel Variance 1630 # 1631 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1632 specialize qw/vpx_highbd_12_sub_pixel_variance64x64/, "$sse2_x86inc"; 1633 1634 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1635 specialize qw/vpx_highbd_12_sub_pixel_variance64x32/, "$sse2_x86inc"; 1636 1637 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1638 specialize qw/vpx_highbd_12_sub_pixel_variance32x64/, "$sse2_x86inc"; 1639 1640 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1641 specialize qw/vpx_highbd_12_sub_pixel_variance32x32/, "$sse2_x86inc"; 1642 1643 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1644 specialize qw/vpx_highbd_12_sub_pixel_variance32x16/, "$sse2_x86inc"; 1645 1646 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1647 specialize qw/vpx_highbd_12_sub_pixel_variance16x32/, "$sse2_x86inc"; 1648 1649 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1650 specialize qw/vpx_highbd_12_sub_pixel_variance16x16/, "$sse2_x86inc"; 1651 1652 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1653 specialize qw/vpx_highbd_12_sub_pixel_variance16x8/, "$sse2_x86inc"; 1654 1655 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1656 specialize qw/vpx_highbd_12_sub_pixel_variance8x16/, "$sse2_x86inc"; 1657 1658 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1659 specialize qw/vpx_highbd_12_sub_pixel_variance8x8/, "$sse2_x86inc"; 1660 1661 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1662 specialize qw/vpx_highbd_12_sub_pixel_variance8x4/, "$sse2_x86inc"; 1663 1664 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1665 add_proto qw/uint32_t vpx_highbd_12_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1666 1667 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1668 specialize qw/vpx_highbd_10_sub_pixel_variance64x64/, "$sse2_x86inc"; 1669 1670 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1671 specialize qw/vpx_highbd_10_sub_pixel_variance64x32/, "$sse2_x86inc"; 1672 1673 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1674 specialize qw/vpx_highbd_10_sub_pixel_variance32x64/, "$sse2_x86inc"; 1675 1676 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1677 specialize qw/vpx_highbd_10_sub_pixel_variance32x32/, "$sse2_x86inc"; 1678 1679 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1680 specialize qw/vpx_highbd_10_sub_pixel_variance32x16/, "$sse2_x86inc"; 1681 1682 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1683 specialize qw/vpx_highbd_10_sub_pixel_variance16x32/, "$sse2_x86inc"; 1684 1685 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1686 specialize qw/vpx_highbd_10_sub_pixel_variance16x16/, "$sse2_x86inc"; 1687 1688 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1689 specialize qw/vpx_highbd_10_sub_pixel_variance16x8/, "$sse2_x86inc"; 1690 1691 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1692 specialize qw/vpx_highbd_10_sub_pixel_variance8x16/, "$sse2_x86inc"; 1693 1694 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1695 specialize qw/vpx_highbd_10_sub_pixel_variance8x8/, "$sse2_x86inc"; 1696 1697 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1698 specialize qw/vpx_highbd_10_sub_pixel_variance8x4/, "$sse2_x86inc"; 1699 1700 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1701 add_proto qw/uint32_t vpx_highbd_10_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1702 1703 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1704 specialize qw/vpx_highbd_8_sub_pixel_variance64x64/, "$sse2_x86inc"; 1705 1706 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1707 specialize qw/vpx_highbd_8_sub_pixel_variance64x32/, "$sse2_x86inc"; 1708 1709 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1710 specialize qw/vpx_highbd_8_sub_pixel_variance32x64/, "$sse2_x86inc"; 1711 1712 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1713 specialize qw/vpx_highbd_8_sub_pixel_variance32x32/, "$sse2_x86inc"; 1714 1715 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1716 specialize qw/vpx_highbd_8_sub_pixel_variance32x16/, "$sse2_x86inc"; 1717 1718 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1719 specialize qw/vpx_highbd_8_sub_pixel_variance16x32/, "$sse2_x86inc"; 1720 1721 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1722 specialize qw/vpx_highbd_8_sub_pixel_variance16x16/, "$sse2_x86inc"; 1723 1724 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1725 specialize qw/vpx_highbd_8_sub_pixel_variance16x8/, "$sse2_x86inc"; 1726 1727 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1728 specialize qw/vpx_highbd_8_sub_pixel_variance8x16/, "$sse2_x86inc"; 1729 1730 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1731 specialize qw/vpx_highbd_8_sub_pixel_variance8x8/, "$sse2_x86inc"; 1732 1733 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1734 specialize qw/vpx_highbd_8_sub_pixel_variance8x4/, "$sse2_x86inc"; 1735 1736 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1737 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; 1738 1739 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1740 specialize qw/vpx_highbd_12_sub_pixel_avg_variance64x64/, "$sse2_x86inc"; 1741 1742 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1743 specialize qw/vpx_highbd_12_sub_pixel_avg_variance64x32/, "$sse2_x86inc"; 1744 1745 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1746 specialize qw/vpx_highbd_12_sub_pixel_avg_variance32x64/, "$sse2_x86inc"; 1747 1748 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1749 specialize qw/vpx_highbd_12_sub_pixel_avg_variance32x32/, "$sse2_x86inc"; 1750 1751 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1752 specialize qw/vpx_highbd_12_sub_pixel_avg_variance32x16/, "$sse2_x86inc"; 1753 1754 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1755 specialize qw/vpx_highbd_12_sub_pixel_avg_variance16x32/, "$sse2_x86inc"; 1756 1757 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1758 specialize qw/vpx_highbd_12_sub_pixel_avg_variance16x16/, "$sse2_x86inc"; 1759 1760 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1761 specialize qw/vpx_highbd_12_sub_pixel_avg_variance16x8/, "$sse2_x86inc"; 1762 1763 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1764 specialize qw/vpx_highbd_12_sub_pixel_avg_variance8x16/, "$sse2_x86inc"; 1765 1766 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1767 specialize qw/vpx_highbd_12_sub_pixel_avg_variance8x8/, "$sse2_x86inc"; 1768 1769 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1770 specialize qw/vpx_highbd_12_sub_pixel_avg_variance8x4/, "$sse2_x86inc"; 1771 1772 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1773 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1774 1775 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1776 specialize qw/vpx_highbd_10_sub_pixel_avg_variance64x64/, "$sse2_x86inc"; 1777 1778 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1779 specialize qw/vpx_highbd_10_sub_pixel_avg_variance64x32/, "$sse2_x86inc"; 1780 1781 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1782 specialize qw/vpx_highbd_10_sub_pixel_avg_variance32x64/, "$sse2_x86inc"; 1783 1784 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1785 specialize qw/vpx_highbd_10_sub_pixel_avg_variance32x32/, "$sse2_x86inc"; 1786 1787 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1788 specialize qw/vpx_highbd_10_sub_pixel_avg_variance32x16/, "$sse2_x86inc"; 1789 1790 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1791 specialize qw/vpx_highbd_10_sub_pixel_avg_variance16x32/, "$sse2_x86inc"; 1792 1793 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1794 specialize qw/vpx_highbd_10_sub_pixel_avg_variance16x16/, "$sse2_x86inc"; 1795 1796 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1797 specialize qw/vpx_highbd_10_sub_pixel_avg_variance16x8/, "$sse2_x86inc"; 1798 1799 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1800 specialize qw/vpx_highbd_10_sub_pixel_avg_variance8x16/, "$sse2_x86inc"; 1801 1802 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1803 specialize qw/vpx_highbd_10_sub_pixel_avg_variance8x8/, "$sse2_x86inc"; 1804 1805 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1806 specialize qw/vpx_highbd_10_sub_pixel_avg_variance8x4/, "$sse2_x86inc"; 1807 1808 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1809 add_proto qw/uint32_t vpx_highbd_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, uint32_t *sse, const uint8_t *second_pred"; 1810 1811 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1812 specialize qw/vpx_highbd_8_sub_pixel_avg_variance64x64/, "$sse2_x86inc"; 1813 1814 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1815 specialize qw/vpx_highbd_8_sub_pixel_avg_variance64x32/, "$sse2_x86inc"; 1816 1817 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance32x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1818 specialize qw/vpx_highbd_8_sub_pixel_avg_variance32x64/, "$sse2_x86inc"; 1819 1820 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1821 specialize qw/vpx_highbd_8_sub_pixel_avg_variance32x32/, "$sse2_x86inc"; 1822 1823 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1824 specialize qw/vpx_highbd_8_sub_pixel_avg_variance32x16/, "$sse2_x86inc"; 1825 1826 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance16x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1827 specialize qw/vpx_highbd_8_sub_pixel_avg_variance16x32/, "$sse2_x86inc"; 1828 1829 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance16x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1830 specialize qw/vpx_highbd_8_sub_pixel_avg_variance16x16/, "$sse2_x86inc"; 1831 1832 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance16x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1833 specialize qw/vpx_highbd_8_sub_pixel_avg_variance16x8/, "$sse2_x86inc"; 1834 1835 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance8x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1836 specialize qw/vpx_highbd_8_sub_pixel_avg_variance8x16/, "$sse2_x86inc"; 1837 1838 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance8x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1839 specialize qw/vpx_highbd_8_sub_pixel_avg_variance8x8/, "$sse2_x86inc"; 1840 1841 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance8x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1842 specialize qw/vpx_highbd_8_sub_pixel_avg_variance8x4/, "$sse2_x86inc"; 1843 1844 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance4x8/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1845 add_proto qw/uint32_t vpx_highbd_8_sub_pixel_avg_variance4x4/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; 1846 1847} # CONFIG_VP9_HIGHBITDEPTH 1848} # CONFIG_ENCODERS || CONFIG_POSTPROC || CONFIG_VP9_POSTPROC 1849 18501; 1851