|
@@ -94,13 +94,10 @@ define_8tap_2d_funcs(8) |
|
|
define_8tap_2d_funcs(4) |
|
|
define_8tap_2d_funcs(4) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static av_cold void vp9dsp_mc_init_arm(VP9DSPContext *dsp, int bpp) |
|
|
|
|
|
|
|
|
static av_cold void vp9dsp_mc_init_arm(VP9DSPContext *dsp) |
|
|
{ |
|
|
{ |
|
|
int cpu_flags = av_get_cpu_flags(); |
|
|
int cpu_flags = av_get_cpu_flags(); |
|
|
|
|
|
|
|
|
if (bpp != 8) |
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
if (have_neon(cpu_flags)) { |
|
|
if (have_neon(cpu_flags)) { |
|
|
#define init_fpel(idx1, idx2, sz, type) \ |
|
|
#define init_fpel(idx1, idx2, sz, type) \ |
|
|
dsp->mc[idx1][FILTER_8TAP_SMOOTH ][idx2][0][0] = \ |
|
|
dsp->mc[idx1][FILTER_8TAP_SMOOTH ][idx2][0][0] = \ |
|
@@ -160,13 +157,10 @@ define_itxfm(idct, idct, 32); |
|
|
define_itxfm(iwht, iwht, 4); |
|
|
define_itxfm(iwht, iwht, 4); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static av_cold void vp9dsp_itxfm_init_arm(VP9DSPContext *dsp, int bpp) |
|
|
|
|
|
|
|
|
static av_cold void vp9dsp_itxfm_init_arm(VP9DSPContext *dsp) |
|
|
{ |
|
|
{ |
|
|
int cpu_flags = av_get_cpu_flags(); |
|
|
int cpu_flags = av_get_cpu_flags(); |
|
|
|
|
|
|
|
|
if (bpp != 8) |
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
if (have_neon(cpu_flags)) { |
|
|
if (have_neon(cpu_flags)) { |
|
|
#define init_itxfm(tx, sz) \ |
|
|
#define init_itxfm(tx, sz) \ |
|
|
dsp->itxfm_add[tx][DCT_DCT] = ff_vp9_idct_idct_##sz##_add_neon; \ |
|
|
dsp->itxfm_add[tx][DCT_DCT] = ff_vp9_idct_idct_##sz##_add_neon; \ |
|
@@ -218,13 +212,10 @@ lf_mix_fns(4, 8) |
|
|
lf_mix_fns(8, 4) |
|
|
lf_mix_fns(8, 4) |
|
|
lf_mix_fns(8, 8) |
|
|
lf_mix_fns(8, 8) |
|
|
|
|
|
|
|
|
static av_cold void vp9dsp_loopfilter_init_arm(VP9DSPContext *dsp, int bpp) |
|
|
|
|
|
|
|
|
static av_cold void vp9dsp_loopfilter_init_arm(VP9DSPContext *dsp) |
|
|
{ |
|
|
{ |
|
|
int cpu_flags = av_get_cpu_flags(); |
|
|
int cpu_flags = av_get_cpu_flags(); |
|
|
|
|
|
|
|
|
if (bpp != 8) |
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
if (have_neon(cpu_flags)) { |
|
|
if (have_neon(cpu_flags)) { |
|
|
dsp->loop_filter_8[0][1] = ff_vp9_loop_filter_v_4_8_neon; |
|
|
dsp->loop_filter_8[0][1] = ff_vp9_loop_filter_v_4_8_neon; |
|
|
dsp->loop_filter_8[0][0] = ff_vp9_loop_filter_h_4_8_neon; |
|
|
dsp->loop_filter_8[0][0] = ff_vp9_loop_filter_h_4_8_neon; |
|
@@ -249,7 +240,10 @@ static av_cold void vp9dsp_loopfilter_init_arm(VP9DSPContext *dsp, int bpp) |
|
|
|
|
|
|
|
|
av_cold void ff_vp9dsp_init_arm(VP9DSPContext *dsp, int bpp) |
|
|
av_cold void ff_vp9dsp_init_arm(VP9DSPContext *dsp, int bpp) |
|
|
{ |
|
|
{ |
|
|
vp9dsp_mc_init_arm(dsp, bpp); |
|
|
|
|
|
vp9dsp_loopfilter_init_arm(dsp, bpp); |
|
|
|
|
|
vp9dsp_itxfm_init_arm(dsp, bpp); |
|
|
|
|
|
|
|
|
if (bpp != 8) |
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
vp9dsp_mc_init_arm(dsp); |
|
|
|
|
|
vp9dsp_loopfilter_init_arm(dsp); |
|
|
|
|
|
vp9dsp_itxfm_init_arm(dsp); |
|
|
} |
|
|
} |