Coverage Report

Created: 2026-06-10 06:58

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/dav1d/src/itx_tmpl.c
Line
Count
Source
1
/*
2
 * Copyright © 2018-2019, VideoLAN and dav1d authors
3
 * Copyright © 2018-2019, Two Orioles, LLC
4
 * All rights reserved.
5
 *
6
 * Redistribution and use in source and binary forms, with or without
7
 * modification, are permitted provided that the following conditions are met:
8
 *
9
 * 1. Redistributions of source code must retain the above copyright notice, this
10
 *    list of conditions and the following disclaimer.
11
 *
12
 * 2. Redistributions in binary form must reproduce the above copyright notice,
13
 *    this list of conditions and the following disclaimer in the documentation
14
 *    and/or other materials provided with the distribution.
15
 *
16
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
20
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
 */
27
28
#include "config.h"
29
30
#include <stddef.h>
31
#include <stdint.h>
32
#include <stdlib.h>
33
#include <string.h>
34
35
#include "common/attributes.h"
36
#include "common/intops.h"
37
38
#include "src/itx.h"
39
#include "src/itx_1d.h"
40
#include "src/scan.h"
41
#include "src/tables.h"
42
43
static NOINLINE void
44
inv_txfm_add_c(pixel *dst, const ptrdiff_t stride, coef *const coeff,
45
               const int eob, const /*enum RectTxfmSize*/ int tx, const int shift,
46
               const enum TxfmType txtp HIGHBD_DECL_SUFFIX)
47
359k
{
48
359k
    const TxfmInfo *const t_dim = &dav1d_txfm_dimensions[tx];
49
359k
    const int w = 4 * t_dim->w, h = 4 * t_dim->h;
50
359k
    const int has_dconly = txtp == DCT_DCT;
51
359k
    assert(w >= 4 && w <= 64);
52
359k
    assert(h >= 4 && h <= 64);
53
359k
    assert(eob >= 0);
54
55
359k
    const int is_rect2 = w * 2 == h || h * 2 == w;
56
359k
    const int rnd = (1 << shift) >> 1;
57
58
359k
    if (eob < has_dconly) {
59
204k
        int dc = coeff[0];
60
204k
        coeff[0] = 0;
61
204k
        if (is_rect2)
62
21.5k
            dc = (dc * 181 + 128) >> 8;
63
204k
        dc = (dc * 181 + 128) >> 8;
64
204k
        dc = (dc + rnd) >> shift;
65
204k
        dc = (dc * 181 + 128 + 2048) >> 12;
66
8.87M
        for (int y = 0; y < h; y++, dst += PXSTRIDE(stride))
67
426M
            for (int x = 0; x < w; x++)
68
417M
                dst[x] = iclip_pixel(dst[x] + dc);
69
204k
        return;
70
204k
    }
71
72
154k
    const uint8_t *const txtps = dav1d_tx1d_types[txtp];
73
154k
    const itx_1d_fn first_1d_fn = dav1d_tx1d_fns[t_dim->lw][txtps[0]];
74
154k
    const itx_1d_fn second_1d_fn = dav1d_tx1d_fns[t_dim->lh][txtps[1]];
75
154k
    const int sh = imin(h, 32), sw = imin(w, 32);
76
154k
#if BITDEPTH == 8
77
154k
    const int row_clip_min = INT16_MIN;
78
154k
    const int col_clip_min = INT16_MIN;
79
#else
80
    const int row_clip_min = (int) ((unsigned) ~bitdepth_max << 7);
81
    const int col_clip_min = (int) ((unsigned) ~bitdepth_max << 5);
82
#endif
83
154k
    const int row_clip_max = ~row_clip_min;
84
154k
    const int col_clip_max = ~col_clip_min;
85
86
154k
    int32_t tmp[64 * 64], *c = tmp;
87
154k
    int last_nonzero_col; // in first 1d itx
88
154k
    if (txtps[1] == IDENTITY && txtps[0] != IDENTITY) {
89
8.81k
        last_nonzero_col = imin(sh - 1, eob);
90
146k
    } else if (txtps[0] == IDENTITY && txtps[1] != IDENTITY) {
91
5.31k
        last_nonzero_col = eob >> (t_dim->lw + 2);
92
140k
    } else {
93
140k
        last_nonzero_col = dav1d_last_nonzero_col_from_eob[tx][eob];
94
140k
    }
95
154k
    assert(last_nonzero_col < sh);
96
914k
    for (int y = 0; y <= last_nonzero_col; y++, c += w) {
97
759k
        if (is_rect2)
98
6.12M
            for (int x = 0; x < sw; x++)
99
5.80M
                c[x] = (coeff[y + x * sh] * 181 + 128) >> 8;
100
444k
        else
101
7.50M
            for (int x = 0; x < sw; x++)
102
7.06M
                c[x] = coeff[y + x * sh];
103
759k
        first_1d_fn(c, 1, row_clip_min, row_clip_max);
104
759k
    }
105
154k
    if (last_nonzero_col + 1 < sh)
106
127k
        memset(c, 0, sizeof(*c) * (sh - last_nonzero_col - 1) * w);
107
108
154k
    memset(coeff, 0, sizeof(*coeff) * sw * sh);
109
51.2M
    for (int i = 0; i < w * sh; i++)
110
51.0M
        tmp[i] = iclip((tmp[i] + rnd) >> shift, col_clip_min, col_clip_max);
111
112
2.65M
    for (int x = 0; x < w; x++)
113
2.49M
        second_1d_fn(&tmp[x], w, col_clip_min, col_clip_max);
114
115
154k
    c = tmp;
116
2.74M
    for (int y = 0; y < h; y++, dst += PXSTRIDE(stride))
117
69.7M
        for (int x = 0; x < w; x++)
118
67.1M
            dst[x] = iclip_pixel(dst[x] + ((*c++ + 8) >> 4));
119
154k
}
120
121
#define inv_txfm_fn(type1, type2, type, pfx, w, h, shift) \
122
static void \
123
inv_txfm_add_##type1##_##type2##_##w##x##h##_c(pixel *dst, \
124
                                               const ptrdiff_t stride, \
125
                                               coef *const coeff, \
126
                                               const int eob \
127
359k
                                               HIGHBD_DECL_SUFFIX) \
128
359k
{ \
129
359k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
359k
                   HIGHBD_TAIL_SUFFIX); \
131
359k
}
itx_tmpl.c:inv_txfm_add_dct_dct_4x4_c
Line
Count
Source
127
4.36k
                                               HIGHBD_DECL_SUFFIX) \
128
4.36k
{ \
129
4.36k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
4.36k
                   HIGHBD_TAIL_SUFFIX); \
131
4.36k
}
itx_tmpl.c:inv_txfm_add_identity_identity_4x4_c
Line
Count
Source
127
2.31k
                                               HIGHBD_DECL_SUFFIX) \
128
2.31k
{ \
129
2.31k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.31k
                   HIGHBD_TAIL_SUFFIX); \
131
2.31k
}
itx_tmpl.c:inv_txfm_add_adst_dct_4x4_c
Line
Count
Source
127
2.78k
                                               HIGHBD_DECL_SUFFIX) \
128
2.78k
{ \
129
2.78k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.78k
                   HIGHBD_TAIL_SUFFIX); \
131
2.78k
}
itx_tmpl.c:inv_txfm_add_dct_adst_4x4_c
Line
Count
Source
127
2.47k
                                               HIGHBD_DECL_SUFFIX) \
128
2.47k
{ \
129
2.47k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.47k
                   HIGHBD_TAIL_SUFFIX); \
131
2.47k
}
itx_tmpl.c:inv_txfm_add_adst_adst_4x4_c
Line
Count
Source
127
2.99k
                                               HIGHBD_DECL_SUFFIX) \
128
2.99k
{ \
129
2.99k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.99k
                   HIGHBD_TAIL_SUFFIX); \
131
2.99k
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_4x4_c
Line
Count
Source
127
227
                                               HIGHBD_DECL_SUFFIX) \
128
227
{ \
129
227
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
227
                   HIGHBD_TAIL_SUFFIX); \
131
227
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_4x4_c
Line
Count
Source
127
281
                                               HIGHBD_DECL_SUFFIX) \
128
281
{ \
129
281
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
281
                   HIGHBD_TAIL_SUFFIX); \
131
281
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_4x4_c
Line
Count
Source
127
208
                                               HIGHBD_DECL_SUFFIX) \
128
208
{ \
129
208
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
208
                   HIGHBD_TAIL_SUFFIX); \
131
208
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_4x4_c
Line
Count
Source
127
152
                                               HIGHBD_DECL_SUFFIX) \
128
152
{ \
129
152
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
152
                   HIGHBD_TAIL_SUFFIX); \
131
152
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_4x4_c
Line
Count
Source
127
163
                                               HIGHBD_DECL_SUFFIX) \
