PageRenderTime 120ms CodeModel.GetById 14ms app.highlight 97ms RepoModel.GetById 1ms app.codeStats 0ms

/decoders/audio/mp3Huffman.d

http://github.com/wilkie/djehuty
D | 946 lines | 894 code | 4 blank | 48 comment | 0 complexity | b07e6fdd183c2dc1e1eb316707f0ff24 MD5 | raw file
  1/*
  2 * mp3Huffman.d
  3 *
  4 * This file contains the huffman codes for mp3 decoding.
  5 * Built using mp3Huffman.scm
  6 *
  7 * Author: Dave Wilkinson
  8 *
  9 * Originated: July 30th 2009
 10 *
 11 */
 12
 13const uint[][][] huffmanTables =
 14[
 15	// Huffman Table 0
 16	[		
 17		[
 18		]
 19	],
 20	// Huffman Table 1
 21	[		
 22		[			
 23			    1
 24		],
 25		[			
 26			    1
 27		],
 28		[			
 29			    0,     1
 30		]
 31	],
 32	// Huffman Table 2
 33	[		
 34		[			
 35			    1
 36		],
 37		[
 38		],
 39		[
 40			    1,     2,     3
 41		],
 42		[
 43		],
 44		[			
 45			    1,     2,     3
 46		],
 47		[			
 48			    0,     1
 49		]
 50	],
 51	// Huffman Table 3
 52	[
 53		[
 54		],
 55		[			
 56			    1,     2,     3
 57		],
 58		[			
 59			    1
 60		],
 61		[
 62		],
 63		[			
 64			    1,     2,     3
 65		],
 66		[			
 67			    0,     1
 68		]
 69	],
 70	// Huffman Table 4
 71	[		
 72		[
 73		]
 74	],
 75	// Huffman Table 5
 76	[		
 77		[			
 78			    1
 79		],
 80		[
 81		],
 82		[			
 83			    1,     2,     3
 84		],
 85		[
 86		],
 87		[
 88		],
 89		[			
 90			    1,     4,     5,     6,     7
 91		],
 92		[
 93			    1,     4,     5,     6,     7
 94		],
 95		[			
 96			    0,     1
 97		]
 98	],
 99	// Huffman Table 6
100	[		
101		[
102		],
103		[
104			    2
105		],
106		[			
107			    3,     6,     7
108		],
109		[			
110			    3,     4,     5
111		],
112		[			
113			    2,     3,     4,     5
114		],
115		[
116			    1,     2,     3
117		],
118		[			
119			    0,     1
120		]
121	],
122	// Huffman Table 7
123	[		
124		[			
125			    1
126		],
127		[
128		],
129		[			
130			    2,     3
131		],
132		[			
133			    3
134		],
135		[			
136			    4
137		],
138		[			
139			    7,    10,    11
140		],
141		[			
142			    5,     6,     7,    10,    11,    12,    13
143		],
144		[			
145			    3,     4,     6,     8,     9,    16,    17,    18,    19
146		],
147		[			
148			    2,     3,     4,     5,    10,    11,    14,    15
149		],
150		[			
151			    0,     1,     2,     3
152		]
153	],
154	// Huffman Table 8
155	[		
156		[
157		],
158		[			
159			    1,     3
160		],
161		[			
162			    4,     5
163		],
164		[			
165			    2,     3
166		],
167		[
168		],
169		[			
170			    5,     6,     7
171		],
172		[
173			    5
174		],
175		[			
176			    3,     4,     7,     8,     9,    12,    13,    14,    15,    16, 
177			   17,    18,    19
178		],
179		[			
180			    1,     3,     4,     5,    10,    11,    12,    13
181		],
182		[			
183			    1,     4,     5
184		],
185		[			
186			    0,     1
187		]
188	],
189	// Huffman Table 9
190	[		
191		[
192		],
193		[
194		],
195		[			
196			    4,     5,     6,     7
197		],
198		[			
199			    5,     6,     7
200		],
201		[			
202			    5,     6,     8,     9
203		],
204		[			
205			    6,     7,     8,     9,    14,    15
206		],
207		[			
208			    4,     5,     6,     8,     9,    10,    11
209		],
210		[			
211			    1,     2,     4,     5,     6,     7,    14,    15
212		],
213		[			
214			    0,     1,     6,     7
215		]
216	],
217	// Huffman Table 10
218	[		
219		[			
220			    1
221		],
222		[
223		],
224		[			
225			    2,     3
226		],
227		[			
228			    3
229		],
230		[
231		],
232		[			
233			    8,     9,    10,    11
234		],
235		[			
236			   12,    13,    14,    15
237		],
238		[			
239			    7,     8,    12,    13,    14,    18,    19,    20,    21,    22, 
240			   23
241		],
242		[			
243			    6,     7,     9,    10,    12,    18,    19,    21,    22,    30, 
244			   31,    32,    33,    34,    35
245		],
246		[			
247			    3,     4,     5,     6,     7,     8,     9,    11,    16,    17, 
248			   22,    23,    26,    27,    40,    41,    46,    47
249		],
250		[			
251			    0,     1,     2,     3,     4,     5,    20,    21
252		]
253	],
254	// Huffman Table 11
255	[		
256		[
257		],
258		[			
259			    3
260		],
261		[			
262			    3,     4,     5
263		],
264		[			
265			    4
266		],
267		[			
268			    7,    10,    11
269		],
270		[			
271			   10,    11,    13
272		],
273		[			
274			    4,     9,    11,    12,    18,    19,    24,    25
275		],
276		[			
277			    5,     6,    10,    11,    12,    13,    14,    17,    20,    21, 
278			   26,    27,    28,    30,    31,    32,    33,    34,    35
279		],
280		[			
281			    5,     6,     7,    14,    15,    30,    31,    32,    33,    58, 
282			   59
283		],
284		[			
285			    0,     1,     2,     3,     4,     5,     6,     8,     9,    16, 
286			   17,    18,    19
287		],
288		[			
289			   14,    15
290		]
291	],
292	// Huffman Table 12
293	[		
294		[
295		],
296		[
297		],
298		[			
299			    5,     6,     7
300		],
301		[			
302			    6,     7,     9
303		],
304		[			
305			    9,    10,    11,    16,    17
306		],
307		[
308			   12,    13,    14,    15,    17
309		],
310		[			
311			   10,    11,    12,    16,    17,    18,    19,    21,    22,    23, 
312			   32,    33
313		],
314		[			
315			    4,     5,     7,     8,     9,    10,    11,    12,    14,    15, 
316			   16,    17,    18,    26,    27,    28,    29,    30,    31,    40, 
317			   41
318		],
319		[
320			    1,     2,     3,     4,     5,     6,     7,    12,    13,    26, 
321			   27,    38,    39
322		],
323		[			
324			    0,     1
325		]
326	],
327	// Huffman Table 13
328	[		
329		[			
330			    1
331		],
332		[
333		],
334		[			
335			    3
336		],
337		[			
338			    4,     5
339		],
340		[
341		],
342		[			
343			   12,    13,    14,    15
344		],
345		[			
346			   16,    19,    20,    21,    22,    23
347		],
348		[			
349			   20,    26,    27,    31,    34,    35,    36,    37
350		],
351		[			
352			   24,    25,    29,    30,    31,    33,    34,    42,    43,    44, 
353			   45,    46,    47,    49,    50,    51,    56,    57,    58,    59, 
354			   60,    61
355		],
356		[			
357			   23,    24,    25,    30,    31,    32,    33,    35,    37,    40, 
358			   41,    43,    44,    52,    53,    54,    55,    56,    64,    65,
359			   70,    71,    72,    73,    74,    75,    76,    77,    78,    79, 
360			   96,    97
361		],
362		[			
363			   21,    26,    27,    28,    29,    31,    32,    34,    37,    38, 
364			   40,    42,    44,    52,    53,    54,    55,    56,    57,    58, 
365			   59,    68,    69,    72,    73,    76,    77,    78,    79,    84, 
366			   85,    90,    91,    92,    93,    94,    95,   114,   115
367		],
368		[			
369			   14,    15,    16,    20,    22,    23,    30,    31,    33,    34, 
370			   35,    36,    39,    41,    44,    45,    46,    47,    48,    49,
371			   50,    51,    60,    61,    66,    67,    70,    71,    72,    73, 
372			   78,    79,    82,    83,    86,    87,    90,    91
373		],
374		[			
375			   14,    16,    17,    19,    21,    23,    25,    26,    34,    35, 
376			   36,    37,    38,    39,    42,    43,    48,    49,    50,    51,
377			   52,    53,    54,    55,    56,    57,    58,    59,    64,    65, 
378			   74,    75,    76,    77,    80,    81
379		],
380		[			
381			   11,    12,    15,    16,    17,    18,    19,    20,    21,    22, 
382			   23,    24,    25,    27,    30,    31,    36,    37,    40,    41, 
383			   44,    45,    48,    49,    54,    55
384		],
385		[			
386			    6,     7,     9,    10,    11,    12,    13,    14,    15,    16, 
387			   17,    18,    20,    26,    27,    28,    29,    52,    53
388		],
389		[			
390			    1,     2,     3,     4,     5,     6,     7,     8,     9,    10, 
391			   16,    17,    38,    39,    42,    43
392		],
393		[			
394			    1,    22,    23
395		],
396		[			
397			    1
398		],
399		[			
400			    0,     1
401		]
402	],
403	// Huffman Table 14
404	[		
405		[
406		]
407	],
408	// Huffman Table 15
409	[
410		[
411		],
412		[
413		],
414		[			
415			    5,     7
416		],
417		[			
418			   12,    13
419		],
420		[			
421			   15,    16,    17,    18,    19
422		],
423		[			
424			   22,    24,    25,    27,    28,    29
425		],
426		[			
427			   32,    34,    35,    36,    37,    39,    40,    41,    42,    43,
428			   46,    47,    52,    53
429		],
430		[			
431			   34,    40,    41,    42,    43,    48,    49,    50,    51,    52, 
432			   53,    55,    56,    57,    58,    59,    60,    61,    63,    66, 
433			   67,    76,    77
434		],
435		[			
436			   30,    37,    40,    42,    47,    48,    49,    50,    51,    52, 
437			   53,    55,    56,    57,    58,    59,    60,    62,    63,    64, 
438			   65,    66,    67,    70,    71,    72,    73,    74,    75,    76, 
439			   77,    78,    79,    88,    89,    90,    91,    92,    93,    94, 
440			   95,   108,   109,   124,   125
441		],
442		[			
443			   34,    38,    39,    41,    42,    43,    44,    46,    47,    48, 
444			   49,    50,    51,    52,    54,    55,    56,    57,    58,    62, 
445			   63,    64,    65,    66,    67,    68,    69,    70,    71,    72, 
446			   73,    76,    77,    78,    79,    82,    83,    86,    87,    88, 
447			   89,    90,    91,    92,    93,   108,   109,   122,   123
448		],
449		[
450			   16,    17,    20,    21,    22,    23,    24,    25,    27,    28, 
451			   29,    30,    31,    32,    33,    34,    36,    37,    38,    39, 
452			   40,    41,    42,    43,    44,    45,    46,    47,    48,    49, 
453			   50,    51,    52,    53,    54,    55,    56,    57,    58,    59, 
454			   60,    62,    63,    64,    65,    66,    67,    70,    71,    72, 
455			   73,    74,    75,    80,    81,    90,    91,   106,   107,   118, 
456			  119
457		],
458		[			
459			    2,     6,     8,     9,    10,    11,    12,    13,    14,    15, 
460			   16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
461			   26,    27,    28,    29,    30,    36,    37,    38,    39,    52, 
462			   53,    70,    71,   122,   123
463		],
464		[			
465			    0,     1,     2,     3,     6,     7,     8,     9,    10,    11, 
466			   14,    15,    62,    63
467		]
468	],
469	// Huffman Table 16
470	[		
471		[			
472			    1
473		],
474		[
475		],
476		[			
477			    3
478		],
479		[			
480			    4,     5
481		],
482		[
483		],
484		[			
485			   12,    13,    14,    15
486		],
487		[			
488			   20,    21,    23
489		],
490		[			
491			    3,     7,     9,    10,    30,    35,    36,    38,    39,    44, 
492			   45
493		],
494		[			
495			    9,    10,    11,    12,    16,    17,    47,    48,    52,    53, 
496			   54,    56,    58,    59,    62,    63,    64,    65,    66,    67, 
497			   68,    69,    74,    75
498		],
499		[			
500			    4,     7,     8,     9,    10,    11,    16,    17,    26,    67,
501			   68,    72,    73,    75,    76,    81,    83,    84,    85,    87, 
502			   88,    90,    91,    93,    98,    99,   100,   101,   102,   103, 
503			  110,   111,   114,   115
504		],
505		[			
506			    0,     1,     2,     3,     4,     5,     6,     7,    10,    11, 
507			   12,    13,   102,   107,   110,   115,   117,   118,   119,   120, 
508			  125,   127,   129,   131,   133,   138,   139,   140,   141,   142, 
509			  143,   148,   149,   154,   155,   156,   157,   158,   159,   160, 
510			  161,   164,   165,   172,   173,   178,   179,   184,   185
511		],
512		[
513			  187,   195,   199,   201,   202,   206,   207,   208,   209,   210,
514			  211,   212,   216,   217,   218,   219,   222,   223,   224,   225,
515			  226,   227,   228,   229,   232,   233,   242,   243,   244,   245,
516			  246,   247,   248,   249,   252,   253,   256,   257,   260,   261,
517			  264,   265
518		],
519		[
520			  223,   352,   358,   359,   362,   364,   365,   366,   369,   370,
521			  372,   376,   377,   378,   379,   380,   381,   382,   383,   384,
522			  385,   386,   387,   388,   389,   392,   393,   394,   395,   396,
523			  397,   400,   401,   406,   407,   426,   427
524		],
525		[
526			  434,   436,   437,   439,   440,   443,   445,   706,   707,   708,
527			  709,   710,   711,   712,   713,   714,   715,   720,   721,   722,
528			  723,   726,   727,   734,   735,   736,   737,   742,   743,   746,
529			  747
530		],
531		[
532			  865,   866,   870,   871,   876,   877,   882,   883,   884,   885,
533			  888,   889
534		],
535		[
536			 1728,  1734,  1735
537		],
538		[
539			 3458,  3459
540		]
541	]
542];
543
544// Huffman Table 24
545// Due to 1.046 DMD Compiler bug, this is separate
546const uint[][] huffmanTable24 =
547[
548	[
549	],
550	[
551	],
552	[
553	],
554	[
555		    3,    12,    13,    14,    15
556	],
557	[
558		   21,    22
559	],
560	[
561		   38,    39,    41,    46,    47
562	],
563	[
564		    4,     6,     7,     9,    10,    11,    12,    13,    14,    15,
565		   16,    17,    18,    19,    20,    66,    68,    69,    70,    71,
566		   72,    74,    75,    80,    81
567	],
568	[
569		    0,     1,     2,     3,     4,     5,     6,     7,    10,    11,
570		   16,    17,    42,    43,   109,   111,   112,   113,   114,   115,
571		  116,   117,   118,   119,   120,   121,   122,   123,   125,   126,
572		  127,   128,   129,   130,   134,   135,   146,   147
573	],
574	[
575		   88,   164,   168,   169,   171,   174,   175,   177,   178,   179,
576		  180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
577		  190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
578		  200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
579		  210,   211,   212,   214,   215,   216,   220,   221,   248,   249,
580		  262,   263
581	],
582	[
583		  259,   261,   262,   263,   264,   266,   267,   268,   269,   271,
584		  272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
585		  282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
586		  292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
587		  302,   303,   304,   305,   306,   307,   308,   309,   311,   312,
588		  313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
589		  323,   325,   327,   330,   331,   332,   333,   335,   340,   341,
590		  344,   345,   346,   347,   352,   353,   426,   427,   434,   435
591	],
592	[
593		  356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
594		  366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
595		  376,   377,   378,   379,   380,   381,   382,   383,   512,   513,
596		  514,   515,   517,   520,   521,   530,   531,   540,   541,   620,
597		  621,   648,   649,   652,   653,   668,   669
598	],
599	[
600		 1032,  1033
601	]
602];
603
604const uint[][] huffmanValues =
605[
606	// Huffman Table 0
607	[
608		    0,     0
609	],
610	// Huffman Table 1
611	[
612		    0,     0,     1,     0,     1,     1,     0,     1
613	],
614	// Huffman Table 2
615	[		
616		    0,     0,     1,     1,     0,     1,     1,     0,     1,     2, 
617		    2,     1,     2,     0,     2,     2,     0,     2
618	],
619	// Huffman Table 3
620	[		
621		    1,     1,     0,     1,     0,     0,     1,     0,     1,     2, 
622		    2,     1,     2,     0,     2,     2,     0,     2
623	],
624	// Huffman Table 4
625	[
626	],
627	// Huffman Table 5
628	[		
629		    0,     0,     1,     1,     0,     1,     1,     0,     3,     1, 
630		    1,     2,     2,     1,     0,     2,     2,     0,     3,     2, 
631		    1,     3,     0,     3,     3,     0,     2,     2,     3,     3, 
632		    2,     3
633	],
634	// Huffman Table 6
635	[		
636		    1,     1,     0,     1,     1,     0,     0,     0,     1,     2, 
637		    2,     1,     2,     0,     1,     3,     3,     1,     2,     2, 
638		    0,     2,     2,     3,     3,     2,     3,     0,     3,     3, 
639		    0,     3
640	],
641	// Huffman Table 7
642	[		
643		    0,     0,     0,     1,     1,     0,     1,     1,     2,     1, 
644		    1,     2,     0,     2,     2,     0,     1,     4,     4,     1, 
645		    4,     0,     1,     3,     3,     1,     3,     0,     2,     2, 
646		    1,     5,     5,     1,     5,     0,     2,     4,     4,     2, 
647		    0,     4,     2,     3,     3,     2,     0,     3,     3,     5, 
648		    4,     4,     2,     5,     5,     2,     0,     5,     3,     4, 
649		    4,     3,     3,     3,     5,     5,     4,     5,     5,     4, 
650		    5,     3
651	],
652	// Huffman Table 8
653	[		
654		    1,     1,     0,     0,     0,     1,     1,     0,     1,     2, 
655		    2,     1,     2,     2,     0,     2,     2,     0,     4,     1, 
656		    1,     5,     5,     1,     2,     4,     4,     2,     1,     4, 
657		    0,     4,     4,     0,     2,     3,     3,     2,     1,     3, 
658		    3,     1,     0,     3,     3,     0,     5,     3,     2,     5, 
659		    5,     2,     0,     5,     3,     4,     4,     3,     5,     0, 
660		    3,     3,     4,     5,     3,     5,     4,     4,     5,     5, 
661		    5,     4
662	],
663	// Huffman Table 9
664	[		
665		    1,     1,     0,     1,     1,     0,     0,     0,     1,     2, 
666		    2,     1,     2,     0,     1,     3,     3,     1,     2,     2, 
667		    0,     2,     1,     4,     4,     1,     2,     3,     3,     2, 
668		    0,     3,     3,     0,     5,     1,     3,     4,     4,     3, 
669		    2,     4,     4,     2,     3,     3,     4,     0,     3,     5, 
670		    5,     3,     4,     4,     2,     5,     5,     2,     1,     5, 
671		    5,     0,     0,     4,     5,     5,     4,     5,     5,     4, 
672		    0,     5
673	],
674	// Huffman Table 10
675	[		
676		    0,     0,     0,     1,     1,     0,     1,     1,     1,     2, 
677		    2,     1,     0,     2,     2,     0,     1,     3,     3,     1, 
678		    3,     0,     2,     2,     1,     7,     7,     1,     1,     6, 
679		    6,     1,     6,     0,     1,     4,     4,     1,     4,     0, 
680		    2,     3,     3,     2,     0,     3,     2,     7,     7,     2, 
681		    7,     0,     6,     2,     0,     6,     3,     6,     2,     6, 
682		    1,     5,     5,     1,     0,     5,     5,     0,     2,     4, 
683		    4,     2,     3,     3,     0,     4,     4,     7,     7,     4, 
684		    5,     6,     6,     5,     3,     7,     7,     3,     4,     6, 
685		    6,     3,     6,     4,     0,     7,     4,     5,     3,     5, 
686		    5,     3,     4,     4,     2,     5,     5,     2,     3,     4, 
687		    4,     3,     7,     7,     6,     7,     7,     6,     5,     7, 
688		    7,     5,     6,     6,     5,     5,     5,     4
689	],
690	// Huffman Table 11
691	[		
692		    0,     0,     1,     1,     0,     1,     1,     0,     1,     2, 
693		    2,     1,     0,     2,     2,     0,     1,     3,     3,     1, 
694		    2,     2,     7,     1,     6,     2,     1,     6,     6,     1, 
695		    2,     3,     3,     2,     0,     3,     3,     0,     2,     7, 
696		    7,     2,     1,     7,     7,     0,     3,     6,     6,     3, 
697		    6,     0,     1,     5,     2,     6,     0,     6,     5,     1, 
698		    3,     4,     5,     0,     2,     4,     4,     2,     1,     4, 
699		    4,     1,     0,     4,     4,     0,     3,     7,     7,     3, 
700		    4,     6,     6,     4,     0,     7,     4,     4,     2,     5, 
701		    5,     2,     0,     5,     4,     3,     3,     3,     7,     7, 
702		    6,     7,     7,     6,     7,     5,     6,     6,     4,     7, 
703		    7,     4,     5,     6,     6,     5,     4,     5,     5,     4, 
704		    3,     5,     5,     3,     5,     7,     5,     5
705	],
706	// Huffman Table 12
707	[		
708		    1,     1,     0,     1,     1,     0,     1,     2,     2,     1, 
709		    0,     0,     1,     3,     3,     1,     2,     2,     0,     2, 
710		    2,     0,     3,     3,     4,     1,     2,     3,     3,     2, 
711		    3,     0,     2,     6,     6,     2,     6,     1,     1,     5, 
712		    5,     1,     3,     4,     4,     3,     2,     4,     4,     2, 
713		    1,     4,     4,     0,     0,     3,     5,     6,     3,     7, 
714		    2,     7,     7,     2,     4,     6,     6,     4,     1,     7, 
715		    7,     1,     3,     6,     6,     3,     4,     5,     5,     4, 
716		    4,     4,     1,     6,     6,     0,     3,     5,     5,     3, 
717		    2,     5,     5,     2,     5,     0,     0,     4,     7,     6, 
718		    5,     7,     7,     5,     6,     6,     4,     7,     7,     4, 
719		    6,     5,     7,     3,     5,     5,     0,     7,     7,     0, 
720		    0,     6,     0,     5,     7,     7,     6,     7
721	],
722	// Huffman Table 13
723	[		
724		    0,     0,     1,     0,     1,     1,     0,     1,     1,     2, 
725		    2,     1,     0,     2,     2,     0,     4,     1,     1,     3, 
726		    3,     1,     0,     3,     3,     0,     2,     2,     8,     1, 
727		    1,     5,     5,     1,     1,     4,     0,     4,     4,     0, 
728		    2,     3,     3,     2,     1,     9,     9,     1,     2,     8, 
729		    8,     2,     1,     8,     1,     7,     7,     1,     0,     8, 
730		    8,     0,     1,     6,     6,     1,     0,     6,     6,     0, 
731		    2,     5,     5,     2,     0,     5,     3,     4,     4,     3, 
732		    5,     0,     2,     4,     4,     2,     3,     3,    11,     2, 
733		    1,    11,    11,     1,     2,    10,    10,     2,     1,    10, 
734		   10,     1,    10,     0,     9,     3,     2,     9,     9,     2, 
735		    3,     8,     8,     3,     0,     9,     9,     0,     4,     8, 
736		    8,     4,     7,     2,     3,     7,     2,     7,     5,     5, 
737		    0,     7,     7,     0,     3,     6,     6,     3,     4,     5, 
738		    5,     4,     2,     6,     6,     2,     3,     5,     5,     3, 
739		    4,     4,    13,     1,     3,    12,     2,    12,    12,     2, 
740		    5,    11,     1,    12,    12,     1,    12,     0,     3,    11, 
741		   11,     3,     2,    11,    10,     4,     9,     4,     0,    11, 
742		   11,     0,     9,     6,     4,    10,     3,    10,    10,     3, 
743		    5,     9,     9,     5,     0,    10,     6,     8,     8,     6, 
744		    4,     9,     3,     9,     5,     8,     8,     5,     6,     7, 
745		    5,     7,     7,     5,     6,     6,     4,     7,     7,     4, 
746		    5,     6,     6,     5,     7,     3,     4,     6,     6,     4, 
747		    1,    15,    15,     1,    15,     0,    14,     2,     1,    14, 
748		   14,     1,    12,     6,     3,    13,     2,    13,    13,     2, 
749		    1,    13,    11,     7,    12,     3,     4,    11,     0,    13, 
750		   13,     0,     8,    10,    10,     8,     4,    12,    12,     4, 
751		    6,    11,    11,     6,    11,     5,     8,     9,     9,     8, 
752		    0,    12,    11,     4,     6,    10,    10,     6,     7,     9, 
753		    8,     8,     5,    10,    10,     5,     6,     9,     7,     8, 
754		    8,     7,     7,     7,     7,     6,     3,    15,     2,    15, 
755		   15,     2,     0,    15,    10,    11,     4,    14,     3,    14, 
756		   11,     9,    11,    10,    14,     5,    14,     4,     8,    12, 
757		    6,    13,    14,     3,     2,    14,     0,    14,    14,     0, 
758		    5,    13,    13,     5,     7,    12,    12,     7,     4,    13, 
759		    8,    11,    11,     8,    13,     4,     9,    10,    10,     9, 
760		    6,    12,    13,     3,     7,    11,     5,    12,    12,     5, 
761		    9,     9,     7,    10,    10,     7,     9,     7,    15,     7, 
762		   13,    10,     6,    15,    14,     8,     5,    15,     9,    13, 
763		   13,     9,    15,     5,    14,     7,    10,    12,    11,    11, 
764		    4,    15,    15,     4,    15,     3,     8,    13,    13,     8, 
765		    6,    14,     9,    12,    12,     9,     5,    14,     7,    13, 
766		   13,     7,    12,     8,    13,     6,     9,    11,    10,    10, 
767		   14,    12,    13,    13,    11,    14,    14,    11,     9,    15, 
768		   15,     9,    14,    10,    11,    13,    13,    11,     8,    15, 
769		   15,     8,    12,    12,     8,    14,    10,    13,    11,    12, 
770		   12,    11,    15,     6,    12,    10,    14,     6,    15,    15, 
771		   14,    15,    13,    15,    14,    14,    12,    15,    13,    14, 
772		   11,    15,    15,    11,    12,    14,    13,    12,    15,    10, 
773		   12,    13,    10,    14,     9,    14,     7,    15,     7,    14, 
774		   14,    13,    10,    15,    14,     9,    15,    13,    15,    14, 
775		   15,    12
776	],
777	// Huffman Table 14
778	[
779	],
780	// Huffman Table 15
781	[		
782		    1,     1,     0,     0,     0,     1,     1,     0,     2,     2, 
783		    1,     2,     2,     1,     0,     2,     2,     0,     4,     1, 
784		    2,     3,     3,     2,     1,     3,     3,     1,     3,     0, 
785		    6,     1,     2,     5,     5,     2,     1,     5,     5,     1, 
786		    3,     4,     4,     3,     2,     4,     4,     2,     3,     3, 
787		    1,     4,     0,     4,     4,     0,     0,     3,     9,     1, 
788		    2,     8,     8,     2,     1,     8,     8,     1,     2,     7, 
789		    7,     2,     6,     4,     1,     7,     5,     5,     7,     1, 
790		    3,     6,     6,     3,     4,     5,     5,     4,     2,     6, 
791		    6,     2,     1,     6,     3,     5,     5,     3,     4,     4, 
792		    0,     5,     5,     0,    12,     2,    11,     3,    11,     2, 
793		   11,     1,    10,     3,     5,     9,     9,     5,     2,    10, 
794		   10,     2,     1,    10,    10,     1,     6,     8,     8,     6, 
795		    4,     9,     9,     4,     3,     9,     9,     3,     5,     8, 
796		    8,     5,     2,     9,     6,     7,     7,     6,     9,     2, 
797		    1,     9,     9,     0,     4,     8,     8,     4,     5,     7, 
798		    7,     5,     3,     8,     8,     3,     6,     6,     4,     7, 
799		    7,     4,     0,     8,     8,     0,     5,     6,     6,     5, 
800		    3,     7,     7,     3,     4,     6,     0,     7,     7,     0, 
801		    0,     6,     6,     0,    13,     4,    13,     3,    13,     2, 
802		    1,    13,     7,    11,    11,     7,    13,     1,    12,     5, 
803		    8,    10,    10,     8,     4,    12,    12,     4,     6,    11, 
804		   11,     6,     3,    12,    12,     3,     7,    10,    10,     7, 
805		   10,     6,     2,    12,     5,    11,    11,     5,     1,    12, 
806		    8,     9,     9,     8,    12,     1,     4,    11,    11,     4, 
807		    6,    10,     3,    11,     7,     9,     9,     7,     8,     8, 
808		    2,    11,     5,    10,    10,     5,     1,    11,    11,     0, 
809		    6,     9,     9,     6,     4,    10,    10,     4,     7,     8, 
810		    8,     7,     3,    10,     0,    10,    10,     0,     7,     7, 
811		    0,     9,    12,    11,    15,     6,    15,     5,     7,    14, 
812		   14,     7,    10,    12,    12,    10,    11,    11,     4,    15, 
813		   15,     4,     3,    15,    15,     3,    13,     8,    14,     6, 
814		    2,    15,    15,     2,     1,    15,    15,     1,     9,    12, 
815		   12,     9,     5,    14,    10,    11,    11,    10,    14,     5, 
816		    7,    13,    13,     7,     4,    14,    14,     4,     8,    12, 
817		   12,     8,     3,    14,     6,    13,    13,     6,    14,     3, 
818		    9,    11,    11,     9,     2,    14,    10,    10,    14,     2, 
819		    1,    14,    14,     1,     5,    13,    13,     5,     7,    12, 
820		   12,     7,     4,    13,     8,    11,    11,     8,     9,    10, 
821		   10,     9,     6,    12,    12,     6,     3,    13,     2,    13, 
822		    0,    13,     5,    12,    13,     0,     9,     9,     0,    12, 
823		   12,     0,     0,    11,    14,    14,    15,    11,    13,    13, 
824		   10,    15,    15,    10,    11,    14,    14,    11,    12,    13, 
825		   13,    12,     9,    15,    15,     9,    14,    10,    11,    13, 
826		   13,    11,     8,    15,    15,     8,    12,    12,     9,    14, 
827		   14,     9,     7,    15,    15,     7,    10,    13,    13,    10, 
828		   11,    12,     6,    15,     8,    14,    14,     8,     5,    15, 
829		    9,    13,    13,     9,     8,    13,     6,    14,    15,     0, 
830		    0,    14,    14,     0,    15,    15,    14,    15,    15,    14, 
831		   13,    15,    15,    13,    12,    15,    15,    12,    13,    14, 
832		   14,    13,    11,    15,    12,    14,    14,    12,    10,    14, 
833		    0,    15
834	],
835	// Huffman Table 16
836	[		
837		    0,     0,     1,     0,     1,     1,     0,     1,     1,     2, 
838		    2,     1,     0,     2,     2,     0,     1,     3,     3,     1, 
839		    2,     2,    15,    15,    15,     2,     1,    15,    15,     1, 
840		    5,     1,     1,     4,     4,     1,     2,     3,     3,     2, 
841		    0,     3,     3,     0,     4,    15,    15,     4,    15,     3, 
842		   15,     0,     2,    15,     0,    15,     1,     7,     7,     1, 
843		    6,     2,     1,     6,     6,     1,     5,     3,     2,     5, 
844		    5,     2,     1,     5,     0,     5,     3,     4,     4,     3, 
845		    5,     0,     2,     4,     4,     2,     3,     3,     0,     4, 
846		    4,     0,    10,    15,     8,    15,     7,    15,    15,     7, 
847		    6,    15,    15,     6,     5,    15,    15,     5,     3,    15, 
848		   10,     2,     1,    10,     2,     9,     9,     2,     1,     9, 
849		    9,     1,     8,     2,     1,     8,     8,     1,     8,     0, 
850		    3,     7,     7,     3,     2,     7,     7,     2,     0,     7, 
851		    7,     0,     3,     6,     6,     3,     4,     5,     5,     4, 
852		    2,     6,     0,     6,     6,     0,     3,     5,     4,     4, 
853		   14,    15,    15,    14,    13,    15,    15,    13,    12,    15, 
854		   15,    12,    11,    15,    15,    11,    15,    10,     9,    15, 
855		   15,     9,    15,     8,    14,     2,     1,    13,     2,    12, 
856		   11,     3,     2,    11,    11,     2,     1,    11,    11,     1, 
857		   10,     3,     2,    10,    10,     1,     9,     4,     6,     7, 
858		    0,    10,    10,     0,     3,     9,     9,     3,     5,     8, 
859		    8,     5,     7,     6,     0,     9,     9,     0,     4,     8, 
860		    8,     4,     7,     5,     3,     8,     8,     3,     6,     6, 
861		    2,     8,     4,     7,     7,     4,     0,     8,     5,     6, 
862		    6,     5,     4,     6,     6,     4,     5,     5,    14,     3, 
863		    0,    13,     3,    12,     1,    12,    12,     0,     2,    14, 
864		    1,    14,    13,     3,     2,    13,    13,     2,    13,     1, 
865		    3,    11,    12,     4,     6,    11,    12,     3,    10,     7, 
866		   12,     2,    11,     5,    12,     1,     0,    12,     4,    11, 
867		   11,     4,     6,    10,    10,     6,     5,    10,    10,     5, 
868		    0,    11,    11,     0,     6,     9,     9,     6,     4,    10, 
869		   10,     4,     7,     8,     8,     7,     3,    10,     5,     9, 
870		    9,     5,     6,     8,     8,     6,     7,     7,     4,     9, 
871		    5,     7,    11,    13,     9,    14,    14,     6,     9,    12, 
872		    4,    14,    12,     8,     3,    14,     6,    13,    14,     1, 
873		   13,     4,     7,    11,     0,    14,    14,     0,     5,    13, 
874		   13,     5,     7,    12,    12,     7,     4,    13,     8,    11, 
875		    9,    10,     6,    12,    12,     6,     3,    13,     5,    12, 
876		   12,     5,     8,    10,    10,     8,     9,     9,     4,    12, 
877		   11,     6,     7,    10,     5,    11,     8,     9,     9,     8, 
878		    7,     9,     9,     7,     8,     8,    14,    14,    11,    14, 
879		   12,    13,    10,    14,    12,    12,    12,    10,     5,    14, 
880		   11,    12,    12,    11,     8,    14,    14,     8,     9,    13, 
881		   14,     7,    11,    11,     8,    13,    13,     8,     6,    14, 
882		   10,    11,    11,    10,    14,     5,    13,     7,    14,     4, 
883		    8,    12,    13,     6,     9,    11,    11,     9,    10,    10, 
884		   11,     8,    10,     9,    11,     7,    13,     0,    13,    14, 
885		   14,     9,    14,    13,    14,    11,    13,    12,    13,    11, 
886		   10,    13,    13,    10,     7,    14,    10,    12,    12,     9, 
887		    7,    13,    12,    14,    14,    10,    13,     9,    14,    12, 
888		   13,    13
889	],
890	// Huffman Table 24
891	[		
892		   15,    15,     1,     1,     0,     1,     1,     0,     0,     0, 
893		    1,     2,     2,     1,     1,     3,     3,     1,     2,     2, 
894		    0,     2,     2,     0,    15,    10,    15,     9,    15,     8, 
895		   15,     7,     6,    15,    15,     6,     5,    15,    15,     5, 
896		    4,    15,    15,     4,     3,    15,    15,     3,     2,    15, 
897		   15,     2,    15,     1,     5,     1,     2,     4,     4,     2, 
898		    3,     3,     1,     4,     4,     1,     2,     3,     3,     2, 
899		    0,     3,     3,     0,    14,    15,    15,    14,    13,    15, 
900		   15,    13,    12,    15,    15,    12,    11,    15,    15,    11, 
901		   10,    15,     9,    15,     8,    15,     7,    15,     1,    15, 
902		   15,     0,     7,     3,     7,     2,     4,     6,     6,     4, 
903		    5,     5,     7,     1,     3,     6,     6,     3,     4,     5, 
904		    5,     4,     2,     6,     6,     2,     1,     6,     6,     1, 
905		    3,     5,     5,     3,     4,     4,     2,     5,     5,     2, 
906		    1,     5,     3,     4,     4,     3,     0,     4,     4,     0, 
907		    0,    15,    11,     4,    11,     3,     8,     8,    11,     2, 
908		    9,     6,    10,     4,     8,     7,     3,    10,    10,     3, 
909		    5,     9,     9,     5,     2,    10,    10,     2,    10,     1, 
910		    6,     8,     8,     6,     7,     7,     4,     9,     9,     4, 
911		    3,     9,     9,     3,     5,     8,     8,     5,     2,     9, 
912		    6,     7,     7,     6,     9,     2,     1,     9,     9,     1, 
913		    4,     8,     8,     4,     5,     7,     7,     5,     3,     8, 
914		    8,     3,     6,     6,     2,     8,     8,     2,     1,     8, 
915		    4,     7,     7,     4,     8,     1,     5,     6,     6,     5, 
916		    1,     7,     3,     7,     2,     7,     0,     6,     6,     0, 
917		    0,     5,     5,     0,    14,     6,    12,     9,     5,    14, 
918		   11,    10,    14,     5,    13,     7,    14,     4,     8,    12, 
919		   12,     8,     3,    14,     6,    13,    13,     6,    14,     3, 
920		    9,    11,    11,     9,    10,    10,    14,     2,     1,    14, 
921		   14,     1,     5,    13,    13,     5,     7,    12,    12,     7, 
922		    4,    13,     8,    11,    11,     8,    13,     4,     9,    10, 
923		   10,     9,     6,    12,    12,     6,     3,    13,    13,     3, 
924		    2,    13,    13,     2,     1,    13,     7,    11,    11,     7, 
925		   13,     1,     5,    12,    12,     5,     8,    10,    10,     8, 
926		    9,     9,     4,    12,    12,     4,     6,    11,    11,     6, 
927		    3,    12,    12,     3,     7,    10,    10,     7,     2,    12, 
928		   12,     2,     5,    11,    11,     5,     1,    12,     8,     9, 
929		    9,     8,    12,     1,     4,    11,     3,    11,     1,    10, 
930		    6,    10,    10,     6,     7,     9,     9,     7,     9,     0, 
931		    2,    11,     5,    10,    10,     5,     1,    11,    11,     1, 
932		    6,     9,     4,    10,     7,     8,     0,     8,     8,     0, 
933		    0,     7,     7,     0,    14,    14,    13,    14,    14,    13, 
934		   12,    14,    14,    12,    13,    13,    11,    14,    14,    11, 
935		   12,    13,    13,    12,    10,    14,    14,    10,    11,    13,
936		   13,    11,    12,    12,     9,    14,    14,     9,    10,    13, 
937		   13,    10,    11,    12,    12,    11,     8,    14,    14,     8, 
938		    9,    13,    13,     9,     7,    14,    14,     7,    10,    12, 
939		   12,    10,    11,    11,     8,    13,    13,     8,     0,    13, 
940		    6,    14,     9,    12,    10,    11,     7,    13,     4,    14, 
941		    2,    14,    13,     0,     0,    12,    12,     0,     0,    11, 
942		   11,     0,     0,    10,    10,     0,     0,     9,     0,    14, 
943		   14,     0
944	]
945	
946];