Coverage Report

Created: 2026-05-23 07:06

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ffmpeg/libavcodec/cavsdsp.c
Line
Count
Source
1
/*
2
 * Chinese AVS video (AVS1-P2, JiZhun profile) decoder.
3
 *
4
 * DSP functions
5
 *
6
 * Copyright (c) 2006  Stefan Gehrer <stefan.gehrer@gmx.de>
7
 *
8
 * This file is part of FFmpeg.
9
 *
10
 * FFmpeg is free software; you can redistribute it and/or
11
 * modify it under the terms of the GNU Lesser General Public
12
 * License as published by the Free Software Foundation; either
13
 * version 2.1 of the License, or (at your option) any later version.
14
 *
15
 * FFmpeg is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18
 * Lesser General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU Lesser General Public
21
 * License along with FFmpeg; if not, write to the Free Software
22
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23
 */
24
25
#include "idctdsp.h"
26
#include "mathops.h"
27
#include "cavsdsp.h"
28
#include "libavutil/common.h"
29
30
/*****************************************************************************
31
 *
32
 * in-loop deblocking filter
33
 *
34
 ****************************************************************************/
35
36
49.1M
#define P2 p0_p[-3*stride]
37
167M
#define P1 p0_p[-2*stride]
38
211M
#define P0 p0_p[-1*stride]
39
210M
#define Q0 p0_p[ 0*stride]
40
165M
#define Q1 p0_p[ 1*stride]
41
49.1M
#define Q2 p0_p[ 2*stride]
42
43
static inline void loop_filter_l2(uint8_t *p0_p, ptrdiff_t stride, int alpha, int beta)
44
4.54M
{
45
4.54M
    int p0 = P0;
46
4.54M
    int q0 = Q0;
47
48
4.54M
    if(abs(p0-q0)<alpha && abs(P1-p0)<beta && abs(Q1-q0)<beta) {
49
4.29M
        int s = p0 + q0 + 2;
50
4.29M
        alpha = (alpha>>2) + 2;
51
4.29M
        if(abs(P2-p0) < beta && abs(p0-q0) < alpha) {
52
4.19M
            P0 = (P1 + p0 + s) >> 2;
53
4.19M
            P1 = (2*P1 + s) >> 2;
54
4.19M
        } else
55
104k
            P0 = (2*P1 + s) >> 2;
56
4.29M
        if(abs(Q2-q0) < beta && abs(q0-p0) < alpha) {
57
4.21M
            Q0 = (Q1 + q0 + s) >> 2;
58
4.21M
            Q1 = (2*Q1 + s) >> 2;
59
4.21M
        } else
60
77.9k
            Q0 = (2*Q1 + s) >> 2;
61
4.29M
    }
62
4.54M
}
63
64
static inline void loop_filter_l1(uint8_t *p0_p, ptrdiff_t stride, int alpha, int beta, int tc)
65
31.6M
{
66
31.6M
    int p0 = P0;
67
31.6M
    int q0 = Q0;
68
69
31.6M
    if(abs(p0-q0)<alpha && abs(P1-p0)<beta && abs(Q1-q0)<beta) {
70
21.6M
        int delta = av_clip(((q0-p0)*3+P1-Q1+4)>>3,-tc, tc);
71
21.6M
        P0 = av_clip_uint8(p0+delta);
72
21.6M
        Q0 = av_clip_uint8(q0-delta);
73
21.6M
        if(abs(P2-p0)<beta) {
74
21.5M
            delta = av_clip(((P0-P1)*3+P2-Q0+4)>>3, -tc, tc);
75
21.5M
            P1 = av_clip_uint8(P1+delta);
76
21.5M
        }
77
21.6M
        if(abs(Q2-q0)<beta) {
78
21.4M
            delta = av_clip(((Q1-Q0)*3+P0-Q2+4)>>3, -tc, tc);
79
21.4M
            Q1 = av_clip_uint8(Q1-delta);
80
21.4M
        }
81
21.6M
    }
82
31.6M
}
83
84
static inline void loop_filter_c2(uint8_t *p0_p, ptrdiff_t stride, int alpha, int beta)
85
2.04M
{
86
2.04M
    int p0 = P0;
87
2.04M
    int q0 = Q0;
88
89
2.04M
    if(abs(p0-q0)<alpha && abs(P1-p0)<beta && abs(Q1-q0)<beta) {
90
1.75M
        int s = p0 + q0 + 2;
91
1.75M
        alpha = (alpha>>2) + 2;
92
1.75M
        if(abs(P2-p0) < beta && abs(p0-q0) < alpha) {
93
1.67M
            P0 = (P1 + p0 + s) >> 2;
94
1.67M
        } else
95
84.2k
            P0 = (2*P1 + s) >> 2;
96
1.75M
        if(abs(Q2-q0) < beta && abs(q0-p0) < alpha) {
97
1.66M
            Q0 = (Q1 + q0 + s) >> 2;
98
1.66M
        } else
99
88.9k
            Q0 = (2*Q1 + s) >> 2;
100
1.75M
    }
101
2.04M
}
102
103
static inline void loop_filter_c1(uint8_t *p0_p, ptrdiff_t stride, int alpha, int beta,
104
                                  int tc)
105
28.9M
{
106
28.9M
    if(abs(P0-Q0)<alpha && abs(P1-P0)<beta && abs(Q1-Q0)<beta) {
107
18.0M
        int delta = av_clip(((Q0-P0)*3+P1-Q1+4)>>3, -tc, tc);
108
18.0M
        P0 = av_clip_uint8(P0+delta);
109
18.0M
        Q0 = av_clip_uint8(Q0-delta);
110
18.0M
    }
111
28.9M
}
112
113
#undef P0
114
#undef P1
115
#undef P2
116
#undef Q0
117
#undef Q1
118
#undef Q2
119
120
static void cavs_filter_lv_c(uint8_t *d, ptrdiff_t stride, int alpha, int beta, int tc,
121
                             int bs1, int bs2)
122
3.88M
{
123
3.88M
    int i;
124
3.88M
    if(bs1==2)
125
2.20M
        for(i=0;i<16;i++)
126
2.07M
            loop_filter_l2(d + i*stride,1,alpha,beta);
127
3.75M
    else {
128
3.75M
        if(bs1)
129
7.83M
            for(i=0;i<8;i++)
130
6.96M
                loop_filter_l1(d + i*stride,1,alpha,beta,tc);
131
3.75M
        if (bs2)
132
7.73M
            for(i=8;i<16;i++)
133
6.87M
                loop_filter_l1(d + i*stride,1,alpha,beta,tc);
134
3.75M
    }
135
3.88M
}
136
137
static void cavs_filter_lh_c(uint8_t *d, ptrdiff_t stride, int alpha, int beta, int tc,
138
                             int bs1, int bs2)
139
4.66M
{
140
4.66M
    int i;
141
4.66M
    if(bs1==2)
142
2.62M
        for(i=0;i<16;i++)
143
2.46M
            loop_filter_l2(d + i,stride,alpha,beta);
144
4.50M
    else {
145
4.50M
        if(bs1)
146
10.1M
            for(i=0;i<8;i++)
147
8.99M
                loop_filter_l1(d + i,stride,alpha,beta,tc);
148
4.50M
        if (bs2)
149
9.87M
            for(i=8;i<16;i++)
150
8.77M
                loop_filter_l1(d + i,stride,alpha,beta,tc);
151
4.50M
    }
152
4.66M
}
153
154
static void cavs_filter_cv_c(uint8_t *d, ptrdiff_t stride, int alpha, int beta, int tc,
155
                             int bs1, int bs2)
156
2.58M
{
157
2.58M
    int i;
158
2.58M
    if(bs1==2)
159
929k
        for(i=0;i<8;i++)
160
826k
            loop_filter_c2(d + i*stride,1,alpha,beta);
161
2.48M
    else {
162
2.48M
        if(bs1)
163
7.96M
            for(i=0;i<4;i++)
164
6.37M
                loop_filter_c1(d + i*stride,1,alpha,beta,tc);
165
2.48M
        if (bs2)
166
7.89M
            for(i=4;i<8;i++)
167
6.31M
                loop_filter_c1(d + i*stride,1,alpha,beta,tc);
168
2.48M
    }
169
2.58M
}
170
171
static void cavs_filter_ch_c(uint8_t *d, ptrdiff_t stride, int alpha, int beta, int tc,
172
                             int bs1, int bs2)
173
4.13M
{
174
4.13M
    int i;
175
4.13M
    if(bs1==2)
176
1.36M
        for(i=0;i<8;i++)
177
1.21M
            loop_filter_c2(d + i,stride,alpha,beta);
178
3.98M
    else {
179
3.98M
        if(bs1)
180
10.3M
            for(i=0;i<4;i++)
181
8.24M
                loop_filter_c1(d + i,stride,alpha,beta,tc);
182
3.98M
        if (bs2)
183
9.97M
            for(i=4;i<8;i++)
184
7.98M
                loop_filter_c1(d + i,stride,alpha,beta,tc);
185
3.98M
    }
186
4.13M
}
187
188
/*****************************************************************************
189
 *
190
 * inverse transform
191
 *
192
 ****************************************************************************/
193
194
static void cavs_idct8_add_c(uint8_t *dst, int16_t *block, ptrdiff_t stride)
195
2.17M
{
196
2.17M
    int i;
197
2.17M
    int16_t (*src)[8] = (int16_t(*)[8])block;
198
199
2.17M
    src[0][0] += 8;
200
201
19.5M
    for( i = 0; i < 8; i++ ) {
202
17.3M
        const int a0 = 3 * src[i][1] - 2 * src[i][7];
203
17.3M
        const int a1 = 3 * src[i][3] + 2 * src[i][5];
204
17.3M
        const int a2 = 2 * src[i][3] - 3 * src[i][5];
205
17.3M
        const int a3 = 2 * src[i][1] + 3 * src[i][7];
206
207
17.3M
        const int b4 = 2 * (a0 + a1 + a3) + a1;
208
17.3M
        const int b5 = 2 * (a0 - a1 + a2) + a0;
209
17.3M
        const int b6 = 2 * (a3 - a2 - a1) + a3;
210
17.3M
        const int b7 = 2 * (a0 - a2 - a3) - a2;
211
212
17.3M
        const int a7 = 4 * src[i][2] - 10 * src[i][6];
213
17.3M
        const int a6 = 4 * src[i][6] + 10 * src[i][2];
214
17.3M
        const int a5 = 8 * (src[i][0] - src[i][4]) + 4;
215
17.3M
        const int a4 = 8 * (src[i][0] + src[i][4]) + 4;
216
217
17.3M
        const int b0 = a4 + a6;
218
17.3M
        const int b1 = a5 + a7;
219
17.3M
        const int b2 = a5 - a7;
220
17.3M
        const int b3 = a4 - a6;
221
222
17.3M
        src[i][0] = (b0 + b4) >> 3;
223
17.3M
        src[i][1] = (b1 + b5) >> 3;
224
17.3M
        src[i][2] = (b2 + b6) >> 3;
225
17.3M
        src[i][3] = (b3 + b7) >> 3;
226
17.3M
        src[i][4] = (b3 - b7) >> 3;
227
17.3M
        src[i][5] = (b2 - b6) >> 3;
228
17.3M
        src[i][6] = (b1 - b5) >> 3;
229
17.3M
        src[i][7] = (b0 - b4) >> 3;
230
17.3M
    }
231
19.5M
    for( i = 0; i < 8; i++ ) {
232
17.3M
        const int a0 = 3 * src[1][i] - 2 * src[7][i];
233
17.3M
        const int a1 = 3 * src[3][i] + 2 * src[5][i];
234
17.3M
        const int a2 = 2 * src[3][i] - 3 * src[5][i];
235
17.3M
        const int a3 = 2 * src[1][i] + 3 * src[7][i];
236
237
17.3M
        const int b4 = 2 * (a0 + a1 + a3) + a1;
238
17.3M
        const int b5 = 2 * (a0 - a1 + a2) + a0;
239
17.3M
        const int b6 = 2 * (a3 - a2 - a1) + a3;
240
17.3M
        const int b7 = 2 * (a0 - a2 - a3) - a2;
241
242
17.3M
        const int a7 = 4 * src[2][i] - 10 * src[6][i];
243
17.3M
        const int a6 = 4 * src[6][i] + 10 * src[2][i];
244
17.3M
        const int a5 = 8 * (src[0][i] - src[4][i]);
245
17.3M
        const int a4 = 8 * (src[0][i] + src[4][i]);
246
247
17.3M
        const int b0 = a4 + a6;
248
17.3M
        const int b1 = a5 + a7;
249
17.3M
        const int b2 = a5 - a7;
250
17.3M
        const int b3 = a4 - a6;
251
252
17.3M
        dst[i + 0*stride] = av_clip_uint8( dst[i + 0*stride] + ((b0 + b4) >> 7));
253
17.3M
        dst[i + 1*stride] = av_clip_uint8( dst[i + 1*stride] + ((b1 + b5) >> 7));
254
17.3M
        dst[i + 2*stride] = av_clip_uint8( dst[i + 2*stride] + ((b2 + b6) >> 7));
255
17.3M
        dst[i + 3*stride] = av_clip_uint8( dst[i + 3*stride] + ((b3 + b7) >> 7));
256
17.3M
        dst[i + 4*stride] = av_clip_uint8( dst[i + 4*stride] + ((b3 - b7) >> 7));
257
17.3M
        dst[i + 5*stride] = av_clip_uint8( dst[i + 5*stride] + ((b2 - b6) >> 7));
258
17.3M
        dst[i + 6*stride] = av_clip_uint8( dst[i + 6*stride] + ((b1 - b5) >> 7));
259
17.3M
        dst[i + 7*stride] = av_clip_uint8( dst[i + 7*stride] + ((b0 - b4) >> 7));
260
17.3M
    }
261
2.17M
}
262
263
/*****************************************************************************
264
 *
265
 * motion compensation
266
 *
267
 ****************************************************************************/