128
163
{ \
129
163
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
163
                   HIGHBD_TAIL_SUFFIX); \
131
163
}
itx_tmpl.c:inv_txfm_add_dct_identity_4x4_c
Line
Count
Source
127
1.07k
                                               HIGHBD_DECL_SUFFIX) \
128
1.07k
{ \
129
1.07k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.07k
                   HIGHBD_TAIL_SUFFIX); \
131
1.07k
}
itx_tmpl.c:inv_txfm_add_identity_dct_4x4_c
Line
Count
Source
127
456
                                               HIGHBD_DECL_SUFFIX) \
128
456
{ \
129
456
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
456
                   HIGHBD_TAIL_SUFFIX); \
131
456
}
itx_tmpl.c:inv_txfm_add_flipadst_identity_4x4_c
Line
Count
Source
127
274
                                               HIGHBD_DECL_SUFFIX) \
128
274
{ \
129
274
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
274
                   HIGHBD_TAIL_SUFFIX); \
131
274
}
itx_tmpl.c:inv_txfm_add_identity_flipadst_4x4_c
Line
Count
Source
127
181
                                               HIGHBD_DECL_SUFFIX) \
128
181
{ \
129
181
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
181
                   HIGHBD_TAIL_SUFFIX); \
131
181
}
itx_tmpl.c:inv_txfm_add_adst_identity_4x4_c
Line
Count
Source
127
397
                                               HIGHBD_DECL_SUFFIX) \
128
397
{ \
129
397
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
397
                   HIGHBD_TAIL_SUFFIX); \
131
397
}
itx_tmpl.c:inv_txfm_add_identity_adst_4x4_c
Line
Count
Source
127
353
                                               HIGHBD_DECL_SUFFIX) \
128
353
{ \
129
353
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
353
                   HIGHBD_TAIL_SUFFIX); \
131
353
}
itx_tmpl.c:inv_txfm_add_dct_dct_4x8_c
Line
Count
Source
127
1.89k
                                               HIGHBD_DECL_SUFFIX) \
128
1.89k
{ \
129
1.89k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.89k
                   HIGHBD_TAIL_SUFFIX); \
131
1.89k
}
itx_tmpl.c:inv_txfm_add_identity_identity_4x8_c
Line
Count
Source
127
980
                                               HIGHBD_DECL_SUFFIX) \
128
980
{ \
129
980
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
980
                   HIGHBD_TAIL_SUFFIX); \
131
980
}
itx_tmpl.c:inv_txfm_add_adst_dct_4x8_c
Line
Count
Source
127
1.12k
                                               HIGHBD_DECL_SUFFIX) \
128
1.12k
{ \
129
1.12k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.12k
                   HIGHBD_TAIL_SUFFIX); \
131
1.12k
}
itx_tmpl.c:inv_txfm_add_dct_adst_4x8_c
Line
Count
Source
127
908
                                               HIGHBD_DECL_SUFFIX) \
128
908
{ \
129
908
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
908
                   HIGHBD_TAIL_SUFFIX); \
131
908
}
itx_tmpl.c:inv_txfm_add_adst_adst_4x8_c
Line
Count
Source
127
1.41k
                                               HIGHBD_DECL_SUFFIX) \
128
1.41k
{ \
129
1.41k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.41k
                   HIGHBD_TAIL_SUFFIX); \
131
1.41k
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_4x8_c
Line
Count
Source
127
115
                                               HIGHBD_DECL_SUFFIX) \
128
115
{ \
129
115
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
115
                   HIGHBD_TAIL_SUFFIX); \
131
115
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_4x8_c
Line
Count
Source
127
159
                                               HIGHBD_DECL_SUFFIX) \
128
159
{ \
129
159
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
159
                   HIGHBD_TAIL_SUFFIX); \
131
159
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_4x8_c
Line
Count
Source
127
156
                                               HIGHBD_DECL_SUFFIX) \
128
156
{ \
129
156
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
156
                   HIGHBD_TAIL_SUFFIX); \
131
156
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_4x8_c
Line
Count
Source
127
89
                                               HIGHBD_DECL_SUFFIX) \
128
89
{ \
129
89
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
89
                   HIGHBD_TAIL_SUFFIX); \
131
89
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_4x8_c
Line
Count
Source
127
145
                                               HIGHBD_DECL_SUFFIX) \
128
145
{ \
129
145
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
145
                   HIGHBD_TAIL_SUFFIX); \
131
145
}
itx_tmpl.c:inv_txfm_add_dct_identity_4x8_c
Line
Count
Source
127
565
                                               HIGHBD_DECL_SUFFIX) \
128
565
{ \
129
565
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
565
                   HIGHBD_TAIL_SUFFIX); \
131
565
}
itx_tmpl.c:inv_txfm_add_identity_dct_4x8_c
Line
Count
Source
127
222
                                               HIGHBD_DECL_SUFFIX) \
128
222
{ \
129
222
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
222
                   HIGHBD_TAIL_SUFFIX); \
131
222
}
itx_tmpl.c:inv_txfm_add_flipadst_identity_4x8_c
Line
Count
Source
127
178
                                               HIGHBD_DECL_SUFFIX) \
128
178
{ \
129
178
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
178
                   HIGHBD_TAIL_SUFFIX); \
131
178
}
itx_tmpl.c:inv_txfm_add_identity_flipadst_4x8_c
Line
Count
Source
127
162
                                               HIGHBD_DECL_SUFFIX) \
128
162
{ \
129
162
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
162
                   HIGHBD_TAIL_SUFFIX); \
131
162
}
itx_tmpl.c:inv_txfm_add_adst_identity_4x8_c
Line
Count
Source
127
150
                                               HIGHBD_DECL_SUFFIX) \
128
150
{ \
129
150
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
150
                   HIGHBD_TAIL_SUFFIX); \
131
150
}
itx_tmpl.c:inv_txfm_add_identity_adst_4x8_c
Line
Count
Source
127
158
                                               HIGHBD_DECL_SUFFIX) \
128
158
{ \
129
158
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
158
                   HIGHBD_TAIL_SUFFIX); \
131
158
}
itx_tmpl.c:inv_txfm_add_dct_dct_4x16_c
Line
Count
Source
127
1.23k
                                               HIGHBD_DECL_SUFFIX) \
128
1.23k
{ \
129
1.23k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.23k
                   HIGHBD_TAIL_SUFFIX); \
131
1.23k
}
itx_tmpl.c:inv_txfm_add_identity_identity_4x16_c
Line
Count
Source
127
927
                                               HIGHBD_DECL_SUFFIX) \
128
927
{ \
129
927
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
927
                   HIGHBD_TAIL_SUFFIX); \
131
927
}
itx_tmpl.c:inv_txfm_add_adst_dct_4x16_c
Line
Count
Source
127
516
                                               HIGHBD_DECL_SUFFIX) \
128
516
{ \
129
516
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
516
                   HIGHBD_TAIL_SUFFIX); \
131
516
}
itx_tmpl.c:inv_txfm_add_dct_adst_4x16_c
Line
Count
Source
127
507
                                               HIGHBD_DECL_SUFFIX) \
128
507
{ \
129
507
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
507
                   HIGHBD_TAIL_SUFFIX); \
131
507
}
itx_tmpl.c:inv_txfm_add_adst_adst_4x16_c
Line
Count
Source
127
604
                                               HIGHBD_DECL_SUFFIX) \
128
604
{ \
129
604
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
604
                   HIGHBD_TAIL_SUFFIX); \
131
604
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_4x16_c
Line
Count
Source
127
304
                                               HIGHBD_DECL_SUFFIX) \
128
304
{ \
129
304
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
304
                   HIGHBD_TAIL_SUFFIX); \
131
304
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_4x16_c
Line
Count
Source
127
246
                                               HIGHBD_DECL_SUFFIX) \
128
246
{ \
129
246
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
246
                   HIGHBD_TAIL_SUFFIX); \
131
246
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_4x16_c
Line
Count
Source
127
225
                                               HIGHBD_DECL_SUFFIX) \
128
225
{ \
129
225
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
225
                   HIGHBD_TAIL_SUFFIX); \
131
225
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_4x16_c
Line
Count
Source
127
137
                                               HIGHBD_DECL_SUFFIX) \
128
137
{ \
129
137
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
137
                   HIGHBD_TAIL_SUFFIX); \
131
137
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_4x16_c
Line
Count
Source
127
118
                                               HIGHBD_DECL_SUFFIX) \
128
118
{ \
129
118
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
118
                   HIGHBD_TAIL_SUFFIX); \
131
118
}
itx_tmpl.c:inv_txfm_add_dct_identity_4x16_c
Line
Count
Source
127
359
                                               HIGHBD_DECL_SUFFIX) \
