xref: /aosp_15_r20/external/libgav1/src/dsp/intrapred_smooth.cc (revision 095378508e87ed692bf8dfeb34008b65b3735891)
1*09537850SAkhilesh Sanikop // Copyright 2021 The libgav1 Authors
2*09537850SAkhilesh Sanikop //
3*09537850SAkhilesh Sanikop // Licensed under the Apache License, Version 2.0 (the "License");
4*09537850SAkhilesh Sanikop // you may not use this file except in compliance with the License.
5*09537850SAkhilesh Sanikop // You may obtain a copy of the License at
6*09537850SAkhilesh Sanikop //
7*09537850SAkhilesh Sanikop //      http://www.apache.org/licenses/LICENSE-2.0
8*09537850SAkhilesh Sanikop //
9*09537850SAkhilesh Sanikop // Unless required by applicable law or agreed to in writing, software
10*09537850SAkhilesh Sanikop // distributed under the License is distributed on an "AS IS" BASIS,
11*09537850SAkhilesh Sanikop // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*09537850SAkhilesh Sanikop // See the License for the specific language governing permissions and
13*09537850SAkhilesh Sanikop // limitations under the License.
14*09537850SAkhilesh Sanikop 
15*09537850SAkhilesh Sanikop #include "src/dsp/intrapred_smooth.h"
16*09537850SAkhilesh Sanikop 
17*09537850SAkhilesh Sanikop #include <algorithm>
18*09537850SAkhilesh Sanikop #include <cassert>
19*09537850SAkhilesh Sanikop #include <cstddef>
20*09537850SAkhilesh Sanikop #include <cstdlib>
21*09537850SAkhilesh Sanikop #include <cstring>
22*09537850SAkhilesh Sanikop 
23*09537850SAkhilesh Sanikop #include "src/dsp/constants.h"
24*09537850SAkhilesh Sanikop #include "src/dsp/dsp.h"
25*09537850SAkhilesh Sanikop #include "src/utils/common.h"
26*09537850SAkhilesh Sanikop #include "src/utils/constants.h"
27*09537850SAkhilesh Sanikop 
28*09537850SAkhilesh Sanikop namespace libgav1 {
29*09537850SAkhilesh Sanikop namespace dsp {
30*09537850SAkhilesh Sanikop namespace {
31*09537850SAkhilesh Sanikop 
32*09537850SAkhilesh Sanikop template <int block_width, int block_height, typename Pixel>
33*09537850SAkhilesh Sanikop struct SmoothFuncs_C {
34*09537850SAkhilesh Sanikop   SmoothFuncs_C() = delete;
35*09537850SAkhilesh Sanikop 
36*09537850SAkhilesh Sanikop   static void Smooth(void* dest, ptrdiff_t stride, const void* top_row,
37*09537850SAkhilesh Sanikop                      const void* left_column);
38*09537850SAkhilesh Sanikop   static void SmoothVertical(void* dest, ptrdiff_t stride, const void* top_row,
39*09537850SAkhilesh Sanikop                              const void* left_column);
40*09537850SAkhilesh Sanikop   static void SmoothHorizontal(void* dest, ptrdiff_t stride,
41*09537850SAkhilesh Sanikop                                const void* top_row, const void* left_column);
42*09537850SAkhilesh Sanikop };
43*09537850SAkhilesh Sanikop 
44*09537850SAkhilesh Sanikop constexpr uint8_t kSmoothWeights[] = {
45*09537850SAkhilesh Sanikop #include "src/dsp/smooth_weights.inc"
46*09537850SAkhilesh Sanikop };
47*09537850SAkhilesh Sanikop 
48*09537850SAkhilesh Sanikop // SmoothFuncs_C::Smooth
49*09537850SAkhilesh Sanikop template <int block_width, int block_height, typename Pixel>
Smooth(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void * LIBGAV1_RESTRICT const top_row,const void * LIBGAV1_RESTRICT const left_column)50*09537850SAkhilesh Sanikop void SmoothFuncs_C<block_width, block_height, Pixel>::Smooth(
51*09537850SAkhilesh Sanikop     void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
52*09537850SAkhilesh Sanikop     const void* LIBGAV1_RESTRICT const top_row,
53*09537850SAkhilesh Sanikop     const void* LIBGAV1_RESTRICT const left_column) {
54*09537850SAkhilesh Sanikop   const auto* const top = static_cast<const Pixel*>(top_row);
55*09537850SAkhilesh Sanikop   const auto* const left = static_cast<const Pixel*>(left_column);
56*09537850SAkhilesh Sanikop   const Pixel top_right = top[block_width - 1];
57*09537850SAkhilesh Sanikop   const Pixel bottom_left = left[block_height - 1];
58*09537850SAkhilesh Sanikop   static_assert(
59*09537850SAkhilesh Sanikop       block_width >= 4 && block_height >= 4,
60*09537850SAkhilesh Sanikop       "Weights for smooth predictor undefined for block width/height < 4");
61*09537850SAkhilesh Sanikop   const uint8_t* const weights_x = kSmoothWeights + block_width - 4;
62*09537850SAkhilesh Sanikop   const uint8_t* const weights_y = kSmoothWeights + block_height - 4;
63*09537850SAkhilesh Sanikop   const uint16_t scale_value = (1 << kSmoothWeightScale);
64*09537850SAkhilesh Sanikop   auto* dst = static_cast<Pixel*>(dest);
65*09537850SAkhilesh Sanikop   stride /= sizeof(Pixel);
66*09537850SAkhilesh Sanikop 
67*09537850SAkhilesh Sanikop   for (int y = 0; y < block_height; ++y) {
68*09537850SAkhilesh Sanikop     for (int x = 0; x < block_width; ++x) {
69*09537850SAkhilesh Sanikop       assert(scale_value >= weights_y[y] && scale_value >= weights_x[x]);
70*09537850SAkhilesh Sanikop       uint32_t pred = weights_y[y] * top[x];
71*09537850SAkhilesh Sanikop       pred += weights_x[x] * left[y];
72*09537850SAkhilesh Sanikop       pred += static_cast<uint8_t>(scale_value - weights_y[y]) * bottom_left;
73*09537850SAkhilesh Sanikop       pred += static_cast<uint8_t>(scale_value - weights_x[x]) * top_right;
74*09537850SAkhilesh Sanikop       // The maximum value of pred with the rounder is 2^9 * (2^bitdepth - 1)
75*09537850SAkhilesh Sanikop       // + 256. With the descale there's no need for saturation.
76*09537850SAkhilesh Sanikop       dst[x] = static_cast<Pixel>(
77*09537850SAkhilesh Sanikop           RightShiftWithRounding(pred, kSmoothWeightScale + 1));
78*09537850SAkhilesh Sanikop     }
79*09537850SAkhilesh Sanikop     dst += stride;
80*09537850SAkhilesh Sanikop   }
81*09537850SAkhilesh Sanikop }
82*09537850SAkhilesh Sanikop 
83*09537850SAkhilesh Sanikop // SmoothFuncs_C::SmoothVertical
84*09537850SAkhilesh Sanikop template <int block_width, int block_height, typename Pixel>
SmoothVertical(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void * LIBGAV1_RESTRICT const top_row,const void * LIBGAV1_RESTRICT const left_column)85*09537850SAkhilesh Sanikop void SmoothFuncs_C<block_width, block_height, Pixel>::SmoothVertical(
86*09537850SAkhilesh Sanikop     void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
87*09537850SAkhilesh Sanikop     const void* LIBGAV1_RESTRICT const top_row,
88*09537850SAkhilesh Sanikop     const void* LIBGAV1_RESTRICT const left_column) {
89*09537850SAkhilesh Sanikop   const auto* const top = static_cast<const Pixel*>(top_row);
90*09537850SAkhilesh Sanikop   const auto* const left = static_cast<const Pixel*>(left_column);
91*09537850SAkhilesh Sanikop   const Pixel bottom_left = left[block_height - 1];
92*09537850SAkhilesh Sanikop   static_assert(block_height >= 4,
93*09537850SAkhilesh Sanikop                 "Weights for smooth predictor undefined for block height < 4");
94*09537850SAkhilesh Sanikop   const uint8_t* const weights_y = kSmoothWeights + block_height - 4;
95*09537850SAkhilesh Sanikop   const uint16_t scale_value = (1 << kSmoothWeightScale);
96*09537850SAkhilesh Sanikop   auto* dst = static_cast<Pixel*>(dest);
97*09537850SAkhilesh Sanikop   stride /= sizeof(Pixel);
98*09537850SAkhilesh Sanikop 
99*09537850SAkhilesh Sanikop   for (int y = 0; y < block_height; ++y) {
100*09537850SAkhilesh Sanikop     for (int x = 0; x < block_width; ++x) {
101*09537850SAkhilesh Sanikop       assert(scale_value >= weights_y[y]);
102*09537850SAkhilesh Sanikop       uint32_t pred = weights_y[y] * top[x];
103*09537850SAkhilesh Sanikop       pred += static_cast<uint8_t>(scale_value - weights_y[y]) * bottom_left;
104*09537850SAkhilesh Sanikop       dst[x] =
105*09537850SAkhilesh Sanikop           static_cast<Pixel>(RightShiftWithRounding(pred, kSmoothWeightScale));
106*09537850SAkhilesh Sanikop     }
107*09537850SAkhilesh Sanikop     dst += stride;
108*09537850SAkhilesh Sanikop   }
109*09537850SAkhilesh Sanikop }
110*09537850SAkhilesh Sanikop 
111*09537850SAkhilesh Sanikop // SmoothFuncs_C::SmoothHorizontal
112*09537850SAkhilesh Sanikop template <int block_width, int block_height, typename Pixel>
SmoothHorizontal(void * LIBGAV1_RESTRICT const dest,ptrdiff_t stride,const void * LIBGAV1_RESTRICT const top_row,const void * LIBGAV1_RESTRICT const left_column)113*09537850SAkhilesh Sanikop void SmoothFuncs_C<block_width, block_height, Pixel>::SmoothHorizontal(
114*09537850SAkhilesh Sanikop     void* LIBGAV1_RESTRICT const dest, ptrdiff_t stride,
115*09537850SAkhilesh Sanikop     const void* LIBGAV1_RESTRICT const top_row,
116*09537850SAkhilesh Sanikop     const void* LIBGAV1_RESTRICT const left_column) {
117*09537850SAkhilesh Sanikop   const auto* const top = static_cast<const Pixel*>(top_row);
118*09537850SAkhilesh Sanikop   const auto* const left = static_cast<const Pixel*>(left_column);
119*09537850SAkhilesh Sanikop   const Pixel top_right = top[block_width - 1];
120*09537850SAkhilesh Sanikop   static_assert(block_width >= 4,
121*09537850SAkhilesh Sanikop                 "Weights for smooth predictor undefined for block width < 4");
122*09537850SAkhilesh Sanikop   const uint8_t* const weights_x = kSmoothWeights + block_width - 4;
123*09537850SAkhilesh Sanikop   const uint16_t scale_value = (1 << kSmoothWeightScale);
124*09537850SAkhilesh Sanikop   auto* dst = static_cast<Pixel*>(dest);
125*09537850SAkhilesh Sanikop   stride /= sizeof(Pixel);
126*09537850SAkhilesh Sanikop 
127*09537850SAkhilesh Sanikop   for (int y = 0; y < block_height; ++y) {
128*09537850SAkhilesh Sanikop     for (int x = 0; x < block_width; ++x) {
129*09537850SAkhilesh Sanikop       assert(scale_value >= weights_x[x]);
130*09537850SAkhilesh Sanikop       uint32_t pred = weights_x[x] * left[y];
131*09537850SAkhilesh Sanikop       pred += static_cast<uint8_t>(scale_value - weights_x[x]) * top_right;
132*09537850SAkhilesh Sanikop       dst[x] =
133*09537850SAkhilesh Sanikop           static_cast<Pixel>(RightShiftWithRounding(pred, kSmoothWeightScale));
134*09537850SAkhilesh Sanikop     }
135*09537850SAkhilesh Sanikop     dst += stride;
136*09537850SAkhilesh Sanikop   }
137*09537850SAkhilesh Sanikop }
138*09537850SAkhilesh Sanikop 
139*09537850SAkhilesh Sanikop // -----------------------------------------------------------------------------
140*09537850SAkhilesh Sanikop 
141*09537850SAkhilesh Sanikop template <typename Pixel>
142*09537850SAkhilesh Sanikop struct SmoothDefs {
143*09537850SAkhilesh Sanikop   SmoothDefs() = delete;
144*09537850SAkhilesh Sanikop 
145*09537850SAkhilesh Sanikop   using _4x4 = SmoothFuncs_C<4, 4, Pixel>;
146*09537850SAkhilesh Sanikop   using _4x8 = SmoothFuncs_C<4, 8, Pixel>;
147*09537850SAkhilesh Sanikop   using _4x16 = SmoothFuncs_C<4, 16, Pixel>;
148*09537850SAkhilesh Sanikop   using _8x4 = SmoothFuncs_C<8, 4, Pixel>;
149*09537850SAkhilesh Sanikop   using _8x8 = SmoothFuncs_C<8, 8, Pixel>;
150*09537850SAkhilesh Sanikop   using _8x16 = SmoothFuncs_C<8, 16, Pixel>;
151*09537850SAkhilesh Sanikop   using _8x32 = SmoothFuncs_C<8, 32, Pixel>;
152*09537850SAkhilesh Sanikop   using _16x4 = SmoothFuncs_C<16, 4, Pixel>;
153*09537850SAkhilesh Sanikop   using _16x8 = SmoothFuncs_C<16, 8, Pixel>;
154*09537850SAkhilesh Sanikop   using _16x16 = SmoothFuncs_C<16, 16, Pixel>;
155*09537850SAkhilesh Sanikop   using _16x32 = SmoothFuncs_C<16, 32, Pixel>;
156*09537850SAkhilesh Sanikop   using _16x64 = SmoothFuncs_C<16, 64, Pixel>;
157*09537850SAkhilesh Sanikop   using _32x8 = SmoothFuncs_C<32, 8, Pixel>;
158*09537850SAkhilesh Sanikop   using _32x16 = SmoothFuncs_C<32, 16, Pixel>;
159*09537850SAkhilesh Sanikop   using _32x32 = SmoothFuncs_C<32, 32, Pixel>;
160*09537850SAkhilesh Sanikop   using _32x64 = SmoothFuncs_C<32, 64, Pixel>;
161*09537850SAkhilesh Sanikop   using _64x16 = SmoothFuncs_C<64, 16, Pixel>;
162*09537850SAkhilesh Sanikop   using _64x32 = SmoothFuncs_C<64, 32, Pixel>;
163*09537850SAkhilesh Sanikop   using _64x64 = SmoothFuncs_C<64, 64, Pixel>;
164*09537850SAkhilesh Sanikop };
165*09537850SAkhilesh Sanikop 
166*09537850SAkhilesh Sanikop using Defs = SmoothDefs<uint8_t>;
167*09537850SAkhilesh Sanikop 
168*09537850SAkhilesh Sanikop // Initializes dsp entries for kTransformSize|W|x|H| from |DEFS| of
169*09537850SAkhilesh Sanikop // the same size.
170*09537850SAkhilesh Sanikop #define INIT_SMOOTH_WxH(DEFS, W, H)                                       \
171*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize##W##x##H][kIntraPredictorSmooth] = \
172*09537850SAkhilesh Sanikop       DEFS::_##W##x##H::Smooth;                                           \
173*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize##W##x##H]                          \
174*09537850SAkhilesh Sanikop                        [kIntraPredictorSmoothVertical] =                  \
175*09537850SAkhilesh Sanikop       DEFS::_##W##x##H::SmoothVertical;                                   \
176*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize##W##x##H]                          \
177*09537850SAkhilesh Sanikop                        [kIntraPredictorSmoothHorizontal] =                \
178*09537850SAkhilesh Sanikop       DEFS::_##W##x##H::SmoothHorizontal
179*09537850SAkhilesh Sanikop 
180*09537850SAkhilesh Sanikop #define INIT_SMOOTH(DEFS)        \
181*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 4, 4);   \
182*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 4, 8);   \
183*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 4, 16);  \
184*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 8, 4);   \
185*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 8, 8);   \
186*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 8, 16);  \
187*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 8, 32);  \
188*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 16, 4);  \
189*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 16, 8);  \
190*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 16, 16); \
191*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 16, 32); \
192*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 16, 64); \
193*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 32, 8);  \
194*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 32, 16); \
195*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 32, 32); \
196*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 32, 64); \
197*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 64, 16); \
198*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 64, 32); \
199*09537850SAkhilesh Sanikop   INIT_SMOOTH_WxH(DEFS, 64, 64)
200*09537850SAkhilesh Sanikop 
Init8bpp()201*09537850SAkhilesh Sanikop void Init8bpp() {
202*09537850SAkhilesh Sanikop   Dsp* const dsp = dsp_internal::GetWritableDspTable(8);
203*09537850SAkhilesh Sanikop   assert(dsp != nullptr);
204*09537850SAkhilesh Sanikop #if LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
205*09537850SAkhilesh Sanikop   INIT_SMOOTH(Defs);
206*09537850SAkhilesh Sanikop #else  // !LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
207*09537850SAkhilesh Sanikop   static_cast<void>(dsp);
208*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorSmooth
209*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmooth] =
210*09537850SAkhilesh Sanikop       Defs::_4x4::Smooth;
211*09537850SAkhilesh Sanikop #endif
212*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorSmoothVertical
213*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmoothVertical] =
214*09537850SAkhilesh Sanikop       Defs::_4x4::SmoothVertical;
215*09537850SAkhilesh Sanikop #endif
216*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorSmoothHorizontal
217*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmoothHorizontal] =
218*09537850SAkhilesh Sanikop       Defs::_4x4::SmoothHorizontal;
219*09537850SAkhilesh Sanikop #endif
220*09537850SAkhilesh Sanikop 
221*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorSmooth
222*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmooth] =
223*09537850SAkhilesh Sanikop       Defs::_4x8::Smooth;
224*09537850SAkhilesh Sanikop #endif
225*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorSmoothVertical
226*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmoothVertical] =
227*09537850SAkhilesh Sanikop       Defs::_4x8::SmoothVertical;
228*09537850SAkhilesh Sanikop #endif
229*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorSmoothHorizontal
230*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmoothHorizontal] =
231*09537850SAkhilesh Sanikop       Defs::_4x8::SmoothHorizontal;
232*09537850SAkhilesh Sanikop #endif
233*09537850SAkhilesh Sanikop 
234*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorSmooth
235*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmooth] =
236*09537850SAkhilesh Sanikop       Defs::_4x16::Smooth;
237*09537850SAkhilesh Sanikop #endif
238*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorSmoothVertical
239*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmoothVertical] =
240*09537850SAkhilesh Sanikop       Defs::_4x16::SmoothVertical;
241*09537850SAkhilesh Sanikop #endif
242*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorSmoothHorizontal
243*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmoothHorizontal] =
244*09537850SAkhilesh Sanikop       Defs::_4x16::SmoothHorizontal;
245*09537850SAkhilesh Sanikop #endif
246*09537850SAkhilesh Sanikop 
247*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorSmooth
248*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmooth] =
249*09537850SAkhilesh Sanikop       Defs::_8x4::Smooth;
250*09537850SAkhilesh Sanikop #endif
251*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorSmoothVertical
252*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmoothVertical] =
253*09537850SAkhilesh Sanikop       Defs::_8x4::SmoothVertical;
254*09537850SAkhilesh Sanikop #endif
255*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorSmoothHorizontal
256*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmoothHorizontal] =
257*09537850SAkhilesh Sanikop       Defs::_8x4::SmoothHorizontal;
258*09537850SAkhilesh Sanikop #endif
259*09537850SAkhilesh Sanikop 
260*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorSmooth
261*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmooth] =
262*09537850SAkhilesh Sanikop       Defs::_8x8::Smooth;
263*09537850SAkhilesh Sanikop #endif
264*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorSmoothVertical
265*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmoothVertical] =
266*09537850SAkhilesh Sanikop       Defs::_8x8::SmoothVertical;
267*09537850SAkhilesh Sanikop #endif
268*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorSmoothHorizontal
269*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmoothHorizontal] =
270*09537850SAkhilesh Sanikop       Defs::_8x8::SmoothHorizontal;
271*09537850SAkhilesh Sanikop #endif
272*09537850SAkhilesh Sanikop 
273*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorSmooth
274*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmooth] =
275*09537850SAkhilesh Sanikop       Defs::_8x16::Smooth;
276*09537850SAkhilesh Sanikop #endif
277*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorSmoothVertical
278*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmoothVertical] =
279*09537850SAkhilesh Sanikop       Defs::_8x16::SmoothVertical;
280*09537850SAkhilesh Sanikop #endif
281*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorSmoothHorizontal
282*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmoothHorizontal] =
283*09537850SAkhilesh Sanikop       Defs::_8x16::SmoothHorizontal;
284*09537850SAkhilesh Sanikop #endif
285*09537850SAkhilesh Sanikop 
286*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorSmooth
287*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmooth] =
288*09537850SAkhilesh Sanikop       Defs::_8x32::Smooth;
289*09537850SAkhilesh Sanikop #endif
290*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorSmoothVertical
291*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmoothVertical] =
292*09537850SAkhilesh Sanikop       Defs::_8x32::SmoothVertical;
293*09537850SAkhilesh Sanikop #endif
294*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorSmoothHorizontal
295*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmoothHorizontal] =
296*09537850SAkhilesh Sanikop       Defs::_8x32::SmoothHorizontal;
297*09537850SAkhilesh Sanikop #endif
298*09537850SAkhilesh Sanikop 
299*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorSmooth
300*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmooth] =
301*09537850SAkhilesh Sanikop       Defs::_16x4::Smooth;
302*09537850SAkhilesh Sanikop #endif
303*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorSmoothVertical
304*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmoothVertical] =
305*09537850SAkhilesh Sanikop       Defs::_16x4::SmoothVertical;
306*09537850SAkhilesh Sanikop #endif
307*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorSmoothHorizontal
308*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmoothHorizontal] =
309*09537850SAkhilesh Sanikop       Defs::_16x4::SmoothHorizontal;
310*09537850SAkhilesh Sanikop #endif
311*09537850SAkhilesh Sanikop 
312*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorSmooth
313*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmooth] =
314*09537850SAkhilesh Sanikop       Defs::_16x8::Smooth;
315*09537850SAkhilesh Sanikop #endif
316*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorSmoothVertical
317*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmoothVertical] =
318*09537850SAkhilesh Sanikop       Defs::_16x8::SmoothVertical;
319*09537850SAkhilesh Sanikop #endif
320*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorSmoothHorizontal
321*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmoothHorizontal] =
322*09537850SAkhilesh Sanikop       Defs::_16x8::SmoothHorizontal;
323*09537850SAkhilesh Sanikop #endif
324*09537850SAkhilesh Sanikop 
325*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorSmooth
326*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmooth] =
327*09537850SAkhilesh Sanikop       Defs::_16x16::Smooth;
328*09537850SAkhilesh Sanikop #endif
329*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorSmoothVertical
330*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmoothVertical] =
331*09537850SAkhilesh Sanikop       Defs::_16x16::SmoothVertical;
332*09537850SAkhilesh Sanikop #endif
333*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorSmoothHorizontal
334*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmoothHorizontal] =
335*09537850SAkhilesh Sanikop       Defs::_16x16::SmoothHorizontal;
336*09537850SAkhilesh Sanikop #endif
337*09537850SAkhilesh Sanikop 
338*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorSmooth
339*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmooth] =
340*09537850SAkhilesh Sanikop       Defs::_16x32::Smooth;
341*09537850SAkhilesh Sanikop #endif
342*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorSmoothVertical
343*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmoothVertical] =
344*09537850SAkhilesh Sanikop       Defs::_16x32::SmoothVertical;
345*09537850SAkhilesh Sanikop #endif
346*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorSmoothHorizontal
347*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmoothHorizontal] =
348*09537850SAkhilesh Sanikop       Defs::_16x32::SmoothHorizontal;
349*09537850SAkhilesh Sanikop #endif
350*09537850SAkhilesh Sanikop 
351*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorSmooth
352*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmooth] =
353*09537850SAkhilesh Sanikop       Defs::_16x64::Smooth;
354*09537850SAkhilesh Sanikop #endif
355*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorSmoothVertical
356*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmoothVertical] =
357*09537850SAkhilesh Sanikop       Defs::_16x64::SmoothVertical;
358*09537850SAkhilesh Sanikop #endif
359*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorSmoothHorizontal
360*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmoothHorizontal] =
361*09537850SAkhilesh Sanikop       Defs::_16x64::SmoothHorizontal;
362*09537850SAkhilesh Sanikop #endif
363*09537850SAkhilesh Sanikop 
364*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorSmooth
365*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmooth] =
366*09537850SAkhilesh Sanikop       Defs::_32x8::Smooth;
367*09537850SAkhilesh Sanikop #endif
368*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorSmoothVertical
369*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmoothVertical] =
370*09537850SAkhilesh Sanikop       Defs::_32x8::SmoothVertical;
371*09537850SAkhilesh Sanikop #endif
372*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorSmoothHorizontal
373*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmoothHorizontal] =
374*09537850SAkhilesh Sanikop       Defs::_32x8::SmoothHorizontal;
375*09537850SAkhilesh Sanikop #endif
376*09537850SAkhilesh Sanikop 
377*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorSmooth
378*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmooth] =
379*09537850SAkhilesh Sanikop       Defs::_32x16::Smooth;
380*09537850SAkhilesh Sanikop #endif
381*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorSmoothVertical
382*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmoothVertical] =
383*09537850SAkhilesh Sanikop       Defs::_32x16::SmoothVertical;
384*09537850SAkhilesh Sanikop #endif
385*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorSmoothHorizontal
386*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmoothHorizontal] =
387*09537850SAkhilesh Sanikop       Defs::_32x16::SmoothHorizontal;
388*09537850SAkhilesh Sanikop #endif
389*09537850SAkhilesh Sanikop 
390*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorSmooth
391*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmooth] =
392*09537850SAkhilesh Sanikop       Defs::_32x32::Smooth;
393*09537850SAkhilesh Sanikop #endif
394*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorSmoothVertical
395*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmoothVertical] =
396*09537850SAkhilesh Sanikop       Defs::_32x32::SmoothVertical;
397*09537850SAkhilesh Sanikop #endif
398*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorSmoothHorizontal
399*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmoothHorizontal] =
400*09537850SAkhilesh Sanikop       Defs::_32x32::SmoothHorizontal;
401*09537850SAkhilesh Sanikop #endif
402*09537850SAkhilesh Sanikop 
403*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorSmooth
404*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmooth] =
405*09537850SAkhilesh Sanikop       Defs::_32x64::Smooth;
406*09537850SAkhilesh Sanikop #endif
407*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorSmoothVertical
408*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmoothVertical] =
409*09537850SAkhilesh Sanikop       Defs::_32x64::SmoothVertical;
410*09537850SAkhilesh Sanikop #endif
411*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorSmoothHorizontal
412*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmoothHorizontal] =
413*09537850SAkhilesh Sanikop       Defs::_32x64::SmoothHorizontal;
414*09537850SAkhilesh Sanikop #endif
415*09537850SAkhilesh Sanikop 
416*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorSmooth
417*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmooth] =
418*09537850SAkhilesh Sanikop       Defs::_64x16::Smooth;
419*09537850SAkhilesh Sanikop #endif
420*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorSmoothVertical
421*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmoothVertical] =
422*09537850SAkhilesh Sanikop       Defs::_64x16::SmoothVertical;
423*09537850SAkhilesh Sanikop #endif
424*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorSmoothHorizontal
425*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmoothHorizontal] =
426*09537850SAkhilesh Sanikop       Defs::_64x16::SmoothHorizontal;
427*09537850SAkhilesh Sanikop #endif
428*09537850SAkhilesh Sanikop 
429*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorSmooth
430*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmooth] =
431*09537850SAkhilesh Sanikop       Defs::_64x32::Smooth;
432*09537850SAkhilesh Sanikop #endif
433*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorSmoothVertical
434*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmoothVertical] =
435*09537850SAkhilesh Sanikop       Defs::_64x32::SmoothVertical;
436*09537850SAkhilesh Sanikop #endif
437*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorSmoothHorizontal
438*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmoothHorizontal] =
439*09537850SAkhilesh Sanikop       Defs::_64x32::SmoothHorizontal;
440*09537850SAkhilesh Sanikop #endif
441*09537850SAkhilesh Sanikop 
442*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorSmooth
443*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmooth] =
444*09537850SAkhilesh Sanikop       Defs::_64x64::Smooth;
445*09537850SAkhilesh Sanikop #endif
446*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorSmoothVertical
447*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmoothVertical] =
448*09537850SAkhilesh Sanikop       Defs::_64x64::SmoothVertical;
449*09537850SAkhilesh Sanikop #endif
450*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorSmoothHorizontal
451*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmoothHorizontal] =
452*09537850SAkhilesh Sanikop       Defs::_64x64::SmoothHorizontal;
453*09537850SAkhilesh Sanikop #endif
454*09537850SAkhilesh Sanikop #endif  // LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
455*09537850SAkhilesh Sanikop }  // NOLINT(readability/fn_size)
456*09537850SAkhilesh Sanikop 
457*09537850SAkhilesh Sanikop #if LIBGAV1_MAX_BITDEPTH >= 10
458*09537850SAkhilesh Sanikop using DefsHbd = SmoothDefs<uint16_t>;
459*09537850SAkhilesh Sanikop 
Init10bpp()460*09537850SAkhilesh Sanikop void Init10bpp() {
461*09537850SAkhilesh Sanikop   Dsp* const dsp = dsp_internal::GetWritableDspTable(10);
462*09537850SAkhilesh Sanikop   assert(dsp != nullptr);
463*09537850SAkhilesh Sanikop #if LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
464*09537850SAkhilesh Sanikop   INIT_SMOOTH(DefsHbd);
465*09537850SAkhilesh Sanikop #else  // !LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
466*09537850SAkhilesh Sanikop   static_cast<void>(dsp);
467*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorSmooth
468*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmooth] =
469*09537850SAkhilesh Sanikop       DefsHbd::_4x4::Smooth;
470*09537850SAkhilesh Sanikop #endif
471*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorSmoothVertical
472*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmoothVertical] =
473*09537850SAkhilesh Sanikop       DefsHbd::_4x4::SmoothVertical;
474*09537850SAkhilesh Sanikop #endif
475*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorSmoothHorizontal
476*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmoothHorizontal] =
477*09537850SAkhilesh Sanikop       DefsHbd::_4x4::SmoothHorizontal;
478*09537850SAkhilesh Sanikop #endif
479*09537850SAkhilesh Sanikop 
480*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorSmooth
481*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmooth] =
482*09537850SAkhilesh Sanikop       DefsHbd::_4x8::Smooth;
483*09537850SAkhilesh Sanikop #endif
484*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorSmoothVertical
485*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmoothVertical] =
486*09537850SAkhilesh Sanikop       DefsHbd::_4x8::SmoothVertical;
487*09537850SAkhilesh Sanikop #endif
488*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorSmoothHorizontal
489*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmoothHorizontal] =
490*09537850SAkhilesh Sanikop       DefsHbd::_4x8::SmoothHorizontal;
491*09537850SAkhilesh Sanikop #endif
492*09537850SAkhilesh Sanikop 
493*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorSmooth
494*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmooth] =
495*09537850SAkhilesh Sanikop       DefsHbd::_4x16::Smooth;
496*09537850SAkhilesh Sanikop #endif
497*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorSmoothVertical
498*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmoothVertical] =
499*09537850SAkhilesh Sanikop       DefsHbd::_4x16::SmoothVertical;
500*09537850SAkhilesh Sanikop #endif
501*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorSmoothHorizontal
502*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmoothHorizontal] =
503*09537850SAkhilesh Sanikop       DefsHbd::_4x16::SmoothHorizontal;
504*09537850SAkhilesh Sanikop #endif
505*09537850SAkhilesh Sanikop 
506*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorSmooth
507*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmooth] =
508*09537850SAkhilesh Sanikop       DefsHbd::_8x4::Smooth;
509*09537850SAkhilesh Sanikop #endif
510*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorSmoothVertical
511*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmoothVertical] =
512*09537850SAkhilesh Sanikop       DefsHbd::_8x4::SmoothVertical;
513*09537850SAkhilesh Sanikop #endif
514*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorSmoothHorizontal
515*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmoothHorizontal] =
516*09537850SAkhilesh Sanikop       DefsHbd::_8x4::SmoothHorizontal;
517*09537850SAkhilesh Sanikop #endif
518*09537850SAkhilesh Sanikop 
519*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorSmooth
520*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmooth] =
521*09537850SAkhilesh Sanikop       DefsHbd::_8x8::Smooth;
522*09537850SAkhilesh Sanikop #endif
523*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorSmoothVertical
524*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmoothVertical] =
525*09537850SAkhilesh Sanikop       DefsHbd::_8x8::SmoothVertical;
526*09537850SAkhilesh Sanikop #endif
527*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorSmoothHorizontal
528*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmoothHorizontal] =
529*09537850SAkhilesh Sanikop       DefsHbd::_8x8::SmoothHorizontal;
530*09537850SAkhilesh Sanikop #endif
531*09537850SAkhilesh Sanikop 
532*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorSmooth
533*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmooth] =
534*09537850SAkhilesh Sanikop       DefsHbd::_8x16::Smooth;
535*09537850SAkhilesh Sanikop #endif
536*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorSmoothVertical
537*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmoothVertical] =
538*09537850SAkhilesh Sanikop       DefsHbd::_8x16::SmoothVertical;
539*09537850SAkhilesh Sanikop #endif
540*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorSmoothHorizontal
541*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmoothHorizontal] =
542*09537850SAkhilesh Sanikop       DefsHbd::_8x16::SmoothHorizontal;
543*09537850SAkhilesh Sanikop #endif
544*09537850SAkhilesh Sanikop 
545*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorSmooth
546*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmooth] =
547*09537850SAkhilesh Sanikop       DefsHbd::_8x32::Smooth;
548*09537850SAkhilesh Sanikop #endif
549*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorSmoothVertical
550*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmoothVertical] =
551*09537850SAkhilesh Sanikop       DefsHbd::_8x32::SmoothVertical;
552*09537850SAkhilesh Sanikop #endif
553*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorSmoothHorizontal
554*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmoothHorizontal] =
555*09537850SAkhilesh Sanikop       DefsHbd::_8x32::SmoothHorizontal;
556*09537850SAkhilesh Sanikop #endif
557*09537850SAkhilesh Sanikop 
558*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorSmooth
559*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmooth] =
560*09537850SAkhilesh Sanikop       DefsHbd::_16x4::Smooth;
561*09537850SAkhilesh Sanikop #endif
562*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorSmoothVertical
563*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmoothVertical] =
564*09537850SAkhilesh Sanikop       DefsHbd::_16x4::SmoothVertical;
565*09537850SAkhilesh Sanikop #endif
566*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorSmoothHorizontal
567*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmoothHorizontal] =
568*09537850SAkhilesh Sanikop       DefsHbd::_16x4::SmoothHorizontal;
569*09537850SAkhilesh Sanikop #endif
570*09537850SAkhilesh Sanikop 
571*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorSmooth
572*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmooth] =
573*09537850SAkhilesh Sanikop       DefsHbd::_16x8::Smooth;
574*09537850SAkhilesh Sanikop #endif
575*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorSmoothVertical
576*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmoothVertical] =
577*09537850SAkhilesh Sanikop       DefsHbd::_16x8::SmoothVertical;
578*09537850SAkhilesh Sanikop #endif
579*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorSmoothHorizontal
580*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmoothHorizontal] =
581*09537850SAkhilesh Sanikop       DefsHbd::_16x8::SmoothHorizontal;
582*09537850SAkhilesh Sanikop #endif
583*09537850SAkhilesh Sanikop 
584*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorSmooth
585*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmooth] =
586*09537850SAkhilesh Sanikop       DefsHbd::_16x16::Smooth;
587*09537850SAkhilesh Sanikop #endif
588*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorSmoothVertical
589*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmoothVertical] =
590*09537850SAkhilesh Sanikop       DefsHbd::_16x16::SmoothVertical;
591*09537850SAkhilesh Sanikop #endif
592*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorSmoothHorizontal
593*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmoothHorizontal] =
594*09537850SAkhilesh Sanikop       DefsHbd::_16x16::SmoothHorizontal;
595*09537850SAkhilesh Sanikop #endif
596*09537850SAkhilesh Sanikop 
597*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorSmooth
598*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmooth] =
599*09537850SAkhilesh Sanikop       DefsHbd::_16x32::Smooth;
600*09537850SAkhilesh Sanikop #endif
601*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorSmoothVertical
602*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmoothVertical] =
603*09537850SAkhilesh Sanikop       DefsHbd::_16x32::SmoothVertical;
604*09537850SAkhilesh Sanikop #endif
605*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorSmoothHorizontal
606*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmoothHorizontal] =
607*09537850SAkhilesh Sanikop       DefsHbd::_16x32::SmoothHorizontal;
608*09537850SAkhilesh Sanikop #endif
609*09537850SAkhilesh Sanikop 
610*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorSmooth
611*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmooth] =
612*09537850SAkhilesh Sanikop       DefsHbd::_16x64::Smooth;
613*09537850SAkhilesh Sanikop #endif
614*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorSmoothVertical
615*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmoothVertical] =
616*09537850SAkhilesh Sanikop       DefsHbd::_16x64::SmoothVertical;
617*09537850SAkhilesh Sanikop #endif
618*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorSmoothHorizontal
619*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmoothHorizontal] =
620*09537850SAkhilesh Sanikop       DefsHbd::_16x64::SmoothHorizontal;
621*09537850SAkhilesh Sanikop #endif
622*09537850SAkhilesh Sanikop 
623*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorSmooth
624*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmooth] =
625*09537850SAkhilesh Sanikop       DefsHbd::_32x8::Smooth;
626*09537850SAkhilesh Sanikop #endif
627*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorSmoothVertical
628*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmoothVertical] =
629*09537850SAkhilesh Sanikop       DefsHbd::_32x8::SmoothVertical;
630*09537850SAkhilesh Sanikop #endif
631*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorSmoothHorizontal
632*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmoothHorizontal] =
633*09537850SAkhilesh Sanikop       DefsHbd::_32x8::SmoothHorizontal;
634*09537850SAkhilesh Sanikop #endif
635*09537850SAkhilesh Sanikop 
636*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorSmooth
637*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmooth] =
638*09537850SAkhilesh Sanikop       DefsHbd::_32x16::Smooth;
639*09537850SAkhilesh Sanikop #endif
640*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorSmoothVertical
641*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmoothVertical] =
642*09537850SAkhilesh Sanikop       DefsHbd::_32x16::SmoothVertical;
643*09537850SAkhilesh Sanikop #endif
644*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorSmoothHorizontal
645*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmoothHorizontal] =
646*09537850SAkhilesh Sanikop       DefsHbd::_32x16::SmoothHorizontal;
647*09537850SAkhilesh Sanikop #endif
648*09537850SAkhilesh Sanikop 
649*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorSmooth
650*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmooth] =
651*09537850SAkhilesh Sanikop       DefsHbd::_32x32::Smooth;
652*09537850SAkhilesh Sanikop #endif
653*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorSmoothVertical
654*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmoothVertical] =
655*09537850SAkhilesh Sanikop       DefsHbd::_32x32::SmoothVertical;
656*09537850SAkhilesh Sanikop #endif
657*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorSmoothHorizontal
658*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmoothHorizontal] =
659*09537850SAkhilesh Sanikop       DefsHbd::_32x32::SmoothHorizontal;
660*09537850SAkhilesh Sanikop #endif
661*09537850SAkhilesh Sanikop 
662*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorSmooth
663*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmooth] =
664*09537850SAkhilesh Sanikop       DefsHbd::_32x64::Smooth;
665*09537850SAkhilesh Sanikop #endif
666*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorSmoothVertical
667*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmoothVertical] =
668*09537850SAkhilesh Sanikop       DefsHbd::_32x64::SmoothVertical;
669*09537850SAkhilesh Sanikop #endif
670*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorSmoothHorizontal
671*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmoothHorizontal] =
672*09537850SAkhilesh Sanikop       DefsHbd::_32x64::SmoothHorizontal;
673*09537850SAkhilesh Sanikop #endif
674*09537850SAkhilesh Sanikop 
675*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorSmooth
676*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmooth] =
677*09537850SAkhilesh Sanikop       DefsHbd::_64x16::Smooth;
678*09537850SAkhilesh Sanikop #endif
679*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorSmoothVertical
680*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmoothVertical] =
681*09537850SAkhilesh Sanikop       DefsHbd::_64x16::SmoothVertical;
682*09537850SAkhilesh Sanikop #endif
683*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorSmoothHorizontal
684*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmoothHorizontal] =
685*09537850SAkhilesh Sanikop       DefsHbd::_64x16::SmoothHorizontal;
686*09537850SAkhilesh Sanikop #endif
687*09537850SAkhilesh Sanikop 
688*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorSmooth
689*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmooth] =
690*09537850SAkhilesh Sanikop       DefsHbd::_64x32::Smooth;
691*09537850SAkhilesh Sanikop #endif
692*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorSmoothVertical
693*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmoothVertical] =
694*09537850SAkhilesh Sanikop       DefsHbd::_64x32::SmoothVertical;
695*09537850SAkhilesh Sanikop #endif
696*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorSmoothHorizontal
697*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmoothHorizontal] =
698*09537850SAkhilesh Sanikop       DefsHbd::_64x32::SmoothHorizontal;
699*09537850SAkhilesh Sanikop #endif
700*09537850SAkhilesh Sanikop 
701*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorSmooth
702*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmooth] =
703*09537850SAkhilesh Sanikop       DefsHbd::_64x64::Smooth;
704*09537850SAkhilesh Sanikop #endif
705*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorSmoothVertical
706*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmoothVertical] =
707*09537850SAkhilesh Sanikop       DefsHbd::_64x64::SmoothVertical;
708*09537850SAkhilesh Sanikop #endif
709*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorSmoothHorizontal
710*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmoothHorizontal] =
711*09537850SAkhilesh Sanikop       DefsHbd::_64x64::SmoothHorizontal;
712*09537850SAkhilesh Sanikop #endif
713*09537850SAkhilesh Sanikop #endif  // LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
714*09537850SAkhilesh Sanikop }  // NOLINT(readability/fn_size)
715*09537850SAkhilesh Sanikop #endif  // LIBGAV1_MAX_BITDEPTH >= 10
716*09537850SAkhilesh Sanikop 
717*09537850SAkhilesh Sanikop #if LIBGAV1_MAX_BITDEPTH == 12
718*09537850SAkhilesh Sanikop using DefsHbd = SmoothDefs<uint16_t>;
719*09537850SAkhilesh Sanikop 
Init12bpp()720*09537850SAkhilesh Sanikop void Init12bpp() {
721*09537850SAkhilesh Sanikop   Dsp* const dsp = dsp_internal::GetWritableDspTable(12);
722*09537850SAkhilesh Sanikop   assert(dsp != nullptr);
723*09537850SAkhilesh Sanikop #if LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
724*09537850SAkhilesh Sanikop   INIT_SMOOTH(DefsHbd);
725*09537850SAkhilesh Sanikop #else  // !LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
726*09537850SAkhilesh Sanikop   static_cast<void>(dsp);
727*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorSmooth
728*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmooth] =
729*09537850SAkhilesh Sanikop       DefsHbd::_4x4::Smooth;
730*09537850SAkhilesh Sanikop #endif
731*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorSmoothVertical
732*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmoothVertical] =
733*09537850SAkhilesh Sanikop       DefsHbd::_4x4::SmoothVertical;
734*09537850SAkhilesh Sanikop #endif
735*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x4_IntraPredictorSmoothHorizontal
736*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x4][kIntraPredictorSmoothHorizontal] =
737*09537850SAkhilesh Sanikop       DefsHbd::_4x4::SmoothHorizontal;
738*09537850SAkhilesh Sanikop #endif
739*09537850SAkhilesh Sanikop 
740*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorSmooth
741*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmooth] =
742*09537850SAkhilesh Sanikop       DefsHbd::_4x8::Smooth;
743*09537850SAkhilesh Sanikop #endif
744*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorSmoothVertical
745*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmoothVertical] =
746*09537850SAkhilesh Sanikop       DefsHbd::_4x8::SmoothVertical;
747*09537850SAkhilesh Sanikop #endif
748*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x8_IntraPredictorSmoothHorizontal
749*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x8][kIntraPredictorSmoothHorizontal] =
750*09537850SAkhilesh Sanikop       DefsHbd::_4x8::SmoothHorizontal;
751*09537850SAkhilesh Sanikop #endif
752*09537850SAkhilesh Sanikop 
753*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorSmooth
754*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmooth] =
755*09537850SAkhilesh Sanikop       DefsHbd::_4x16::Smooth;
756*09537850SAkhilesh Sanikop #endif
757*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorSmoothVertical
758*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmoothVertical] =
759*09537850SAkhilesh Sanikop       DefsHbd::_4x16::SmoothVertical;
760*09537850SAkhilesh Sanikop #endif
761*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize4x16_IntraPredictorSmoothHorizontal
762*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize4x16][kIntraPredictorSmoothHorizontal] =
763*09537850SAkhilesh Sanikop       DefsHbd::_4x16::SmoothHorizontal;
764*09537850SAkhilesh Sanikop #endif
765*09537850SAkhilesh Sanikop 
766*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorSmooth
767*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmooth] =
768*09537850SAkhilesh Sanikop       DefsHbd::_8x4::Smooth;
769*09537850SAkhilesh Sanikop #endif
770*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorSmoothVertical
771*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmoothVertical] =
772*09537850SAkhilesh Sanikop       DefsHbd::_8x4::SmoothVertical;
773*09537850SAkhilesh Sanikop #endif
774*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x4_IntraPredictorSmoothHorizontal
775*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x4][kIntraPredictorSmoothHorizontal] =
776*09537850SAkhilesh Sanikop       DefsHbd::_8x4::SmoothHorizontal;
777*09537850SAkhilesh Sanikop #endif
778*09537850SAkhilesh Sanikop 
779*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorSmooth
780*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmooth] =
781*09537850SAkhilesh Sanikop       DefsHbd::_8x8::Smooth;
782*09537850SAkhilesh Sanikop #endif
783*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorSmoothVertical
784*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmoothVertical] =
785*09537850SAkhilesh Sanikop       DefsHbd::_8x8::SmoothVertical;
786*09537850SAkhilesh Sanikop #endif
787*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x8_IntraPredictorSmoothHorizontal
788*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x8][kIntraPredictorSmoothHorizontal] =
789*09537850SAkhilesh Sanikop       DefsHbd::_8x8::SmoothHorizontal;
790*09537850SAkhilesh Sanikop #endif
791*09537850SAkhilesh Sanikop 
792*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorSmooth
793*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmooth] =
794*09537850SAkhilesh Sanikop       DefsHbd::_8x16::Smooth;
795*09537850SAkhilesh Sanikop #endif
796*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorSmoothVertical
797*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmoothVertical] =
798*09537850SAkhilesh Sanikop       DefsHbd::_8x16::SmoothVertical;
799*09537850SAkhilesh Sanikop #endif
800*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x16_IntraPredictorSmoothHorizontal
801*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x16][kIntraPredictorSmoothHorizontal] =
802*09537850SAkhilesh Sanikop       DefsHbd::_8x16::SmoothHorizontal;
803*09537850SAkhilesh Sanikop #endif
804*09537850SAkhilesh Sanikop 
805*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorSmooth
806*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmooth] =
807*09537850SAkhilesh Sanikop       DefsHbd::_8x32::Smooth;
808*09537850SAkhilesh Sanikop #endif
809*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorSmoothVertical
810*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmoothVertical] =
811*09537850SAkhilesh Sanikop       DefsHbd::_8x32::SmoothVertical;
812*09537850SAkhilesh Sanikop #endif
813*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize8x32_IntraPredictorSmoothHorizontal
814*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize8x32][kIntraPredictorSmoothHorizontal] =
815*09537850SAkhilesh Sanikop       DefsHbd::_8x32::SmoothHorizontal;
816*09537850SAkhilesh Sanikop #endif
817*09537850SAkhilesh Sanikop 
818*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorSmooth
819*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmooth] =
820*09537850SAkhilesh Sanikop       DefsHbd::_16x4::Smooth;
821*09537850SAkhilesh Sanikop #endif
822*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorSmoothVertical
823*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmoothVertical] =
824*09537850SAkhilesh Sanikop       DefsHbd::_16x4::SmoothVertical;
825*09537850SAkhilesh Sanikop #endif
826*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x4_IntraPredictorSmoothHorizontal
827*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x4][kIntraPredictorSmoothHorizontal] =
828*09537850SAkhilesh Sanikop       DefsHbd::_16x4::SmoothHorizontal;
829*09537850SAkhilesh Sanikop #endif
830*09537850SAkhilesh Sanikop 
831*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorSmooth
832*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmooth] =
833*09537850SAkhilesh Sanikop       DefsHbd::_16x8::Smooth;
834*09537850SAkhilesh Sanikop #endif
835*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorSmoothVertical
836*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmoothVertical] =
837*09537850SAkhilesh Sanikop       DefsHbd::_16x8::SmoothVertical;
838*09537850SAkhilesh Sanikop #endif
839*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x8_IntraPredictorSmoothHorizontal
840*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x8][kIntraPredictorSmoothHorizontal] =
841*09537850SAkhilesh Sanikop       DefsHbd::_16x8::SmoothHorizontal;
842*09537850SAkhilesh Sanikop #endif
843*09537850SAkhilesh Sanikop 
844*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorSmooth
845*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmooth] =
846*09537850SAkhilesh Sanikop       DefsHbd::_16x16::Smooth;
847*09537850SAkhilesh Sanikop #endif
848*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorSmoothVertical
849*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmoothVertical] =
850*09537850SAkhilesh Sanikop       DefsHbd::_16x16::SmoothVertical;
851*09537850SAkhilesh Sanikop #endif
852*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x16_IntraPredictorSmoothHorizontal
853*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x16][kIntraPredictorSmoothHorizontal] =
854*09537850SAkhilesh Sanikop       DefsHbd::_16x16::SmoothHorizontal;
855*09537850SAkhilesh Sanikop #endif
856*09537850SAkhilesh Sanikop 
857*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorSmooth
858*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmooth] =
859*09537850SAkhilesh Sanikop       DefsHbd::_16x32::Smooth;
860*09537850SAkhilesh Sanikop #endif
861*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorSmoothVertical
862*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmoothVertical] =
863*09537850SAkhilesh Sanikop       DefsHbd::_16x32::SmoothVertical;
864*09537850SAkhilesh Sanikop #endif
865*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x32_IntraPredictorSmoothHorizontal
866*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x32][kIntraPredictorSmoothHorizontal] =
867*09537850SAkhilesh Sanikop       DefsHbd::_16x32::SmoothHorizontal;
868*09537850SAkhilesh Sanikop #endif
869*09537850SAkhilesh Sanikop 
870*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorSmooth
871*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmooth] =
872*09537850SAkhilesh Sanikop       DefsHbd::_16x64::Smooth;
873*09537850SAkhilesh Sanikop #endif
874*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorSmoothVertical
875*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmoothVertical] =
876*09537850SAkhilesh Sanikop       DefsHbd::_16x64::SmoothVertical;
877*09537850SAkhilesh Sanikop #endif
878*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize16x64_IntraPredictorSmoothHorizontal
879*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize16x64][kIntraPredictorSmoothHorizontal] =
880*09537850SAkhilesh Sanikop       DefsHbd::_16x64::SmoothHorizontal;
881*09537850SAkhilesh Sanikop #endif
882*09537850SAkhilesh Sanikop 
883*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorSmooth
884*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmooth] =
885*09537850SAkhilesh Sanikop       DefsHbd::_32x8::Smooth;
886*09537850SAkhilesh Sanikop #endif
887*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorSmoothVertical
888*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmoothVertical] =
889*09537850SAkhilesh Sanikop       DefsHbd::_32x8::SmoothVertical;
890*09537850SAkhilesh Sanikop #endif
891*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x8_IntraPredictorSmoothHorizontal
892*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x8][kIntraPredictorSmoothHorizontal] =
893*09537850SAkhilesh Sanikop       DefsHbd::_32x8::SmoothHorizontal;
894*09537850SAkhilesh Sanikop #endif
895*09537850SAkhilesh Sanikop 
896*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorSmooth
897*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmooth] =
898*09537850SAkhilesh Sanikop       DefsHbd::_32x16::Smooth;
899*09537850SAkhilesh Sanikop #endif
900*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorSmoothVertical
901*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmoothVertical] =
902*09537850SAkhilesh Sanikop       DefsHbd::_32x16::SmoothVertical;
903*09537850SAkhilesh Sanikop #endif
904*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x16_IntraPredictorSmoothHorizontal
905*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x16][kIntraPredictorSmoothHorizontal] =
906*09537850SAkhilesh Sanikop       DefsHbd::_32x16::SmoothHorizontal;
907*09537850SAkhilesh Sanikop #endif
908*09537850SAkhilesh Sanikop 
909*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorSmooth
910*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmooth] =
911*09537850SAkhilesh Sanikop       DefsHbd::_32x32::Smooth;
912*09537850SAkhilesh Sanikop #endif
913*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorSmoothVertical
914*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmoothVertical] =
915*09537850SAkhilesh Sanikop       DefsHbd::_32x32::SmoothVertical;
916*09537850SAkhilesh Sanikop #endif
917*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x32_IntraPredictorSmoothHorizontal
918*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x32][kIntraPredictorSmoothHorizontal] =
919*09537850SAkhilesh Sanikop       DefsHbd::_32x32::SmoothHorizontal;
920*09537850SAkhilesh Sanikop #endif
921*09537850SAkhilesh Sanikop 
922*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorSmooth
923*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmooth] =
924*09537850SAkhilesh Sanikop       DefsHbd::_32x64::Smooth;
925*09537850SAkhilesh Sanikop #endif
926*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorSmoothVertical
927*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmoothVertical] =
928*09537850SAkhilesh Sanikop       DefsHbd::_32x64::SmoothVertical;
929*09537850SAkhilesh Sanikop #endif
930*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize32x64_IntraPredictorSmoothHorizontal
931*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize32x64][kIntraPredictorSmoothHorizontal] =
932*09537850SAkhilesh Sanikop       DefsHbd::_32x64::SmoothHorizontal;
933*09537850SAkhilesh Sanikop #endif
934*09537850SAkhilesh Sanikop 
935*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorSmooth
936*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmooth] =
937*09537850SAkhilesh Sanikop       DefsHbd::_64x16::Smooth;
938*09537850SAkhilesh Sanikop #endif
939*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorSmoothVertical
940*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmoothVertical] =
941*09537850SAkhilesh Sanikop       DefsHbd::_64x16::SmoothVertical;
942*09537850SAkhilesh Sanikop #endif
943*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x16_IntraPredictorSmoothHorizontal
944*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x16][kIntraPredictorSmoothHorizontal] =
945*09537850SAkhilesh Sanikop       DefsHbd::_64x16::SmoothHorizontal;
946*09537850SAkhilesh Sanikop #endif
947*09537850SAkhilesh Sanikop 
948*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorSmooth
949*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmooth] =
950*09537850SAkhilesh Sanikop       DefsHbd::_64x32::Smooth;
951*09537850SAkhilesh Sanikop #endif
952*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorSmoothVertical
953*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmoothVertical] =
954*09537850SAkhilesh Sanikop       DefsHbd::_64x32::SmoothVertical;
955*09537850SAkhilesh Sanikop #endif
956*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x32_IntraPredictorSmoothHorizontal
957*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x32][kIntraPredictorSmoothHorizontal] =
958*09537850SAkhilesh Sanikop       DefsHbd::_64x32::SmoothHorizontal;
959*09537850SAkhilesh Sanikop #endif
960*09537850SAkhilesh Sanikop 
961*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorSmooth
962*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmooth] =
963*09537850SAkhilesh Sanikop       DefsHbd::_64x64::Smooth;
964*09537850SAkhilesh Sanikop #endif
965*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorSmoothVertical
966*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmoothVertical] =
967*09537850SAkhilesh Sanikop       DefsHbd::_64x64::SmoothVertical;
968*09537850SAkhilesh Sanikop #endif
969*09537850SAkhilesh Sanikop #ifndef LIBGAV1_Dsp12bpp_TransformSize64x64_IntraPredictorSmoothHorizontal
970*09537850SAkhilesh Sanikop   dsp->intra_predictors[kTransformSize64x64][kIntraPredictorSmoothHorizontal] =
971*09537850SAkhilesh Sanikop       DefsHbd::_64x64::SmoothHorizontal;
972*09537850SAkhilesh Sanikop #endif
973*09537850SAkhilesh Sanikop #endif  // LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS
974*09537850SAkhilesh Sanikop }  // NOLINT(readability/fn_size)
975*09537850SAkhilesh Sanikop #endif  // LIBGAV1_MAX_BITDEPTH == 12
976*09537850SAkhilesh Sanikop 
977*09537850SAkhilesh Sanikop #undef INIT_SMOOTH_WxH
978*09537850SAkhilesh Sanikop #undef INIT_SMOOTH
979*09537850SAkhilesh Sanikop }  // namespace
980*09537850SAkhilesh Sanikop 
IntraPredSmoothInit_C()981*09537850SAkhilesh Sanikop void IntraPredSmoothInit_C() {
982*09537850SAkhilesh Sanikop   Init8bpp();
983*09537850SAkhilesh Sanikop #if LIBGAV1_MAX_BITDEPTH >= 10
984*09537850SAkhilesh Sanikop   Init10bpp();
985*09537850SAkhilesh Sanikop #endif
986*09537850SAkhilesh Sanikop #if LIBGAV1_MAX_BITDEPTH == 12
987*09537850SAkhilesh Sanikop   Init12bpp();
988*09537850SAkhilesh Sanikop #endif
989*09537850SAkhilesh Sanikop }
990*09537850SAkhilesh Sanikop 
991*09537850SAkhilesh Sanikop }  // namespace dsp
992*09537850SAkhilesh Sanikop }  // namespace libgav1
993