32
32
void ff_h264_h_loop_filter_chroma_neon(uint8_t *pix, int stride, int alpha,
33
33
int beta, int8_t *tc0);
35
void ff_weight_h264_pixels_16x16_neon(uint8_t *ds, int stride, int log2_den,
36
int weight, int offset);
37
void ff_weight_h264_pixels_16x8_neon(uint8_t *ds, int stride, int log2_den,
38
int weight, int offset);
39
void ff_weight_h264_pixels_8x16_neon(uint8_t *ds, int stride, int log2_den,
40
int weight, int offset);
41
void ff_weight_h264_pixels_8x8_neon(uint8_t *ds, int stride, int log2_den,
42
int weight, int offset);
43
void ff_weight_h264_pixels_8x4_neon(uint8_t *ds, int stride, int log2_den,
44
int weight, int offset);
45
void ff_weight_h264_pixels_4x8_neon(uint8_t *ds, int stride, int log2_den,
46
int weight, int offset);
47
void ff_weight_h264_pixels_4x4_neon(uint8_t *ds, int stride, int log2_den,
48
int weight, int offset);
49
void ff_weight_h264_pixels_4x2_neon(uint8_t *ds, int stride, int log2_den,
50
int weight, int offset);
35
void ff_weight_h264_pixels_16_neon(uint8_t *dst, int stride, int height,
36
int log2_den, int weight, int offset);
37
void ff_weight_h264_pixels_8_neon(uint8_t *dst, int stride, int height,
38
int log2_den, int weight, int offset);
39
void ff_weight_h264_pixels_4_neon(uint8_t *dst, int stride, int height,
40
int log2_den, int weight, int offset);
52
void ff_biweight_h264_pixels_16x16_neon(uint8_t *dst, uint8_t *src, int stride,
53
int log2_den, int weightd, int weights,
55
void ff_biweight_h264_pixels_16x8_neon(uint8_t *dst, uint8_t *src, int stride,
56
int log2_den, int weightd, int weights,
58
void ff_biweight_h264_pixels_8x16_neon(uint8_t *dst, uint8_t *src, int stride,
59
int log2_den, int weightd, int weights,
61
void ff_biweight_h264_pixels_8x8_neon(uint8_t *dst, uint8_t *src, int stride,
62
int log2_den, int weightd, int weights,
64
void ff_biweight_h264_pixels_8x4_neon(uint8_t *dst, uint8_t *src, int stride,
65
int log2_den, int weightd, int weights,
67
void ff_biweight_h264_pixels_4x8_neon(uint8_t *dst, uint8_t *src, int stride,
68
int log2_den, int weightd, int weights,
70
void ff_biweight_h264_pixels_4x4_neon(uint8_t *dst, uint8_t *src, int stride,
71
int log2_den, int weightd, int weights,
73
void ff_biweight_h264_pixels_4x2_neon(uint8_t *dst, uint8_t *src, int stride,
74
int log2_den, int weightd, int weights,
42
void ff_biweight_h264_pixels_16_neon(uint8_t *dst, uint8_t *src, int stride,
43
int height, int log2_den, int weightd,
44
int weights, int offset);
45
void ff_biweight_h264_pixels_8_neon(uint8_t *dst, uint8_t *src, int stride,
46
int height, int log2_den, int weightd,
47
int weights, int offset);
48
void ff_biweight_h264_pixels_4_neon(uint8_t *dst, uint8_t *src, int stride,
49
int height, int log2_den, int weightd,
50
int weights, int offset);
77
52
void ff_h264_idct_add_neon(uint8_t *dst, DCTELEM *block, int stride);
78
53
void ff_h264_idct_dc_add_neon(uint8_t *dst, DCTELEM *block, int stride);
100
75
c->h264_v_loop_filter_chroma = ff_h264_v_loop_filter_chroma_neon;
101
76
c->h264_h_loop_filter_chroma = ff_h264_h_loop_filter_chroma_neon;
103
c->weight_h264_pixels_tab[0] = ff_weight_h264_pixels_16x16_neon;
104
c->weight_h264_pixels_tab[1] = ff_weight_h264_pixels_16x8_neon;
105
c->weight_h264_pixels_tab[2] = ff_weight_h264_pixels_8x16_neon;
106
c->weight_h264_pixels_tab[3] = ff_weight_h264_pixels_8x8_neon;
107
c->weight_h264_pixels_tab[4] = ff_weight_h264_pixels_8x4_neon;
108
c->weight_h264_pixels_tab[5] = ff_weight_h264_pixels_4x8_neon;
109
c->weight_h264_pixels_tab[6] = ff_weight_h264_pixels_4x4_neon;
110
c->weight_h264_pixels_tab[7] = ff_weight_h264_pixels_4x2_neon;
78
c->weight_h264_pixels_tab[0] = ff_weight_h264_pixels_16_neon;
79
c->weight_h264_pixels_tab[1] = ff_weight_h264_pixels_8_neon;
80
c->weight_h264_pixels_tab[2] = ff_weight_h264_pixels_4_neon;
112
c->biweight_h264_pixels_tab[0] = ff_biweight_h264_pixels_16x16_neon;
113
c->biweight_h264_pixels_tab[1] = ff_biweight_h264_pixels_16x8_neon;
114
c->biweight_h264_pixels_tab[2] = ff_biweight_h264_pixels_8x16_neon;
115
c->biweight_h264_pixels_tab[3] = ff_biweight_h264_pixels_8x8_neon;
116
c->biweight_h264_pixels_tab[4] = ff_biweight_h264_pixels_8x4_neon;
117
c->biweight_h264_pixels_tab[5] = ff_biweight_h264_pixels_4x8_neon;
118
c->biweight_h264_pixels_tab[6] = ff_biweight_h264_pixels_4x4_neon;
119
c->biweight_h264_pixels_tab[7] = ff_biweight_h264_pixels_4x2_neon;
82
c->biweight_h264_pixels_tab[0] = ff_biweight_h264_pixels_16_neon;
83
c->biweight_h264_pixels_tab[1] = ff_biweight_h264_pixels_8_neon;
84
c->biweight_h264_pixels_tab[2] = ff_biweight_h264_pixels_4_neon;
121
86
c->h264_idct_add = ff_h264_idct_add_neon;
122
87
c->h264_idct_dc_add = ff_h264_idct_dc_add_neon;
123
88
c->h264_idct_add16 = ff_h264_idct_add16_neon;
124
89
c->h264_idct_add16intra = ff_h264_idct_add16intra_neon;
125
c->h264_idct_add8 = ff_h264_idct_add8_neon;
90
if (chroma_format_idc == 1)
91
c->h264_idct_add8 = ff_h264_idct_add8_neon;
126
92
c->h264_idct8_add = ff_h264_idct8_add_neon;
127
93
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_neon;
128
94
c->h264_idct8_add4 = ff_h264_idct8_add4_neon;
132
void ff_h264dsp_init_arm(H264DSPContext *c, const int bit_depth)
98
void ff_h264dsp_init_arm(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
134
if (HAVE_NEON) ff_h264dsp_init_neon(c, bit_depth);
100
if (HAVE_NEON) ff_h264dsp_init_neon(c, bit_depth, chroma_format_idc);