128
359
{ \
129
359
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
359
                   HIGHBD_TAIL_SUFFIX); \
131
359
}
itx_tmpl.c:inv_txfm_add_identity_dct_4x16_c
Line
Count
Source
127
177
                                               HIGHBD_DECL_SUFFIX) \
128
177
{ \
129
177
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
177
                   HIGHBD_TAIL_SUFFIX); \
131
177
}
itx_tmpl.c:inv_txfm_add_flipadst_identity_4x16_c
Line
Count
Source
127
274
                                               HIGHBD_DECL_SUFFIX) \
128
274
{ \
129
274
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
274
                   HIGHBD_TAIL_SUFFIX); \
131
274
}
itx_tmpl.c:inv_txfm_add_identity_flipadst_4x16_c
Line
Count
Source
127
166
                                               HIGHBD_DECL_SUFFIX) \
128
166
{ \
129
166
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
166
                   HIGHBD_TAIL_SUFFIX); \
131
166
}
itx_tmpl.c:inv_txfm_add_adst_identity_4x16_c
Line
Count
Source
127
313
                                               HIGHBD_DECL_SUFFIX) \
128
313
{ \
129
313
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
313
                   HIGHBD_TAIL_SUFFIX); \
131
313
}
itx_tmpl.c:inv_txfm_add_identity_adst_4x16_c
Line
Count
Source
127
196
                                               HIGHBD_DECL_SUFFIX) \
128
196
{ \
129
196
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
196
                   HIGHBD_TAIL_SUFFIX); \
131
196
}
itx_tmpl.c:inv_txfm_add_dct_dct_8x4_c
Line
Count
Source
127
2.01k
                                               HIGHBD_DECL_SUFFIX) \
128
2.01k
{ \
129
2.01k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.01k
                   HIGHBD_TAIL_SUFFIX); \
131
2.01k
}
itx_tmpl.c:inv_txfm_add_identity_identity_8x4_c
Line
Count
Source
127
978
                                               HIGHBD_DECL_SUFFIX) \
128
978
{ \
129
978
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
978
                   HIGHBD_TAIL_SUFFIX); \
131
978
}
itx_tmpl.c:inv_txfm_add_adst_dct_8x4_c
Line
Count
Source
127
1.33k
                                               HIGHBD_DECL_SUFFIX) \
128
1.33k
{ \
129
1.33k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.33k
                   HIGHBD_TAIL_SUFFIX); \
131
1.33k
}
itx_tmpl.c:inv_txfm_add_dct_adst_8x4_c
Line
Count
Source
127
1.40k
                                               HIGHBD_DECL_SUFFIX) \
128
1.40k
{ \
129
1.40k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.40k
                   HIGHBD_TAIL_SUFFIX); \
131
1.40k
}
itx_tmpl.c:inv_txfm_add_adst_adst_8x4_c
Line
Count
Source
127
1.81k
                                               HIGHBD_DECL_SUFFIX) \
128
1.81k
{ \
129
1.81k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.81k
                   HIGHBD_TAIL_SUFFIX); \
131
1.81k
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_8x4_c
Line
Count
Source
127
125
                                               HIGHBD_DECL_SUFFIX) \
128
125
{ \
129
125
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
125
                   HIGHBD_TAIL_SUFFIX); \
131
125
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_8x4_c
Line
Count
Source
127
185
                                               HIGHBD_DECL_SUFFIX) \
128
185
{ \
129
185
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
185
                   HIGHBD_TAIL_SUFFIX); \
131
185
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_8x4_c
Line
Count
Source
127
101
                                               HIGHBD_DECL_SUFFIX) \
128
101
{ \
129
101
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
101
                   HIGHBD_TAIL_SUFFIX); \
131
101
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_8x4_c
Line
Count
Source
127
154
                                               HIGHBD_DECL_SUFFIX) \
128
154
{ \
129
154
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
154
                   HIGHBD_TAIL_SUFFIX); \
131
154
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_8x4_c
Line
Count
Source
127
111
                                               HIGHBD_DECL_SUFFIX) \
128
111
{ \
129
111
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
111
                   HIGHBD_TAIL_SUFFIX); \
131
111
}
itx_tmpl.c:inv_txfm_add_dct_identity_8x4_c
Line
Count
Source
127
496
                                               HIGHBD_DECL_SUFFIX) \
128
496
{ \
129
496
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
496
                   HIGHBD_TAIL_SUFFIX); \
131
496
}
itx_tmpl.c:inv_txfm_add_identity_dct_8x4_c
Line
Count
Source
127
293
                                               HIGHBD_DECL_SUFFIX) \
128
293
{ \
129
293
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
293
                   HIGHBD_TAIL_SUFFIX); \
131
293
}
itx_tmpl.c:inv_txfm_add_flipadst_identity_8x4_c
Line
Count
Source
127
264
                                               HIGHBD_DECL_SUFFIX) \
128
264
{ \
129
264
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
264
                   HIGHBD_TAIL_SUFFIX); \
131
264
}
itx_tmpl.c:inv_txfm_add_identity_flipadst_8x4_c
Line
Count
Source
127
114
                                               HIGHBD_DECL_SUFFIX) \
128
114
{ \
129
114
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
114
                   HIGHBD_TAIL_SUFFIX); \
131
114
}
itx_tmpl.c:inv_txfm_add_adst_identity_8x4_c
Line
Count
Source
127
247
                                               HIGHBD_DECL_SUFFIX) \
128
247
{ \
129
247
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
247
                   HIGHBD_TAIL_SUFFIX); \
131
247
}
itx_tmpl.c:inv_txfm_add_identity_adst_8x4_c
Line
Count
Source
127
110
                                               HIGHBD_DECL_SUFFIX) \
128
110
{ \
129
110
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
110
                   HIGHBD_TAIL_SUFFIX); \
131
110
}
itx_tmpl.c:inv_txfm_add_dct_dct_8x8_c
Line
Count
Source
127
7.30k
                                               HIGHBD_DECL_SUFFIX) \
128
7.30k
{ \
129
7.30k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
7.30k
                   HIGHBD_TAIL_SUFFIX); \
131
7.30k
}
itx_tmpl.c:inv_txfm_add_identity_identity_8x8_c
Line
Count
Source
127
2.84k
                                               HIGHBD_DECL_SUFFIX) \
128
2.84k
{ \
129
2.84k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.84k
                   HIGHBD_TAIL_SUFFIX); \
131
2.84k
}
itx_tmpl.c:inv_txfm_add_adst_dct_8x8_c
Line
Count
Source
127
4.58k
                                               HIGHBD_DECL_SUFFIX) \
128
4.58k
{ \
129
4.58k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
4.58k
                   HIGHBD_TAIL_SUFFIX); \
131
4.58k
}
itx_tmpl.c:inv_txfm_add_dct_adst_8x8_c
Line
Count
Source
127
3.47k
                                               HIGHBD_DECL_SUFFIX) \
128
3.47k
{ \
129
3.47k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
3.47k
                   HIGHBD_TAIL_SUFFIX); \
131
3.47k
}
itx_tmpl.c:inv_txfm_add_adst_adst_8x8_c
Line
Count
Source
127
3.90k
                                               HIGHBD_DECL_SUFFIX) \
128
3.90k
{ \
129
3.90k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
3.90k
                   HIGHBD_TAIL_SUFFIX); \
131
3.90k
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_8x8_c
Line
Count
Source
127
346
                                               HIGHBD_DECL_SUFFIX) \
128
346
{ \
129
346
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
346
                   HIGHBD_TAIL_SUFFIX); \
131
346
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_8x8_c
Line
Count
Source
127
333
                                               HIGHBD_DECL_SUFFIX) \
128
333
{ \
129
333
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
333
                   HIGHBD_TAIL_SUFFIX); \
131
333
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_8x8_c
Line
Count
Source
127
408
                                               HIGHBD_DECL_SUFFIX) \
128
408
{ \
129
408
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
408
                   HIGHBD_TAIL_SUFFIX); \
131
408
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_8x8_c
Line
Count
Source
127
447
                                               HIGHBD_DECL_SUFFIX) \
128
447
{ \
129
447
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
447
                   HIGHBD_TAIL_SUFFIX); \
131
447
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_8x8_c
Line
Count
Source
127
279
                                               HIGHBD_DECL_SUFFIX) \
128
279
{ \
129
279
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
279
                   HIGHBD_TAIL_SUFFIX); \
131
279
}
itx_tmpl.c:inv_txfm_add_dct_identity_8x8_c
Line
Count
Source
127
962
                                               HIGHBD_DECL_SUFFIX) \
128
962
{ \
129
962
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
962
                   HIGHBD_TAIL_SUFFIX); \
131
962
}
itx_tmpl.c:inv_txfm_add_identity_dct_8x8_c
Line
Count
Source
127
526
                                               HIGHBD_DECL_SUFFIX) \
