1#ifndef VP8_RTCD_H_ 2#define VP8_RTCD_H_ 3 4#ifdef RTCD_C 5#define RTCD_EXTERN 6#else 7#define RTCD_EXTERN extern 8#endif 9 10/* 11 * VP8 12 */ 13 14struct blockd; 15struct macroblockd; 16struct loop_filter_info; 17 18/* Encoder forward decls */ 19struct block; 20struct macroblock; 21struct variance_vtable; 22union int_mv; 23struct yv12_buffer_config; 24 25#ifdef __cplusplus 26extern "C" { 27#endif 28 29void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 30#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_c 31 32void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 33#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_c 34 35void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 36#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_c 37 38void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 39#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_c 40 41int vp8_block_error_c(short *coeff, short *dqcoeff); 42#define vp8_block_error vp8_block_error_c 43 44void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 45void vp8_copy_mem16x16_dspr2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 46#define vp8_copy_mem16x16 vp8_copy_mem16x16_dspr2 47 48void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 49void vp8_copy_mem8x4_dspr2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 50#define vp8_copy_mem8x4 vp8_copy_mem8x4_dspr2 51 52void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 53void vp8_copy_mem8x8_dspr2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 54#define vp8_copy_mem8x8 vp8_copy_mem8x8_dspr2 55 56void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); 57void vp8_dc_only_idct_add_dspr2(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); 58#define vp8_dc_only_idct_add vp8_dc_only_idct_add_dspr2 59 60int vp8_denoiser_filter_c(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); 61#define vp8_denoiser_filter vp8_denoiser_filter_c 62 63int vp8_denoiser_filter_uv_c(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); 64#define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_c 65 66void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride); 67void vp8_dequant_idct_add_dspr2(short *input, short *dq, unsigned char *output, int stride); 68#define vp8_dequant_idct_add vp8_dequant_idct_add_dspr2 69 70void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); 71void vp8_dequant_idct_add_uv_block_dspr2(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); 72#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_dspr2 73 74void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs); 75void vp8_dequant_idct_add_y_block_dspr2(short *q, short *dq, unsigned char *dst, int stride, char *eobs); 76#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_dspr2 77 78void vp8_dequantize_b_c(struct blockd*, short *dqc); 79#define vp8_dequantize_b vp8_dequantize_b_c 80 81int vp8_diamond_search_sad_c(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); 82#define vp8_diamond_search_sad vp8_diamond_search_sad_c 83 84void vp8_fast_quantize_b_c(struct block *, struct blockd *); 85#define vp8_fast_quantize_b vp8_fast_quantize_b_c 86 87int vp8_full_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv); 88#define vp8_full_search_sad vp8_full_search_sad_c 89 90void vp8_loop_filter_bh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 91void vp8_loop_filter_bh_dspr2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 92#define vp8_loop_filter_bh vp8_loop_filter_bh_dspr2 93 94void vp8_loop_filter_bv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 95void vp8_loop_filter_bv_dspr2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 96#define vp8_loop_filter_bv vp8_loop_filter_bv_dspr2 97 98void vp8_loop_filter_mbh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 99void vp8_loop_filter_mbh_dspr2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 100#define vp8_loop_filter_mbh vp8_loop_filter_mbh_dspr2 101 102void vp8_loop_filter_mbv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 103void vp8_loop_filter_mbv_dspr2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 104#define vp8_loop_filter_mbv vp8_loop_filter_mbv_dspr2 105 106void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit); 107#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_c 108 109void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit); 110#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_c 111 112void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit); 113#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_c 114 115void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit); 116#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_c 117 118int vp8_mbblock_error_c(struct macroblock *mb, int dc); 119#define vp8_mbblock_error vp8_mbblock_error_c 120 121int vp8_mbuverror_c(struct macroblock *mb); 122#define vp8_mbuverror vp8_mbuverror_c 123 124int vp8_refining_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv); 125#define vp8_refining_search_sad vp8_refining_search_sad_c 126 127void vp8_regular_quantize_b_c(struct block *, struct blockd *); 128#define vp8_regular_quantize_b vp8_regular_quantize_b_c 129 130void vp8_short_fdct4x4_c(short *input, short *output, int pitch); 131#define vp8_short_fdct4x4 vp8_short_fdct4x4_c 132 133void vp8_short_fdct8x4_c(short *input, short *output, int pitch); 134#define vp8_short_fdct8x4 vp8_short_fdct8x4_c 135 136void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); 137void vp8_short_idct4x4llm_dspr2(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); 138#define vp8_short_idct4x4llm vp8_short_idct4x4llm_dspr2 139 140void vp8_short_inv_walsh4x4_c(short *input, short *output); 141void vp8_short_inv_walsh4x4_dspr2(short *input, short *output); 142#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_dspr2 143 144void vp8_short_inv_walsh4x4_1_c(short *input, short *output); 145void vp8_short_inv_walsh4x4_1_dspr2(short *input, short *output); 146#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_dspr2 147 148void vp8_short_walsh4x4_c(short *input, short *output, int pitch); 149#define vp8_short_walsh4x4 vp8_short_walsh4x4_c 150 151void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 152void vp8_sixtap_predict16x16_dspr2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 153#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_dspr2 154 155void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 156void vp8_sixtap_predict4x4_dspr2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 157#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_dspr2 158 159void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 160void vp8_sixtap_predict8x4_dspr2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 161#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_dspr2 162 163void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 164void vp8_sixtap_predict8x8_dspr2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 165#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_dspr2 166 167void vp8_rtcd(void); 168 169#include "vpx_config.h" 170 171#ifdef RTCD_C 172static void setup_rtcd_internal(void) 173{ 174#if HAVE_DSPR2 175void vpx_dsputil_static_init(); 176#if CONFIG_VP8 177void dsputil_static_init(); 178#endif 179 180vpx_dsputil_static_init(); 181#if CONFIG_VP8 182dsputil_static_init(); 183#endif 184#endif 185} 186#endif 187 188#ifdef __cplusplus 189} // extern "C" 190#endif 191 192#endif 193