268
269
#define CAVS_SUBPIX(OPNAME, OP, NAME, A, B, C, D, E, F) \
270
2.31M
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
271
2.31M
{                                                                       \
272
2.31M
    const int h=8;\
273
2.31M
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
274
2.31M
    int i;\
275
20.8M
    for(i=0; i<h; i++)\
276
18.4M
    {\
277
18.4M
        OP(dst[0], A*src[-2] + B*src[-1] + C*src[0] + D*src[1] + E*src[2] + F*src[3]);\
278
18.4M
        OP(dst[1], A*src[-1] + B*src[ 0] + C*src[1] + D*src[2] + E*src[3] + F*src[4]);\
279
18.4M
        OP(dst[2], A*src[ 0] + B*src[ 1] + C*src[2] + D*src[3] + E*src[4] + F*src[5]);\
280
18.4M
        OP(dst[3], A*src[ 1] + B*src[ 2] + C*src[3] + D*src[4] + E*src[5] + F*src[6]);\
281
18.4M
        OP(dst[4], A*src[ 2] + B*src[ 3] + C*src[4] + D*src[5] + E*src[6] + F*src[7]);\
282
18.4M
        OP(dst[5], A*src[ 3] + B*src[ 4] + C*src[5] + D*src[6] + E*src[7] + F*src[8]);\
283
18.4M
        OP(dst[6], A*src[ 4] + B*src[ 5] + C*src[6] + D*src[7] + E*src[8] + F*src[9]);\
284
18.4M
        OP(dst[7], A*src[ 5] + B*src[ 6] + C*src[7] + D*src[8] + E*src[9] + F*src[10]);\
285
18.4M
        dst+=dstStride;\
286
18.4M
        src+=srcStride;\
287
18.4M
    }\
288
2.31M
}\
cavsdsp.c:put_cavs_filt8_h_qpel_l
Line
Count
Source
270
515k
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
271
515k
{                                                                       \
272
515k
    const int h=8;\
273
515k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
274
515k
    int i;\
275
4.64M
    for(i=0; i<h; i++)\
276
4.12M
    {\
277
4.12M
        OP(dst[0], A*src[-2] + B*src[-1] + C*src[0] + D*src[1] + E*src[2] + F*src[3]);\
278
4.12M
        OP(dst[1], A*src[-1] + B*src[ 0] + C*src[1] + D*src[2] + E*src[3] + F*src[4]);\
279
4.12M
        OP(dst[2], A*src[ 0] + B*src[ 1] + C*src[2] + D*src[3] + E*src[4] + F*src[5]);\
280
4.12M
        OP(dst[3], A*src[ 1] + B*src[ 2] + C*src[3] + D*src[4] + E*src[5] + F*src[6]);\
281
4.12M
        OP(dst[4], A*src[ 2] + B*src[ 3] + C*src[4] + D*src[5] + E*src[6] + F*src[7]);\
282
4.12M
        OP(dst[5], A*src[ 3] + B*src[ 4] + C*src[5] + D*src[6] + E*src[7] + F*src[8]);\
283
4.12M
        OP(dst[6], A*src[ 4] + B*src[ 5] + C*src[6] + D*src[7] + E*src[8] + F*src[9]);\
284
4.12M
        OP(dst[7], A*src[ 5] + B*src[ 6] + C*src[7] + D*src[8] + E*src[9] + F*src[10]);\
285
4.12M
        dst+=dstStride;\
286
4.12M
        src+=srcStride;\
287
4.12M
    }\
288
515k
}\
cavsdsp.c:put_cavs_filt8_h_hpel
Line
Count
Source
270
856k
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
271
856k
{                                                                       \
272
856k
    const int h=8;\
273
856k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
274
856k
    int i;\
275
7.70M
    for(i=0; i<h; i++)\
276
6.84M
    {\
277
6.84M
        OP(dst[0], A*src[-2] + B*src[-1] + C*src[0] + D*src[1] + E*src[2] + F*src[3]);\
278
6.84M
        OP(dst[1], A*src[-1] + B*src[ 0] + C*src[1] + D*src[2] + E*src[3] + F*src[4]);\
279
6.84M
        OP(dst[2], A*src[ 0] + B*src[ 1] + C*src[2] + D*src[3] + E*src[4] + F*src[5]);\
280
6.84M
        OP(dst[3], A*src[ 1] + B*src[ 2] + C*src[3] + D*src[4] + E*src[5] + F*src[6]);\
281
6.84M
        OP(dst[4], A*src[ 2] + B*src[ 3] + C*src[4] + D*src[5] + E*src[6] + F*src[7]);\
282
6.84M
        OP(dst[5], A*src[ 3] + B*src[ 4] + C*src[5] + D*src[6] + E*src[7] + F*src[8]);\
283
6.84M
        OP(dst[6], A*src[ 4] + B*src[ 5] + C*src[6] + D*src[7] + E*src[8] + F*src[9]);\
284
6.84M
        OP(dst[7], A*src[ 5] + B*src[ 6] + C*src[7] + D*src[8] + E*src[9] + F*src[10]);\
285
6.84M
        dst+=dstStride;\
286
6.84M
        src+=srcStride;\
287
6.84M
    }\
288
856k
}\
cavsdsp.c:put_cavs_filt8_h_qpel_r
Line
Count
Source
270
618k
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
271
618k
{                                                                       \
272
618k
    const int h=8;\
273
618k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
274
618k
    int i;\
275
5.56M
    for(i=0; i<h; i++)\
276
4.94M
    {\
277
4.94M
        OP(dst[0], A*src[-2] + B*src[-1] + C*src[0] + D*src[1] + E*src[2] + F*src[3]);\
278
4.94M
        OP(dst[1], A*src[-1] + B*src[ 0] + C*src[1] + D*src[2] + E*src[3] + F*src[4]);\
279
4.94M
        OP(dst[2], A*src[ 0] + B*src[ 1] + C*src[2] + D*src[3] + E*src[4] + F*src[5]);\
280
4.94M
        OP(dst[3], A*src[ 1] + B*src[ 2] + C*src[3] + D*src[4] + E*src[5] + F*src[6]);\
281
4.94M
        OP(dst[4], A*src[ 2] + B*src[ 3] + C*src[4] + D*src[5] + E*src[6] + F*src[7]);\
282
4.94M
        OP(dst[5], A*src[ 3] + B*src[ 4] + C*src[5] + D*src[6] + E*src[7] + F*src[8]);\
283
4.94M
        OP(dst[6], A*src[ 4] + B*src[ 5] + C*src[6] + D*src[7] + E*src[8] + F*src[9]);\
284
4.94M
        OP(dst[7], A*src[ 5] + B*src[ 6] + C*src[7] + D*src[8] + E*src[9] + F*src[10]);\
285
4.94M
        dst+=dstStride;\
286
4.94M
        src+=srcStride;\
287
4.94M
    }\
288
618k
}\
cavsdsp.c:avg_cavs_filt8_h_qpel_l
Line
Count
Source
270
104k
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
271
104k
{                                                                       \
272
104k
    const int h=8;\
273
104k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
274
104k
    int i;\
275
937k
    for(i=0; i<h; i++)\
276
833k
    {\
277
833k
        OP(dst[0], A*src[-2] + B*src[-1] + C*src[0] + D*src[1] + E*src[2] + F*src[3]);\
278
833k
        OP(dst[1], A*src[-1] + B*src[ 0] + C*src[1] + D*src[2] + E*src[3] + F*src[4]);\
279
833k
        OP(dst[2], A*src[ 0] + B*src[ 1] + C*src[2] + D*src[3] + E*src[4] + F*src[5]);\
280
833k
        OP(dst[3], A*src[ 1] + B*src[ 2] + C*src[3] + D*src[4] + E*src[5] + F*src[6]);\
281
833k
        OP(dst[4], A*src[ 2] + B*src[ 3] + C*src[4] + D*src[5] + E*src[6] + F*src[7]);\
282
833k
        OP(dst[5], A*src[ 3] + B*src[ 4] + C*src[5] + D*src[6] + E*src[7] + F*src[8]);\
283
833k
        OP(dst[6], A*src[ 4] + B*src[ 5] + C*src[6] + D*src[7] + E*src[8] + F*src[9]);\
284
833k
        OP(dst[7], A*src[ 5] + B*src[ 6] + C*src[7] + D*src[8] + E*src[9] + F*src[10]);\
285
833k
        dst+=dstStride;\
286
833k
        src+=srcStride;\
287
833k
    }\
288
104k
}\
cavsdsp.c:avg_cavs_filt8_h_hpel
Line
Count
Source
270
106k
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
271
106k
{                                                                       \
272
106k
    const int h=8;\
273
106k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
274
106k
    int i;\
275
957k
    for(i=0; i<h; i++)\
276
850k
    {\
277
850k
        OP(dst[0], A*src[-2] + B*src[-1] + C*src[0] + D*src[1] + E*src[2] + F*src[3]);\
278
850k
        OP(dst[1], A*src[-1] + B*src[ 0] + C*src[1] + D*src[2] + E*src[3] + F*src[4]);\
279
850k
        OP(dst[2], A*src[ 0] + B*src[ 1] + C*src[2] + D*src[3] + E*src[4] + F*src[5]);\
280
850k
        OP(dst[3], A*src[ 1] + B*src[ 2] + C*src[3] + D*src[4] + E*src[5] + F*src[6]);\
281
850k
        OP(dst[4], A*src[ 2] + B*src[ 3] + C*src[4] + D*src[5] + E*src[6] + F*src[7]);\
282
850k
        OP(dst[5], A*src[ 3] + B*src[ 4] + C*src[5] + D*src[6] + E*src[7] + F*src[8]);\
283
850k
        OP(dst[6], A*src[ 4] + B*src[ 5] + C*src[6] + D*src[7] + E*src[8] + F*src[9]);\
284
850k
        OP(dst[7], A*src[ 5] + B*src[ 6] + C*src[7] + D*src[8] + E*src[9] + F*src[10]);\
285
850k
        dst+=dstStride;\
286
850k
        src+=srcStride;\
287
850k
    }\
288
106k
}\
cavsdsp.c:avg_cavs_filt8_h_qpel_r
Line
Count
Source
270
110k
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
271
110k
{                                                                       \
272
110k
    const int h=8;\
273
110k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
274
110k
    int i;\
275
992k
    for(i=0; i<h; i++)\
276
882k
    {\
277
882k
        OP(dst[0], A*src[-2] + B*src[-1] + C*src[0] + D*src[1] + E*src[2] + F*src[3]);\
278
882k
        OP(dst[1], A*src[-1] + B*src[ 0] + C*src[1] + D*src[2] + E*src[3] + F*src[4]);\
279
882k
        OP(dst[2], A*src[ 0] + B*src[ 1] + C*src[2] + D*src[3] + E*src[4] + F*src[5]);\
280
882k
        OP(dst[3], A*src[ 1] + B*src[ 2] + C*src[3] + D*src[4] + E*src[5] + F*src[6]);\
281
882k
        OP(dst[4], A*src[ 2] + B*src[ 3] + C*src[4] + D*src[5] + E*src[6] + F*src[7]);\
282
882k
        OP(dst[5], A*src[ 3] + B*src[ 4] + C*src[5] + D*src[6] + E*src[7] + F*src[8]);\
283
882k
        OP(dst[6], A*src[ 4] + B*src[ 5] + C*src[6] + D*src[7] + E*src[8] + F*src[9]);\
284
882k
        OP(dst[7], A*src[ 5] + B*src[ 6] + C*src[7] + D*src[8] + E*src[9] + F*src[10]);\
285
882k
        dst+=dstStride;\
286
882k
        src+=srcStride;\
287
882k
    }\
288
110k
}\
289
\
290
1.08M
static void OPNAME ## cavs_filt8_v_  ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
291
1.08M
{                                                                       \
292
1.08M
    const int w=8;\
293
1.08M
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
294
1.08M
    int i;\
295
9.80M
    for(i=0; i<w; i++)\
296
8.71M
    {\
297
8.71M
        const int srcB= src[-2*srcStride];\
298
8.71M
        const int srcA= src[-1*srcStride];\
299
8.71M
        const int src0= src[0 *srcStride];\
300
8.71M
        const int src1= src[1 *srcStride];\
301
8.71M
        const int src2= src[2 *srcStride];\
302
8.71M
        const int src3= src[3 *srcStride];\
303
8.71M
        const int src4= src[4 *srcStride];\
304
8.71M
        const int src5= src[5 *srcStride];\
305
8.71M
        const int src6= src[6 *srcStride];\
306
8.71M
        const int src7= src[7 *srcStride];\
307
8.71M
        const int src8= src[8 *srcStride];\
308
8.71M
        const int src9= src[9 *srcStride];\
309
8.71M
        const int src10= src[10 *srcStride];\
310
8.71M
        OP(dst[0*dstStride], A*srcB + B*srcA + C*src0 + D*src1 + E*src2 + F*src3);\
311
8.71M
        OP(dst[1*dstStride], A*srcA + B*src0 + C*src1 + D*src2 + E*src3 + F*src4);\
312
8.71M
        OP(dst[2*dstStride], A*src0 + B*src1 + C*src2 + D*src3 + E*src4 + F*src5);\
313
8.71M
        OP(dst[3*dstStride], A*src1 + B*src2 + C*src3 + D*src4 + E*src5 + F*src6);\
314
8.71M
        OP(dst[4*dstStride], A*src2 + B*src3 + C*src4 + D*src5 + E*src6 + F*src7);\
315
8.71M
        OP(dst[5*dstStride], A*src3 + B*src4 + C*src5 + D*src6 + E*src7 + F*src8);\
316
8.71M
        OP(dst[6*dstStride], A*src4 + B*src5 + C*src6 + D*src7 + E*src8 + F*src9);\
317
8.71M
        OP(dst[7*dstStride], A*src5 + B*src6 + C*src7 + D*src8 + E*src9 + F*src10);\
318
8.71M
        dst++;\
319
8.71M
        src++;\
320
8.71M
    }\
321
1.08M
}\
cavsdsp.c:put_cavs_filt8_v_qpel_l
Line
Count
Source
290
161k
static void OPNAME ## cavs_filt8_v_  ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
291
161k
{                                                                       \
292
161k
    const int w=8;\
293
161k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
294
161k
    int i;\
295
1.45M
    for(i=0; i<w; i++)\
296
1.29M
    {\
297
1.29M
        const int srcB= src[-2*srcStride];\
298
1.29M
        const int srcA= src[-1*srcStride];\
299
1.29M
        const int src0= src[0 *srcStride];\
300
1.29M
        const int src1= src[1 *srcStride];\
301
1.29M
        const int src2= src[2 *srcStride];\
302
1.29M
        const int src3= src[3 *srcStride];\
303
1.29M
        const int src4= src[4 *srcStride];\
304
1.29M
        const int src5= src[5 *srcStride];\
305
1.29M
        const int src6= src[6 *srcStride];\
306
1.29M
        const int src7= src[7 *srcStride];\
307
1.29M
        const int src8= src[8 *srcStride];\
308
1.29M
        const int src9= src[9 *srcStride];\
309
1.29M
        const int src10= src[10 *srcStride];\
310
1.29M
        OP(dst[0*dstStride], A*srcB + B*srcA + C*src0 + D*src1 + E*src2 + F*src3);\
311
1.29M
        OP(dst[1*dstStride], A*srcA + B*src0 + C*src1 + D*src2 + E*src3 + F*src4);\
312
1.29M
        OP(dst[2*dstStride], A*src0 + B*src1 + C*src2 + D*src3 + E*src4 + F*src5);\
313
1.29M
        OP(dst[3*dstStride], A*src1 + B*src2 + C*src3 + D*src4 + E*src5 + F*src6);\
314
1.29M
        OP(dst[4*dstStride], A*src2 + B*src3 + C*src4 + D*src5 + E*src6 + F*src7);\
315
1.29M
        OP(dst[5*dstStride], A*src3 + B*src4 + C*src5 + D*src6 + E*src7 + F*src8);\
316
1.29M
        OP(dst[6*dstStride], A*src4 + B*src5 + C*src6 + D*src7 + E*src8 + F*src9);\
317
1.29M
        OP(dst[7*dstStride], A*src5 + B*src6 + C*src7 + D*src8 + E*src9 + F*src10);\
318
1.29M
        dst++;\
319
1.29M
        src++;\
320
1.29M
    }\
321
161k
}\
cavsdsp.c:put_cavs_filt8_v_hpel
Line
Count
Source
290
203k
static void OPNAME ## cavs_filt8_v_  ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
291
203k
{                                                                       \
292
203k
    const int w=8;\
293
203k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
294
203k
    int i;\
295
1.82M
    for(i=0; i<w; i++)\
296
1.62M
    {\
297
1.62M
        const int srcB= src[-2*srcStride];\
298
1.62M
        const int srcA= src[-1*srcStride];\
299
1.62M
        const int src0= src[0 *srcStride];\
300
1.62M
        const int src1= src[1 *srcStride];\
301
1.62M
        const int src2= src[2 *srcStride];\
302
1.62M
        const int src3= src[3 *srcStride];\
303
1.62M
        const int src4= src[4 *srcStride];\
304
1.62M
        const int src5= src[5 *srcStride];\
305
1.62M
        const int src6= src[6 *srcStride];\
306
1.62M
        const int src7= src[7 *srcStride];\
307
1.62M
        const int src8= src[8 *srcStride];\
308
1.62M
        const int src9= src[9 *srcStride];\
309
1.62M
        const int src10= src[10 *srcStride];\
310
1.62M
        OP(dst[0*dstStride], A*srcB + B*srcA + C*src0 + D*src1 + E*src2 + F*src3);\
311
1.62M
        OP(dst[1*dstStride], A*srcA + B*src0 + C*src1 + D*src2 + E*src3 + F*src4);\
312
1.62M
        OP(dst[2*dstStride], A*src0 + B*src1 + C*src2 + D*src3 + E*src4 + F*src5);\
313
1.62M
        OP(dst[3*dstStride], A*src1 + B*src2 + C*src3 + D*src4 + E*src5 + F*src6);\
314
1.62M
        OP(dst[4*dstStride], A*src2 + B*src3 + C*src4 + D*src5 + E*src6 + F*src7);\
315
1.62M
        OP(dst[5*dstStride], A*src3 + B*src4 + C*src5 + D*src6 + E*src7 + F*src8);\
316
1.62M
        OP(dst[6*dstStride], A*src4 + B*src5 + C*src6 + D*src7 + E*src8 + F*src9);\
317
1.62M
        OP(dst[7*dstStride], A*src5 + B*src6 + C*src7 + D*src8 + E*src9 + F*src10);\
318
1.62M
        dst++;\
319
1.62M
        src++;\
320
1.62M
    }\
321
203k
}\
cavsdsp.c:put_cavs_filt8_v_qpel_r
Line
Count
Source
290
325k
static void OPNAME ## cavs_filt8_v_  ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
291
325k
{                                                                       \
292
325k
    const int w=8;\
293
325k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
294
325k
    int i;\
295
2.93M
    for(i=0; i<w; i++)\
296
2.60M
    {\
297
2.60M
        const int srcB= src[-2*srcStride];\
298
2.60M
        const int srcA= src[-1*srcStride];\
299
2.60M
        const int src0= src[0 *srcStride];\
300
2.60M
        const int src1= src[1 *srcStride];\
301
2.60M
        const int src2= src[2 *srcStride];\
302
2.60M
        const int src3= src[3 *srcStride];\
303
2.60M
        const int src4= src[4 *srcStride];\
304
2.60M
        const int src5= src[5 *srcStride];\
305
2.60M
        const int src6= src[6 *srcStride];\
306
2.60M
        const int src7= src[7 *srcStride];\
307
2.60M
        const int src8= src[8 *srcStride];\
308
2.60M
        const int src9= src[9 *srcStride];\
309
2.60M
        const int src10= src[10 *srcStride];\
310
2.60M
        OP(dst[0*dstStride], A*srcB + B*srcA + C*src0 + D*src1 + E*src2 + F*src3);\
311
2.60M
        OP(dst[1*dstStride], A*srcA + B*src0 + C*src1 + D*src2 + E*src3 + F*src4);\
312
2.60M
        OP(dst[2*dstStride], A*src0 + B*src1 + C*src2 + D*src3 + E*src4 + F*src5);\
313
2.60M
        OP(dst[3*dstStride], A*src1 + B*src2 + C*src3 + D*src4 + E*src5 + F*src6);\
314
2.60M
        OP(dst[4*dstStride], A*src2 + B*src3 + C*src4 + D*src5 + E*src6 + F*src7);\
315
2.60M
        OP(dst[5*dstStride], A*src3 + B*src4 + C*src5 + D*src6 + E*src7 + F*src8);\
316
2.60M
        OP(dst[6*dstStride], A*src4 + B*src5 + C*src6 + D*src7 + E*src8 + F*src9);\
317
2.60M
        OP(dst[7*dstStride], A*src5 + B*src6 + C*src7 + D*src8 + E*src9 + F*src10);\
318
2.60M
        dst++;\
319
2.60M
        src++;\
320
2.60M
    }\
321
325k
}\
cavsdsp.c:avg_cavs_filt8_v_qpel_l
Line
Count
Source
290
123k
static void OPNAME ## cavs_filt8_v_  ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
291
123k
{                                                                       \
292
123k
    const int w=8;\
293
123k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
294
123k
    int i;\
295
1.10M
    for(i=0; i<w; i++)\
296
985k
    {\
297
985k
        const int srcB= src[-2*srcStride];\
298
985k
        const int srcA= src[-1*srcStride];\
299
985k
        const int src0= src[0 *srcStride];\
300
985k
        const int src1= src[1 *srcStride];\
301
985k
        const int src2= src[2 *srcStride];\
302
985k
        const int src3= src[3 *srcStride];\
303
985k
        const int src4= src[4 *srcStride];\
304
985k
        const int src5= src[5 *srcStride];\
305
985k
        const int src6= src[6 *srcStride];\
306
985k
        const int src7= src[7 *srcStride];\
307
985k
        const int src8= src[8 *srcStride];\
308
985k
        const int src9= src[9 *srcStride];\
309
985k
        const int src10= src[10 *srcStride];\
310
985k
        OP(dst[0*dstStride], A*srcB + B*srcA + C*src0 + D*src1 + E*src2 + F*src3);\
311
985k
        OP(dst[1*dstStride], A*srcA + B*src0 + C*src1 + D*src2 + E*src3 + F*src4);\
312
985k
        OP(dst[2*dstStride], A*src0 + B*src1 + C*src2 + D*src3 + E*src4 + F*src5);\
313
985k
        OP(dst[3*dstStride], A*src1 + B*src2 + C*src3 + D*src4 + E*src5 + F*src6);\
314
985k
        OP(dst[4*dstStride], A*src2 + B*src3 + C*src4 + D*src5 + E*src6 + F*src7);\
315
985k
        OP(dst[5*dstStride], A*src3 + B*src4 + C*src5 + D*src6 + E*src7 + F*src8);\
316
985k
        OP(dst[6*dstStride], A*src4 + B*src5 + C*src6 + D*src7 + E*src8 + F*src9);\
317
985k
        OP(dst[7*dstStride], A*src5 + B*src6 + C*src7 + D*src8 + E*src9 + F*src10);\
318
985k
        dst++;\
319
985k
        src++;\
320
985k
    }\
321
123k
}\
cavsdsp.c:avg_cavs_filt8_v_hpel
Line
Count
Source
290
114k
static void OPNAME ## cavs_filt8_v_  ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
291
114k
{                                                                       \
292
114k
    const int w=8;\
293
114k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
294
114k
    int i;\
295
1.02M
    for(i=0; i<w; i++)\
296
915k
    {\
297
915k
        const int srcB= src[-2*srcStride];\
298
915k
        const int srcA= src[-1*srcStride];\
299
915k
        const int src0= src[0 *srcStride];\
300
915k
        const int src1= src[1 *srcStride];\
301
915k
        const int src2= src[2 *srcStride];\
302
915k
        const int src3= src[3 *srcStride];\
303
915k
        const int src4= src[4 *srcStride];\
304
915k
        const int src5= src[5 *srcStride];\
305
915k
        const int src6= src[6 *srcStride];\
306
915k
        const int src7= src[7 *srcStride];\
307
915k
        const int src8= src[8 *srcStride];\
308
915k
        const int src9= src[9 *srcStride];\
309
915k
        const int src10= src[10 *srcStride];\
310
915k
        OP(dst[0*dstStride], A*srcB + B*srcA + C*src0 + D*src1 + E*src2 + F*src3);\
311
915k
        OP(dst[1*dstStride], A*srcA + B*src0 + C*src1 + D*src2 + E*src3 + F*src4);\
312
915k
        OP(dst[2*dstStride], A*src0 + B*src1 + C*src2 + D*src3 + E*src4 + F*src5);\
313
915k
        OP(dst[3*dstStride], A*src1 + B*src2 + C*src3 + D*src4 + E*src5 + F*src6);\
314
915k
        OP(dst[4*dstStride], A*src2 + B*src3 + C*src4 + D*src5 + E*src6 + F*src7);\
315
915k
        OP(dst[5*dstStride], A*src3 + B*src4 + C*src5 + D*src6 + E*src7 + F*src8);\
316
915k
        OP(dst[6*dstStride], A*src4 + B*src5 + C*src6 + D*src7 + E*src8 + F*src9);\
317
915k
        OP(dst[7*dstStride], A*src5 + B*src6 + C*src7 + D*src8 + E*src9 + F*src10);\
318
915k
        dst++;\
319
915k
        src++;\
320
915k
    }\
321
114k
}\
cavsdsp.c:avg_cavs_filt8_v_qpel_r
Line
Count
Source
290
161k
static void OPNAME ## cavs_filt8_v_  ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
291
161k
{                                                                       \
292
161k
    const int w=8;\
293
161k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
294
161k
    int i;\
295
1.44M
    for(i=0; i<w; i++)\
296
1.28M
    {\
297
1.28M
        const int srcB= src[-2*srcStride];\
298
1.28M
        const int srcA= src[-1*srcStride];\
299
1.28M
        const int src0= src[0 *srcStride];\
300
1.28M
        const int src1= src[1 *srcStride];\
301
1.28M
        const int src2= src[2 *srcStride];\
302
1.28M
        const int src3= src[3 *srcStride];\
303
1.28M
        const int src4= src[4 *srcStride];\
304
1.28M
        const int src5= src[5 *srcStride];\
305
1.28M
        const int src6= src[6 *srcStride];\
306
1.28M
        const int src7= src[7 *srcStride];\
307
1.28M
        const int src8= src[8 *srcStride];\
308
1.28M
        const int src9= src[9 *srcStride];\
309
1.28M
        const int src10= src[10 *srcStride];\
310
1.28M
        OP(dst[0*dstStride], A*srcB + B*srcA + C*src0 + D*src1 + E*src2 + F*src3);\
311
1.28M
        OP(dst[1*dstStride], A*srcA + B*src0 + C*src1 + D*src2 + E*src3 + F*src4);\
312
1.28M
        OP(dst[2*dstStride], A*src0 + B*src1 + C*src2 + D*src3 + E*src4 + F*src5);\
313
1.28M
        OP(dst[3*dstStride], A*src1 + B*src2 + C*src3 + D*src4 + E*src5 + F*src6);\
314
1.28M
        OP(dst[4*dstStride], A*src2 + B*src3 + C*src4 + D*src5 + E*src6 + F*src7);\
315
1.28M
        OP(dst[5*dstStride], A*src3 + B*src4 + C*src5 + D*src6 + E*src7 + F*src8);\
316
1.28M
        OP(dst[6*dstStride], A*src4 + B*src5 + C*src6 + D*src7 + E*src8 + F*src9);\
317
1.28M
        OP(dst[7*dstStride], A*src5 + B*src6 + C*src7 + D*src8 + E*src9 + F*src10);\
318
1.28M
        dst++;\
319
1.28M
        src++;\
320
1.28M
    }\
321
161k
}\
322
\
323
85.3k
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
324
85.3k
{                                                                       \
325
85.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
326
85.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
327
85.3k
    src += 8*srcStride;\
328
85.3k
    dst += 8*dstStride;\
329
85.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
330
85.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
331
85.3k
}\
cavsdsp.c:put_cavs_filt16_v_qpel_l
Line
Count
Source
323
12.3k
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
324
12.3k
{                                                                       \
325
12.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
326
12.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
327
12.3k
    src += 8*srcStride;\
328
12.3k
    dst += 8*dstStride;\
329
12.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
330
12.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
331
12.3k
}\
cavsdsp.c:put_cavs_filt16_v_hpel
Line
Count
Source
323
16.9k
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
324
16.9k
{                                                                       \
325
16.9k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
326
16.9k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
327
16.9k
    src += 8*srcStride;\
328
16.9k
    dst += 8*dstStride;\
329
16.9k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
330
16.9k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
331
16.9k
}\
cavsdsp.c:put_cavs_filt16_v_qpel_r
Line
Count
Source
323
27.3k
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
324
27.3k
{                                                                       \
325
27.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
326
27.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
327
27.3k
    src += 8*srcStride;\
328
27.3k
    dst += 8*dstStride;\
329
27.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
330
27.3k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
331
27.3k
}\
cavsdsp.c:avg_cavs_filt16_v_qpel_l
Line
Count
Source
323
12.4k
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
324
12.4k
{                                                                       \
325
12.4k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
326
12.4k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
327
12.4k
    src += 8*srcStride;\
328
12.4k
    dst += 8*dstStride;\
329
12.4k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
330
12.4k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
331
12.4k
}\
cavsdsp.c:avg_cavs_filt16_v_hpel
Line
Count
Source
323
5.02k
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
324
5.02k
{                                                                       \
325
5.02k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
326
5.02k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
327
5.02k
    src += 8*srcStride;\
328
5.02k
    dst += 8*dstStride;\
329
5.02k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
330
5.02k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
331
5.02k
}\
cavsdsp.c:avg_cavs_filt16_v_qpel_r
Line
Count
Source
323
11.2k
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
324
11.2k
{                                                                       \
325
11.2k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
326
11.2k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
327
11.2k
    src += 8*srcStride;\
328
11.2k
    dst += 8*dstStride;\
329
11.2k
    OPNAME ## cavs_filt8_v_ ## NAME(dst  , src  , dstStride, srcStride);\
330
11.2k
    OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
331
11.2k
}\
332
\
333
424k
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
334
424k
{                                                                       \
335
424k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
336
424k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
337
424k
    src += 8*srcStride;\
338
424k
    dst += 8*dstStride;\
339
424k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
340
424k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
341
424k
}\
cavsdsp.c:put_cavs_filt16_h_qpel_l
Line
Count
Source
333
99.1k
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
334
99.1k
{                                                                       \
335
99.1k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
336
99.1k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
337
99.1k
    src += 8*srcStride;\
338
99.1k
    dst += 8*dstStride;\
339
99.1k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
340
99.1k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
341
99.1k
}\
cavsdsp.c:put_cavs_filt16_h_hpel
Line
Count
Source
333
185k
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
334
185k
{                                                                       \
335
185k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
336
185k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
337
185k
    src += 8*srcStride;\
338
185k
    dst += 8*dstStride;\
339
185k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
340
185k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
341
185k
}\
cavsdsp.c:put_cavs_filt16_h_qpel_r
Line
Count
Source
333
116k
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
334
116k
{                                                                       \
335
116k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
336
116k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
337
116k
    src += 8*srcStride;\
338
116k
    dst += 8*dstStride;\
339
116k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
340
116k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
341
116k
}\
cavsdsp.c:avg_cavs_filt16_h_qpel_l
Line
Count
Source
333
7.43k
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
334
7.43k
{                                                                       \
335
7.43k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
336
7.43k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
337
7.43k
    src += 8*srcStride;\
338
7.43k
    dst += 8*dstStride;\
339
7.43k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
340
7.43k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
341
7.43k
}\
cavsdsp.c:avg_cavs_filt16_h_hpel
Line
Count
Source
333
9.38k
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
334
9.38k
{                                                                       \
335
9.38k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
336
9.38k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
337
9.38k
    src += 8*srcStride;\
338
9.38k
    dst += 8*dstStride;\
339
9.38k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
340
9.38k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
341
9.38k
}\
cavsdsp.c:avg_cavs_filt16_h_qpel_r
Line
Count
Source
333
6.90k
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
334
6.90k
{                                                                       \
335
6.90k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
336
6.90k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
337
6.90k
    src += 8*srcStride;\
338
6.90k
    dst += 8*dstStride;\
339
6.90k
    OPNAME ## cavs_filt8_h_ ## NAME(dst  , src  , dstStride, srcStride);\
340
6.90k
    OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
341
6.90k
}\
342
343
#define CAVS_SUBPIX_HV(OPNAME, OP, NAME, AH, BH, CH, DH, EH, FH, AV, BV, CV, DV, EV, FV, FULL) \
344
3.28M
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
3.28M
{                                                                       \
346
3.28M
    int16_t temp[8*(8+5)];\
347
3.28M
    int16_t *tmp = temp;\
348
3.28M
    const int h=8;\
349
3.28M
    const int w=8;\
350
3.28M
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
3.28M
    int i;\
352
3.28M
    src1 -= 2*srcStride;\
353
45.9M
    for(i=0; i<h+5; i++)\
354
42.6M
    {\
355
42.6M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
42.6M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
42.6M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
42.6M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
42.6M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
42.6M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
42.6M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
42.6M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
42.6M
        tmp+=8;\
364
42.6M
        src1+=srcStride;\
365
42.6M
    }\
366
3.28M
    if(FULL) {\
367
1.76M
      tmp = temp+8*2;                           \
368
15.8M
      for(i=0; i<w; i++)                        \
369
14.0M
        {                                       \
370
14.0M
          const int tmpB= tmp[-2*8];    \
371
14.0M
          const int tmpA= tmp[-1*8];    \
372
14.0M
          const int tmp0= tmp[0 *8];    \
373
14.0M
          const int tmp1= tmp[1 *8];    \
374
14.0M
          const int tmp2= tmp[2 *8];    \
375
14.0M
          const int tmp3= tmp[3 *8];    \
376
14.0M
          const int tmp4= tmp[4 *8];    \
377
14.0M
          const int tmp5= tmp[5 *8];    \
378
14.0M
          const int tmp6= tmp[6 *8];    \
379
14.0M
          const int tmp7= tmp[7 *8];    \
380
14.0M
          const int tmp8= tmp[8 *8];    \
381
14.0M
          const int tmp9= tmp[9 *8];    \
382
14.0M
          const int tmp10=tmp[10*8];                            \
383
14.0M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
14.0M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
14.0M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
14.0M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
14.0M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
14.0M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
14.0M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
14.0M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
14.0M
          dst++;                                                        \
392
14.0M
          tmp++;                                                        \
393
14.0M
          src2++;                                                       \
394
14.0M
        }                                                               \
395
1.76M
    } else {\
396
1.52M
      tmp = temp+8*2;                           \
397
13.6M
      for(i=0; i<w; i++)                        \
398
12.1M
        {                                       \
399
12.1M
          const int tmpB= tmp[-2*8];    \
400
12.1M
          const int tmpA= tmp[-1*8];    \
401
12.1M
          const int tmp0= tmp[0 *8];    \
402
12.1M
          const int tmp1= tmp[1 *8];    \
403
12.1M
          const int tmp2= tmp[2 *8];    \
404
12.1M
          const int tmp3= tmp[3 *8];    \
405
12.1M
          const int tmp4= tmp[4 *8];    \
406
12.1M
          const int tmp5= tmp[5 *8];    \
407
12.1M
          const int tmp6= tmp[6 *8];    \
408
12.1M
          const int tmp7= tmp[7 *8];    \
409
12.1M
          const int tmp8= tmp[8 *8];    \
410
12.1M
          const int tmp9= tmp[9 *8];    \
411
12.1M
          const int tmp10=tmp[10*8];                            \
412
12.1M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
12.1M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
12.1M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
12.1M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
12.1M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
12.1M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
12.1M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
12.1M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
12.1M
          dst++;                                                        \
421
12.1M
          tmp++;                                                        \
422
12.1M
        }                                                               \
423
1.52M
    }\
424
3.28M
}\
cavsdsp.c:put_cavs_filt8_hv_egpr
Line
Count
Source
344
1.04M
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
1.04M
{                                                                       \
346
1.04M
    int16_t temp[8*(8+5)];\
347
1.04M
    int16_t *tmp = temp;\
348
1.04M
    const int h=8;\
349
1.04M
    const int w=8;\
350
1.04M
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
1.04M
    int i;\
352
1.04M
    src1 -= 2*srcStride;\
353
14.6M
    for(i=0; i<h+5; i++)\
354
13.6M
    {\
355
13.6M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
13.6M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
13.6M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
13.6M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
13.6M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
13.6M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
13.6M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
13.6M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
13.6M
        tmp+=8;\
364
13.6M
        src1+=srcStride;\
365
13.6M
    }\
366
1.04M
    if(FULL) {\
367
1.04M
      tmp = temp+8*2;                           \
368
9.44M
      for(i=0; i<w; i++)                        \
369
8.39M
        {                                       \
370
8.39M
          const int tmpB= tmp[-2*8];    \
371
8.39M
          const int tmpA= tmp[-1*8];    \
372
8.39M
          const int tmp0= tmp[0 *8];    \
373
8.39M
          const int tmp1= tmp[1 *8];    \
374
8.39M
          const int tmp2= tmp[2 *8];    \
375
8.39M
          const int tmp3= tmp[3 *8];    \
376
8.39M
          const int tmp4= tmp[4 *8];    \
377
8.39M
          const int tmp5= tmp[5 *8];    \
378
8.39M
          const int tmp6= tmp[6 *8];    \
379
8.39M
          const int tmp7= tmp[7 *8];    \
380
8.39M
          const int tmp8= tmp[8 *8];    \
381
8.39M
          const int tmp9= tmp[9 *8];    \
382
8.39M
          const int tmp10=tmp[10*8];                            \
383
8.39M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
8.39M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
8.39M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
8.39M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
8.39M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
8.39M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
8.39M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
8.39M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
8.39M
          dst++;                                                        \
392
8.39M
          tmp++;                                                        \
393
8.39M
          src2++;                                                       \
394
8.39M
        }                                                               \
395
1.04M
    } else {\
396
0
      tmp = temp+8*2;                           \
397
0
      for(i=0; i<w; i++)                        \
398
0
        {                                       \
399
0
          const int tmpB= tmp[-2*8];    \
400
0
          const int tmpA= tmp[-1*8];    \
401
0
          const int tmp0= tmp[0 *8];    \
402
0
          const int tmp1= tmp[1 *8];    \
403
0
          const int tmp2= tmp[2 *8];    \
404
0
          const int tmp3= tmp[3 *8];    \
405
0
          const int tmp4= tmp[4 *8];    \
406
0
          const int tmp5= tmp[5 *8];    \
407
0
          const int tmp6= tmp[6 *8];    \
408
0
          const int tmp7= tmp[7 *8];    \
409
0
          const int tmp8= tmp[8 *8];    \
410
0
          const int tmp9= tmp[9 *8];    \
411
0
          const int tmp10=tmp[10*8];                            \
412
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
0
          dst++;                                                        \
421
0
          tmp++;                                                        \
422
0
        }                                                               \
423
0
    }\
424
1.04M
}\
cavsdsp.c:put_cavs_filt8_hv_ff
Line
Count
Source
344
113k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
113k
{                                                                       \
346
113k
    int16_t temp[8*(8+5)];\
347
113k
    int16_t *tmp = temp;\
348
113k
    const int h=8;\
349
113k
    const int w=8;\
350
113k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
113k
    int i;\
352
113k
    src1 -= 2*srcStride;\
353
1.59M
    for(i=0; i<h+5; i++)\
354
1.47M
    {\
355
1.47M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
1.47M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
1.47M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
1.47M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
1.47M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
1.47M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
1.47M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
1.47M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
1.47M
        tmp+=8;\
364
1.47M
        src1+=srcStride;\
365
1.47M
    }\
366
113k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
113k
    } else {\
396
113k
      tmp = temp+8*2;                           \
397
1.02M
      for(i=0; i<w; i++)                        \
398
908k
        {                                       \
399
908k
          const int tmpB= tmp[-2*8];    \
400
908k
          const int tmpA= tmp[-1*8];    \
401
908k
          const int tmp0= tmp[0 *8];    \
402
908k
          const int tmp1= tmp[1 *8];    \
403
908k
          const int tmp2= tmp[2 *8];    \
404
908k
          const int tmp3= tmp[3 *8];    \
405
908k
          const int tmp4= tmp[4 *8];    \
406
908k
          const int tmp5= tmp[5 *8];    \
407
908k
          const int tmp6= tmp[6 *8];    \
408
908k
          const int tmp7= tmp[7 *8];    \
409
908k
          const int tmp8= tmp[8 *8];    \
410
908k
          const int tmp9= tmp[9 *8];    \
411
908k
          const int tmp10=tmp[10*8];                            \
412
908k
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
908k
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
908k
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
908k
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
908k
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
908k
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
908k
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
908k
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
908k
          dst++;                                                        \
421
908k
          tmp++;                                                        \
422
908k
        }                                                               \
423
113k
    }\
