vp9_rtcd_defs.sh 34 KB
Newer Older
1
vp9_common_forward_decls() {
2
cat <<EOF
3 4 5
/*
 * VP9
 */
6

7
#include "vpx/vpx_integer.h"
8
#include "vp9/common/vp9_enums.h"
9

Jim Bankoski's avatar
Jim Bankoski committed
10 11 12
struct loop_filter_info;
struct blockd;
struct macroblockd;
13 14
struct loop_filter_info;

Jim Bankoski's avatar
Jim Bankoski committed
15 16 17
/* Encoder forward decls */
struct block;
struct macroblock;
18
struct vp9_variance_vtable;
Jim Bankoski's avatar
Jim Bankoski committed
19

Jim Bankoski's avatar
Jim Bankoski committed
20
#define DEC_MVCOSTS int *mvjcost, int *mvcost[2]
21 22
union int_mv;
struct yv12_buffer_config;
23 24
EOF
}
25
forward_decls vp9_common_forward_decls
26

Scott LaVarnway's avatar
Scott LaVarnway committed
27 28 29
#
# Dequant
#
30
prototype void vp9_dequant_idct_add_y_block_8x8 "int16_t *q, const int16_t *dq, uint8_t *pre, uint8_t *dst, int stride, struct macroblockd *xd"
31
specialize vp9_dequant_idct_add_y_block_8x8
Scott LaVarnway's avatar
Scott LaVarnway committed
32

33
prototype void vp9_dequant_idct_add_16x16 "int16_t *input, const int16_t *dq, uint8_t *pred, uint8_t *dest, int pitch, int stride, int eob"
34
specialize vp9_dequant_idct_add_16x16
Scott LaVarnway's avatar
Scott LaVarnway committed
35

36
prototype void vp9_dequant_idct_add_8x8 "int16_t *input, const int16_t *dq, uint8_t *pred, uint8_t *dest, int pitch, int stride, int eob"
37 38
specialize vp9_dequant_idct_add_8x8

39
prototype void vp9_dequant_idct_add "int16_t *input, const int16_t *dq, uint8_t *pred, uint8_t *dest, int pitch, int stride, int eob"
40
specialize vp9_dequant_idct_add
Scott LaVarnway's avatar
Scott LaVarnway committed
41

42
prototype void vp9_dequant_idct_add_y_block "int16_t *q, const int16_t *dq, uint8_t *pre, uint8_t *dst, int stride, struct macroblockd *xd"
43
specialize vp9_dequant_idct_add_y_block
Scott LaVarnway's avatar
Scott LaVarnway committed
44

45
prototype void vp9_dequant_idct_add_uv_block "int16_t *q, const int16_t *dq, uint8_t *pre, uint8_t *dst, int stride, uint16_t *eobs"
46
specialize vp9_dequant_idct_add_uv_block
Jim Bankoski's avatar
Jim Bankoski committed
47

48 49 50
prototype void vp9_dequant_idct_add_32x32 "int16_t *q, const int16_t *dq, uint8_t *pre, uint8_t *dst, int pitch, int stride, int eob"
specialize vp9_dequant_idct_add_32x32

Jim Bankoski's avatar
Jim Bankoski committed
51 52 53
#
# RECON
#
54
prototype void vp9_copy_mem16x16 "const uint8_t *src, int src_pitch, uint8_t *dst, int dst_pitch"
Johann's avatar
Johann committed
55
specialize vp9_copy_mem16x16 mmx sse2 dspr2
56
vp9_copy_mem16x16_dspr2=vp9_copy_mem16x16_dspr2
57

58
prototype void vp9_copy_mem8x8 "const uint8_t *src, int src_pitch, uint8_t *dst, int dst_pitch"
Johann's avatar
Johann committed
59
specialize vp9_copy_mem8x8 mmx dspr2
60
vp9_copy_mem8x8_dspr2=vp9_copy_mem8x8_dspr2
61

62
prototype void vp9_copy_mem8x4 "const uint8_t *src, int src_pitch, uint8_t *dst, int dst_pitch"
63
specialize vp9_copy_mem8x4 mmx
64

65
prototype void vp9_recon_b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride"
66
specialize vp9_recon_b
67

68
prototype void vp9_recon_uv_b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride"
69
specialize vp9_recon_uv_b
70

71
prototype void vp9_recon2b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride"
72
specialize vp9_recon2b sse2
73

74
prototype void vp9_recon4b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride"
75
specialize vp9_recon4b sse2
76

77 78
prototype void vp9_recon_mb "struct macroblockd *x"
specialize vp9_recon_mb
79

80 81
prototype void vp9_recon_mby "struct macroblockd *x"
specialize vp9_recon_mby
82

83
prototype void vp9_recon_mby_s "struct macroblockd *x, uint8_t *dst"
Jim Bankoski's avatar
Jim Bankoski committed
84 85
specialize vp9_recon_mby_s

