1 // Copyright 2019 The libgav1 Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 #include "src/dsp/intrapred.h"
16
17 #include <algorithm>
18 #include <cassert>
19 #include <cstddef>
20 #include <cstdint>
21 #include <cstdlib>
22 #include <cstring>
23
24 #include "src/dsp/constants.h"
25 #include "src/dsp/dsp.h"
26 #include "src/utils/common.h"
27 #include "src/utils/constants.h"
28 #include "src/utils/memory.h"
29
30 namespace libgav1 {
31 namespace dsp {
32 namespace {
33
34 template <int block_width, int block_height, typename Pixel>
35 struct IntraPredFuncs_C {
36 IntraPredFuncs_C() = delete;
37
38 static void DcTop(void* dest, ptrdiff_t stride, const void* top_row,
39 const void* left_column);
40 static void DcLeft(void* dest, ptrdiff_t stride, const void* top_row,
41 const void* left_column);
42 static void Dc(void* dest, ptrdiff_t stride, const void* top_row,
43 const void* left_column);
44 static void Vertical(void* dest, ptrdiff_t stride, const void* top_row,
45 const void* left_column);
46 static void Horizontal(void* dest, ptrdiff_t stride, const void* top_row,
47 const void* left_column);
48 static void Paeth(void* dest, ptrdiff_t stride, const void* top_row,
49 const void* left_column);
50 };
51
52 // Intra-predictors that require bitdepth.
53 template <int block_width, int block_height, int bitdepth, typename Pixel>
54 struct IntraPredBppFuncs_C {
55 IntraPredBppFuncs_C() = delete;
56
57 static void DcFill(void* dest, ptrdiff_t stride, const void* top_row,
58 const void* left_column);
59 };
60
61 //------------------------------------------------------------------------------
62 // IntraPredFuncs_C::DcPred
63
64 template <int block_width, int block_height, typename Pixel>
DcTop(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void * LIBGAV1_RESTRICT const top_row,const void *)65 void IntraPredFuncs_C<block_width, block_height, Pixel>::DcTop(
66 void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
67 const void* LIBGAV1_RESTRICT const top_row, const void* /*left_column*/) {
68 int sum = block_width >> 1; // rounder
69 const auto* const top = static_cast<const Pixel*>(top_row);
70 for (int x = 0; x < block_width; ++x) sum += top[x];
71 const int dc = sum >> FloorLog2(block_width);
72
73 auto* dst = static_cast<Pixel*>(dest);
74 stride /= sizeof(Pixel);
75 for (int y = 0; y < block_height; ++y) {
76 Memset(dst, dc, block_width);
77 dst += stride;
78 }
79 }
80
81 template <int block_width, int block_height, typename Pixel>
DcLeft(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void *,const void * LIBGAV1_RESTRICT const left_column)82 void IntraPredFuncs_C<block_width, block_height, Pixel>::DcLeft(
83 void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
84 const void* /*top_row*/, const void* LIBGAV1_RESTRICT const left_column) {
85 int sum = block_height >> 1; // rounder
86 const auto* const left = static_cast<const Pixel*>(left_column);
87 for (int y = 0; y < block_height; ++y) sum += left[y];
88 const int dc = sum >> FloorLog2(block_height);
89
90 auto* dst = static_cast<Pixel*>(dest);
91 stride /= sizeof(Pixel);
92 for (int y = 0; y < block_height; ++y) {
93 Memset(dst, dc, block_width);
94 dst += stride;
95 }
96 }
97
98 // Note for square blocks the divide in the Dc() function reduces to a shift.
99 // For rectangular block sizes the following multipliers can be used with the
100 // corresponding shifts.
101 // 8-bit
102 // 1:2 (e.g,, 4x8): scale = 0x5556
103 // 1:4 (e.g., 4x16): scale = 0x3334
104 // final_descale = 16
105 // 10/12-bit
106 // 1:2: scale = 0xaaab
107 // 1:4: scale = 0x6667
108 // final_descale = 17
109 // Note these may be halved to the values used in 8-bit in all cases except
110 // when bitdepth == 12 and block_width + block_height is divisible by 5 (as
111 // opposed to 3).
112 //
113 // The calculation becomes:
114 // (dc_sum >> intermediate_descale) * scale) >> final_descale
115 // where intermediate_descale is:
116 // sum = block_width + block_height
117 // intermediate_descale =
118 // (sum <= 20) ? 2 : (sum <= 40) ? 3 : (sum <= 80) ? 4 : 5
119 //
120 // The constants (multiplier and shifts) for a given block size are obtained
121 // as follows:
122 // - Let sum = block width + block height
123 // - Shift 'sum' right until we reach an odd number
124 // - Let the number of shifts for that block size be called 'intermediate_scale'
125 // and let the odd number be 'd' (d has only 2 possible values: d = 3 for a
126 // 1:2 rectangular block and d = 5 for a 1:4 rectangular block).
127 // - Find multipliers by dividing by 'd' using "Algorithm 1" in:
128 // http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1467632
129 // by ensuring that m + n = 16 (in that algorithm). This ensures that our 2nd
130 // shift will be 16, regardless of the block size.
131 // TODO(jzern): the base implementation could be updated to use this method.
132
133 template <int block_width, int block_height, typename Pixel>
Dc(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void * LIBGAV1_RESTRICT const top_row,const void * LIBGAV1_RESTRICT const left_column)134 void IntraPredFuncs_C<block_width, block_height, Pixel>::Dc(
135 void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
136 const void* LIBGAV1_RESTRICT const top_row,
137 const void* LIBGAV1_RESTRICT const left_column) {
138 const int divisor = block_width + block_height;
139 int sum = divisor >> 1; // rounder
140
141 const auto* const top = static_cast<const Pixel*>(top_row);
142 const auto* const left = static_cast<const Pixel*>(left_column);
143 for (int x = 0; x < block_width; ++x) sum += top[x];
144 for (int y = 0; y < block_height; ++y) sum += left[y];
145
146 const int dc = sum / divisor;
147
148 auto* dst = static_cast<Pixel*>(dest);
149 stride /= sizeof(Pixel);
150 for (int y = 0; y < block_height; ++y) {
151 Memset(dst, dc, block_width);
152 dst += stride;
153 }
154 }
155
156 //------------------------------------------------------------------------------
157 // IntraPredFuncs_C directional predictors
158
159 // IntraPredFuncs_C::Vertical -- apply top row vertically
160 template <int block_width, int block_height, typename Pixel>
Vertical(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void * LIBGAV1_RESTRICT const top_row,const void *)161 void IntraPredFuncs_C<block_width, block_height, Pixel>::Vertical(
162 void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
163 const void* LIBGAV1_RESTRICT const top_row, const void* /*left_column*/) {
164 auto* dst = static_cast<uint8_t*>(dest);
165 for (int y = 0; y < block_height; ++y) {
166 memcpy(dst, top_row, block_width * sizeof(Pixel));
167 dst += stride;
168 }
169 }
170
171 // IntraPredFuncs_C::Horizontal -- apply left column horizontally
172 template <int block_width, int block_height, typename Pixel>
Horizontal(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void *,const void * LIBGAV1_RESTRICT const left_column)173 void IntraPredFuncs_C<block_width, block_height, Pixel>::Horizontal(
174 void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
175 const void* /*top_row*/, const void* LIBGAV1_RESTRICT const left_column) {
176 const auto* const left = static_cast<const Pixel*>(left_column);
177 auto* dst = static_cast<Pixel*>(dest);
178 stride /= sizeof(Pixel);
179 for (int y = 0; y < block_height; ++y) {
180 Memset(dst, left[y], block_width);
181 dst += stride;
182 }
183 }
184
185 // IntraPredFuncs_C::Paeth
186 template <int block_width, int block_height, typename Pixel>
Paeth(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void * LIBGAV1_RESTRICT const top_row,const void * LIBGAV1_RESTRICT const left_column)187 void IntraPredFuncs_C<block_width, block_height, Pixel>::Paeth(
188 void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
189 const void* LIBGAV1_RESTRICT const top_row,
190 const void* LIBGAV1_RESTRICT const left_column) {
191 const auto* const top = static_cast<const Pixel*>(top_row);
192 const auto* const left = static_cast<const Pixel*>(left_column);
193 const Pixel top_left = top[-1];
194 const int top_left_x2 = top_left + top_left;
195 auto* dst = static_cast<Pixel*>(dest);
196 stride /= sizeof(Pixel);
197
198 for (int y = 0; y < block_height; ++y) {
199 const int left_pixel = left[y];
200 for (int x = 0; x < block_width; ++x) {
201 // The Paeth filter selects the value closest to:
202 // top[x] + left[y] - top_left
203 // To calculate the absolute distance for the left value this would be:
204 // abs((top[x] + left[y] - top_left) - left[y])
205 // or, because left[y] cancels out:
206 // abs(top[x] - top_left)
207 const int left_dist = std::abs(top[x] - top_left);
208 const int top_dist = std::abs(left_pixel - top_left);
209 const int top_left_dist = std::abs(top[x] + left_pixel - top_left_x2);
210
211 // Select the closest value to the initial estimate of 'T + L - TL'.
212 if (left_dist <= top_dist && left_dist <= top_left_dist) {
213 dst[x] = left_pixel;
214 } else if (top_dist <= top_left_dist) {
215 dst[x] = top[x];
216 } else {
217 dst[x] = top_left;
218 }
219 }
220 dst += stride;
221 }
222 }
223
224 //------------------------------------------------------------------------------
225 // IntraPredBppFuncs_C
226 template <int fill, typename Pixel>
DcFill_C(void * const dest,ptrdiff_t stride,const int block_width,const int block_height)227 inline void DcFill_C(void* const dest, ptrdiff_t stride, const int block_width,
228 const int block_height) {
229 static_assert(sizeof(Pixel) == 1 || sizeof(Pixel) == 2,
230 "Only 1 & 2 byte pixels are supported");
231
232 auto* dst = static_cast<Pixel*>(dest);
233 stride /= sizeof(Pixel);
234 for (int y = 0; y < block_height; ++y) {
235 Memset(dst, fill, block_width);
236 dst += stride;
237 }
238 }
239
240 template <int block_width, int block_height, int bitdepth, typename Pixel>
DcFill(void * const dest,ptrdiff_t stride,const void *,const void *)241 void IntraPredBppFuncs_C<block_width, block_height, bitdepth, Pixel>::DcFill(
242 void* const dest, ptrdiff_t stride, const void* /*top_row*/,
243 const void* /*left_column*/) {
244 DcFill_C<0x80 << (bitdepth - 8), Pixel>(dest, stride, block_width,
245 block_height);
246 }
247
248 // -----------------------------------------------------------------------------
249
250 template <typename Pixel>
251 struct IntraPredDefs {
252 IntraPredDefs() = delete;
253
254 using _4x4 = IntraPredFuncs_C<4, 4, Pixel>;
255 using _4x8 = IntraPredFuncs_C<4, 8, Pixel>;
256 using _4x16 = IntraPredFuncs_C<4, 16, Pixel>;
257 using _8x4 = IntraPredFuncs_C<8, 4, Pixel>;
258 using _8x8 = IntraPredFuncs_C<8, 8, Pixel>;
259 using _8x16 = IntraPredFuncs_C<8, 16, Pixel>;
260 using _8x32 = IntraPredFuncs_C<8, 32, Pixel>;
261 using _16x4 = IntraPredFuncs_C<16, 4, Pixel>;
262 using _16x8 = IntraPredFuncs_C<16, 8, Pixel>;
263 using _16x16 = IntraPredFuncs_C<16, 16, Pixel>;
264 using _16x32 = IntraPredFuncs_C<16, 32, Pixel>;
265 using _16x64 = IntraPredFuncs_C<16, 64, Pixel>;
266 using _32x8 = IntraPredFuncs_C<32, 8, Pixel>;
267 using _32x16 = IntraPredFuncs_C<32, 16, Pixel>;
268 using _32x32 = IntraPredFuncs_C<32, 32, Pixel>;
269 using _32x64 = IntraPredFuncs_C<32, 64, Pixel>;
270 using _64x16 = IntraPredFuncs_C<64, 16, Pixel>;
271 using _64x32 = IntraPredFuncs_C<64, 32, Pixel>;
272 using _64x64 = IntraPredFuncs_C<64, 64, Pixel>;
273 };
274
275 template <int bitdepth, typename Pixel>
276 struct IntraPredBppDefs {
277 IntraPredBppDefs() = delete;
278
279 using _4x4 = IntraPredBppFuncs_C<4, 4, bitdepth, Pixel>;
280 using _4x8 = IntraPredBppFuncs_C<4, 8, bitdepth, Pixel>;
281 using _4x16 = IntraPredBppFuncs_C<4, 16, bitdepth, Pixel>;
282 using _8x4 = IntraPredBppFuncs_C<8, 4, bitdepth, Pixel>;
283 using _8x8 = IntraPredBppFuncs_C<8, 8, bitdepth, Pixel>;
284 using _8x16 = IntraPredBppFuncs_C<8, 16, bitdepth, Pixel>;
285 using _8x32 = IntraPredBppFuncs_C<8, 32, bitdepth, Pixel>;
286 using _16x4 = IntraPredBppFuncs_C<16, 4, bitdepth, Pixel>;
287 using _16x8 = IntraPredBppFuncs_C<16, 8, bitdepth, Pixel>;
288 using _16x16 = IntraPredBppFuncs_C<16, 16, bitdepth, Pixel>;
289 using _16x32 = IntraPredBppFuncs_C<16, 32, bitdepth, Pixel>;
290 using _16x64 = IntraPredBppFuncs_C<16, 64, bitdepth, Pixel>;
291 using _32x8 = IntraPredBppFuncs_C<32, 8, bitdepth, Pixel>;
292 using _32x16 = IntraPredBppFuncs_C<32, 16, bitdepth, Pixel>;
293 using _32x32 = IntraPredBppFuncs_C<32, 32, bitdepth, Pixel>;
294 using _32x64 = IntraPredBppFuncs_C<32, 64, bitdepth, Pixel>;
295 using _64x16 = IntraPredBppFuncs_C<64, 16, bitdepth, Pixel>;
296 using _64x32 = IntraPredBppFuncs_C<64, 32, bitdepth, Pixel>;
297 using _64x64 = IntraPredBppFuncs_C<64, 64, bitdepth, Pixel>;
298 };
299
300 using Defs = IntraPredDefs<uint8_t>;
301 using Defs8bpp = IntraPredBppDefs<8, uint8_t>;
302
303 // Initializes dsp entries for kTransformSize|W|x|H| from |DEFS|/|DEFSBPP| of
304 // the same size.
305 #define INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, W, H) \
306 dsp->intra_predictors[kTransformSize##W##x##H][kIntraPredictorDcFill] = \
307 DEFSBPP::_##W##x##H::DcFill; \
308 dsp->intra_predictors[kTransformSize##W##x##H][kIntraPredictorDcTop] = \
309 DEFS::_##W##x##H::DcTop; \
310 dsp->intra_predictors[kTransformSize##W##x##H][kIntraPredictorDcLeft] = \
311 DEFS::_##W##x##H::DcLeft; \
312 dsp->intra_predictors[kTransformSize##W##x##H][kIntraPredictorDc] = \
313 DEFS::_##W##x##H::Dc; \
314 dsp->intra_predictors[kTransformSize##W##x##H][kIntraPredictorVertical] = \
315 DEFS::_##W##x##H::Vertical; \
316 dsp->intra_predictors[kTransformSize##W##x##H][kIntraPredictorHorizontal] = \
317 DEFS::_##W##x##H::Horizontal; \
318 dsp->intra_predictors[kTransformSize##W##x##H][kIntraPredictorPaeth] = \
319 DEFS::_##W##x##H::Paeth
320
321 #define INIT_INTRAPREDICTORS(DEFS, DEFSBPP) \
322 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 4, 4); \
323 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 4, 8); \
324 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 4, 16); \
325 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 8, 4); \
326 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 8, 8); \
327 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 8, 16); \
328 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 8, 32); \
329 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 16, 4); \
330 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 16, 8); \
331 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 16, 16); \
332 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 16, 32); \
333 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 16, 64); \
334 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 32, 8); \
335 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 32, 16); \
336 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 32, 32); \
337 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 32, 64); \
338 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 64, 16); \
339 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 64, 32); \
340 INIT_INTRAPREDICTORS_WxH(DEFS, DEFSBPP, 64, 64)
341
Init8bpp()342 void Init8bpp() {
343 Dsp* const dsp = dsp_internal::GetWritableDspTable(8);
344 assert(dsp != nullptr);
345 #if LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
346 INIT_INTRAPREDICTORS(Defs, Defs8bpp);
347 #else // !LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
348 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDcFill
349 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcFill] =
350 Defs8bpp::_4x4::DcFill;
351 #endif
352 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDcTop
353 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcTop] =
354 Defs::_4x4::DcTop;
355 #endif
356 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDcLeft
357 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcLeft] =
358 Defs::_4x4::DcLeft;
359 #endif
360 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDc
361 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDc] = Defs::_4x4::Dc;
362 #endif
363 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorVertical
364 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorVertical] =
365 Defs::_4x4::Vertical;
366 #endif
367 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorHorizontal
368 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorHorizontal] =
369 Defs::_4x4::Horizontal;
370 #endif
371 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorPaeth
372 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorPaeth] =
373 Defs::_4x4::Paeth;
374 #endif
375 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDcFill
376 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcFill] =
377 Defs8bpp::_4x8::DcFill;
378 #endif
379 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDcTop
380 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcTop] =
381 Defs::_4x8::DcTop;
382 #endif
383 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDcLeft
384 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcLeft] =
385 Defs::_4x8::DcLeft;
386 #endif
387 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDc
388 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDc] = Defs::_4x8::Dc;
389 #endif
390 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorVertical
391 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorVertical] =
392 Defs::_4x8::Vertical;
393 #endif
394 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorHorizontal
395 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorHorizontal] =
396 Defs::_4x8::Horizontal;
397 #endif
398 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorPaeth
399 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorPaeth] =
400 Defs::_4x8::Paeth;
401 #endif
402 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDcFill
403 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcFill] =
404 Defs8bpp::_4x16::DcFill;
405 #endif
406 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDcTop
407 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcTop] =
408 Defs::_4x16::DcTop;
409 #endif
410 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDcLeft
411 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcLeft] =
412 Defs::_4x16::DcLeft;
413 #endif
414 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDc
415 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDc] =
416 Defs::_4x16::Dc;
417 #endif
418 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorVertical
419 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorVertical] =
420 Defs::_4x16::Vertical;
421 #endif
422 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorHorizontal
423 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorHorizontal] =
424 Defs::_4x16::Horizontal;
425 #endif
426 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorPaeth
427 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorPaeth] =
428 Defs::_4x16::Paeth;
429 #endif
430 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDcFill
431 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcFill] =
432 Defs8bpp::_8x4::DcFill;
433 #endif
434 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDcTop
435 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcTop] =
436 Defs::_8x4::DcTop;
437 #endif
438 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDcLeft
439 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcLeft] =
440 Defs::_8x4::DcLeft;
441 #endif
442 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDc
443 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDc] = Defs::_8x4::Dc;
444 #endif
445 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorVertical
446 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorVertical] =
447 Defs::_8x4::Vertical;
448 #endif
449 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorHorizontal
450 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorHorizontal] =
451 Defs::_8x4::Horizontal;
452 #endif
453 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorPaeth
454 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorPaeth] =
455 Defs::_8x4::Paeth;
456 #endif
457 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDcFill
458 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcFill] =
459 Defs8bpp::_8x8::DcFill;
460 #endif
461 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDcTop
462 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcTop] =
463 Defs::_8x8::DcTop;
464 #endif
465 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDcLeft
466 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcLeft] =
467 Defs::_8x8::DcLeft;
468 #endif
469 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDc
470 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDc] = Defs::_8x8::Dc;
471 #endif
472 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorVertical
473 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorVertical] =
474 Defs::_8x8::Vertical;
475 #endif
476 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorHorizontal
477 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorHorizontal] =
478 Defs::_8x8::Horizontal;
479 #endif
480 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorPaeth
481 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorPaeth] =
482 Defs::_8x8::Paeth;
483 #endif
484 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDcFill
485 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcFill] =
486 Defs8bpp::_8x16::DcFill;
487 #endif
488 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDcTop
489 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcTop] =
490 Defs::_8x16::DcTop;
491 #endif
492 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDcLeft
493 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcLeft] =
494 Defs::_8x16::DcLeft;
495 #endif
496 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDc
497 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDc] =
498 Defs::_8x16::Dc;
499 #endif
500 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorVertical
501 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorVertical] =
502 Defs::_8x16::Vertical;
503 #endif
504 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorHorizontal
505 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorHorizontal] =
506 Defs::_8x16::Horizontal;
507 #endif
508 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorPaeth
509 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorPaeth] =
510 Defs::_8x16::Paeth;
511 #endif
512 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDcFill
513 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcFill] =
514 Defs8bpp::_8x32::DcFill;
515 #endif
516 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDcTop
517 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcTop] =
518 Defs::_8x32::DcTop;
519 #endif
520 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDcLeft
521 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcLeft] =
522 Defs::_8x32::DcLeft;
523 #endif
524 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDc
525 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDc] =
526 Defs::_8x32::Dc;
527 #endif
528 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorVertical
529 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorVertical] =
530 Defs::_8x32::Vertical;
531 #endif
532 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorHorizontal
533 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorHorizontal] =
534 Defs::_8x32::Horizontal;
535 #endif
536 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorPaeth
537 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorPaeth] =
538 Defs::_8x32::Paeth;
539 #endif
540 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDcFill
541 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcFill] =
542 Defs8bpp::_16x4::DcFill;
543 #endif
544 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDcTop
545 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcTop] =
546 Defs::_16x4::DcTop;
547 #endif
548 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDcLeft
549 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcLeft] =
550 Defs::_16x4::DcLeft;
551 #endif
552 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDc
553 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDc] =
554 Defs::_16x4::Dc;
555 #endif
556 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorVertical
557 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorVertical] =
558 Defs::_16x4::Vertical;
559 #endif
560 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorHorizontal
561 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorHorizontal] =
562 Defs::_16x4::Horizontal;
563 #endif
564 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorPaeth
565 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorPaeth] =
566 Defs::_16x4::Paeth;
567 #endif
568 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDcFill
569 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcFill] =
570 Defs8bpp::_16x8::DcFill;
571 #endif
572 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDcTop
573 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcTop] =
574 Defs::_16x8::DcTop;
575 #endif
576 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDcLeft
577 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcLeft] =
578 Defs::_16x8::DcLeft;
579 #endif
580 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDc
581 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDc] =
582 Defs::_16x8::Dc;
583 #endif
584 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorVertical
585 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorVertical] =
586 Defs::_16x8::Vertical;
587 #endif
588 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorHorizontal
589 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorHorizontal] =
590 Defs::_16x8::Horizontal;
591 #endif
592 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorPaeth
593 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorPaeth] =
594 Defs::_16x8::Paeth;
595 #endif
596 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDcFill
597 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcFill] =
598 Defs8bpp::_16x16::DcFill;
599 #endif
600 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDcTop
601 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcTop] =
602 Defs::_16x16::DcTop;
603 #endif
604 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDcLeft
605 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcLeft] =
606 Defs::_16x16::DcLeft;
607 #endif
608 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDc
609 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDc] =
610 Defs::_16x16::Dc;
611 #endif
612 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorVertical
613 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorVertical] =
614 Defs::_16x16::Vertical;
615 #endif
616 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorHorizontal
617 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorHorizontal] =
618 Defs::_16x16::Horizontal;
619 #endif
620 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorPaeth
621 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorPaeth] =
622 Defs::_16x16::Paeth;
623 #endif
624 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDcFill
625 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcFill] =
626 Defs8bpp::_16x32::DcFill;
627 #endif
628 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDcTop
629 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcTop] =
630 Defs::_16x32::DcTop;
631 #endif
632 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDcLeft
633 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcLeft] =
634 Defs::_16x32::DcLeft;
635 #endif
636 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDc
637 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDc] =
638 Defs::_16x32::Dc;
639 #endif
640 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorVertical
641 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorVertical] =
642 Defs::_16x32::Vertical;
643 #endif
644 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorHorizontal
645 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorHorizontal] =
646 Defs::_16x32::Horizontal;
647 #endif
648 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorPaeth
649 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorPaeth] =
650 Defs::_16x32::Paeth;
651 #endif
652 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDcFill
653 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcFill] =
654 Defs8bpp::_16x64::DcFill;
655 #endif
656 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDcTop
657 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcTop] =
658 Defs::_16x64::DcTop;
659 #endif
660 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDcLeft
661 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcLeft] =
662 Defs::_16x64::DcLeft;
663 #endif
664 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDc
665 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDc] =
666 Defs::_16x64::Dc;
667 #endif
668 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorVertical
669 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorVertical] =
670 Defs::_16x64::Vertical;
671 #endif
672 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorHorizontal
673 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorHorizontal] =
674 Defs::_16x64::Horizontal;
675 #endif
676 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorPaeth
677 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorPaeth] =
678 Defs::_16x64::Paeth;
679 #endif
680 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDcFill
681 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcFill] =
682 Defs8bpp::_32x8::DcFill;
683 #endif
684 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDcTop
685 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcTop] =
686 Defs::_32x8::DcTop;
687 #endif
688 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDcLeft
689 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcLeft] =
690 Defs::_32x8::DcLeft;
691 #endif
692 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDc
693 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDc] =
694 Defs::_32x8::Dc;
695 #endif
696 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorVertical
697 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorVertical] =
698 Defs::_32x8::Vertical;
699 #endif
700 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorHorizontal
701 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorHorizontal] =
702 Defs::_32x8::Horizontal;
703 #endif
704 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorPaeth
705 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorPaeth] =
706 Defs::_32x8::Paeth;
707 #endif
708 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDcFill
709 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcFill] =
710 Defs8bpp::_32x16::DcFill;
711 #endif
712 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDcTop
713 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcTop] =
714 Defs::_32x16::DcTop;
715 #endif
716 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDcLeft
717 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcLeft] =
718 Defs::_32x16::DcLeft;
719 #endif
720 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDc
721 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDc] =
722 Defs::_32x16::Dc;
723 #endif
724 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorVertical
725 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorVertical] =
726 Defs::_32x16::Vertical;
727 #endif
728 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorHorizontal
729 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorHorizontal] =
730 Defs::_32x16::Horizontal;
731 #endif
732 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorPaeth
733 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorPaeth] =
734 Defs::_32x16::Paeth;
735 #endif
736 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDcFill
737 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcFill] =
738 Defs8bpp::_32x32::DcFill;
739 #endif
740 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDcTop
741 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcTop] =
742 Defs::_32x32::DcTop;
743 #endif
744 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDcLeft
745 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcLeft] =
746 Defs::_32x32::DcLeft;
747 #endif
748 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDc
749 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDc] =
750 Defs::_32x32::Dc;
751 #endif
752 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorVertical
753 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorVertical] =
754 Defs::_32x32::Vertical;
755 #endif
756 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorHorizontal
757 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorHorizontal] =
758 Defs::_32x32::Horizontal;
759 #endif
760 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorPaeth
761 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorPaeth] =
762 Defs::_32x32::Paeth;
763 #endif
764 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDcFill
765 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcFill] =
766 Defs8bpp::_32x64::DcFill;
767 #endif
768 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDcTop
769 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcTop] =
770 Defs::_32x64::DcTop;
771 #endif
772 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDcLeft
773 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcLeft] =
774 Defs::_32x64::DcLeft;
775 #endif
776 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDc
777 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDc] =
778 Defs::_32x64::Dc;
779 #endif
780 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorVertical
781 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorVertical] =
782 Defs::_32x64::Vertical;
783 #endif
784 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorHorizontal
785 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorHorizontal] =
786 Defs::_32x64::Horizontal;
787 #endif
788 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorPaeth
789 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorPaeth] =
790 Defs::_32x64::Paeth;
791 #endif
792 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDcFill
793 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcFill] =
794 Defs8bpp::_64x16::DcFill;
795 #endif
796 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDcTop
797 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcTop] =
798 Defs::_64x16::DcTop;
799 #endif
800 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDcLeft
801 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcLeft] =
802 Defs::_64x16::DcLeft;
803 #endif
804 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDc
805 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDc] =
806 Defs::_64x16::Dc;
807 #endif
808 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorVertical
809 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorVertical] =
810 Defs::_64x16::Vertical;
811 #endif
812 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorHorizontal
813 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorHorizontal] =
814 Defs::_64x16::Horizontal;
815 #endif
816 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorPaeth
817 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorPaeth] =
818 Defs::_64x16::Paeth;
819 #endif
820 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDcFill
821 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcFill] =
822 Defs8bpp::_64x32::DcFill;
823 #endif
824 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDcTop
825 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcTop] =
826 Defs::_64x32::DcTop;
827 #endif
828 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDcLeft
829 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcLeft] =
830 Defs::_64x32::DcLeft;
831 #endif
832 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDc
833 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDc] =
834 Defs::_64x32::Dc;
835 #endif
836 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorVertical
837 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorVertical] =
838 Defs::_64x32::Vertical;
839 #endif
840 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorHorizontal
841 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorHorizontal] =
842 Defs::_64x32::Horizontal;
843 #endif
844 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorPaeth
845 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorPaeth] =
846 Defs::_64x32::Paeth;
847 #endif
848 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDcFill
849 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcFill] =
850 Defs8bpp::_64x64::DcFill;
851 #endif
852 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDcTop
853 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcTop] =
854 Defs::_64x64::DcTop;
855 #endif
856 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDcLeft
857 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcLeft] =
858 Defs::_64x64::DcLeft;
859 #endif
860 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDc
861 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDc] =
862 Defs::_64x64::Dc;
863 #endif
864 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorVertical
865 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorVertical] =
866 Defs::_64x64::Vertical;
867 #endif
868 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorHorizontal
869 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorHorizontal] =
870 Defs::_64x64::Horizontal;
871 #endif
872 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorPaeth
873 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorPaeth] =
874 Defs::_64x64::Paeth;
875 #endif
876 #endif // LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
877 } // NOLINT(readability/fn_size)
878
879 #if LIBGAV1_MAX_BITDEPTH >= 10
880 using DefsHbd = IntraPredDefs<uint16_t>;
881 using Defs10bpp = IntraPredBppDefs<10, uint16_t>;
882
Init10bpp()883 void Init10bpp() {
884 Dsp* const dsp = dsp_internal::GetWritableDspTable(10);
885 assert(dsp != nullptr);
886 #if LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
887 INIT_INTRAPREDICTORS(DefsHbd, Defs10bpp);
888 #else // !LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
889 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDcFill
890 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcFill] =
891 Defs10bpp::_4x4::DcFill;
892 #endif
893 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDcTop
894 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcTop] =
895 DefsHbd::_4x4::DcTop;
896 #endif
897 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDcLeft
898 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcLeft] =
899 DefsHbd::_4x4::DcLeft;
900 #endif
901 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDc
902 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDc] =
903 DefsHbd::_4x4::Dc;
904 #endif
905 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorVertical
906 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorVertical] =
907 DefsHbd::_4x4::Vertical;
908 #endif
909 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorHorizontal
910 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorHorizontal] =
911 DefsHbd::_4x4::Horizontal;
912 #endif
913 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorPaeth
914 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorPaeth] =
915 DefsHbd::_4x4::Paeth;
916 #endif
917 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorDcFill
918 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcFill] =
919 Defs10bpp::_4x8::DcFill;
920 #endif
921 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorDcTop
922 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcTop] =
923 DefsHbd::_4x8::DcTop;
924 #endif
925 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorDcLeft
926 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcLeft] =
927 DefsHbd::_4x8::DcLeft;
928 #endif
929 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorDc
930 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDc] =
931 DefsHbd::_4x8::Dc;
932 #endif
933 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorVertical
934 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorVertical] =
935 DefsHbd::_4x8::Vertical;
936 #endif
937 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorHorizontal
938 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorHorizontal] =
939 DefsHbd::_4x8::Horizontal;
940 #endif
941 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorPaeth
942 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorPaeth] =
943 DefsHbd::_4x8::Paeth;
944 #endif
945 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorDcFill
946 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcFill] =
947 Defs10bpp::_4x16::DcFill;
948 #endif
949 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorDcTop
950 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcTop] =
951 DefsHbd::_4x16::DcTop;
952 #endif
953 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorDcLeft
954 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcLeft] =
955 DefsHbd::_4x16::DcLeft;
956 #endif
957 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorDc
958 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDc] =
959 DefsHbd::_4x16::Dc;
960 #endif
961 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorVertical
962 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorVertical] =
963 DefsHbd::_4x16::Vertical;
964 #endif
965 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorHorizontal
966 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorHorizontal] =
967 DefsHbd::_4x16::Horizontal;
968 #endif
969 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorPaeth
970 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorPaeth] =
971 DefsHbd::_4x16::Paeth;
972 #endif
973 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorDcFill
974 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcFill] =
975 Defs10bpp::_8x4::DcFill;
976 #endif
977 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorDcTop
978 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcTop] =
979 DefsHbd::_8x4::DcTop;
980 #endif
981 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorDcLeft
982 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcLeft] =
983 DefsHbd::_8x4::DcLeft;
984 #endif
985 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorDc
986 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDc] =
987 DefsHbd::_8x4::Dc;
988 #endif
989 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorVertical
990 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorVertical] =
991 DefsHbd::_8x4::Vertical;
992 #endif
993 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorHorizontal
994 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorHorizontal] =
995 DefsHbd::_8x4::Horizontal;
996 #endif
997 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorPaeth
998 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorPaeth] =
999 DefsHbd::_8x4::Paeth;
1000 #endif
1001 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorDcFill
1002 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcFill] =
1003 Defs10bpp::_8x8::DcFill;
1004 #endif
1005 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorDcTop
1006 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcTop] =
1007 DefsHbd::_8x8::DcTop;
1008 #endif
1009 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorDcLeft
1010 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcLeft] =
1011 DefsHbd::_8x8::DcLeft;
1012 #endif
1013 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorDc
1014 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDc] =
1015 DefsHbd::_8x8::Dc;
1016 #endif
1017 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorVertical
1018 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorVertical] =
1019 DefsHbd::_8x8::Vertical;
1020 #endif
1021 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorHorizontal
1022 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorHorizontal] =
1023 DefsHbd::_8x8::Horizontal;
1024 #endif
1025 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorPaeth
1026 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorPaeth] =
1027 DefsHbd::_8x8::Paeth;
1028 #endif
1029 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorDcFill
1030 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcFill] =
1031 Defs10bpp::_8x16::DcFill;
1032 #endif
1033 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorDcTop
1034 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcTop] =
1035 DefsHbd::_8x16::DcTop;
1036 #endif
1037 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorDcLeft
1038 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcLeft] =
1039 DefsHbd::_8x16::DcLeft;
1040 #endif
1041 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorDc
1042 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDc] =
1043 DefsHbd::_8x16::Dc;
1044 #endif
1045 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorVertical
1046 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorVertical] =
1047 DefsHbd::_8x16::Vertical;
1048 #endif
1049 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorHorizontal
1050 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorHorizontal] =
1051 DefsHbd::_8x16::Horizontal;
1052 #endif
1053 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorPaeth
1054 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorPaeth] =
1055 DefsHbd::_8x16::Paeth;
1056 #endif
1057 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorDcFill
1058 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcFill] =
1059 Defs10bpp::_8x32::DcFill;
1060 #endif
1061 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorDcTop
1062 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcTop] =
1063 DefsHbd::_8x32::DcTop;
1064 #endif
1065 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorDcLeft
1066 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcLeft] =
1067 DefsHbd::_8x32::DcLeft;
1068 #endif
1069 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorDc
1070 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDc] =
1071 DefsHbd::_8x32::Dc;
1072 #endif
1073 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorVertical
1074 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorVertical] =
1075 DefsHbd::_8x32::Vertical;
1076 #endif
1077 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorHorizontal
1078 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorHorizontal] =
1079 DefsHbd::_8x32::Horizontal;
1080 #endif
1081 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorPaeth
1082 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorPaeth] =
1083 DefsHbd::_8x32::Paeth;
1084 #endif
1085 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorDcFill
1086 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcFill] =
1087 Defs10bpp::_16x4::DcFill;
1088 #endif
1089 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorDcTop
1090 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcTop] =
1091 DefsHbd::_16x4::DcTop;
1092 #endif
1093 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorDcLeft
1094 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcLeft] =
1095 DefsHbd::_16x4::DcLeft;
1096 #endif
1097 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorDc
1098 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDc] =
1099 DefsHbd::_16x4::Dc;
1100 #endif
1101 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorVertical
1102 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorVertical] =
1103 DefsHbd::_16x4::Vertical;
1104 #endif
1105 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorHorizontal
1106 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorHorizontal] =
1107 DefsHbd::_16x4::Horizontal;
1108 #endif
1109 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorPaeth
1110 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorPaeth] =
1111 DefsHbd::_16x4::Paeth;
1112 #endif
1113 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorDcFill
1114 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcFill] =
1115 Defs10bpp::_16x8::DcFill;
1116 #endif
1117 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorDcTop
1118 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcTop] =
1119 DefsHbd::_16x8::DcTop;
1120 #endif
1121 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorDcLeft
1122 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcLeft] =
1123 DefsHbd::_16x8::DcLeft;
1124 #endif
1125 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorDc
1126 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDc] =
1127 DefsHbd::_16x8::Dc;
1128 #endif
1129 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorVertical
1130 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorVertical] =
1131 DefsHbd::_16x8::Vertical;
1132 #endif
1133 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorHorizontal
1134 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorHorizontal] =
1135 DefsHbd::_16x8::Horizontal;
1136 #endif
1137 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorPaeth
1138 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorPaeth] =
1139 DefsHbd::_16x8::Paeth;
1140 #endif
1141 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorDcFill
1142 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcFill] =
1143 Defs10bpp::_16x16::DcFill;
1144 #endif
1145 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorDcTop
1146 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcTop] =
1147 DefsHbd::_16x16::DcTop;
1148 #endif
1149 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorDcLeft
1150 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcLeft] =
1151 DefsHbd::_16x16::DcLeft;
1152 #endif
1153 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorDc
1154 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDc] =
1155 DefsHbd::_16x16::Dc;
1156 #endif
1157 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorVertical
1158 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorVertical] =
1159 DefsHbd::_16x16::Vertical;
1160 #endif
1161 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorHorizontal
1162 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorHorizontal] =
1163 DefsHbd::_16x16::Horizontal;
1164 #endif
1165 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorPaeth
1166 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorPaeth] =
1167 DefsHbd::_16x16::Paeth;
1168 #endif
1169 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorDcFill
1170 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcFill] =
1171 Defs10bpp::_16x32::DcFill;
1172 #endif
1173 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorDcTop
1174 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcTop] =
1175 DefsHbd::_16x32::DcTop;
1176 #endif
1177 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorDcLeft
1178 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcLeft] =
1179 DefsHbd::_16x32::DcLeft;
1180 #endif
1181 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorDc
1182 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDc] =
1183 DefsHbd::_16x32::Dc;
1184 #endif
1185 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorVertical
1186 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorVertical] =
1187 DefsHbd::_16x32::Vertical;
1188 #endif
1189 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorHorizontal
1190 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorHorizontal] =
1191 DefsHbd::_16x32::Horizontal;
1192 #endif
1193 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorPaeth
1194 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorPaeth] =
1195 DefsHbd::_16x32::Paeth;
1196 #endif
1197 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorDcFill
1198 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcFill] =
1199 Defs10bpp::_16x64::DcFill;
1200 #endif
1201 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorDcTop
1202 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcTop] =
1203 DefsHbd::_16x64::DcTop;
1204 #endif
1205 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorDcLeft
1206 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcLeft] =
1207 DefsHbd::_16x64::DcLeft;
1208 #endif
1209 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorDc
1210 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDc] =
1211 DefsHbd::_16x64::Dc;
1212 #endif
1213 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorVertical
1214 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorVertical] =
1215 DefsHbd::_16x64::Vertical;
1216 #endif
1217 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorHorizontal
1218 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorHorizontal] =
1219 DefsHbd::_16x64::Horizontal;
1220 #endif
1221 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorPaeth
1222 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorPaeth] =
1223 DefsHbd::_16x64::Paeth;
1224 #endif
1225 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorDcFill
1226 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcFill] =
1227 Defs10bpp::_32x8::DcFill;
1228 #endif
1229 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorDcTop
1230 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcTop] =
1231 DefsHbd::_32x8::DcTop;
1232 #endif
1233 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorDcLeft
1234 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcLeft] =
1235 DefsHbd::_32x8::DcLeft;
1236 #endif
1237 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorDc
1238 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDc] =
1239 DefsHbd::_32x8::Dc;
1240 #endif
1241 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorVertical
1242 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorVertical] =
1243 DefsHbd::_32x8::Vertical;
1244 #endif
1245 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorHorizontal
1246 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorHorizontal] =
1247 DefsHbd::_32x8::Horizontal;
1248 #endif
1249 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorPaeth
1250 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorPaeth] =
1251 DefsHbd::_32x8::Paeth;
1252 #endif
1253 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorDcFill
1254 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcFill] =
1255 Defs10bpp::_32x16::DcFill;
1256 #endif
1257 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorDcTop
1258 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcTop] =
1259 DefsHbd::_32x16::DcTop;
1260 #endif
1261 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorDcLeft
1262 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcLeft] =
1263 DefsHbd::_32x16::DcLeft;
1264 #endif
1265 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorDc
1266 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDc] =
1267 DefsHbd::_32x16::Dc;
1268 #endif
1269 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorVertical
1270 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorVertical] =
1271 DefsHbd::_32x16::Vertical;
1272 #endif
1273 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorHorizontal
1274 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorHorizontal] =
1275 DefsHbd::_32x16::Horizontal;
1276 #endif
1277 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorPaeth
1278 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorPaeth] =
1279 DefsHbd::_32x16::Paeth;
1280 #endif
1281 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorDcFill
1282 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcFill] =
1283 Defs10bpp::_32x32::DcFill;
1284 #endif
1285 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorDcTop
1286 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcTop] =
1287 DefsHbd::_32x32::DcTop;
1288 #endif
1289 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorDcLeft
1290 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcLeft] =
1291 DefsHbd::_32x32::DcLeft;
1292 #endif
1293 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorDc
1294 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDc] =
1295 DefsHbd::_32x32::Dc;
1296 #endif
1297 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorVertical
1298 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorVertical] =
1299 DefsHbd::_32x32::Vertical;
1300 #endif
1301 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorHorizontal
1302 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorHorizontal] =
1303 DefsHbd::_32x32::Horizontal;
1304 #endif
1305 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorPaeth
1306 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorPaeth] =
1307 DefsHbd::_32x32::Paeth;
1308 #endif
1309 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorDcFill
1310 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcFill] =
1311 Defs10bpp::_32x64::DcFill;
1312 #endif
1313 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorDcTop
1314 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcTop] =
1315 DefsHbd::_32x64::DcTop;
1316 #endif
1317 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorDcLeft
1318 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcLeft] =
1319 DefsHbd::_32x64::DcLeft;
1320 #endif
1321 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorDc
1322 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDc] =
1323 DefsHbd::_32x64::Dc;
1324 #endif
1325 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorVertical
1326 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorVertical] =
1327 DefsHbd::_32x64::Vertical;
1328 #endif
1329 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorHorizontal
1330 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorHorizontal] =
1331 DefsHbd::_32x64::Horizontal;
1332 #endif
1333 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorPaeth
1334 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorPaeth] =
1335 DefsHbd::_32x64::Paeth;
1336 #endif
1337 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorDcFill
1338 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcFill] =
1339 Defs10bpp::_64x16::DcFill;
1340 #endif
1341 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorDcTop
1342 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcTop] =
1343 DefsHbd::_64x16::DcTop;
1344 #endif
1345 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorDcLeft
1346 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcLeft] =
1347 DefsHbd::_64x16::DcLeft;
1348 #endif
1349 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorDc
1350 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDc] =
1351 DefsHbd::_64x16::Dc;
1352 #endif
1353 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorVertical
1354 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorVertical] =
1355 DefsHbd::_64x16::Vertical;
1356 #endif
1357 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorHorizontal
1358 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorHorizontal] =
1359 DefsHbd::_64x16::Horizontal;
1360 #endif
1361 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorPaeth
1362 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorPaeth] =
1363 DefsHbd::_64x16::Paeth;
1364 #endif
1365 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorDcFill
1366 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcFill] =
1367 Defs10bpp::_64x32::DcFill;
1368 #endif
1369 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorDcTop
1370 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcTop] =
1371 DefsHbd::_64x32::DcTop;
1372 #endif
1373 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorDcLeft
1374 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcLeft] =
1375 DefsHbd::_64x32::DcLeft;
1376 #endif
1377 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorDc
1378 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDc] =
1379 DefsHbd::_64x32::Dc;
1380 #endif
1381 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorVertical
1382 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorVertical] =
1383 DefsHbd::_64x32::Vertical;
1384 #endif
1385 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorHorizontal
1386 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorHorizontal] =
1387 DefsHbd::_64x32::Horizontal;
1388 #endif
1389 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorPaeth
1390 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorPaeth] =
1391 DefsHbd::_64x32::Paeth;
1392 #endif
1393 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorDcFill
1394 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcFill] =
1395 Defs10bpp::_64x64::DcFill;
1396 #endif
1397 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorDcTop
1398 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcTop] =
1399 DefsHbd::_64x64::DcTop;
1400 #endif
1401 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorDcLeft
1402 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcLeft] =
1403 DefsHbd::_64x64::DcLeft;
1404 #endif
1405 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorDc
1406 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDc] =
1407 DefsHbd::_64x64::Dc;
1408 #endif
1409 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorVertical
1410 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorVertical] =
1411 DefsHbd::_64x64::Vertical;
1412 #endif
1413 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorHorizontal
1414 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorHorizontal] =
1415 DefsHbd::_64x64::Horizontal;
1416 #endif
1417 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorPaeth
1418 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorPaeth] =
1419 DefsHbd::_64x64::Paeth;
1420 #endif
1421 #endif // LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
1422 } // NOLINT(readability/fn_size)
1423 #endif // LIBGAV1_MAX_BITDEPTH >= 10
1424
1425 #if LIBGAV1_MAX_BITDEPTH == 12
1426 using Defs12bpp = IntraPredBppDefs<12, uint16_t>;
1427
Init12bpp()1428 void Init12bpp() {
1429 Dsp* const dsp = dsp_internal::GetWritableDspTable(12);
1430 assert(dsp != nullptr);
1431 #if LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
1432 INIT_INTRAPREDICTORS(DefsHbd, Defs12bpp);
1433 #else // !LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
1434 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorDcFill
1435 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcFill] =
1436 Defs12bpp::_4x4::DcFill;
1437 #endif
1438 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorDcTop
1439 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcTop] =
1440 DefsHbd::_4x4::DcTop;
1441 #endif
1442 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorDcLeft
1443 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDcLeft] =
1444 DefsHbd::_4x4::DcLeft;
1445 #endif
1446 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorDc
1447 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorDc] =
1448 DefsHbd::_4x4::Dc;
1449 #endif
1450 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorVertical
1451 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorVertical] =
1452 DefsHbd::_4x4::Vertical;
1453 #endif
1454 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorHorizontal
1455 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorHorizontal] =
1456 DefsHbd::_4x4::Horizontal;
1457 #endif
1458 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorPaeth
1459 dsp->intra_predictors[kTransformSize4x4][kIntraPredictorPaeth] =
1460 DefsHbd::_4x4::Paeth;
1461 #endif
1462 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorDcFill
1463 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcFill] =
1464 Defs12bpp::_4x8::DcFill;
1465 #endif
1466 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorDcTop
1467 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcTop] =
1468 DefsHbd::_4x8::DcTop;
1469 #endif
1470 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorDcLeft
1471 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDcLeft] =
1472 DefsHbd::_4x8::DcLeft;
1473 #endif
1474 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorDc
1475 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorDc] =
1476 DefsHbd::_4x8::Dc;
1477 #endif
1478 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorVertical
1479 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorVertical] =
1480 DefsHbd::_4x8::Vertical;
1481 #endif
1482 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorHorizontal
1483 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorHorizontal] =
1484 DefsHbd::_4x8::Horizontal;
1485 #endif
1486 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorPaeth
1487 dsp->intra_predictors[kTransformSize4x8][kIntraPredictorPaeth] =
1488 DefsHbd::_4x8::Paeth;
1489 #endif
1490 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorDcFill
1491 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcFill] =
1492 Defs12bpp::_4x16::DcFill;
1493 #endif
1494 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorDcTop
1495 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcTop] =
1496 DefsHbd::_4x16::DcTop;
1497 #endif
1498 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorDcLeft
1499 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDcLeft] =
1500 DefsHbd::_4x16::DcLeft;
1501 #endif
1502 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorDc
1503 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorDc] =
1504 DefsHbd::_4x16::Dc;
1505 #endif
1506 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorVertical
1507 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorVertical] =
1508 DefsHbd::_4x16::Vertical;
1509 #endif
1510 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorHorizontal
1511 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorHorizontal] =
1512 DefsHbd::_4x16::Horizontal;
1513 #endif
1514 #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorPaeth
1515 dsp->intra_predictors[kTransformSize4x16][kIntraPredictorPaeth] =
1516 DefsHbd::_4x16::Paeth;
1517 #endif
1518 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorDcFill
1519 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcFill] =
1520 Defs12bpp::_8x4::DcFill;
1521 #endif
1522 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorDcTop
1523 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcTop] =
1524 DefsHbd::_8x4::DcTop;
1525 #endif
1526 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorDcLeft
1527 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDcLeft] =
1528 DefsHbd::_8x4::DcLeft;
1529 #endif
1530 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorDc
1531 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorDc] =
1532 DefsHbd::_8x4::Dc;
1533 #endif
1534 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorVertical
1535 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorVertical] =
1536 DefsHbd::_8x4::Vertical;
1537 #endif
1538 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorHorizontal
1539 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorHorizontal] =
1540 DefsHbd::_8x4::Horizontal;
1541 #endif
1542 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorPaeth
1543 dsp->intra_predictors[kTransformSize8x4][kIntraPredictorPaeth] =
1544 DefsHbd::_8x4::Paeth;
1545 #endif
1546 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorDcFill
1547 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcFill] =
1548 Defs12bpp::_8x8::DcFill;
1549 #endif
1550 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorDcTop
1551 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcTop] =
1552 DefsHbd::_8x8::DcTop;
1553 #endif
1554 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorDcLeft
1555 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDcLeft] =
1556 DefsHbd::_8x8::DcLeft;
1557 #endif
1558 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorDc
1559 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorDc] =
1560 DefsHbd::_8x8::Dc;
1561 #endif
1562 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorVertical
1563 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorVertical] =
1564 DefsHbd::_8x8::Vertical;
1565 #endif
1566 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorHorizontal
1567 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorHorizontal] =
1568 DefsHbd::_8x8::Horizontal;
1569 #endif
1570 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorPaeth
1571 dsp->intra_predictors[kTransformSize8x8][kIntraPredictorPaeth] =
1572 DefsHbd::_8x8::Paeth;
1573 #endif
1574 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorDcFill
1575 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcFill] =
1576 Defs12bpp::_8x16::DcFill;
1577 #endif
1578 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorDcTop
1579 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcTop] =
1580 DefsHbd::_8x16::DcTop;
1581 #endif
1582 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorDcLeft
1583 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDcLeft] =
1584 DefsHbd::_8x16::DcLeft;
1585 #endif
1586 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorDc
1587 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorDc] =
1588 DefsHbd::_8x16::Dc;
1589 #endif
1590 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorVertical
1591 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorVertical] =
1592 DefsHbd::_8x16::Vertical;
1593 #endif
1594 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorHorizontal
1595 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorHorizontal] =
1596 DefsHbd::_8x16::Horizontal;
1597 #endif
1598 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorPaeth
1599 dsp->intra_predictors[kTransformSize8x16][kIntraPredictorPaeth] =
1600 DefsHbd::_8x16::Paeth;
1601 #endif
1602 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorDcFill
1603 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcFill] =
1604 Defs12bpp::_8x32::DcFill;
1605 #endif
1606 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorDcTop
1607 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcTop] =
1608 DefsHbd::_8x32::DcTop;
1609 #endif
1610 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorDcLeft
1611 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDcLeft] =
1612 DefsHbd::_8x32::DcLeft;
1613 #endif
1614 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorDc
1615 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorDc] =
1616 DefsHbd::_8x32::Dc;
1617 #endif
1618 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorVertical
1619 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorVertical] =
1620 DefsHbd::_8x32::Vertical;
1621 #endif
1622 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorHorizontal
1623 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorHorizontal] =
1624 DefsHbd::_8x32::Horizontal;
1625 #endif
1626 #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorPaeth
1627 dsp->intra_predictors[kTransformSize8x32][kIntraPredictorPaeth] =
1628 DefsHbd::_8x32::Paeth;
1629 #endif
1630 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorDcFill
1631 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcFill] =
1632 Defs12bpp::_16x4::DcFill;
1633 #endif
1634 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorDcTop
1635 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcTop] =
1636 DefsHbd::_16x4::DcTop;
1637 #endif
1638 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorDcLeft
1639 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDcLeft] =
1640 DefsHbd::_16x4::DcLeft;
1641 #endif
1642 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorDc
1643 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorDc] =
1644 DefsHbd::_16x4::Dc;
1645 #endif
1646 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorVertical
1647 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorVertical] =
1648 DefsHbd::_16x4::Vertical;
1649 #endif
1650 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorHorizontal
1651 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorHorizontal] =
1652 DefsHbd::_16x4::Horizontal;
1653 #endif
1654 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorPaeth
1655 dsp->intra_predictors[kTransformSize16x4][kIntraPredictorPaeth] =
1656 DefsHbd::_16x4::Paeth;
1657 #endif
1658 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorDcFill
1659 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcFill] =
1660 Defs12bpp::_16x8::DcFill;
1661 #endif
1662 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorDcTop
1663 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcTop] =
1664 DefsHbd::_16x8::DcTop;
1665 #endif
1666 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorDcLeft
1667 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDcLeft] =
1668 DefsHbd::_16x8::DcLeft;
1669 #endif
1670 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorDc
1671 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorDc] =
1672 DefsHbd::_16x8::Dc;
1673 #endif
1674 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorVertical
1675 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorVertical] =
1676 DefsHbd::_16x8::Vertical;
1677 #endif
1678 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorHorizontal
1679 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorHorizontal] =
1680 DefsHbd::_16x8::Horizontal;
1681 #endif
1682 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorPaeth
1683 dsp->intra_predictors[kTransformSize16x8][kIntraPredictorPaeth] =
1684 DefsHbd::_16x8::Paeth;
1685 #endif
1686 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorDcFill
1687 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcFill] =
1688 Defs12bpp::_16x16::DcFill;
1689 #endif
1690 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorDcTop
1691 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcTop] =
1692 DefsHbd::_16x16::DcTop;
1693 #endif
1694 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorDcLeft
1695 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDcLeft] =
1696 DefsHbd::_16x16::DcLeft;
1697 #endif
1698 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorDc
1699 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorDc] =
1700 DefsHbd::_16x16::Dc;
1701 #endif
1702 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorVertical
1703 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorVertical] =
1704 DefsHbd::_16x16::Vertical;
1705 #endif
1706 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorHorizontal
1707 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorHorizontal] =
1708 DefsHbd::_16x16::Horizontal;
1709 #endif
1710 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorPaeth
1711 dsp->intra_predictors[kTransformSize16x16][kIntraPredictorPaeth] =
1712 DefsHbd::_16x16::Paeth;
1713 #endif
1714 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorDcFill
1715 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcFill] =
1716 Defs12bpp::_16x32::DcFill;
1717 #endif
1718 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorDcTop
1719 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcTop] =
1720 DefsHbd::_16x32::DcTop;
1721 #endif
1722 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorDcLeft
1723 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDcLeft] =
1724 DefsHbd::_16x32::DcLeft;
1725 #endif
1726 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorDc
1727 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorDc] =
1728 DefsHbd::_16x32::Dc;
1729 #endif
1730 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorVertical
1731 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorVertical] =
1732 DefsHbd::_16x32::Vertical;
1733 #endif
1734 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorHorizontal
1735 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorHorizontal] =
1736 DefsHbd::_16x32::Horizontal;
1737 #endif
1738 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorPaeth
1739 dsp->intra_predictors[kTransformSize16x32][kIntraPredictorPaeth] =
1740 DefsHbd::_16x32::Paeth;
1741 #endif
1742 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorDcFill
1743 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcFill] =
1744 Defs12bpp::_16x64::DcFill;
1745 #endif
1746 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorDcTop
1747 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcTop] =
1748 DefsHbd::_16x64::DcTop;
1749 #endif
1750 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorDcLeft
1751 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDcLeft] =
1752 DefsHbd::_16x64::DcLeft;
1753 #endif
1754 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorDc
1755 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorDc] =
1756 DefsHbd::_16x64::Dc;
1757 #endif
1758 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorVertical
1759 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorVertical] =
1760 DefsHbd::_16x64::Vertical;
1761 #endif
1762 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorHorizontal
1763 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorHorizontal] =
1764 DefsHbd::_16x64::Horizontal;
1765 #endif
1766 #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorPaeth
1767 dsp->intra_predictors[kTransformSize16x64][kIntraPredictorPaeth] =
1768 DefsHbd::_16x64::Paeth;
1769 #endif
1770 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorDcFill
1771 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcFill] =
1772 Defs12bpp::_32x8::DcFill;
1773 #endif
1774 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorDcTop
1775 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcTop] =
1776 DefsHbd::_32x8::DcTop;
1777 #endif
1778 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorDcLeft
1779 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDcLeft] =
1780 DefsHbd::_32x8::DcLeft;
1781 #endif
1782 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorDc
1783 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorDc] =
1784 DefsHbd::_32x8::Dc;
1785 #endif
1786 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorVertical
1787 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorVertical] =
1788 DefsHbd::_32x8::Vertical;
1789 #endif
1790 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorHorizontal
1791 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorHorizontal] =
1792 DefsHbd::_32x8::Horizontal;
1793 #endif
1794 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorPaeth
1795 dsp->intra_predictors[kTransformSize32x8][kIntraPredictorPaeth] =
1796 DefsHbd::_32x8::Paeth;
1797 #endif
1798 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorDcFill
1799 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcFill] =
1800 Defs12bpp::_32x16::DcFill;
1801 #endif
1802 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorDcTop
1803 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcTop] =
1804 DefsHbd::_32x16::DcTop;
1805 #endif
1806 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorDcLeft
1807 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDcLeft] =
1808 DefsHbd::_32x16::DcLeft;
1809 #endif
1810 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorDc
1811 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorDc] =
1812 DefsHbd::_32x16::Dc;
1813 #endif
1814 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorVertical
1815 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorVertical] =
1816 DefsHbd::_32x16::Vertical;
1817 #endif
1818 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorHorizontal
1819 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorHorizontal] =
1820 DefsHbd::_32x16::Horizontal;
1821 #endif
1822 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorPaeth
1823 dsp->intra_predictors[kTransformSize32x16][kIntraPredictorPaeth] =
1824 DefsHbd::_32x16::Paeth;
1825 #endif
1826 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorDcFill
1827 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcFill] =
1828 Defs12bpp::_32x32::DcFill;
1829 #endif
1830 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorDcTop
1831 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcTop] =
1832 DefsHbd::_32x32::DcTop;
1833 #endif
1834 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorDcLeft
1835 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDcLeft] =
1836 DefsHbd::_32x32::DcLeft;
1837 #endif
1838 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorDc
1839 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorDc] =
1840 DefsHbd::_32x32::Dc;
1841 #endif
1842 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorVertical
1843 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorVertical] =
1844 DefsHbd::_32x32::Vertical;
1845 #endif
1846 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorHorizontal
1847 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorHorizontal] =
1848 DefsHbd::_32x32::Horizontal;
1849 #endif
1850 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorPaeth
1851 dsp->intra_predictors[kTransformSize32x32][kIntraPredictorPaeth] =
1852 DefsHbd::_32x32::Paeth;
1853 #endif
1854 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorDcFill
1855 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcFill] =
1856 Defs12bpp::_32x64::DcFill;
1857 #endif
1858 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorDcTop
1859 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcTop] =
1860 DefsHbd::_32x64::DcTop;
1861 #endif
1862 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorDcLeft
1863 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDcLeft] =
1864 DefsHbd::_32x64::DcLeft;
1865 #endif
1866 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorDc
1867 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorDc] =
1868 DefsHbd::_32x64::Dc;
1869 #endif
1870 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorVertical
1871 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorVertical] =
1872 DefsHbd::_32x64::Vertical;
1873 #endif
1874 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorHorizontal
1875 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorHorizontal] =
1876 DefsHbd::_32x64::Horizontal;
1877 #endif
1878 #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorPaeth
1879 dsp->intra_predictors[kTransformSize32x64][kIntraPredictorPaeth] =
1880 DefsHbd::_32x64::Paeth;
1881 #endif
1882 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorDcFill
1883 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcFill] =
1884 Defs12bpp::_64x16::DcFill;
1885 #endif
1886 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorDcTop
1887 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcTop] =
1888 DefsHbd::_64x16::DcTop;
1889 #endif
1890 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorDcLeft
1891 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDcLeft] =
1892 DefsHbd::_64x16::DcLeft;
1893 #endif
1894 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorDc
1895 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorDc] =
1896 DefsHbd::_64x16::Dc;
1897 #endif
1898 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorVertical
1899 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorVertical] =
1900 DefsHbd::_64x16::Vertical;
1901 #endif
1902 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorHorizontal
1903 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorHorizontal] =
1904 DefsHbd::_64x16::Horizontal;
1905 #endif
1906 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorPaeth
1907 dsp->intra_predictors[kTransformSize64x16][kIntraPredictorPaeth] =
1908 DefsHbd::_64x16::Paeth;
1909 #endif
1910 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorDcFill
1911 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcFill] =
1912 Defs12bpp::_64x32::DcFill;
1913 #endif
1914 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorDcTop
1915 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcTop] =
1916 DefsHbd::_64x32::DcTop;
1917 #endif
1918 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorDcLeft
1919 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDcLeft] =
1920 DefsHbd::_64x32::DcLeft;
1921 #endif
1922 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorDc
1923 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorDc] =
1924 DefsHbd::_64x32::Dc;
1925 #endif
1926 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorVertical
1927 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorVertical] =
1928 DefsHbd::_64x32::Vertical;
1929 #endif
1930 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorHorizontal
1931 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorHorizontal] =
1932 DefsHbd::_64x32::Horizontal;
1933 #endif
1934 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorPaeth
1935 dsp->intra_predictors[kTransformSize64x32][kIntraPredictorPaeth] =
1936 DefsHbd::_64x32::Paeth;
1937 #endif
1938 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorDcFill
1939 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcFill] =
1940 Defs12bpp::_64x64::DcFill;
1941 #endif
1942 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorDcTop
1943 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcTop] =
1944 DefsHbd::_64x64::DcTop;
1945 #endif
1946 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorDcLeft
1947 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDcLeft] =
1948 DefsHbd::_64x64::DcLeft;
1949 #endif
1950 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorDc
1951 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorDc] =
1952 DefsHbd::_64x64::Dc;
1953 #endif
1954 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorVertical
1955 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorVertical] =
1956 DefsHbd::_64x64::Vertical;
1957 #endif
1958 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorHorizontal
1959 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorHorizontal] =
1960 DefsHbd::_64x64::Horizontal;
1961 #endif
1962 #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorPaeth
1963 dsp->intra_predictors[kTransformSize64x64][kIntraPredictorPaeth] =
1964 DefsHbd::_64x64::Paeth;
1965 #endif
1966 #endif // LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
1967 } // NOLINT(readability/fn_size)
1968 #endif // LIBGAV1_MAX_BITDEPTH == 12
1969
1970 #undef INIT_INTRAPREDICTORS_WxH
1971 #undef INIT_INTRAPREDICTORS
1972 } // namespace
1973
IntraPredInit_C()1974 void IntraPredInit_C() {
1975 Init8bpp();
1976 #if LIBGAV1_MAX_BITDEPTH >= 10
1977 Init10bpp();
1978 #endif
1979 #if LIBGAV1_MAX_BITDEPTH == 12
1980 Init12bpp();
1981 #endif
1982 }
1983
1984 } // namespace dsp
1985 } // namespace libgav1
1986