424
113k
}\
cavsdsp.c:put_cavs_filt8_hv_ii
Line
Count
Source
344
135k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
135k
{                                                                       \
346
135k
    int16_t temp[8*(8+5)];\
347
135k
    int16_t *tmp = temp;\
348
135k
    const int h=8;\
349
135k
    const int w=8;\
350
135k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
135k
    int i;\
352
135k
    src1 -= 2*srcStride;\
353
1.89M
    for(i=0; i<h+5; i++)\
354
1.76M
    {\
355
1.76M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
1.76M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
1.76M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
1.76M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
1.76M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
1.76M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
1.76M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
1.76M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
1.76M
        tmp+=8;\
364
1.76M
        src1+=srcStride;\
365
1.76M
    }\
366
135k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
135k
    } else {\
396
135k
      tmp = temp+8*2;                           \
397
1.22M
      for(i=0; i<w; i++)                        \
398
1.08M
        {                                       \
399
1.08M
          const int tmpB= tmp[-2*8];    \
400
1.08M
          const int tmpA= tmp[-1*8];    \
401
1.08M
          const int tmp0= tmp[0 *8];    \
402
1.08M
          const int tmp1= tmp[1 *8];    \
403
1.08M
          const int tmp2= tmp[2 *8];    \
404
1.08M
          const int tmp3= tmp[3 *8];    \
405
1.08M
          const int tmp4= tmp[4 *8];    \
406
1.08M
          const int tmp5= tmp[5 *8];    \
407
1.08M
          const int tmp6= tmp[6 *8];    \
408
1.08M
          const int tmp7= tmp[7 *8];    \
409
1.08M
          const int tmp8= tmp[8 *8];    \
410
1.08M
          const int tmp9= tmp[9 *8];    \
411
1.08M
          const int tmp10=tmp[10*8];                            \
412
1.08M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
1.08M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
1.08M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
1.08M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
1.08M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
1.08M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
1.08M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
1.08M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
1.08M
          dst++;                                                        \
421
1.08M
          tmp++;                                                        \
422
1.08M
        }                                                               \
423
135k
    }\