86
prototype void vp9_recon_mbuv_s "struct macroblockd *x, uint8_t *udst, uint8_t *vdst"
Jim Bankoski's avatar
Jim Bankoski committed
87 88
specialize void vp9_recon_mbuv_s

89
prototype void vp9_recon_sby_s "struct macroblockd *x, uint8_t *dst, enum BLOCK_SIZE_TYPE bsize"
90 91
specialize vp9_recon_sby_s

92
prototype void vp9_recon_sbuv_s "struct macroblockd *x, uint8_t *udst, uint8_t *vdst, enum BLOCK_SIZE_TYPE bsize"
93 94
specialize void vp9_recon_sbuv_s

95 96
prototype void vp9_build_intra_predictors_mby_s "struct macroblockd *x"
specialize vp9_build_intra_predictors_mby_s
97

98 99
prototype void vp9_build_intra_predictors_sby_s "struct macroblockd *x"
specialize vp9_build_intra_predictors_sby_s;
100

101 102
prototype void vp9_build_intra_predictors_sbuv_s "struct macroblockd *x"
specialize vp9_build_intra_predictors_sbuv_s;
103

104 105
prototype void vp9_build_intra_predictors_mby "struct macroblockd *x"
specialize vp9_build_intra_predictors_mby;
106

107 108
prototype void vp9_build_intra_predictors_mby_s "struct macroblockd *x"
specialize vp9_build_intra_predictors_mby_s;
109

110 111
prototype void vp9_build_intra_predictors_mbuv "struct macroblockd *x"
specialize vp9_build_intra_predictors_mbuv;
112

113 114
prototype void vp9_build_intra_predictors_mbuv_s "struct macroblockd *x"
specialize vp9_build_intra_predictors_mbuv_s;
115

116 117 118 119 120 121
prototype void vp9_build_intra_predictors_sb64y_s "struct macroblockd *x"
specialize vp9_build_intra_predictors_sb64y_s;

prototype void vp9_build_intra_predictors_sb64uv_s "struct macroblockd *x"
specialize vp9_build_intra_predictors_sb64uv_s;

122
prototype void vp9_intra4x4_predict "struct macroblockd *xd, struct blockd *x, int b_mode, uint8_t *predictor"
123
specialize vp9_intra4x4_predict;
124

125
prototype void vp9_intra8x8_predict "struct macroblockd *xd, struct blockd *x, int b_mode, uint8_t *predictor"
126
specialize vp9_intra8x8_predict;
127

128
prototype void vp9_intra_uv4x4_predict "struct macroblockd *xd, struct blockd *x, int b_mode, uint8_t *predictor"
129
specialize vp9_intra_uv4x4_predict;
130

Yunqing Wang's avatar
Yunqing Wang committed
131 132 133 134 135 136 137 138 139 140 141 142
if [ "$CONFIG_VP9_DECODER" = "yes" ]; then
prototype void vp9_add_residual_4x4 "const int16_t *diff, const uint8_t *pred, int pitch, uint8_t *dest, int stride"
specialize vp9_add_residual_4x4 sse2

prototype void vp9_add_residual_8x8 "const int16_t *diff, const uint8_t *pred, int pitch, uint8_t *dest, int stride"
specialize vp9_add_residual_8x8 sse2

prototype void vp9_add_residual_16x16 "const int16_t *diff, const uint8_t *pred, int pitch, uint8_t *dest, int stride"
specialize vp9_add_residual_16x16 sse2

prototype void vp9_add_residual_32x32 "const int16_t *diff, const uint8_t *pred, int pitch, uint8_t *dest, int stride"
specialize vp9_add_residual_32x32 sse2
143 144 145 146 147 148 149 150 151

prototype void vp9_add_constant_residual_8x8 "const int16_t diff, const uint8_t *pred, int pitch, uint8_t *dest, int stride"
specialize vp9_add_constant_residual_8x8 sse2

prototype void vp9_add_constant_residual_16x16 "const int16_t diff, const uint8_t *pred, int pitch, uint8_t *dest, int stride"
specialize vp9_add_constant_residual_16x16 sse2

prototype void vp9_add_constant_residual_32x32 "const int16_t diff, const uint8_t *pred, int pitch, uint8_t *dest, int stride"
specialize vp9_add_constant_residual_32x32 sse2
Yunqing Wang's avatar
Yunqing Wang committed
152 153
fi

154 155 156
#
# Loopfilter
#
157
prototype void vp9_loop_filter_mbv "uint8_t *y, uint8_t *u, uint8_t *v, int ystride, int uv_stride, struct loop_filter_info *lfi"
158
specialize vp9_loop_filter_mbv sse2
159

160
prototype void vp9_loop_filter_bv "uint8_t *y, uint8_t *u, uint8_t *v, int ystride, int uv_stride, struct loop_filter_info *lfi"
161
specialize vp9_loop_filter_bv sse2
162

