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