xref: /aosp_15_r20/external/libvpx/vp8/common/rtcd_defs.pl (revision fb1b10ab9aebc7c7068eedab379b749d7e3900be)
1*fb1b10abSAndroid Build Coastguard Worker##
2*fb1b10abSAndroid Build Coastguard Worker##  Copyright (c) 2017 The WebM project authors. All Rights Reserved.
3*fb1b10abSAndroid Build Coastguard Worker##
4*fb1b10abSAndroid Build Coastguard Worker##  Use of this source code is governed by a BSD-style license
5*fb1b10abSAndroid Build Coastguard Worker##  that can be found in the LICENSE file in the root of the source
6*fb1b10abSAndroid Build Coastguard Worker##  tree. An additional intellectual property rights grant can be found
7*fb1b10abSAndroid Build Coastguard Worker##  in the file PATENTS.  All contributing project authors may
8*fb1b10abSAndroid Build Coastguard Worker##  be found in the AUTHORS file in the root of the source tree.
9*fb1b10abSAndroid Build Coastguard Worker##
10*fb1b10abSAndroid Build Coastguard Worker
11*fb1b10abSAndroid Build Coastguard Workersub vp8_common_forward_decls() {
12*fb1b10abSAndroid Build Coastguard Workerprint <<EOF
13*fb1b10abSAndroid Build Coastguard Worker/*
14*fb1b10abSAndroid Build Coastguard Worker * VP8
15*fb1b10abSAndroid Build Coastguard Worker */
16*fb1b10abSAndroid Build Coastguard Worker
17*fb1b10abSAndroid Build Coastguard Workerstruct blockd;
18*fb1b10abSAndroid Build Coastguard Workerstruct macroblockd;
19*fb1b10abSAndroid Build Coastguard Workerstruct loop_filter_info;
20*fb1b10abSAndroid Build Coastguard Worker
21*fb1b10abSAndroid Build Coastguard Worker/* Encoder forward decls */
22*fb1b10abSAndroid Build Coastguard Workerstruct block;
23*fb1b10abSAndroid Build Coastguard Workerstruct macroblock;
24*fb1b10abSAndroid Build Coastguard Workerstruct variance_vtable;
25*fb1b10abSAndroid Build Coastguard Workerunion int_mv;
26*fb1b10abSAndroid Build Coastguard Workerstruct yv12_buffer_config;
27*fb1b10abSAndroid Build Coastguard WorkerEOF
28*fb1b10abSAndroid Build Coastguard Worker}
29*fb1b10abSAndroid Build Coastguard Workerforward_decls qw/vp8_common_forward_decls/;
30*fb1b10abSAndroid Build Coastguard Worker
31*fb1b10abSAndroid Build Coastguard Worker#
32*fb1b10abSAndroid Build Coastguard Worker# Dequant
33*fb1b10abSAndroid Build Coastguard Worker#
34*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_dequantize_b/, "struct blockd*, short *DQC";
35*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_dequantize_b mmx neon msa mmi/;
36*fb1b10abSAndroid Build Coastguard Worker
37*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_dequant_idct_add/, "short *input, short *dq, unsigned char *dest, int stride";
38*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_dequant_idct_add mmx neon dspr2 msa mmi/;
39*fb1b10abSAndroid Build Coastguard Worker
40*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_dequant_idct_add_y_block/, "short *q, short *dq, unsigned char *dst, int stride, char *eobs";
41*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_dequant_idct_add_y_block sse2 neon dspr2 msa mmi lsx/;
42*fb1b10abSAndroid Build Coastguard Worker
43*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_dequant_idct_add_uv_block/, "short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs";
44*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_dequant_idct_add_uv_block sse2 neon dspr2 msa mmi lsx/;
45*fb1b10abSAndroid Build Coastguard Worker
46*fb1b10abSAndroid Build Coastguard Worker#
47*fb1b10abSAndroid Build Coastguard Worker# Loopfilter
48*fb1b10abSAndroid Build Coastguard Worker#
49*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_loop_filter_mbv/, "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi";
50*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_loop_filter_mbv sse2 neon dspr2 msa mmi lsx/;
51*fb1b10abSAndroid Build Coastguard Worker
52*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_loop_filter_bv/, "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi";
53*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_loop_filter_bv sse2 neon dspr2 msa mmi lsx/;
54*fb1b10abSAndroid Build Coastguard Worker
55*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_loop_filter_mbh/, "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi";
56*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_loop_filter_mbh sse2 neon dspr2 msa mmi lsx/;
57*fb1b10abSAndroid Build Coastguard Worker
58*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_loop_filter_bh/, "unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, int y_stride, int uv_stride, struct loop_filter_info *lfi";
59*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_loop_filter_bh sse2 neon dspr2 msa mmi lsx/;
60*fb1b10abSAndroid Build Coastguard Worker
61*fb1b10abSAndroid Build Coastguard Worker
62*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_loop_filter_simple_mbv/, "unsigned char *y_ptr, int y_stride, const unsigned char *blimit";
63*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_loop_filter_simple_mbv sse2 neon msa mmi/;
64*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbv_c=vp8_loop_filter_simple_vertical_edge_c;
65*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbv_sse2=vp8_loop_filter_simple_vertical_edge_sse2;
66*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbv_neon=vp8_loop_filter_mbvs_neon;
67*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbv_msa=vp8_loop_filter_simple_vertical_edge_msa;
68*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbv_mmi=vp8_loop_filter_simple_vertical_edge_mmi;
69*fb1b10abSAndroid Build Coastguard Worker
70*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_loop_filter_simple_mbh/, "unsigned char *y_ptr, int y_stride, const unsigned char *blimit";
71*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_loop_filter_simple_mbh sse2 neon msa mmi/;
72*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbh_c=vp8_loop_filter_simple_horizontal_edge_c;
73*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbh_sse2=vp8_loop_filter_simple_horizontal_edge_sse2;
74*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbh_neon=vp8_loop_filter_mbhs_neon;
75*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbh_msa=vp8_loop_filter_simple_horizontal_edge_msa;
76*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_mbh_mmi=vp8_loop_filter_simple_horizontal_edge_mmi;
77*fb1b10abSAndroid Build Coastguard Worker
78*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_loop_filter_simple_bv/, "unsigned char *y_ptr, int y_stride, const unsigned char *blimit";
79*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_loop_filter_simple_bv sse2 neon msa mmi/;
80*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bv_c=vp8_loop_filter_bvs_c;
81*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bv_sse2=vp8_loop_filter_bvs_sse2;
82*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bv_neon=vp8_loop_filter_bvs_neon;
83*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bv_msa=vp8_loop_filter_bvs_msa;
84*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bv_mmi=vp8_loop_filter_bvs_mmi;
85*fb1b10abSAndroid Build Coastguard Worker
86*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_loop_filter_simple_bh/, "unsigned char *y_ptr, int y_stride, const unsigned char *blimit";
87*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_loop_filter_simple_bh sse2 neon msa mmi/;
88*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bh_c=vp8_loop_filter_bhs_c;
89*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bh_sse2=vp8_loop_filter_bhs_sse2;
90*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bh_neon=vp8_loop_filter_bhs_neon;
91*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bh_msa=vp8_loop_filter_bhs_msa;
92*fb1b10abSAndroid Build Coastguard Worker$vp8_loop_filter_simple_bh_mmi=vp8_loop_filter_bhs_mmi;
93*fb1b10abSAndroid Build Coastguard Worker
94*fb1b10abSAndroid Build Coastguard Worker#
95*fb1b10abSAndroid Build Coastguard Worker# IDCT
96*fb1b10abSAndroid Build Coastguard Worker#
97*fb1b10abSAndroid Build Coastguard Worker#idct16
98*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_short_idct4x4llm/, "short *input, unsigned char *pred_ptr, int pred_stride, unsigned char *dst_ptr, int dst_stride";
99*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_short_idct4x4llm mmx neon dspr2 msa mmi/;
100*fb1b10abSAndroid Build Coastguard Worker
101*fb1b10abSAndroid Build Coastguard Worker#iwalsh1
102*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_short_inv_walsh4x4_1/, "short *input, short *mb_dqcoeff";
103*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_short_inv_walsh4x4_1 dspr2/;
104*fb1b10abSAndroid Build Coastguard Worker
105*fb1b10abSAndroid Build Coastguard Worker#iwalsh16
106*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_short_inv_walsh4x4/, "short *input, short *mb_dqcoeff";
107*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_short_inv_walsh4x4 sse2 neon dspr2 msa mmi/;
108*fb1b10abSAndroid Build Coastguard Worker
109*fb1b10abSAndroid Build Coastguard Worker#idct1_scalar_add
110*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_dc_only_idct_add/, "short input_dc, unsigned char *pred_ptr, int pred_stride, unsigned char *dst_ptr, int dst_stride";
111*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_dc_only_idct_add mmx neon dspr2 msa mmi lsx/;
112*fb1b10abSAndroid Build Coastguard Worker
113*fb1b10abSAndroid Build Coastguard Worker#
114*fb1b10abSAndroid Build Coastguard Worker# RECON
115*fb1b10abSAndroid Build Coastguard Worker#
116*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_copy_mem16x16/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride";
117*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_copy_mem16x16 sse2 neon dspr2 msa mmi/;
118*fb1b10abSAndroid Build Coastguard Worker
119*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_copy_mem8x8/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride";
120*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_copy_mem8x8 mmx neon dspr2 msa mmi/;
121*fb1b10abSAndroid Build Coastguard Worker
122*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_copy_mem8x4/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride";
123*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_copy_mem8x4 mmx neon dspr2 msa mmi/;
124*fb1b10abSAndroid Build Coastguard Worker
125*fb1b10abSAndroid Build Coastguard Worker#
126*fb1b10abSAndroid Build Coastguard Worker# Postproc
127*fb1b10abSAndroid Build Coastguard Worker#
128*fb1b10abSAndroid Build Coastguard Workerif (vpx_config("CONFIG_POSTPROC") eq "yes") {
129*fb1b10abSAndroid Build Coastguard Worker
130*fb1b10abSAndroid Build Coastguard Worker    add_proto qw/void vp8_filter_by_weight16x16/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight";
131*fb1b10abSAndroid Build Coastguard Worker    specialize qw/vp8_filter_by_weight16x16 sse2 msa/;
132*fb1b10abSAndroid Build Coastguard Worker
133*fb1b10abSAndroid Build Coastguard Worker    add_proto qw/void vp8_filter_by_weight8x8/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight";
134*fb1b10abSAndroid Build Coastguard Worker    specialize qw/vp8_filter_by_weight8x8 sse2 msa/;
135*fb1b10abSAndroid Build Coastguard Worker
136*fb1b10abSAndroid Build Coastguard Worker    add_proto qw/void vp8_filter_by_weight4x4/, "unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight";
137*fb1b10abSAndroid Build Coastguard Worker}
138*fb1b10abSAndroid Build Coastguard Worker
139*fb1b10abSAndroid Build Coastguard Worker#
140*fb1b10abSAndroid Build Coastguard Worker# Subpixel
141*fb1b10abSAndroid Build Coastguard Worker#
142*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_sixtap_predict16x16/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
143*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_sixtap_predict16x16 sse2 ssse3 neon dspr2 msa mmi lsx/;
144*fb1b10abSAndroid Build Coastguard Worker
145*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_sixtap_predict8x8/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
146*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_sixtap_predict8x8 sse2 ssse3 neon dspr2 msa mmi lsx/;
147*fb1b10abSAndroid Build Coastguard Worker
148*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_sixtap_predict8x4/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
149*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_sixtap_predict8x4 sse2 ssse3 neon dspr2 msa mmi/;
150*fb1b10abSAndroid Build Coastguard Worker
151*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_sixtap_predict4x4/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
152*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_sixtap_predict4x4 mmx ssse3 neon dspr2 msa mmi lsx/;
153*fb1b10abSAndroid Build Coastguard Worker
154*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_bilinear_predict16x16/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
155*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_bilinear_predict16x16 sse2 ssse3 neon msa/;
156*fb1b10abSAndroid Build Coastguard Worker
157*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_bilinear_predict8x8/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
158*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_bilinear_predict8x8 sse2 ssse3 neon msa/;
159*fb1b10abSAndroid Build Coastguard Worker
160*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_bilinear_predict8x4/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
161*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_bilinear_predict8x4 sse2 neon msa/;
162*fb1b10abSAndroid Build Coastguard Worker
163*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_bilinear_predict4x4/, "unsigned char *src_ptr, int src_pixels_per_line, int xoffset, int yoffset, unsigned char *dst_ptr, int dst_pitch";
164*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_bilinear_predict4x4 sse2 neon msa/;
165*fb1b10abSAndroid Build Coastguard Worker
166*fb1b10abSAndroid Build Coastguard Worker#
167*fb1b10abSAndroid Build Coastguard Worker# Encoder functions below this point.
168*fb1b10abSAndroid Build Coastguard Worker#
169*fb1b10abSAndroid Build Coastguard Workerif (vpx_config("CONFIG_VP8_ENCODER") eq "yes") {
170*fb1b10abSAndroid Build Coastguard Worker
171*fb1b10abSAndroid Build Coastguard Worker#
172*fb1b10abSAndroid Build Coastguard Worker# Block copy
173*fb1b10abSAndroid Build Coastguard Worker#
174*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_copy32xn/, "const unsigned char *src_ptr, int src_stride, unsigned char *dst_ptr, int dst_stride, int height";
175*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_copy32xn sse2 sse3/;
176*fb1b10abSAndroid Build Coastguard Worker
177*fb1b10abSAndroid Build Coastguard Worker#
178*fb1b10abSAndroid Build Coastguard Worker# Forward DCT
179*fb1b10abSAndroid Build Coastguard Worker#
180*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_short_fdct4x4/, "short *input, short *output, int pitch";
181*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_short_fdct4x4 sse2 neon msa mmi lsx/;
182*fb1b10abSAndroid Build Coastguard Worker
183*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_short_fdct8x4/, "short *input, short *output, int pitch";
184*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_short_fdct8x4 sse2 neon msa mmi lsx/;
185*fb1b10abSAndroid Build Coastguard Worker
186*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_short_walsh4x4/, "short *input, short *output, int pitch";
187*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_short_walsh4x4 sse2 neon msa mmi/;
188*fb1b10abSAndroid Build Coastguard Worker
189*fb1b10abSAndroid Build Coastguard Worker#
190*fb1b10abSAndroid Build Coastguard Worker# Quantizer
191*fb1b10abSAndroid Build Coastguard Worker#
192*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_regular_quantize_b/, "struct block *, struct blockd *";
193*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_regular_quantize_b sse2 sse4_1 msa mmi lsx/;
194*fb1b10abSAndroid Build Coastguard Worker
195*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/void vp8_fast_quantize_b/, "struct block *, struct blockd *";
196*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_fast_quantize_b sse2 ssse3 neon msa mmi/;
197*fb1b10abSAndroid Build Coastguard Worker
198*fb1b10abSAndroid Build Coastguard Worker#
199*fb1b10abSAndroid Build Coastguard Worker# Block subtraction
200*fb1b10abSAndroid Build Coastguard Worker#
201*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/int vp8_block_error/, "short *coeff, short *dqcoeff";
202*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_block_error sse2 msa lsx/;
203*fb1b10abSAndroid Build Coastguard Worker
204*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/int vp8_mbblock_error/, "struct macroblock *mb, int dc";
205*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_mbblock_error sse2 msa lsx/;
206*fb1b10abSAndroid Build Coastguard Worker
207*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/int vp8_mbuverror/, "struct macroblock *mb";
208*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_mbuverror sse2 msa/;
209*fb1b10abSAndroid Build Coastguard Worker
210*fb1b10abSAndroid Build Coastguard Worker#
211*fb1b10abSAndroid Build Coastguard Worker# Motion search
212*fb1b10abSAndroid Build Coastguard Worker#
213*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/int vp8_refining_search_sad/, "struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int error_per_bit, int search_range, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv";
214*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_refining_search_sad sse2 msa/;
215*fb1b10abSAndroid Build Coastguard Worker$vp8_refining_search_sad_sse2=vp8_refining_search_sadx4;
216*fb1b10abSAndroid Build Coastguard Worker$vp8_refining_search_sad_msa=vp8_refining_search_sadx4;
217*fb1b10abSAndroid Build Coastguard Worker
218*fb1b10abSAndroid Build Coastguard Workeradd_proto qw/int vp8_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 variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv";
219*fb1b10abSAndroid Build Coastguard Workerspecialize qw/vp8_diamond_search_sad sse2 msa lsx/;
220*fb1b10abSAndroid Build Coastguard Worker$vp8_diamond_search_sad_sse2=vp8_diamond_search_sadx4;
221*fb1b10abSAndroid Build Coastguard Worker$vp8_diamond_search_sad_msa=vp8_diamond_search_sadx4;
222*fb1b10abSAndroid Build Coastguard Worker$vp8_diamond_search_sad_lsx=vp8_diamond_search_sadx4;
223*fb1b10abSAndroid Build Coastguard Worker
224*fb1b10abSAndroid Build Coastguard Worker#
225*fb1b10abSAndroid Build Coastguard Worker# Alt-ref Noise Reduction (ARNR)
226*fb1b10abSAndroid Build Coastguard Worker#
227*fb1b10abSAndroid Build Coastguard Workerif (vpx_config("CONFIG_REALTIME_ONLY") ne "yes") {
228*fb1b10abSAndroid Build Coastguard Worker    add_proto qw/void vp8_temporal_filter_apply/, "unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count";
229*fb1b10abSAndroid Build Coastguard Worker    specialize qw/vp8_temporal_filter_apply sse2 msa/;
230*fb1b10abSAndroid Build Coastguard Worker}
231*fb1b10abSAndroid Build Coastguard Worker
232*fb1b10abSAndroid Build Coastguard Worker#
233*fb1b10abSAndroid Build Coastguard Worker# Denoiser filter
234*fb1b10abSAndroid Build Coastguard Worker#
235*fb1b10abSAndroid Build Coastguard Workerif (vpx_config("CONFIG_TEMPORAL_DENOISING") eq "yes") {
236*fb1b10abSAndroid Build Coastguard Worker    add_proto qw/int vp8_denoiser_filter/, "unsigned char *mc_running_avg_y, int mc_avg_y_stride, unsigned char *running_avg_y, int avg_y_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising";
237*fb1b10abSAndroid Build Coastguard Worker    specialize qw/vp8_denoiser_filter sse2 neon msa/;
238*fb1b10abSAndroid Build Coastguard Worker    add_proto qw/int vp8_denoiser_filter_uv/, "unsigned char *mc_running_avg, int mc_avg_stride, unsigned char *running_avg, int avg_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising";
239*fb1b10abSAndroid Build Coastguard Worker    specialize qw/vp8_denoiser_filter_uv sse2 neon msa/;
240*fb1b10abSAndroid Build Coastguard Worker}
241*fb1b10abSAndroid Build Coastguard Worker
242*fb1b10abSAndroid Build Coastguard Worker# End of encoder only functions
243*fb1b10abSAndroid Build Coastguard Worker}
244*fb1b10abSAndroid Build Coastguard Worker1;
245