163
prototype void vp9_loop_filter_bv8x8 "uint8_t *y, uint8_t *u, uint8_t *v, int ystride, int uv_stride, struct loop_filter_info *lfi"
164
specialize vp9_loop_filter_bv8x8 sse2
165

166
prototype void vp9_loop_filter_mbh "uint8_t *y, uint8_t *u, uint8_t *v, int ystride, int uv_stride, struct loop_filter_info *lfi"
167
specialize vp9_loop_filter_mbh sse2
168

169
prototype void vp9_loop_filter_bh "uint8_t *y, uint8_t *u, uint8_t *v, int ystride, int uv_stride, struct loop_filter_info *lfi"
170
specialize vp9_loop_filter_bh sse2
171

172
prototype void vp9_loop_filter_bh8x8 "uint8_t *y, uint8_t *u, uint8_t *v, int ystride, int uv_stride, struct loop_filter_info *lfi"
173
specialize vp9_loop_filter_bh8x8 sse2
174

175
prototype void vp9_loop_filter_simple_mbv "uint8_t *y, int ystride, const uint8_t *blimit"
Johann's avatar
Johann committed
176
specialize vp9_loop_filter_simple_mbv mmx sse2
177 178 179 180
vp9_loop_filter_simple_mbv_c=vp9_loop_filter_simple_vertical_edge_c
vp9_loop_filter_simple_mbv_mmx=vp9_loop_filter_simple_vertical_edge_mmx
vp9_loop_filter_simple_mbv_sse2=vp9_loop_filter_simple_vertical_edge_sse2

181
prototype void vp9_loop_filter_simple_mbh "uint8_t *y, int ystride, const uint8_t *blimit"
Johann's avatar
Johann committed
182
specialize vp9_loop_filter_simple_mbh mmx sse2
183 184 185 186
vp9_loop_filter_simple_mbh_c=vp9_loop_filter_simple_horizontal_edge_c
vp9_loop_filter_simple_mbh_mmx=vp9_loop_filter_simple_horizontal_edge_mmx
vp9_loop_filter_simple_mbh_sse2=vp9_loop_filter_simple_horizontal_edge_sse2

187
prototype void vp9_loop_filter_simple_bv "uint8_t *y, int ystride, const uint8_t *blimit"
Johann's avatar
Johann committed
188
specialize vp9_loop_filter_simple_bv mmx sse2
189 190 191 192
vp9_loop_filter_simple_bv_c=vp9_loop_filter_bvs_c
vp9_loop_filter_simple_bv_mmx=vp9_loop_filter_bvs_mmx
vp9_loop_filter_simple_bv_sse2=vp9_loop_filter_bvs_sse2

193
prototype void vp9_loop_filter_simple_bh "uint8_t *y, int ystride, const uint8_t *blimit"
Johann's avatar
Johann committed
194
specialize vp9_loop_filter_simple_bh mmx sse2
195 196 197
vp9_loop_filter_simple_bh_c=vp9_loop_filter_bhs_c
vp9_loop_filter_simple_bh_mmx=vp9_loop_filter_bhs_mmx
vp9_loop_filter_simple_bh_sse2=vp9_loop_filter_bhs_sse2
198

Jim Bankoski's avatar
Jim Bankoski committed
199
prototype void vp9_lpf_mbh_w "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi"
200
specialize vp9_lpf_mbh_w sse2
Jim Bankoski's avatar
Jim Bankoski committed
201 202

prototype void vp9_lpf_mbv_w "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi"
203 204
specialize vp9_lpf_mbv_w sse2

Jim Bankoski's avatar
Jim Bankoski committed
205 206 207
#
# post proc
#
208
if [ "$CONFIG_POSTPROC" = "yes" ]; then
209
prototype void vp9_mbpost_proc_down "uint8_t *dst, int pitch, int rows, int cols, int flimit"
Jim Bankoski's avatar
Jim Bankoski committed
210 211 212
specialize vp9_mbpost_proc_down mmx sse2
vp9_mbpost_proc_down_sse2=vp9_mbpost_proc_down_xmm

213
prototype void vp9_mbpost_proc_across_ip "uint8_t *src, int pitch, int rows, int cols, int flimit"
Jim Bankoski's avatar
Jim Bankoski committed
214 215 216
specialize vp9_mbpost_proc_across_ip sse2
vp9_mbpost_proc_across_ip_sse2=vp9_mbpost_proc_across_ip_xmm

217
prototype void vp9_post_proc_down_and_across "uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit"
Jim Bankoski's avatar
Jim Bankoski committed
218 219 220
specialize vp9_post_proc_down_and_across mmx sse2
vp9_post_proc_down_and_across_sse2=vp9_post_proc_down_and_across_xmm

221
prototype void vp9_plane_add_noise "uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch"
Jim Bankoski's avatar
Jim Bankoski committed
222 223
specialize vp9_plane_add_noise mmx sse2
vp9_plane_add_noise_sse2=vp9_plane_add_noise_wmt
224
fi
Jim Bankoski's avatar
Jim Bankoski committed
225

