xref: /aosp_15_r20/external/libhevc/common/ihevc_trans_tables.c (revision c83a76b084498d55f252f48b2e3786804cdf24b7)
1*c83a76b0SSuyog Pawar /******************************************************************************
2*c83a76b0SSuyog Pawar *
3*c83a76b0SSuyog Pawar * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
4*c83a76b0SSuyog Pawar *
5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License");
6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License.
7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at:
8*c83a76b0SSuyog Pawar *
9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0
10*c83a76b0SSuyog Pawar *
11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software
12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS,
13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and
15*c83a76b0SSuyog Pawar * limitations under the License.
16*c83a76b0SSuyog Pawar *
17*c83a76b0SSuyog Pawar ******************************************************************************/
18*c83a76b0SSuyog Pawar /**
19*c83a76b0SSuyog Pawar *******************************************************************************
20*c83a76b0SSuyog Pawar * @file
21*c83a76b0SSuyog Pawar *  ihevc_trans_tables.c
22*c83a76b0SSuyog Pawar *
23*c83a76b0SSuyog Pawar * @brief
24*c83a76b0SSuyog Pawar *  Contains tables used for forward and inverse  transform
25*c83a76b0SSuyog Pawar *
26*c83a76b0SSuyog Pawar * @author
27*c83a76b0SSuyog Pawar *  100470
28*c83a76b0SSuyog Pawar *
29*c83a76b0SSuyog Pawar * @par List of Tables:
30*c83a76b0SSuyog Pawar * g_ihevc_iquant_scales
31*c83a76b0SSuyog Pawar * g_ihevc_iquant_intr_scales
32*c83a76b0SSuyog Pawar * g_ihevc_quant_scales
33*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_4_ttype1
34*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_4_ttype0
35*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_dst_4
36*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_dst_intr_4
37*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_4
38*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_4_transpose
39*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_4_intr
40*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_4_intr
41*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_8
42*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_8_transpose
43*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_8_intr
44*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_8_intr
45*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_intr_even_8
46*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_intr_odd_8
47*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16
48*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16_transpose
49*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_intr_8
50*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_16_even
51*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_16_odd
52*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_transpose
53*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32
54*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_intr_16
55*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16_intr_odd
56*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16_intr_even
57*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_intr_even
58*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_intr_odd
59*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16_even_packed
60*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_intr_packed
61*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_intr_odd_packed
62*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16_even
63*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16_odd
64*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_intr_even_8
65*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_intr_odd_8
66*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_intr_4
67*c83a76b0SSuyog Pawar * IHEVCE_CHROMA_SHUFFLEMASK_HBD
68*c83a76b0SSuyog Pawar * g_ai4_ihevc_trans_8_intr_avx2
69*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_8_intr_avx2
70*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_intr_8_avx2
71*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_32_intr_16_avx2
72*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16_intr_odd_avx2
73*c83a76b0SSuyog Pawar * g_ai2_ihevc_trans_16_intr_even_avx2
74*c83a76b0SSuyog Pawar 
75*c83a76b0SSuyog Pawar *
76*c83a76b0SSuyog Pawar * @remarks
77*c83a76b0SSuyog Pawar *  None
78*c83a76b0SSuyog Pawar *
79*c83a76b0SSuyog Pawar *******************************************************************************
80*c83a76b0SSuyog Pawar */
81*c83a76b0SSuyog Pawar 
82*c83a76b0SSuyog Pawar #include "ihevc_typedefs.h"
83*c83a76b0SSuyog Pawar #include "ihevc_macros.h"
84*c83a76b0SSuyog Pawar 
85*c83a76b0SSuyog Pawar #include "ihevc_platform_macros.h"
86*c83a76b0SSuyog Pawar #include "ihevc_func_selector.h"
87*c83a76b0SSuyog Pawar #include "ihevc_macros.h"
88*c83a76b0SSuyog Pawar #include "ihevc_trans_tables.h"
89*c83a76b0SSuyog Pawar #include "ihevc_defs.h"
90*c83a76b0SSuyog Pawar 
91*c83a76b0SSuyog Pawar const WORD32 g_ihevc_iquant_scales[6] =
92*c83a76b0SSuyog Pawar {
93*c83a76b0SSuyog Pawar     40, 45, 51, 57, 64, 72
94*c83a76b0SSuyog Pawar };
95*c83a76b0SSuyog Pawar 
96*c83a76b0SSuyog Pawar /*Multiplied by 16 for flat scale coeff */
97*c83a76b0SSuyog Pawar const WORD32 g_ihevc_iquant_scales_flat_scale[6] =
98*c83a76b0SSuyog Pawar {
99*c83a76b0SSuyog Pawar     640, 720, 816, 912, 1024, 1152
100*c83a76b0SSuyog Pawar };
101*c83a76b0SSuyog Pawar 
102*c83a76b0SSuyog Pawar const WORD16 g_ihevc_iquant_intr_scales[6][8] =
103*c83a76b0SSuyog Pawar {
104*c83a76b0SSuyog Pawar     { 40, 40, 40, 40, 40, 40, 40, 40 },
105*c83a76b0SSuyog Pawar     { 45, 45, 45, 45, 45, 45, 45, 45 },
106*c83a76b0SSuyog Pawar     { 51, 51, 51, 51, 51, 51, 51, 51 },
107*c83a76b0SSuyog Pawar     { 57, 57, 57, 57, 57, 57, 57, 57 },
108*c83a76b0SSuyog Pawar     { 64, 64, 64, 64, 64, 64, 64, 64 },
109*c83a76b0SSuyog Pawar     { 72, 72, 72, 72, 72, 72, 72, 72 }
110*c83a76b0SSuyog Pawar };
111*c83a76b0SSuyog Pawar 
112*c83a76b0SSuyog Pawar const WORD32 g_ihevc_quant_scales[6] =
113*c83a76b0SSuyog Pawar {
114*c83a76b0SSuyog Pawar     26214, 23302, 20560, 18396, 16384, 14564
115*c83a76b0SSuyog Pawar };
116*c83a76b0SSuyog Pawar 
117*c83a76b0SSuyog Pawar //DST coeffs
118*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_4_ttype1[3][4] =
119*c83a76b0SSuyog Pawar {
120*c83a76b0SSuyog Pawar     { 55, 55, 55, 55 },
121*c83a76b0SSuyog Pawar     { 29, 29, 29, 29 },
122*c83a76b0SSuyog Pawar     { 74, 74, 74, 74 }
123*c83a76b0SSuyog Pawar };
124*c83a76b0SSuyog Pawar 
125*c83a76b0SSuyog Pawar //DCT coeffs
126*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_4_ttype0[3][4] =
127*c83a76b0SSuyog Pawar {
128*c83a76b0SSuyog Pawar     { 36, 36, 36, 36 },
129*c83a76b0SSuyog Pawar     { 64, 64, 64, 64 },
130*c83a76b0SSuyog Pawar     { 83, 83, 83, 83 }
131*c83a76b0SSuyog Pawar };
132*c83a76b0SSuyog Pawar 
133*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_dst_4[4][4] =
134*c83a76b0SSuyog Pawar {
135*c83a76b0SSuyog Pawar     { 29, 55, 74, 84 },
136*c83a76b0SSuyog Pawar     { 74, 74, 0, -74 },
137*c83a76b0SSuyog Pawar     { 84, -29, -74, 55 },
138*c83a76b0SSuyog Pawar     { 55, -84, 74, -29 }
139*c83a76b0SSuyog Pawar };
140*c83a76b0SSuyog Pawar 
141*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_dst_intr_4[3][4] =
142*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
143*c83a76b0SSuyog Pawar     { 29, 29, 29, 29 },
144*c83a76b0SSuyog Pawar     { 55, 55, 55, 55 },
145*c83a76b0SSuyog Pawar     { 74, 74, 74, 74 }
146*c83a76b0SSuyog Pawar };
147*c83a76b0SSuyog Pawar 
148*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_4[4][4] =
149*c83a76b0SSuyog Pawar {
150*c83a76b0SSuyog Pawar     { 64,  64,  64,  64 },
151*c83a76b0SSuyog Pawar     { 83,  36, -36, -83 },
152*c83a76b0SSuyog Pawar     { 64, -64, -64,  64 },
153*c83a76b0SSuyog Pawar     { 36, -83,  83, -36 }
154*c83a76b0SSuyog Pawar };
155*c83a76b0SSuyog Pawar 
156*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_4_transpose[4][4] =
157*c83a76b0SSuyog Pawar {
158*c83a76b0SSuyog Pawar     { 64,  83,  64,  36 },
159*c83a76b0SSuyog Pawar     { 64,  36, -64, -83 },
160*c83a76b0SSuyog Pawar     { 64, -36, -64,  83 },
161*c83a76b0SSuyog Pawar     { 64, -83,  64, -36 }
162*c83a76b0SSuyog Pawar };
163*c83a76b0SSuyog Pawar 
164*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_4_intr[3][4] =
165*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
166*c83a76b0SSuyog Pawar     { 64, 64, 64, 64 },
167*c83a76b0SSuyog Pawar     { 83, 83, 83, 83 },
168*c83a76b0SSuyog Pawar     { 36, 36, 36, 36 }
169*c83a76b0SSuyog Pawar };
170*c83a76b0SSuyog Pawar 
171*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_4_intr[8] = { 64, 64, 83, 36, 64, -64, 36, -83 };
172*c83a76b0SSuyog Pawar 
173*c83a76b0SSuyog Pawar 
174*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_8[8][8] =
175*c83a76b0SSuyog Pawar {
176*c83a76b0SSuyog Pawar     { 64,  64,  64,  64,  64,  64,  64,  64 },
177*c83a76b0SSuyog Pawar     { 89,  75,  50,  18, -18, -50, -75, -89 },
178*c83a76b0SSuyog Pawar     { 83,  36, -36, -83, -83, -36,  36,  83 },
179*c83a76b0SSuyog Pawar     { 75, -18, -89, -50,  50,  89,  18, -75 },
180*c83a76b0SSuyog Pawar     { 64, -64, -64,  64,  64, -64, -64,  64 },
181*c83a76b0SSuyog Pawar     { 50, -89,  18,  75, -75, -18,  89, -50 },
182*c83a76b0SSuyog Pawar     { 36, -83,  83, -36, -36,  83, -83,  36 },
183*c83a76b0SSuyog Pawar     { 18, -50,  75, -89,  89, -75,  50, -18 }
184*c83a76b0SSuyog Pawar };
185*c83a76b0SSuyog Pawar 
186*c83a76b0SSuyog Pawar /* Used by itrans_recon_8x8 */
187*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_8_transpose[8][8] =
188*c83a76b0SSuyog Pawar {
189*c83a76b0SSuyog Pawar     { 64,  89,  83,  75,  64,  50,  36,  18 },
190*c83a76b0SSuyog Pawar     { 64,  75,  36, -18, -64, -89, -83, -50 },
191*c83a76b0SSuyog Pawar     { 64,  50, -36, -89, -64,  18,  83,  75 },
192*c83a76b0SSuyog Pawar     { 64,  18, -83, -50,  64,  75, -36, -89 },
193*c83a76b0SSuyog Pawar     { 64, -18, -83,  50,  64, -75, -36,  89 },
194*c83a76b0SSuyog Pawar     { 64, -50, -36,  89, -64, -18,  83, -75 },
195*c83a76b0SSuyog Pawar     { 64, -75,  36,  18, -64,  89, -83,  50 },
196*c83a76b0SSuyog Pawar     { 64, -89,  83, -75,  64, -50,  36, -18 }
197*c83a76b0SSuyog Pawar };
198*c83a76b0SSuyog Pawar 
199*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_8_intr[7][4] =
200*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
201*c83a76b0SSuyog Pawar     { 64, 64, 64, 64 },
202*c83a76b0SSuyog Pawar     { 83, 83, 83, 83 },
203*c83a76b0SSuyog Pawar     { 36, 36, 36, 36 },
204*c83a76b0SSuyog Pawar     { 75, 75, 75, 75 },
205*c83a76b0SSuyog Pawar     { 18, 18, 18, 18 },
206*c83a76b0SSuyog Pawar     { 89, 89, 89, 89 },
207*c83a76b0SSuyog Pawar     { 50, 50, 50, 50 },
208*c83a76b0SSuyog Pawar };
209*c83a76b0SSuyog Pawar 
210*c83a76b0SSuyog Pawar 
211*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_8_intr[8][8] =
212*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
213*c83a76b0SSuyog Pawar     { 64,  64,  64,  64,  64,  64,  64,  64 },
214*c83a76b0SSuyog Pawar     { 89,  75,  18,  50,  89,  75,  18,  50 },
215*c83a76b0SSuyog Pawar     { 83,  36,  83,  36,  83,  36,  83,  36 },
216*c83a76b0SSuyog Pawar     { 75, -18, -50, -89,  75, -18, -50, -89 },
217*c83a76b0SSuyog Pawar     { 64, -64,  64, -64,  64, -64,  64, -64 },
218*c83a76b0SSuyog Pawar     { 50, -89,  75,  18,  50, -89,  75,  18 },
219*c83a76b0SSuyog Pawar     { 36, -83,  36, -83,  36, -83,  36, -83 },
220*c83a76b0SSuyog Pawar     { 18, -50, -89,  75,  18, -50, -89,  75 }
221*c83a76b0SSuyog Pawar };
222*c83a76b0SSuyog Pawar 
223*c83a76b0SSuyog Pawar 
224*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_intr_even_8[3][4] =
225*c83a76b0SSuyog Pawar {
226*c83a76b0SSuyog Pawar     { 64, 64, 64, 64 },
227*c83a76b0SSuyog Pawar     { 83, 83, 83, 83 },
228*c83a76b0SSuyog Pawar     { 36, 36, 36, 36 },
229*c83a76b0SSuyog Pawar };
230*c83a76b0SSuyog Pawar 
231*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_intr_odd_8[4][4] =
232*c83a76b0SSuyog Pawar {
233*c83a76b0SSuyog Pawar     { 89, 89, 89, 89 },
234*c83a76b0SSuyog Pawar     { 75, 75, 75, 75 },
235*c83a76b0SSuyog Pawar     { 50, 50, 50, 50 },
236*c83a76b0SSuyog Pawar     { 18, 18, 18, 18 }
237*c83a76b0SSuyog Pawar };
238*c83a76b0SSuyog Pawar 
239*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16[16][16] =
240*c83a76b0SSuyog Pawar {
241*c83a76b0SSuyog Pawar     { 64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64 },
242*c83a76b0SSuyog Pawar     { 90,  87,  80,  70,  57,  43,  25,   9,  -9, -25, -43, -57, -70, -80, -87, -90 },
243*c83a76b0SSuyog Pawar     { 89,  75,  50,  18, -18, -50, -75, -89, -89, -75, -50, -18,  18,  50,  75,  89 },
244*c83a76b0SSuyog Pawar     { 87,  57,   9, -43, -80, -90, -70, -25,  25,  70,  90,  80,  43,  -9, -57, -87 },
245*c83a76b0SSuyog Pawar     { 83,  36, -36, -83, -83, -36,  36,  83,  83,  36, -36, -83, -83, -36,  36,  83 },
246*c83a76b0SSuyog Pawar     { 80,   9, -70, -87, -25,  57,  90,  43, -43, -90, -57,  25,  87,  70,  -9, -80 },
247*c83a76b0SSuyog Pawar     { 75, -18, -89, -50,  50,  89,  18, -75, -75,  18,  89,  50, -50, -89, -18,  75 },
248*c83a76b0SSuyog Pawar     { 70, -43, -87,   9,  90,  25, -80, -57,  57,  80, -25, -90,  -9,  87,  43, -70 },
249*c83a76b0SSuyog Pawar     { 64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64 },
250*c83a76b0SSuyog Pawar     { 57, -80, -25,  90,  -9, -87,  43,  70, -70, -43,  87,   9, -90,  25,  80, -57 },
251*c83a76b0SSuyog Pawar     { 50, -89,  18,  75, -75, -18,  89, -50, -50,  89, -18, -75,  75,  18, -89,  50 },
252*c83a76b0SSuyog Pawar     { 43, -90,  57,  25, -87,  70,   9, -80,  80,  -9, -70,  87, -25, -57,  90, -43 },
253*c83a76b0SSuyog Pawar     { 36, -83,  83, -36, -36,  83, -83,  36,  36, -83,  83, -36, -36,  83, -83,  36 },
254*c83a76b0SSuyog Pawar     { 25, -70,  90, -80,  43,   9, -57,  87, -87,  57,  -9, -43,  80, -90,  70, -25 },
255*c83a76b0SSuyog Pawar     { 18, -50,  75, -89,  89, -75,  50, -18, -18,  50, -75,  89, -89,  75, -50,  18 },
256*c83a76b0SSuyog Pawar     {  9, -25,  43, -57,  70, -80,  87, -90,  90, -87,  80, -70,  57, -43,  25,  -9 }
257*c83a76b0SSuyog Pawar };
258*c83a76b0SSuyog Pawar 
259*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_16[16][8] =
260*c83a76b0SSuyog Pawar {
261*c83a76b0SSuyog Pawar     { 64,  64,  64,  64,  64,  64,  64,  64 },
262*c83a76b0SSuyog Pawar     { 90,  87,  80,  70,  57,  43,  25,   9 },
263*c83a76b0SSuyog Pawar     { 89,  75,  50,  18, -18, -50, -75, -89 },
264*c83a76b0SSuyog Pawar     { 87,  57,   9, -43, -80, -90, -70, -25 },
265*c83a76b0SSuyog Pawar     { 83,  36, -36, -83, -83, -36,  36,  83 },
266*c83a76b0SSuyog Pawar     { 80,   9, -70, -87, -25,  57,  90,  43 },
267*c83a76b0SSuyog Pawar     { 75, -18, -89, -50,  50,  89,  18, -75 },
268*c83a76b0SSuyog Pawar     { 70, -43, -87,   9,  90,  25, -80, -57 },
269*c83a76b0SSuyog Pawar     { 64, -64, -64,  64,  64, -64, -64,  64 },
270*c83a76b0SSuyog Pawar     { 57, -80, -25,  90,  -9, -87,  43,  70 },
271*c83a76b0SSuyog Pawar     { 50, -89,  18,  75, -75, -18,  89, -50 },
272*c83a76b0SSuyog Pawar     { 43, -90,  57,  25, -87,  70,   9, -80 },
273*c83a76b0SSuyog Pawar     { 36, -83,  83, -36, -36,  83, -83,  36 },
274*c83a76b0SSuyog Pawar     { 25, -70,  90, -80,  43,   9, -57,  87 },
275*c83a76b0SSuyog Pawar     { 18, -50,  75, -89,  89, -75,  50, -18 },
276*c83a76b0SSuyog Pawar     {  9, -25,  43, -57,  70, -80,  87, -90}};
277*c83a76b0SSuyog Pawar 
278*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16_transpose[1][16] =
279*c83a76b0SSuyog Pawar {
280*c83a76b0SSuyog Pawar     { 64, 90, 89, 87, 83, 80, 75, 70, 64, 57, 50, 43, 36, 25, 18, 9 }
281*c83a76b0SSuyog Pawar };
282*c83a76b0SSuyog Pawar 
283*c83a76b0SSuyog Pawar const WORD32 g_ai2_ihevc_trans_32_intr_8[8][4] =
284*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
285*c83a76b0SSuyog Pawar     { 90, 90, 90, 90 },
286*c83a76b0SSuyog Pawar     { 87, 87, 87, 87 },
287*c83a76b0SSuyog Pawar     { 80, 80, 80, 80 },
288*c83a76b0SSuyog Pawar     { 70, 70, 70, 70 },
289*c83a76b0SSuyog Pawar     { 57, 57, 57, 57 },
290*c83a76b0SSuyog Pawar     { 43, 43, 43, 43 },
291*c83a76b0SSuyog Pawar     { 25, 25, 25, 25 },
292*c83a76b0SSuyog Pawar     {  9,  9,  9,  9 }
293*c83a76b0SSuyog Pawar };
294*c83a76b0SSuyog Pawar 
295*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_16_even[7][4] =
296*c83a76b0SSuyog Pawar {
297*c83a76b0SSuyog Pawar     { 64, 64, 64, 64 },
298*c83a76b0SSuyog Pawar     { 89, 89, 89, 89 },
299*c83a76b0SSuyog Pawar     { 75, 75, 75, 75 },
300*c83a76b0SSuyog Pawar     { 83, 83, 83, 83 },
301*c83a76b0SSuyog Pawar     { 36, 36, 36, 36 },
302*c83a76b0SSuyog Pawar     { 18, 18, 18, 18 },
303*c83a76b0SSuyog Pawar     { 50, 50, 50, 50 },
304*c83a76b0SSuyog Pawar };
305*c83a76b0SSuyog Pawar 
306*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_16_odd[8][4] =
307*c83a76b0SSuyog Pawar {
308*c83a76b0SSuyog Pawar     { 90, 90, 90, 90 },
309*c83a76b0SSuyog Pawar     { 87, 87, 87, 87 },
310*c83a76b0SSuyog Pawar     { 80, 80, 80, 80 },
311*c83a76b0SSuyog Pawar     { 70, 70, 70, 70 },
312*c83a76b0SSuyog Pawar     { 57, 57, 57, 57 },
313*c83a76b0SSuyog Pawar     { 43, 43, 43, 43 },
314*c83a76b0SSuyog Pawar     { 25, 25, 25, 25 },
315*c83a76b0SSuyog Pawar     { 9,  9,  9,  9  }
316*c83a76b0SSuyog Pawar };
317*c83a76b0SSuyog Pawar 
318*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_32_transpose[1][32] =
319*c83a76b0SSuyog Pawar {
320*c83a76b0SSuyog Pawar     { 64, 90, 90, 90, 89, 88, 87, 85, 83, 82, 80, 78, 75, 73, 70, 67, 64, 61, 57, 54, 50, 46, 43, 38, 36, 31, 25, 22, 18, 13, 9, 4 }
321*c83a76b0SSuyog Pawar };
322*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_32[32][32] =
323*c83a76b0SSuyog Pawar {
324*c83a76b0SSuyog Pawar     { 64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64 },
325*c83a76b0SSuyog Pawar     { 90,  90,  88,  85,  82,  78,  73,  67,  61,  54,  46,  38,  31,  22,  13,   4,  -4, -13, -22, -31, -38, -46, -54, -61, -67, -73, -78, -82, -85, -88, -90, -90 },
326*c83a76b0SSuyog Pawar     { 90,  87,  80,  70,  57,  43,  25,   9,  -9, -25, -43, -57, -70, -80, -87, -90, -90, -87, -80, -70, -57, -43, -25,  -9,   9,  25,  43,  57,  70,  80,  87,  90 },
327*c83a76b0SSuyog Pawar     { 90,  82,  67,  46,  22,  -4, -31, -54, -73, -85, -90, -88, -78, -61, -38, -13,  13,  38,  61,  78,  88,  90,  85,  73,  54,  31,   4, -22, -46, -67, -82, -90 },
328*c83a76b0SSuyog Pawar     { 89,  75,  50,  18, -18, -50, -75, -89, -89, -75, -50, -18,  18,  50,  75,  89,  89,  75,  50,  18, -18, -50, -75, -89, -89, -75, -50, -18,  18,  50,  75,  89 },
329*c83a76b0SSuyog Pawar     { 88,  67,  31, -13, -54, -82, -90, -78, -46,  -4,  38,  73,  90,  85,  61,  22, -22, -61, -85, -90, -73, -38,   4,  46,  78,  90,  82,  54,  13, -31, -67, -88 },
330*c83a76b0SSuyog Pawar     { 87,  57,   9, -43, -80, -90, -70, -25,  25,  70,  90,  80,  43,  -9, -57, -87, -87, -57,  -9,  43,  80,  90,  70,  25, -25, -70, -90, -80, -43,   9,  57,  87 },
331*c83a76b0SSuyog Pawar     { 85,  46, -13, -67, -90, -73, -22,  38,  82,  88,  54,  -4, -61, -90, -78, -31,  31,  78,  90,  61,   4, -54, -88, -82, -38,  22,  73,  90,  67,  13, -46, -85 },
332*c83a76b0SSuyog Pawar     { 83,  36, -36, -83, -83, -36,  36,  83,  83,  36, -36, -83, -83, -36,  36,  83,  83,  36, -36, -83, -83, -36,  36,  83,  83,  36, -36, -83, -83, -36,  36,  83 },
333*c83a76b0SSuyog Pawar     { 82,  22, -54, -90, -61,  13,  78,  85,  31, -46, -90, -67,   4,  73,  88,  38, -38, -88, -73,  -4,  67,  90,  46, -31, -85, -78, -13,  61,  90,  54, -22, -82 },
334*c83a76b0SSuyog Pawar     { 80,   9, -70, -87, -25,  57,  90,  43, -43, -90, -57,  25,  87,  70,  -9, -80, -80,  -9,  70,  87,  25, -57, -90, -43,  43,  90,  57, -25, -87, -70,   9,  80 },
335*c83a76b0SSuyog Pawar     { 78,  -4, -82, -73,  13,  85,  67, -22, -88, -61,  31,  90,  54, -38, -90, -46,  46,  90,  38, -54, -90, -31,  61,  88,  22, -67, -85, -13,  73,  82,   4, -78 },
336*c83a76b0SSuyog Pawar     { 75, -18, -89, -50,  50,  89,  18, -75, -75,  18,  89,  50, -50, -89, -18,  75,  75, -18, -89, -50,  50,  89,  18, -75, -75,  18,  89,  50, -50, -89, -18,  75 },
337*c83a76b0SSuyog Pawar     { 73, -31, -90, -22,  78,  67, -38, -90, -13,  82,  61, -46, -88,  -4,  85,  54, -54, -85,   4,  88,  46, -61, -82,  13,  90,  38, -67, -78,  22,  90,  31, -73 },
338*c83a76b0SSuyog Pawar     { 70, -43, -87,   9,  90,  25, -80, -57,  57,  80, -25, -90,  -9,  87,  43, -70, -70,  43,  87,  -9, -90, -25,  80,  57, -57, -80,  25,  90,   9, -87, -43,  70 },
339*c83a76b0SSuyog Pawar     { 67, -54, -78,  38,  85, -22, -90,   4,  90,  13, -88, -31,  82,  46, -73, -61,  61,  73, -46, -82,  31,  88, -13, -90,  -4,  90,  22, -85, -38,  78,  54, -67 },
340*c83a76b0SSuyog Pawar     { 64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64 },
341*c83a76b0SSuyog Pawar     { 61, -73, -46,  82,  31, -88, -13,  90,  -4, -90,  22,  85, -38, -78,  54,  67, -67, -54,  78,  38, -85, -22,  90,   4, -90,  13,  88, -31, -82,  46,  73, -61 },
342*c83a76b0SSuyog Pawar     { 57, -80, -25,  90,  -9, -87,  43,  70, -70, -43,  87,   9, -90,  25,  80, -57, -57,  80,  25, -90,   9,  87, -43, -70,  70,  43, -87,  -9,  90, -25, -80,  57 },
343*c83a76b0SSuyog Pawar     { 54, -85,  -4,  88, -46, -61,  82,  13, -90,  38,  67, -78, -22,  90, -31, -73,  73,  31, -90,  22,  78, -67, -38,  90, -13, -82,  61,  46, -88,   4,  85, -54 },
344*c83a76b0SSuyog Pawar     { 50, -89,  18,  75, -75, -18,  89, -50, -50,  89, -18, -75,  75,  18, -89,  50,  50, -89,  18,  75, -75, -18,  89, -50, -50,  89, -18, -75,  75,  18, -89,  50 },
345*c83a76b0SSuyog Pawar     { 46, -90,  38,  54, -90,  31,  61, -88,  22,  67, -85,  13,  73, -82,   4,  78, -78,  -4,  82, -73, -13,  85, -67, -22,  88, -61, -31,  90, -54, -38,  90, -46 },
346*c83a76b0SSuyog Pawar     { 43, -90,  57,  25, -87,  70,   9, -80,  80,  -9, -70,  87, -25, -57,  90, -43, -43,  90, -57, -25,  87, -70,  -9,  80, -80,   9,  70, -87,  25,  57, -90,  43 },
347*c83a76b0SSuyog Pawar     { 38, -88,  73,  -4, -67,  90, -46, -31,  85, -78,  13,  61, -90,  54,  22, -82,  82, -22, -54,  90, -61, -13,  78, -85,  31,  46, -90,  67,   4, -73,  88, -38 },
348*c83a76b0SSuyog Pawar     { 36, -83,  83, -36, -36,  83, -83,  36,  36, -83,  83, -36, -36,  83, -83,  36,  36, -83,  83, -36, -36,  83, -83,  36,  36, -83,  83, -36, -36,  83, -83,  36 },
349*c83a76b0SSuyog Pawar     { 31, -78,  90, -61,   4,  54, -88,  82, -38, -22,  73, -90,  67, -13, -46,  85, -85,  46,  13, -67,  90, -73,  22,  38, -82,  88, -54,  -4,  61, -90,  78, -31 },
350*c83a76b0SSuyog Pawar     { 25, -70,  90, -80,  43,   9, -57,  87, -87,  57,  -9, -43,  80, -90,  70, -25, -25,  70, -90,  80, -43,  -9,  57, -87,  87, -57,   9,  43, -80,  90, -70,  25 },
351*c83a76b0SSuyog Pawar     { 22, -61,  85, -90,  73, -38,  -4,  46, -78,  90, -82,  54, -13, -31,  67, -88,  88, -67,  31,  13, -54,  82, -90,  78, -46,   4,  38, -73,  90, -85,  61, -22 },
352*c83a76b0SSuyog Pawar     { 18, -50,  75, -89,  89, -75,  50, -18, -18,  50, -75,  89, -89,  75, -50,  18,  18, -50,  75, -89,  89, -75,  50, -18, -18,  50, -75,  89, -89,  75, -50,  18 },
353*c83a76b0SSuyog Pawar     { 13, -38,  61, -78,  88, -90,  85, -73,  54, -31,   4,  22, -46,  67, -82,  90, -90,  82, -67,  46, -22,  -4,  31, -54,  73, -85,  90, -88,  78, -61,  38, -13 },
354*c83a76b0SSuyog Pawar     {  9, -25,  43, -57,  70, -80,  87, -90,  90, -87,  80, -70,  57, -43,  25,  -9,  -9,  25, -43,  57, -70,  80, -87,  90, -90,  87, -80,  70, -57,  43, -25,   9 },
355*c83a76b0SSuyog Pawar     {  4, -13,  22, -31,  38, -46,  54, -61,  67, -73,  78, -82,  85, -88,  90, -90,  90, -90,  88, -85,  82, -78,  73, -67,  61, -54,  46, -38,  31, -22,  13,  -4 }
356*c83a76b0SSuyog Pawar };
357*c83a76b0SSuyog Pawar 
358*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_32[32][16] =
359*c83a76b0SSuyog Pawar {
360*c83a76b0SSuyog Pawar     { 64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64},
361*c83a76b0SSuyog Pawar     { 90,  90,  88,  85,  82,  78,  73,  67,  61,  54,  46,  38,  31,  22,  13,   4},
362*c83a76b0SSuyog Pawar     { 90,  87,  80,  70,  57,  43,  25,   9,  -9, -25, -43, -57, -70, -80, -87, -90},
363*c83a76b0SSuyog Pawar     { 90,  82,  67,  46,  22,  -4, -31, -54, -73, -85, -90, -88, -78, -61, -38, -13},
364*c83a76b0SSuyog Pawar     { 89,  75,  50,  18, -18, -50, -75, -89, -89, -75, -50, -18,  18,  50,  75,  89},
365*c83a76b0SSuyog Pawar     { 88,  67,  31, -13, -54, -82, -90, -78, -46,  -4,  38,  73,  90,  85,  61,  22},
366*c83a76b0SSuyog Pawar     { 87,  57,   9, -43, -80, -90, -70, -25,  25,  70,  90,  80,  43,  -9, -57, -87},
367*c83a76b0SSuyog Pawar     { 85,  46, -13, -67, -90, -73, -22,  38,  82,  88,  54,  -4, -61, -90, -78, -31},
368*c83a76b0SSuyog Pawar     { 83,  36, -36, -83, -83, -36,  36,  83,  83,  36, -36, -83, -83, -36,  36,  83},
369*c83a76b0SSuyog Pawar     { 82,  22, -54, -90, -61,  13,  78,  85,  31, -46, -90, -67,   4,  73,  88,  38},
370*c83a76b0SSuyog Pawar     { 80,   9, -70, -87, -25,  57,  90,  43, -43, -90, -57,  25,  87,  70,  -9, -80},
371*c83a76b0SSuyog Pawar     { 78,  -4, -82, -73,  13,  85,  67, -22, -88, -61,  31,  90,  54, -38, -90, -46},
372*c83a76b0SSuyog Pawar     { 75, -18, -89, -50,  50,  89,  18, -75, -75,  18,  89,  50, -50, -89, -18,  75},
373*c83a76b0SSuyog Pawar     { 73, -31, -90, -22,  78,  67, -38, -90, -13,  82,  61, -46, -88,  -4,  85,  54},
374*c83a76b0SSuyog Pawar     { 70, -43, -87,   9,  90,  25, -80, -57,  57,  80, -25, -90,  -9,  87,  43, -70},
375*c83a76b0SSuyog Pawar     { 67, -54, -78,  38,  85, -22, -90,   4,  90,  13, -88, -31,  82,  46, -73, -61},
376*c83a76b0SSuyog Pawar     { 64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64,  64, -64, -64,  64},
377*c83a76b0SSuyog Pawar     { 61, -73, -46,  82,  31, -88, -13,  90,  -4, -90,  22,  85, -38, -78,  54,  67},
378*c83a76b0SSuyog Pawar     { 57, -80, -25,  90,  -9, -87,  43,  70, -70, -43,  87,   9, -90,  25,  80, -57},
379*c83a76b0SSuyog Pawar     { 54, -85,  -4,  88, -46, -61,  82,  13, -90,  38,  67, -78, -22,  90, -31, -73},
380*c83a76b0SSuyog Pawar     { 50, -89,  18,  75, -75, -18,  89, -50, -50,  89, -18, -75,  75,  18, -89,  50},
381*c83a76b0SSuyog Pawar     { 46, -90,  38,  54, -90,  31,  61, -88,  22,  67, -85,  13,  73, -82,   4,  78},
382*c83a76b0SSuyog Pawar     { 43, -90,  57,  25, -87,  70,   9, -80,  80,  -9, -70,  87, -25, -57,  90, -43},
383*c83a76b0SSuyog Pawar     { 38, -88,  73,  -4, -67,  90, -46, -31,  85, -78,  13,  61, -90,  54,  22, -82},
384*c83a76b0SSuyog Pawar     { 36, -83,  83, -36, -36,  83, -83,  36,  36, -83,  83, -36, -36,  83, -83,  36},
385*c83a76b0SSuyog Pawar     { 31, -78,  90, -61,   4,  54, -88,  82, -38, -22,  73, -90,  67, -13, -46,  85},
386*c83a76b0SSuyog Pawar     { 25, -70,  90, -80,  43,   9, -57,  87, -87,  57,  -9, -43,  80, -90,  70, -25},
387*c83a76b0SSuyog Pawar     { 22, -61,  85, -90,  73, -38,  -4,  46, -78,  90, -82,  54, -13, -31,  67, -88},
388*c83a76b0SSuyog Pawar     { 18, -50,  75, -89,  89, -75,  50, -18, -18,  50, -75,  89, -89,  75, -50,  18},
389*c83a76b0SSuyog Pawar     { 13, -38,  61, -78,  88, -90,  85, -73,  54, -31,   4,  22, -46,  67, -82,  90},
390*c83a76b0SSuyog Pawar     {  9, -25,  43, -57,  70, -80,  87, -90,  90, -87,  80, -70,  57, -43,  25,  -9},
391*c83a76b0SSuyog Pawar     {  4, -13,  22, -31,  38, -46,  54, -61,  67, -73,  78, -82,  85, -88,  90, -90}
392*c83a76b0SSuyog Pawar };
393*c83a76b0SSuyog Pawar 
394*c83a76b0SSuyog Pawar const WORD32 g_ai2_ihevc_trans_32_intr_16[15][4] =
395*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
396*c83a76b0SSuyog Pawar     { 90, 90, 90, 90 },
397*c83a76b0SSuyog Pawar     { 88, 88, 88, 88 },
398*c83a76b0SSuyog Pawar     { 85, 85, 85, 85 },
399*c83a76b0SSuyog Pawar     { 82, 82, 82, 82 },
400*c83a76b0SSuyog Pawar     { 78, 78, 78, 78 },
401*c83a76b0SSuyog Pawar     { 73, 73, 73, 73 },
402*c83a76b0SSuyog Pawar     { 67, 67, 67, 67 },
403*c83a76b0SSuyog Pawar     { 61, 61, 61, 61 },
404*c83a76b0SSuyog Pawar     { 54, 54, 54, 54 },
405*c83a76b0SSuyog Pawar     { 46, 46, 46, 46 },
406*c83a76b0SSuyog Pawar     { 38, 38, 38, 38 },
407*c83a76b0SSuyog Pawar     { 31, 31, 31, 31 },
408*c83a76b0SSuyog Pawar     { 22, 22, 22, 22 },
409*c83a76b0SSuyog Pawar     { 13, 13, 13, 13 },
410*c83a76b0SSuyog Pawar     { 4,  4,  4,  4  }
411*c83a76b0SSuyog Pawar };
412*c83a76b0SSuyog Pawar 
413*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16_intr_odd[32][8] =
414*c83a76b0SSuyog Pawar {
415*c83a76b0SSuyog Pawar     {  90,  87,  90,  87,  90,  87,  90,  87 },
416*c83a76b0SSuyog Pawar     {  70,  80,  70,  80,  70,  80,  70,  80 },
417*c83a76b0SSuyog Pawar     {  57,  43,  57,  43,  57,  43,  57,  43 },
418*c83a76b0SSuyog Pawar     {   9,  25,   9,  25,   9,  25,   9,  25 },
419*c83a76b0SSuyog Pawar     {  87,  57,  87,  57,  87,  57,  87,  57 },
420*c83a76b0SSuyog Pawar     { -43,   9, -43,   9, -43,   9, -43,   9 },
421*c83a76b0SSuyog Pawar     { -80, -90, -80, -90, -80, -90, -80, -90 },
422*c83a76b0SSuyog Pawar     { -25, -70, -25, -70, -25, -70, -25, -70 },
423*c83a76b0SSuyog Pawar     {  80,   9,  80,   9,  80,   9,  80,   9 },
424*c83a76b0SSuyog Pawar     { -87, -70, -87, -70, -87, -70, -87, -70 },
425*c83a76b0SSuyog Pawar     { -25,  57, -25,  57, -25,  57, -25,  57 },
426*c83a76b0SSuyog Pawar     {  43,  90,  43,  90,  43,  90,  43,  90 },
427*c83a76b0SSuyog Pawar     {  70, -43,  70, -43,  70, -43,  70, -43 },
428*c83a76b0SSuyog Pawar     {   9, -87,   9, -87,   9, -87,   9, -87 },
429*c83a76b0SSuyog Pawar     {  90,  25,  90,  25,  90,  25,  90,  25 },
430*c83a76b0SSuyog Pawar     { -57, -80, -57, -80, -57, -80, -57, -80 },
431*c83a76b0SSuyog Pawar     {  57, -80,  57, -80,  57, -80,  57, -80 },
432*c83a76b0SSuyog Pawar     {  90, -25,  90, -25,  90, -25,  90, -25 },
433*c83a76b0SSuyog Pawar     {  -9, -87,  -9, -87,  -9, -87,  -9, -87 },
434*c83a76b0SSuyog Pawar     {  70,  43,  70,  43,  70,  43,  70,  43 },
435*c83a76b0SSuyog Pawar     {  43, -90,  43, -90,  43, -90,  43, -90 },
436*c83a76b0SSuyog Pawar     {  25,  57,  25,  57,  25,  57,  25,  57 },
437*c83a76b0SSuyog Pawar     { -87,  70, -87,  70, -87,  70, -87,  70 },
438*c83a76b0SSuyog Pawar     { -80,   9, -80,   9, -80,   9, -80,   9 },
439*c83a76b0SSuyog Pawar     {  25, -70,  25, -70,  25, -70,  25, -70 },
440*c83a76b0SSuyog Pawar     { -80,  90, -80,  90, -80,  90, -80,  90 },
441*c83a76b0SSuyog Pawar     {  43,   9,  43,   9,  43,   9,  43,   9 },
442*c83a76b0SSuyog Pawar     {  87, -57,  87, -57,  87, -57,  87, -57 },
443*c83a76b0SSuyog Pawar     {   9, -25,   9, -25,   9, -25,   9, -25 },
444*c83a76b0SSuyog Pawar     { -57,  43, -57,  43, -57,  43, -57,  43 },
445*c83a76b0SSuyog Pawar     {  70, -80,  70, -80,  70, -80,  70, -80 },
446*c83a76b0SSuyog Pawar     { -90,  87, -90,  87, -90,  87, -90,  87 }
447*c83a76b0SSuyog Pawar };
448*c83a76b0SSuyog Pawar 
449*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16_intr_even[12][8] =
450*c83a76b0SSuyog Pawar {
451*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  64,  64,  64,  64 },
452*c83a76b0SSuyog Pawar     {  89,  75,  89,  75,  89,  75,  89,  75 },
453*c83a76b0SSuyog Pawar     {  18,  50,  18,  50,  18,  50,  18,  50 },
454*c83a76b0SSuyog Pawar     {  83,  36,  83,  36,  83,  36,  83,  36 },
455*c83a76b0SSuyog Pawar     {  75, -18,  75, -18,  75, -18,  75, -18 },
456*c83a76b0SSuyog Pawar     { -50, -89, -50, -89, -50, -89, -50, -89 },
457*c83a76b0SSuyog Pawar     {  64, -64,  64, -64,  64, -64,  64, -64 },
458*c83a76b0SSuyog Pawar     {  50, -89,  50, -89,  50, -89,  50, -89 },
459*c83a76b0SSuyog Pawar     {  75,  18,  75,  18,  75,  18,  75,  18 },
460*c83a76b0SSuyog Pawar     {  36, -83,  36, -83,  36, -83,  36, -83 },
461*c83a76b0SSuyog Pawar     {  18, -50,  18, -50,  18, -50,  18, -50 },
462*c83a76b0SSuyog Pawar     { -89,  75, -89,  75, -89,  75, -89,  75 }
463*c83a76b0SSuyog Pawar };
464*c83a76b0SSuyog Pawar 
465*c83a76b0SSuyog Pawar 
466*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_32_intr_even[22][8] =
467*c83a76b0SSuyog Pawar {
468*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  83,  36,  83,  36 },
469*c83a76b0SSuyog Pawar     {  64, -64,  64, -64,  36, -83,  36, -83 },
470*c83a76b0SSuyog Pawar     {  89,  18,  89,  18,  75,  50,  75,  50 },
471*c83a76b0SSuyog Pawar     {  75, -50,  75, -50, -18, -89, -18, -89 },
472*c83a76b0SSuyog Pawar     {  50,  75,  50,  75, -89,  18, -89,  18 },
473*c83a76b0SSuyog Pawar     {  18, -89,  18, -89, -50,  75, -50,  75 },
474*c83a76b0SSuyog Pawar 
475*c83a76b0SSuyog Pawar     {  90,  70,  90,  70,  87,  80,  87,  80 },
476*c83a76b0SSuyog Pawar     {   9,  57,   9,  57,  25,  43,  25,  43 },
477*c83a76b0SSuyog Pawar     {  87, -43,  87, -43,  57,   9,  57,   9 },
478*c83a76b0SSuyog Pawar     { -25, -80, -25, -80, -70, -90, -70, -90 },
479*c83a76b0SSuyog Pawar     {  80, -87,  80, -87,   9, -70,   9, -70 },
480*c83a76b0SSuyog Pawar     {  43, -25,  43, -25,  90,  57,  90,  57 },
481*c83a76b0SSuyog Pawar     {  70,   9,  70,   9, -43, -87, -43, -87 },
482*c83a76b0SSuyog Pawar     { -57,  90, -57,  90, -80,  25, -80,  25 },
483*c83a76b0SSuyog Pawar     {  57,  90,  57,  90, -80, -25, -80, -25 },
484*c83a76b0SSuyog Pawar     {  70,  -9,  70,  -9,  43, -87,  43, -87 },
485*c83a76b0SSuyog Pawar     {  43,  25,  43,  25, -90,  57, -90,  57 },
486*c83a76b0SSuyog Pawar     { -80, -87, -80, -87,   9,  70,   9,  70 },
487*c83a76b0SSuyog Pawar     {  25, -80,  25, -80, -70,  90, -70,  90 },
488*c83a76b0SSuyog Pawar     {  87,  43,  87,  43, -57,   9, -57,   9 },
489*c83a76b0SSuyog Pawar     {   9, -57,   9, -57, -25,  43, -25,  43 },
490*c83a76b0SSuyog Pawar     { -90,  70, -90,  70,  87, -80,  87, -80 }
491*c83a76b0SSuyog Pawar };
492*c83a76b0SSuyog Pawar 
493*c83a76b0SSuyog Pawar 
494*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_32_intr_odd[32][16] =
495*c83a76b0SSuyog Pawar {
496*c83a76b0SSuyog Pawar     {  90,  85,  90,  85,  90,  88,  90,  88,  61,  82,  61,  82, -73, -46, -73, -46 },
497*c83a76b0SSuyog Pawar     {  67,  82,  67,  82,  73,  78,  73,  78,  90,  31,  90,  31, -13, -88, -13, -88 },
498*c83a76b0SSuyog Pawar     {  61,  38,  61,  38,  54,  46,  54,  46,  -4,  85,  -4,  85, -90,  22, -90,  22 },
499*c83a76b0SSuyog Pawar     {   4,  31,   4,  31,  13,  22,  13,  22,  67, -38,  67, -38,  54, -78,  54, -78 },
500*c83a76b0SSuyog Pawar 
501*c83a76b0SSuyog Pawar     {  90,  46,  90,  46,  82,  67,  82,  67,  54,  88,  54,  88, -85,  -4, -85,  -4 },
502*c83a76b0SSuyog Pawar     { -54,  22, -54,  22, -31,  -4, -31,  -4,  13, -46,  13, -46,  82, -61,  82, -61 },
503*c83a76b0SSuyog Pawar     { -73, -88, -73, -88, -85, -90, -85, -90, -90, -78, -90, -78,  38,  67,  38,  67 },
504*c83a76b0SSuyog Pawar     { -13, -78, -13, -78, -38, -61, -38, -61, -73, -22, -73, -22, -31,  90, -31,  90 },
505*c83a76b0SSuyog Pawar 
506*c83a76b0SSuyog Pawar     {  88, -13,  88, -13,  67,  31,  67,  31,  46,  54,  46,  54, -90,  38, -90,  38 },
507*c83a76b0SSuyog Pawar     { -78, -54, -78, -54, -90, -82, -90, -82, -88, -90, -88, -90,  61,  31,  61,  31 },
508*c83a76b0SSuyog Pawar     { -46,  73, -46,  73,  -4,  38,  -4,  38,  22,  13,  22,  13,  67, -85,  67, -85 },
509*c83a76b0SSuyog Pawar     {  22,  90,  22,  90,  61,  85,  61,  85,  78,  73,  78,  73,   4, -82,   4, -82 },
510*c83a76b0SSuyog Pawar 
511*c83a76b0SSuyog Pawar     {  85, -67,  85, -67,  46, -13,  46, -13,  38,  -4,  38,  -4, -88,  73, -88,  73 },
512*c83a76b0SSuyog Pawar     {  38, -90,  38, -90, -22, -73, -22, -73, -31, -67, -31, -67, -46,  90, -46,  90 },
513*c83a76b0SSuyog Pawar     {  82,  -4,  82,  -4,  88,  54,  88,  54,  85,  61,  85,  61, -78,  13, -78,  13 },
514*c83a76b0SSuyog Pawar     { -31, -61, -31, -61, -78, -90, -78, -90, -82, -90, -82, -90,  22,  54,  22,  54 },
515*c83a76b0SSuyog Pawar 
516*c83a76b0SSuyog Pawar     {  82, -90,  82, -90,  22, -54,  22, -54,  31, -61,  31, -61, -78,  90, -78,  90 },
517*c83a76b0SSuyog Pawar     {  85, -61,  85, -61,  78,  13,  78,  13,  82,   4,  82,   4, -88,  54, -88,  54 },
518*c83a76b0SSuyog Pawar     {  31, -67,  31, -67, -46, -90, -46, -90, -38, -90, -38, -90, -22,  73, -22,  73 },
519*c83a76b0SSuyog Pawar     {  38,   4,  38,   4,  88,  73,  88,  73,  85,  67,  85,  67, -46, -13, -46, -13 },
520*c83a76b0SSuyog Pawar 
521*c83a76b0SSuyog Pawar     {  78, -73,  78, -73,  -4, -82,  -4, -82,  22, -90,  22, -90, -61,  85, -61,  85 },
522*c83a76b0SSuyog Pawar     { -22,  13, -22,  13,  67,  85,  67,  85,  46,  73,  46,  73,  -4, -38,  -4, -38 },
523*c83a76b0SSuyog Pawar     { -88,  90, -88,  90, -61,  31, -61,  31, -78,  54, -78,  54,  90, -82,  90, -82 },
524*c83a76b0SSuyog Pawar     { -46,  54, -46,  54, -90, -38, -90, -38, -88, -13, -88, -13,  67, -31,  67, -31 },
525*c83a76b0SSuyog Pawar 
526*c83a76b0SSuyog Pawar     {  73, -22,  73, -22, -31, -90, -31, -90,  13, -78,  13, -78, -38,  61, -38,  61 },
527*c83a76b0SSuyog Pawar     { -90,  78, -90,  78, -38,  67, -38,  67, -73,  88, -73,  88,  85, -90,  85, -90 },
528*c83a76b0SSuyog Pawar     { -13, -46, -13, -46,  82,  61,  82,  61,  54,  22,  54,  22, -31,   4, -31,   4 },
529*c83a76b0SSuyog Pawar     {  54, -88,  54, -88,  85,  -4,  85,  -4,  90, -46,  90, -46, -82,  67, -82,  67 },
530*c83a76b0SSuyog Pawar 
531*c83a76b0SSuyog Pawar     {  67,  38,  67,  38, -54, -78, -54, -78,   4, -31,   4, -31, -13,  22, -13,  22 },
532*c83a76b0SSuyog Pawar     {   4,  85,   4,  85, -90, -22, -90, -22, -61,  38, -61,  38,  54, -46,  54, -46 },
533*c83a76b0SSuyog Pawar     {  90, -31,  90, -31,  13, -88,  13, -88,  67, -82,  67, -82, -73,  78, -73,  78 },
534*c83a76b0SSuyog Pawar     { -61,  82, -61,  82, -73,  46, -73,  46, -90,  85, -90,  85,  90, -88,  90, -88 }
535*c83a76b0SSuyog Pawar 
536*c83a76b0SSuyog Pawar };
537*c83a76b0SSuyog Pawar 
538*c83a76b0SSuyog Pawar 
539*c83a76b0SSuyog Pawar /*Tables for itrans_recon functions*/
540*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16_even_packed[12][8] =
541*c83a76b0SSuyog Pawar {
542*c83a76b0SSuyog Pawar     {  83,  36,  83,  36,  83,  36,  83,  36 },
543*c83a76b0SSuyog Pawar 
544*c83a76b0SSuyog Pawar     {  36, -83,  36, -83,  36, -83,  36, -83 },
545*c83a76b0SSuyog Pawar 
546*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  64,  64,  64,  64 },
547*c83a76b0SSuyog Pawar 
548*c83a76b0SSuyog Pawar     {  64, -64,  64, -64,  64, -64,  64, -64 },
549*c83a76b0SSuyog Pawar 
550*c83a76b0SSuyog Pawar     {  89,  75,  89,  75,  89,  75,  89,  75 },
551*c83a76b0SSuyog Pawar 
552*c83a76b0SSuyog Pawar     {  50,  18,  50,  18,  50,  18,  50,  18 },
553*c83a76b0SSuyog Pawar 
554*c83a76b0SSuyog Pawar     {  75, -18,  75, -18,  75, -18,  75, -18 },
555*c83a76b0SSuyog Pawar 
556*c83a76b0SSuyog Pawar     {  89,  50,  89,  50,  89,  50,  89,  50 },
557*c83a76b0SSuyog Pawar 
558*c83a76b0SSuyog Pawar     {  50, -89,  50, -89,  50, -89,  50, -89 },
559*c83a76b0SSuyog Pawar 
560*c83a76b0SSuyog Pawar     {  18,  75,  18,  75,  18,  75,  18,  75 },
561*c83a76b0SSuyog Pawar 
562*c83a76b0SSuyog Pawar     {  18, -50,  18, -50,  18, -50,  18, -50 },
563*c83a76b0SSuyog Pawar 
564*c83a76b0SSuyog Pawar     {  75, -89,  75, -89,  75, -89,  75, -89 },
565*c83a76b0SSuyog Pawar 
566*c83a76b0SSuyog Pawar 
567*c83a76b0SSuyog Pawar };
568*c83a76b0SSuyog Pawar 
569*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_32_intr_packed[32][8] =
570*c83a76b0SSuyog Pawar {
571*c83a76b0SSuyog Pawar     {  90,  87,  90,  87,  90,  87,  90,  87 },
572*c83a76b0SSuyog Pawar 
573*c83a76b0SSuyog Pawar     {  80,  70,  80,  70,  80,  70,  80,  70 },
574*c83a76b0SSuyog Pawar 
575*c83a76b0SSuyog Pawar     {  57,  43,  57,  43,  57,  43,  57,  43 },
576*c83a76b0SSuyog Pawar 
577*c83a76b0SSuyog Pawar     {  25,   9,  25,   9,  25,   9,  25,   9 },
578*c83a76b0SSuyog Pawar 
579*c83a76b0SSuyog Pawar     {  87,  57,  87,  57,  87,  57,  87,  57 },
580*c83a76b0SSuyog Pawar 
581*c83a76b0SSuyog Pawar     {   9, -43,   9, -43,   9, -43,   9, -43 },
582*c83a76b0SSuyog Pawar 
583*c83a76b0SSuyog Pawar     {  80,  90,  80,  90,  80,  90,  80,  90 },
584*c83a76b0SSuyog Pawar 
585*c83a76b0SSuyog Pawar     {  70,  25,  70,  25,  70,  25,  70,  25 },
586*c83a76b0SSuyog Pawar 
587*c83a76b0SSuyog Pawar     {  80,   9,  80,   9,  80,   9,  80,   9 },
588*c83a76b0SSuyog Pawar 
589*c83a76b0SSuyog Pawar     {  70,  87,  70,  87,  70,  87,  70,  87 },
590*c83a76b0SSuyog Pawar 
591*c83a76b0SSuyog Pawar     { -25,  57, -25,  57, -25,  57, -25,  57 },
592*c83a76b0SSuyog Pawar 
593*c83a76b0SSuyog Pawar     {  90,  43,  90,  43,  90,  43,  90,  43 },
594*c83a76b0SSuyog Pawar 
595*c83a76b0SSuyog Pawar     {  70, -43,  70, -43,  70, -43,  70, -43 },
596*c83a76b0SSuyog Pawar 
597*c83a76b0SSuyog Pawar     { -87,   9, -87,   9, -87,   9, -87,   9 },
598*c83a76b0SSuyog Pawar 
599*c83a76b0SSuyog Pawar     {  90,  25,  90,  25,  90,  25,  90,  25 },
600*c83a76b0SSuyog Pawar 
601*c83a76b0SSuyog Pawar     {  80,  57,  80,  57,  80,  57,  80,  57 },
602*c83a76b0SSuyog Pawar 
603*c83a76b0SSuyog Pawar     {  57, -80,  57, -80,  57, -80,  57, -80 },
604*c83a76b0SSuyog Pawar 
605*c83a76b0SSuyog Pawar     { -25,  90, -25,  90, -25,  90, -25,  90 },
606*c83a76b0SSuyog Pawar 
607*c83a76b0SSuyog Pawar     {   9,  87,   9,  87,   9,  87,   9,  87 },
608*c83a76b0SSuyog Pawar 
609*c83a76b0SSuyog Pawar     {  43,  70,  43,  70,  43,  70,  43,  70 },
610*c83a76b0SSuyog Pawar 
611*c83a76b0SSuyog Pawar     {  43, -90,  43, -90,  43, -90,  43, -90 },
612*c83a76b0SSuyog Pawar 
613*c83a76b0SSuyog Pawar     {  57,  25,  57,  25,  57,  25,  57,  25 },
614*c83a76b0SSuyog Pawar 
615*c83a76b0SSuyog Pawar     { -87,  70, -87,  70, -87,  70, -87,  70 },
616*c83a76b0SSuyog Pawar 
617*c83a76b0SSuyog Pawar     {   9, -80,   9, -80,   9, -80,   9, -80 },
618*c83a76b0SSuyog Pawar 
619*c83a76b0SSuyog Pawar     {  25, -70,  25, -70,  25, -70,  25, -70 },
620*c83a76b0SSuyog Pawar 
621*c83a76b0SSuyog Pawar     {  90, -80,  90, -80,  90, -80,  90, -80 },
622*c83a76b0SSuyog Pawar 
623*c83a76b0SSuyog Pawar     {  43,   9,  43,   9,  43,   9,  43,   9 },
624*c83a76b0SSuyog Pawar 
625*c83a76b0SSuyog Pawar     { -57,  87, -57,  87, -57,  87, -57,  87 },
626*c83a76b0SSuyog Pawar 
627*c83a76b0SSuyog Pawar     {   9, -25,   9, -25,   9, -25,   9, -25 },
628*c83a76b0SSuyog Pawar 
629*c83a76b0SSuyog Pawar     {  43, -57,  43, -57,  43, -57,  43, -57 },
630*c83a76b0SSuyog Pawar 
631*c83a76b0SSuyog Pawar     {  70, -80,  70, -80,  70, -80,  70, -80 },
632*c83a76b0SSuyog Pawar 
633*c83a76b0SSuyog Pawar     {  87, -90,  87, -90,  87, -90,  87, -90 },
634*c83a76b0SSuyog Pawar 
635*c83a76b0SSuyog Pawar };
636*c83a76b0SSuyog Pawar 
637*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_32_intr_odd_packed[128][8] =
638*c83a76b0SSuyog Pawar {
639*c83a76b0SSuyog Pawar     /*o0*/
640*c83a76b0SSuyog Pawar     {  90,  90,  90,  90,  90,  90,  90,  90 },
641*c83a76b0SSuyog Pawar     {  88,  85,  88,  85,  88,  85,  88,  85 },
642*c83a76b0SSuyog Pawar     {  82,  78,  82,  78,  82,  78,  82,  78 },
643*c83a76b0SSuyog Pawar     {  73,  67,  73,  67,  73,  67,  73,  67 },
644*c83a76b0SSuyog Pawar     {  61,  54,  61,  54,  61,  54,  61,  54 },
645*c83a76b0SSuyog Pawar     {  46,  38,  46,  38,  46,  38,  46,  38 },
646*c83a76b0SSuyog Pawar     {  31,  22,  31,  22,  31,  22,  31,  22 },
647*c83a76b0SSuyog Pawar     {  13,   4,  13,   4,  13,   4,  13,   4 },
648*c83a76b0SSuyog Pawar 
649*c83a76b0SSuyog Pawar     /*o1*/
650*c83a76b0SSuyog Pawar 
651*c83a76b0SSuyog Pawar     {  90,  82,  90,  82,  90,  82,  90,  82 },
652*c83a76b0SSuyog Pawar     {  67,  46,  67,  46,  67,  46,  67,  46 },
653*c83a76b0SSuyog Pawar     { -22,   4, -22,   4, -22,   4, -22,   4 },
654*c83a76b0SSuyog Pawar     {  31,  54,  31,  54,  31,  54,  31,  54 },
655*c83a76b0SSuyog Pawar     {  73,  85,  73,  85,  73,  85,  73,  85 },
656*c83a76b0SSuyog Pawar     {  90,  88,  90,  88,  90,  88,  90,  88 },
657*c83a76b0SSuyog Pawar     {  78,  61,  78,  61,  78,  61,  78,  61 },
658*c83a76b0SSuyog Pawar     {  38,  13,  38,  13,  38,  13,  38,  13 },
659*c83a76b0SSuyog Pawar 
660*c83a76b0SSuyog Pawar     /*o2*/
661*c83a76b0SSuyog Pawar     {  88,  67,  88,  67,  88,  67,  88,  67 },
662*c83a76b0SSuyog Pawar     { -31,  13, -31,  13, -31,  13, -31,  13 },
663*c83a76b0SSuyog Pawar     {  54,  82,  54,  82,  54,  82,  54,  82 },
664*c83a76b0SSuyog Pawar     {  90,  78,  90,  78,  90,  78,  90,  78 },
665*c83a76b0SSuyog Pawar     {  46,   4,  46,   4,  46,   4,  46,   4 },
666*c83a76b0SSuyog Pawar     {  38,  73,  38,  73,  38,  73,  38,  73 },
667*c83a76b0SSuyog Pawar     {  90,  85,  90,  85,  90,  85,  90,  85 },
668*c83a76b0SSuyog Pawar     {  61,  22,  61,  22,  61,  22,  61,  22 },
669*c83a76b0SSuyog Pawar 
670*c83a76b0SSuyog Pawar     /*o3*/
671*c83a76b0SSuyog Pawar     {  85,  46,  85,  46,  85,  46,  85,  46 },
672*c83a76b0SSuyog Pawar     {  13,  67,  13,  67,  13,  67,  13,  67 },
673*c83a76b0SSuyog Pawar     {  90,  73,  90,  73,  90,  73,  90,  73 },
674*c83a76b0SSuyog Pawar     {  22, -38,  22, -38,  22, -38,  22, -38 },
675*c83a76b0SSuyog Pawar     {  82,  88,  82,  88,  82,  88,  82,  88 },
676*c83a76b0SSuyog Pawar     { -54,   4, -54,   4, -54,   4, -54,   4 },
677*c83a76b0SSuyog Pawar     {  61,  90,  61,  90,  61,  90,  61,  90 },
678*c83a76b0SSuyog Pawar     {  78,  31,  78,  31,  78,  31,  78,  31 },
679*c83a76b0SSuyog Pawar 
680*c83a76b0SSuyog Pawar     /*o4*/
681*c83a76b0SSuyog Pawar     { -82, -22, -82, -22, -82, -22, -82, -22 },
682*c83a76b0SSuyog Pawar     {  54,  90,  54,  90,  54,  90,  54,  90 },
683*c83a76b0SSuyog Pawar     {  61, -13,  61, -13,  61, -13,  61, -13 },
684*c83a76b0SSuyog Pawar     { -78, -85, -78, -85, -78, -85, -78, -85 },
685*c83a76b0SSuyog Pawar     { -31,  46, -31,  46, -31,  46, -31,  46 },
686*c83a76b0SSuyog Pawar     {  90,  67,  90,  67,  90,  67,  90,  67 },
687*c83a76b0SSuyog Pawar     {  -4, -73,  -4, -73,  -4, -73,  -4, -73 },
688*c83a76b0SSuyog Pawar     { -88, -38, -88, -38, -88, -38, -88, -38 },
689*c83a76b0SSuyog Pawar 
690*c83a76b0SSuyog Pawar     /*o5*/
691*c83a76b0SSuyog Pawar     { -78,   4, -78,   4, -78,   4, -78,   4 },
692*c83a76b0SSuyog Pawar     {  82,  73,  82,  73,  82,  73,  82,  73 },
693*c83a76b0SSuyog Pawar     { -13, -85, -13, -85, -13, -85, -13, -85 },
694*c83a76b0SSuyog Pawar     { -67,  22, -67,  22, -67,  22, -67,  22 },
695*c83a76b0SSuyog Pawar     {  88,  61,  88,  61,  88,  61,  88,  61 },
696*c83a76b0SSuyog Pawar     { -31, -90, -31, -90, -31, -90, -31, -90 },
697*c83a76b0SSuyog Pawar     { -54,  38, -54,  38, -54,  38, -54,  38 },
698*c83a76b0SSuyog Pawar     {  90,  46,  90,  46,  90,  46,  90,  46 },
699*c83a76b0SSuyog Pawar 
700*c83a76b0SSuyog Pawar     /*o6*/
701*c83a76b0SSuyog Pawar     { -73,  31, -73,  31, -73,  31, -73,  31 },
702*c83a76b0SSuyog Pawar     {  90,  22,  90,  22,  90,  22,  90,  22 },
703*c83a76b0SSuyog Pawar     { -78, -67, -78, -67, -78, -67, -78, -67 },
704*c83a76b0SSuyog Pawar     {  38,  90,  38,  90,  38,  90,  38,  90 },
705*c83a76b0SSuyog Pawar     {  13, -82,  13, -82,  13, -82,  13, -82 },
706*c83a76b0SSuyog Pawar     { -61,  46, -61,  46, -61,  46, -61,  46 },
707*c83a76b0SSuyog Pawar     {  88,   4,  88,   4,  88,   4,  88,   4 },
708*c83a76b0SSuyog Pawar     { -85, -54, -85, -54, -85, -54, -85, -54 },
709*c83a76b0SSuyog Pawar 
710*c83a76b0SSuyog Pawar     /*o7*/
711*c83a76b0SSuyog Pawar     { -67,  54, -67,  54, -67,  54, -67,  54 },
712*c83a76b0SSuyog Pawar     {  78, -38,  78, -38,  78, -38,  78, -38 },
713*c83a76b0SSuyog Pawar     { -85,  22, -85,  22, -85,  22, -85,  22 },
714*c83a76b0SSuyog Pawar     {  90,  -4,  90,  -4,  90,  -4,  90,  -4 },
715*c83a76b0SSuyog Pawar     { -90, -13, -90, -13, -90, -13, -90, -13 },
716*c83a76b0SSuyog Pawar     {  88,  31,  88,  31,  88,  31,  88,  31 },
717*c83a76b0SSuyog Pawar     { -82, -46, -82, -46, -82, -46, -82, -46 },
718*c83a76b0SSuyog Pawar     {  73,  61,  73,  61,  73,  61,  73,  61 },
719*c83a76b0SSuyog Pawar 
720*c83a76b0SSuyog Pawar     /*o8*/
721*c83a76b0SSuyog Pawar     { -61,  73, -61,  73, -61,  73, -61,  73 },
722*c83a76b0SSuyog Pawar     {  46, -82,  46, -82,  46, -82,  46, -82 },
723*c83a76b0SSuyog Pawar     { -31,  88, -31,  88, -31,  88, -31,  88 },
724*c83a76b0SSuyog Pawar     {  13, -90,  13, -90,  13, -90,  13, -90 },
725*c83a76b0SSuyog Pawar     {   4,  90,   4,  90,   4,  90,   4,  90 },
726*c83a76b0SSuyog Pawar     { -22, -85, -22, -85, -22, -85, -22, -85 },
727*c83a76b0SSuyog Pawar     {  38,  78,  38,  78,  38,  78,  38,  78 },
728*c83a76b0SSuyog Pawar     { -54, -67, -54, -67, -54, -67, -54, -67 },
729*c83a76b0SSuyog Pawar 
730*c83a76b0SSuyog Pawar     /*o9*/
731*c83a76b0SSuyog Pawar     { -54,  85, -54,  85, -54,  85, -54,  85 },
732*c83a76b0SSuyog Pawar     {   4, -88,   4, -88,   4, -88,   4, -88 },
733*c83a76b0SSuyog Pawar     {  46,  61,  46,  61,  46,  61,  46,  61 },
734*c83a76b0SSuyog Pawar     { -82, -13, -82, -13, -82, -13, -82, -13 },
735*c83a76b0SSuyog Pawar     {  90, -38,  90, -38,  90, -38,  90, -38 },
736*c83a76b0SSuyog Pawar     { -67,  78, -67,  78, -67,  78, -67,  78 },
737*c83a76b0SSuyog Pawar     {  22, -90,  22, -90,  22, -90,  22, -90 },
738*c83a76b0SSuyog Pawar     {  31,  73,  31,  73,  31,  73,  31,  73 },
739*c83a76b0SSuyog Pawar 
740*c83a76b0SSuyog Pawar     /*o10*/
741*c83a76b0SSuyog Pawar     { -46,  90, -46,  90, -46,  90, -46,  90 },
742*c83a76b0SSuyog Pawar     { -38, -54, -38, -54, -38, -54, -38, -54 },
743*c83a76b0SSuyog Pawar     {  90, -31,  90, -31,  90, -31,  90, -31 },
744*c83a76b0SSuyog Pawar     { -61,  88, -61,  88, -61,  88, -61,  88 },
745*c83a76b0SSuyog Pawar     { -22, -67, -22, -67, -22, -67, -22, -67 },
746*c83a76b0SSuyog Pawar     {  85, -13,  85, -13,  85, -13,  85, -13 },
747*c83a76b0SSuyog Pawar     { -73,  82, -73,  82, -73,  82, -73,  82 },
748*c83a76b0SSuyog Pawar     {  -4, -78,  -4, -78,  -4, -78,  -4, -78 },
749*c83a76b0SSuyog Pawar 
750*c83a76b0SSuyog Pawar     /*o11*/
751*c83a76b0SSuyog Pawar     { -38,  88, -38,  88, -38,  88, -38,  88 },
752*c83a76b0SSuyog Pawar     { -73,   4, -73,   4, -73,   4, -73,   4 },
753*c83a76b0SSuyog Pawar     {  67, -90,  67, -90,  67, -90,  67, -90 },
754*c83a76b0SSuyog Pawar     {  46,  31,  46,  31,  46,  31,  46,  31 },
755*c83a76b0SSuyog Pawar     { -85,  78, -85,  78, -85,  78, -85,  78 },
756*c83a76b0SSuyog Pawar     { -13, -61, -13, -61, -13, -61, -13, -61 },
757*c83a76b0SSuyog Pawar     {  90, -54,  90, -54,  90, -54,  90, -54 },
758*c83a76b0SSuyog Pawar     { -22,  82, -22,  82, -22,  82, -22,  82 },
759*c83a76b0SSuyog Pawar 
760*c83a76b0SSuyog Pawar 
761*c83a76b0SSuyog Pawar     /*012*/
762*c83a76b0SSuyog Pawar     { -31,  78, -31,  78, -31,  78, -31,  78 },
763*c83a76b0SSuyog Pawar     { -90,  61, -90,  61, -90,  61, -90,  61 },
764*c83a76b0SSuyog Pawar     {  -4, -54,  -4, -54,  -4, -54,  -4, -54 },
765*c83a76b0SSuyog Pawar     {  88, -82,  88, -82,  88, -82,  88, -82 },
766*c83a76b0SSuyog Pawar     {  38,  22,  38,  22,  38,  22,  38,  22 },
767*c83a76b0SSuyog Pawar     { -73,  90, -73,  90, -73,  90, -73,  90 },
768*c83a76b0SSuyog Pawar     { -67,  13, -67,  13, -67,  13, -67,  13 },
769*c83a76b0SSuyog Pawar     {  46, -85,  46, -85,  46, -85,  46, -85 },
770*c83a76b0SSuyog Pawar 
771*c83a76b0SSuyog Pawar     /*o13*/
772*c83a76b0SSuyog Pawar     { -22,  61, -22,  61, -22,  61, -22,  61 },
773*c83a76b0SSuyog Pawar     { -85,  90, -85,  90, -85,  90, -85,  90 },
774*c83a76b0SSuyog Pawar     { -73,  38, -73,  38, -73,  38, -73,  38 },
775*c83a76b0SSuyog Pawar     {   4, -46,   4, -46,   4, -46,   4, -46 },
776*c83a76b0SSuyog Pawar     {  78, -90,  78, -90,  78, -90,  78, -90 },
777*c83a76b0SSuyog Pawar     {  82, -54,  82, -54,  82, -54,  82, -54 },
778*c83a76b0SSuyog Pawar     {  13,  31,  13,  31,  13,  31,  13,  31 },
779*c83a76b0SSuyog Pawar     { -67,  88, -67,  88, -67,  88, -67,  88 },
780*c83a76b0SSuyog Pawar 
781*c83a76b0SSuyog Pawar     /*o14*/
782*c83a76b0SSuyog Pawar     { -13,  38, -13,  38, -13,  38, -13,  38 },
783*c83a76b0SSuyog Pawar     { -61,  78, -61,  78, -61,  78, -61,  78 },
784*c83a76b0SSuyog Pawar     { -88,  90, -88,  90, -88,  90, -88,  90 },
785*c83a76b0SSuyog Pawar     { -85,  73, -85,  73, -85,  73, -85,  73 },
786*c83a76b0SSuyog Pawar     { -54,  31, -54,  31, -54,  31, -54,  31 },
787*c83a76b0SSuyog Pawar     {  -4, -22,  -4, -22,  -4, -22,  -4, -22 },
788*c83a76b0SSuyog Pawar     {  46, -67,  46, -67,  46, -67,  46, -67 },
789*c83a76b0SSuyog Pawar     {  82, -90,  82, -90,  82, -90,  82, -90 },
790*c83a76b0SSuyog Pawar 
791*c83a76b0SSuyog Pawar     /*o15*/
792*c83a76b0SSuyog Pawar     {  -4,  13,  -4,  13,  -4,  13,  -4,  13 },
793*c83a76b0SSuyog Pawar     { -22,  31, -22,  31, -22,  31, -22,  31 },
794*c83a76b0SSuyog Pawar     { -38,  46, -38,  46, -38,  46, -38,  46 },
795*c83a76b0SSuyog Pawar     { -54,  61, -54,  61, -54,  61, -54,  61 },
796*c83a76b0SSuyog Pawar     { -67,  73, -67,  73, -67,  73, -67,  73 },
797*c83a76b0SSuyog Pawar     { -78,  82, -78,  82, -78,  82, -78,  82 },
798*c83a76b0SSuyog Pawar     { -85,  88, -85,  88, -85,  88, -85,  88 },
799*c83a76b0SSuyog Pawar     { -90,  90, -90,  90, -90,  90, -90,  90 },
800*c83a76b0SSuyog Pawar 
801*c83a76b0SSuyog Pawar };
802*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16_even[12][8] =
803*c83a76b0SSuyog Pawar {
804*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  64,  64,  64,  64 },
805*c83a76b0SSuyog Pawar     {  64, -64,  64, -64,  64, -64,  64, -64 },
806*c83a76b0SSuyog Pawar     {  89,  75,  89,  75,  89,  75,  89,  75 },
807*c83a76b0SSuyog Pawar     {  75, -18,  75, -18,  75, -18,  75, -18 },
808*c83a76b0SSuyog Pawar     {  50,  18,  50,  18,  50,  18,  50,  18 },
809*c83a76b0SSuyog Pawar     {  89,  50,  89,  50,  89,  50,  89,  50 },
810*c83a76b0SSuyog Pawar     {  83,  36,  83,  36,  83,  36,  83,  36 },
811*c83a76b0SSuyog Pawar     {  36, -83,  36, -83,  36, -83,  36, -83 },
812*c83a76b0SSuyog Pawar     {  50, -89,  50, -89,  50, -89,  50, -89 },
813*c83a76b0SSuyog Pawar     {  18, -50,  18, -50,  18, -50,  18, -50 },
814*c83a76b0SSuyog Pawar     {  18,  75,  18,  75,  18,  75,  18,  75 },
815*c83a76b0SSuyog Pawar     {  75, -89,  75, -89,  75, -89,  75, -89 },
816*c83a76b0SSuyog Pawar };
817*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16_odd[32][8] =
818*c83a76b0SSuyog Pawar {
819*c83a76b0SSuyog Pawar     {  90,  87,  90,  87,  90,  87,  90,  87 },
820*c83a76b0SSuyog Pawar     {  80,  70,  80,  70,  80,  70,  80,  70 },
821*c83a76b0SSuyog Pawar     {  57,  43,  57,  43,  57,  43,  57,  43 },
822*c83a76b0SSuyog Pawar     {  25,   9,  25,   9,  25,   9,  25,   9 },
823*c83a76b0SSuyog Pawar     {  87,  57,  87,  57,  87,  57,  87,  57 },
824*c83a76b0SSuyog Pawar     {   9, -43,   9, -43,   9, -43,   9, -43 },
825*c83a76b0SSuyog Pawar     {  80,  90,  80,  90,  80,  90,  80,  90 },
826*c83a76b0SSuyog Pawar     {  70,  25,  70,  25,  70,  25,  70,  25 },
827*c83a76b0SSuyog Pawar     {  80,   9,  80,   9,  80,   9,  80,   9 },
828*c83a76b0SSuyog Pawar     {  70,  87,  70,  87,  70,  87,  70,  87 },
829*c83a76b0SSuyog Pawar     {  25, -57,  25, -57,  25, -57,  25, -57 },
830*c83a76b0SSuyog Pawar     {  90,  43,  90,  43,  90,  43,  90,  43 },
831*c83a76b0SSuyog Pawar     {  70, -43,  70, -43,  70, -43,  70, -43 },
832*c83a76b0SSuyog Pawar     {  87,  -9,  87,  -9,  87,  -9,  87,  -9 },
833*c83a76b0SSuyog Pawar     {  90,  25,  90,  25,  90,  25,  90,  25 },
834*c83a76b0SSuyog Pawar     {  80,  57,  80,  57,  80,  57,  80,  57 },
835*c83a76b0SSuyog Pawar     {  57, -80,  57, -80,  57, -80,  57, -80 },
836*c83a76b0SSuyog Pawar     {  25, -90,  25, -90,  25, -90,  25, -90 },
837*c83a76b0SSuyog Pawar     {   9,  87,   9,  87,   9,  87,   9,  87 },
838*c83a76b0SSuyog Pawar     {  43,  70,  43,  70,  43,  70,  43,  70 },
839*c83a76b0SSuyog Pawar     {  43, -90,  43, -90,  43, -90,  43, -90 },
840*c83a76b0SSuyog Pawar     {  57,  25,  57,  25,  57,  25,  57,  25 },
841*c83a76b0SSuyog Pawar     {  87, -70,  87, -70,  87, -70,  87, -70 },
842*c83a76b0SSuyog Pawar     {   9, -80,   9, -80,   9, -80,   9, -80 },
843*c83a76b0SSuyog Pawar     {  25, -70,  25, -70,  25, -70,  25, -70 },
844*c83a76b0SSuyog Pawar     {  90, -80,  90, -80,  90, -80,  90, -80 },
845*c83a76b0SSuyog Pawar     {  43,   9,  43,   9,  43,   9,  43,   9 },
846*c83a76b0SSuyog Pawar     {  57, -87,  57, -87,  57, -87,  57, -87 },
847*c83a76b0SSuyog Pawar     {   9, -25,   9, -25,   9, -25,   9, -25 },
848*c83a76b0SSuyog Pawar     {  43, -57,  43, -57,  43, -57,  43, -57 },
849*c83a76b0SSuyog Pawar     {  70, -80,  70, -80,  70, -80,  70, -80 },
850*c83a76b0SSuyog Pawar     {  87, -90,  87, -90,  87, -90,  87, -90 },
851*c83a76b0SSuyog Pawar };
852*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_intr_even_8[4][8] =
853*c83a76b0SSuyog Pawar {
854*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  64,  64,  64,  64 },
855*c83a76b0SSuyog Pawar     {  36, -83,  36, -83,  36, -83,  36, -83 },
856*c83a76b0SSuyog Pawar     {  83,  36,  83,  36,  83,  36,  83,  36 },
857*c83a76b0SSuyog Pawar     {  64, -64,  64, -64,  64, -64,  64, -64 }
858*c83a76b0SSuyog Pawar };
859*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_intr_odd_8[8][8] =
860*c83a76b0SSuyog Pawar {
861*c83a76b0SSuyog Pawar     {  89,  75,  89,  75,  89,  75,  89,  75 },
862*c83a76b0SSuyog Pawar     {  50,  18,  50,  18,  50,  18,  50,  18 },
863*c83a76b0SSuyog Pawar     {  75, -18,  75, -18,  75, -18,  75, -18 },
864*c83a76b0SSuyog Pawar     {  89,  50,  89,  50,  89,  50,  89,  50 },
865*c83a76b0SSuyog Pawar     {  50, -89,  50, -89,  50, -89,  50, -89 },
866*c83a76b0SSuyog Pawar     {  18,  75,  18,  75,  18,  75,  18,  75 },
867*c83a76b0SSuyog Pawar     {  18, -50,  18, -50,  18, -50,  18, -50 },
868*c83a76b0SSuyog Pawar     {  75, -89,  75, -89,  75, -89,  75, -89 },
869*c83a76b0SSuyog Pawar };
870*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_intr_4[4][8] =
871*c83a76b0SSuyog Pawar {
872*c83a76b0SSuyog Pawar     {  83,  36,  83,  36,  83,  36,  83,  36 },
873*c83a76b0SSuyog Pawar     {  36, -83,  36, -83,  36, -83,  36, -83 },
874*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  64,  64,  64,  64 },
875*c83a76b0SSuyog Pawar     {  64, -64,  64, -64,  64, -64,  64, -64 }
876*c83a76b0SSuyog Pawar };
877*c83a76b0SSuyog Pawar 
878*c83a76b0SSuyog Pawar const UWORD8 IHEVCE_CHROMA_SHUFFLEMASK_HBD[8] = { 0x00, 0x01, 0x04, 0x05,
879*c83a76b0SSuyog Pawar     0x08, 0x09, 0x0C, 0x0D };
880*c83a76b0SSuyog Pawar #ifndef DISABLE_AVX2
881*c83a76b0SSuyog Pawar const WORD32 g_ai4_ihevc_trans_8_intr_avx2[7][8] =
882*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
883*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  64,  64,  64,  64 },
884*c83a76b0SSuyog Pawar     {  83,  83,  83,  83,  83,  83,  83,  83 },
885*c83a76b0SSuyog Pawar     {  36,  36,  36,  36,  36,  36,  36,  36 },
886*c83a76b0SSuyog Pawar     {  75,  75,  75,  75,  75,  75,  75,  75 },
887*c83a76b0SSuyog Pawar     {  18,  18,  18,  18,  18,  18,  18,  18 },
888*c83a76b0SSuyog Pawar     {  89,  89,  89,  89,  89,  89,  89,  89 },
889*c83a76b0SSuyog Pawar     {  50,  50,  50,  50,  50,  50,  50,  50 },
890*c83a76b0SSuyog Pawar };
891*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_8_intr_avx2[8][16] =
892*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
893*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64 },
894*c83a76b0SSuyog Pawar     {  89,  75,  18,  50,  89,  75,  18,  50,  89,  75,  18,  50,  89,  75,  18,  50 },
895*c83a76b0SSuyog Pawar     {  83,  36,  83,  36,  83,  36,  83,  36,  83,  36,  83,  36,  83,  36,  83,  36 },
896*c83a76b0SSuyog Pawar     {  75, -18, -50, -89,  75, -18, -50, -89,  75, -18, -50, -89,  75, -18, -50, -89 },
897*c83a76b0SSuyog Pawar     {  64, -64,  64, -64,  64, -64,  64, -64,  64, -64,  64, -64,  64, -64,  64, -64 },
898*c83a76b0SSuyog Pawar     {  50, -89,  75,  18,  50, -89,  75,  18,  50, -89,  75,  18,  50, -89,  75,  18 },
899*c83a76b0SSuyog Pawar     {  36, -83,  36, -83,  36, -83,  36, -83,  36, -83,  36, -83,  36, -83,  36, -83 },
900*c83a76b0SSuyog Pawar     {  18, -50, -89,  75,  18, -50, -89,  75,  18, -50, -89,  75,  18, -50, -89,  75 }
901*c83a76b0SSuyog Pawar };
902*c83a76b0SSuyog Pawar 
903*c83a76b0SSuyog Pawar const WORD32 g_ai2_ihevc_trans_32_intr_8_avx2[8][8] =
904*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
905*c83a76b0SSuyog Pawar     { 90, 90, 90, 90, 90, 90, 90, 90 },
906*c83a76b0SSuyog Pawar     { 87, 87, 87, 87, 87, 87, 87, 87 },
907*c83a76b0SSuyog Pawar     { 80, 80, 80, 80, 80, 80, 80, 80 },
908*c83a76b0SSuyog Pawar     { 70, 70, 70, 70, 70, 70, 70, 70 },
909*c83a76b0SSuyog Pawar     { 57, 57, 57, 57, 57, 57, 57, 57 },
910*c83a76b0SSuyog Pawar     { 43, 43, 43, 43, 43, 43, 43, 43 },
911*c83a76b0SSuyog Pawar     { 25, 25, 25, 25, 25, 25, 25, 25 },
912*c83a76b0SSuyog Pawar     {  9,  9,  9,  9,  9,  9,  9,  9 }
913*c83a76b0SSuyog Pawar };
914*c83a76b0SSuyog Pawar const WORD32 g_ai2_ihevc_trans_32_intr_16_avx2[15][8] =
915*c83a76b0SSuyog Pawar { /* 4*32 = 128 bit */
916*c83a76b0SSuyog Pawar     { 90, 90, 90, 90, 90, 90, 90, 90, },
917*c83a76b0SSuyog Pawar     { 88, 88, 88, 88, 88, 88, 88, 88, },
918*c83a76b0SSuyog Pawar     { 85, 85, 85, 85, 85, 85, 85, 85, },
919*c83a76b0SSuyog Pawar     { 82, 82, 82, 82, 82, 82, 82, 82, },
920*c83a76b0SSuyog Pawar     { 78, 78, 78, 78, 78, 78, 78, 78, },
921*c83a76b0SSuyog Pawar     { 73, 73, 73, 73, 73, 73, 73, 73, },
922*c83a76b0SSuyog Pawar     { 67, 67, 67, 67, 67, 67, 67, 67, },
923*c83a76b0SSuyog Pawar     { 61, 61, 61, 61, 61, 61, 61, 61, },
924*c83a76b0SSuyog Pawar     { 54, 54, 54, 54, 54, 54, 54, 54, },
925*c83a76b0SSuyog Pawar     { 46, 46, 46, 46, 46, 46, 46, 46, },
926*c83a76b0SSuyog Pawar     { 38, 38, 38, 38, 38, 38, 38, 38, },
927*c83a76b0SSuyog Pawar     { 31, 31, 31, 31, 31, 31, 31, 31, },
928*c83a76b0SSuyog Pawar     { 22, 22, 22, 22, 22, 22, 22, 22, },
929*c83a76b0SSuyog Pawar     { 13, 13, 13, 13, 13, 13, 13, 13, },
930*c83a76b0SSuyog Pawar     { 4,  4,  4,  4,  4,  4,  4,  4,  }
931*c83a76b0SSuyog Pawar };
932*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16_intr_odd_avx2[32][16] =
933*c83a76b0SSuyog Pawar {
934*c83a76b0SSuyog Pawar     {  90,  87,  90,  87,  90,  87,  90,  87,  90,  87,  90,  87,  90,  87,  90,  87 },
935*c83a76b0SSuyog Pawar     {  70,  80,  70,  80,  70,  80,  70,  80,  70,  80,  70,  80,  70,  80,  70,  80 },
936*c83a76b0SSuyog Pawar     {  57,  43,  57,  43,  57,  43,  57,  43,  57,  43,  57,  43,  57,  43,  57,  43 },
937*c83a76b0SSuyog Pawar     {   9,  25,   9,  25,   9,  25,   9,  25,   9,  25,   9,  25,   9,  25,   9,  25 },
938*c83a76b0SSuyog Pawar     {  87,  57,  87,  57,  87,  57,  87,  57,  87,  57,  87,  57,  87,  57,  87,  57 },
939*c83a76b0SSuyog Pawar     { -43,   9, -43,   9, -43,   9, -43,   9, -43,   9, -43,   9, -43,   9, -43,   9 },
940*c83a76b0SSuyog Pawar     { -80, -90, -80, -90, -80, -90, -80, -90, -80, -90, -80, -90, -80, -90, -80, -90 },
941*c83a76b0SSuyog Pawar     { -25, -70, -25, -70, -25, -70, -25, -70, -25, -70, -25, -70, -25, -70, -25, -70 },
942*c83a76b0SSuyog Pawar     {  80,   9,  80,   9,  80,   9,  80,   9,  80,   9,  80,   9,  80,   9,  80,   9 },
943*c83a76b0SSuyog Pawar     { -87, -70, -87, -70, -87, -70, -87, -70, -87, -70, -87, -70, -87, -70, -87, -70 },
944*c83a76b0SSuyog Pawar     { -25,  57, -25,  57, -25,  57, -25,  57, -25,  57, -25,  57, -25,  57, -25,  57 },
945*c83a76b0SSuyog Pawar     {  43,  90,  43,  90,  43,  90,  43,  90,  43,  90,  43,  90,  43,  90,  43,  90 },
946*c83a76b0SSuyog Pawar     {  70, -43,  70, -43,  70, -43,  70, -43,  70, -43,  70, -43,  70, -43,  70, -43 },
947*c83a76b0SSuyog Pawar     {   9, -87,   9, -87,   9, -87,   9, -87,   9, -87,   9, -87,   9, -87,   9, -87 },
948*c83a76b0SSuyog Pawar     {  90,  25,  90,  25,  90,  25,  90,  25,  90,  25,  90,  25,  90,  25,  90,  25 },
949*c83a76b0SSuyog Pawar     { -57, -80, -57, -80, -57, -80, -57, -80, -57, -80, -57, -80, -57, -80, -57, -80 },
950*c83a76b0SSuyog Pawar     {  57, -80,  57, -80,  57, -80,  57, -80,  57, -80,  57, -80,  57, -80,  57, -80 },
951*c83a76b0SSuyog Pawar     {  90, -25,  90, -25,  90, -25,  90, -25,  90, -25,  90, -25,  90, -25,  90, -25 },
952*c83a76b0SSuyog Pawar     {  -9, -87,  -9, -87,  -9, -87,  -9, -87,  -9, -87,  -9, -87,  -9, -87,  -9, -87 },
953*c83a76b0SSuyog Pawar     {  70,  43,  70,  43,  70,  43,  70,  43,  70,  43,  70,  43,  70,  43,  70,  43 },
954*c83a76b0SSuyog Pawar     {  43, -90,  43, -90,  43, -90,  43, -90,  43, -90,  43, -90,  43, -90,  43, -90 },
955*c83a76b0SSuyog Pawar     {  25,  57,  25,  57,  25,  57,  25,  57,  25,  57,  25,  57,  25,  57,  25,  57 },
956*c83a76b0SSuyog Pawar     { -87,  70, -87,  70, -87,  70, -87,  70, -87,  70, -87,  70, -87,  70, -87,  70 },
957*c83a76b0SSuyog Pawar     { -80,   9, -80,   9, -80,   9, -80,   9, -80,   9, -80,   9, -80,   9, -80,   9 },
958*c83a76b0SSuyog Pawar     {  25, -70,  25, -70,  25, -70,  25, -70,  25, -70,  25, -70,  25, -70,  25, -70 },
959*c83a76b0SSuyog Pawar     { -80,  90, -80,  90, -80,  90, -80,  90, -80,  90, -80,  90, -80,  90, -80,  90 },
960*c83a76b0SSuyog Pawar     {  43,   9,  43,   9,  43,   9,  43,   9,  43,   9,  43,   9,  43,   9,  43,   9 },
961*c83a76b0SSuyog Pawar     {  87, -57,  87, -57,  87, -57,  87, -57,  87, -57,  87, -57,  87, -57,  87, -57 },
962*c83a76b0SSuyog Pawar     {   9, -25,   9, -25,   9, -25,   9, -25,   9, -25,   9, -25,   9, -25,   9, -25 },
963*c83a76b0SSuyog Pawar     { -57,  43, -57,  43, -57,  43, -57,  43, -57,  43, -57,  43, -57,  43, -57,  43 },
964*c83a76b0SSuyog Pawar     {  70, -80,  70, -80,  70, -80,  70, -80,  70, -80,  70, -80,  70, -80,  70, -80 },
965*c83a76b0SSuyog Pawar     { -90,  87, -90,  87, -90,  87, -90,  87, -90,  87, -90,  87, -90,  87, -90,  87 }
966*c83a76b0SSuyog Pawar };
967*c83a76b0SSuyog Pawar 
968*c83a76b0SSuyog Pawar const WORD16 g_ai2_ihevc_trans_16_intr_even_avx2[12][16] =
969*c83a76b0SSuyog Pawar {
970*c83a76b0SSuyog Pawar     {  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64 },
971*c83a76b0SSuyog Pawar     {  89,  75,  89,  75,  89,  75,  89,  75,  89,  75,  89,  75,  89,  75,  89,  75 },
972*c83a76b0SSuyog Pawar     {  18,  50,  18,  50,  18,  50,  18,  50,  18,  50,  18,  50,  18,  50,  18,  50 },
973*c83a76b0SSuyog Pawar     {  83,  36,  83,  36,  83,  36,  83,  36,  83,  36,  83,  36,  83,  36,  83,  36 },
974*c83a76b0SSuyog Pawar     {  75, -18,  75, -18,  75, -18,  75, -18,  75, -18,  75, -18,  75, -18,  75, -18 },
975*c83a76b0SSuyog Pawar     { -50, -89, -50, -89, -50, -89, -50, -89, -50, -89, -50, -89, -50, -89, -50, -89 },
976*c83a76b0SSuyog Pawar     {  64, -64,  64, -64,  64, -64,  64, -64,  64, -64,  64, -64,  64, -64,  64, -64 },
977*c83a76b0SSuyog Pawar     {  50, -89,  50, -89,  50, -89,  50, -89,  50, -89,  50, -89,  50, -89,  50, -89 },
978*c83a76b0SSuyog Pawar     {  75,  18,  75,  18,  75,  18,  75,  18,  75,  18,  75,  18,  75,  18,  75,  18 },
979*c83a76b0SSuyog Pawar     {  36, -83,  36, -83,  36, -83,  36, -83,  36, -83,  36, -83,  36, -83,  36, -83 },
980*c83a76b0SSuyog Pawar     {  18, -50,  18, -50,  18, -50,  18, -50,  18, -50,  18, -50,  18, -50,  18, -50 },
981*c83a76b0SSuyog Pawar     { -89,  75, -89,  75, -89,  75, -89,  75, -89,  75, -89,  75, -89,  75, -89,  75 }
982*c83a76b0SSuyog Pawar };
983*c83a76b0SSuyog Pawar 
984*c83a76b0SSuyog Pawar 
985*c83a76b0SSuyog Pawar #endif
986