424
135k
}\
cavsdsp.c:put_cavs_filt8_hv_jj
Line
Count
Source
344
145k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
145k
{                                                                       \
346
145k
    int16_t temp[8*(8+5)];\
347
145k
    int16_t *tmp = temp;\
348
145k
    const int h=8;\
349
145k
    const int w=8;\
350
145k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
145k
    int i;\
352
145k
    src1 -= 2*srcStride;\
353
2.04M
    for(i=0; i<h+5; i++)\
354
1.89M
    {\
355
1.89M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
1.89M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
1.89M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
1.89M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
1.89M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
1.89M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
1.89M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
1.89M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
1.89M
        tmp+=8;\
364
1.89M
        src1+=srcStride;\
365
1.89M
    }\
366
145k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
145k
    } else {\
396
145k
      tmp = temp+8*2;                           \
397
1.31M
      for(i=0; i<w; i++)                        \
398
1.16M
        {                                       \
399
1.16M
          const int tmpB= tmp[-2*8];    \
400
1.16M
          const int tmpA= tmp[-1*8];    \
401
1.16M
          const int tmp0= tmp[0 *8];    \
402
1.16M
          const int tmp1= tmp[1 *8];    \
403
1.16M
          const int tmp2= tmp[2 *8];    \
404
1.16M
          const int tmp3= tmp[3 *8];    \
405
1.16M
          const int tmp4= tmp[4 *8];    \
406
1.16M
          const int tmp5= tmp[5 *8];    \
407
1.16M
          const int tmp6= tmp[6 *8];    \
408
1.16M
          const int tmp7= tmp[7 *8];    \
409
1.16M
          const int tmp8= tmp[8 *8];    \
410
1.16M
          const int tmp9= tmp[9 *8];    \
411
1.16M
          const int tmp10=tmp[10*8];                            \
412
1.16M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
1.16M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
1.16M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
1.16M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
1.16M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
1.16M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
1.16M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
1.16M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
1.16M
          dst++;                                                        \
421
1.16M
          tmp++;                                                        \
422
1.16M
        }                                                               \
423
145k
    }\