226
prototype void vp9_blend_mb_inner "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
Jim Bankoski's avatar
Jim Bankoski committed
227 228
specialize vp9_blend_mb_inner

229
prototype void vp9_blend_mb_outer "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
Jim Bankoski's avatar
Jim Bankoski committed
230 231
specialize vp9_blend_mb_outer

232
prototype void vp9_blend_b "uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride"
Jim Bankoski's avatar
Jim Bankoski committed
233 234
specialize vp9_blend_b

235 236 237
#
# sad 16x3, 3x16
#
238
prototype unsigned int vp9_sad16x3 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int ref_stride"
239
specialize vp9_sad16x3 sse2
240

241
prototype unsigned int vp9_sad3x16 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int ref_stride"
242
specialize vp9_sad3x16 sse2
243

Yaowu Xu's avatar
Yaowu Xu committed
244
prototype unsigned int vp9_sub_pixel_variance16x2 "const uint8_t *src_ptr, const int source_stride, const int xoffset, const int  yoffset, const uint8_t *ref_ptr, const int ref_stride, unsigned int *sse"
245 246
specialize vp9_sub_pixel_variance16x2 sse2

247 248 249
#
# Sub Pixel Filters
#
John Koleszar's avatar
John Koleszar committed
250
prototype void vp9_convolve8 "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
251
specialize vp9_convolve8 ssse3
252

John Koleszar's avatar
John Koleszar committed
253
prototype void vp9_convolve8_horiz "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
254
specialize vp9_convolve8_horiz ssse3
255

John Koleszar's avatar
John Koleszar committed
256
prototype void vp9_convolve8_vert "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
257
specialize vp9_convolve8_vert ssse3
258

John Koleszar's avatar
John Koleszar committed
259
prototype void vp9_convolve8_avg "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
260
specialize vp9_convolve8_avg ssse3
261

John Koleszar's avatar
John Koleszar committed
262
prototype void vp9_convolve8_avg_horiz "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
263
specialize vp9_convolve8_avg_horiz ssse3
264

John Koleszar's avatar
John Koleszar committed
265
prototype void vp9_convolve8_avg_vert "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
266
specialize vp9_convolve8_avg_vert ssse3
267

268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
#if CONFIG_IMPLICIT_COMPOUNDINTER_WEIGHT
prototype void vp9_convolve8_1by8 "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_1by8

prototype void vp9_convolve8_qtr "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_qtr

prototype void vp9_convolve8_3by8 "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_3by8

prototype void vp9_convolve8_5by8 "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_5by8

prototype void vp9_convolve8_3qtr "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_3qtr

prototype void vp9_convolve8_7by8 "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_7by8

prototype void vp9_convolve8_1by8_horiz "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_1by8_horiz

prototype void vp9_convolve8_qtr_horiz "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_qtr_horiz

prototype void vp9_convolve8_3by8_horiz "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_3by8_horiz

prototype void vp9_convolve8_5by8_horiz "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_5by8_horiz

prototype void vp9_convolve8_3qtr_horiz "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_3qtr_horiz

prototype void vp9_convolve8_7by8_horiz "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_7by8_horiz

prototype void vp9_convolve8_1by8_vert "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_1by8_vert

prototype void vp9_convolve8_qtr_vert "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_qtr_vert

prototype void vp9_convolve8_3by8_vert "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_3by8_vert

prototype void vp9_convolve8_5by8_vert "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_5by8_vert

prototype void vp9_convolve8_3qtr_vert "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_3qtr_vert

prototype void vp9_convolve8_7by8_vert "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h"
specialize vp9_convolve8_7by8_vert
#endif

324 325 326
#
# dct
#
Yaowu Xu's avatar
Yaowu Xu committed
327 328
prototype void vp9_short_idct4x4_1 "int16_t *input, int16_t *output, int pitch"
specialize vp9_short_idct4x4_1
329

Yaowu Xu's avatar
Yaowu Xu committed
330 331
prototype void vp9_short_idct4x4 "int16_t *input, int16_t *output, int pitch"
specialize vp9_short_idct4x4 sse2
332

333
prototype void vp9_short_idct8x8 "int16_t *input, int16_t *output, int pitch"
Yunqing Wang's avatar
Yunqing Wang committed
334
specialize vp9_short_idct8x8 sse2
335

336
prototype void vp9_short_idct10_8x8 "int16_t *input, int16_t *output, int pitch"
Yunqing Wang's avatar
Yunqing Wang committed
337
specialize vp9_short_idct10_8x8 sse2
338

Yaowu Xu's avatar
Yaowu Xu committed
339 340 341
prototype void vp9_short_idct1_8x8 "int16_t *input, int16_t *output"
specialize vp9_short_idct1_8x8