128
526
{ \
129
526
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
526
                   HIGHBD_TAIL_SUFFIX); \
131
526
}
itx_tmpl.c:inv_txfm_add_flipadst_identity_8x8_c
Line
Count
Source
127
321
                                               HIGHBD_DECL_SUFFIX) \
128
321
{ \
129
321
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
321
                   HIGHBD_TAIL_SUFFIX); \
131
321
}
itx_tmpl.c:inv_txfm_add_identity_flipadst_8x8_c
Line
Count
Source
127
244
                                               HIGHBD_DECL_SUFFIX) \
128
244
{ \
129
244
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
244
                   HIGHBD_TAIL_SUFFIX); \
131
244
}
itx_tmpl.c:inv_txfm_add_adst_identity_8x8_c
Line
Count
Source
127
321
                                               HIGHBD_DECL_SUFFIX) \
128
321
{ \
129
321
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
321
                   HIGHBD_TAIL_SUFFIX); \
131
321
}
itx_tmpl.c:inv_txfm_add_identity_adst_8x8_c
Line
Count
Source
127
147
                                               HIGHBD_DECL_SUFFIX) \
128
147
{ \
129
147
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
147
                   HIGHBD_TAIL_SUFFIX); \
131
147
}
itx_tmpl.c:inv_txfm_add_dct_dct_8x16_c
Line
Count
Source
127
3.71k
                                               HIGHBD_DECL_SUFFIX) \
128
3.71k
{ \
129
3.71k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
3.71k
                   HIGHBD_TAIL_SUFFIX); \
131
3.71k
}
itx_tmpl.c:inv_txfm_add_identity_identity_8x16_c
Line
Count
Source
127
1.47k
                                               HIGHBD_DECL_SUFFIX) \
128
1.47k
{ \
129
1.47k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.47k
                   HIGHBD_TAIL_SUFFIX); \
131
1.47k
}
itx_tmpl.c:inv_txfm_add_adst_dct_8x16_c
Line
Count
Source
127
1.42k
                                               HIGHBD_DECL_SUFFIX) \
128
1.42k
{ \
129
1.42k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.42k
                   HIGHBD_TAIL_SUFFIX); \
131
1.42k
}
itx_tmpl.c:inv_txfm_add_dct_adst_8x16_c
Line
Count
Source
127
1.56k
                                               HIGHBD_DECL_SUFFIX) \
128
1.56k
{ \
129
1.56k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.56k
                   HIGHBD_TAIL_SUFFIX); \
131
1.56k
}
itx_tmpl.c:inv_txfm_add_adst_adst_8x16_c
Line
Count
Source
127
1.76k
                                               HIGHBD_DECL_SUFFIX) \
128
1.76k
{ \
129
1.76k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.76k
                   HIGHBD_TAIL_SUFFIX); \
131
1.76k
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_8x16_c
Line
Count
Source
127
175
                                               HIGHBD_DECL_SUFFIX) \
128
175
{ \
129
175
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
175
                   HIGHBD_TAIL_SUFFIX); \
131
175
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_8x16_c
Line
Count
Source
127
192
                                               HIGHBD_DECL_SUFFIX) \
128
192
{ \
129
192
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
192
                   HIGHBD_TAIL_SUFFIX); \
131
192
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_8x16_c
Line
Count
Source
127
213
                                               HIGHBD_DECL_SUFFIX) \
128
213
{ \
129
213
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
213
                   HIGHBD_TAIL_SUFFIX); \
131
213
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_8x16_c
Line
Count
Source
127
207
                                               HIGHBD_DECL_SUFFIX) \
128
207
{ \
129
207
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
207
                   HIGHBD_TAIL_SUFFIX); \
131
207
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_8x16_c
Line
Count
Source
127
197
                                               HIGHBD_DECL_SUFFIX) \
128
197
{ \
129
197
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
197
                   HIGHBD_TAIL_SUFFIX); \
131
197
}
itx_tmpl.c:inv_txfm_add_dct_identity_8x16_c
Line
Count
Source
127
420
                                               HIGHBD_DECL_SUFFIX) \
128
420
{ \
129
420
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
420
                   HIGHBD_TAIL_SUFFIX); \
131
420
}
itx_tmpl.c:inv_txfm_add_identity_dct_8x16_c
Line
Count
Source
127
276
                                               HIGHBD_DECL_SUFFIX) \
128
276
{ \
129
276
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
276
                   HIGHBD_TAIL_SUFFIX); \
131
276
}
itx_tmpl.c:inv_txfm_add_flipadst_identity_8x16_c
Line
Count
Source
127
157
                                               HIGHBD_DECL_SUFFIX) \
128
157
{ \
129
157
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
157
                   HIGHBD_TAIL_SUFFIX); \
131
157
}
itx_tmpl.c:inv_txfm_add_identity_flipadst_8x16_c
Line
Count
Source
127
125
                                               HIGHBD_DECL_SUFFIX) \
128
125
{ \
129
125
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
125
                   HIGHBD_TAIL_SUFFIX); \
131
125
}
itx_tmpl.c:inv_txfm_add_adst_identity_8x16_c
Line
Count
Source
127
196
                                               HIGHBD_DECL_SUFFIX) \
128
196
{ \
129
196
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
196
                   HIGHBD_TAIL_SUFFIX); \
131
196
}
itx_tmpl.c:inv_txfm_add_identity_adst_8x16_c
Line
Count
Source
127
131
                                               HIGHBD_DECL_SUFFIX) \
128
131
{ \
129
131
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
131
                   HIGHBD_TAIL_SUFFIX); \
131
131
}
itx_tmpl.c:inv_txfm_add_dct_dct_8x32_c
Line
Count
Source
127
2.28k
                                               HIGHBD_DECL_SUFFIX) \
128
2.28k
{ \
129
2.28k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.28k
                   HIGHBD_TAIL_SUFFIX); \
131
2.28k
}
itx_tmpl.c:inv_txfm_add_identity_identity_8x32_c
Line
Count
Source
127
78
                                               HIGHBD_DECL_SUFFIX) \
128
78
{ \
129
78
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
78
                   HIGHBD_TAIL_SUFFIX); \
131
78
}
itx_tmpl.c:inv_txfm_add_dct_dct_16x4_c
Line
Count
Source
127
891
                                               HIGHBD_DECL_SUFFIX) \
128
891
{ \
129
891
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
891
                   HIGHBD_TAIL_SUFFIX); \
131
891
}
itx_tmpl.c:inv_txfm_add_identity_identity_16x4_c
Line
Count
Source
127
539
                                               HIGHBD_DECL_SUFFIX) \
128
539
{ \
129
539
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
539
                   HIGHBD_TAIL_SUFFIX); \
131
539
}
itx_tmpl.c:inv_txfm_add_adst_dct_16x4_c
Line
Count
Source
127
637
                                               HIGHBD_DECL_SUFFIX) \
128
637
{ \
129
637
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
637
                   HIGHBD_TAIL_SUFFIX); \
131
637
}
itx_tmpl.c:inv_txfm_add_dct_adst_16x4_c
Line
Count
Source
127
576
                                               HIGHBD_DECL_SUFFIX) \
128
576
{ \
129
576
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
576
                   HIGHBD_TAIL_SUFFIX); \
131
576
}
itx_tmpl.c:inv_txfm_add_adst_adst_16x4_c
Line
Count
Source
127
777
                                               HIGHBD_DECL_SUFFIX) \
128
777
{ \
129
777
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
777
                   HIGHBD_TAIL_SUFFIX); \
131
777
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_16x4_c
Line
Count
Source
127
137
                                               HIGHBD_DECL_SUFFIX) \
128
137
{ \
129
137
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
137
                   HIGHBD_TAIL_SUFFIX); \
131
137
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_16x4_c
Line
Count
Source
127
116
                                               HIGHBD_DECL_SUFFIX) \
128
116
{ \
129
116
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
116
                   HIGHBD_TAIL_SUFFIX); \
131
116
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_16x4_c
Line
Count
Source
127
160
                                               HIGHBD_DECL_SUFFIX) \
128
160
{ \
129
160
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
160
                   HIGHBD_TAIL_SUFFIX); \
131
160
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_16x4_c
Line
Count
Source
127
85
                                               HIGHBD_DECL_SUFFIX) \
128
85
{ \
129
85
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
85
                   HIGHBD_TAIL_SUFFIX); \
131
85
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_16x4_c
Line
Count
Source
127
119
                                               HIGHBD_DECL_SUFFIX) \
128
119
{ \
129
119
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
119
                   HIGHBD_TAIL_SUFFIX); \
131
119
}
itx_tmpl.c:inv_txfm_add_dct_identity_16x4_c
Line
Count
Source
127
285
                                               HIGHBD_DECL_SUFFIX) \
