source: 3DVCSoftware/trunk/source/Lib/TLibCommon/ContextTables.h @ 2

Last change on this file since 2 was 2, checked in by hhi, 13 years ago

inital import

  • Property svn:eol-style set to native
File size: 59.5 KB
Line 
1
2
3/** \file     ContextTables.h
4    \brief    Defines constants and tables for SBAC
5    \todo     number of context models is not matched to actual use, should be fixed
6*/
7
8#ifndef __CONTEXTTABLES__
9#define __CONTEXTTABLES__
10
11// ====================================================================================================================
12// Constants
13// ====================================================================================================================
14
15#define NUM_SPLIT_FLAG_CTX            3       ///< number of context models for split flag
16#if MW_MVI_SIGNALLING_MODE == 0
17#define NUM_MVI_FLAG_CTX              3       ///< number of context models for motion inheritance flag
18#endif
19#define NUM_SKIP_FLAG_CTX             3       ///< number of context models for skip flag
20
21#define NUM_ALF_CRTL_FLAG_CTX         3       ///< number of context models for ALF ctrl flag
22
23#define NUM_MERGE_FLAG_EXT_CTX        3       ///< number of context models for merge flag of merge extended
24#define NUM_MERGE_IDX_EXT_CTX         4       ///< number of context models for merge index of merge extended
25#define NUM_MV_MERGE_IDX_EXT_CTX      5       ///< number of context models for merge index of merge extended
26#define NUM_RES_PRED_FLAG_CTX         3       ///< number of context for residual prediction flag     
27
28#define NUM_ALF_CTRL_FLAG_CTX         3       ///< number of context models for ALF control flag
29#define NUM_PART_SIZE_CTX             5       ///< number of context models for partition size
30#define NUM_PRED_MODE_CTX             2       ///< number of context models for prediction mode
31#if MTK_DCM_MPM
32#define NUM_ADI_CTX                   3       ///< number of context models for intra prediction
33#else
34#define NUM_ADI_CTX                   2
35#endif
36#if ADD_PLANAR_MODE
37#define NUM_PLANARFLAG_CTX            2       ///< number of context models for planar mode flag (intra prediction)
38#endif
39
40#define NUM_CHROMA_PRED_CTX           4       ///< number of context models for intra prediction (chroma)
41#define NUM_INTER_DIR_CTX             4       ///< number of context models for inter prediction direction
42#define NUM_MV_RES_CTX                7       ///< number of context models for motion vector difference
43
44#define NUM_REF_NO_CTX                6       ///< number of context models for reference index
45#define NUM_TRANS_SUBDIV_FLAG_CTX     10      ///< number of context models for transform subdivision flags
46#define NUM_QT_CBF_CTX                15      ///< number of context models for QT CBF
47#define NUM_QT_ROOT_CBF_CTX           4       ///< number of context models for QT ROOT CBF
48#define NUM_DELTA_QP_CTX              4       ///< number of context models for dQP
49#define NUM_CBF_CTX                   4       ///< number of context models for CBF
50
51#define NUM_SIG_FLAG_CTX              16      ///< number of context models for sig flag
52#if PCP_SIGMAP_SIMPLE_LAST
53#define NUM_CTX_LAST_FLAG_XY          26      ///< number of context models for PCP last flag
54#else
55#define NUM_LAST_FLAG_CTX             16      ///< number of context models for last flag
56#endif
57#define NUM_ONE_FLAG_CTX              40      ///< number of context models for greater than one
58#define NUM_ABS_FLAG_CTX              40      ///< number of context models for magnitude
59
60#define NUM_MVP_IDX_CTX               2       ///< number of context models for MVP index
61
62#define NUM_ALF_FLAG_CTX              1       ///< number of context models for ALF flag
63#define NUM_ALF_UVLC_CTX              2       ///< number of context models for ALF UVLC (filter length)
64#define NUM_ALF_SVLC_CTX              3       ///< number of context models for ALF SVLC (filter coeff.)
65
66#if MTK_SAO
67#define NUM_AO_FLAG_CTX              1       ///< number of context models for AO flag
68#define NUM_AO_UVLC_CTX              2       ///< number of context models for AO UVLC (filter length)
69#define NUM_AO_SVLC_CTX              3       ///< number of context models for AO SVLC (filter coeff.)
70#endif
71
72#define NUM_VIEW_IDX_CTX              6
73
74#if HHI_DMM_INTRA
75#define NUM_DMM_CTX                   2
76#define NUM_WEDGE_CTX                 4
77#endif
78
79// ====================================================================================================================
80// Tables
81// ====================================================================================================================
82
83// mapping table for mapping 8x8 sigmap to 4x4 sigmap
84static const int  pos2ctx_map8x8  []  =
85{
86  0,  1,  2,  3,  4,  5,  5,  4,  4,  3,  3,  4,  4,  4,  5,  5,
87  4,  4,  4,  4,  3,  3,  6,  7,  7,  7,  8,  9, 10,  9,  8,  7,
88  7,  6, 11, 12, 13, 11,  6,  7,  8,  9, 14, 10,  9,  8,  6, 11,
89  12, 13, 11,  6,  9, 14, 10,  9, 11, 12, 13, 11 ,14, 10, 12, 14
90};
91
92// mapping table for mapping 8x8 lastbit to 4x4 lastbit
93static const int  pos2ctx_last8x8 []  =
94{
95  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
96  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
97  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,
98  5,  5,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8
99};
100
101// no-mapping case
102static const int  pos2ctx_nomap   []  =
103{
104  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15
105};
106
107
108// initial probability for split flag
109static const Short
110INIT_SPLIT_FLAG[3][NUM_SPLIT_FLAG_CTX][2] =
111{
112  {
113    {   -7,   68 }, {  -10,   87 }, {  -10,  105 }
114  },
115  {
116    {  -14,   71 }, {   -6,   73 }, {   -6,   91 }
117  },
118  {
119    {  -14,   71 }, {   -7,   74 }, {  -10,   92 }
120  }
121};
122
123#if MW_MVI_SIGNALLING_MODE == 0
124// initial probability for skip flag
125static const Short
126INIT_MVI_FLAG[3][NUM_MVI_FLAG_CTX][2] =
127{
128  {
129    {    0,   64 }, {    0,   64 }, {    0,   64 }
130  },
131  {
132    {    0,   64 }, {    0,   64 }, {    0,   64 }
133  },
134  {
135    {    0,   64 }, {    0,   64 }, {    0,   64 }
136  }
137};
138#endif
139
140// initial probability for skip flag
141static const Short
142INIT_SKIP_FLAG[3][NUM_SKIP_FLAG_CTX][2] =
143{
144  {
145    {    0,   64 }, {    0,   64 }, {    0,   64 }
146  },
147  {
148    {    0,   64 }, {    0,   64 }, {    0,   64 }
149  },
150  {
151    {    0,   64 }, {    0,   64 }, {    0,   64 }
152  }
153};
154
155// initial probability for skip flag
156static const Short
157INIT_ALF_CTRL_FLAG[3][NUM_ALF_CTRL_FLAG_CTX][2] =
158{
159  {
160    {    0,   64 }, {    0,   64 }, {    0,   64 }
161  },
162  {
163    {    0,   64 }, {    0,   64 }, {    0,   64 }
164  },
165  {
166    {    0,   64 }, {    0,   64 }, {    0,   64 }
167  }
168};
169
170// initial probability for merge flag
171static const Short
172INIT_MERGE_FLAG_EXT[3][NUM_MERGE_FLAG_EXT_CTX][2] =
173{
174  {
175    {    0,   64 }, {    0,   64 }, {    0,   64 }
176  },
177  {
178    {    0,   64 }, {    0,   64 }, {    0,   64 }
179  },
180  {
181    {    0,   64 }, {    0,   64 }, {    0,   64 }
182  }
183};
184
185static const Short
186INIT_MERGE_IDX_EXT[3][NUM_MERGE_IDX_EXT_CTX][2] =
187{
188  {
189    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
190  },
191  {
192    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
193  },
194  {
195    {    1,   65 }, {    6,   42 }, {   -7,   75 }, {   -4,   72 }
196  }
197};
198
199
200static const Short
201INIT_MV_MERGE_IDX_EXT[3][NUM_MV_MERGE_IDX_EXT_CTX][2] =
202{
203  {
204    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
205  },
206  {
207    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
208  },
209  {
210    {    0,   64 }, {    1,   65 }, {    6,   42 }, {   -7,   75 }, {   -4,   72 }
211  }
212};
213
214
215static const Short
216INIT_RES_PRED_FLAG[3][NUM_RES_PRED_FLAG_CTX][2] =
217{
218  {
219    {    0,   64 }, {    0,   64 }, {    0,   64 }
220  },
221  {
222    {    0,   64 }, {    0,   64 }, {    0,   64 }
223  },
224  {
225    {    0,   64 }, {    0,   64 }, {    0,   64 }
226  }
227};
228
229
230// initial probability for PU size
231static const Short
232INIT_PART_SIZE[3][NUM_PART_SIZE_CTX][2] =
233{
234  {
235    {    0,   73 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
236    {    0,   64 }
237  },
238  {
239    {   -1,   64 }, {   -3,   63 }, {    6,   78 }, {    0,   64 }, 
240    {    0,   64 }
241  },
242  {
243    {    6,   50 }, {   -1,   56 }, {   13,   53 }, {  -11,   76 }, 
244    {  -11,   70 }
245  }
246};
247
248// initial probability for prediction mode
249static const Short
250INIT_PRED_MODE[3][NUM_PRED_MODE_CTX][2] =
251{
252  {
253    {    0,   64 }, {    0,   64 }
254  },
255  {
256    {    0,   64 }, {  -25,   89 }
257  },
258  {
259    {    0,   64 }, {    0,   64 }
260  }
261};
262
263// initial probability for intra direction of luma
264#if MTK_DCM_MPM
265static const Short
266INIT_INTRA_PRED_MODE[3][NUM_ADI_CTX][2] =
267{
268  {
269    {    2,   54 }, {  -3,   65  }, {   -3,   65 }
270  },
271  {
272    {    0,   50 }, {  -2,   61  }, {   -2,   61 }
273  },
274  {
275    {    0,   51 }, {  1,   55   }, {    1,   55 }
276  }
277};
278#else
279static const Short
280INIT_INTRA_PRED_MODE[3][NUM_ADI_CTX][2] =
281{
282  {
283    {    2,   54 }, {   -3,   65 }
284  },
285  {
286    {    0,   50 }, {   -2,   61 }
287  },
288  {
289    {    0,   51 }, {    1,   55 }
290  }
291};
292#endif
293
294#if ADD_PLANAR_MODE
295// initial probability for planar mode flag
296static const Short
297INIT_PLANARFLAG[3][NUM_PLANARFLAG_CTX][2] =
298{
299  {
300    {    0,   64 }, {    0,   64 }
301  },
302  {
303    {    0,   64 }, {    0,   64 }
304  },
305  {
306    {    0,   64 }, {    0,   64 }
307  }
308};
309#endif
310
311// initial probability for intra direction of chroma
312static const Short
313INIT_CHROMA_PRED_MODE[3][4][2] =
314{
315#if CHROMA_CODEWORD
316  {
317    {  0,   64 }, {   0,   64 }, {  0,  64 }, {  0,  64 }
318  },
319  {
320    {  0,   64 }, {   0,   64 }, {  0,  64 }, {  0,  64 }
321  },
322  {
323    {  0,   64 }, {   0,   64 }, {  0,  64 }, {  0,  64 }
324  }
325#else
326  {
327    {  -14,   78 }, {   -5,   78 }, {  -13,  109 }, {  -13,  100 }
328  },
329  {
330    {  -26,  113 }, {  -13,   92 }, {  -23,  110 }, {  -11,  105 }
331  },
332  {
333    {  -20,  101 }, {  -25,  111 }, {  -29,  118 }, {  -24,  121 }
334  }
335#endif
336};
337
338// initial probability for temporal direction
339static const Short
340INIT_INTER_DIR[3][4][2] =
341{
342  {
343    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
344  },
345  {
346    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
347  },
348  {
349    {   -2,   58 }, {   -5,   70 }, {   -9,   85 }, {    1,   61 }
350  }
351};
352
353// initial probability for motion vector difference
354static const Short INIT_MVD[3][14][2] =
355{
356  {
357    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
358    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
359    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
360    {    0,   64 }, {    0,   64 }
361  },
362  {
363    {   -6,   80 }, {   -6,   84 }, {   -9,   90 }, {    4,   62 }, 
364    {   13,   55 }, {    2,   70 }, {    8,   74 }, {   -6,   77 }, 
365    {   -7,   84 }, {   -9,   89 }, {    5,   59 }, {   10,   62 }, 
366    {    4,   68 }, {    7,   75 }
367  },
368  {
369    {   -4,   75 }, {   -5,   82 }, {  -12,   94 }, {    7,   55 }, 
370    {   11,   59 }, {    6,   63 }, {    8,   71 }, {   -2,   71 }, 
371    {   -5,   81 }, {  -21,  111 }, {    6,   58 }, {   10,   60 }, 
372    {    5,   64 }, {   10,   67 }
373  }
374};
375
376// initial probability for reference frame index
377static const Short
378INIT_REF_PIC[3][NUM_REF_NO_CTX][2] =
379{
380  {
381    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
382    {    0,   64 }, {    0,   64 }
383  },
384  {
385    {   -6,   59 }, {  -10,   75 }, {   -8,   75 }, {  -17,   96 }, 
386    {    1,   59 }, {    0,   64 }
387  },
388  {
389    {   -9,   55 }, {   -9,   71 }, {   -9,   76 }, {  -12,   86 }, 
390    {  -18,   55 }, {    0,   64 }
391  }
392};
393
394
395static const Short
396INIT_VIEW_IDX[3][NUM_VIEW_IDX_CTX][2] =
397{
398    {
399      {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
400      {    0,   64 }, {    0,   64 }
401    },
402    {
403      {   -6,   59 }, {  -10,   75 }, {   -8,   75 }, {  -17,   96 },
404      {    1,   59 }, {    0,   64 }
405    },
406    {
407      {   -9,   55 }, {   -9,   71 }, {   -9,   76 }, {  -12,   86 },
408      {  -18,   55 }, {    0,   64 }
409    }
410};
411
412// initial probability for dQP
413static const Short
414INIT_DQP[3][NUM_DELTA_QP_CTX][2] =
415{
416  {
417    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
418  },
419  {
420    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
421  },
422  {
423    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }
424  }
425};
426
427static const Short
428INIT_QT_CBF[3][3*NUM_QT_CBF_CTX][2] =
429{
430  {
431    {  -22,  116 }, {   -5,   75 }, {  -16,  112 }, {  -16,  111 }, 
432    {  -32,  165 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
433    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
434    {    0,   64 }, {    0,   64 }, {    0,   64 }, {  -35,  116 }, 
435    {  -12,   61 }, {   -9,   73 }, {  -10,   75 }, {  -14,   96 }, 
436    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
437    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
438    {    0,   64 }, {    0,   64 }, {  -29,  104 }, {  -12,   59 }, 
439    {   -5,   65 }, {   -6,   67 }, {  -11,   90 }, {    0,   64 }, 
440    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
441    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
442    {    0,   64 }
443  },
444  {
445    {  -18,   98 }, {  -41,  120 }, {  -29,  117 }, {  -23,  108 }, 
446    {  -35,  143 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
447    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
448    {    0,   64 }, {    0,   64 }, {    0,   64 }, {  -46,  114 }, 
449    {  -42,  119 }, {  -11,   74 }, {  -19,   90 }, {  -42,  139 }, 
450    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
451    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
452    {    0,   64 }, {    0,   64 }, {  -43,  107 }, {  -41,  118 }, 
453    {  -17,   86 }, {  -25,  101 }, {  -14,   91 }, {    0,   64 }, 
454    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
455    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
456    {    0,   64 }
457  },
458  {
459    {  -11,   80 }, {  -32,   83 }, {  -19,   89 }, {  -16,   85 }, 
460    {  -19,  102 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
461    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
462    {    0,   64 }, {    0,   64 }, {    0,   64 }, {  -22,   52 }, 
463    {  -48,  123 }, {   -7,   68 }, {  -37,  121 }, {  -58,  164 }, 
464    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
465    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
466    {    0,   64 }, {    0,   64 }, {  -19,   45 }, {  -48,  123 }, 
467    {  -21,   94 }, {   -9,   73 }, {  -42,  138 }, {    0,   64 }, 
468    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
469    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
470    {    0,   64 }
471  }
472};
473
474static const Short
475INIT_QT_ROOT_CBF[3][NUM_QT_ROOT_CBF_CTX][2] =
476{
477  {
478    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
479  },
480  {
481    {  -22,   85 }, {  -15,   86 }, {  -13,   84 }, {  -23,  116 },
482  },
483  {
484    {  -36,  103 }, {  -21,   95 }, {  -21,   97 }, {  -24,  114 },
485  }
486};
487
488#if PCP_SIGMAP_SIMPLE_LAST
489static const Short
490INIT_LAST_X[3][2*NUM_CTX_LAST_FLAG_XY][2] =
491{
492  {
493    {   8,  31 }, {   8,  39 }, {   8,  48 }, {  12,  31 },
494    {   8,  38 }, {   6,  45 }, {   3,  46 }, {  -1,  56 },
495    {  18,  16 }, {  14,  22 }, {  15,  22 }, {  16,  17 },
496    {  16,  16 }, {  12,  24 }, {  -4,  59 }, {  33, -26 },
497    {  18,   1 }, {  20,   2 }, {  22,  -1 }, {  17,  14 },
498    {  11,  21 }, {  31, -24 }, {  38, -38 }, {  12,  11 },
499    {  -4,  47 }, { -13,  69 }, {  32,  11 }, {  25,  27 },
500    {  50,  -1 }, {  32,  20 }, {  12,  38 }, {  18,  32 },
501    {  12,  41 }, {   5,  70 }, {  40,  -6 }, {  14,  29 },
502    {  17,  26 }, {   7,  43 }, {  15,  26 }, {  15,  27 },
503    {   9,  51 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
504    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
505    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 }
506  },
507  {
508    {   9,  40 }, {   9,  44 }, {  10,  52 }, {  17,  24 },
509    {  21,  15 }, {  20,  20 }, {  14,  29 }, {   8,  46 },
510    {   7,  46 }, {  18,  18 }, {  26,   3 }, {  26,   0 },
511    {  25,   2 }, {  15,  18 }, {   9,  27 }, {  23,  20 },
512    {  19,  16 }, {  27,  -1 }, {  33, -19 }, {  38, -30 },
513    {  41, -39 }, {  40, -36 }, {  26, -12 }, {   3,  20 },
514    {  -7,  33 }, {  -4,  20 }, {  16,  42 }, {  16,  45 },
515    {  49,   7 }, {   6,  61 }, {  17,  36 }, {  24,  24 },
516    {  24,  21 }, {  61, -22 }, { -11, 101 }, {   6,  53 },
517    {  14,  40 }, {  17,  30 }, {  20,  22 }, { -10,  67 },
518    {  -6,  68 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
519    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
520    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 }
521  },
522  {
523    {   9,  40 }, {   9,  44 }, {  10,  52 }, {  17,  24 },
524    {  21,  15 }, {  20,  20 }, {  14,  29 }, {   8,  46 },
525    {   7,  46 }, {  18,  18 }, {  26,   3 }, {  26,   0 },
526    {  25,   2 }, {  15,  18 }, {   9,  27 }, {  23,  20 },
527    {  19,  16 }, {  27,  -1 }, {  33, -19 }, {  38, -30 },
528    {  41, -39 }, {  40, -36 }, {  26, -12 }, {   3,  20 },
529    {  -7,  33 }, {  -4,  20 }, {  16,  42 }, {  16,  45 },
530    {  49,   7 }, {   6,  61 }, {  17,  36 }, {  24,  24 },
531    {  24,  21 }, {  61, -22 }, { -11, 101 }, {   6,  53 },
532    {  14,  40 }, {  17,  30 }, {  20,  22 }, { -10,  67 },
533    {  -6,  68 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
534    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
535    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 }
536  }
537};
538
539static const Short
540INIT_LAST_Y[3][2*NUM_CTX_LAST_FLAG_XY][2] =
541{
542  {
543    {  19,  19 }, {  12,  36 }, {  16,  34 }, {  22,  18 },
544    {  12,  35 }, {  12,  35 }, {  12,  32 }, {   5,  46 },
545    {  16,  21 }, {  15,  20 }, {  17,  13 }, {  17,  14 },
546    {  19,  10 }, {  19,  12 }, {   4,  37 }, {  13,  22 },
547    {  22,  -4 }, {  27, -19 }, {  26, -12 }, {  18,   6 },
548    {   6,  27 }, {  12,  10 }, {  34, -33 }, {  38, -42 },
549    {  24, -15 }, {  14,   7 }, {  41,   7 }, {  45,   1 },
550    {  56,  -9 }, {  30,  22 }, {  14,  40 }, {  23,  24 },
551    {  19,  32 }, {  25,  26 }, {  29,  10 }, {  29,   4 },
552    {  19,  20 }, {  10,  37 }, {  12,  38 }, {  -2,  60 },
553    { -37, 114 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
554    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
555    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 }
556  },
557  {
558    {  15,  29 }, {  14,  36 }, {  15,  41 }, {  25,   8 },
559    {  26,   4 }, {  25,  10 }, {  21,  16 }, {  12,  34 },
560    {  18,  21 }, {  25,   1 }, {  32, -12 }, {  32, -15 },
561    {  29, -11 }, {  24,  -5 }, {  13,  12 }, {  27,   6 },
562    {  40, -32 }, {  42, -39 }, {  40, -39 }, {  45, -51 },
563    {  43, -51 }, {  45, -56 }, {  38, -46 }, {  15,  -6 },
564    {  11,  -4 }, {  11,  -4 }, {  26,  29 }, {  28,  29 },
565    {  21,  46 }, {  15,  45 }, {  27,  17 }, {  29,  12 },
566    {  23,  15 }, {  -1,  57 }, {   6,  65 }, {  22,  17 },
567    {  31,  -4 }, {  37, -25 }, {  43, -44 }, {  43, -46 },
568    {  48, -44 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
569    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
570    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 }
571  },
572  {
573    {  15,  29 }, {  14,  36 }, {  15,  41 }, {  25,   8 },
574    {  26,   4 }, {  25,  10 }, {  21,  16 }, {  12,  34 },
575    {  18,  21 }, {  25,   1 }, {  32, -12 }, {  32, -15 },
576    {  29, -11 }, {  24,  -5 }, {  13,  12 }, {  27,   6 },
577    {  40, -32 }, {  42, -39 }, {  40, -39 }, {  45, -51 },
578    {  43, -51 }, {  45, -56 }, {  38, -46 }, {  15,  -6 },
579    {  11,  -4 }, {  11,  -4 }, {  26,  29 }, {  28,  29 },
580    {  21,  46 }, {  15,  45 }, {  27,  17 }, {  29,  12 },
581    {  23,  15 }, {  -1,  57 }, {   6,  65 }, {  22,  17 },
582    {  31,  -4 }, {  37, -25 }, {  43, -44 }, {  43, -46 },
583    {  48, -44 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
584    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 },
585    {   0,  64 }, {   0,  64 }, {   0,  64 }, {   0,  64 }
586  }
587};
588#endif
589
590#if SIMPLE_CONTEXT_SIG
591static const Short
592INIT_SIG_FLAG[3][128][2] =
593{
594  {
595    {   -3,  102 }, {  -17,  114 }, {   -7,   97 }, {  -12,   96 },
596    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
597    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
598    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
599    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
600    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
601    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
602    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
603    {   -5,   99 }, {   -9,   92 }, {   -5,   90 }, {   -7,   83 },
604    {   -3,   37 }, {   -1,   62 }, {   -5,   81 }, {   -2,   41 },
605    {    1,   64 }, {   -6,   82 }, {    0,   12 }, {    1,   43 },
606    {    0,   57 }, {   -1,   66 }, {   -4,   79 }, {    0,   64 },
607    {   23,   51 }, {    0,   69 }, {   10,   54 }, {    0,   65 },
608    {   -1,   42 }, {    4,   51 }, {   -3,   70 }, {  -12,   61 },
609    {   -4,   50 }, {   -2,   68 }, {   -18,  57 }, {    5,   38 },
610    {    1,   54 }, {   -3,   66 }, {   -9,   80 }, {    0,   64 },
611    {  -10,   91 }, {   -9,   76 }, {   -3,   61 }, {    1,   46 },
612    {  -13,   84 }, {  -13,   81 }, {   -2,   60 }, {   -5,   61 },
613    {  -11,   77 }, {  -10,   76 }, {   -3,   65 }, {   -3,   63 },
614    {   -4,   59 }, {  -14,   79 }, {    1,   61 }, {  -33,  126 },
615    {   19,   45 }, {    8,   48 }, {    2,   40 }, {   -3,   40 },
616    {    8,   46 }, {   16,   31 }, {  -10,   73 }, {  -51,  114 },
617    {    2,   52 }, {   -9,   71 }, {  -37,  118 }, {   -8,   38 },
618    {  -10,   64 }, {  -47,  113 }, { -105,  234 }, {  -32,  123 },
619    {   -4,   94 }, {   -2,   84 }, {   -4,   83 }, {   16,   39 },
620    {    0,   83 }, {   -1,   81 }, {   -4,   82 }, {  -16,   91 },
621    {   -9,   86 }, {   -8,   89 }, {   -2,   82 }, {  -14,   92 },
622    {  -16,   91 }, {   13,   44 }, {  -12,   91 }, {    0,   64 },
623    {   29,   42 }, {    1,   74 }, {   -6,   77 }, {   23,   41 },
624    {   13,   63 }, {   -6,   88 }, {   -8,   80 }, {   35,   17 },
625    {    0,   70 }, {  -17,  100 }, {  -25,  111 }, {  -39,  122 },
626    {   26,   29 }, {  -36,  114 }, {  -41,  130 }, {    0,   64 }
627  },
628  {
629    {   -7,   88 }, {    5,   52 }, {   -4,   74 }, {    5,   56 },
630    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
631    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
632    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
633    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
634    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
635    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
636    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
637    {    0,   75 }, {    1,   59 }, {   -1,   67 }, {   -3,   67 },
638    {    6,   29 }, {    2,   57 }, {   -5,   77 }, {   -5,   44 },
639    {   -4,   64 }, {   -7,   78 }, {   -9,   34 }, {    2,   43 },
640    {    2,   53 }, {    2,   60 }, {   -8,   83 }, {    0,   64 },
641    {   19,   22 }, {   11,   48 }, {    9,   51 }, {  -24,   95 },
642    {  -27,   82 }, {  -22,   92 }, {  -20,   89 }, {  -25,   82 },
643    {  -15,   77 }, {   24,   32 }, {  -31,   76 }, {  -19,   77 },
644    {  -21,   84 }, {  -23,   95 }, {  -35,  112 }, {    0,   64 },
645    {    2,   69 }, {  -10,   82 }, {   -1,   57 }, {   -7,   59 },
646    {   -5,   71 }, {  -13,   85 }, {  -28,  107 }, {  -29,  100 },
647    {  -21,   93 }, {  -28,  108 }, {   -6,   71 }, {  -48,  136 },
648    {  -35,  111 }, {  -10,   74 }, {    4,   56 }, {    5,   56 },
649    {   -3,   84 }, {  -35,  122 }, {  -42,  111 }, {  101, -147 },
650    {  -14,   87 }, {  -70,  179 }, {    6,   30 }, {    0,   64 },
651    {    8,   32 }, {  -64,  156 }, {    0,   64 }, {    0,   64 },
652    {  -65,  144 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
653    {    6,   67 }, {   -1,   72 }, {   -9,   84 }, {  -29,  100 },
654    {    4,   65 }, {    0,   70 }, {   -7,   80 }, {  -34,  117 },
655    {  -11,   79 }, {  -14,   91 }, {  -15,   93 }, {  -34,  119 },
656    {   26,   26 }, {  -34,  111 }, {  -35,  126 }, {    0,   64 },
657    {  -15,  103 }, {   25,   19 }, {   23,   29 }, {  -65,  142 },
658    {  -21,  108 }, {   27,   19 }, {  -34,  111 }, {  -71,  174 },
659    {  -30,  104 }, {   34,   12 }, { -144,  285 }, { -168,  304 },
660    {   43,    6 }, { -125,  248 }, { -129,  252 }, {    0,   64 }
661  },
662  {
663    {   -7,   88 }, {    5,   52 }, {   -4,   74 }, {    5,   56 },
664    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
665    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
666    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
667    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
668    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
669    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
670    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
671    {    0,   75 }, {    1,   59 }, {   -1,   67 }, {   -3,   67 },
672    {    6,   29 }, {    2,   57 }, {   -5,   77 }, {   -5,   44 },
673    {   -4,   64 }, {   -7,   78 }, {   -9,   34 }, {    2,   43 },
674    {    2,   53 }, {    2,   60 }, {   -8,   83 }, {    0,   64 },
675    {   19,   22 }, {   11,   48 }, {    9,   51 }, {  -24,   95 },
676    {  -27,   82 }, {  -22,   92 }, {  -20,   89 }, {  -25,   82 },
677    {  -15,   77 }, {   24,   32 }, {  -31,   76 }, {  -19,   77 },
678    {  -21,   84 }, {  -23,   95 }, {  -35,  112 }, {    0,   64 },
679    {    2,   69 }, {  -10,   82 }, {   -1,   57 }, {   -7,   59 },
680    {   -5,   71 }, {  -13,   85 }, {  -28,  107 }, {  -29,  100 },
681    {  -21,   93 }, {  -28,  108 }, {   -6,   71 }, {  -48,  136 },
682    {  -35,  111 }, {  -10,   74 }, {    4,   56 }, {    5,   56 },
683    {   -3,   84 }, {  -35,  122 }, {  -42,  111 }, {  101, -147 },
684    {  -14,   87 }, {  -70,  179 }, {    6,   30 }, {    0,   64 },
685    {    8,   32 }, {  -64,  156 }, {    0,   64 }, {    0,   64 },
686    {  -65,  144 }, {    0,   64 }, {    0,   64 }, {    0,   64 },
687    {    6,   67 }, {   -1,   72 }, {   -9,   84 }, {  -29,  100 },
688    {    4,   65 }, {    0,   70 }, {   -7,   80 }, {  -34,  117 },
689    {  -11,   79 }, {  -14,   91 }, {  -15,   93 }, {  -34,  119 },
690    {   26,   26 }, {  -34,  111 }, {  -35,  126 }, {    0,   64 },
691    {  -15,  103 }, {   25,   19 }, {   23,   29 }, {  -65,  142 },
692    {  -21,  108 }, {   27,   19 }, {  -34,  111 }, {  -71,  174 },
693    {  -30,  104 }, {   34,   12 }, { -144,  285 }, { -168,  304 },
694    {   43,    6 }, { -125,  248 }, { -129,  252 }, {    0,   64 }
695  }
696};
697#else
698static const Short
699INIT_SIG_FLAG[3][224][2] =
700{
701  {
702    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
703    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
704    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
705    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
706    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
707    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
708    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
709    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
710    {  -24,  145 }, {  -40,  159 }, {  -38,  155 }, {  -44,  159 }, 
711    {   -1,   27 }, {   -4,   68 }, {  -12,  100 }, {  -15,   61 }, 
712    {  -14,   82 }, {  -23,  117 }, {    0,    6 }, {  -11,   54 }, 
713    {    8,   40 }, {   -1,   65 }, {  -18,  104 }, {    0,   64 }, 
714    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
715    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
716    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
717    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
718    {  -31,  151 }, {  -19,  114 }, {  -22,  124 }, {  -14,  100 }, 
719    {   -7,   39 }, {   -1,   61 }, {  -12,   96 }, {  -13,   55 }, 
720    {   -1,   61 }, {  -16,  101 }, {    2,    5 }, {    8,   23 }, 
721    {    6,   43 }, {    1,   62 }, {  -16,   99 }, {    0,   64 }, 
722    {  -19,  119 }, {  -12,   91 }, {  -19,  106 }, {  -25,  108 }, 
723    {   19,   -5 }, {  -24,   96 }, {   -7,   78 }, {   19,    1 }, 
724    {    1,   54 }, {  -10,   82 }, {    1,   15 }, {   -3,   51 }, 
725    {   -4,   62 }, {    1,   61 }, {   -5,   74 }, {    0,   64 }, 
726    {  -10,  107 }, {   -9,   90 }, {   -7,   89 }, {  -12,   87 }, 
727    {   -3,   32 }, {    0,   60 }, {   -3,   75 }, {   -6,   49 }, 
728    {    3,   54 }, {   -5,   78 }, {  -16,   39 }, {   -3,   43 }, 
729    {   -6,   64 }, {   -3,   67 }, {   -6,   80 }, {    0,   64 }, 
730    {  -14,  112 }, {   -6,   78 }, {   -6,   83 }, {    2,   61 }, 
731    {    9,   22 }, {   -6,   65 }, {  -26,  107 }, {    4,   33 }, 
732    {    4,   52 }, {  -27,  110 }, {    9,    4 }, {    5,   38 }, 
733    {    6,   46 }, {    6,   54 }, {   -3,   72 }, {    0,   64 }, 
734    {  -10,   91 }, {   -9,   76 }, {   -3,   61 }, {    1,   46 }, 
735    {  -13,   84 }, {  -13,   81 }, {   -2,   60 }, {   -5,   61 }, 
736    {  -11,   77 }, {  -10,   76 }, {   -3,   65 }, {   -3,   63 }, 
737    {   -4,   59 }, {  -14,   79 }, {    1,   61 }, {  -33,  126 }, 
738    {   19,   45 }, {    8,   48 }, {    2,   40 }, {   -3,   40 }, 
739    {    8,   46 }, {   16,   31 }, {  -10,   73 }, {  -51,  114 }, 
740    {    2,   52 }, {   -9,   71 }, {  -37,  118 }, {   -8,   38 }, 
741    {  -10,   64 }, {  -47,  113 }, { -105,  234 }, {  -32,  123 }, 
742    {  -11,  105 }, {   -8,   84 }, {   -5,   72 }, {   -7,   71 }, 
743    {  -13,   96 }, {   -9,   85 }, {   -4,   75 }, {   -7,   75 }, 
744    {  -10,   84 }, {   -7,   81 }, {    0,   76 }, {   -3,   78 }, 
745    {  -11,   84 }, {   -4,   75 }, {   -1,   83 }, {    0,   64 }, 
746    {   32,   35 }, {    3,   59 }, {   -1,   61 }, {  -31,  104 }, 
747    {   29,   28 }, {   11,   51 }, {   -6,   77 }, {  -41,  125 }, 
748    {    9,   53 }, {   -3,   76 }, {  -34,  130 }, {  -42,  133 }, 
749    {  -29,  109 }, {  -49,  143 }, {  -47,  144 }, {    0,   64 }, 
750    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
751    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
752    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
753    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
754    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
755    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
756    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
757    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
758  },
759  {
760    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
761    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
762    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
763    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
764    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
765    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
766    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
767    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
768    {  -22,  128 }, {  -14,   96 }, {  -17,   99 }, {  -26,  113 }, 
769    {    5,   31 }, {   -2,   65 }, {  -32,  125 }, {  -19,   72 }, 
770    {   -7,   69 }, {  -24,  111 }, {    0,   25 }, {   -1,   49 }, 
771    {    2,   54 }, {    0,   64 }, {  -15,   97 }, {    0,   64 }, 
772    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
773    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
774    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
775    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
776    {   -4,   88 }, {    0,   68 }, {   -4,   75 }, {   -5,   74 }, 
777    {   17,    7 }, {    2,   56 }, {   -8,   80 }, {    1,   36 }, 
778    {    2,   52 }, {  -11,   85 }, {    6,   12 }, {    5,   41 }, 
779    {    2,   54 }, {    0,   65 }, {   -8,   82 }, {    0,   64 }, 
780    {   -8,   95 }, {   -7,   77 }, {   -7,   73 }, {   -9,   74 }, 
781    {  -18,   77 }, {   -7,   72 }, {  -11,   81 }, {  -29,   92 }, 
782    {    4,   47 }, {  -14,   83 }, {  -26,   79 }, {    2,   46 }, 
783    {    5,   50 }, {    6,   52 }, {  -22,  104 }, {    0,   64 }, 
784    {   -7,   93 }, {   -5,   79 }, {   -6,   79 }, {   -8,   79 }, 
785    {    5,   36 }, {    3,   56 }, {  -18,   99 }, {  -10,   59 }, 
786    {    0,   56 }, {  -11,   84 }, {   -3,   31 }, {    8,   35 }, 
787    {    4,   51 }, {   -1,   66 }, {   -7,   81 }, {    0,   64 }, 
788    {    1,   80 }, {  -28,  116 }, {  -26,  112 }, {    2,   56 }, 
789    {  -17,   75 }, {    3,   52 }, {  -10,   79 }, {  -26,   91 }, 
790    {   -2,   61 }, {   -3,   66 }, {  -45,  114 }, {  -21,   91 }, 
791    {    1,   59 }, {    2,   62 }, {  -10,   82 }, {    0,   64 }, 
792    {    3,   68 }, {    0,   62 }, {   -8,   69 }, {    1,   43 }, 
793    {   -6,   70 }, {   -4,   66 }, {   -2,   60 }, {   -6,   61 }, 
794    {  -13,   78 }, {   -8,   71 }, {   -6,   71 }, {   -5,   67 }, 
795    {   -7,   63 }, {    0,   56 }, {  -13,   83 }, {   -4,   77 }, 
796    {    6,   70 }, {  -19,   94 }, {  -21,   80 }, {   -7,   30 }, 
797    {  -15,   88 }, {  -19,   95 }, {  -39,  117 }, {  -10,   42 }, 
798    {  -15,   78 }, {  -30,  104 }, {    4,   36 }, {   91, -137 }, 
799    {  -45,  125 }, {    0,   42 }, {   30,    2 }, {    0,   64 }, 
800    {   -3,   84 }, {   -8,   83 }, {  -13,   86 }, {  -12,   75 }, 
801    {   -6,   81 }, {   -9,   83 }, {   -5,   77 }, {   -8,   75 }, 
802    {   -8,   79 }, {   -7,   82 }, {    0,   73 }, {   -7,   83 }, 
803    {  -13,   84 }, {   -4,   73 }, {   -3,   82 }, {    0,   64 }, 
804    {   15,   63 }, {    0,   69 }, {  -28,  110 }, {  -29,  104 }, 
805    {   -1,   74 }, {  -22,  105 }, {  -50,  150 }, {  -57,  151 }, 
806    {  -21,   96 }, {  -29,  113 }, {  -49,  151 }, {  -85,  197 }, 
807    {  -46,  133 }, {  -60,  159 }, {  -84,  198 }, {    0,   64 }, 
808    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
809    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
810    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
811    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
812    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
813    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
814    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
815    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
816  },
817  {
818    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
819    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
820    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
821    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
822    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
823    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
824    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
825    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
826    {  -34,  146 }, {  -20,  108 }, {  -23,  111 }, {  -38,  141 }, 
827    {    3,   34 }, {   -4,   69 }, {  -17,  103 }, {   -9,   50 }, 
828    {   -4,   66 }, {  -16,   97 }, {   -1,   24 }, {    0,   50 }, 
829    {   -1,   61 }, {  -12,   90 }, {  -14,   97 }, {    0,   64 }, 
830    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
831    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
832    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
833    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
834    {  -12,   99 }, {   -4,   75 }, {   -8,   81 }, {   -7,   80 }, 
835    {   15,   13 }, {    2,   57 }, {  -10,   85 }, {    4,   27 }, 
836    {  -10,   75 }, {   -9,   81 }, {   -9,   46 }, {    6,   41 }, 
837    {    3,   56 }, {   -1,   69 }, {  -14,   96 }, {    0,   64 }, 
838    {   -7,   85 }, {  -22,  102 }, {  -12,   79 }, {  -35,  121 }, 
839    {   -5,   55 }, {  -16,   88 }, {   -9,   78 }, {  -26,   73 }, 
840    {  -28,   99 }, {  -38,  123 }, {   -3,   35 }, {  -25,   97 }, 
841    {   -9,   75 }, {    6,   54 }, {  -15,   92 }, {    0,   64 }, 
842    {   -9,   94 }, {  -14,   94 }, {   -4,   74 }, {  -14,   92 }, 
843    {    7,   37 }, {    3,   57 }, {   -7,   78 }, {   -8,   54 }, 
844    {   -7,   70 }, {   -8,   78 }, {   -2,   31 }, {    4,   49 }, 
845    {    1,   60 }, {   -5,   75 }, {  -10,   87 }, {    0,   64 }, 
846    {   -3,   82 }, {  -19,  102 }, {  -14,   91 }, {  -33,  123 }, 
847    {  -46,  124 }, {  -12,   82 }, {  -43,  138 }, {  -46,  121 }, 
848    {  -38,  125 }, {  -44,  138 }, {  -32,   89 }, {   -3,   60 }, 
849    {  -22,  102 }, {  -27,  114 }, {  -37,  128 }, {    0,   64 }, 
850    {    2,   69 }, {  -10,   82 }, {   -1,   57 }, {   -7,   59 }, 
851    {   -5,   71 }, {  -13,   85 }, {  -28,  107 }, {  -29,  100 }, 
852    {  -21,   93 }, {  -28,  108 }, {   -6,   71 }, {  -48,  136 }, 
853    {  -35,  111 }, {  -10,   74 }, {    4,   56 }, {    5,   56 }, 
854    {   -3,   84 }, {  -35,  122 }, {  -42,  111 }, {  101, -147 }, 
855    {  -14,   87 }, {  -70,  179 }, {    6,   30 }, {    0,   64 }, 
856    {    8,   32 }, {  -64,  156 }, {    0,   64 }, {    0,   64 }, 
857    {  -65,  144 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
858    {    4,   67 }, {   -5,   77 }, {  -12,   85 }, {  -28,  105 }, 
859    {   -5,   77 }, {   -7,   79 }, {   -7,   79 }, {  -28,  109 }, 
860    {  -17,   94 }, {  -11,   88 }, {   -6,   81 }, {  -32,  125 }, 
861    {  -38,  128 }, {  -40,  136 }, {  -39,  142 }, {    0,   64 }, 
862    {  -35,  148 }, {  -47,  150 }, {  -22,  100 }, {  -73,  176 }, 
863    {  -12,   91 }, {  -54,  155 }, {  -86,  203 }, {  -71,  174 }, 
864    {  -66,  167 }, {  -41,  129 }, { -144,  285 }, { -168,  304 }, 
865    {  -59,  148 }, { -125,  248 }, { -129,  252 }, {    0,   64 }, 
866    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
867    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
868    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
869    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
870    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
871    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
872    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
873    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
874  }
875};
876#endif
877#if !PCP_SIGMAP_SIMPLE_LAST
878static const Short
879INIT_LAST_FLAG[3][224][2] =
880{
881  {
882    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
883    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
884    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
885    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
886    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
887    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
888    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
889    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
890    {   24,  -37 }, {   35,  -52 }, {    8,   -9 }, {   14,  -11 }, 
891    {   14,  -10 }, {   22,  -18 }, {   48,  -64 }, {   -1,   29 }, 
892    {   20,   13 }, {  -15,   51 }, {   77, -101 }, {   22,  -20 }, 
893    {  -34,   89 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
894    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
895    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
896    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
897    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
898    {   33,  -47 }, {   38,  -54 }, {   25,  -32 }, {   46,  -66 }, 
899    {   24,  -27 }, {   26,  -28 }, {   36,  -39 }, {   -6,   48 }, 
900    {   -2,   51 }, {   -1,   44 }, {    9,   26 }, {  -36,   93 }, 
901    {  -20,   61 }, {  -51,  130 }, {   29,   -2 }, {    0,    0 }, 
902    {   42,  -30 }, {   43,  -46 }, {   61,  -81 }, {   48,  -51 }, 
903    {   21,    5 }, {    8,   22 }, {    5,   38 }, {   23,   12 }, 
904    {  102, -138 }, {  304, -440 }, {    0,   64 }, {    0,   64 }, 
905    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
906    {   30,  -24 }, {   24,  -15 }, {   19,   -2 }, {    9,   15 }, 
907    {    9,   16 }, {    5,   27 }, {   19,    6 }, {   11,   29 }, 
908    {   -7,   62 }, {   -9,   66 }, {    7,   41 }, {  -11,   76 }, 
909    {  -42,  130 }, {  -14,   91 }, {   16,   14 }, {    0,   64 }, 
910    {   22,   14 }, {   26,   -1 }, {   13,   18 }, {    4,   37 }, 
911    {    5,   36 }, {   20,   14 }, {   12,   29 }, {   24,   17 }, 
912    {  -50,  133 }, { -165,  315 }, { -160,  301 }, { -217,  408 }, 
913    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
914    {   31,  -12 }, {   20,    4 }, {   16,    9 }, {   16,    9 }, 
915    {   17,    8 }, {   20,    4 }, {   23,    4 }, {   17,   18 }, 
916    {    9,   36 }, {   10,   36 }, {   10,   39 }, {    7,   52 }, 
917    {   -3,   75 }, {  -16,  103 }, {    0,   64 }, {    0,   64 }, 
918    {   14,   44 }, {   -2,   64 }, {    3,   51 }, {   18,   22 }, 
919    {   -8,   70 }, {    3,   53 }, {    7,   48 }, {   -6,   70 }, 
920    {  -48,  133 }, {  -22,   96 }, { -111,  240 }, {  -55,  156 }, 
921    {  -92,  215 }, { -347,  585 }, {    0,   64 }, {    0,   64 }, 
922    {   12,   26 }, {   11,   23 }, {   16,   15 }, {   19,   17 }, 
923    {    9,   30 }, {   14,   24 }, {   18,   21 }, {   16,   30 }, 
924    {   13,   27 }, {   12,   33 }, {   13,   37 }, {    9,   54 }, 
925    {   12,   37 }, {   12,   42 }, {   15,   49 }, {    0,   64 }, 
926    {   23,   26 }, {   17,   30 }, {    0,   60 }, {    7,   53 }, 
927    {   18,   33 }, {   15,   39 }, {   10,   48 }, {  -22,  101 }, 
928    {   19,   34 }, {   10,   51 }, {  -35,  124 }, {  -16,   93 }, 
929    {    2,   65 }, {   -9,   83 }, {  -24,  109 }, {    0,   64 }, 
930    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
931    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
932    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
933    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
934    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
935    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
936    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
937    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
938  },
939  {
940    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
941    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
942    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
943    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
944    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
945    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
946    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
947    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
948    {   17,   18 }, {   28,  -21 }, {   40,  -50 }, {    7,   20 }, 
949    {   -9,   47 }, {  -12,   43 }, {    9,   -1 }, {   -7,   52 }, 
950    {  -29,   89 }, {   25,  -20 }, {  -36,   82 }, {  106, -178 }, 
951    {  248, -404 }, {   56,  -38 }, {    0,   64 }, {    0,   64 }, 
952    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
953    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
954    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
955    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
956    {   20,   10 }, {   25,   -8 }, {   23,   -5 }, {    2,   32 }, 
957    {    8,   15 }, {   19,   -5 }, {   15,    0 }, {    8,   27 }, 
958    {   -1,   48 }, {    1,   42 }, {    1,   41 }, {  -48,  124 }, 
959    {  -97,  213 }, {   32,  -21 }, {   61,  -47 }, { -480,  845 }, 
960    {   22,   17 }, {   26,   -6 }, {   42,  -38 }, {   33,  -15 }, 
961    {    9,   29 }, {  -19,   70 }, {  -77,  167 }, {  -80,  176 }, 
962    {  -96,  186 }, {  171, -294 }, {    5,   45 }, {    0,   64 }, 
963    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
964    {   23,    2 }, {   30,  -12 }, {   20,    9 }, {   16,   16 }, 
965    {   19,    4 }, {    8,   24 }, {   15,   13 }, {   10,   26 }, 
966    {   12,   25 }, {  -12,   66 }, {   -7,   60 }, {   -8,   64 }, 
967    {   -2,   63 }, {   -7,   75 }, { -116,  252 }, {    0,   64 }, 
968    {   -4,   68 }, {   20,   16 }, {   17,   22 }, {   13,   31 }, 
969    {    3,   48 }, {  -21,   84 }, {  -41,  117 }, {  -43,  125 }, 
970    {    5,   40 }, {   29,    4 }, {  -24,   87 }, {    0,   64 }, 
971    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
972    {   14,   23 }, {   24,    4 }, {   15,   23 }, {    7,   34 }, 
973    {   19,   14 }, {   19,   12 }, {   17,   18 }, {   11,   33 }, 
974    {    4,   44 }, {   -2,   55 }, {    2,   54 }, {    3,   53 }, 
975    {  -43,  137 }, {  -22,  104 }, {    0,   64 }, {    0,   64 }, 
976    {   -5,   76 }, {    7,   50 }, {    9,   43 }, {    6,   50 }, 
977    {    0,   59 }, {    1,   56 }, {    4,   51 }, {   22,   18 }, 
978    {   21,   21 }, { -105,  242 }, {  -52,  145 }, {  260, -439 }, 
979    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
980    {    0,   50 }, {    5,   42 }, {    4,   43 }, {   18,   20 }, 
981    {   17,   23 }, {    0,   55 }, {   10,   39 }, {    6,   46 }, 
982    {   10,   36 }, {    9,   41 }, {   12,   42 }, {    3,   63 }, 
983    {   15,   30 }, {    9,   46 }, {    0,   73 }, {    0,   64 }, 
984    {   12,   47 }, {   11,   43 }, {    5,   50 }, {    5,   53 }, 
985    {   -2,   68 }, {  -11,   83 }, {  -18,   93 }, {  -59,  154 }, 
986    {  -22,   99 }, {  -45,  137 }, {  -63,  167 }, {  -56,  152 }, 
987    {  -34,  117 }, {  -45,  136 }, {  -74,  182 }, {    0,   64 }, 
988    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
989    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
990    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
991    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
992    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
993    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
994    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
995    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
996  },
997  {
998    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
999    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1000    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1001    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1002    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1003    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1004    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1005    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1006    {   20,    7 }, {   38,  -44 }, {   37,  -43 }, {   -9,   48 }, 
1007    {  -45,  104 }, {  -87,  174 }, {   26,  -35 }, {   51,  -63 }, 
1008    {  129, -174 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1009    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1010    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1011    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1012    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1013    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1014    {    7,   38 }, {   28,  -14 }, {   25,   -7 }, {    2,   38 }, 
1015    {  -13,   53 }, {   11,    2 }, {  -18,   59 }, {   23,   -4 }, 
1016    {   46,  -35 }, {   -9,   59 }, {  -32,   97 }, {   -5,   57 }, 
1017    {  -98,  215 }, {  -51,  141 }, {  163, -267 }, {    0,    0 }, 
1018    {    2,   48 }, {   57,  -65 }, {   70,  -78 }, {   74,  -74 }, 
1019    {   38,   -7 }, {   64,  -44 }, {    0,   64 }, {    0,   64 }, 
1020    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1021    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1022    {   12,   24 }, {   17,   17 }, {   11,   31 }, {    6,   35 }, 
1023    {    9,   25 }, {   -2,   41 }, {   11,   19 }, {   -3,   51 }, 
1024    {  -30,  100 }, {   -4,   55 }, {    2,   49 }, {   38,  -17 }, 
1025    {   43,  -28 }, {  -35,  117 }, {  -97,  214 }, {    0,   64 }, 
1026    {    7,   41 }, {   29,   -3 }, {   17,   23 }, {    6,   45 }, 
1027    {   12,   36 }, {  -22,   85 }, {    2,   54 }, {  -18,   87 }, 
1028    {    0,   65 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1029    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1030    {   -5,   59 }, {   14,   25 }, {   13,   29 }, {    4,   42 }, 
1031    {    8,   33 }, {    5,   37 }, {   20,   11 }, {   16,   20 }, 
1032    {   15,   22 }, {  -12,   70 }, {   -9,   67 }, {   13,   35 }, 
1033    {  -15,   85 }, {  -25,  101 }, {    0,   64 }, {    0,   64 }, 
1034    {   -3,   65 }, {    6,   50 }, {    3,   56 }, {   21,   19 }, 
1035    {   -1,   64 }, {  -73,  175 }, {  -17,   76 }, {    7,   52 }, 
1036    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1037    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1038    {   12,   22 }, {   15,   20 }, {   18,   14 }, {   13,   28 }, 
1039    {   18,   18 }, {    0,   54 }, {  -14,   77 }, {  -34,  113 }, 
1040    {    4,   43 }, {    7,   43 }, {    2,   55 }, {   -2,   69 }, 
1041    {  -17,   82 }, {   -2,   60 }, {   -8,   81 }, {    0,   64 }, 
1042    {  -20,   92 }, {    1,   56 }, {  -35,  114 }, {  -12,   78 }, 
1043    {    6,   51 }, {  -48,  141 }, {  -77,  183 }, {  -63,  157 }, 
1044    {    7,   46 }, {  -56,  149 }, { -125,  254 }, { -134,  247 }, 
1045    {  -49,  134 }, {  -72,  167 }, { -130,  253 }, {    0,   64 }, 
1046    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1047    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1048    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1049    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1050    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1051    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1052    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1053    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
1054  }
1055};
1056#endif
1057
1058static const Short
1059INIT_ONE_FLAG[3][80][2] =
1060{
1061  {
1062    {  -11,   87 }, {  -20,   64 }, {  -16,   68 }, {  -13,   71 }, 
1063    {  -10,   73 }, {   -5,   67 }, {   -8,   26 }, {   -8,   37 }, 
1064    {   -3,   36 }, {   -9,   56 }, {    0,   63 }, {   -5,   39 }, 
1065    {  -12,   56 }, {   -9,   57 }, {   -1,   52 }, {   -4,   72 }, 
1066    {  -19,   73 }, {  -28,   88 }, {  -23,   85 }, {   -3,   59 }, 
1067    {   -2,   72 }, {  -27,   97 }, {  -22,   89 }, {  -14,   77 }, 
1068    {   -1,   58 }, {  -10,   86 }, {  -22,   74 }, {  -13,   63 }, 
1069    {   -6,   57 }, {   -5,   63 }, {    0,   64 }, {    0,   64 }, 
1070    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1071    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1072    {   -4,   70 }, {   16,   -2 }, {    9,   23 }, {    5,   41 }, 
1073    {   -7,   67 }, {   -6,   63 }, {   13,   -5 }, {  -12,   42 }, 
1074    {  -18,   53 }, {  -14,   59 }, {   -5,   65 }, {   -8,   36 }, 
1075    {  -22,   67 }, {  -35,   89 }, {   -3,   47 }, {  -12,   77 }, 
1076    {  -20,   66 }, {  -51,  113 }, {  -44,  109 }, {  -23,   84 }, 
1077    {   -1,   64 }, {  -58,  127 }, {  -71,  143 }, {  -67,  134 }, 
1078    {  -91,  187 }, {   -1,   64 }, {   20,   -3 }, {   13,   21 }, 
1079    {    2,   46 }, {    5,   48 }, {    0,   64 }, {    0,   64 }, 
1080    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1081    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
1082  },
1083  {
1084    {   -4,   71 }, {   29,   -5 }, {    1,   45 }, {   -6,   58 }, 
1085    {   -9,   67 }, {   -6,   66 }, {   23,   -7 }, {    3,   26 }, 
1086    {   -5,   42 }, {    5,   31 }, {  -12,   79 }, {   -2,   45 }, 
1087    {  -15,   67 }, {  -11,   62 }, {   -3,   54 }, {   -4,   70 }, 
1088    {  -13,   68 }, {  -31,  100 }, {  -26,   91 }, {  -18,   84 }, 
1089    {   -9,   83 }, {  -30,  103 }, {  -24,   90 }, {  -43,  122 }, 
1090    {   -6,   66 }, {    4,   59 }, {   34,  -11 }, {   21,   10 }, 
1091    {   14,   25 }, {    5,   44 }, {    0,   64 }, {    0,   64 }, 
1092    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1093    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1094    {   -4,   69 }, {   40,  -33 }, {   19,    8 }, {  -11,   65 }, 
1095    {   -6,   59 }, {  -11,   68 }, {   12,   -2 }, {   17,  -10 }, 
1096    {   -6,   34 }, {   11,   14 }, {  -11,   70 }, {    1,   27 }, 
1097    {  -26,   71 }, {  -28,   79 }, {   -2,   47 }, {    6,   47 }, 
1098    {  -23,   67 }, {  -47,  107 }, {  -55,  117 }, {  -21,   83 }, 
1099    {    1,   59 }, {  -38,   82 }, {  -34,   77 }, {  -45,   95 }, 
1100    {   10,   25 }, {    9,   46 }, {   41,  -31 }, {   32,  -17 }, 
1101    {   14,   19 }, {   17,   18 }, {    0,   64 }, {    0,   64 }, 
1102    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1103    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
1104  },
1105  {
1106    {   -2,   65 }, {   18,   22 }, {   10,   33 }, {   -2,   55 }, 
1107    {   -7,   64 }, {   -6,   67 }, {   19,   11 }, {   -5,   50 }, 
1108    {   -7,   53 }, {   -4,   54 }, {  -23,   99 }, {   -3,   51 }, 
1109    {    2,   41 }, {  -32,  102 }, {  -16,   79 }, {   -8,   77 }, 
1110    {  -21,   84 }, {  -26,   91 }, {  -33,  104 }, {   -4,   61 }, 
1111    {  -31,  122 }, {  -34,  110 }, {  -25,   96 }, {  -43,  124 }, 
1112    {   -6,   70 }, {    3,   60 }, {   23,   12 }, {   12,   30 }, 
1113    {   11,   33 }, {    8,   40 }, {    0,   64 }, {    0,   64 }, 
1114    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1115    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1116    {   -2,   66 }, {   40,  -20 }, {    0,   46 }, {   -5,   54 }, 
1117    {    7,   37 }, {  -39,  116 }, {   31,  -27 }, {    1,   22 }, 
1118    {  -35,   82 }, {  -32,   85 }, {  -15,   72 }, {   16,    0 }, 
1119    {  -43,  102 }, {  -75,  152 }, {   -8,   55 }, {   -9,   68 }, 
1120    {  -12,   54 }, {  -84,  171 }, {  -93,  186 }, {   25,   12 }, 
1121    { -104,  222 }, {  -40,   92 }, {  -51,   93 }, {  110, -169 }, 
1122    {    3,   52 }, {   17,   33 }, {   55,  -45 }, {   28,    1 }, 
1123    {   -5,   55 }, {   29,   -4 }, {    0,   64 }, {    0,   64 }, 
1124    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1125    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
1126  }
1127};
1128
1129static const Short
1130INIT_ABS_FLAG[3][80][2] =
1131{
1132  {
1133    {  -12,   72 }, {  -10,   79 }, {  -11,   87 }, {  -14,   94 }, 
1134    {  -35,  136 }, {  -10,   58 }, {   -1,   54 }, {  -17,   86 }, 
1135    {   -5,   70 }, {  -22,  105 }, {  -13,   70 }, {   -2,   59 }, 
1136    {  -13,   81 }, {  -21,   96 }, {   -3,   73 }, {  -24,   90 }, 
1137    {  -19,   88 }, {   -1,   63 }, {    1,   60 }, {  -17,   97 }, 
1138    {   -7,   69 }, {  -20,   95 }, {  -11,   84 }, {  -27,  110 }, 
1139    {  -12,   96 }, {   -9,   72 }, {   -8,   76 }, {   -4,   75 }, 
1140    {   -3,   76 }, {   -9,   94 }, {    0,   64 }, {    0,   64 }, 
1141    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1142    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1143    {  -11,   65 }, {   -4,   66 }, {   -9,   82 }, {  -24,  107 }, 
1144    {  -24,  111 }, {  -18,   58 }, {  -10,   61 }, {  -19,   82 }, 
1145    {  -28,   97 }, {    6,   47 }, {  -12,   50 }, {  -17,   73 }, 
1146    {   -8,   66 }, {  -44,  115 }, {  -17,   86 }, {  -26,   74 }, 
1147    {   -4,   48 }, {  -43,  115 }, {  -58,  141 }, {  -51,  137 }, 
1148    {  -51,  117 }, {  -85,  176 }, {  -47,  120 }, {  -95,  202 }, 
1149    {  -65,  159 }, {   -2,   53 }, {    7,   43 }, {   -2,   67 }, 
1150    {    3,   62 }, {    4,   67 }, {    0,   64 }, {    0,   64 }, 
1151    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1152    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
1153  },
1154  {
1155    {   -2,   49 }, {  -13,   81 }, {  -11,   82 }, {  -13,   88 }, 
1156    {  -24,  112 }, {   -4,   44 }, {  -17,   77 }, {  -16,   82 }, 
1157    {  -19,   89 }, {  -28,  110 }, {  -12,   64 }, {  -11,   70 }, 
1158    {  -18,   88 }, {   -6,   67 }, {  -19,   97 }, {  -17,   76 }, 
1159    {  -27,  100 }, {  -18,   88 }, {  -13,   84 }, {  -17,   94 }, 
1160    {  -11,   73 }, {  -15,   83 }, {  -10,   77 }, {  -10,   80 }, 
1161    {  -12,   91 }, {   -8,   63 }, {   -7,   71 }, {   -6,   73 }, 
1162    {   -8,   80 }, {   -9,   90 }, {    0,   64 }, {    0,   64 }, 
1163    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1164    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1165    {   14,   20 }, {   -7,   68 }, {   -4,   66 }, {   -8,   76 }, 
1166    {  -50,  148 }, {    2,   22 }, {   11,   15 }, {   -4,   49 }, 
1167    {  -41,  117 }, {  -60,  149 }, {  -12,   49 }, {   -6,   55 }, 
1168    {    1,   44 }, {   -5,   58 }, {  -12,   73 }, {   13,    9 }, 
1169    {    5,   26 }, {  -29,  101 }, {    0,   46 }, {  -23,   92 }, 
1170    {  -12,   57 }, {    6,   30 }, {   35,   -4 }, {   42,  -24 }, 
1171    {   22,   24 }, {   24,    0 }, {   11,   34 }, {    2,   61 }, 
1172    {   -5,   75 }, {    4,   62 }, {    0,   64 }, {    0,   64 }, 
1173    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1174    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
1175  },
1176  {
1177    {    0,   43 }, {   -6,   65 }, {   -7,   71 }, {  -31,  117 }, 
1178    {  -25,  109 }, {  -20,   76 }, {  -14,   73 }, {  -20,   88 }, 
1179    {  -21,   92 }, {   -6,   71 }, {  -19,   73 }, {  -34,  108 }, 
1180    {  -27,  101 }, {   -7,   69 }, {   -7,   75 }, {  -18,   77 }, 
1181    {   -7,   64 }, {  -20,   91 }, {   -9,   75 }, {   -7,   78 }, 
1182    {  -26,   98 }, {  -13,   81 }, {   -6,   69 }, {  -12,   83 }, 
1183    {   -2,   70 }, {   -3,   50 }, {   -6,   66 }, {   -7,   73 }, 
1184    {   -6,   75 }, {  -11,   91 }, {    0,   64 }, {    0,   64 }, 
1185    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1186    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1187    {   19,   10 }, {    2,   49 }, {    4,   52 }, {   -4,   69 }, 
1188    {  -32,  114 }, {   13,   -1 }, {  -29,   85 }, {  -64,  143 }, 
1189    {  -90,  186 }, {   26,    4 }, {  -24,   68 }, {    8,   30 }, 
1190    {  -10,   61 }, {  -16,   78 }, {  -27,   96 }, {   31,  -16 }, 
1191    {  -12,   54 }, {  -15,   70 }, {  -68,  158 }, {   31,   12 }, 
1192    {   -8,   44 }, {  -32,   63 }, {  -36,   81 }, {  -53,  106 }, 
1193    {   36,   12 }, {   26,   -5 }, {   19,   17 }, {  -22,  101 }, 
1194    {    5,   54 }, {    8,   53 }, {    0,   64 }, {    0,   64 }, 
1195    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1196    {    0,   64 }, {    0,   64 }, {    0,   64 }, {    0,   64 } 
1197  }
1198};
1199
1200// initial probability for motion vector predictor index
1201static const Short
1202INIT_MVP_IDX[3][NUM_MVP_IDX_CTX][2] =
1203{
1204  {
1205    {    0,   64 }, {    0,   64 }
1206  },
1207  {
1208    {    0,   64 }, {    0,   64 }
1209  },
1210  {
1211    {    0,   64 }, {    0,   64 }
1212  }
1213};
1214
1215// initial probability for ALF flag
1216static const Short
1217INIT_ALF_FLAG[3][NUM_ALF_FLAG_CTX][2] =
1218{
1219  {
1220    {   50,  -48 }
1221  },
1222  {
1223    {   27,  -20 }
1224  },
1225  {
1226    {  -12,   68 }
1227  }
1228};
1229
1230// initial probability for ALF side information (unsigned)
1231static const Short
1232INIT_ALF_UVLC[3][NUM_ALF_UVLC_CTX][2] =
1233{
1234  {
1235    {    1,   66 }, {   -3,   77 }
1236  },
1237  {
1238    {   -5,   75 }, {  -14,   94 }
1239  },
1240  {
1241    {   -5,   72 }, {  -30,  122 }
1242  }
1243};
1244
1245// initial probability for ALF side information (signed)
1246static const Short
1247INIT_ALF_SVLC[3][NUM_ALF_SVLC_CTX][2] =
1248{
1249  {
1250    {   11,   57 }, {   -1,   62 }, {    0,   64 }
1251  },
1252  {
1253    {    6,   66 }, {   -1,   64 }, {    0,   64 }
1254  },
1255  {
1256    {    1,   73 }, {    2,   61 }, {    0,   64 }
1257  }
1258};
1259#if MTK_SAO
1260// initial probability for ALF flag
1261static const Short
1262INIT_AO_FLAG[3][NUM_AO_FLAG_CTX][2] =
1263{
1264  {
1265    {   50,  -48 }
1266  },
1267  {
1268    {   27,  -20 }
1269  },
1270  {
1271    {  -12,   68 }
1272  }
1273};
1274
1275// initial probability for ALF side information (unsigned)
1276static const Short
1277INIT_AO_UVLC[3][NUM_AO_UVLC_CTX][2] =
1278{
1279  {
1280    {    1,   66 }, {   -3,   77 }
1281  },
1282  {
1283    {   -5,   75 }, {  -14,   94 }
1284  },
1285  {
1286    {   -5,   72 }, {  -30,  122 }
1287  }
1288};
1289
1290// initial probability for ALF side information (signed)
1291static const Short
1292INIT_AO_SVLC[3][NUM_AO_SVLC_CTX][2] =
1293{
1294  {
1295    {   11,   57 }, {   -1,   62 }, {    0,   64 }
1296  },
1297  {
1298    {    6,   66 }, {   -1,   64 }, {    0,   64 }
1299  },
1300  {
1301    {    1,   73 }, {    2,   61 }, {    0,   64 }
1302  }
1303};
1304#endif
1305
1306static const Short
1307INIT_TRANS_SUBDIV_FLAG[3][NUM_TRANS_SUBDIV_FLAG_CTX][2] =
1308{
1309  {
1310    {    0,    0 }, {   12,   12 }, {   22,    4 }, {   -2,   49 }, 
1311    {    4,   46 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1312    {    0,   64 }, {    0,   64 }
1313  },
1314  {
1315    {    0,   13 }, {  -28,   89 }, {  -30,   99 }, {  -34,  106 }, 
1316    {  -19,   76 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1317    {    0,   64 }, {    0,   64 }
1318  },
1319  {
1320    {  -11,   38 }, {  -31,   88 }, {  -42,  118 }, {  -47,  130 }, 
1321    {  -21,   73 }, {    0,   64 }, {    0,   64 }, {    0,   64 }, 
1322    {    0,   64 }, {    0,   64 }
1323  }
1324};
1325
1326#if HHI_DMM_INTRA
1327static const Short
1328INIT_INTRA_DMM[3][NUM_DMM_CTX][2] =
1329{
1330 {
1331   {   0,   64 }, {   0,   64 }
1332 },
1333 {
1334   {   0,   64 }, {   0,   64 }
1335 },
1336 {
1337   {   0,   64 }, {   0,   64 }
1338 }
1339};
1340
1341static const Short
1342INIT_INTRA_WEDGELET[3][NUM_WEDGE_CTX][2] = 
1343{
1344  {
1345    {   0,   64 }, {   0,   64 }, {    0,   64 }, {    0,   64 }
1346  },
1347  {
1348    {   0,   64 }, {   0,   64 }, {    0,   64 }, {    0,   64 }
1349  },
1350  {
1351    {   0,   64 }, {   0,   64 }, {    0,   64 }, {    0,   64 }
1352  }
1353};
1354#endif
1355#endif
1356
Note: See TracBrowser for help on using the repository browser.