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