128
285
{ \
129
285
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
285
                   HIGHBD_TAIL_SUFFIX); \
131
285
}
itx_tmpl.c:inv_txfm_add_identity_dct_16x4_c
Line
Count
Source
127
193
                                               HIGHBD_DECL_SUFFIX) \
128
193
{ \
129
193
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
193
                   HIGHBD_TAIL_SUFFIX); \
131
193
}
itx_tmpl.c:inv_txfm_add_flipadst_identity_16x4_c
Line
Count
Source
127
216
                                               HIGHBD_DECL_SUFFIX) \
128
216
{ \
129
216
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
216
                   HIGHBD_TAIL_SUFFIX); \
131
216
}
itx_tmpl.c:inv_txfm_add_identity_flipadst_16x4_c
Line
Count
Source
127
99
                                               HIGHBD_DECL_SUFFIX) \
128
99
{ \
129
99
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
99
                   HIGHBD_TAIL_SUFFIX); \
131
99
}
itx_tmpl.c:inv_txfm_add_adst_identity_16x4_c
Line
Count
Source
127
254
                                               HIGHBD_DECL_SUFFIX) \
128
254
{ \
129
254
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
254
                   HIGHBD_TAIL_SUFFIX); \
131
254
}
itx_tmpl.c:inv_txfm_add_identity_adst_16x4_c
Line
Count
Source
127
171
                                               HIGHBD_DECL_SUFFIX) \
128
171
{ \
129
171
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
171
                   HIGHBD_TAIL_SUFFIX); \
131
171
}
itx_tmpl.c:inv_txfm_add_dct_dct_16x8_c
Line
Count
Source
127
3.41k
                                               HIGHBD_DECL_SUFFIX) \
128
3.41k
{ \
129
3.41k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
3.41k
                   HIGHBD_TAIL_SUFFIX); \
131
3.41k
}
itx_tmpl.c:inv_txfm_add_identity_identity_16x8_c
Line
Count
Source
127
968
                                               HIGHBD_DECL_SUFFIX) \
128
968
{ \
129
968
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
968
                   HIGHBD_TAIL_SUFFIX); \
131
968
}
itx_tmpl.c:inv_txfm_add_adst_dct_16x8_c
Line
Count
Source
127
2.15k
                                               HIGHBD_DECL_SUFFIX) \
128
2.15k
{ \
129
2.15k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.15k
                   HIGHBD_TAIL_SUFFIX); \
131
2.15k
}
itx_tmpl.c:inv_txfm_add_dct_adst_16x8_c
Line
Count
Source
127
1.59k
                                               HIGHBD_DECL_SUFFIX) \
128
1.59k
{ \
129
1.59k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.59k
                   HIGHBD_TAIL_SUFFIX); \
131
1.59k
}
itx_tmpl.c:inv_txfm_add_adst_adst_16x8_c
Line
Count
Source
127
1.81k
                                               HIGHBD_DECL_SUFFIX) \
128
1.81k
{ \
129
1.81k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.81k
                   HIGHBD_TAIL_SUFFIX); \
131
1.81k
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_16x8_c
Line
Count
Source
127
263
                                               HIGHBD_DECL_SUFFIX) \
128
263
{ \
129
263
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
263
                   HIGHBD_TAIL_SUFFIX); \
131
263
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_16x8_c
Line
Count
Source
127
184
                                               HIGHBD_DECL_SUFFIX) \
128
184
{ \
129
184
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
184
                   HIGHBD_TAIL_SUFFIX); \
131
184
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_16x8_c
Line
Count
Source
127
128
                                               HIGHBD_DECL_SUFFIX) \
128
128
{ \
129
128
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
128
                   HIGHBD_TAIL_SUFFIX); \
131
128
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_16x8_c
Line
Count
Source
127
174
                                               HIGHBD_DECL_SUFFIX) \
128
174
{ \
129
174
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
174
                   HIGHBD_TAIL_SUFFIX); \
131
174
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_16x8_c
Line
Count
Source
127
155
                                               HIGHBD_DECL_SUFFIX) \
128
155
{ \
129
155
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
155
                   HIGHBD_TAIL_SUFFIX); \
131
155
}
itx_tmpl.c:inv_txfm_add_dct_identity_16x8_c
Line
Count
Source
127
434
                                               HIGHBD_DECL_SUFFIX) \
128
434
{ \
129
434
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
434
                   HIGHBD_TAIL_SUFFIX); \
131
434
}
itx_tmpl.c:inv_txfm_add_identity_dct_16x8_c
Line
Count
Source
127
380
                                               HIGHBD_DECL_SUFFIX) \
128
380
{ \
129
380
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
380
                   HIGHBD_TAIL_SUFFIX); \
131
380
}
itx_tmpl.c:inv_txfm_add_flipadst_identity_16x8_c
Line
Count
Source
127
216
                                               HIGHBD_DECL_SUFFIX) \
128
216
{ \
129
216
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
216
                   HIGHBD_TAIL_SUFFIX); \
131
216
}
itx_tmpl.c:inv_txfm_add_identity_flipadst_16x8_c
Line
Count
Source
127
170
                                               HIGHBD_DECL_SUFFIX) \
128
170
{ \
129
170
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
170
                   HIGHBD_TAIL_SUFFIX); \
131
170
}
itx_tmpl.c:inv_txfm_add_adst_identity_16x8_c
Line
Count
Source
127
198
                                               HIGHBD_DECL_SUFFIX) \
128
198
{ \
129
198
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
198
                   HIGHBD_TAIL_SUFFIX); \
131
198
}
itx_tmpl.c:inv_txfm_add_identity_adst_16x8_c
Line
Count
Source
127
144
                                               HIGHBD_DECL_SUFFIX) \
128
144
{ \
129
144
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
144
                   HIGHBD_TAIL_SUFFIX); \
131
144
}
itx_tmpl.c:inv_txfm_add_dct_dct_16x16_c
Line
Count
Source
127
7.32k
                                               HIGHBD_DECL_SUFFIX) \
128
7.32k
{ \
129
7.32k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
7.32k
                   HIGHBD_TAIL_SUFFIX); \
131
7.32k
}
itx_tmpl.c:inv_txfm_add_identity_identity_16x16_c
Line
Count
Source
127
1.23k
                                               HIGHBD_DECL_SUFFIX) \
128
1.23k
{ \
129
1.23k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.23k
                   HIGHBD_TAIL_SUFFIX); \
131
1.23k
}
itx_tmpl.c:inv_txfm_add_adst_dct_16x16_c
Line
Count
Source
127
7.27k
                                               HIGHBD_DECL_SUFFIX) \
128
7.27k
{ \
129
7.27k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
7.27k
                   HIGHBD_TAIL_SUFFIX); \
131
7.27k
}
itx_tmpl.c:inv_txfm_add_dct_adst_16x16_c
Line
Count
Source
127
4.62k
                                               HIGHBD_DECL_SUFFIX) \
128
4.62k
{ \
129
4.62k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
4.62k
                   HIGHBD_TAIL_SUFFIX); \
131
4.62k
}
itx_tmpl.c:inv_txfm_add_adst_adst_16x16_c
Line
Count
Source
127
6.94k
                                               HIGHBD_DECL_SUFFIX) \
128
6.94k
{ \
129
6.94k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
6.94k
                   HIGHBD_TAIL_SUFFIX); \
131
6.94k
}
itx_tmpl.c:inv_txfm_add_flipadst_adst_16x16_c
Line
Count
Source
127
151
                                               HIGHBD_DECL_SUFFIX) \
128
151
{ \
129
151
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
151
                   HIGHBD_TAIL_SUFFIX); \
131
151
}
itx_tmpl.c:inv_txfm_add_adst_flipadst_16x16_c
Line
Count
Source
127
221
                                               HIGHBD_DECL_SUFFIX) \
128
221
{ \
129
221
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
221
                   HIGHBD_TAIL_SUFFIX); \
131
221
}
itx_tmpl.c:inv_txfm_add_flipadst_dct_16x16_c
Line
Count
Source
127
332
                                               HIGHBD_DECL_SUFFIX) \
128
332
{ \
129
332
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
332
                   HIGHBD_TAIL_SUFFIX); \
131
332
}
itx_tmpl.c:inv_txfm_add_dct_flipadst_16x16_c
Line
Count
Source
127
242
                                               HIGHBD_DECL_SUFFIX) \
128
242
{ \
129
242
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
242
                   HIGHBD_TAIL_SUFFIX); \
131
242
}
itx_tmpl.c:inv_txfm_add_flipadst_flipadst_16x16_c
Line
Count
Source
127
147
                                               HIGHBD_DECL_SUFFIX) \
128
147
{ \
129
147
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
147
                   HIGHBD_TAIL_SUFFIX); \