424
145k
}\
cavsdsp.c:put_cavs_filt8_hv_kk
Line
Count
Source
344
252k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
252k
{                                                                       \
346
252k
    int16_t temp[8*(8+5)];\
347
252k
    int16_t *tmp = temp;\
348
252k
    const int h=8;\
349
252k
    const int w=8;\
350
252k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
252k
    int i;\
352
252k
    src1 -= 2*srcStride;\
353
3.54M
    for(i=0; i<h+5; i++)\
354
3.28M
    {\
355
3.28M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
3.28M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
3.28M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
3.28M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
3.28M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
3.28M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
3.28M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
3.28M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
3.28M
        tmp+=8;\
364
3.28M
        src1+=srcStride;\
365
3.28M
    }\
366
252k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
252k
    } else {\
396
252k
      tmp = temp+8*2;                           \
397
2.27M
      for(i=0; i<w; i++)                        \
398
2.02M
        {                                       \
399
2.02M
          const int tmpB= tmp[-2*8];    \
400
2.02M
          const int tmpA= tmp[-1*8];    \
401
2.02M
          const int tmp0= tmp[0 *8];    \
402
2.02M
          const int tmp1= tmp[1 *8];    \
403
2.02M
          const int tmp2= tmp[2 *8];    \
404
2.02M
          const int tmp3= tmp[3 *8];    \
405
2.02M
          const int tmp4= tmp[4 *8];    \
406
2.02M
          const int tmp5= tmp[5 *8];    \
407
2.02M
          const int tmp6= tmp[6 *8];    \
408
2.02M
          const int tmp7= tmp[7 *8];    \
409
2.02M
          const int tmp8= tmp[8 *8];    \
410
2.02M
          const int tmp9= tmp[9 *8];    \
411
2.02M
          const int tmp10=tmp[10*8];                            \
412
2.02M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
2.02M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
2.02M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
2.02M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
2.02M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
2.02M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
2.02M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
2.02M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
2.02M
          dst++;                                                        \
421
2.02M
          tmp++;                                                        \
422
2.02M
        }                                                               \
423
252k
    }\
424
252k
}\
cavsdsp.c:put_cavs_filt8_hv_qq
Line
Count
Source
344
260k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
260k
{                                                                       \
346
260k
    int16_t temp[8*(8+5)];\
347
260k
    int16_t *tmp = temp;\
348
260k
    const int h=8;\
349
260k
    const int w=8;\
350
260k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
260k
    int i;\
352
260k
    src1 -= 2*srcStride;\
353
3.65M
    for(i=0; i<h+5; i++)\
354
3.38M
    {\
355
3.38M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
3.38M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
3.38M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
3.38M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
3.38M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
3.38M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
3.38M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
3.38M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
3.38M
        tmp+=8;\
364
3.38M
        src1+=srcStride;\
365
3.38M
    }\
366
260k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
260k
    } else {\
396
260k
      tmp = temp+8*2;                           \
397
2.34M
      for(i=0; i<w; i++)                        \
398
2.08M
        {                                       \
399
2.08M
          const int tmpB= tmp[-2*8];    \
400
2.08M
          const int tmpA= tmp[-1*8];    \
401
2.08M
          const int tmp0= tmp[0 *8];    \
402
2.08M
          const int tmp1= tmp[1 *8];    \
403
2.08M
          const int tmp2= tmp[2 *8];    \
404
2.08M
          const int tmp3= tmp[3 *8];    \
405
2.08M
          const int tmp4= tmp[4 *8];    \
406
2.08M
          const int tmp5= tmp[5 *8];    \
407
2.08M
          const int tmp6= tmp[6 *8];    \
408
2.08M
          const int tmp7= tmp[7 *8];    \
409
2.08M
          const int tmp8= tmp[8 *8];    \
410
2.08M
          const int tmp9= tmp[9 *8];    \
411
2.08M
          const int tmp10=tmp[10*8];                            \
412
2.08M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
2.08M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
2.08M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
2.08M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
2.08M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
2.08M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
2.08M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
2.08M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
2.08M
          dst++;                                                        \
421
2.08M
          tmp++;                                                        \
422
2.08M
        }                                                               \
423
260k
    }\
424
260k
}\
cavsdsp.c:avg_cavs_filt8_hv_egpr
Line
Count
Source
344
712k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
712k
{                                                                       \
346
712k
    int16_t temp[8*(8+5)];\
347
712k
    int16_t *tmp = temp;\
348
712k
    const int h=8;\
349
712k
    const int w=8;\
350
712k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
712k
    int i;\
352
712k
    src1 -= 2*srcStride;\
353
9.97M
    for(i=0; i<h+5; i++)\
354
9.26M
    {\
355
9.26M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
9.26M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
9.26M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
9.26M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
9.26M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
9.26M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
9.26M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
9.26M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
9.26M
        tmp+=8;\
364
9.26M
        src1+=srcStride;\
365
9.26M
    }\
366
712k
    if(FULL) {\
367
712k
      tmp = temp+8*2;                           \
368
6.41M
      for(i=0; i<w; i++)                        \
369
5.70M
        {                                       \
370
5.70M
          const int tmpB= tmp[-2*8];    \
371
5.70M
          const int tmpA= tmp[-1*8];    \
372
5.70M
          const int tmp0= tmp[0 *8];    \
373
5.70M
          const int tmp1= tmp[1 *8];    \
374
5.70M
          const int tmp2= tmp[2 *8];    \
375
5.70M
          const int tmp3= tmp[3 *8];    \
376
5.70M
          const int tmp4= tmp[4 *8];    \
377
5.70M
          const int tmp5= tmp[5 *8];    \
378
5.70M
          const int tmp6= tmp[6 *8];    \
379
5.70M
          const int tmp7= tmp[7 *8];    \
380
5.70M
          const int tmp8= tmp[8 *8];    \
381
5.70M
          const int tmp9= tmp[9 *8];    \
382
5.70M
          const int tmp10=tmp[10*8];                            \
383
5.70M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
5.70M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
5.70M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
5.70M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
5.70M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
5.70M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
5.70M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
5.70M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
5.70M
          dst++;                                                        \
392
5.70M
          tmp++;                                                        \
393
5.70M
          src2++;                                                       \
394
5.70M
        }                                                               \
395
712k
    } else {\
396
0
      tmp = temp+8*2;                           \
397
0
      for(i=0; i<w; i++)                        \
398
0
        {                                       \
399
0
          const int tmpB= tmp[-2*8];    \
400
0
          const int tmpA= tmp[-1*8];    \
401
0
          const int tmp0= tmp[0 *8];    \
402
0
          const int tmp1= tmp[1 *8];    \
403
0
          const int tmp2= tmp[2 *8];    \
404
0
          const int tmp3= tmp[3 *8];    \
405
0
          const int tmp4= tmp[4 *8];    \
406
0
          const int tmp5= tmp[5 *8];    \
407
0
          const int tmp6= tmp[6 *8];    \
408
0
          const int tmp7= tmp[7 *8];    \
409
0
          const int tmp8= tmp[8 *8];    \
410
0
          const int tmp9= tmp[9 *8];    \
411
0
          const int tmp10=tmp[10*8];                            \
412
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
0
          dst++;                                                        \
421
0
          tmp++;                                                        \
422
0
        }                                                               \
423
0
    }\
424
712k
}\
cavsdsp.c:avg_cavs_filt8_hv_ff
Line
Count
Source
344
71.2k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
71.2k
{                                                                       \
346
71.2k
    int16_t temp[8*(8+5)];\
347
71.2k
    int16_t *tmp = temp;\
348
71.2k
    const int h=8;\
349
71.2k
    const int w=8;\
350
71.2k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
71.2k
    int i;\
352
71.2k
    src1 -= 2*srcStride;\
353
998k
    for(i=0; i<h+5; i++)\
354
926k
    {\
355
926k
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
926k
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
926k
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
926k
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
926k
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
926k
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
926k
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
926k
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
926k
        tmp+=8;\
364
926k
        src1+=srcStride;\
365
926k
    }\
366
71.2k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
71.2k
    } else {\
396
71.2k
      tmp = temp+8*2;                           \
397
641k
      for(i=0; i<w; i++)                        \
398
570k
        {                                       \
399
570k
          const int tmpB= tmp[-2*8];    \
400
570k
          const int tmpA= tmp[-1*8];    \
401
570k
          const int tmp0= tmp[0 *8];    \
402
570k
          const int tmp1= tmp[1 *8];    \
403
570k
          const int tmp2= tmp[2 *8];    \
404
570k
          const int tmp3= tmp[3 *8];    \
405
570k
          const int tmp4= tmp[4 *8];    \
406
570k
          const int tmp5= tmp[5 *8];    \
407
570k
          const int tmp6= tmp[6 *8];    \
408
570k
          const int tmp7= tmp[7 *8];    \
409
570k
          const int tmp8= tmp[8 *8];    \
410
570k
          const int tmp9= tmp[9 *8];    \
411
570k
          const int tmp10=tmp[10*8];                            \
412
570k
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
570k
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
570k
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
570k
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
570k
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
570k
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
570k
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
570k
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
570k
          dst++;                                                        \
421
570k
          tmp++;                                                        \
422
570k
        }                                                               \
423
71.2k
    }\