342
prototype void vp9_short_idct16x16 "int16_t *input, int16_t *output, int pitch"
Yunqing Wang's avatar
Yunqing Wang committed
343
specialize vp9_short_idct16x16 sse2
344

345
prototype void vp9_short_idct10_16x16 "int16_t *input, int16_t *output, int pitch"
Yunqing Wang's avatar
Yunqing Wang committed
346
specialize vp9_short_idct10_16x16 sse2
347

Yaowu Xu's avatar
Yaowu Xu committed
348 349 350 351
prototype void vp9_short_idct1_16x16 "int16_t *input, int16_t *output"
specialize vp9_short_idct1_16x16


352
prototype void vp9_short_idct32x32 "int16_t *input, int16_t *output, int pitch"
Yunqing Wang's avatar
Yunqing Wang committed
353
specialize vp9_short_idct32x32 sse2
354

355 356 357
prototype void vp9_short_idct1_32x32 "int16_t *input, int16_t *output"
specialize vp9_short_idct1_32x32

Yunqing Wang's avatar
Yunqing Wang committed
358 359 360
prototype void vp9_short_idct10_32x32 "int16_t *input, int16_t *output, int pitch"
specialize vp9_short_idct10_32x32

Jingning Han's avatar
Jingning Han committed
361
prototype void vp9_short_iht8x8 "int16_t *input, int16_t *output, int pitch, int tx_type"
362 363
specialize vp9_short_iht8x8

Jingning Han's avatar
Jingning Han committed
364 365 366
prototype void vp9_short_iht4x4 "int16_t *input, int16_t *output, int pitch, int tx_type"
specialize vp9_short_iht4x4

367 368
prototype void vp9_short_iht16x16 "int16_t *input, int16_t *output, int pitch, int tx_type"
specialize vp9_short_iht16x16
369

Yunqing Wang's avatar
Yunqing Wang committed
370 371 372
prototype void vp9_idct4_1d "int16_t *input, int16_t *output"
specialize vp9_idct4_1d sse2

373 374
# dct and add

375
prototype void vp9_dc_only_idct_add "int input_dc, uint8_t *pred_ptr, uint8_t *dst_ptr, int pitch, int stride"
376
specialize vp9_dc_only_idct_add sse2
377

Yaowu Xu's avatar
Yaowu Xu committed
378 379 380 381
prototype void vp9_short_iwalsh4x4_1 "int16_t *input, int16_t *output, int pitch"
specialize vp9_short_iwalsh4x4_1
prototype void vp9_short_iwalsh4x4 "int16_t *input, int16_t *output, int pitch"
specialize vp9_short_iwalsh4x4
382
prototype void vp9_dc_only_inv_walsh_add "int input_dc, uint8_t *pred_ptr, uint8_t *dst_ptr, int pitch, int stride"
Yaowu Xu's avatar
Yaowu Xu committed
383
specialize vp9_dc_only_inv_walsh_add
384

385
prototype unsigned int vp9_sad32x3 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int ref_stride, int max_sad"
386 387
specialize vp9_sad32x3

388
prototype unsigned int vp9_sad3x32 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int ref_stride, int max_sad"
389 390
specialize vp9_sad3x32

391 392 393
#
# Encoder functions below this point.
#
394
if [ "$CONFIG_VP9_ENCODER" = "yes" ]; then
395 396 397 398 399


# variance
[ $arch = "x86_64" ] && mmx_x86_64=mmx && sse2_x86_64=sse2

400
prototype unsigned int vp9_variance32x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
401
specialize vp9_variance32x32
402

Ronald S. Bultje's avatar
Ronald S. Bultje committed
403 404 405
prototype unsigned int vp9_variance64x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
specialize vp9_variance64x64

406
prototype unsigned int vp9_variance16x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
407 408 409
specialize vp9_variance16x16 mmx sse2
vp9_variance16x16_sse2=vp9_variance16x16_wmt
vp9_variance16x16_mmx=vp9_variance16x16_mmx
410

411
prototype unsigned int vp9_variance16x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
412 413 414
specialize vp9_variance16x8 mmx sse2
vp9_variance16x8_sse2=vp9_variance16x8_wmt
vp9_variance16x8_mmx=vp9_variance16x8_mmx
415

416
prototype unsigned int vp9_variance8x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
417 418 419
specialize vp9_variance8x16 mmx sse2
vp9_variance8x16_sse2=vp9_variance8x16_wmt
vp9_variance8x16_mmx=vp9_variance8x16_mmx
420

421
prototype unsigned int vp9_variance8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
422 423 424
specialize vp9_variance8x8 mmx sse2
vp9_variance8x8_sse2=vp9_variance8x8_wmt
vp9_variance8x8_mmx=vp9_variance8x8_mmx
425

426
prototype unsigned int vp9_variance4x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
427 428 429
specialize vp9_variance4x4 mmx sse2
vp9_variance4x4_sse2=vp9_variance4x4_wmt
vp9_variance4x4_mmx=vp9_variance4x4_mmx
430

