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_clear_system_state_c(); 45#define vp8_clear_system_state vp8_clear_system_state_c 46 47void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 48void vp8_copy_mem16x16_dspr2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 49#define vp8_copy_mem16x16 vp8_copy_mem16x16_dspr2 50 51void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 52void vp8_copy_mem8x4_dspr2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 53#define vp8_copy_mem8x4 vp8_copy_mem8x4_dspr2 54 55void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 56void vp8_copy_mem8x8_dspr2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch); 57#define vp8_copy_mem8x8 vp8_copy_mem8x8_dspr2 58 59void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); 60void vp8_dc_only_idct_add_dspr2(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride); 61#define vp8_dc_only_idct_add vp8_dc_only_idct_add_dspr2 62 63int 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); 64#define vp8_denoiser_filter vp8_denoiser_filter_c 65 66int 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); 67#define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_c 68 69void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride); 70void vp8_dequant_idct_add_dspr2(short *input, short *dq, unsigned char *output, int stride); 71#define vp8_dequant_idct_add vp8_dequant_idct_add_dspr2 72 73void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); 74void vp8_dequant_idct_add_uv_block_dspr2(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs); 75#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_dspr2 76 77void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs); 78void vp8_dequant_idct_add_y_block_dspr2(short *q, short *dq, unsigned char *dst, int stride, char *eobs); 79#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_dspr2 80 81void vp8_dequantize_b_c(struct blockd*, short *dqc); 82#define vp8_dequantize_b vp8_dequantize_b_c 83 84int 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); 85#define vp8_diamond_search_sad vp8_diamond_search_sad_c 86 87void vp8_fast_quantize_b_c(struct block *, struct blockd *); 88#define vp8_fast_quantize_b vp8_fast_quantize_b_c 89 90int 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); 91#define vp8_full_search_sad vp8_full_search_sad_c 92 93void vp8_loop_filter_bh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 94void vp8_loop_filter_bh_dspr2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 95#define vp8_loop_filter_bh vp8_loop_filter_bh_dspr2 96 97void vp8_loop_filter_bv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 98void vp8_loop_filter_bv_dspr2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 99#define vp8_loop_filter_bv vp8_loop_filter_bv_dspr2 100 101void vp8_loop_filter_mbh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 102void vp8_loop_filter_mbh_dspr2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 103#define vp8_loop_filter_mbh vp8_loop_filter_mbh_dspr2 104 105void vp8_loop_filter_mbv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 106void vp8_loop_filter_mbv_dspr2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi); 107#define vp8_loop_filter_mbv vp8_loop_filter_mbv_dspr2 108 109void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit); 110#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_c 111 112void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit); 113#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_c 114 115void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit); 116#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_c 117 118void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit); 119#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_c 120 121int vp8_mbblock_error_c(struct macroblock *mb, int dc); 122#define vp8_mbblock_error vp8_mbblock_error_c 123 124int vp8_mbuverror_c(struct macroblock *mb); 125#define vp8_mbuverror vp8_mbuverror_c 126 127int 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); 128#define vp8_refining_search_sad vp8_refining_search_sad_c 129 130void vp8_regular_quantize_b_c(struct block *, struct blockd *); 131#define vp8_regular_quantize_b vp8_regular_quantize_b_c 132 133void vp8_short_fdct4x4_c(short *input, short *output, int pitch); 134#define vp8_short_fdct4x4 vp8_short_fdct4x4_c 135 136void vp8_short_fdct8x4_c(short *input, short *output, int pitch); 137#define vp8_short_fdct8x4 vp8_short_fdct8x4_c 138 139void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); 140void vp8_short_idct4x4llm_dspr2(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride); 141#define vp8_short_idct4x4llm vp8_short_idct4x4llm_dspr2 142 143void vp8_short_inv_walsh4x4_c(short *input, short *output); 144void vp8_short_inv_walsh4x4_dspr2(short *input, short *output); 145#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_dspr2 146 147void vp8_short_inv_walsh4x4_1_c(short *input, short *output); 148void vp8_short_inv_walsh4x4_1_dspr2(short *input, short *output); 149#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_dspr2 150 151void vp8_short_walsh4x4_c(short *input, short *output, int pitch); 152#define vp8_short_walsh4x4 vp8_short_walsh4x4_c 153 154void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 155void vp8_sixtap_predict16x16_dspr2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 156#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_dspr2 157 158void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 159void vp8_sixtap_predict4x4_dspr2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 160#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_dspr2 161 162void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 163void vp8_sixtap_predict8x4_dspr2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 164#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_dspr2 165 166void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 167void vp8_sixtap_predict8x8_dspr2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch); 168#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_dspr2 169 170void vp8_rtcd(void); 171 172#include "vpx_config.h" 173 174#ifdef RTCD_C 175static void setup_rtcd_internal(void) 176{ 177#if HAVE_DSPR2 178void vpx_dsputil_static_init(); 179#if CONFIG_VP8 180void dsputil_static_init(); 181#endif 182 183vpx_dsputil_static_init(); 184#if CONFIG_VP8 185dsputil_static_init(); 186#endif 187#endif 188} 189#endif 190 191#ifdef __cplusplus 192} // extern "C" 193#endif 194 195#endif 196