424
71.2k
}\
cavsdsp.c:avg_cavs_filt8_hv_ii
Line
Count
Source
344
94.4k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
94.4k
{                                                                       \
346
94.4k
    int16_t temp[8*(8+5)];\
347
94.4k
    int16_t *tmp = temp;\
348
94.4k
    const int h=8;\
349
94.4k
    const int w=8;\
350
94.4k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
94.4k
    int i;\
352
94.4k
    src1 -= 2*srcStride;\
353
1.32M
    for(i=0; i<h+5; i++)\
354
1.22M
    {\
355
1.22M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
1.22M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
1.22M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
1.22M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
1.22M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
1.22M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
1.22M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
1.22M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
1.22M
        tmp+=8;\
364
1.22M
        src1+=srcStride;\
365
1.22M
    }\
366
94.4k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
94.4k
    } else {\
396
94.4k
      tmp = temp+8*2;                           \
397
850k
      for(i=0; i<w; i++)                        \
398
755k
        {                                       \
399
755k
          const int tmpB= tmp[-2*8];    \
400
755k
          const int tmpA= tmp[-1*8];    \
401
755k
          const int tmp0= tmp[0 *8];    \
402
755k
          const int tmp1= tmp[1 *8];    \
403
755k
          const int tmp2= tmp[2 *8];    \
404
755k
          const int tmp3= tmp[3 *8];    \
405
755k
          const int tmp4= tmp[4 *8];    \
406
755k
          const int tmp5= tmp[5 *8];    \
407
755k
          const int tmp6= tmp[6 *8];    \
408
755k
          const int tmp7= tmp[7 *8];    \
409
755k
          const int tmp8= tmp[8 *8];    \
410
755k
          const int tmp9= tmp[9 *8];    \
411
755k
          const int tmp10=tmp[10*8];                            \
412
755k
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
755k
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
755k
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
755k
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
755k
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
755k
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
755k
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
755k
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
755k
          dst++;                                                        \
421
755k
          tmp++;                                                        \
422
755k
        }                                                               \
423
94.4k
    }\
424
94.4k
}\
cavsdsp.c:avg_cavs_filt8_hv_jj
Line
Count
Source
344
158k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
158k
{                                                                       \
346
158k
    int16_t temp[8*(8+5)];\
347
158k
    int16_t *tmp = temp;\
348
158k
    const int h=8;\
349
158k
    const int w=8;\
350
158k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
158k
    int i;\
352
158k
    src1 -= 2*srcStride;\
353
2.21M
    for(i=0; i<h+5; i++)\
354
2.05M
    {\
355
2.05M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
2.05M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
2.05M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
2.05M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
2.05M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
2.05M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
2.05M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
2.05M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
2.05M
        tmp+=8;\
364
2.05M
        src1+=srcStride;\
365
2.05M
    }\
366
158k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
158k
    } else {\
396
158k
      tmp = temp+8*2;                           \
397
1.42M
      for(i=0; i<w; i++)                        \
398
1.26M
        {                                       \
399
1.26M
          const int tmpB= tmp[-2*8];    \
400
1.26M
          const int tmpA= tmp[-1*8];    \
401
1.26M
          const int tmp0= tmp[0 *8];    \
402
1.26M
          const int tmp1= tmp[1 *8];    \
403
1.26M
          const int tmp2= tmp[2 *8];    \
404
1.26M
          const int tmp3= tmp[3 *8];    \
405
1.26M
          const int tmp4= tmp[4 *8];    \
406
1.26M
          const int tmp5= tmp[5 *8];    \
407
1.26M
          const int tmp6= tmp[6 *8];    \
408
1.26M
          const int tmp7= tmp[7 *8];    \
409
1.26M
          const int tmp8= tmp[8 *8];    \
410
1.26M
          const int tmp9= tmp[9 *8];    \
411
1.26M
          const int tmp10=tmp[10*8];                            \
412
1.26M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
1.26M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
1.26M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
1.26M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
1.26M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
1.26M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
1.26M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
1.26M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
1.26M
          dst++;                                                        \
421
1.26M
          tmp++;                                                        \
422
1.26M
        }                                                               \
423
158k
    }\
424
158k
}\
cavsdsp.c:avg_cavs_filt8_hv_kk
Line
Count
Source
344
162k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
162k
{                                                                       \
346
162k
    int16_t temp[8*(8+5)];\
347
162k
    int16_t *tmp = temp;\
348
162k
    const int h=8;\
349
162k
    const int w=8;\
350
162k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
162k
    int i;\
352
162k
    src1 -= 2*srcStride;\
353
2.26M
    for(i=0; i<h+5; i++)\
354
2.10M
    {\
355
2.10M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
2.10M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
2.10M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
2.10M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
2.10M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
2.10M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
2.10M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
2.10M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
2.10M
        tmp+=8;\
364
2.10M
        src1+=srcStride;\
365
2.10M
    }\
366
162k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
162k
    } else {\
396
162k
      tmp = temp+8*2;                           \
397
1.45M
      for(i=0; i<w; i++)                        \
398
1.29M
        {                                       \
399
1.29M
          const int tmpB= tmp[-2*8];    \
400
1.29M
          const int tmpA= tmp[-1*8];    \
401
1.29M
          const int tmp0= tmp[0 *8];    \
402
1.29M
          const int tmp1= tmp[1 *8];    \
403
1.29M
          const int tmp2= tmp[2 *8];    \
404
1.29M
          const int tmp3= tmp[3 *8];    \
405
1.29M
          const int tmp4= tmp[4 *8];    \
406
1.29M
          const int tmp5= tmp[5 *8];    \
407
1.29M
          const int tmp6= tmp[6 *8];    \
408
1.29M
          const int tmp7= tmp[7 *8];    \
409
1.29M
          const int tmp8= tmp[8 *8];    \
410
1.29M
          const int tmp9= tmp[9 *8];    \
411
1.29M
          const int tmp10=tmp[10*8];                            \
412
1.29M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
1.29M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
1.29M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
1.29M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
1.29M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
1.29M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
1.29M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
1.29M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
1.29M
          dst++;                                                        \
421
1.29M
          tmp++;                                                        \
422
1.29M
        }                                                               \
423
162k
    }\
424
162k
}\
cavsdsp.c:avg_cavs_filt8_hv_qq
Line
Count
Source
344
125k
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
345
125k
{                                                                       \
346
125k
    int16_t temp[8*(8+5)];\
347
125k
    int16_t *tmp = temp;\
348
125k
    const int h=8;\
349
125k
    const int w=8;\
350
125k
    const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
351
125k
    int i;\
352
125k
    src1 -= 2*srcStride;\
353
1.76M
    for(i=0; i<h+5; i++)\
354
1.63M
    {\
355
1.63M
        tmp[0]= AH*src1[-2] + BH*src1[-1] + CH*src1[0] + DH*src1[1] + EH*src1[2] + FH*src1[3];\
356
1.63M
        tmp[1]= AH*src1[-1] + BH*src1[ 0] + CH*src1[1] + DH*src1[2] + EH*src1[3] + FH*src1[4];\
357
1.63M
        tmp[2]= AH*src1[ 0] + BH*src1[ 1] + CH*src1[2] + DH*src1[3] + EH*src1[4] + FH*src1[5];\
358
1.63M
        tmp[3]= AH*src1[ 1] + BH*src1[ 2] + CH*src1[3] + DH*src1[4] + EH*src1[5] + FH*src1[6];\
359
1.63M
        tmp[4]= AH*src1[ 2] + BH*src1[ 3] + CH*src1[4] + DH*src1[5] + EH*src1[6] + FH*src1[7];\
360
1.63M
        tmp[5]= AH*src1[ 3] + BH*src1[ 4] + CH*src1[5] + DH*src1[6] + EH*src1[7] + FH*src1[8];\
361
1.63M
        tmp[6]= AH*src1[ 4] + BH*src1[ 5] + CH*src1[6] + DH*src1[7] + EH*src1[8] + FH*src1[9];\
362
1.63M
        tmp[7]= AH*src1[ 5] + BH*src1[ 6] + CH*src1[7] + DH*src1[8] + EH*src1[9] + FH*src1[10];\
363
1.63M
        tmp+=8;\
364
1.63M
        src1+=srcStride;\
365
1.63M
    }\
366
125k
    if(FULL) {\
367
0
      tmp = temp+8*2;                           \
368
0
      for(i=0; i<w; i++)                        \
369
0
        {                                       \
370
0
          const int tmpB= tmp[-2*8];    \
371
0
          const int tmpA= tmp[-1*8];    \
372
0
          const int tmp0= tmp[0 *8];    \
373
0
          const int tmp1= tmp[1 *8];    \
374
0
          const int tmp2= tmp[2 *8];    \
375
0
          const int tmp3= tmp[3 *8];    \
376
0
          const int tmp4= tmp[4 *8];    \
377
0
          const int tmp5= tmp[5 *8];    \
378
0
          const int tmp6= tmp[6 *8];    \
379
0
          const int tmp7= tmp[7 *8];    \
380
0
          const int tmp8= tmp[8 *8];    \
381
0
          const int tmp9= tmp[9 *8];    \
382
0
          const int tmp10=tmp[10*8];                            \
383
0
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3 + 64*src2[0*srcStride]); \
384
0
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4 + 64*src2[1*srcStride]); \
385
0
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5 + 64*src2[2*srcStride]); \
386
0
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6 + 64*src2[3*srcStride]); \
387
0
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7 + 64*src2[4*srcStride]); \
388
0
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8 + 64*src2[5*srcStride]); \
389
0
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9 + 64*src2[6*srcStride]); \
390
0
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10 + 64*src2[7*srcStride]); \
391
0
          dst++;                                                        \
392
0
          tmp++;                                                        \
393
0
          src2++;                                                       \
394
0
        }                                                               \
