OLD | NEW |
1 #ifndef VP9_RTCD_H_ | 1 #ifndef VP9_RTCD_H_ |
2 #define VP9_RTCD_H_ | 2 #define VP9_RTCD_H_ |
3 | 3 |
4 #ifdef RTCD_C | 4 #ifdef RTCD_C |
5 #define RTCD_EXTERN | 5 #define RTCD_EXTERN |
6 #else | 6 #else |
7 #define RTCD_EXTERN extern | 7 #define RTCD_EXTERN extern |
8 #endif | 8 #endif |
9 | 9 |
10 /* | 10 /* |
(...skipping 14 matching lines...) Expand all Loading... |
25 union int_mv; | 25 union int_mv; |
26 struct yv12_buffer_config; | 26 struct yv12_buffer_config; |
27 | 27 |
28 #ifdef __cplusplus | 28 #ifdef __cplusplus |
29 extern "C" { | 29 extern "C" { |
30 #endif | 30 #endif |
31 | 31 |
32 int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, in
tptr_t block_size, int64_t *ssz); | 32 int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, in
tptr_t block_size, int64_t *ssz); |
33 #define vp9_block_error vp9_block_error_c | 33 #define vp9_block_error vp9_block_error_c |
34 | 34 |
35 int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int b
lock_size); | |
36 int64_t vp9_block_error_fp_neon(const int16_t *coeff, const int16_t *dqcoeff, in
t block_size); | |
37 RTCD_EXTERN int64_t (*vp9_block_error_fp)(const int16_t *coeff, const int16_t *d
qcoeff, int block_size); | |
38 | |
39 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, BL
OCK_SIZE bs, int motion_magnitude); | 35 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, BL
OCK_SIZE bs, int motion_magnitude); |
40 #define vp9_denoiser_filter vp9_denoiser_filter_c | 36 #define vp9_denoiser_filter vp9_denoiser_filter_c |
41 | 37 |
42 int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_sit
e_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); | 38 int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_sit
e_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); |
43 #define vp9_diamond_search_sad vp9_diamond_search_sad_c | 39 #define vp9_diamond_search_sad vp9_diamond_search_sad_c |
44 | 40 |
45 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 *rou
nd_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qc
oeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr
, const int16_t *scan, const int16_t *iscan); | 41 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 *rou
nd_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qc
oeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr
, const int16_t *scan, const int16_t *iscan); |
46 void vp9_fdct8x8_quant_neon(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); | 42 #define vp9_fdct8x8_quant vp9_fdct8x8_quant_c |
47 RTCD_EXTERN void (*vp9_fdct8x8_quant)(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, t
ran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint
16_t *eob_ptr, const int16_t *scan, const int16_t *iscan); | |
48 | 43 |
49 void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx
_type); | 44 void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx
_type); |
50 #define vp9_fht16x16 vp9_fht16x16_c | 45 #define vp9_fht16x16 vp9_fht16x16_c |
51 | 46 |
52 void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
ype); | 47 void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
ype); |
53 #define vp9_fht4x4 vp9_fht4x4_c | 48 #define vp9_fht4x4 vp9_fht4x4_c |
54 | 49 |
55 void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
ype); | 50 void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
ype); |
56 #define vp9_fht8x8 vp9_fht8x8_c | 51 #define vp9_fht8x8 vp9_fht8x8_c |
57 | 52 |
58 void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *ds
t, int dst_stride, int src_weight); | 53 void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *ds
t, int dst_stride, int src_weight); |
59 #define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c | 54 #define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c |
60 | 55 |
61 void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst,
int dst_stride, int src_weight); | 56 void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst,
int dst_stride, int src_weight); |
62 #define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c | 57 #define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c |
63 | 58 |
64 int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, i
nt sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const st
ruct mv *center_mv, struct mv *best_mv); | 59 int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, i
nt sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const st
ruct mv *center_mv, struct mv *best_mv); |
65 #define vp9_full_search_sad vp9_full_search_sad_c | 60 #define vp9_full_search_sad vp9_full_search_sad_c |
66 | 61 |
67 void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride); | 62 void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride); |
68 #define vp9_fwht4x4 vp9_fwht4x4_c | 63 #define vp9_fwht4x4 vp9_fwht4x4_c |
69 | 64 |
| 65 int64_t vp9_highbd_block_error_c(const tran_low_t *coeff, const tran_low_t *dqco
eff, intptr_t block_size, int64_t *ssz, int bd); |
| 66 #define vp9_highbd_block_error vp9_highbd_block_error_c |
| 67 |
| 68 int64_t vp9_highbd_block_error_8bit_c(const tran_low_t *coeff, const tran_low_t
*dqcoeff, intptr_t block_size, int64_t *ssz); |
| 69 #define vp9_highbd_block_error_8bit vp9_highbd_block_error_8bit_c |
| 70 |
| 71 void vp9_highbd_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *d
st, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t
*filter_y, int y_step_q4, int w, int h, int bps); |
| 72 #define vp9_highbd_convolve8 vp9_highbd_convolve8_c |
| 73 |
| 74 void vp9_highbd_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_
t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int1
6_t *filter_y, int y_step_q4, int w, int h, int bps); |
| 75 #define vp9_highbd_convolve8_avg vp9_highbd_convolve8_avg_c |
| 76 |
| 77 void vp9_highbd_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride,
uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, cons
t int16_t *filter_y, int y_step_q4, int w, int h, int bps); |
| 78 #define vp9_highbd_convolve8_avg_horiz vp9_highbd_convolve8_avg_horiz_c |
| 79 |
| 80 void vp9_highbd_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, u
int8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const
int16_t *filter_y, int y_step_q4, int w, int h, int bps); |
| 81 #define vp9_highbd_convolve8_avg_vert vp9_highbd_convolve8_avg_vert_c |
| 82 |
| 83 void vp9_highbd_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint
8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const in
t16_t *filter_y, int y_step_q4, int w, int h, int bps); |
| 84 #define vp9_highbd_convolve8_horiz vp9_highbd_convolve8_horiz_c |
| 85 |
| 86 void vp9_highbd_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8
_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int
16_t *filter_y, int y_step_q4, int w, int h, int bps); |
| 87 #define vp9_highbd_convolve8_vert vp9_highbd_convolve8_vert_c |
| 88 |
| 89 void vp9_highbd_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t
*dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16
_t *filter_y, int y_step_q4, int w, int h, int bps); |
| 90 #define vp9_highbd_convolve_avg vp9_highbd_convolve_avg_c |
| 91 |
| 92 void vp9_highbd_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_
t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int1
6_t *filter_y, int y_step_q4, int w, int h, int bps); |
| 93 #define vp9_highbd_convolve_copy vp9_highbd_convolve_copy_c |
| 94 |
| 95 void vp9_highbd_fht16x16_c(const int16_t *input, tran_low_t *output, int stride,
int tx_type); |
| 96 #define vp9_highbd_fht16x16 vp9_highbd_fht16x16_c |
| 97 |
| 98 void vp9_highbd_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, i
nt tx_type); |
| 99 #define vp9_highbd_fht4x4 vp9_highbd_fht4x4_c |
| 100 |
| 101 void vp9_highbd_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, i
nt tx_type); |
| 102 #define vp9_highbd_fht8x8 vp9_highbd_fht8x8_c |
| 103 |
| 104 void vp9_highbd_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride); |
| 105 #define vp9_highbd_fwht4x4 vp9_highbd_fwht4x4_c |
| 106 |
| 107 void vp9_highbd_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int
pitch, int tx_type, int bd); |
| 108 #define vp9_highbd_iht16x16_256_add vp9_highbd_iht16x16_256_add_c |
| 109 |
| 110 void vp9_highbd_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest
_stride, int tx_type, int bd); |
| 111 #define vp9_highbd_iht4x4_16_add vp9_highbd_iht4x4_16_add_c |
| 112 |
| 113 void vp9_highbd_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest
_stride, int tx_type, int bd); |
| 114 #define vp9_highbd_iht8x8_64_add vp9_highbd_iht8x8_64_add_c |
| 115 |
| 116 void vp9_highbd_mbpost_proc_across_ip_c(uint16_t *src, int pitch, int rows, int
cols, int flimit); |
| 117 #define vp9_highbd_mbpost_proc_across_ip vp9_highbd_mbpost_proc_across_ip_c |
| 118 |
| 119 void vp9_highbd_mbpost_proc_down_c(uint16_t *dst, int pitch, int rows, int cols,
int flimit); |
| 120 #define vp9_highbd_mbpost_proc_down vp9_highbd_mbpost_proc_down_c |
| 121 |
| 122 void vp9_highbd_post_proc_down_and_across_c(const uint16_t *src_ptr, uint16_t *d
st_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, in
t flimit); |
| 123 #define vp9_highbd_post_proc_down_and_across vp9_highbd_post_proc_down_and_acros
s_c |
| 124 |
| 125 void vp9_highbd_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, in
t 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 *d
qcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan,
const int16_t *iscan); |
| 126 #define vp9_highbd_quantize_fp vp9_highbd_quantize_fp_c |
| 127 |
| 128 void vp9_highbd_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coef
fs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int
16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_lo
w_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *
scan, const int16_t *iscan); |
| 129 #define vp9_highbd_quantize_fp_32x32 vp9_highbd_quantize_fp_32x32_c |
| 130 |
| 131 void vp9_highbd_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, ui
nt8_t *frame2, unsigned int block_width, unsigned int block_height, int strength
, int filter_weight, unsigned int *accumulator, uint16_t *count); |
| 132 #define vp9_highbd_temporal_filter_apply vp9_highbd_temporal_filter_apply_c |
| 133 |
70 void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch,
int tx_type); | 134 void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch,
int tx_type); |
71 #define vp9_iht16x16_256_add vp9_iht16x16_256_add_c | 135 #define vp9_iht16x16_256_add vp9_iht16x16_256_add_c |
72 | 136 |
73 void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride
, int tx_type); | 137 void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride
, int tx_type); |
74 void vp9_iht4x4_16_add_neon(const tran_low_t *input, uint8_t *dest, int dest_str
ide, int tx_type); | 138 #define vp9_iht4x4_16_add vp9_iht4x4_16_add_c |
75 RTCD_EXTERN void (*vp9_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, in
t dest_stride, int tx_type); | |
76 | 139 |
77 void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride
, int tx_type); | 140 void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride
, int tx_type); |
78 void vp9_iht8x8_64_add_neon(const tran_low_t *input, uint8_t *dest, int dest_str
ide, int tx_type); | 141 #define vp9_iht8x8_64_add vp9_iht8x8_64_add_c |
79 RTCD_EXTERN void (*vp9_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, in
t dest_stride, int tx_type); | |
80 | 142 |
81 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_p
tr, 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 i
nt16_t *iscan); | 143 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_p
tr, 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 i
nt16_t *iscan); |
82 void vp9_quantize_fp_neon(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int sk
ip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quan
t_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoe
ff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, cons
t int16_t *iscan); | 144 #define vp9_quantize_fp vp9_quantize_fp_c |
83 RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coef
fs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int
16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_lo
w_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *
scan, const int16_t *iscan); | |
84 | 145 |
85 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 *q
uant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dq
coeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, c
onst int16_t *iscan); | 146 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 *q
uant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dq
coeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, c
onst int16_t *iscan); |
86 #define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c | 147 #define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c |
87 | 148 |
88 void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct y
v12_buffer_config *dst); | |
89 #define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_c | |
90 | |
91 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 f
ilter_weight, unsigned int *accumulator, uint16_t *count); | 149 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 f
ilter_weight, unsigned int *accumulator, uint16_t *count); |
92 #define vp9_temporal_filter_apply vp9_temporal_filter_apply_c | 150 #define vp9_temporal_filter_apply vp9_temporal_filter_apply_c |
93 | 151 |
94 void vp9_rtcd(void); | 152 void vp9_rtcd(void); |
95 | 153 |
96 #include "vpx_config.h" | 154 #include "vpx_config.h" |
97 | 155 |
98 #ifdef RTCD_C | 156 #ifdef RTCD_C |
99 #include "vpx_ports/arm.h" | 157 #include "vpx_ports/arm.h" |
100 static void setup_rtcd_internal(void) | 158 static void setup_rtcd_internal(void) |
101 { | 159 { |
102 int flags = arm_cpu_caps(); | 160 int flags = arm_cpu_caps(); |
103 | 161 |
104 (void)flags; | 162 (void)flags; |
105 | 163 |
106 vp9_block_error_fp = vp9_block_error_fp_c; | |
107 if (flags & HAS_NEON) vp9_block_error_fp = vp9_block_error_fp_neon; | |
108 vp9_fdct8x8_quant = vp9_fdct8x8_quant_c; | |
109 if (flags & HAS_NEON) vp9_fdct8x8_quant = vp9_fdct8x8_quant_neon; | |
110 vp9_iht4x4_16_add = vp9_iht4x4_16_add_c; | |
111 if (flags & HAS_NEON) vp9_iht4x4_16_add = vp9_iht4x4_16_add_neon; | |
112 vp9_iht8x8_64_add = vp9_iht8x8_64_add_c; | |
113 if (flags & HAS_NEON) vp9_iht8x8_64_add = vp9_iht8x8_64_add_neon; | |
114 vp9_quantize_fp = vp9_quantize_fp_c; | |
115 if (flags & HAS_NEON) vp9_quantize_fp = vp9_quantize_fp_neon; | |
116 } | 164 } |
117 #endif | 165 #endif |
118 | 166 |
119 #ifdef __cplusplus | 167 #ifdef __cplusplus |
120 } // extern "C" | 168 } // extern "C" |
121 #endif | 169 #endif |
122 | 170 |
123 #endif | 171 #endif |
OLD | NEW |