xref: /aosp_15_r20/external/libavc/common/ih264_cavlc_tables.c (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
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