395
125k
    } else {\
396
125k
      tmp = temp+8*2;                           \
397
1.13M
      for(i=0; i<w; i++)                        \
398
1.00M
        {                                       \
399
1.00M
          const int tmpB= tmp[-2*8];    \
400
1.00M
          const int tmpA= tmp[-1*8];    \
401
1.00M
          const int tmp0= tmp[0 *8];    \
402
1.00M
          const int tmp1= tmp[1 *8];    \
403
1.00M
          const int tmp2= tmp[2 *8];    \
404
1.00M
          const int tmp3= tmp[3 *8];    \
405
1.00M
          const int tmp4= tmp[4 *8];    \
406
1.00M
          const int tmp5= tmp[5 *8];    \
407
1.00M
          const int tmp6= tmp[6 *8];    \
408
1.00M
          const int tmp7= tmp[7 *8];    \
409
1.00M
          const int tmp8= tmp[8 *8];    \
410
1.00M
          const int tmp9= tmp[9 *8];    \
411
1.00M
          const int tmp10=tmp[10*8];                            \
412
1.00M
          OP(dst[0*dstStride], AV*tmpB + BV*tmpA + CV*tmp0 + DV*tmp1 + EV*tmp2 + FV*tmp3); \
413
1.00M
          OP(dst[1*dstStride], AV*tmpA + BV*tmp0 + CV*tmp1 + DV*tmp2 + EV*tmp3 + FV*tmp4); \
414
1.00M
          OP(dst[2*dstStride], AV*tmp0 + BV*tmp1 + CV*tmp2 + DV*tmp3 + EV*tmp4 + FV*tmp5); \
415
1.00M
          OP(dst[3*dstStride], AV*tmp1 + BV*tmp2 + CV*tmp3 + DV*tmp4 + EV*tmp5 + FV*tmp6); \
416
1.00M
          OP(dst[4*dstStride], AV*tmp2 + BV*tmp3 + CV*tmp4 + DV*tmp5 + EV*tmp6 + FV*tmp7); \
417
1.00M
          OP(dst[5*dstStride], AV*tmp3 + BV*tmp4 + CV*tmp5 + DV*tmp6 + EV*tmp7 + FV*tmp8); \
418
1.00M
          OP(dst[6*dstStride], AV*tmp4 + BV*tmp5 + CV*tmp6 + DV*tmp7 + EV*tmp8 + FV*tmp9); \
419
1.00M
          OP(dst[7*dstStride], AV*tmp5 + BV*tmp6 + CV*tmp7 + DV*tmp8 + EV*tmp9 + FV*tmp10); \
420
1.00M
          dst++;                                                        \
421
1.00M
          tmp++;                                                        \
422
1.00M
        }                                                               \
423
125k
    }\
