annotate arm/dsputil_init_neon.c @ 12483:0159a19bfff7 libavcodec

aacdec: Rework channel mapping compatibility hacks. For a PCE based configuration map the channels solely based on tags. For an indexed configuration map the channels solely based on position. This works with all known exotic samples including al17, elem_id0, bad_concat, and lfe_is_sce.
author alexc
date Fri, 10 Sep 2010 18:01:48 +0000
parents d3551fcf4c1c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
1 /*
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
2 * ARM NEON optimised DSP functions
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
3 * Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
4 *
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
5 * This file is part of FFmpeg.
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
6 *
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
11 *
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
15 * Lesser General Public License for more details.
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
16 *
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
20 */
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
21
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
22 #include <stdint.h>
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
23
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
24 #include "libavcodec/avcodec.h"
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
25 #include "libavcodec/dsputil.h"
10359
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
26 #include "dsputil_arm.h"
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
27
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
28 void ff_simple_idct_neon(DCTELEM *data);
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
29 void ff_simple_idct_put_neon(uint8_t *dest, int line_size, DCTELEM *data);
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
30 void ff_simple_idct_add_neon(uint8_t *dest, int line_size, DCTELEM *data);
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
31
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
32 void ff_vp3_idct_neon(DCTELEM *data);
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
33 void ff_vp3_idct_put_neon(uint8_t *dest, int line_size, DCTELEM *data);
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
34 void ff_vp3_idct_add_neon(uint8_t *dest, int line_size, DCTELEM *data);
11637
f7281af560fe vp3: DC-only IDCT
conrad
parents: 11499
diff changeset
35 void ff_vp3_idct_dc_add_neon(uint8_t *dest, int line_size, const DCTELEM *data);
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
36
11807
659f16d04776 ARM: NEON clear_block[s]
mru
parents: 11637
diff changeset
37 void ff_clear_block_neon(DCTELEM *block);
659f16d04776 ARM: NEON clear_block[s]
mru
parents: 11637
diff changeset
38 void ff_clear_blocks_neon(DCTELEM *blocks);
659f16d04776 ARM: NEON clear_block[s]
mru
parents: 11637
diff changeset
39
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
40 void ff_put_pixels16_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
41 void ff_put_pixels16_x2_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
42 void ff_put_pixels16_y2_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
43 void ff_put_pixels16_xy2_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
44 void ff_put_pixels8_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
45 void ff_put_pixels8_x2_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
46 void ff_put_pixels8_y2_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
47 void ff_put_pixels8_xy2_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
48 void ff_put_pixels16_x2_no_rnd_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
49 void ff_put_pixels16_y2_no_rnd_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
50 void ff_put_pixels16_xy2_no_rnd_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
51 void ff_put_pixels8_x2_no_rnd_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
52 void ff_put_pixels8_y2_no_rnd_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
53 void ff_put_pixels8_xy2_no_rnd_neon(uint8_t *, const uint8_t *, int, int);
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
54
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
55 void ff_avg_pixels16_neon(uint8_t *, const uint8_t *, int, int);
10375
199949177888 ARM: NEON avg_pixels8 and avg_h264_qpel8_mc00
mru
parents: 10362
diff changeset
56 void ff_avg_pixels8_neon(uint8_t *, const uint8_t *, int, int);
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
57
9344
9ea1ea6db616 ARM: NEON optimised add_pixels_clamped
mru
parents: 8698
diff changeset
58 void ff_add_pixels_clamped_neon(const DCTELEM *, uint8_t *, int);
9580
51e8f5ab8f1e ARM: NEON put_pixels_clamped
conrad
parents: 9345
diff changeset
59 void ff_put_pixels_clamped_neon(const DCTELEM *, uint8_t *, int);
9345
e0a7a6338526 ARM: NEON optimized put_signed_pixels_clamped
conrad
parents: 9344
diff changeset
60 void ff_put_signed_pixels_clamped_neon(const DCTELEM *, uint8_t *, int);
9344
9ea1ea6db616 ARM: NEON optimised add_pixels_clamped
mru
parents: 8698
diff changeset
61
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
62 void ff_put_h264_qpel16_mc00_neon(uint8_t *, uint8_t *, int);
8338
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
63 void ff_put_h264_qpel16_mc10_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
64 void ff_put_h264_qpel16_mc20_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
65 void ff_put_h264_qpel16_mc30_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
66 void ff_put_h264_qpel16_mc01_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
67 void ff_put_h264_qpel16_mc11_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
68 void ff_put_h264_qpel16_mc21_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
69 void ff_put_h264_qpel16_mc31_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
70 void ff_put_h264_qpel16_mc02_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
71 void ff_put_h264_qpel16_mc12_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
72 void ff_put_h264_qpel16_mc22_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
73 void ff_put_h264_qpel16_mc32_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
74 void ff_put_h264_qpel16_mc03_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
75 void ff_put_h264_qpel16_mc13_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
76 void ff_put_h264_qpel16_mc23_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
77 void ff_put_h264_qpel16_mc33_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
78
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
79 void ff_put_h264_qpel8_mc00_neon(uint8_t *, uint8_t *, int);
8338
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
80 void ff_put_h264_qpel8_mc10_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
81 void ff_put_h264_qpel8_mc20_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
82 void ff_put_h264_qpel8_mc30_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
83 void ff_put_h264_qpel8_mc01_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
84 void ff_put_h264_qpel8_mc11_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
85 void ff_put_h264_qpel8_mc21_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
86 void ff_put_h264_qpel8_mc31_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
87 void ff_put_h264_qpel8_mc02_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
88 void ff_put_h264_qpel8_mc12_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
89 void ff_put_h264_qpel8_mc22_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
90 void ff_put_h264_qpel8_mc32_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
91 void ff_put_h264_qpel8_mc03_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
92 void ff_put_h264_qpel8_mc13_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
93 void ff_put_h264_qpel8_mc23_neon(uint8_t *, uint8_t *, int);
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
94 void ff_put_h264_qpel8_mc33_neon(uint8_t *, uint8_t *, int);
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
95
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
96 void ff_avg_h264_qpel16_mc00_neon(uint8_t *, uint8_t *, int);
10616
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
97 void ff_avg_h264_qpel16_mc10_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
98 void ff_avg_h264_qpel16_mc20_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
99 void ff_avg_h264_qpel16_mc30_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
100 void ff_avg_h264_qpel16_mc01_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
101 void ff_avg_h264_qpel16_mc11_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
102 void ff_avg_h264_qpel16_mc21_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
103 void ff_avg_h264_qpel16_mc31_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
104 void ff_avg_h264_qpel16_mc02_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
105 void ff_avg_h264_qpel16_mc12_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
106 void ff_avg_h264_qpel16_mc22_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
107 void ff_avg_h264_qpel16_mc32_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
108 void ff_avg_h264_qpel16_mc03_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
109 void ff_avg_h264_qpel16_mc13_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
110 void ff_avg_h264_qpel16_mc23_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
111 void ff_avg_h264_qpel16_mc33_neon(uint8_t *, uint8_t *, int);
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
112
10375
199949177888 ARM: NEON avg_pixels8 and avg_h264_qpel8_mc00
mru
parents: 10362
diff changeset
113 void ff_avg_h264_qpel8_mc00_neon(uint8_t *, uint8_t *, int);
10616
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
114 void ff_avg_h264_qpel8_mc10_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
115 void ff_avg_h264_qpel8_mc20_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
116 void ff_avg_h264_qpel8_mc30_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
117 void ff_avg_h264_qpel8_mc01_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
118 void ff_avg_h264_qpel8_mc11_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
119 void ff_avg_h264_qpel8_mc21_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
120 void ff_avg_h264_qpel8_mc31_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
121 void ff_avg_h264_qpel8_mc02_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
122 void ff_avg_h264_qpel8_mc12_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
123 void ff_avg_h264_qpel8_mc22_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
124 void ff_avg_h264_qpel8_mc32_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
125 void ff_avg_h264_qpel8_mc03_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
126 void ff_avg_h264_qpel8_mc13_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
127 void ff_avg_h264_qpel8_mc23_neon(uint8_t *, uint8_t *, int);
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
128 void ff_avg_h264_qpel8_mc33_neon(uint8_t *, uint8_t *, int);
10375
199949177888 ARM: NEON avg_pixels8 and avg_h264_qpel8_mc00
mru
parents: 10362
diff changeset
129
8336
c8401acb05d1 ARM: NEON optimised {put,avg}_h264_chroma_mc[48]
mru
parents: 8334
diff changeset
130 void ff_put_h264_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int);
c8401acb05d1 ARM: NEON optimised {put,avg}_h264_chroma_mc[48]
mru
parents: 8334
diff changeset
131 void ff_put_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int);
10617
5506cbb012b4 ARM: NEON 2xN chroma MC
mru
parents: 10616
diff changeset
132 void ff_put_h264_chroma_mc2_neon(uint8_t *, uint8_t *, int, int, int, int);
8336
c8401acb05d1 ARM: NEON optimised {put,avg}_h264_chroma_mc[48]
mru
parents: 8334
diff changeset
133
c8401acb05d1 ARM: NEON optimised {put,avg}_h264_chroma_mc[48]
mru
parents: 8334
diff changeset
134 void ff_avg_h264_chroma_mc8_neon(uint8_t *, uint8_t *, int, int, int, int);
c8401acb05d1 ARM: NEON optimised {put,avg}_h264_chroma_mc[48]
mru
parents: 8334
diff changeset
135 void ff_avg_h264_chroma_mc4_neon(uint8_t *, uint8_t *, int, int, int, int);
10617
5506cbb012b4 ARM: NEON 2xN chroma MC
mru
parents: 10616
diff changeset
136 void ff_avg_h264_chroma_mc2_neon(uint8_t *, uint8_t *, int, int, int, int);
8336
c8401acb05d1 ARM: NEON optimised {put,avg}_h264_chroma_mc[48]
mru
parents: 8334
diff changeset
137
9692
9d103a3236e0 ARM: NEON VP3 Loop Filter
conrad
parents: 9580
diff changeset
138 void ff_vp3_v_loop_filter_neon(uint8_t *, int, int *);
9d103a3236e0 ARM: NEON VP3 Loop Filter
conrad
parents: 9580
diff changeset
139 void ff_vp3_h_loop_filter_neon(uint8_t *, int, int *);
9d103a3236e0 ARM: NEON VP3 Loop Filter
conrad
parents: 9580
diff changeset
140
8697
307b176f91e7 ARM: NEON optimised vector_fmul
mru
parents: 8664
diff changeset
141 void ff_vector_fmul_neon(float *dst, const float *src, int len);
8698
24a7b5d0eb27 ARM: NEON optimised vector_fmul_window
mru
parents: 8697
diff changeset
142 void ff_vector_fmul_window_neon(float *dst, const float *src0,
24a7b5d0eb27 ARM: NEON optimised vector_fmul_window
mru
parents: 8697
diff changeset
143 const float *src1, const float *win,
24a7b5d0eb27 ARM: NEON optimised vector_fmul_window
mru
parents: 8697
diff changeset
144 float add_bias, int len);
10221
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
145 void ff_vector_fmul_scalar_neon(float *dst, const float *src, float mul,
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
146 int len);
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
147 void ff_vector_fmul_sv_scalar_2_neon(float *dst, const float *src,
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
148 const float **vp, float mul, int len);
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
149 void ff_vector_fmul_sv_scalar_4_neon(float *dst, const float *src,
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
150 const float **vp, float mul, int len);
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
151 void ff_sv_fmul_scalar_2_neon(float *dst, const float **vp, float mul,
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
152 int len);
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
153 void ff_sv_fmul_scalar_4_neon(float *dst, const float **vp, float mul,
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
154 int len);
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
155 void ff_butterflies_float_neon(float *v1, float *v2, int len);
10228
b783894a1c62 ARM: NEON optimised scalarproduct_float
mru
parents: 10221
diff changeset
156 float ff_scalarproduct_float_neon(const float *v1, const float *v2, int len);
10253
64dd9515b93b ARM: NEON optimised int32_to_float_fmul_scalar
mru
parents: 10228
diff changeset
157 void ff_int32_to_float_fmul_scalar_neon(float *dst, const int *src,
64dd9515b93b ARM: NEON optimised int32_to_float_fmul_scalar
mru
parents: 10228
diff changeset
158 float mul, int len);
10274
bcf5c5551b3c ARM: NEON optimised vector_fmul_reverse
mru
parents: 10253
diff changeset
159 void ff_vector_fmul_reverse_neon(float *dst, const float *src0,
bcf5c5551b3c ARM: NEON optimised vector_fmul_reverse
mru
parents: 10253
diff changeset
160 const float *src1, int len);
10302
6db89678b326 ARM: NEON optimised vector_fmul_add
mru
parents: 10276
diff changeset
161 void ff_vector_fmul_add_neon(float *dst, const float *src0, const float *src1,
6db89678b326 ARM: NEON optimised vector_fmul_add
mru
parents: 10276
diff changeset
162 const float *src2, int len);
8697
307b176f91e7 ARM: NEON optimised vector_fmul
mru
parents: 8664
diff changeset
163
10276
06d4e87718b1 ARM: NEON optimised vector_clipf
mru
parents: 10274
diff changeset
164 void ff_vector_clipf_neon(float *dst, const float *src, float min, float max,
06d4e87718b1 ARM: NEON optimised vector_clipf
mru
parents: 10274
diff changeset
165 int len);
8492
639169d7fad5 ARM: NEON optimised float_to_int16
mru
parents: 8462
diff changeset
166 void ff_float_to_int16_neon(int16_t *, const float *, long);
639169d7fad5 ARM: NEON optimised float_to_int16
mru
parents: 8462
diff changeset
167 void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int);
639169d7fad5 ARM: NEON optimised float_to_int16
mru
parents: 8462
diff changeset
168
10046
1e651d94b35f ARM: NEON optimised vorbis_inverse_coupling
mru
parents: 9977
diff changeset
169 void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, int blocksize);
1e651d94b35f ARM: NEON optimised vorbis_inverse_coupling
mru
parents: 9977
diff changeset
170
11981
d3551fcf4c1c Add const to some pointer parameters.
cehoyos
parents: 11807
diff changeset
171 int32_t ff_scalarproduct_int16_neon(const int16_t *v1, const int16_t *v2, int len,
11243
e71b0be9ac79 ARM: NEON scalarproduct_int16 and scalarproduct_and_madd_int16
mru
parents: 10617
diff changeset
172 int shift);
11981
d3551fcf4c1c Add const to some pointer parameters.
cehoyos
parents: 11807
diff changeset
173 int32_t ff_scalarproduct_and_madd_int16_neon(int16_t *v1, const int16_t *v2,
d3551fcf4c1c Add const to some pointer parameters.
cehoyos
parents: 11807
diff changeset
174 const int16_t *v3, int len, int mul);
11243
e71b0be9ac79 ARM: NEON scalarproduct_int16 and scalarproduct_and_madd_int16
mru
parents: 10617
diff changeset
175
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
176 void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
177 {
10359
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
178 if (!avctx->lowres) {
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
179 if (avctx->idct_algo == FF_IDCT_AUTO ||
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
180 avctx->idct_algo == FF_IDCT_SIMPLENEON) {
10362
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
181 c->idct_put = ff_simple_idct_put_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
182 c->idct_add = ff_simple_idct_add_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
183 c->idct = ff_simple_idct_neon;
10359
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
184 c->idct_permutation_type = FF_PARTTRANS_IDCT_PERM;
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
185 } else if ((CONFIG_VP3_DECODER || CONFIG_VP5_DECODER ||
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
186 CONFIG_VP6_DECODER) &&
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
187 avctx->idct_algo == FF_IDCT_VP3) {
10362
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
188 c->idct_put = ff_vp3_idct_put_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
189 c->idct_add = ff_vp3_idct_add_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
190 c->idct = ff_vp3_idct_neon;
10359
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
191 c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM;
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
192 }
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
193 }
48be79afc72d ARM: clean up dsputil initialisation
mru
parents: 10302
diff changeset
194
11807
659f16d04776 ARM: NEON clear_block[s]
mru
parents: 11637
diff changeset
195 c->clear_block = ff_clear_block_neon;
659f16d04776 ARM: NEON clear_block[s]
mru
parents: 11637
diff changeset
196 c->clear_blocks = ff_clear_blocks_neon;
659f16d04776 ARM: NEON clear_block[s]
mru
parents: 11637
diff changeset
197
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
198 c->put_pixels_tab[0][0] = ff_put_pixels16_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
199 c->put_pixels_tab[0][1] = ff_put_pixels16_x2_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
200 c->put_pixels_tab[0][2] = ff_put_pixels16_y2_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
201 c->put_pixels_tab[0][3] = ff_put_pixels16_xy2_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
202 c->put_pixels_tab[1][0] = ff_put_pixels8_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
203 c->put_pixels_tab[1][1] = ff_put_pixels8_x2_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
204 c->put_pixels_tab[1][2] = ff_put_pixels8_y2_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
205 c->put_pixels_tab[1][3] = ff_put_pixels8_xy2_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
206
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
207 c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
208 c->put_no_rnd_pixels_tab[0][1] = ff_put_pixels16_x2_no_rnd_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
209 c->put_no_rnd_pixels_tab[0][2] = ff_put_pixels16_y2_no_rnd_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
210 c->put_no_rnd_pixels_tab[0][3] = ff_put_pixels16_xy2_no_rnd_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
211 c->put_no_rnd_pixels_tab[1][0] = ff_put_pixels8_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
212 c->put_no_rnd_pixels_tab[1][1] = ff_put_pixels8_x2_no_rnd_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
213 c->put_no_rnd_pixels_tab[1][2] = ff_put_pixels8_y2_no_rnd_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
214 c->put_no_rnd_pixels_tab[1][3] = ff_put_pixels8_xy2_no_rnd_neon;
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
215
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
216 c->avg_pixels_tab[0][0] = ff_avg_pixels16_neon;
10375
199949177888 ARM: NEON avg_pixels8 and avg_h264_qpel8_mc00
mru
parents: 10362
diff changeset
217 c->avg_pixels_tab[1][0] = ff_avg_pixels8_neon;
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
218
9344
9ea1ea6db616 ARM: NEON optimised add_pixels_clamped
mru
parents: 8698
diff changeset
219 c->add_pixels_clamped = ff_add_pixels_clamped_neon;
9580
51e8f5ab8f1e ARM: NEON put_pixels_clamped
conrad
parents: 9345
diff changeset
220 c->put_pixels_clamped = ff_put_pixels_clamped_neon;
9345
e0a7a6338526 ARM: NEON optimized put_signed_pixels_clamped
conrad
parents: 9344
diff changeset
221 c->put_signed_pixels_clamped = ff_put_signed_pixels_clamped_neon;
9344
9ea1ea6db616 ARM: NEON optimised add_pixels_clamped
mru
parents: 8698
diff changeset
222
9976
e52cd349e708 Only compile in NEON optimizations for H.264 when the H.264 decoder is enabled.
diego
parents: 9975
diff changeset
223 if (CONFIG_H264_DECODER) {
9977
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
224 c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
225 c->put_h264_chroma_pixels_tab[1] = ff_put_h264_chroma_mc4_neon;
10617
5506cbb012b4 ARM: NEON 2xN chroma MC
mru
parents: 10616
diff changeset
226 c->put_h264_chroma_pixels_tab[2] = ff_put_h264_chroma_mc2_neon;
8336
c8401acb05d1 ARM: NEON optimised {put,avg}_h264_chroma_mc[48]
mru
parents: 8334
diff changeset
227
9977
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
228 c->avg_h264_chroma_pixels_tab[0] = ff_avg_h264_chroma_mc8_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
229 c->avg_h264_chroma_pixels_tab[1] = ff_avg_h264_chroma_mc4_neon;
10617
5506cbb012b4 ARM: NEON 2xN chroma MC
mru
parents: 10616
diff changeset
230 c->avg_h264_chroma_pixels_tab[2] = ff_avg_h264_chroma_mc2_neon;
8336
c8401acb05d1 ARM: NEON optimised {put,avg}_h264_chroma_mc[48]
mru
parents: 8334
diff changeset
231
9977
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
232 c->put_h264_qpel_pixels_tab[0][ 0] = ff_put_h264_qpel16_mc00_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
233 c->put_h264_qpel_pixels_tab[0][ 1] = ff_put_h264_qpel16_mc10_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
234 c->put_h264_qpel_pixels_tab[0][ 2] = ff_put_h264_qpel16_mc20_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
235 c->put_h264_qpel_pixels_tab[0][ 3] = ff_put_h264_qpel16_mc30_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
236 c->put_h264_qpel_pixels_tab[0][ 4] = ff_put_h264_qpel16_mc01_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
237 c->put_h264_qpel_pixels_tab[0][ 5] = ff_put_h264_qpel16_mc11_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
238 c->put_h264_qpel_pixels_tab[0][ 6] = ff_put_h264_qpel16_mc21_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
239 c->put_h264_qpel_pixels_tab[0][ 7] = ff_put_h264_qpel16_mc31_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
240 c->put_h264_qpel_pixels_tab[0][ 8] = ff_put_h264_qpel16_mc02_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
241 c->put_h264_qpel_pixels_tab[0][ 9] = ff_put_h264_qpel16_mc12_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
242 c->put_h264_qpel_pixels_tab[0][10] = ff_put_h264_qpel16_mc22_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
243 c->put_h264_qpel_pixels_tab[0][11] = ff_put_h264_qpel16_mc32_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
244 c->put_h264_qpel_pixels_tab[0][12] = ff_put_h264_qpel16_mc03_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
245 c->put_h264_qpel_pixels_tab[0][13] = ff_put_h264_qpel16_mc13_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
246 c->put_h264_qpel_pixels_tab[0][14] = ff_put_h264_qpel16_mc23_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
247 c->put_h264_qpel_pixels_tab[0][15] = ff_put_h264_qpel16_mc33_neon;
8338
b294a0d5bc50 ARM: NEON optimised H.264 8x8 and 16x16 qpel MC
mru
parents: 8337
diff changeset
248
9977
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
249 c->put_h264_qpel_pixels_tab[1][ 0] = ff_put_h264_qpel8_mc00_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
250 c->put_h264_qpel_pixels_tab[1][ 1] = ff_put_h264_qpel8_mc10_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
251 c->put_h264_qpel_pixels_tab[1][ 2] = ff_put_h264_qpel8_mc20_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
252 c->put_h264_qpel_pixels_tab[1][ 3] = ff_put_h264_qpel8_mc30_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
253 c->put_h264_qpel_pixels_tab[1][ 4] = ff_put_h264_qpel8_mc01_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
254 c->put_h264_qpel_pixels_tab[1][ 5] = ff_put_h264_qpel8_mc11_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
255 c->put_h264_qpel_pixels_tab[1][ 6] = ff_put_h264_qpel8_mc21_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
256 c->put_h264_qpel_pixels_tab[1][ 7] = ff_put_h264_qpel8_mc31_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
257 c->put_h264_qpel_pixels_tab[1][ 8] = ff_put_h264_qpel8_mc02_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
258 c->put_h264_qpel_pixels_tab[1][ 9] = ff_put_h264_qpel8_mc12_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
259 c->put_h264_qpel_pixels_tab[1][10] = ff_put_h264_qpel8_mc22_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
260 c->put_h264_qpel_pixels_tab[1][11] = ff_put_h264_qpel8_mc32_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
261 c->put_h264_qpel_pixels_tab[1][12] = ff_put_h264_qpel8_mc03_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
262 c->put_h264_qpel_pixels_tab[1][13] = ff_put_h264_qpel8_mc13_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
263 c->put_h264_qpel_pixels_tab[1][14] = ff_put_h264_qpel8_mc23_neon;
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
264 c->put_h264_qpel_pixels_tab[1][15] = ff_put_h264_qpel8_mc33_neon;
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
265
9977
fd3505e85d89 cosmetics: reindent/prettyprint after last commit
diego
parents: 9976
diff changeset
266 c->avg_h264_qpel_pixels_tab[0][ 0] = ff_avg_h264_qpel16_mc00_neon;
10616
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
267 c->avg_h264_qpel_pixels_tab[0][ 1] = ff_avg_h264_qpel16_mc10_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
268 c->avg_h264_qpel_pixels_tab[0][ 2] = ff_avg_h264_qpel16_mc20_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
269 c->avg_h264_qpel_pixels_tab[0][ 3] = ff_avg_h264_qpel16_mc30_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
270 c->avg_h264_qpel_pixels_tab[0][ 4] = ff_avg_h264_qpel16_mc01_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
271 c->avg_h264_qpel_pixels_tab[0][ 5] = ff_avg_h264_qpel16_mc11_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
272 c->avg_h264_qpel_pixels_tab[0][ 6] = ff_avg_h264_qpel16_mc21_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
273 c->avg_h264_qpel_pixels_tab[0][ 7] = ff_avg_h264_qpel16_mc31_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
274 c->avg_h264_qpel_pixels_tab[0][ 8] = ff_avg_h264_qpel16_mc02_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
275 c->avg_h264_qpel_pixels_tab[0][ 9] = ff_avg_h264_qpel16_mc12_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
276 c->avg_h264_qpel_pixels_tab[0][10] = ff_avg_h264_qpel16_mc22_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
277 c->avg_h264_qpel_pixels_tab[0][11] = ff_avg_h264_qpel16_mc32_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
278 c->avg_h264_qpel_pixels_tab[0][12] = ff_avg_h264_qpel16_mc03_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
279 c->avg_h264_qpel_pixels_tab[0][13] = ff_avg_h264_qpel16_mc13_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
280 c->avg_h264_qpel_pixels_tab[0][14] = ff_avg_h264_qpel16_mc23_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
281 c->avg_h264_qpel_pixels_tab[0][15] = ff_avg_h264_qpel16_mc33_neon;
8337
d43b7f4c5c1c ARM: NEON optimised H.264 loop filter
mru
parents: 8336
diff changeset
282
10375
199949177888 ARM: NEON avg_pixels8 and avg_h264_qpel8_mc00
mru
parents: 10362
diff changeset
283 c->avg_h264_qpel_pixels_tab[1][ 0] = ff_avg_h264_qpel8_mc00_neon;
10616
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
284 c->avg_h264_qpel_pixels_tab[1][ 1] = ff_avg_h264_qpel8_mc10_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
285 c->avg_h264_qpel_pixels_tab[1][ 2] = ff_avg_h264_qpel8_mc20_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
286 c->avg_h264_qpel_pixels_tab[1][ 3] = ff_avg_h264_qpel8_mc30_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
287 c->avg_h264_qpel_pixels_tab[1][ 4] = ff_avg_h264_qpel8_mc01_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
288 c->avg_h264_qpel_pixels_tab[1][ 5] = ff_avg_h264_qpel8_mc11_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
289 c->avg_h264_qpel_pixels_tab[1][ 6] = ff_avg_h264_qpel8_mc21_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
290 c->avg_h264_qpel_pixels_tab[1][ 7] = ff_avg_h264_qpel8_mc31_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
291 c->avg_h264_qpel_pixels_tab[1][ 8] = ff_avg_h264_qpel8_mc02_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
292 c->avg_h264_qpel_pixels_tab[1][ 9] = ff_avg_h264_qpel8_mc12_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
293 c->avg_h264_qpel_pixels_tab[1][10] = ff_avg_h264_qpel8_mc22_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
294 c->avg_h264_qpel_pixels_tab[1][11] = ff_avg_h264_qpel8_mc32_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
295 c->avg_h264_qpel_pixels_tab[1][12] = ff_avg_h264_qpel8_mc03_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
296 c->avg_h264_qpel_pixels_tab[1][13] = ff_avg_h264_qpel8_mc13_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
297 c->avg_h264_qpel_pixels_tab[1][14] = ff_avg_h264_qpel8_mc23_neon;
d3b98479ef62 ARM: NEON 16x16 and 8x8 avg qpel MC
mru
parents: 10375
diff changeset
298 c->avg_h264_qpel_pixels_tab[1][15] = ff_avg_h264_qpel8_mc33_neon;
9976
e52cd349e708 Only compile in NEON optimizations for H.264 when the H.264 decoder is enabled.
diego
parents: 9975
diff changeset
299 }
8492
639169d7fad5 ARM: NEON optimised float_to_int16
mru
parents: 8462
diff changeset
300
9975
d6d7e8d4a04d Do not redundantly check for both CONFIG_THEORA_DECODER and CONFIG_VP3_DECODER.
diego
parents: 9692
diff changeset
301 if (CONFIG_VP3_DECODER) {
9692
9d103a3236e0 ARM: NEON VP3 Loop Filter
conrad
parents: 9580
diff changeset
302 c->vp3_v_loop_filter = ff_vp3_v_loop_filter_neon;
9d103a3236e0 ARM: NEON VP3 Loop Filter
conrad
parents: 9580
diff changeset
303 c->vp3_h_loop_filter = ff_vp3_h_loop_filter_neon;
11637
f7281af560fe vp3: DC-only IDCT
conrad
parents: 11499
diff changeset
304 c->vp3_idct_dc_add = ff_vp3_idct_dc_add_neon;
9692
9d103a3236e0 ARM: NEON VP3 Loop Filter
conrad
parents: 9580
diff changeset
305 }
9d103a3236e0 ARM: NEON VP3 Loop Filter
conrad
parents: 9580
diff changeset
306
10362
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
307 c->vector_fmul = ff_vector_fmul_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
308 c->vector_fmul_window = ff_vector_fmul_window_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
309 c->vector_fmul_scalar = ff_vector_fmul_scalar_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
310 c->butterflies_float = ff_butterflies_float_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
311 c->scalarproduct_float = ff_scalarproduct_float_neon;
10253
64dd9515b93b ARM: NEON optimised int32_to_float_fmul_scalar
mru
parents: 10228
diff changeset
312 c->int32_to_float_fmul_scalar = ff_int32_to_float_fmul_scalar_neon;
10362
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
313 c->vector_fmul_reverse = ff_vector_fmul_reverse_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
314 c->vector_fmul_add = ff_vector_fmul_add_neon;
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
315 c->vector_clipf = ff_vector_clipf_neon;
10221
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
316
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
317 c->vector_fmul_sv_scalar[0] = ff_vector_fmul_sv_scalar_2_neon;
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
318 c->vector_fmul_sv_scalar[1] = ff_vector_fmul_sv_scalar_4_neon;
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
319
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
320 c->sv_fmul_scalar[0] = ff_sv_fmul_scalar_2_neon;
2791393081ff ARM: NEON optimisations for some dsputil functions
mru
parents: 10046
diff changeset
321 c->sv_fmul_scalar[1] = ff_sv_fmul_scalar_4_neon;
8697
307b176f91e7 ARM: NEON optimised vector_fmul
mru
parents: 8664
diff changeset
322
8492
639169d7fad5 ARM: NEON optimised float_to_int16
mru
parents: 8462
diff changeset
323 if (!(avctx->flags & CODEC_FLAG_BITEXACT)) {
10362
838b42ccd65e ARM: cosmetics
mru
parents: 10360
diff changeset
324 c->float_to_int16 = ff_float_to_int16_neon;
8492
639169d7fad5 ARM: NEON optimised float_to_int16
mru
parents: 8462
diff changeset
325 c->float_to_int16_interleave = ff_float_to_int16_interleave_neon;
639169d7fad5 ARM: NEON optimised float_to_int16
mru
parents: 8462
diff changeset
326 }
10046
1e651d94b35f ARM: NEON optimised vorbis_inverse_coupling
mru
parents: 9977
diff changeset
327
1e651d94b35f ARM: NEON optimised vorbis_inverse_coupling
mru
parents: 9977
diff changeset
328 if (CONFIG_VORBIS_DECODER)
1e651d94b35f ARM: NEON optimised vorbis_inverse_coupling
mru
parents: 9977
diff changeset
329 c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_neon;
11243
e71b0be9ac79 ARM: NEON scalarproduct_int16 and scalarproduct_and_madd_int16
mru
parents: 10617
diff changeset
330
e71b0be9ac79 ARM: NEON scalarproduct_int16 and scalarproduct_and_madd_int16
mru
parents: 10617
diff changeset
331 c->scalarproduct_int16 = ff_scalarproduct_int16_neon;
e71b0be9ac79 ARM: NEON scalarproduct_int16 and scalarproduct_and_madd_int16
mru
parents: 10617
diff changeset
332 c->scalarproduct_and_madd_int16 = ff_scalarproduct_and_madd_int16_neon;
8334
6bdd6dfc3574 ARM: NEON optimised put_pixels functions
mru
parents:
diff changeset
333 }