131
147
}
itx_tmpl.c:inv_txfm_add_dct_identity_16x16_c
Line
Count
Source
127
243
                                               HIGHBD_DECL_SUFFIX) \
128
243
{ \
129
243
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
243
                   HIGHBD_TAIL_SUFFIX); \
131
243
}
itx_tmpl.c:inv_txfm_add_identity_dct_16x16_c
Line
Count
Source
127
117
                                               HIGHBD_DECL_SUFFIX) \
128
117
{ \
129
117
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
117
                   HIGHBD_TAIL_SUFFIX); \
131
117
}
itx_tmpl.c:inv_txfm_add_dct_dct_16x32_c
Line
Count
Source
127
11.8k
                                               HIGHBD_DECL_SUFFIX) \
128
11.8k
{ \
129
11.8k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
11.8k
                   HIGHBD_TAIL_SUFFIX); \
131
11.8k
}
itx_tmpl.c:inv_txfm_add_identity_identity_16x32_c
Line
Count
Source
127
158
                                               HIGHBD_DECL_SUFFIX) \
128
158
{ \
129
158
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
158
                   HIGHBD_TAIL_SUFFIX); \
131
158
}
itx_tmpl.c:inv_txfm_add_dct_dct_16x64_c
Line
Count
Source
127
1.79k
                                               HIGHBD_DECL_SUFFIX) \
128
1.79k
{ \
129
1.79k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
1.79k
                   HIGHBD_TAIL_SUFFIX); \
131
1.79k
}
itx_tmpl.c:inv_txfm_add_dct_dct_32x8_c
Line
Count
Source
127
2.41k
                                               HIGHBD_DECL_SUFFIX) \
128
2.41k
{ \
129
2.41k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
2.41k
                   HIGHBD_TAIL_SUFFIX); \
131
2.41k
}
itx_tmpl.c:inv_txfm_add_identity_identity_32x8_c
Line
Count
Source
127
148
                                               HIGHBD_DECL_SUFFIX) \
128
148
{ \
129
148
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
148
                   HIGHBD_TAIL_SUFFIX); \
131
148
}
itx_tmpl.c:inv_txfm_add_dct_dct_32x16_c
Line
Count
Source
127
8.15k
                                               HIGHBD_DECL_SUFFIX) \
128
8.15k
{ \
129
8.15k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
8.15k
                   HIGHBD_TAIL_SUFFIX); \
131
8.15k
}
itx_tmpl.c:inv_txfm_add_identity_identity_32x16_c
Line
Count
Source
127
90
                                               HIGHBD_DECL_SUFFIX) \
128
90
{ \
129
90
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
90
                   HIGHBD_TAIL_SUFFIX); \
131
90
}
itx_tmpl.c:inv_txfm_add_dct_dct_32x32_c
Line
Count
Source
127
111k
                                               HIGHBD_DECL_SUFFIX) \
128
111k
{ \
129
111k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
111k
                   HIGHBD_TAIL_SUFFIX); \
131
111k
}
itx_tmpl.c:inv_txfm_add_identity_identity_32x32_c
Line
Count
Source
127
90
                                               HIGHBD_DECL_SUFFIX) \
128
90
{ \
129
90
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
90
                   HIGHBD_TAIL_SUFFIX); \
131
90
}
itx_tmpl.c:inv_txfm_add_dct_dct_32x64_c
Line
Count
Source
127
10.1k
                                               HIGHBD_DECL_SUFFIX) \
128
10.1k
{ \
129
10.1k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
10.1k
                   HIGHBD_TAIL_SUFFIX); \
131
10.1k
}
itx_tmpl.c:inv_txfm_add_dct_dct_64x16_c
Line
Count
Source
127
931
                                               HIGHBD_DECL_SUFFIX) \
128
931
{ \
129
931
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
931
                   HIGHBD_TAIL_SUFFIX); \
131
931
}
itx_tmpl.c:inv_txfm_add_dct_dct_64x32_c
Line
Count
Source
127
6.21k
                                               HIGHBD_DECL_SUFFIX) \
128
6.21k
{ \
129
6.21k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
6.21k
                   HIGHBD_TAIL_SUFFIX); \
131
6.21k
}
itx_tmpl.c:inv_txfm_add_dct_dct_64x64_c
Line
Count
Source
127
75.6k
                                               HIGHBD_DECL_SUFFIX) \
128
75.6k
{ \
129
75.6k
    inv_txfm_add_c(dst, stride, coeff, eob, pfx##TX_##w##X##h, shift, type \
130
75.6k
                   HIGHBD_TAIL_SUFFIX); \
131
75.6k
}
132
133
#define inv_txfm_fn64(pfx, w, h, shift) \
134
inv_txfm_fn(dct, dct, DCT_DCT, pfx, w, h, shift)
135
136
#define inv_txfm_fn32(pfx, w, h, shift) \
137
inv_txfm_fn64(pfx, w, h, shift) \
138
inv_txfm_fn(identity, identity, IDTX, pfx, w, h, shift)
139
140
#define inv_txfm_fn16(pfx, w, h, shift) \
141
inv_txfm_fn32(pfx, w, h, shift) \
142
inv_txfm_fn(adst,     dct,      ADST_DCT,          pfx,  w, h, shift) \
143
inv_txfm_fn(dct,      adst,     DCT_ADST,          pfx, w, h, shift) \
144
inv_txfm_fn(adst,     adst,     ADST_ADST,         pfx, w, h, shift) \
145
inv_txfm_fn(dct,      flipadst, DCT_FLIPADST,      pfx, w, h, shift) \
146
inv_txfm_fn(flipadst, dct,      FLIPADST_DCT,      pfx, w, h, shift) \
147
inv_txfm_fn(adst,     flipadst, ADST_FLIPADST,     pfx, w, h, shift) \
148
inv_txfm_fn(flipadst, adst,     FLIPADST_ADST,     pfx, w, h, shift) \
149
inv_txfm_fn(flipadst, flipadst, FLIPADST_FLIPADST, pfx, w, h, shift) \
150
inv_txfm_fn(identity, dct,      H_DCT,             pfx, w, h, shift) \
151
inv_txfm_fn(dct,      identity, V_DCT,             pfx, w, h, shift) \
152
153
#define inv_txfm_fn84(pfx, w, h, shift) \
154
inv_txfm_fn16(pfx, w, h, shift) \
155
inv_txfm_fn(identity, flipadst, H_FLIPADST, pfx, w, h, shift) \
156
inv_txfm_fn(flipadst, identity, V_FLIPADST, pfx, w, h, shift) \
157
inv_txfm_fn(identity, adst,     H_ADST,     pfx, w, h, shift) \
158
inv_txfm_fn(adst,     identity, V_ADST,     pfx, w, h, shift) \
159
160
inv_txfm_fn84( ,  4,  4, 0)
161
inv_txfm_fn84(R,  4,  8, 0)
162
inv_txfm_fn84(R,  4, 16, 1)
163
inv_txfm_fn84(R,  8,  4, 0)
164
inv_txfm_fn84( ,  8,  8, 1)
165
inv_txfm_fn84(R,  8, 16, 1)
166
inv_txfm_fn32(R,  8, 32, 2)
167
inv_txfm_fn84(R, 16,  4, 1)
168
inv_txfm_fn84(R, 16,  8, 1)
169
inv_txfm_fn16( , 16, 16, 2)
170
inv_txfm_fn32(R, 16, 32, 1)
171
inv_txfm_fn64(R, 16, 64, 2)
172
inv_txfm_fn32(R, 32,  8, 2)
173
inv_txfm_fn32(R, 32, 16, 1)
174
inv_txfm_fn32( , 32, 32, 2)
175
inv_txfm_fn64(R, 32, 64, 1)
176
inv_txfm_fn64(R, 64, 16, 2)
177
inv_txfm_fn64(R, 64, 32, 1)
178
inv_txfm_fn64( , 64, 64, 2)
179
180
#if !(HAVE_ASM && TRIM_DSP_FUNCTIONS && ( \
181
  ARCH_AARCH64 || \
182
  (ARCH_ARM && (defined(__ARM_NEON) || defined(__APPLE__) || defined(_WIN32))) \
183
))
184
static void inv_txfm_add_wht_wht_4x4_c(pixel *dst, const ptrdiff_t stride,
185
                                       coef *const coeff, const int eob
186
                                       HIGHBD_DECL_SUFFIX)