424
125k
}\
425
\
426
223k
static void OPNAME ## cavs_filt16_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
427
223k
{                                                                       \
428
223k
    OPNAME ## cavs_filt8_hv_ ## NAME(dst  , src1,   FULL ? src2     : NULL, dstStride, srcStride); \
429
223k
    OPNAME ## cavs_filt8_hv_ ## NAME(dst+8, src1+8, FULL ? src2 + 8 : NULL, dstStride, srcStride); \
430
223k
    src1 += 8*srcStride;\
431
223k
    if (FULL) \
432
223k
        src2 += 8*srcStride;\
433
223k
    dst += 8*dstStride;\
434
223k
    OPNAME ## cavs_filt8_hv_ ## NAME(dst  , src1,   FULL ? src2     : NULL, dstStride, srcStride); \
435
223k
    OPNAME ## cavs_filt8_hv_ ## NAME(dst+8, src1+8, FULL ? src2 + 8 : NULL, dstStride, srcStride); \
436
223k
}\
437
438
#define CAVS_MC(OPNAME, SIZE) \
439
300k
static void OPNAME ## cavs_qpel ## SIZE ## _mc10_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
440
300k
{\
441
300k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_l(dst, src, stride, stride);\
442
300k
}\
cavsdsp.c:put_cavs_qpel16_mc10_c
Line
Count
Source
439
99.1k
static void OPNAME ## cavs_qpel ## SIZE ## _mc10_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
440
99.1k
{\
441
99.1k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_l(dst, src, stride, stride);\
442
99.1k
}\
cavsdsp.c:put_cavs_qpel8_mc10_c
Line
Count
Source
439
119k
static void OPNAME ## cavs_qpel ## SIZE ## _mc10_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
440
119k
{\
441
119k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_l(dst, src, stride, stride);\
442
119k
}\
cavsdsp.c:avg_cavs_qpel16_mc10_c
Line
Count
Source
439
7.43k
static void OPNAME ## cavs_qpel ## SIZE ## _mc10_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
440
7.43k
{\
441
7.43k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_l(dst, src, stride, stride);\
442
7.43k
}\
cavsdsp.c:avg_cavs_qpel8_mc10_c
Line
Count
Source
439
74.4k
static void OPNAME ## cavs_qpel ## SIZE ## _mc10_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
440
74.4k
{\
441
74.4k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_l(dst, src, stride, stride);\
442
74.4k
}\
443
\
444
378k
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
445
378k
{\
446
378k
    OPNAME ## cavs_filt ## SIZE ## _h_hpel(dst, src, stride, stride);\
447
378k
}\
cavsdsp.c:put_cavs_qpel16_mc20_c
Line
Count
Source
444
185k
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
445
185k
{\
446
185k
    OPNAME ## cavs_filt ## SIZE ## _h_hpel(dst, src, stride, stride);\
447
185k
}\
cavsdsp.c:put_cavs_qpel8_mc20_c
Line
Count
Source
444
115k
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
445
115k
{\
446
115k
    OPNAME ## cavs_filt ## SIZE ## _h_hpel(dst, src, stride, stride);\
447
115k
}\
cavsdsp.c:avg_cavs_qpel16_mc20_c
Line
Count
Source
444
9.38k
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
445
9.38k
{\
446
9.38k
    OPNAME ## cavs_filt ## SIZE ## _h_hpel(dst, src, stride, stride);\
447
9.38k
}\
cavsdsp.c:avg_cavs_qpel8_mc20_c
Line
Count
Source
444
68.7k
static void OPNAME ## cavs_qpel ## SIZE ## _mc20_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
445
68.7k
{\
446
68.7k
    OPNAME ## cavs_filt ## SIZE ## _h_hpel(dst, src, stride, stride);\
447
68.7k
}\
448
\
449
359k
static void OPNAME ## cavs_qpel ## SIZE ## _mc30_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
450
359k
{\
451
359k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_r(dst, src, stride, stride);\
452
359k
}\
cavsdsp.c:put_cavs_qpel16_mc30_c
Line
Count
Source
449
116k
static void OPNAME ## cavs_qpel ## SIZE ## _mc30_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
450
116k
{\
451
116k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_r(dst, src, stride, stride);\
452
116k
}\
cavsdsp.c:put_cavs_qpel8_mc30_c
Line
Count
Source
449
153k
static void OPNAME ## cavs_qpel ## SIZE ## _mc30_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
450
153k
{\
451
153k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_r(dst, src, stride, stride);\
452
153k
}\
cavsdsp.c:avg_cavs_qpel16_mc30_c
Line
Count
Source
449
6.90k
static void OPNAME ## cavs_qpel ## SIZE ## _mc30_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
450
6.90k
{\
451
6.90k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_r(dst, src, stride, stride);\
452
6.90k
}\
cavsdsp.c:avg_cavs_qpel8_mc30_c
Line
Count
Source
449
82.6k
static void OPNAME ## cavs_qpel ## SIZE ## _mc30_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
450
82.6k
{\
451
82.6k
    OPNAME ## cavs_filt ## SIZE ## _h_qpel_r(dst, src, stride, stride);\
452
82.6k
}\
453
\
454
210k
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
455
210k
{\
456
210k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_l(dst, src, stride, stride);\
457
210k
}\
cavsdsp.c:put_cavs_qpel16_mc01_c
Line
Count
Source
454
12.3k
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
455
12.3k
{\
456
12.3k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_l(dst, src, stride, stride);\
457
12.3k
}\
cavsdsp.c:put_cavs_qpel8_mc01_c
Line
Count
Source
454
112k
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
455
112k
{\
456
112k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_l(dst, src, stride, stride);\
457
112k
}\
cavsdsp.c:avg_cavs_qpel16_mc01_c
Line
Count
Source
454
12.4k
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
455
12.4k
{\
456
12.4k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_l(dst, src, stride, stride);\
457
12.4k
}\
cavsdsp.c:avg_cavs_qpel8_mc01_c
Line
Count
Source
454
73.6k
static void OPNAME ## cavs_qpel ## SIZE ## _mc01_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
455
73.6k
{\
456
73.6k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_l(dst, src, stride, stride);\
457
73.6k
}\
458
\
459
251k
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
460
251k
{\
461
251k
    OPNAME ## cavs_filt ## SIZE ## _v_hpel(dst, src, stride, stride);\
462
251k
}\
cavsdsp.c:put_cavs_qpel16_mc02_c
Line
Count
Source
459
16.9k
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
460
16.9k
{\
461
16.9k
    OPNAME ## cavs_filt ## SIZE ## _v_hpel(dst, src, stride, stride);\
462
16.9k
}\
cavsdsp.c:put_cavs_qpel8_mc02_c
Line
Count
Source
459
135k
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
460
135k
{\
461
135k
    OPNAME ## cavs_filt ## SIZE ## _v_hpel(dst, src, stride, stride);\
462
135k
}\
cavsdsp.c:avg_cavs_qpel16_mc02_c
Line
Count
Source
459
5.02k
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
460
5.02k
{\
461
5.02k
    OPNAME ## cavs_filt ## SIZE ## _v_hpel(dst, src, stride, stride);\
462
5.02k
}\
cavsdsp.c:avg_cavs_qpel8_mc02_c
Line
Count
Source
459
94.2k
static void OPNAME ## cavs_qpel ## SIZE ## _mc02_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
460
94.2k
{\
461
94.2k
    OPNAME ## cavs_filt ## SIZE ## _v_hpel(dst, src, stride, stride);\
462
94.2k
}\
463
\
464
371k
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
465
371k
{\
466
371k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_r(dst, src, stride, stride);\
467
371k
}\
cavsdsp.c:put_cavs_qpel16_mc03_c
Line
Count
Source
464
27.3k
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
465
27.3k
{\
466
27.3k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_r(dst, src, stride, stride);\
467
27.3k
}\
cavsdsp.c:put_cavs_qpel8_mc03_c
Line
Count
Source
464
216k
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
465
216k
{\
466
216k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_r(dst, src, stride, stride);\
467
216k
}\
cavsdsp.c:avg_cavs_qpel16_mc03_c
Line
Count
Source
464
11.2k
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
465
11.2k
{\
466
11.2k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_r(dst, src, stride, stride);\
467
11.2k
}\
cavsdsp.c:avg_cavs_qpel8_mc03_c
Line
Count
Source
464
116k
static void OPNAME ## cavs_qpel ## SIZE ## _mc03_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
465
116k
{\
466
116k
    OPNAME ## cavs_filt ## SIZE ## _v_qpel_r(dst, src, stride, stride);\
467
116k
}\
468
\
469
232k
static void OPNAME ## cavs_qpel ## SIZE ## _mc22_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
470
232k
{\
471
232k
  OPNAME ## cavs_filt ## SIZE ## _hv_jj(dst, src, NULL, stride, stride); \
472
232k
}\
473
\
474
522k
static void OPNAME ## cavs_qpel ## SIZE ## _mc11_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
475
522k
{\
476
522k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src, stride, stride); \
477
522k
}\
cavsdsp.c:put_cavs_qpel16_mc11_c
Line
Count
Source
474
17.9k
static void OPNAME ## cavs_qpel ## SIZE ## _mc11_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
475
17.9k
{\
476
17.9k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src, stride, stride); \
477
17.9k
}\
cavsdsp.c:put_cavs_qpel8_mc11_c
Line
Count
Source
474
97.2k
static void OPNAME ## cavs_qpel ## SIZE ## _mc11_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
475
97.2k
{\
476
97.2k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src, stride, stride); \
477
97.2k
}\
cavsdsp.c:avg_cavs_qpel16_mc11_c
Line
Count
Source
474
11.7k
static void OPNAME ## cavs_qpel ## SIZE ## _mc11_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
475
11.7k
{\
476
11.7k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src, stride, stride); \
477
11.7k
}\
cavsdsp.c:avg_cavs_qpel8_mc11_c
Line
Count
Source
474
395k
static void OPNAME ## cavs_qpel ## SIZE ## _mc11_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
475
395k
{\
476
395k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src, stride, stride); \
477
395k
}\
478
\
479
129k
static void OPNAME ## cavs_qpel ## SIZE ## _mc13_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
480
129k
{\
481
129k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride, stride, stride); \
482
129k
}\
cavsdsp.c:put_cavs_qpel16_mc13_c
Line
Count
Source
479
10.1k
static void OPNAME ## cavs_qpel ## SIZE ## _mc13_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
480
10.1k
{\
481
10.1k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride, stride, stride); \
482
10.1k
}\
cavsdsp.c:put_cavs_qpel8_mc13_c
Line
Count
Source
479
60.4k
static void OPNAME ## cavs_qpel ## SIZE ## _mc13_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
480
60.4k
{\
481
60.4k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride, stride, stride); \
482
60.4k
}\
cavsdsp.c:avg_cavs_qpel16_mc13_c
Line
Count
Source
479
4.04k
static void OPNAME ## cavs_qpel ## SIZE ## _mc13_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
480
4.04k
{\
481
4.04k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride, stride, stride); \
482
4.04k
}\
cavsdsp.c:avg_cavs_qpel8_mc13_c
Line
Count
Source
479
54.7k
static void OPNAME ## cavs_qpel ## SIZE ## _mc13_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
480
54.7k
{\
481
54.7k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride, stride, stride); \
482
54.7k
}\
483
\
484
367k
static void OPNAME ## cavs_qpel ## SIZE ## _mc31_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
485
367k
{\
486
367k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+1, stride, stride); \
487
367k
}\
cavsdsp.c:put_cavs_qpel16_mc31_c
Line
Count
Source
484
14.1k
static void OPNAME ## cavs_qpel ## SIZE ## _mc31_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
485
14.1k
{\
486
14.1k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+1, stride, stride); \
487
14.1k
}\
cavsdsp.c:put_cavs_qpel8_mc31_c
Line
Count
Source
484
269k
static void OPNAME ## cavs_qpel ## SIZE ## _mc31_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
485
269k
{\
486
269k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+1, stride, stride); \
487
269k
}\
cavsdsp.c:avg_cavs_qpel16_mc31_c
Line
Count
Source
484
7.33k
static void OPNAME ## cavs_qpel ## SIZE ## _mc31_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
485
7.33k
{\
486
7.33k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+1, stride, stride); \
487
7.33k
}\
cavsdsp.c:avg_cavs_qpel8_mc31_c
Line
Count
Source
484
77.1k
static void OPNAME ## cavs_qpel ## SIZE ## _mc31_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
485
77.1k
{\
486
77.1k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+1, stride, stride); \
487
77.1k
}\
488
\
489
484k
static void OPNAME ## cavs_qpel ## SIZE ## _mc33_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
490
484k
{\
491
484k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride+1,stride, stride); \
492
484k
}\
cavsdsp.c:put_cavs_qpel16_mc33_c
Line
Count
Source
489
13.2k
static void OPNAME ## cavs_qpel ## SIZE ## _mc33_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
490
13.2k
{\
491
13.2k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride+1,stride, stride); \
492
13.2k
}\
cavsdsp.c:put_cavs_qpel8_mc33_c
Line
Count
Source
489
400k
static void OPNAME ## cavs_qpel ## SIZE ## _mc33_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
490
400k
{\
491
400k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride+1,stride, stride); \
492
400k
}\
cavsdsp.c:avg_cavs_qpel16_mc33_c
Line
Count
Source
489
7.33k
static void OPNAME ## cavs_qpel ## SIZE ## _mc33_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
490
7.33k
{\
491
7.33k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride+1,stride, stride); \
492
7.33k
}\
cavsdsp.c:avg_cavs_qpel8_mc33_c
Line
Count
Source
489
63.5k
static void OPNAME ## cavs_qpel ## SIZE ## _mc33_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
490
63.5k
{\
491
63.5k
  OPNAME ## cavs_filt ## SIZE ## _hv_egpr(dst, src, src+stride+1,stride, stride); \
492
63.5k
}\
493
\
494
143k
static void OPNAME ## cavs_qpel ## SIZE ## _mc21_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
495
143k
{\
496
143k
  OPNAME ## cavs_filt ## SIZE ## _hv_ff(dst, src, NULL, stride, stride); \
497
143k
}\
498
\
499
172k
static void OPNAME ## cavs_qpel ## SIZE ## _mc12_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
500
172k
{\
501
172k
  OPNAME ## cavs_filt ## SIZE ## _hv_ii(dst, src, NULL, stride, stride); \
502
172k
}\
503
\
504
271k
static void OPNAME ## cavs_qpel ## SIZE ## _mc32_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
505
271k
{\
506
271k
  OPNAME ## cavs_filt ## SIZE ## _hv_kk(dst, src, NULL, stride, stride); \
507
271k
}\
508
\
509
286k
static void OPNAME ## cavs_qpel ## SIZE ## _mc23_c(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\
510
286k
{\
511
286k
  OPNAME ## cavs_filt ## SIZE ## _hv_qq(dst, src, NULL, stride, stride); \
512
286k
}\
513
514
67.8M
#define op_put1(a, b)  a = cm[((b)+4)>>3]
515
170M
#define op_put2(a, b)  a = cm[((b)+64)>>7]
516
9.33M
#define op_put3(a, b)  a = cm[((b)+32)>>6]
517
48.8M
#define op_put4(a, b)  a = cm[((b)+512)>>10]
518
14.1M
#define op_avg1(a, b)  a = ((a)+cm[((b)+4)>>3]   +1)>>1
519
77.5M
#define op_avg2(a, b)  a = ((a)+cm[((b)+64)>>7]  +1)>>1
520
10.1M
#define op_avg3(a, b)  a = ((a)+cm[((b)+32)>>6]  +1)>>1
521
29.0M
#define op_avg4(a, b)  a = ((a)+cm[((b)+512)>>10]+1)>>1
522
67.8M
CAVS_SUBPIX(put_   , op_put1, hpel,    0, -1,  5,  5, -1,  0)
523
43.3M
CAVS_SUBPIX(put_   , op_put2, qpel_l, -1, -2, 96, 42, -7,  0)
524
60.4M
CAVS_SUBPIX(put_   , op_put2, qpel_r,  0, -7, 42, 96, -2, -1)
525
9.33M
CAVS_SUBPIX_HV(put_, op_put3, jj,      0, -1,  5,  5, -1,  0,  0, -1,  5,  5, -1, 0, 0)
526
7.26M
CAVS_SUBPIX_HV(put_, op_put4, ff,      0, -1,  5,  5, -1,  0, -1, -2, 96, 42, -7, 0, 0)
527
8.67M
CAVS_SUBPIX_HV(put_, op_put4, ii,     -1, -2, 96, 42, -7,  0,  0, -1,  5,  5, -1, 0, 0)
528
16.1M
CAVS_SUBPIX_HV(put_, op_put4, kk,      0, -7, 42, 96, -2, -1,  0, -1,  5,  5, -1, 0, 0)
529
16.6M
CAVS_SUBPIX_HV(put_, op_put4, qq,      0, -1,  5,  5, -1,  0,  0, -7, 42, 96, -2,-1, 0)
530
67.1M
CAVS_SUBPIX_HV(put_, op_put2, egpr,    0, -1,  5,  5, -1,  0,  0, -1,  5,  5, -1, 0, 1)
531
14.1M
CAVS_SUBPIX(avg_   , op_avg1, hpel,    0, -1,  5,  5, -1,  0)
532
14.5M
CAVS_SUBPIX(avg_   , op_avg2, qpel_l, -1, -2, 96, 42, -7,  0)
533
17.3M
CAVS_SUBPIX(avg_   , op_avg2, qpel_r,  0, -7, 42, 96, -2, -1)
534
10.1M
CAVS_SUBPIX_HV(avg_, op_avg3, jj,      0, -1,  5,  5, -1,  0,  0, -1,  5,  5, -1, 0, 0)
535
4.56M
CAVS_SUBPIX_HV(avg_, op_avg4, ff,      0, -1,  5,  5, -1,  0, -1, -2, 96, 42, -7, 0, 0)
536
6.04M
CAVS_SUBPIX_HV(avg_, op_avg4, ii,     -1, -2, 96, 42, -7,  0,  0, -1,  5,  5, -1, 0, 0)
537
10.3M
CAVS_SUBPIX_HV(avg_, op_avg4, kk,      0, -7, 42, 96, -2, -1,  0, -1,  5,  5, -1, 0, 0)
538
8.06M
CAVS_SUBPIX_HV(avg_, op_avg4, qq,      0, -1,  5,  5, -1,  0,  0, -7, 42, 96, -2,-1, 0)
539
45.6M
CAVS_SUBPIX_HV(avg_, op_avg2, egpr,    0, -1,  5,  5, -1,  0,  0, -1,  5,  5, -1, 0, 1)
540
551k
CAVS_MC(put_, 8)
cavsdsp.c:put_cavs_qpel8_mc21_c
Line
Count
Source
540
CAVS_MC(put_, 8)
cavsdsp.c:put_cavs_qpel8_mc12_c
Line
Count
Source
540
CAVS_MC(put_, 8)
cavsdsp.c:put_cavs_qpel8_mc22_c
Line
Count
Source
540
CAVS_MC(put_, 8)
cavsdsp.c:put_cavs_qpel8_mc32_c
Line
Count
Source
540
CAVS_MC(put_, 8)
cavsdsp.c:put_cavs_qpel8_mc23_c
Line
Count
Source
540
CAVS_MC(put_, 8)
541
89.3k
CAVS_MC(put_, 16)
cavsdsp.c:put_cavs_qpel16_mc21_c
Line
Count
Source
541
CAVS_MC(put_, 16)
cavsdsp.c:put_cavs_qpel16_mc12_c
Line
Count
Source
541
CAVS_MC(put_, 16)
cavsdsp.c:put_cavs_qpel16_mc22_c
Line
Count
Source
541
CAVS_MC(put_, 16)
cavsdsp.c:put_cavs_qpel16_mc32_c
Line
Count
Source
541
CAVS_MC(put_, 16)
cavsdsp.c:put_cavs_qpel16_mc23_c
Line
Count
Source
541
CAVS_MC(put_, 16)
542
417k
CAVS_MC(avg_, 8)
cavsdsp.c:avg_cavs_qpel8_mc21_c
Line
Count
Source
542
CAVS_MC(avg_, 8)
cavsdsp.c:avg_cavs_qpel8_mc12_c
Line
Count
Source
542
CAVS_MC(avg_, 8)
cavsdsp.c:avg_cavs_qpel8_mc22_c
Line
Count
Source
542
CAVS_MC(avg_, 8)
cavsdsp.c:avg_cavs_qpel8_mc32_c
Line
Count
Source
542
CAVS_MC(avg_, 8)
cavsdsp.c:avg_cavs_qpel8_mc23_c
Line
Count
Source
542
CAVS_MC(avg_, 8)
543
48.6k
CAVS_MC(avg_, 16)
cavsdsp.c:avg_cavs_qpel16_mc21_c
Line
Count
Source
543
CAVS_MC(avg_, 16)
cavsdsp.c:avg_cavs_qpel16_mc12_c
Line
Count
Source
543
CAVS_MC(avg_, 16)
cavsdsp.c:avg_cavs_qpel16_mc22_c
Line
Count
Source
543
CAVS_MC(avg_, 16)
cavsdsp.c:avg_cavs_qpel16_mc32_c
Line
Count
Source
543
CAVS_MC(avg_, 16)
cavsdsp.c:avg_cavs_qpel16_mc23_c
Line
Count
Source
543
CAVS_MC(avg_, 16)
544
545
7.10k
#define put_cavs_qpel8_mc00_c  ff_put_pixels8x8_c
546
7.10k
#define avg_cavs_qpel8_mc00_c  ff_avg_pixels8x8_c
547
7.10k
#define put_cavs_qpel16_mc00_c ff_put_pixels16x16_c
548
7.10k
#define avg_cavs_qpel16_mc00_c ff_avg_pixels16x16_c
549
550
av_cold void ff_cavsdsp_init(CAVSDSPContext* c)
551
7.10k
{
552
7.10k
#define dspfunc(PFX, IDX, NUM) \
553
28.4k
    c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_c; \
554
28.4k
    c->PFX ## _pixels_tab[IDX][ 1] = PFX ## NUM ## _mc10_c; \
555
28.4k
    c->PFX ## _pixels_tab[IDX][ 2] = PFX ## NUM ## _mc20_c; \
556
28.4k
    c->PFX ## _pixels_tab[IDX][ 3] = PFX ## NUM ## _mc30_c; \
557
28.4k
    c->PFX ## _pixels_tab[IDX][ 4] = PFX ## NUM ## _mc01_c; \
558
28.4k
    c->PFX ## _pixels_tab[IDX][ 5] = PFX ## NUM ## _mc11_c; \
559
28.4k
    c->PFX ## _pixels_tab[IDX][ 6] = PFX ## NUM ## _mc21_c; \
560
28.4k
    c->PFX ## _pixels_tab[IDX][ 7] = PFX ## NUM ## _mc31_c; \
561
28.4k
    c->PFX ## _pixels_tab[IDX][ 8] = PFX ## NUM ## _mc02_c; \
562
28.4k
    c->PFX ## _pixels_tab[IDX][ 9] = PFX ## NUM ## _mc12_c; \
563
28.4k
    c->PFX ## _pixels_tab[IDX][10] = PFX ## NUM ## _mc22_c; \
564
28.4k
    c->PFX ## _pixels_tab[IDX][11] = PFX ## NUM ## _mc32_c; \
565
28.4k
    c->PFX ## _pixels_tab[IDX][12] = PFX ## NUM ## _mc03_c; \
566
28.4k
    c->PFX ## _pixels_tab[IDX][13] = PFX ## NUM ## _mc13_c; \
567
28.4k
    c->PFX ## _pixels_tab[IDX][14] = PFX ## NUM ## _mc23_c; \
568
28.4k
    c->PFX ## _pixels_tab[IDX][15] = PFX ## NUM ## _mc33_c
569
7.10k
    dspfunc(put_cavs_qpel, 0, 16);
570
7.10k
    dspfunc(put_cavs_qpel, 1, 8);
571
7.10k
    dspfunc(avg_cavs_qpel, 0, 16);
572
7.10k
    dspfunc(avg_cavs_qpel, 1, 8);
573
7.10k
    c->cavs_filter_lv = cavs_filter_lv_c;
574
7.10k
    c->cavs_filter_lh = cavs_filter_lh_c;
575
7.10k
    c->cavs_filter_cv = cavs_filter_cv_c;
576
7.10k
    c->cavs_filter_ch = cavs_filter_ch_c;
577
7.10k
    c->cavs_idct8_add = cavs_idct8_add_c;
578
7.10k
    c->idct_perm = FF_IDCT_PERM_NONE;
579
580
#if ARCH_X86 && HAVE_X86ASM
581
    ff_cavsdsp_init_x86(c);
582
#endif
583
7.10k
}