Yaowu Xu's avatar
Yaowu Xu committed
431
prototype unsigned int vp9_sub_pixel_variance64x64 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
432
specialize vp9_sub_pixel_variance64x64 sse2
Ronald S. Bultje's avatar
Ronald S. Bultje committed
433

Yaowu Xu's avatar
Yaowu Xu committed
434
prototype unsigned int vp9_sub_pixel_variance32x32 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
435
specialize vp9_sub_pixel_variance32x32 sse2
436

Yaowu Xu's avatar
Yaowu Xu committed
437
prototype unsigned int vp9_sub_pixel_variance16x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
438
specialize vp9_sub_pixel_variance16x16 sse2 mmx ssse3
439

Yaowu Xu's avatar
Yaowu Xu committed
440
prototype unsigned int vp9_sub_pixel_variance8x16 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
441 442
specialize vp9_sub_pixel_variance8x16 sse2 mmx
vp9_sub_pixel_variance8x16_sse2=vp9_sub_pixel_variance8x16_wmt
443

Yaowu Xu's avatar
Yaowu Xu committed
444
prototype unsigned int vp9_sub_pixel_variance16x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
445 446 447
specialize vp9_sub_pixel_variance16x8 sse2 mmx ssse3
vp9_sub_pixel_variance16x8_sse2=vp9_sub_pixel_variance16x8_ssse3;
vp9_sub_pixel_variance16x8_sse2=vp9_sub_pixel_variance16x8_wmt
448

Yaowu Xu's avatar
Yaowu Xu committed
449
prototype unsigned int vp9_sub_pixel_variance8x8 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
450 451
specialize vp9_sub_pixel_variance8x8 sse2 mmx
vp9_sub_pixel_variance8x8_sse2=vp9_sub_pixel_variance8x8_wmt
452

Yaowu Xu's avatar
Yaowu Xu committed
453
prototype unsigned int vp9_sub_pixel_variance4x4 "const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
454 455
specialize vp9_sub_pixel_variance4x4 sse2 mmx
vp9_sub_pixel_variance4x4_sse2=vp9_sub_pixel_variance4x4_wmt
456

Ronald S. Bultje's avatar
Ronald S. Bultje committed
457
prototype unsigned int vp9_sad64x64 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
458
specialize vp9_sad64x64 sse2
Ronald S. Bultje's avatar
Ronald S. Bultje committed
459

460
prototype unsigned int vp9_sad32x32 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
461
specialize vp9_sad32x32 sse2
462

463
prototype unsigned int vp9_sad16x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
464
specialize vp9_sad16x16 mmx sse2
465

466
prototype unsigned int vp9_sad16x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
467
specialize vp9_sad16x8 mmx sse2
468

469
prototype unsigned int vp9_sad8x16 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
470
specialize vp9_sad8x16 mmx sse2
471

472
prototype unsigned int vp9_sad8x8 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
473
specialize vp9_sad8x8 mmx sse2
474

475
prototype unsigned int vp9_sad4x4 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad"
476
specialize vp9_sad4x4 mmx sse
477

478
prototype unsigned int vp9_variance_halfpixvar16x16_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
479 480
specialize vp9_variance_halfpixvar16x16_h mmx sse2
vp9_variance_halfpixvar16x16_h_sse2=vp9_variance_halfpixvar16x16_h_wmt
481

482
prototype unsigned int vp9_variance_halfpixvar16x16_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
483 484
specialize vp9_variance_halfpixvar16x16_v mmx sse2
vp9_variance_halfpixvar16x16_v_sse2=vp9_variance_halfpixvar16x16_v_wmt
485

486
prototype unsigned int vp9_variance_halfpixvar16x16_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
487 488
specialize vp9_variance_halfpixvar16x16_hv mmx sse2
vp9_variance_halfpixvar16x16_hv_sse2=vp9_variance_halfpixvar16x16_hv_wmt
489

Ronald S. Bultje's avatar
Ronald S. Bultje committed
490 491 492 493 494 495 496 497 498
prototype unsigned int vp9_variance_halfpixvar64x64_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
specialize vp9_variance_halfpixvar64x64_h

prototype unsigned int vp9_variance_halfpixvar64x64_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
specialize vp9_variance_halfpixvar64x64_v

prototype unsigned int vp9_variance_halfpixvar64x64_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
specialize vp9_variance_halfpixvar64x64_hv

499
prototype unsigned int vp9_variance_halfpixvar32x32_h "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
500
specialize vp9_variance_halfpixvar32x32_h
501

502
prototype unsigned int vp9_variance_halfpixvar32x32_v "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
503
specialize vp9_variance_halfpixvar32x32_v
504

505
prototype unsigned int vp9_variance_halfpixvar32x32_hv "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"
506
specialize vp9_variance_halfpixvar32x32_hv
507

