1*495ae853SAndroid Build Coastguard Worker /****************************************************************************** 2*495ae853SAndroid Build Coastguard Worker * 3*495ae853SAndroid Build Coastguard Worker * Copyright (C) 2015 The Android Open Source Project 4*495ae853SAndroid Build Coastguard Worker * 5*495ae853SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*495ae853SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*495ae853SAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*495ae853SAndroid Build Coastguard Worker * 9*495ae853SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*495ae853SAndroid Build Coastguard Worker * 11*495ae853SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*495ae853SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*495ae853SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*495ae853SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*495ae853SAndroid Build Coastguard Worker * limitations under the License. 16*495ae853SAndroid Build Coastguard Worker * 17*495ae853SAndroid Build Coastguard Worker ***************************************************************************** 18*495ae853SAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*495ae853SAndroid Build Coastguard Worker */ 20*495ae853SAndroid Build Coastguard Worker 21*495ae853SAndroid Build Coastguard Worker /** 22*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 23*495ae853SAndroid Build Coastguard Worker * @file 24*495ae853SAndroid Build Coastguard Worker * ih264_cavlc_tables.c 25*495ae853SAndroid Build Coastguard Worker * 26*495ae853SAndroid Build Coastguard Worker * @brief 27*495ae853SAndroid Build Coastguard Worker * This file contains H264 cavlc tables for encoding coeff_tokens, levels, total 28*495ae853SAndroid Build Coastguard Worker * zeros and runs before zeros 29*495ae853SAndroid Build Coastguard Worker * 30*495ae853SAndroid Build Coastguard Worker * @author 31*495ae853SAndroid Build Coastguard Worker * ittiam 32*495ae853SAndroid Build Coastguard Worker * 33*495ae853SAndroid Build Coastguard Worker * @remarks 34*495ae853SAndroid Build Coastguard Worker * none 35*495ae853SAndroid Build Coastguard Worker * 36*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 37*495ae853SAndroid Build Coastguard Worker */ 38*495ae853SAndroid Build Coastguard Worker 39*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 40*495ae853SAndroid Build Coastguard Worker /* File Includes */ 41*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 42*495ae853SAndroid Build Coastguard Worker 43*495ae853SAndroid Build Coastguard Worker /* User include files */ 44*495ae853SAndroid Build Coastguard Worker #include "ih264_typedefs.h" 45*495ae853SAndroid Build Coastguard Worker #include "ih264_cavlc_tables.h" 46*495ae853SAndroid Build Coastguard Worker 47*495ae853SAndroid Build Coastguard Worker 48*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 49*495ae853SAndroid Build Coastguard Worker /* Extern global definitions */ 50*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 51*495ae853SAndroid Build Coastguard Worker 52*495ae853SAndroid Build Coastguard Worker /** 53*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 54*495ae853SAndroid Build Coastguard Worker * @brief Assignment of cbp to a codenum for intra and inter prediction modes 55*495ae853SAndroid Build Coastguard Worker * chroma format idc != 0 56*495ae853SAndroid Build Coastguard Worker * input : cbp, intra - 0/inter - 1 57*495ae853SAndroid Build Coastguard Worker * output : codenum 58*495ae853SAndroid Build Coastguard Worker * @remarks Table 9-4 - Assignment of codeNum to values of coded_block_pattern 59*495ae853SAndroid Build Coastguard Worker * for macroblock prediction modes in H264 spec 60*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 61*495ae853SAndroid Build Coastguard Worker */ 62*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_cbp_map_tables[48][2]= 63*495ae853SAndroid Build Coastguard Worker { 64*495ae853SAndroid Build Coastguard Worker { 3, 0}, {29, 2}, {30, 3}, {17, 7}, {31, 4}, {18, 8}, {37, 17}, { 8, 13}, 65*495ae853SAndroid Build Coastguard Worker {32, 5}, {38, 18}, {19, 9}, { 9, 14}, {20, 10}, {10, 15}, {11, 16}, { 2, 11}, 66*495ae853SAndroid Build Coastguard Worker {16, 1}, {33, 32}, {34, 33}, {21, 36}, {35, 34}, {22, 37}, {39, 44}, { 4, 40}, 67*495ae853SAndroid Build Coastguard Worker {36, 35}, {40, 45}, {23, 38}, { 5, 41}, {24, 39}, { 6, 42}, { 7, 43}, { 1, 19}, 68*495ae853SAndroid Build Coastguard Worker {41, 6}, {42, 24}, {43, 25}, {25, 20}, {44, 26}, {26, 21}, {46, 46}, {12, 28}, 69*495ae853SAndroid Build Coastguard Worker {45, 27}, {47, 47}, {27, 22}, {13, 29}, {28, 23}, {14, 30}, {15, 31}, { 0, 12}, 70*495ae853SAndroid Build Coastguard Worker }; 71*495ae853SAndroid Build Coastguard Worker 72*495ae853SAndroid Build Coastguard Worker 73*495ae853SAndroid Build Coastguard Worker /** 74*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 75*495ae853SAndroid Build Coastguard Worker * @brief total non-zero coefficients and numbers of trailing ones of a residual 76*495ae853SAndroid Build Coastguard Worker * block are mapped to coeff_token using the tables given below. 77*495ae853SAndroid Build Coastguard Worker * input : VLC-Num | Trailing ones | Total coeffs 78*495ae853SAndroid Build Coastguard Worker * output : coeff_token (code word, size of the code word) 79*495ae853SAndroid Build Coastguard Worker * @remarks Table-9-5 coeff_token mapping to TotalCoeff( coeff_token ) 80*495ae853SAndroid Build Coastguard Worker * and TrailingOnes( coeff_token ) in H264 spec 81*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 82*495ae853SAndroid Build Coastguard Worker */ 83*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_code_coeff_token_table[3][4][16] = 84*495ae853SAndroid Build Coastguard Worker { 85*495ae853SAndroid Build Coastguard Worker { 86*495ae853SAndroid Build Coastguard Worker { 5, 7, 7, 7, 7, 15, 11, 8, 15, 11, 15, 11, 15, 11, 7, 4, }, 87*495ae853SAndroid Build Coastguard Worker { 1, 4, 6, 6, 6, 6, 14, 10, 14, 10, 14, 10, 1, 14, 10, 6, }, 88*495ae853SAndroid Build Coastguard Worker { 0, 1, 5, 5, 5, 5, 5, 13, 9, 13, 9, 13, 9, 13, 9, 5, }, 89*495ae853SAndroid Build Coastguard Worker { 0, 0, 3, 3, 4, 4, 4, 4, 4, 12, 12, 8, 12, 8, 12, 8, }, 90*495ae853SAndroid Build Coastguard Worker }, 91*495ae853SAndroid Build Coastguard Worker { 92*495ae853SAndroid Build Coastguard Worker {11, 7, 7, 7, 4, 7, 15, 11, 15, 11, 8, 15, 11, 7, 9, 7, }, 93*495ae853SAndroid Build Coastguard Worker { 2, 7, 10, 6, 6, 6, 6, 14, 10, 14, 10, 14, 10, 11, 8, 6, }, 94*495ae853SAndroid Build Coastguard Worker { 0, 3, 9, 5, 5, 5, 5, 13, 9, 13, 9, 13, 9, 6, 10, 5, }, 95*495ae853SAndroid Build Coastguard Worker { 0, 0, 5, 4, 6, 8, 4, 4, 4, 12, 8, 12, 12, 8, 1, 4, }, 96*495ae853SAndroid Build Coastguard Worker }, 97*495ae853SAndroid Build Coastguard Worker { 98*495ae853SAndroid Build Coastguard Worker {15, 11, 8, 15, 11, 9, 8, 15, 11, 15, 11, 8, 13, 9, 5, 1, }, 99*495ae853SAndroid Build Coastguard Worker {14, 15, 12, 10, 8, 14, 10, 14, 14, 10, 14, 10, 7, 12, 8, 4, }, 100*495ae853SAndroid Build Coastguard Worker { 0, 13, 14, 11, 9, 13, 9, 13, 10, 13, 9, 13, 9, 11, 7, 3, }, 101*495ae853SAndroid Build Coastguard Worker { 0, 0, 12, 11, 10, 9, 8, 13, 12, 12, 12, 8, 12, 10, 6, 2, }, 102*495ae853SAndroid Build Coastguard Worker }, 103*495ae853SAndroid Build Coastguard Worker }; 104*495ae853SAndroid Build Coastguard Worker 105*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_size_coeff_token_table[3][4][16] = 106*495ae853SAndroid Build Coastguard Worker { 107*495ae853SAndroid Build Coastguard Worker { 108*495ae853SAndroid Build Coastguard Worker { 6, 8, 9, 10, 11, 13, 13, 13, 14, 14, 15, 15, 16, 16, 16, 16, }, 109*495ae853SAndroid Build Coastguard Worker { 2, 6, 8, 9, 10, 11, 13, 13, 14, 14, 15, 15, 15, 16, 16, 16, }, 110*495ae853SAndroid Build Coastguard Worker { 0, 3, 7, 8, 9, 10, 11, 13, 13, 14, 14, 15, 15, 16, 16, 16, }, 111*495ae853SAndroid Build Coastguard Worker { 0, 0, 5, 6, 7, 8, 9, 10, 11, 13, 14, 14, 15, 15, 16, 16, }, 112*495ae853SAndroid Build Coastguard Worker }, 113*495ae853SAndroid Build Coastguard Worker { 114*495ae853SAndroid Build Coastguard Worker { 6, 6, 7, 8, 8, 9, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, }, 115*495ae853SAndroid Build Coastguard Worker { 2, 5, 6, 6, 7, 8, 9, 11, 11, 12, 12, 13, 13, 14, 14, 14, }, 116*495ae853SAndroid Build Coastguard Worker { 0, 3, 6, 6, 7, 8, 9, 11, 11, 12, 12, 13, 13, 13, 14, 14, }, 117*495ae853SAndroid Build Coastguard Worker { 0, 0, 4, 4, 5, 6, 6, 7, 9, 11, 11, 12, 13, 13, 13, 14, }, 118*495ae853SAndroid Build Coastguard Worker }, 119*495ae853SAndroid Build Coastguard Worker { 120*495ae853SAndroid Build Coastguard Worker { 6, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, }, 121*495ae853SAndroid Build Coastguard Worker { 4, 5, 5, 5, 5, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, }, 122*495ae853SAndroid Build Coastguard Worker { 0, 4, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, }, 123*495ae853SAndroid Build Coastguard Worker { 0, 0, 4, 4, 4, 4, 4, 5, 6, 7, 8, 8, 9, 10, 10, 10, }, 124*495ae853SAndroid Build Coastguard Worker }, 125*495ae853SAndroid Build Coastguard Worker }; 126*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_code_coeff_token_table_chroma[4][4] = 127*495ae853SAndroid Build Coastguard Worker { 128*495ae853SAndroid Build Coastguard Worker { 7, 4, 3, 2, }, 129*495ae853SAndroid Build Coastguard Worker { 1, 6, 3, 3, }, 130*495ae853SAndroid Build Coastguard Worker { 0, 1, 2, 2, }, 131*495ae853SAndroid Build Coastguard Worker { 0, 0, 5, 0, }, 132*495ae853SAndroid Build Coastguard Worker }; 133*495ae853SAndroid Build Coastguard Worker 134*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_size_coeff_token_table_chroma[4][4] = 135*495ae853SAndroid Build Coastguard Worker { 136*495ae853SAndroid Build Coastguard Worker { 6, 6, 6, 6, }, 137*495ae853SAndroid Build Coastguard Worker { 1, 6, 7, 8, }, 138*495ae853SAndroid Build Coastguard Worker { 0, 3, 7, 8, }, 139*495ae853SAndroid Build Coastguard Worker { 0, 0, 6, 7, }, 140*495ae853SAndroid Build Coastguard Worker }; 141*495ae853SAndroid Build Coastguard Worker 142*495ae853SAndroid Build Coastguard Worker /** 143*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 144*495ae853SAndroid Build Coastguard Worker * @brief After encoding the current Level, to encode the next level, the choice 145*495ae853SAndroid Build Coastguard Worker * of VLC table needs to be updated. The update is carried basing on a set of thresholds. 146*495ae853SAndroid Build Coastguard Worker * These thresholds are listed in the table below for lookup. 147*495ae853SAndroid Build Coastguard Worker * input : suffix_length 148*495ae853SAndroid Build Coastguard Worker * output : threshold 149*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 150*495ae853SAndroid Build Coastguard Worker */ 151*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_threshold_vlc_level[6] = 152*495ae853SAndroid Build Coastguard Worker { 153*495ae853SAndroid Build Coastguard Worker 0, 3, 6, 12, 24, 48 154*495ae853SAndroid Build Coastguard Worker }; 155*495ae853SAndroid Build Coastguard Worker 156*495ae853SAndroid Build Coastguard Worker 157*495ae853SAndroid Build Coastguard Worker /** 158*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 159*495ae853SAndroid Build Coastguard Worker * @brief table for encoding total number of zeros 160*495ae853SAndroid Build Coastguard Worker * input : coeff_token, total zeros 161*495ae853SAndroid Build Coastguard Worker * output : code word, size of the code word 162*495ae853SAndroid Build Coastguard Worker * @remarks Table-9-7, 9-8 total_zeros tables for 4x4 blocks with 163*495ae853SAndroid Build Coastguard Worker * TotalCoeff( coeff_token ) in H264 spec 164*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 165*495ae853SAndroid Build Coastguard Worker */ 166*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_size_zero_table[135] = 167*495ae853SAndroid Build Coastguard Worker { 168*495ae853SAndroid Build Coastguard Worker 1, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 169*495ae853SAndroid Build Coastguard Worker 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 170*495ae853SAndroid Build Coastguard Worker 4, 3, 3, 3, 4, 4, 3, 3, 4, 5, 5, 6, 5, 6, 171*495ae853SAndroid Build Coastguard Worker 5, 3, 4, 4, 3, 3, 3, 4, 3, 4, 5, 5, 5, 172*495ae853SAndroid Build Coastguard Worker 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 4, 5, 173*495ae853SAndroid Build Coastguard Worker 6, 5, 3, 3, 3, 3, 3, 3, 4, 3, 6, 174*495ae853SAndroid Build Coastguard Worker 6, 5, 3, 3, 3, 2, 3, 4, 3, 6, 175*495ae853SAndroid Build Coastguard Worker 6, 4, 5, 3, 2, 2, 3, 3, 6, 176*495ae853SAndroid Build Coastguard Worker 6, 6, 4, 2, 2, 3, 2, 5, 177*495ae853SAndroid Build Coastguard Worker 5, 5, 3, 2, 2, 2, 4, 178*495ae853SAndroid Build Coastguard Worker 4, 4, 3, 3, 1, 3, 179*495ae853SAndroid Build Coastguard Worker 4, 4, 2, 1, 3, 180*495ae853SAndroid Build Coastguard Worker 3, 3, 1, 2, 181*495ae853SAndroid Build Coastguard Worker 2, 2, 1, 182*495ae853SAndroid Build Coastguard Worker 1, 1, 183*495ae853SAndroid Build Coastguard Worker }; 184*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_code_zero_table[135] = 185*495ae853SAndroid Build Coastguard Worker { 186*495ae853SAndroid Build Coastguard Worker 1, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 1, 187*495ae853SAndroid Build Coastguard Worker 7, 6, 5, 4, 3, 5, 4, 3, 2, 3, 2, 3, 2, 1, 0, 188*495ae853SAndroid Build Coastguard Worker 5, 7, 6, 5, 4, 3, 4, 3, 2, 3, 2, 1, 1, 0, 189*495ae853SAndroid Build Coastguard Worker 3, 7, 5, 4, 6, 5, 4, 3, 3, 2, 2, 1, 0, 190*495ae853SAndroid Build Coastguard Worker 5, 4, 3, 7, 6, 5, 4, 3, 2, 1, 1, 0, 191*495ae853SAndroid Build Coastguard Worker 1, 1, 7, 6, 5, 4, 3, 2, 1, 1, 0, 192*495ae853SAndroid Build Coastguard Worker 1, 1, 5, 4, 3, 3, 2, 1, 1, 0, 193*495ae853SAndroid Build Coastguard Worker 1, 1, 1, 3, 3, 2, 2, 1, 0, 194*495ae853SAndroid Build Coastguard Worker 1, 0, 1, 3, 2, 1, 1, 1, 195*495ae853SAndroid Build Coastguard Worker 1, 0, 1, 3, 2, 1, 1, 196*495ae853SAndroid Build Coastguard Worker 0, 1, 1, 2, 1, 3, 197*495ae853SAndroid Build Coastguard Worker 0, 1, 1, 1, 1, 198*495ae853SAndroid Build Coastguard Worker 0, 1, 1, 1, 199*495ae853SAndroid Build Coastguard Worker 0, 1, 1, 200*495ae853SAndroid Build Coastguard Worker 0, 1, 201*495ae853SAndroid Build Coastguard Worker }; 202*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_size_zero_table_chroma[9] = 203*495ae853SAndroid Build Coastguard Worker { 204*495ae853SAndroid Build Coastguard Worker 1, 2, 3, 3, 205*495ae853SAndroid Build Coastguard Worker 1, 2, 2, 206*495ae853SAndroid Build Coastguard Worker 1, 1, 207*495ae853SAndroid Build Coastguard Worker }; 208*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_code_zero_table_chroma[9] = 209*495ae853SAndroid Build Coastguard Worker { 210*495ae853SAndroid Build Coastguard Worker 1, 1, 1, 0, 211*495ae853SAndroid Build Coastguard Worker 1, 1, 0, 212*495ae853SAndroid Build Coastguard Worker 1, 0, 213*495ae853SAndroid Build Coastguard Worker }; 214*495ae853SAndroid Build Coastguard Worker 215*495ae853SAndroid Build Coastguard Worker /** 216*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 217*495ae853SAndroid Build Coastguard Worker * @brief index to access zero table (look up) 218*495ae853SAndroid Build Coastguard Worker * input : TotalCoeff( coeff_token ) 219*495ae853SAndroid Build Coastguard Worker * output : index to access zero table 220*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 221*495ae853SAndroid Build Coastguard Worker */ 222*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_index_zero_table[15] = 223*495ae853SAndroid Build Coastguard Worker { 224*495ae853SAndroid Build Coastguard Worker 0, 16, 31, 45, 58, 70, 81, 91, 100, 108, 115, 121, 126, 130, 133, 225*495ae853SAndroid Build Coastguard Worker }; 226*495ae853SAndroid Build Coastguard Worker 227*495ae853SAndroid Build Coastguard Worker /** 228*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 229*495ae853SAndroid Build Coastguard Worker * @brief table for encoding runs of zeros before 230*495ae853SAndroid Build Coastguard Worker * input : zeros left, runs of zeros before 231*495ae853SAndroid Build Coastguard Worker * output : code word, size of the code word 232*495ae853SAndroid Build Coastguard Worker * @remarks Table-9-10 table for run_before in H264 spec 233*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 234*495ae853SAndroid Build Coastguard Worker */ 235*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_size_run_table[42] = 236*495ae853SAndroid Build Coastguard Worker { 237*495ae853SAndroid Build Coastguard Worker 1, 1, 238*495ae853SAndroid Build Coastguard Worker 1, 2, 2, 239*495ae853SAndroid Build Coastguard Worker 2, 2, 2, 2, 240*495ae853SAndroid Build Coastguard Worker 2, 2, 2, 3, 3, 241*495ae853SAndroid Build Coastguard Worker 2, 2, 3, 3, 3, 3, 242*495ae853SAndroid Build Coastguard Worker 2, 3, 3, 3, 3, 3, 3, 243*495ae853SAndroid Build Coastguard Worker 3, 3, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 244*495ae853SAndroid Build Coastguard Worker }; 245*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_code_run_table[42] = 246*495ae853SAndroid Build Coastguard Worker { 247*495ae853SAndroid Build Coastguard Worker 1, 0, 248*495ae853SAndroid Build Coastguard Worker 1, 1, 0, 249*495ae853SAndroid Build Coastguard Worker 3, 2, 1, 0, 250*495ae853SAndroid Build Coastguard Worker 3, 2, 1, 1, 0, 251*495ae853SAndroid Build Coastguard Worker 3, 2, 3, 2, 1, 0, 252*495ae853SAndroid Build Coastguard Worker 3, 0, 1, 3, 2, 5, 4, 253*495ae853SAndroid Build Coastguard Worker 7, 6, 5, 4, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 254*495ae853SAndroid Build Coastguard Worker }; 255*495ae853SAndroid Build Coastguard Worker 256*495ae853SAndroid Build Coastguard Worker /** 257*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 258*495ae853SAndroid Build Coastguard Worker * @brief index to access zero table (look up) 259*495ae853SAndroid Build Coastguard Worker * input : TotalCoeff( coeff_token ) 260*495ae853SAndroid Build Coastguard Worker * output : index to access zero table 261*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 262*495ae853SAndroid Build Coastguard Worker */ 263*495ae853SAndroid Build Coastguard Worker const UWORD8 gu1_index_run_table[7] = 264*495ae853SAndroid Build Coastguard Worker { 265*495ae853SAndroid Build Coastguard Worker 0, 2, 5, 9, 14, 20, 27, 266*495ae853SAndroid Build Coastguard Worker }; 267