OLD | NEW |
(Empty) | |
| 1 sub vp9_common_forward_decls() { |
| 2 print <<EOF |
| 3 /* |
| 4 * VP9 |
| 5 */ |
| 6 |
| 7 #include "vpx/vpx_integer.h" |
| 8 #include "vp9/common/vp9_enums.h" |
| 9 |
| 10 struct macroblockd; |
| 11 |
| 12 /* Encoder forward decls */ |
| 13 struct macroblock; |
| 14 struct vp9_variance_vtable; |
| 15 |
| 16 #define DEC_MVCOSTS int *mvjcost, int *mvcost[2] |
| 17 struct mv; |
| 18 union int_mv; |
| 19 struct yv12_buffer_config; |
| 20 EOF |
| 21 } |
| 22 forward_decls qw/vp9_common_forward_decls/; |
| 23 |
| 24 # x86inc.asm doesn't work if pic is enabled on 32 bit platforms so no assembly. |
| 25 if (vpx_config("CONFIG_USE_X86INC") eq "yes") { |
| 26 $mmx_x86inc = 'mmx'; |
| 27 $sse_x86inc = 'sse'; |
| 28 $sse2_x86inc = 'sse2'; |
| 29 $ssse3_x86inc = 'ssse3'; |
| 30 $avx_x86inc = 'avx'; |
| 31 $avx2_x86inc = 'avx2'; |
| 32 } else { |
| 33 $mmx_x86inc = $sse_x86inc = $sse2_x86inc = $ssse3_x86inc = |
| 34 $avx_x86inc = $avx2_x86inc = ''; |
| 35 } |
| 36 |
| 37 # this variable is for functions that are 64 bit only. |
| 38 if ($opts{arch} eq "x86_64") { |
| 39 $mmx_x86_64 = 'mmx'; |
| 40 $sse2_x86_64 = 'sse2'; |
| 41 $ssse3_x86_64 = 'ssse3'; |
| 42 $avx_x86_64 = 'avx'; |
| 43 $avx2_x86_64 = 'avx2'; |
| 44 } else { |
| 45 $mmx_x86_64 = $sse2_x86_64 = $ssse3_x86_64 = |
| 46 $avx_x86_64 = $avx2_x86_64 = ''; |
| 47 } |
| 48 |
| 49 # |
| 50 # RECON |
| 51 # |
| 52 add_proto qw/void vp9_d207_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 53 specialize qw/vp9_d207_predictor_4x4/, "$ssse3_x86inc"; |
| 54 |
| 55 add_proto qw/void vp9_d45_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, con
st uint8_t *above, const uint8_t *left"; |
| 56 specialize qw/vp9_d45_predictor_4x4/, "$ssse3_x86inc"; |
| 57 |
| 58 add_proto qw/void vp9_d63_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, con
st uint8_t *above, const uint8_t *left"; |
| 59 specialize qw/vp9_d63_predictor_4x4/, "$ssse3_x86inc"; |
| 60 |
| 61 add_proto qw/void vp9_h_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const
uint8_t *above, const uint8_t *left"; |
| 62 specialize qw/vp9_h_predictor_4x4 neon dspr2/, "$ssse3_x86inc"; |
| 63 |
| 64 add_proto qw/void vp9_d117_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 65 specialize qw/vp9_d117_predictor_4x4/; |
| 66 |
| 67 add_proto qw/void vp9_d135_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 68 specialize qw/vp9_d135_predictor_4x4/; |
| 69 |
| 70 add_proto qw/void vp9_d153_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 71 specialize qw/vp9_d153_predictor_4x4/, "$ssse3_x86inc"; |
| 72 |
| 73 add_proto qw/void vp9_v_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, const
uint8_t *above, const uint8_t *left"; |
| 74 specialize qw/vp9_v_predictor_4x4 neon/, "$sse_x86inc"; |
| 75 |
| 76 add_proto qw/void vp9_tm_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, cons
t uint8_t *above, const uint8_t *left"; |
| 77 specialize qw/vp9_tm_predictor_4x4 neon dspr2/, "$sse_x86inc"; |
| 78 |
| 79 add_proto qw/void vp9_dc_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride, cons
t uint8_t *above, const uint8_t *left"; |
| 80 specialize qw/vp9_dc_predictor_4x4 dspr2/, "$sse_x86inc"; |
| 81 |
| 82 add_proto qw/void vp9_dc_top_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 83 specialize qw/vp9_dc_top_predictor_4x4/; |
| 84 |
| 85 add_proto qw/void vp9_dc_left_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 86 specialize qw/vp9_dc_left_predictor_4x4/; |
| 87 |
| 88 add_proto qw/void vp9_dc_128_predictor_4x4/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 89 specialize qw/vp9_dc_128_predictor_4x4/; |
| 90 |
| 91 add_proto qw/void vp9_d207_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 92 specialize qw/vp9_d207_predictor_8x8/, "$ssse3_x86inc"; |
| 93 |
| 94 add_proto qw/void vp9_d45_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, con
st uint8_t *above, const uint8_t *left"; |
| 95 specialize qw/vp9_d45_predictor_8x8/, "$ssse3_x86inc"; |
| 96 |
| 97 add_proto qw/void vp9_d63_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, con
st uint8_t *above, const uint8_t *left"; |
| 98 specialize qw/vp9_d63_predictor_8x8/, "$ssse3_x86inc"; |
| 99 |
| 100 add_proto qw/void vp9_h_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const
uint8_t *above, const uint8_t *left"; |
| 101 specialize qw/vp9_h_predictor_8x8 neon dspr2/, "$ssse3_x86inc"; |
| 102 |
| 103 add_proto qw/void vp9_d117_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 104 specialize qw/vp9_d117_predictor_8x8/; |
| 105 |
| 106 add_proto qw/void vp9_d135_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 107 specialize qw/vp9_d135_predictor_8x8/; |
| 108 |
| 109 add_proto qw/void vp9_d153_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 110 specialize qw/vp9_d153_predictor_8x8/, "$ssse3_x86inc"; |
| 111 |
| 112 add_proto qw/void vp9_v_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, const
uint8_t *above, const uint8_t *left"; |
| 113 specialize qw/vp9_v_predictor_8x8 neon/, "$sse_x86inc"; |
| 114 |
| 115 add_proto qw/void vp9_tm_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, cons
t uint8_t *above, const uint8_t *left"; |
| 116 specialize qw/vp9_tm_predictor_8x8 neon dspr2/, "$sse2_x86inc"; |
| 117 |
| 118 add_proto qw/void vp9_dc_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride, cons
t uint8_t *above, const uint8_t *left"; |
| 119 specialize qw/vp9_dc_predictor_8x8 dspr2/, "$sse_x86inc"; |
| 120 |
| 121 add_proto qw/void vp9_dc_top_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 122 specialize qw/vp9_dc_top_predictor_8x8/; |
| 123 |
| 124 add_proto qw/void vp9_dc_left_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 125 specialize qw/vp9_dc_left_predictor_8x8/; |
| 126 |
| 127 add_proto qw/void vp9_dc_128_predictor_8x8/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 128 specialize qw/vp9_dc_128_predictor_8x8/; |
| 129 |
| 130 add_proto qw/void vp9_d207_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 131 specialize qw/vp9_d207_predictor_16x16/, "$ssse3_x86inc"; |
| 132 |
| 133 add_proto qw/void vp9_d45_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, c
onst uint8_t *above, const uint8_t *left"; |
| 134 specialize qw/vp9_d45_predictor_16x16/, "$ssse3_x86inc"; |
| 135 |
| 136 add_proto qw/void vp9_d63_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, c
onst uint8_t *above, const uint8_t *left"; |
| 137 specialize qw/vp9_d63_predictor_16x16/, "$ssse3_x86inc"; |
| 138 |
| 139 add_proto qw/void vp9_h_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, con
st uint8_t *above, const uint8_t *left"; |
| 140 specialize qw/vp9_h_predictor_16x16 neon dspr2/, "$ssse3_x86inc"; |
| 141 |
| 142 add_proto qw/void vp9_d117_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 143 specialize qw/vp9_d117_predictor_16x16/; |
| 144 |
| 145 add_proto qw/void vp9_d135_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 146 specialize qw/vp9_d135_predictor_16x16/; |
| 147 |
| 148 add_proto qw/void vp9_d153_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 149 specialize qw/vp9_d153_predictor_16x16/, "$ssse3_x86inc"; |
| 150 |
| 151 add_proto qw/void vp9_v_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, con
st uint8_t *above, const uint8_t *left"; |
| 152 specialize qw/vp9_v_predictor_16x16 neon/, "$sse2_x86inc"; |
| 153 |
| 154 add_proto qw/void vp9_tm_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 155 specialize qw/vp9_tm_predictor_16x16 neon/, "$sse2_x86inc"; |
| 156 |
| 157 add_proto qw/void vp9_dc_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 158 specialize qw/vp9_dc_predictor_16x16 dspr2/, "$sse2_x86inc"; |
| 159 |
| 160 add_proto qw/void vp9_dc_top_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride
, const uint8_t *above, const uint8_t *left"; |
| 161 specialize qw/vp9_dc_top_predictor_16x16/; |
| 162 |
| 163 add_proto qw/void vp9_dc_left_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_strid
e, const uint8_t *above, const uint8_t *left"; |
| 164 specialize qw/vp9_dc_left_predictor_16x16/; |
| 165 |
| 166 add_proto qw/void vp9_dc_128_predictor_16x16/, "uint8_t *dst, ptrdiff_t y_stride
, const uint8_t *above, const uint8_t *left"; |
| 167 specialize qw/vp9_dc_128_predictor_16x16/; |
| 168 |
| 169 add_proto qw/void vp9_d207_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 170 specialize qw/vp9_d207_predictor_32x32/, "$ssse3_x86inc"; |
| 171 |
| 172 add_proto qw/void vp9_d45_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, c
onst uint8_t *above, const uint8_t *left"; |
| 173 specialize qw/vp9_d45_predictor_32x32/, "$ssse3_x86inc"; |
| 174 |
| 175 add_proto qw/void vp9_d63_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, c
onst uint8_t *above, const uint8_t *left"; |
| 176 specialize qw/vp9_d63_predictor_32x32/, "$ssse3_x86inc"; |
| 177 |
| 178 add_proto qw/void vp9_h_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, con
st uint8_t *above, const uint8_t *left"; |
| 179 specialize qw/vp9_h_predictor_32x32 neon/, "$ssse3_x86inc"; |
| 180 |
| 181 add_proto qw/void vp9_d117_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 182 specialize qw/vp9_d117_predictor_32x32/; |
| 183 |
| 184 add_proto qw/void vp9_d135_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 185 specialize qw/vp9_d135_predictor_32x32/; |
| 186 |
| 187 add_proto qw/void vp9_d153_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride,
const uint8_t *above, const uint8_t *left"; |
| 188 specialize qw/vp9_d153_predictor_32x32/; |
| 189 |
| 190 add_proto qw/void vp9_v_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, con
st uint8_t *above, const uint8_t *left"; |
| 191 specialize qw/vp9_v_predictor_32x32 neon/, "$sse2_x86inc"; |
| 192 |
| 193 add_proto qw/void vp9_tm_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 194 specialize qw/vp9_tm_predictor_32x32 neon/, "$sse2_x86_64"; |
| 195 |
| 196 add_proto qw/void vp9_dc_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride, co
nst uint8_t *above, const uint8_t *left"; |
| 197 specialize qw/vp9_dc_predictor_32x32/, "$sse2_x86inc"; |
| 198 |
| 199 add_proto qw/void vp9_dc_top_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride
, const uint8_t *above, const uint8_t *left"; |
| 200 specialize qw/vp9_dc_top_predictor_32x32/; |
| 201 |
| 202 add_proto qw/void vp9_dc_left_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_strid
e, const uint8_t *above, const uint8_t *left"; |
| 203 specialize qw/vp9_dc_left_predictor_32x32/; |
| 204 |
| 205 add_proto qw/void vp9_dc_128_predictor_32x32/, "uint8_t *dst, ptrdiff_t y_stride
, const uint8_t *above, const uint8_t *left"; |
| 206 specialize qw/vp9_dc_128_predictor_32x32/; |
| 207 |
| 208 # |
| 209 # Loopfilter |
| 210 # |
| 211 add_proto qw/void vp9_lpf_vertical_16/, "uint8_t *s, int pitch, const uint8_t *b
limit, const uint8_t *limit, const uint8_t *thresh"; |
| 212 specialize qw/vp9_lpf_vertical_16 sse2 neon dspr2/; |
| 213 |
| 214 add_proto qw/void vp9_lpf_vertical_16_dual/, "uint8_t *s, int pitch, const uint8
_t *blimit, const uint8_t *limit, const uint8_t *thresh"; |
| 215 specialize qw/vp9_lpf_vertical_16_dual sse2 neon dspr2/; |
| 216 |
| 217 add_proto qw/void vp9_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *bl
imit, const uint8_t *limit, const uint8_t *thresh, int count"; |
| 218 specialize qw/vp9_lpf_vertical_8 sse2 neon dspr2/; |
| 219 |
| 220 add_proto qw/void vp9_lpf_vertical_8_dual/, "uint8_t *s, int pitch, const uint8_
t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit
1, const uint8_t *limit1, const uint8_t *thresh1"; |
| 221 specialize qw/vp9_lpf_vertical_8_dual sse2 neon dspr2/; |
| 222 |
| 223 add_proto qw/void vp9_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *bl
imit, const uint8_t *limit, const uint8_t *thresh, int count"; |
| 224 specialize qw/vp9_lpf_vertical_4 mmx neon dspr2/; |
| 225 |
| 226 add_proto qw/void vp9_lpf_vertical_4_dual/, "uint8_t *s, int pitch, const uint8_
t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit
1, const uint8_t *limit1, const uint8_t *thresh1"; |
| 227 specialize qw/vp9_lpf_vertical_4_dual sse2 neon dspr2/; |
| 228 |
| 229 add_proto qw/void vp9_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t
*blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
| 230 specialize qw/vp9_lpf_horizontal_16 sse2 avx2 neon dspr2/; |
| 231 |
| 232 add_proto qw/void vp9_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *
blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
| 233 specialize qw/vp9_lpf_horizontal_8 sse2 neon dspr2/; |
| 234 |
| 235 add_proto qw/void vp9_lpf_horizontal_8_dual/, "uint8_t *s, int pitch, const uint
8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blim
it1, const uint8_t *limit1, const uint8_t *thresh1"; |
| 236 specialize qw/vp9_lpf_horizontal_8_dual sse2 neon dspr2/; |
| 237 |
| 238 add_proto qw/void vp9_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t *
blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
| 239 specialize qw/vp9_lpf_horizontal_4 mmx neon dspr2/; |
| 240 |
| 241 add_proto qw/void vp9_lpf_horizontal_4_dual/, "uint8_t *s, int pitch, const uint
8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blim
it1, const uint8_t *limit1, const uint8_t *thresh1"; |
| 242 specialize qw/vp9_lpf_horizontal_4_dual sse2 neon dspr2/; |
| 243 |
| 244 # |
| 245 # post proc |
| 246 # |
| 247 if (vpx_config("CONFIG_VP9_POSTPROC") eq "yes") { |
| 248 add_proto qw/void vp9_mbpost_proc_down/, "uint8_t *dst, int pitch, int rows, int
cols, int flimit"; |
| 249 specialize qw/vp9_mbpost_proc_down mmx sse2/; |
| 250 $vp9_mbpost_proc_down_sse2=vp9_mbpost_proc_down_xmm; |
| 251 |
| 252 add_proto qw/void vp9_mbpost_proc_across_ip/, "uint8_t *src, int pitch, int rows
, int cols, int flimit"; |
| 253 specialize qw/vp9_mbpost_proc_across_ip sse2/; |
| 254 $vp9_mbpost_proc_across_ip_sse2=vp9_mbpost_proc_across_ip_xmm; |
| 255 |
| 256 add_proto qw/void vp9_post_proc_down_and_across/, "const uint8_t *src_ptr, uint8
_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int col
s, int flimit"; |
| 257 specialize qw/vp9_post_proc_down_and_across mmx sse2/; |
| 258 $vp9_post_proc_down_and_across_sse2=vp9_post_proc_down_and_across_xmm; |
| 259 |
| 260 add_proto qw/void vp9_plane_add_noise/, "uint8_t *Start, char *noise, char black
clamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned
int Height, int Pitch"; |
| 261 specialize qw/vp9_plane_add_noise mmx sse2/; |
| 262 $vp9_plane_add_noise_sse2=vp9_plane_add_noise_wmt; |
| 263 } |
| 264 |
| 265 add_proto qw/void vp9_blend_mb_inner/, "uint8_t *y, uint8_t *u, uint8_t *v, int
y1, int u1, int v1, int alpha, int stride"; |
| 266 specialize qw/vp9_blend_mb_inner/; |
| 267 |
| 268 add_proto qw/void vp9_blend_mb_outer/, "uint8_t *y, uint8_t *u, uint8_t *v, int
y1, int u1, int v1, int alpha, int stride"; |
| 269 specialize qw/vp9_blend_mb_outer/; |
| 270 |
| 271 add_proto qw/void vp9_blend_b/, "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int
u1, int v1, int alpha, int stride"; |
| 272 specialize qw/vp9_blend_b/; |
| 273 |
| 274 # |
| 275 # Sub Pixel Filters |
| 276 # |
| 277 add_proto qw/void vp9_convolve_copy/, "const uint8_t *src, ptrdiff_t src_stride,
uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, con
st int16_t *filter_y, int y_step_q4, int w, int h"; |
| 278 specialize qw/vp9_convolve_copy neon dspr2/, "$sse2_x86inc"; |
| 279 |
| 280 add_proto qw/void vp9_convolve_avg/, "const uint8_t *src, ptrdiff_t src_stride,
uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, cons
t int16_t *filter_y, int y_step_q4, int w, int h"; |
| 281 specialize qw/vp9_convolve_avg neon dspr2/, "$sse2_x86inc"; |
| 282 |
| 283 add_proto qw/void vp9_convolve8/, "const uint8_t *src, ptrdiff_t src_stride, uin
t8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const i
nt16_t *filter_y, int y_step_q4, int w, int h"; |
| 284 specialize qw/vp9_convolve8 sse2 ssse3 avx2 neon dspr2/; |
| 285 |
| 286 add_proto qw/void vp9_convolve8_horiz/, "const uint8_t *src, ptrdiff_t src_strid
e, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, c
onst int16_t *filter_y, int y_step_q4, int w, int h"; |
| 287 specialize qw/vp9_convolve8_horiz sse2 ssse3 avx2 neon dspr2/; |
| 288 |
| 289 add_proto qw/void vp9_convolve8_vert/, "const uint8_t *src, ptrdiff_t src_stride
, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, co
nst int16_t *filter_y, int y_step_q4, int w, int h"; |
| 290 specialize qw/vp9_convolve8_vert sse2 ssse3 avx2 neon dspr2/; |
| 291 |
| 292 add_proto qw/void vp9_convolve8_avg/, "const uint8_t *src, ptrdiff_t src_stride,
uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, con
st int16_t *filter_y, int y_step_q4, int w, int h"; |
| 293 specialize qw/vp9_convolve8_avg sse2 ssse3 neon dspr2/; |
| 294 |
| 295 add_proto qw/void vp9_convolve8_avg_horiz/, "const uint8_t *src, ptrdiff_t src_s
tride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q
4, const int16_t *filter_y, int y_step_q4, int w, int h"; |
| 296 specialize qw/vp9_convolve8_avg_horiz sse2 ssse3 neon dspr2/; |
| 297 |
| 298 add_proto qw/void vp9_convolve8_avg_vert/, "const uint8_t *src, ptrdiff_t src_st
ride, 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"; |
| 299 specialize qw/vp9_convolve8_avg_vert sse2 ssse3 neon dspr2/; |
| 300 |
| 301 # |
| 302 # dct |
| 303 # |
| 304 add_proto qw/void vp9_idct4x4_1_add/, "const int16_t *input, uint8_t *dest, int
dest_stride"; |
| 305 specialize qw/vp9_idct4x4_1_add sse2 neon dspr2/; |
| 306 |
| 307 add_proto qw/void vp9_idct4x4_16_add/, "const int16_t *input, uint8_t *dest, int
dest_stride"; |
| 308 specialize qw/vp9_idct4x4_16_add sse2 neon dspr2/; |
| 309 |
| 310 add_proto qw/void vp9_idct8x8_1_add/, "const int16_t *input, uint8_t *dest, int
dest_stride"; |
| 311 specialize qw/vp9_idct8x8_1_add sse2 neon dspr2/; |
| 312 |
| 313 add_proto qw/void vp9_idct8x8_64_add/, "const int16_t *input, uint8_t *dest, int
dest_stride"; |
| 314 specialize qw/vp9_idct8x8_64_add sse2 neon dspr2/; |
| 315 |
| 316 add_proto qw/void vp9_idct8x8_10_add/, "const int16_t *input, uint8_t *dest, int
dest_stride"; |
| 317 specialize qw/vp9_idct8x8_10_add sse2 neon dspr2/; |
| 318 |
| 319 add_proto qw/void vp9_idct16x16_1_add/, "const int16_t *input, uint8_t *dest, in
t dest_stride"; |
| 320 specialize qw/vp9_idct16x16_1_add sse2 neon dspr2/; |
| 321 |
| 322 add_proto qw/void vp9_idct16x16_256_add/, "const int16_t *input, uint8_t *dest,
int dest_stride"; |
| 323 specialize qw/vp9_idct16x16_256_add sse2 neon dspr2/; |
| 324 |
| 325 add_proto qw/void vp9_idct16x16_10_add/, "const int16_t *input, uint8_t *dest, i
nt dest_stride"; |
| 326 specialize qw/vp9_idct16x16_10_add sse2 neon dspr2/; |
| 327 |
| 328 add_proto qw/void vp9_idct32x32_1024_add/, "const int16_t *input, uint8_t *dest,
int dest_stride"; |
| 329 specialize qw/vp9_idct32x32_1024_add sse2 neon dspr2/; |
| 330 |
| 331 add_proto qw/void vp9_idct32x32_34_add/, "const int16_t *input, uint8_t *dest, i
nt dest_stride"; |
| 332 specialize qw/vp9_idct32x32_34_add sse2 neon dspr2/; |
| 333 $vp9_idct32x32_34_add_neon=vp9_idct32x32_1024_add_neon; |
| 334 |
| 335 add_proto qw/void vp9_idct32x32_1_add/, "const int16_t *input, uint8_t *dest, in
t dest_stride"; |
| 336 specialize qw/vp9_idct32x32_1_add sse2 neon dspr2/; |
| 337 |
| 338 add_proto qw/void vp9_iht4x4_16_add/, "const int16_t *input, uint8_t *dest, int
dest_stride, int tx_type"; |
| 339 specialize qw/vp9_iht4x4_16_add sse2 neon dspr2/; |
| 340 |
| 341 add_proto qw/void vp9_iht8x8_64_add/, "const int16_t *input, uint8_t *dest, int
dest_stride, int tx_type"; |
| 342 specialize qw/vp9_iht8x8_64_add sse2 neon dspr2/; |
| 343 |
| 344 add_proto qw/void vp9_iht16x16_256_add/, "const int16_t *input, uint8_t *output,
int pitch, int tx_type"; |
| 345 specialize qw/vp9_iht16x16_256_add sse2 dspr2/; |
| 346 |
| 347 # dct and add |
| 348 |
| 349 add_proto qw/void vp9_iwht4x4_1_add/, "const int16_t *input, uint8_t *dest, int
dest_stride"; |
| 350 specialize qw/vp9_iwht4x4_1_add/; |
| 351 |
| 352 add_proto qw/void vp9_iwht4x4_16_add/, "const int16_t *input, uint8_t *dest, int
dest_stride"; |
| 353 specialize qw/vp9_iwht4x4_16_add/; |
| 354 |
| 355 # |
| 356 # Encoder functions below this point. |
| 357 # |
| 358 if (vpx_config("CONFIG_VP9_ENCODER") eq "yes") { |
| 359 |
| 360 |
| 361 # variance |
| 362 add_proto qw/unsigned int vp9_variance32x16/, "const uint8_t *src_ptr, int sourc
e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 363 specialize qw/vp9_variance32x16/, "$sse2_x86inc", "$avx2_x86inc"; |
| 364 |
| 365 add_proto qw/unsigned int vp9_variance16x32/, "const uint8_t *src_ptr, int sourc
e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 366 specialize qw/vp9_variance16x32/, "$sse2_x86inc"; |
| 367 |
| 368 add_proto qw/unsigned int vp9_variance64x32/, "const uint8_t *src_ptr, int sourc
e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 369 specialize qw/vp9_variance64x32/, "$sse2_x86inc", "$avx2_x86inc"; |
| 370 |
| 371 add_proto qw/unsigned int vp9_variance32x64/, "const uint8_t *src_ptr, int sourc
e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 372 specialize qw/vp9_variance32x64/, "$sse2_x86inc"; |
| 373 |
| 374 add_proto qw/unsigned int vp9_variance32x32/, "const uint8_t *src_ptr, int sourc
e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 375 specialize qw/vp9_variance32x32/, "$sse2_x86inc", "$avx2_x86inc"; |
| 376 |
| 377 add_proto qw/unsigned int vp9_variance64x64/, "const uint8_t *src_ptr, int sourc
e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 378 specialize qw/vp9_variance64x64/, "$sse2_x86inc", "$avx2_x86inc"; |
| 379 |
| 380 add_proto qw/unsigned int vp9_variance16x16/, "const uint8_t *src_ptr, int sourc
e_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 381 specialize qw/vp9_variance16x16 mmx/, "$sse2_x86inc", "$avx2_x86inc"; |
| 382 |
| 383 add_proto qw/void vp9_get_sse_sum_16x16/, "const uint8_t *src_ptr, int source_st
ride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; |
| 384 specialize qw/vp9_get_sse_sum_16x16 sse2/; |
| 385 $vp9_get_sse_sum_16x16_sse2=vp9_get16x16var_sse2; |
| 386 |
| 387 add_proto qw/unsigned int vp9_variance16x8/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 388 specialize qw/vp9_variance16x8 mmx/, "$sse2_x86inc"; |
| 389 |
| 390 add_proto qw/unsigned int vp9_variance8x16/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 391 specialize qw/vp9_variance8x16 mmx/, "$sse2_x86inc"; |
| 392 |
| 393 add_proto qw/unsigned int vp9_variance8x8/, "const uint8_t *src_ptr, int source_
stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 394 specialize qw/vp9_variance8x8 mmx/, "$sse2_x86inc"; |
| 395 |
| 396 add_proto qw/void vp9_get_sse_sum_8x8/, "const uint8_t *src_ptr, int source_stri
de, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; |
| 397 specialize qw/vp9_get_sse_sum_8x8 sse2/; |
| 398 $vp9_get_sse_sum_8x8_sse2=vp9_get8x8var_sse2; |
| 399 |
| 400 add_proto qw/unsigned int vp9_variance8x4/, "const uint8_t *src_ptr, int source_
stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 401 specialize qw/vp9_variance8x4/, "$sse2_x86inc"; |
| 402 |
| 403 add_proto qw/unsigned int vp9_variance4x8/, "const uint8_t *src_ptr, int source_
stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 404 specialize qw/vp9_variance4x8/, "$sse2_x86inc"; |
| 405 |
| 406 add_proto qw/unsigned int vp9_variance4x4/, "const uint8_t *src_ptr, int source_
stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| 407 specialize qw/vp9_variance4x4 mmx/, "$sse2_x86inc"; |
| 408 |
| 409 add_proto qw/unsigned int vp9_sub_pixel_variance64x64/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_s
tride, unsigned int *sse"; |
| 410 specialize qw/vp9_sub_pixel_variance64x64 avx2/, "$sse2_x86inc", "$ssse3_x86inc"
; |
| 411 |
| 412 add_proto qw/unsigned int vp9_sub_pixel_avg_variance64x64/, "const uint8_t *src_
ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int r
ef_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 413 specialize qw/vp9_sub_pixel_avg_variance64x64 avx2/, "$sse2_x86inc", "$ssse3_x86
inc"; |
| 414 |
| 415 add_proto qw/unsigned int vp9_sub_pixel_variance32x64/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_s
tride, unsigned int *sse"; |
| 416 specialize qw/vp9_sub_pixel_variance32x64/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 417 |
| 418 add_proto qw/unsigned int vp9_sub_pixel_avg_variance32x64/, "const uint8_t *src_
ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int r
ef_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 419 specialize qw/vp9_sub_pixel_avg_variance32x64/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 420 |
| 421 add_proto qw/unsigned int vp9_sub_pixel_variance64x32/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_s
tride, unsigned int *sse"; |
| 422 specialize qw/vp9_sub_pixel_variance64x32/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 423 |
| 424 add_proto qw/unsigned int vp9_sub_pixel_avg_variance64x32/, "const uint8_t *src_
ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int r
ef_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 425 specialize qw/vp9_sub_pixel_avg_variance64x32/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 426 |
| 427 add_proto qw/unsigned int vp9_sub_pixel_variance32x16/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_s
tride, unsigned int *sse"; |
| 428 specialize qw/vp9_sub_pixel_variance32x16/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 429 |
| 430 add_proto qw/unsigned int vp9_sub_pixel_avg_variance32x16/, "const uint8_t *src_
ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int r
ef_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 431 specialize qw/vp9_sub_pixel_avg_variance32x16/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 432 |
| 433 add_proto qw/unsigned int vp9_sub_pixel_variance16x32/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_s
tride, unsigned int *sse"; |
| 434 specialize qw/vp9_sub_pixel_variance16x32/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 435 |
| 436 add_proto qw/unsigned int vp9_sub_pixel_avg_variance16x32/, "const uint8_t *src_
ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int r
ef_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 437 specialize qw/vp9_sub_pixel_avg_variance16x32/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 438 |
| 439 add_proto qw/unsigned int vp9_sub_pixel_variance32x32/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_s
tride, unsigned int *sse"; |
| 440 specialize qw/vp9_sub_pixel_variance32x32 avx2/, "$sse2_x86inc", "$ssse3_x86inc"
; |
| 441 |
| 442 add_proto qw/unsigned int vp9_sub_pixel_avg_variance32x32/, "const uint8_t *src_
ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int r
ef_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 443 specialize qw/vp9_sub_pixel_avg_variance32x32 avx2/, "$sse2_x86inc", "$ssse3_x86
inc"; |
| 444 |
| 445 add_proto qw/unsigned int vp9_sub_pixel_variance16x16/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_s
tride, unsigned int *sse"; |
| 446 specialize qw/vp9_sub_pixel_variance16x16/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 447 |
| 448 add_proto qw/unsigned int vp9_sub_pixel_avg_variance16x16/, "const uint8_t *src_
ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int r
ef_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 449 specialize qw/vp9_sub_pixel_avg_variance16x16/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 450 |
| 451 add_proto qw/unsigned int vp9_sub_pixel_variance8x16/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_st
ride, unsigned int *sse"; |
| 452 specialize qw/vp9_sub_pixel_variance8x16/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 453 |
| 454 add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x16/, "const uint8_t *src_p
tr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int re
f_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 455 specialize qw/vp9_sub_pixel_avg_variance8x16/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 456 |
| 457 add_proto qw/unsigned int vp9_sub_pixel_variance16x8/, "const uint8_t *src_ptr,
int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_st
ride, unsigned int *sse"; |
| 458 specialize qw/vp9_sub_pixel_variance16x8/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 459 |
| 460 add_proto qw/unsigned int vp9_sub_pixel_avg_variance16x8/, "const uint8_t *src_p
tr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int re
f_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 461 specialize qw/vp9_sub_pixel_avg_variance16x8/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 462 |
| 463 add_proto qw/unsigned int vp9_sub_pixel_variance8x8/, "const uint8_t *src_ptr, i
nt source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_str
ide, unsigned int *sse"; |
| 464 specialize qw/vp9_sub_pixel_variance8x8/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 465 |
| 466 add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x8/, "const uint8_t *src_pt
r, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref
_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 467 specialize qw/vp9_sub_pixel_avg_variance8x8/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 468 |
| 469 # TODO(jingning): need to convert 8x4/4x8 functions into mmx/sse form |
| 470 add_proto qw/unsigned int vp9_sub_pixel_variance8x4/, "const uint8_t *src_ptr, i
nt source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stri
de, unsigned int *sse"; |
| 471 specialize qw/vp9_sub_pixel_variance8x4/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 472 |
| 473 add_proto qw/unsigned int vp9_sub_pixel_avg_variance8x4/, "const uint8_t *src_pt
r, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_
stride, unsigned int *sse, const uint8_t *second_pred"; |
| 474 specialize qw/vp9_sub_pixel_avg_variance8x4/, "$sse2_x86inc", "$ssse3_x86inc"; |
| 475 |
| 476 add_proto qw/unsigned int vp9_sub_pixel_variance4x8/, "const uint8_t *src_ptr, i
nt source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stri
de, unsigned int *sse"; |
| 477 specialize qw/vp9_sub_pixel_variance4x8/, "$sse_x86inc", "$ssse3_x86inc"; |
| 478 |
| 479 add_proto qw/unsigned int vp9_sub_pixel_avg_variance4x8/, "const uint8_t *src_pt
r, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_
stride, unsigned int *sse, const uint8_t *second_pred"; |
| 480 specialize qw/vp9_sub_pixel_avg_variance4x8/, "$sse_x86inc", "$ssse3_x86inc"; |
| 481 |
| 482 add_proto qw/unsigned int vp9_sub_pixel_variance4x4/, "const uint8_t *src_ptr, i
nt source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_str
ide, unsigned int *sse"; |
| 483 specialize qw/vp9_sub_pixel_variance4x4/, "$sse_x86inc", "$ssse3_x86inc"; |
| 484 #vp9_sub_pixel_variance4x4_sse2=vp9_sub_pixel_variance4x4_wmt |
| 485 |
| 486 add_proto qw/unsigned int vp9_sub_pixel_avg_variance4x4/, "const uint8_t *src_pt
r, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref
_stride, unsigned int *sse, const uint8_t *second_pred"; |
| 487 specialize qw/vp9_sub_pixel_avg_variance4x4/, "$sse_x86inc", "$ssse3_x86inc"; |
| 488 |
| 489 add_proto qw/unsigned int vp9_sad64x64/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 490 specialize qw/vp9_sad64x64/, "$sse2_x86inc"; |
| 491 |
| 492 add_proto qw/unsigned int vp9_sad32x64/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 493 specialize qw/vp9_sad32x64/, "$sse2_x86inc"; |
| 494 |
| 495 add_proto qw/unsigned int vp9_sad64x32/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 496 specialize qw/vp9_sad64x32/, "$sse2_x86inc"; |
| 497 |
| 498 add_proto qw/unsigned int vp9_sad32x16/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 499 specialize qw/vp9_sad32x16/, "$sse2_x86inc"; |
| 500 |
| 501 add_proto qw/unsigned int vp9_sad16x32/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 502 specialize qw/vp9_sad16x32/, "$sse2_x86inc"; |
| 503 |
| 504 add_proto qw/unsigned int vp9_sad32x32/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 505 specialize qw/vp9_sad32x32/, "$sse2_x86inc"; |
| 506 |
| 507 add_proto qw/unsigned int vp9_sad16x16/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 508 specialize qw/vp9_sad16x16 mmx/, "$sse2_x86inc"; |
| 509 |
| 510 add_proto qw/unsigned int vp9_sad16x8/, "const uint8_t *src_ptr, int source_stri
de, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 511 specialize qw/vp9_sad16x8 mmx/, "$sse2_x86inc"; |
| 512 |
| 513 add_proto qw/unsigned int vp9_sad8x16/, "const uint8_t *src_ptr, int source_stri
de, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 514 specialize qw/vp9_sad8x16 mmx/, "$sse2_x86inc"; |
| 515 |
| 516 add_proto qw/unsigned int vp9_sad8x8/, "const uint8_t *src_ptr, int source_strid
e, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 517 specialize qw/vp9_sad8x8 mmx/, "$sse2_x86inc"; |
| 518 |
| 519 add_proto qw/unsigned int vp9_sad8x4/, "const uint8_t *src_ptr, int source_strid
e, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 520 specialize qw/vp9_sad8x4/, "$sse2_x86inc"; |
| 521 |
| 522 add_proto qw/unsigned int vp9_sad4x8/, "const uint8_t *src_ptr, int source_strid
e, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 523 specialize qw/vp9_sad4x8/, "$sse_x86inc"; |
| 524 |
| 525 add_proto qw/unsigned int vp9_sad4x4/, "const uint8_t *src_ptr, int source_strid
e, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad"; |
| 526 specialize qw/vp9_sad4x4 mmx/, "$sse_x86inc"; |
| 527 |
| 528 add_proto qw/unsigned int vp9_sad64x64_avg/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, un
signed int max_sad"; |
| 529 specialize qw/vp9_sad64x64_avg/, "$sse2_x86inc"; |
| 530 |
| 531 add_proto qw/unsigned int vp9_sad32x64_avg/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, uns
igned int max_sad"; |
| 532 specialize qw/vp9_sad32x64_avg/, "$sse2_x86inc"; |
| 533 |
| 534 add_proto qw/unsigned int vp9_sad64x32_avg/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, uns
igned int max_sad"; |
| 535 specialize qw/vp9_sad64x32_avg/, "$sse2_x86inc"; |
| 536 |
| 537 add_proto qw/unsigned int vp9_sad32x16_avg/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, uns
igned int max_sad"; |
| 538 specialize qw/vp9_sad32x16_avg/, "$sse2_x86inc"; |
| 539 |
| 540 add_proto qw/unsigned int vp9_sad16x32_avg/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, uns
igned int max_sad"; |
| 541 specialize qw/vp9_sad16x32_avg/, "$sse2_x86inc"; |
| 542 |
| 543 add_proto qw/unsigned int vp9_sad32x32_avg/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, un
signed int max_sad"; |
| 544 specialize qw/vp9_sad32x32_avg/, "$sse2_x86inc"; |
| 545 |
| 546 add_proto qw/unsigned int vp9_sad16x16_avg/, "const uint8_t *src_ptr, int source
_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, un
signed int max_sad"; |
| 547 specialize qw/vp9_sad16x16_avg/, "$sse2_x86inc"; |
| 548 |
| 549 add_proto qw/unsigned int vp9_sad16x8_avg/, "const uint8_t *src_ptr, int source_
stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, uns
igned int max_sad"; |
| 550 specialize qw/vp9_sad16x8_avg/, "$sse2_x86inc"; |
| 551 |
| 552 add_proto qw/unsigned int vp9_sad8x16_avg/, "const uint8_t *src_ptr, int source_
stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, uns
igned int max_sad"; |
| 553 specialize qw/vp9_sad8x16_avg/, "$sse2_x86inc"; |
| 554 |
| 555 add_proto qw/unsigned int vp9_sad8x8_avg/, "const uint8_t *src_ptr, int source_s
tride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsi
gned int max_sad"; |
| 556 specialize qw/vp9_sad8x8_avg/, "$sse2_x86inc"; |
| 557 |
| 558 add_proto qw/unsigned int vp9_sad8x4_avg/, "const uint8_t *src_ptr, int source_s
tride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsig
ned int max_sad"; |
| 559 specialize qw/vp9_sad8x4_avg/, "$sse2_x86inc"; |
| 560 |
| 561 add_proto qw/unsigned int vp9_sad4x8_avg/, "const uint8_t *src_ptr, int source_s
tride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsig
ned int max_sad"; |
| 562 specialize qw/vp9_sad4x8_avg/, "$sse_x86inc"; |
| 563 |
| 564 add_proto qw/unsigned int vp9_sad4x4_avg/, "const uint8_t *src_ptr, int source_s
tride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsi
gned int max_sad"; |
| 565 specialize qw/vp9_sad4x4_avg/, "$sse_x86inc"; |
| 566 |
| 567 add_proto qw/unsigned int vp9_variance_halfpixvar16x16_h/, "const uint8_t *src_p
tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse
"; |
| 568 specialize qw/vp9_variance_halfpixvar16x16_h/, "$sse2_x86inc"; |
| 569 |
| 570 add_proto qw/unsigned int vp9_variance_halfpixvar16x16_v/, "const uint8_t *src_p
tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse
"; |
| 571 specialize qw/vp9_variance_halfpixvar16x16_v/, "$sse2_x86inc"; |
| 572 |
| 573 add_proto qw/unsigned int vp9_variance_halfpixvar16x16_hv/, "const uint8_t *src_
ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *ss
e"; |
| 574 specialize qw/vp9_variance_halfpixvar16x16_hv/, "$sse2_x86inc"; |
| 575 |
| 576 add_proto qw/unsigned int vp9_variance_halfpixvar64x64_h/, "const uint8_t *src_p
tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse
"; |
| 577 specialize qw/vp9_variance_halfpixvar64x64_h/; |
| 578 |
| 579 add_proto qw/unsigned int vp9_variance_halfpixvar64x64_v/, "const uint8_t *src_p
tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse
"; |
| 580 specialize qw/vp9_variance_halfpixvar64x64_v/; |
| 581 |
| 582 add_proto qw/unsigned int vp9_variance_halfpixvar64x64_hv/, "const uint8_t *src_
ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *ss
e"; |
| 583 specialize qw/vp9_variance_halfpixvar64x64_hv/; |
| 584 |
| 585 add_proto qw/unsigned int vp9_variance_halfpixvar32x32_h/, "const uint8_t *src_p
tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse
"; |
| 586 specialize qw/vp9_variance_halfpixvar32x32_h/; |
| 587 |
| 588 add_proto qw/unsigned int vp9_variance_halfpixvar32x32_v/, "const uint8_t *src_p
tr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse
"; |
| 589 specialize qw/vp9_variance_halfpixvar32x32_v/; |
| 590 |
| 591 add_proto qw/unsigned int vp9_variance_halfpixvar32x32_hv/, "const uint8_t *src_
ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *ss
e"; |
| 592 specialize qw/vp9_variance_halfpixvar32x32_hv/; |
| 593 |
| 594 add_proto qw/void vp9_sad64x64x3/, "const uint8_t *src_ptr, int source_stride, c
onst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; |
| 595 specialize qw/vp9_sad64x64x3/; |
| 596 |
| 597 add_proto qw/void vp9_sad32x32x3/, "const uint8_t *src_ptr, int source_stride, c
onst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; |
| 598 specialize qw/vp9_sad32x32x3/; |
| 599 |
| 600 add_proto qw/void vp9_sad16x16x3/, "const uint8_t *src_ptr, int source_stride, c
onst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; |
| 601 specialize qw/vp9_sad16x16x3 sse3 ssse3/; |
| 602 |
| 603 add_proto qw/void vp9_sad16x8x3/, "const uint8_t *src_ptr, int source_stride, co
nst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; |
| 604 specialize qw/vp9_sad16x8x3 sse3 ssse3/; |
| 605 |
| 606 add_proto qw/void vp9_sad8x16x3/, "const uint8_t *src_ptr, int source_stride, co
nst uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; |
| 607 specialize qw/vp9_sad8x16x3 sse3/; |
| 608 |
| 609 add_proto qw/void vp9_sad8x8x3/, "const uint8_t *src_ptr, int source_stride, con
st uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; |
| 610 specialize qw/vp9_sad8x8x3 sse3/; |
| 611 |
| 612 add_proto qw/void vp9_sad4x4x3/, "const uint8_t *src_ptr, int source_stride, con
st uint8_t *ref_ptr, int ref_stride, unsigned int *sad_array"; |
| 613 specialize qw/vp9_sad4x4x3 sse3/; |
| 614 |
| 615 add_proto qw/void vp9_sad64x64x8/, "const uint8_t *src_ptr, int src_stride, con
st uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 616 specialize qw/vp9_sad64x64x8/; |
| 617 |
| 618 add_proto qw/void vp9_sad32x32x8/, "const uint8_t *src_ptr, int src_stride, con
st uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 619 specialize qw/vp9_sad32x32x8/; |
| 620 |
| 621 add_proto qw/void vp9_sad16x16x8/, "const uint8_t *src_ptr, int src_stride, con
st uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 622 specialize qw/vp9_sad16x16x8 sse4/; |
| 623 |
| 624 add_proto qw/void vp9_sad16x8x8/, "const uint8_t *src_ptr, int src_stride, cons
t uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 625 specialize qw/vp9_sad16x8x8 sse4/; |
| 626 |
| 627 add_proto qw/void vp9_sad8x16x8/, "const uint8_t *src_ptr, int src_stride, cons
t uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 628 specialize qw/vp9_sad8x16x8 sse4/; |
| 629 |
| 630 add_proto qw/void vp9_sad8x8x8/, "const uint8_t *src_ptr, int src_stride, const
uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 631 specialize qw/vp9_sad8x8x8 sse4/; |
| 632 |
| 633 add_proto qw/void vp9_sad8x4x8/, "const uint8_t *src_ptr, int src_stride, const
uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 634 specialize qw/vp9_sad8x4x8/; |
| 635 |
| 636 add_proto qw/void vp9_sad4x8x8/, "const uint8_t *src_ptr, int src_stride, const
uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 637 specialize qw/vp9_sad4x8x8/; |
| 638 |
| 639 add_proto qw/void vp9_sad4x4x8/, "const uint8_t *src_ptr, int src_stride, const
uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array"; |
| 640 specialize qw/vp9_sad4x4x8 sse4/; |
| 641 |
| 642 add_proto qw/void vp9_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, co
nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 643 specialize qw/vp9_sad64x64x4d sse2 avx2/; |
| 644 |
| 645 add_proto qw/void vp9_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, co
nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 646 specialize qw/vp9_sad32x64x4d sse2/; |
| 647 |
| 648 add_proto qw/void vp9_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, co
nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 649 specialize qw/vp9_sad64x32x4d sse2/; |
| 650 |
| 651 add_proto qw/void vp9_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, co
nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 652 specialize qw/vp9_sad32x16x4d sse2/; |
| 653 |
| 654 add_proto qw/void vp9_sad16x32x4d/, "const uint8_t *src_ptr, int src_stride, co
nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 655 specialize qw/vp9_sad16x32x4d sse2/; |
| 656 |
| 657 add_proto qw/void vp9_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, co
nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 658 specialize qw/vp9_sad32x32x4d sse2 avx2/; |
| 659 |
| 660 add_proto qw/void vp9_sad16x16x4d/, "const uint8_t *src_ptr, int src_stride, co
nst uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 661 specialize qw/vp9_sad16x16x4d sse2/; |
| 662 |
| 663 add_proto qw/void vp9_sad16x8x4d/, "const uint8_t *src_ptr, int src_stride, con
st uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 664 specialize qw/vp9_sad16x8x4d sse2/; |
| 665 |
| 666 add_proto qw/void vp9_sad8x16x4d/, "const uint8_t *src_ptr, int src_stride, con
st uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 667 specialize qw/vp9_sad8x16x4d sse2/; |
| 668 |
| 669 add_proto qw/void vp9_sad8x8x4d/, "const uint8_t *src_ptr, int src_stride, cons
t uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 670 specialize qw/vp9_sad8x8x4d sse2/; |
| 671 |
| 672 # TODO(jingning): need to convert these 4x8/8x4 functions into sse2 form |
| 673 add_proto qw/void vp9_sad8x4x4d/, "const uint8_t *src_ptr, int src_stride, const
uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 674 specialize qw/vp9_sad8x4x4d sse2/; |
| 675 |
| 676 add_proto qw/void vp9_sad4x8x4d/, "const uint8_t *src_ptr, int src_stride, const
uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 677 specialize qw/vp9_sad4x8x4d sse/; |
| 678 |
| 679 add_proto qw/void vp9_sad4x4x4d/, "const uint8_t *src_ptr, int src_stride, cons
t uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array"; |
| 680 specialize qw/vp9_sad4x4x4d sse/; |
| 681 |
| 682 #add_proto qw/unsigned int vp9_sub_pixel_mse16x16/, "const uint8_t *src_ptr, int
src_pixels_per_line, int xoffset, int yoffset, const uint8_t *dst_ptr, int d
st_pixels_per_line, unsigned int *sse"; |
| 683 #specialize qw/vp9_sub_pixel_mse16x16 sse2 mmx/; |
| 684 |
| 685 add_proto qw/unsigned int vp9_mse16x16/, "const uint8_t *src_ptr, int source_st
ride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; |
| 686 specialize qw/vp9_mse16x16 mmx/, "$sse2_x86inc", "$avx2_x86inc"; |
| 687 |
| 688 add_proto qw/unsigned int vp9_mse8x16/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; |
| 689 specialize qw/vp9_mse8x16/; |
| 690 |
| 691 add_proto qw/unsigned int vp9_mse16x8/, "const uint8_t *src_ptr, int source_str
ide, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; |
| 692 specialize qw/vp9_mse16x8/; |
| 693 |
| 694 add_proto qw/unsigned int vp9_mse8x8/, "const uint8_t *src_ptr, int source_stri
de, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; |
| 695 specialize qw/vp9_mse8x8/; |
| 696 |
| 697 add_proto qw/unsigned int vp9_sub_pixel_mse64x64/, "const uint8_t *src_ptr, int
source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stri
de, unsigned int *sse"; |
| 698 specialize qw/vp9_sub_pixel_mse64x64/; |
| 699 |
| 700 add_proto qw/unsigned int vp9_sub_pixel_mse32x32/, "const uint8_t *src_ptr, int
source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stri
de, unsigned int *sse"; |
| 701 specialize qw/vp9_sub_pixel_mse32x32/; |
| 702 |
| 703 add_proto qw/unsigned int vp9_get_mb_ss/, "const int16_t *"; |
| 704 specialize qw/vp9_get_mb_ss mmx sse2/; |
| 705 # ENCODEMB INVOKE |
| 706 |
| 707 add_proto qw/int64_t vp9_block_error/, "const int16_t *coeff, const int16_t *dqc
oeff, intptr_t block_size, int64_t *ssz"; |
| 708 specialize qw/vp9_block_error/, "$sse2_x86inc"; |
| 709 |
| 710 add_proto qw/void vp9_subtract_block/, "int rows, int cols, int16_t *diff_ptr, p
trdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_
t *pred_ptr, ptrdiff_t pred_stride"; |
| 711 specialize qw/vp9_subtract_block/, "$sse2_x86inc"; |
| 712 |
| 713 add_proto qw/void vp9_quantize_b/, "const int16_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, int16_t *qcoeff_ptr, int16_t *dqco
eff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const
int16_t *scan, const int16_t *iscan"; |
| 714 specialize qw/vp9_quantize_b/, "$ssse3_x86_64"; |
| 715 |
| 716 add_proto qw/void vp9_quantize_b_32x32/, "const int16_t *coeff_ptr, intptr_t n_c
oeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const
int16_t *quant_ptr, const int16_t *quant_shift_ptr, int16_t *qcoeff_ptr, int16_t
*dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr,
const int16_t *scan, const int16_t *iscan"; |
| 717 specialize qw/vp9_quantize_b_32x32/, "$ssse3_x86_64"; |
| 718 |
| 719 # |
| 720 # Structured Similarity (SSIM) |
| 721 # |
| 722 if (vpx_config("CONFIG_INTERNAL_STATS") eq "yes") { |
| 723 add_proto qw/void vp9_ssim_parms_8x8/, "uint8_t *s, int sp, uint8_t *r, int
rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigne
d long *sum_sq_r, unsigned long *sum_sxr"; |
| 724 specialize qw/vp9_ssim_parms_8x8/, "$sse2_x86_64"; |
| 725 |
| 726 add_proto qw/void vp9_ssim_parms_16x16/, "uint8_t *s, int sp, uint8_t *r, in
t rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsig
ned long *sum_sq_r, unsigned long *sum_sxr"; |
| 727 specialize qw/vp9_ssim_parms_16x16/, "$sse2_x86_64"; |
| 728 } |
| 729 |
| 730 # fdct functions |
| 731 add_proto qw/void vp9_fht4x4/, "const int16_t *input, int16_t *output, int strid
e, int tx_type"; |
| 732 specialize qw/vp9_fht4x4 sse2 avx2/; |
| 733 |
| 734 add_proto qw/void vp9_fht8x8/, "const int16_t *input, int16_t *output, int strid
e, int tx_type"; |
| 735 specialize qw/vp9_fht8x8 sse2 avx2/; |
| 736 |
| 737 add_proto qw/void vp9_fht16x16/, "const int16_t *input, int16_t *output, int str
ide, int tx_type"; |
| 738 specialize qw/vp9_fht16x16 sse2 avx2/; |
| 739 |
| 740 add_proto qw/void vp9_fwht4x4/, "const int16_t *input, int16_t *output, int stri
de"; |
| 741 specialize qw/vp9_fwht4x4/; |
| 742 |
| 743 add_proto qw/void vp9_fdct4x4/, "const int16_t *input, int16_t *output, int stri
de"; |
| 744 specialize qw/vp9_fdct4x4 sse2 avx2/; |
| 745 |
| 746 add_proto qw/void vp9_fdct8x8/, "const int16_t *input, int16_t *output, int stri
de"; |
| 747 specialize qw/vp9_fdct8x8 sse2 avx2/; |
| 748 |
| 749 add_proto qw/void vp9_fdct16x16/, "const int16_t *input, int16_t *output, int st
ride"; |
| 750 specialize qw/vp9_fdct16x16 sse2 avx2/; |
| 751 |
| 752 add_proto qw/void vp9_fdct32x32/, "const int16_t *input, int16_t *output, int st
ride"; |
| 753 specialize qw/vp9_fdct32x32 sse2 avx2/; |
| 754 |
| 755 add_proto qw/void vp9_fdct32x32_rd/, "const int16_t *input, int16_t *output, int
stride"; |
| 756 specialize qw/vp9_fdct32x32_rd sse2 avx2/; |
| 757 |
| 758 # |
| 759 # Motion search |
| 760 # |
| 761 add_proto qw/int vp9_full_search_sad/, "const struct macroblock *x, const struct
mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn
_ptr, DEC_MVCOSTS, const struct mv *center_mv, struct mv *best_mv"; |
| 762 specialize qw/vp9_full_search_sad sse3 sse4_1/; |
| 763 $vp9_full_search_sad_sse3=vp9_full_search_sadx3; |
| 764 $vp9_full_search_sad_sse4_1=vp9_full_search_sadx8; |
| 765 |
| 766 add_proto qw/int vp9_refining_search_sad/, "const struct macroblock *x, struct m
v *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_p
tr, DEC_MVCOSTS, const struct mv *center_mv"; |
| 767 specialize qw/vp9_refining_search_sad sse3/; |
| 768 $vp9_refining_search_sad_sse3=vp9_refining_search_sadx4; |
| 769 |
| 770 add_proto qw/int vp9_diamond_search_sad/, "const struct macroblock *x, struct mv
*ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, con
st struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv"; |
| 771 specialize qw/vp9_diamond_search_sad sse3/; |
| 772 $vp9_diamond_search_sad_sse3=vp9_diamond_search_sadx4; |
| 773 |
| 774 add_proto qw/int vp9_full_range_search/, "const struct macroblock *x, struct mv
*ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, cons
t struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, const struct mv *center_mv"; |
| 775 specialize qw/vp9_full_range_search/; |
| 776 |
| 777 add_proto qw/void vp9_temporal_filter_apply/, "uint8_t *frame1, unsigned int str
ide, uint8_t *frame2, unsigned int block_size, int strength, int filter_weight,
unsigned int *accumulator, uint16_t *count"; |
| 778 specialize qw/vp9_temporal_filter_apply sse2/; |
| 779 |
| 780 } |
| 781 # end encoder functions |
| 782 1; |
OLD | NEW |