Ronald S. Bultje's avatar
Ronald S. Bultje committed
508 509 510
prototype void vp9_sad64x64x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
specialize vp9_sad64x64x3

511
prototype void vp9_sad32x32x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
512
specialize vp9_sad32x32x3
513

514
prototype void vp9_sad16x16x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
515
specialize vp9_sad16x16x3 sse3 ssse3
516

517
prototype void vp9_sad16x8x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
518
specialize vp9_sad16x8x3 sse3 ssse3
519

520
prototype void vp9_sad8x16x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
521
specialize vp9_sad8x16x3 sse3
522

523
prototype void vp9_sad8x8x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
524
specialize vp9_sad8x8x3 sse3
525

526
prototype void vp9_sad4x4x3 "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array"
527
specialize vp9_sad4x4x3 sse3
528

529
prototype void vp9_sad64x64x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
Ronald S. Bultje's avatar
Ronald S. Bultje committed
530 531
specialize vp9_sad64x64x8

532
prototype void vp9_sad32x32x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
533
specialize vp9_sad32x32x8
534

535
prototype void vp9_sad16x16x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
536
specialize vp9_sad16x16x8 sse4
537

538
prototype void vp9_sad16x8x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
539
specialize vp9_sad16x8x8 sse4
540

541
prototype void vp9_sad8x16x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
542
specialize vp9_sad8x16x8 sse4
543

544
prototype void vp9_sad8x8x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
545
specialize vp9_sad8x8x8 sse4
546

547
prototype void vp9_sad4x4x8 "const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array"
548
specialize vp9_sad4x4x8 sse4
549

550
prototype void vp9_sad64x64x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
551
specialize vp9_sad64x64x4d sse2
Ronald S. Bultje's avatar
Ronald S. Bultje committed
552

553
prototype void vp9_sad32x32x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
554
specialize vp9_sad32x32x4d sse2
555

556
prototype void vp9_sad16x16x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
557
specialize vp9_sad16x16x4d sse2
558

559
prototype void vp9_sad16x8x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
560
specialize vp9_sad16x8x4d sse2
561

562
prototype void vp9_sad8x16x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
563
specialize vp9_sad8x16x4d sse2
564

565
prototype void vp9_sad8x8x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
566
specialize vp9_sad8x8x4d sse2
567

568
prototype void vp9_sad4x4x4d "const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array"
569
specialize vp9_sad4x4x4d sse
570
prototype 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 dst_pixels_per_line, unsigned int *sse"
571
specialize vp9_sub_pixel_mse16x16 sse2 mmx
572

573
prototype unsigned int vp9_mse16x16 "const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse"
574 575
specialize vp9_mse16x16 mmx sse2
vp9_mse16x16_sse2=vp9_mse16x16_wmt
576

Yaowu Xu's avatar
Yaowu Xu committed
577
prototype 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_stride, unsigned int *sse"
Ronald S. Bultje's avatar
Ronald S. Bultje committed
578 579
specialize vp9_sub_pixel_mse64x64

Yaowu Xu's avatar
Yaowu Xu committed
580
prototype 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_stride, unsigned int *sse"
581
specialize vp9_sub_pixel_mse32x32
582

583
prototype unsigned int vp9_get_mb_ss "const int16_t *"
584
specialize vp9_get_mb_ss mmx sse2
Jim Bankoski's avatar
Jim Bankoski committed
585
# ENCODEMB INVOKE
586
prototype int vp9_mbblock_error "struct macroblock *mb"
587 588
specialize vp9_mbblock_error mmx sse2
vp9_mbblock_error_sse2=vp9_mbblock_error_xmm
Jim Bankoski's avatar
Jim Bankoski committed
589

590
prototype int vp9_block_error "int16_t *coeff, int16_t *dqcoeff, int block_size"
591 592
specialize vp9_block_error mmx sse2
vp9_block_error_sse2=vp9_block_error_xmm
Jim Bankoski's avatar
Jim Bankoski committed
593

594 595
prototype void vp9_subtract_b "struct block *be, struct blockd *bd, int pitch"
specialize vp9_subtract_b mmx sse2
Jim Bankoski's avatar
Jim Bankoski committed
596

597
prototype int vp9_mbuverror "struct macroblock *mb"
598
specialize vp9_mbuverror
Jim Bankoski's avatar
Jim Bankoski committed
599

600 601
prototype void vp9_subtract_b "struct block *be, struct blockd *bd, int pitch"
specialize vp9_subtract_b mmx sse2
Jim Bankoski's avatar
Jim Bankoski committed
602

603
prototype void vp9_subtract_mby "int16_t *diff, uint8_t *src, uint8_t *pred, int stride"
604
specialize vp9_subtract_mby mmx sse2
Jim Bankoski's avatar
Jim Bankoski committed
605

