7 #define RTCD_EXTERN extern
14 #include "vpx/vpx_integer.h"
15 #include "vp9/common/vp9_common.h"
16 #include "vp9/common/vp9_enums.h"
20 /* Encoder forward decls */
22 struct vp9_variance_vtable
;
23 struct search_site_config
;
26 struct yv12_buffer_config
;
32 unsigned int vp9_avg_4x4_c(const uint8_t *, int p
);
33 #define vp9_avg_4x4 vp9_avg_4x4_c
35 unsigned int vp9_avg_8x8_c(const uint8_t *, int p
);
36 #define vp9_avg_8x8 vp9_avg_8x8_c
38 int64_t vp9_block_error_c(const tran_low_t
*coeff
, const tran_low_t
*dqcoeff
, intptr_t block_size
, int64_t *ssz
);
39 #define vp9_block_error vp9_block_error_c
41 int64_t vp9_block_error_fp_c(const int16_t *coeff
, const int16_t *dqcoeff
, int block_size
);
42 #define vp9_block_error_fp vp9_block_error_fp_c
44 int vp9_denoiser_filter_c(const uint8_t *sig
, int sig_stride
, const uint8_t *mc_avg
, int mc_avg_stride
, uint8_t *avg
, int avg_stride
, int increase_denoising
, BLOCK_SIZE bs
, int motion_magnitude
);
45 #define vp9_denoiser_filter vp9_denoiser_filter_c
47 int vp9_diamond_search_sad_c(const struct macroblock
*x
, const struct search_site_config
*cfg
, struct mv
*ref_mv
, struct mv
*best_mv
, int search_param
, int sad_per_bit
, int *num00
, const struct vp9_variance_vtable
*fn_ptr
, const struct mv
*center_mv
);
48 #define vp9_diamond_search_sad vp9_diamond_search_sad_c
50 void vp9_fdct8x8_quant_c(const int16_t *input
, int stride
, tran_low_t
*coeff_ptr
, intptr_t n_coeffs
, int skip_block
, const int16_t *zbin_ptr
, const int16_t *round_ptr
, const int16_t *quant_ptr
, const int16_t *quant_shift_ptr
, tran_low_t
*qcoeff_ptr
, tran_low_t
*dqcoeff_ptr
, const int16_t *dequant_ptr
, uint16_t *eob_ptr
, const int16_t *scan
, const int16_t *iscan
);
51 #define vp9_fdct8x8_quant vp9_fdct8x8_quant_c
53 void vp9_fht16x16_c(const int16_t *input
, tran_low_t
*output
, int stride
, int tx_type
);
54 #define vp9_fht16x16 vp9_fht16x16_c
56 void vp9_fht4x4_c(const int16_t *input
, tran_low_t
*output
, int stride
, int tx_type
);
57 #define vp9_fht4x4 vp9_fht4x4_c
59 void vp9_fht8x8_c(const int16_t *input
, tran_low_t
*output
, int stride
, int tx_type
);
60 #define vp9_fht8x8 vp9_fht8x8_c
62 void vp9_filter_by_weight16x16_c(const uint8_t *src
, int src_stride
, uint8_t *dst
, int dst_stride
, int src_weight
);
63 #define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c
65 void vp9_filter_by_weight8x8_c(const uint8_t *src
, int src_stride
, uint8_t *dst
, int dst_stride
, int src_weight
);
66 #define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c
68 int vp9_full_range_search_c(const struct macroblock
*x
, const struct search_site_config
*cfg
, struct mv
*ref_mv
, struct mv
*best_mv
, int search_param
, int sad_per_bit
, int *num00
, const struct vp9_variance_vtable
*fn_ptr
, const struct mv
*center_mv
);
69 #define vp9_full_range_search vp9_full_range_search_c
71 int vp9_full_search_sad_c(const struct macroblock
*x
, const struct mv
*ref_mv
, int sad_per_bit
, int distance
, const struct vp9_variance_vtable
*fn_ptr
, const struct mv
*center_mv
, struct mv
*best_mv
);
72 #define vp9_full_search_sad vp9_full_search_sad_c
74 void vp9_fwht4x4_c(const int16_t *input
, tran_low_t
*output
, int stride
);
75 #define vp9_fwht4x4 vp9_fwht4x4_c
77 void vp9_hadamard_16x16_c(int16_t const *src_diff
, int src_stride
, int16_t *coeff
);
78 #define vp9_hadamard_16x16 vp9_hadamard_16x16_c
80 void vp9_hadamard_8x8_c(int16_t const *src_diff
, int src_stride
, int16_t *coeff
);
81 #define vp9_hadamard_8x8 vp9_hadamard_8x8_c
83 void vp9_iht16x16_256_add_c(const tran_low_t
*input
, uint8_t *output
, int pitch
, int tx_type
);
84 #define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
86 void vp9_iht4x4_16_add_c(const tran_low_t
*input
, uint8_t *dest
, int dest_stride
, int tx_type
);
87 #define vp9_iht4x4_16_add vp9_iht4x4_16_add_c
89 void vp9_iht8x8_64_add_c(const tran_low_t
*input
, uint8_t *dest
, int dest_stride
, int tx_type
);
90 #define vp9_iht8x8_64_add vp9_iht8x8_64_add_c
92 int16_t vp9_int_pro_col_c(uint8_t const *ref
, const int width
);
93 #define vp9_int_pro_col vp9_int_pro_col_c
95 void vp9_int_pro_row_c(int16_t *hbuf
, uint8_t const *ref
, const int ref_stride
, const int height
);
96 #define vp9_int_pro_row vp9_int_pro_row_c
98 void vp9_mbpost_proc_across_ip_c(uint8_t *src
, int pitch
, int rows
, int cols
, int flimit
);
99 #define vp9_mbpost_proc_across_ip vp9_mbpost_proc_across_ip_c
101 void vp9_mbpost_proc_down_c(uint8_t *dst
, int pitch
, int rows
, int cols
, int flimit
);
102 #define vp9_mbpost_proc_down vp9_mbpost_proc_down_c
104 void vp9_minmax_8x8_c(const uint8_t *s
, int p
, const uint8_t *d
, int dp
, int *min
, int *max
);
105 #define vp9_minmax_8x8 vp9_minmax_8x8_c
107 void vp9_plane_add_noise_c(uint8_t *Start
, char *noise
, char blackclamp
[16], char whiteclamp
[16], char bothclamp
[16], unsigned int Width
, unsigned int Height
, int Pitch
);
108 #define vp9_plane_add_noise vp9_plane_add_noise_c
110 void vp9_post_proc_down_and_across_c(const uint8_t *src_ptr
, uint8_t *dst_ptr
, int src_pixels_per_line
, int dst_pixels_per_line
, int rows
, int cols
, int flimit
);
111 #define vp9_post_proc_down_and_across vp9_post_proc_down_and_across_c
113 void vp9_quantize_fp_c(const tran_low_t
*coeff_ptr
, intptr_t n_coeffs
, int skip_block
, const int16_t *zbin_ptr
, const int16_t *round_ptr
, const int16_t *quant_ptr
, const int16_t *quant_shift_ptr
, tran_low_t
*qcoeff_ptr
, tran_low_t
*dqcoeff_ptr
, const int16_t *dequant_ptr
, uint16_t *eob_ptr
, const int16_t *scan
, const int16_t *iscan
);
114 #define vp9_quantize_fp vp9_quantize_fp_c
116 void vp9_quantize_fp_32x32_c(const tran_low_t
*coeff_ptr
, intptr_t n_coeffs
, int skip_block
, const int16_t *zbin_ptr
, const int16_t *round_ptr
, const int16_t *quant_ptr
, const int16_t *quant_shift_ptr
, tran_low_t
*qcoeff_ptr
, tran_low_t
*dqcoeff_ptr
, const int16_t *dequant_ptr
, uint16_t *eob_ptr
, const int16_t *scan
, const int16_t *iscan
);
117 #define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
119 int16_t vp9_satd_c(const int16_t *coeff
, int length
);
120 #define vp9_satd vp9_satd_c
122 void vp9_temporal_filter_apply_c(uint8_t *frame1
, unsigned int stride
, uint8_t *frame2
, unsigned int block_width
, unsigned int block_height
, int strength
, int filter_weight
, unsigned int *accumulator
, uint16_t *count
);
123 #define vp9_temporal_filter_apply vp9_temporal_filter_apply_c
125 int vp9_vector_var_c(int16_t const *ref
, int16_t const *src
, const int bwl
);
126 #define vp9_vector_var vp9_vector_var_c
130 #include "vpx_config.h"
133 static void setup_rtcd_internal(void)