187
421k
{
188
421k
    int32_t tmp[4 * 4], *c = tmp;
189
2.10M
    for (int y = 0; y < 4; y++, c += 4) {
190
8.42M
        for (int x = 0; x < 4; x++)
191
6.74M
            c[x] = coeff[y + x * 4] >> 2;
192
1.68M
        dav1d_inv_wht4_1d_c(c, 1);
193
1.68M
    }
194
421k
    memset(coeff, 0, sizeof(*coeff) * 4 * 4);
195
196
2.10M
    for (int x = 0; x < 4; x++)
197
1.68M
        dav1d_inv_wht4_1d_c(&tmp[x], 4);
198
199
421k
    c = tmp;
200
2.10M
    for (int y = 0; y < 4; y++, dst += PXSTRIDE(stride))
201
8.42M
        for (int x = 0; x < 4; x++)
202
6.74M
            dst[x] = iclip_pixel(dst[x] + *c++);
203
421k
}
204
#endif
205
206
#if HAVE_ASM
207
#if ARCH_AARCH64 || ARCH_ARM
208
#include "src/arm/itx.h"
209
#elif ARCH_LOONGARCH64
210
#include "src/loongarch/itx.h"
211
#elif ARCH_PPC64LE
212
#include "src/ppc/itx.h"
213
#elif ARCH_RISCV
214
#include "src/riscv/itx.h"
215
#elif ARCH_X86
216
#include "src/x86/itx.h"
217
#endif
218
#endif
219
220
38.2k
COLD void bitfn(dav1d_itx_dsp_init)(Dav1dInvTxfmDSPContext *const c, int bpc) {
221
38.2k
#define assign_itx_all_fn64(w, h, pfx) \
222
726k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_DCT  ] = \
223
726k
        inv_txfm_add_dct_dct_##w##x##h##_c
224
225
38.2k
#define assign_itx_all_fn32(w, h, pfx) \
226
535k
    assign_itx_all_fn64(w, h, pfx); \
227
535k
    c->itxfm_add[pfx##TX_##w##X##h][IDTX] = \
228
535k
        inv_txfm_add_identity_identity_##w##x##h##_c
229
230
38.2k
#define assign_itx_all_fn16(w, h, pfx) \
231
344k
    assign_itx_all_fn32(w, h, pfx); \
232
344k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_ADST ] = \
233
344k
        inv_txfm_add_adst_dct_##w##x##h##_c; \
234
344k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_DCT ] = \
235
344k
        inv_txfm_add_dct_adst_##w##x##h##_c; \
236
344k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_ADST] = \
237
344k
        inv_txfm_add_adst_adst_##w##x##h##_c; \
238
344k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_FLIPADST] = \
239
344k
        inv_txfm_add_flipadst_adst_##w##x##h##_c; \
240
344k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_ADST] = \
241
344k
        inv_txfm_add_adst_flipadst_##w##x##h##_c; \
242
344k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_FLIPADST] = \
243
344k
        inv_txfm_add_flipadst_dct_##w##x##h##_c; \
244
344k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_DCT] = \
245
344k
        inv_txfm_add_dct_flipadst_##w##x##h##_c; \
246
344k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_FLIPADST] = \
247
344k
        inv_txfm_add_flipadst_flipadst_##w##x##h##_c; \
248
344k
    c->itxfm_add[pfx##TX_##w##X##h][H_DCT] = \
249
344k
        inv_txfm_add_dct_identity_##w##x##h##_c; \
250
344k
    c->itxfm_add[pfx##TX_##w##X##h][V_DCT] = \
251
344k
        inv_txfm_add_identity_dct_##w##x##h##_c
252
253
38.2k
#define assign_itx_all_fn84(w, h, pfx) \
254
305k
    assign_itx_all_fn16(w, h, pfx); \
255
305k
    c->itxfm_add[pfx##TX_##w##X##h][H_FLIPADST] = \
256
305k
        inv_txfm_add_flipadst_identity_##w##x##h##_c; \
257
305k
    c->itxfm_add[pfx##TX_##w##X##h][V_FLIPADST] = \
258
305k
        inv_txfm_add_identity_flipadst_##w##x##h##_c; \
259
305k
    c->itxfm_add[pfx##TX_##w##X##h][H_ADST] = \
260
305k
        inv_txfm_add_adst_identity_##w##x##h##_c; \
261
305k
    c->itxfm_add[pfx##TX_##w##X##h][V_ADST] = \
262
305k
        inv_txfm_add_identity_adst_##w##x##h##_c; \
263
38.2k
264
38.2k
#if !(HAVE_ASM && TRIM_DSP_FUNCTIONS && ( \
265
38.2k
  ARCH_AARCH64 || \
266
38.2k
  (ARCH_ARM && (defined(__ARM_NEON) || defined(__APPLE__) || defined(_WIN32))) \
267
38.2k
))
268
38.2k
    c->itxfm_add[TX_4X4][WHT_WHT] = inv_txfm_add_wht_wht_4x4_c;
269
38.2k
#endif
270
38.2k
    assign_itx_all_fn84( 4,  4, );
271
38.2k
    assign_itx_all_fn84( 4,  8, R);
272
38.2k
    assign_itx_all_fn84( 4, 16, R);
273
38.2k
    assign_itx_all_fn84( 8,  4, R);
274
38.2k
    assign_itx_all_fn84( 8,  8, );
275
38.2k
    assign_itx_all_fn84( 8, 16, R);
276
38.2k
    assign_itx_all_fn32( 8, 32, R);
277
38.2k
    assign_itx_all_fn84(16,  4, R);
278
38.2k
    assign_itx_all_fn84(16,  8, R);
279
38.2k
    assign_itx_all_fn16(16, 16, );
280
38.2k
    assign_itx_all_fn32(16, 32, R);
281
38.2k
    assign_itx_all_fn64(16, 64, R);
282
38.2k
    assign_itx_all_fn32(32,  8, R);
283
38.2k
    assign_itx_all_fn32(32, 16, R);
284
38.2k
    assign_itx_all_fn32(32, 32, );
285
38.2k
    assign_itx_all_fn64(32, 64, R);
286
38.2k
    assign_itx_all_fn64(64, 16, R);
287
38.2k
    assign_itx_all_fn64(64, 32, R);
288
38.2k
    assign_itx_all_fn64(64, 64, );
289
290
38.2k
    int all_simd = 0;
291
#if HAVE_ASM
292
#if ARCH_AARCH64 || ARCH_ARM
293
    itx_dsp_init_arm(c, bpc, &all_simd);
294
#endif
295
#if ARCH_LOONGARCH64
296
    itx_dsp_init_loongarch(c, bpc);
297
#endif
298
#if ARCH_PPC64LE
299
    itx_dsp_init_ppc(c, bpc);
300
#endif
301
#if ARCH_RISCV
302
    itx_dsp_init_riscv(c, bpc);
303
#endif
304
#if ARCH_X86
305
    itx_dsp_init_x86(c, bpc, &all_simd);
306
#endif
307
#endif
308
309
38.2k
    if (!all_simd)
310
38.2k
        dav1d_init_last_nonzero_col_from_eob_tables();
311
38.2k
}
dav1d_itx_dsp_init_8bpc
Line
Count
Source
220
16.4k
COLD void bitfn(dav1d_itx_dsp_init)(Dav1dInvTxfmDSPContext *const c, int bpc) {
221
16.4k
#define assign_itx_all_fn64(w, h, pfx) \
222
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_DCT  ] = \
223
16.4k
        inv_txfm_add_dct_dct_##w##x##h##_c
224
225
16.4k
#define assign_itx_all_fn32(w, h, pfx) \
226
16.4k
    assign_itx_all_fn64(w, h, pfx); \
227
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][IDTX] = \
228
16.4k
        inv_txfm_add_identity_identity_##w##x##h##_c
229
230
16.4k
#define assign_itx_all_fn16(w, h, pfx) \
231
16.4k
    assign_itx_all_fn32(w, h, pfx); \
232
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_ADST ] = \
233
16.4k
        inv_txfm_add_adst_dct_##w##x##h##_c; \
234
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_DCT ] = \
235
16.4k
        inv_txfm_add_dct_adst_##w##x##h##_c; \
236
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_ADST] = \
237
16.4k
        inv_txfm_add_adst_adst_##w##x##h##_c; \
238
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_FLIPADST] = \
239
16.4k
        inv_txfm_add_flipadst_adst_##w##x##h##_c; \
240
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_ADST] = \
241
16.4k
        inv_txfm_add_adst_flipadst_##w##x##h##_c; \
242
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_FLIPADST] = \
243
16.4k
        inv_txfm_add_flipadst_dct_##w##x##h##_c; \
244
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_DCT] = \
245
16.4k
        inv_txfm_add_dct_flipadst_##w##x##h##_c; \
246
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_FLIPADST] = \
247
16.4k
        inv_txfm_add_flipadst_flipadst_##w##x##h##_c; \
248
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][H_DCT] = \
249
16.4k
        inv_txfm_add_dct_identity_##w##x##h##_c; \
250
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][V_DCT] = \
251
16.4k
        inv_txfm_add_identity_dct_##w##x##h##_c