606
prototype void vp9_subtract_mbuv "int16_t *diff, uint8_t *usrc, uint8_t *vsrc, uint8_t *pred, int stride"
607
specialize vp9_subtract_mbuv mmx sse2
608 609 610 611 612 613 614

#
# Structured Similarity (SSIM)
#
if [ "$CONFIG_INTERNAL_STATS" = "yes" ]; then
    [ $arch = "x86_64" ] && sse2_on_x86_64=sse2

615
    prototype void vp9_ssim_parms_8x8 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
616
    specialize vp9_ssim_parms_8x8 $sse2_on_x86_64
617

618
    prototype void vp9_ssim_parms_16x16 "uint8_t *s, int sp, uint8_t *r, int rp, unsigned long *sum_s, unsigned long *sum_r, unsigned long *sum_sq_s, unsigned long *sum_sq_r, unsigned long *sum_sxr"
619
    specialize vp9_ssim_parms_16x16 $sse2_on_x86_64
620 621
fi

Jim Bankoski's avatar
Jim Bankoski committed
622
# fdct functions
623 624 625 626 627 628 629 630 631
prototype void vp9_short_fht4x4 "int16_t *InputData, int16_t *OutputData, int pitch, int tx_type"
specialize vp9_short_fht4x4

prototype void vp9_short_fht8x8 "int16_t *InputData, int16_t *OutputData, int pitch, int tx_type"
specialize vp9_short_fht8x8

prototype void vp9_short_fht16x16 "int16_t *InputData, int16_t *OutputData, int pitch, int tx_type"
specialize vp9_short_fht16x16

632
prototype void vp9_short_fdct8x8 "int16_t *InputData, int16_t *OutputData, int pitch"
Christian Duvivier's avatar
Christian Duvivier committed
633
specialize vp9_short_fdct8x8 sse2
Jim Bankoski's avatar
Jim Bankoski committed
634

635
prototype void vp9_short_fdct4x4 "int16_t *InputData, int16_t *OutputData, int pitch"
636
specialize vp9_short_fdct4x4
Jim Bankoski's avatar
Jim Bankoski committed
637

638
prototype void vp9_short_fdct8x4 "int16_t *InputData, int16_t *OutputData, int pitch"
639
specialize vp9_short_fdct8x4
Jim Bankoski's avatar
Jim Bankoski committed
640

641
prototype void vp9_short_fdct32x32 "int16_t *InputData, int16_t *OutputData, int pitch"
642 643
specialize vp9_short_fdct32x32

644
prototype void vp9_short_fdct16x16 "int16_t *InputData, int16_t *OutputData, int pitch"
645
specialize vp9_short_fdct16x16 sse2
Jim Bankoski's avatar
Jim Bankoski committed
646

Yaowu Xu's avatar
Yaowu Xu committed
647 648
prototype void vp9_short_walsh4x4 "int16_t *InputData, int16_t *OutputData, int pitch"
specialize vp9_short_walsh4x4
Jim Bankoski's avatar
Jim Bankoski committed
649

Yaowu Xu's avatar
Yaowu Xu committed
650 651
prototype void vp9_short_walsh8x4 "int16_t *InputData, int16_t *OutputData, int pitch"
specialize vp9_short_walsh8x4
Jim Bankoski's avatar
Jim Bankoski committed
652

Jim Bankoski's avatar
Jim Bankoski committed
653 654 655
#
# Motion search
#
656
prototype int vp9_full_search_sad "struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, union int_mv *center_mv"
Jim Bankoski's avatar
Jim Bankoski committed
657 658 659 660
specialize vp9_full_search_sad sse3 sse4_1
vp9_full_search_sad_sse3=vp9_full_search_sadx3
vp9_full_search_sad_sse4_1=vp9_full_search_sadx8

661
prototype int vp9_refining_search_sad "struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, union int_mv *center_mv"
Jim Bankoski's avatar
Jim Bankoski committed
662 663 664
specialize vp9_refining_search_sad sse3
vp9_refining_search_sad_sse3=vp9_refining_search_sadx4

665
prototype int vp9_diamond_search_sad "struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, union int_mv *best_mv, int search_param, int sad_per_bit, int *num00, struct vp9_variance_vtable *fn_ptr, DEC_MVCOSTS, union int_mv *center_mv"
Jim Bankoski's avatar
Jim Bankoski committed
666
specialize vp9_diamond_search_sad sse3
Jim Bankoski's avatar
Jim Bankoski committed
667 668
vp9_diamond_search_sad_sse3=vp9_diamond_search_sadx4

669
prototype void vp9_temporal_filter_apply "uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count"
Jim Bankoski's avatar
Jim Bankoski committed
670 671
specialize vp9_temporal_filter_apply sse2

672
prototype void vp9_yv12_copy_partial_frame "struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc, int fraction"
Johann's avatar
Johann committed
673
specialize vp9_yv12_copy_partial_frame
674

Jim Bankoski's avatar
Jim Bankoski committed
675

676 677
fi
# end encoder functions