xref: /aosp_15_r20/external/libgav1/src/dsp/intrapred.cc (revision 095378508e87ed692bf8dfeb34008b65b3735891)
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