252
253
16.4k
#define assign_itx_all_fn84(w, h, pfx) \
254
16.4k
    assign_itx_all_fn16(w, h, pfx); \
255
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][H_FLIPADST] = \
256
16.4k
        inv_txfm_add_flipadst_identity_##w##x##h##_c; \
257
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][V_FLIPADST] = \
258
16.4k
        inv_txfm_add_identity_flipadst_##w##x##h##_c; \
259
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][H_ADST] = \
260
16.4k
        inv_txfm_add_adst_identity_##w##x##h##_c; \
261
16.4k
    c->itxfm_add[pfx##TX_##w##X##h][V_ADST] = \
262
16.4k
        inv_txfm_add_identity_adst_##w##x##h##_c; \
263
16.4k
264
16.4k
#if !(HAVE_ASM && TRIM_DSP_FUNCTIONS && ( \
265
16.4k
  ARCH_AARCH64 || \
266
16.4k
  (ARCH_ARM && (defined(__ARM_NEON) || defined(__APPLE__) || defined(_WIN32))) \
267
16.4k
))
268
16.4k
    c->itxfm_add[TX_4X4][WHT_WHT] = inv_txfm_add_wht_wht_4x4_c;
269
16.4k
#endif
270
16.4k
    assign_itx_all_fn84( 4,  4, );
271
16.4k
    assign_itx_all_fn84( 4,  8, R);
272
16.4k
    assign_itx_all_fn84( 4, 16, R);
273
16.4k
    assign_itx_all_fn84( 8,  4, R);
274
16.4k
    assign_itx_all_fn84( 8,  8, );
275
16.4k
    assign_itx_all_fn84( 8, 16, R);
276
16.4k
    assign_itx_all_fn32( 8, 32, R);
277
16.4k
    assign_itx_all_fn84(16,  4, R);
278
16.4k
    assign_itx_all_fn84(16,  8, R);
279
16.4k
    assign_itx_all_fn16(16, 16, );
280
16.4k
    assign_itx_all_fn32(16, 32, R);
281
16.4k
    assign_itx_all_fn64(16, 64, R);
282
16.4k
    assign_itx_all_fn32(32,  8, R);
283
16.4k
    assign_itx_all_fn32(32, 16, R);
284
16.4k
    assign_itx_all_fn32(32, 32, );
285
16.4k
    assign_itx_all_fn64(32, 64, R);
286
16.4k
    assign_itx_all_fn64(64, 16, R);
287
16.4k
    assign_itx_all_fn64(64, 32, R);
288
16.4k
    assign_itx_all_fn64(64, 64, );
289
290
16.4k
    int all_simd = 0;
291
#if HAVE_ASM
292
#if ARCH_AARCH64 || ARCH_ARM
293
    itx_dsp_init_arm(c, bpc, &all_simd);
294
#endif
295
#if ARCH_LOONGARCH64
296
    itx_dsp_init_loongarch(c, bpc);
297
#endif
298
#if ARCH_PPC64LE
299
    itx_dsp_init_ppc(c, bpc);
300
#endif
301
#if ARCH_RISCV
302
    itx_dsp_init_riscv(c, bpc);
303
#endif
304
#if ARCH_X86
305
    itx_dsp_init_x86(c, bpc, &all_simd);
306
#endif
307
#endif
308
309
16.4k
    if (!all_simd)
310
16.4k
        dav1d_init_last_nonzero_col_from_eob_tables();
311
16.4k
}
dav1d_itx_dsp_init_16bpc
Line
Count
Source
220
21.8k
COLD void bitfn(dav1d_itx_dsp_init)(Dav1dInvTxfmDSPContext *const c, int bpc) {
221
21.8k
#define assign_itx_all_fn64(w, h, pfx) \
222
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_DCT  ] = \
223
21.8k
        inv_txfm_add_dct_dct_##w##x##h##_c
224
225
21.8k
#define assign_itx_all_fn32(w, h, pfx) \
226
21.8k
    assign_itx_all_fn64(w, h, pfx); \
227
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][IDTX] = \
228
21.8k
        inv_txfm_add_identity_identity_##w##x##h##_c
229
230
21.8k
#define assign_itx_all_fn16(w, h, pfx) \
231
21.8k
    assign_itx_all_fn32(w, h, pfx); \
232
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_ADST ] = \
233
21.8k
        inv_txfm_add_adst_dct_##w##x##h##_c; \
234
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_DCT ] = \
235
21.8k
        inv_txfm_add_dct_adst_##w##x##h##_c; \
236
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_ADST] = \
237
21.8k
        inv_txfm_add_adst_adst_##w##x##h##_c; \
238
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][ADST_FLIPADST] = \
239
21.8k
        inv_txfm_add_flipadst_adst_##w##x##h##_c; \
240
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_ADST] = \
241
21.8k
        inv_txfm_add_adst_flipadst_##w##x##h##_c; \
242
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][DCT_FLIPADST] = \
243
21.8k
        inv_txfm_add_flipadst_dct_##w##x##h##_c; \
244
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_DCT] = \
245
21.8k
        inv_txfm_add_dct_flipadst_##w##x##h##_c; \
246
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][FLIPADST_FLIPADST] = \
247
21.8k
        inv_txfm_add_flipadst_flipadst_##w##x##h##_c; \
248
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][H_DCT] = \
249
21.8k
        inv_txfm_add_dct_identity_##w##x##h##_c; \
250
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][V_DCT] = \
251
21.8k
        inv_txfm_add_identity_dct_##w##x##h##_c
252
253
21.8k
#define assign_itx_all_fn84(w, h, pfx) \
254
21.8k
    assign_itx_all_fn16(w, h, pfx); \
255
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][H_FLIPADST] = \
256
21.8k
        inv_txfm_add_flipadst_identity_##w##x##h##_c; \
257
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][V_FLIPADST] = \
258
21.8k
        inv_txfm_add_identity_flipadst_##w##x##h##_c; \
259
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][H_ADST] = \
260
21.8k
        inv_txfm_add_adst_identity_##w##x##h##_c; \
261
21.8k
    c->itxfm_add[pfx##TX_##w##X##h][V_ADST] = \
262
21.8k
        inv_txfm_add_identity_adst_##w##x##h##_c; \
263
21.8k
264
21.8k
#if !(HAVE_ASM && TRIM_DSP_FUNCTIONS && ( \
265
21.8k
  ARCH_AARCH64 || \
266
21.8k
  (ARCH_ARM && (defined(__ARM_NEON) || defined(__APPLE__) || defined(_WIN32))) \
267
21.8k
))
268
21.8k
    c->itxfm_add[TX_4X4][WHT_WHT] = inv_txfm_add_wht_wht_4x4_c;
269
21.8k
#endif
270
21.8k
    assign_itx_all_fn84( 4,  4, );
271
21.8k
    assign_itx_all_fn84( 4,  8, R);
272
21.8k
    assign_itx_all_fn84( 4, 16, R);
273
21.8k
    assign_itx_all_fn84( 8,  4, R);
274
21.8k
    assign_itx_all_fn84( 8,  8, );
275
21.8k
    assign_itx_all_fn84( 8, 16, R);
276
21.8k
    assign_itx_all_fn32( 8, 32, R);
277
21.8k
    assign_itx_all_fn84(16,  4, R);
278
21.8k
    assign_itx_all_fn84(16,  8, R);
279
21.8k
    assign_itx_all_fn16(16, 16, );
280
21.8k
    assign_itx_all_fn32(16, 32, R);
281
21.8k
    assign_itx_all_fn64(16, 64, R);
282
21.8k
    assign_itx_all_fn32(32,  8, R);
283
21.8k
    assign_itx_all_fn32(32, 16, R);
284
21.8k
    assign_itx_all_fn32(32, 32, );
285
21.8k
    assign_itx_all_fn64(32, 64, R);
286
21.8k
    assign_itx_all_fn64(64, 16, R);
287
21.8k
    assign_itx_all_fn64(64, 32, R);
288
21.8k
    assign_itx_all_fn64(64, 64, );
289
290
21.8k
    int all_simd = 0;
291
#if HAVE_ASM
292
#if ARCH_AARCH64 || ARCH_ARM
293
    itx_dsp_init_arm(c, bpc, &all_simd);
294
#endif
295
#if ARCH_LOONGARCH64
296
    itx_dsp_init_loongarch(c, bpc);
297
#endif
298
#if ARCH_PPC64LE
299
    itx_dsp_init_ppc(c, bpc);
300
#endif
301
#if ARCH_RISCV
302
    itx_dsp_init_riscv(c, bpc);
303
#endif
304
#if ARCH_X86
305
    itx_dsp_init_x86(c, bpc, &all_simd);
306
#endif
307
#endif
308
309
21.8k
    if (!all_simd)
310
21.8k
        dav1d_init_last_nonzero_col_from_eob_tables();
311
21.8k
}