tables_huffman.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:54k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2.  * huffman_tables.h
  3.  * Copyright (C) 2004 Gildas Bazin <gbazin@videolan.org>
  4.  *
  5.  * This file is part of dtsdec, a free DTS Coherent Acoustics stream decoder.
  6.  * See http://www.videolan.org/dtsdec.html for updates.
  7.  *
  8.  * dtsdec is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2 of the License, or
  11.  * (at your option) any later version.
  12.  *
  13.  * dtsdec is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; if not, write to the Free Software
  20.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  */
  22. typedef struct huff_entry_s
  23. {
  24.     int length;
  25.     int code;
  26.     int value;
  27. } huff_entry_t;
  28. huff_entry_t bitalloc_a_12[] =
  29. {
  30.   { 1,     0,  1}, { 2,     2,  2}, { 3,     6,  3}, { 4,    14,  4}, 
  31.   { 5,    30,  5}, { 6,    62,  6}, { 8,   255,  7}, { 8,   254,  8}, 
  32.   { 9,   507,  9}, { 9,   506, 10}, { 9,   505, 11}, { 9,   504, 12}, 
  33.   { 0,     0,  0}
  34. };
  35. huff_entry_t bitalloc_b_12[] =
  36. {
  37.   { 1,     1,  1}, { 2,     0,  2}, { 3,     2,  3}, { 5,    15,  4}, 
  38.   { 5,    12,  5}, { 6,    29,  6}, { 7,    57,  7}, { 7,    56,  8}, 
  39.   { 7,    55,  9}, { 7,    54, 10}, { 7,    53, 11}, { 7,    52, 12}, 
  40.   { 0,     0,  0}  
  41. };
  42. huff_entry_t bitalloc_c_12[] =
  43. {
  44.   { 2,     0,  1}, { 3,     7,  2}, { 3,     5,  3}, { 3,     4,  4}, 
  45.   { 3,     2,  5}, { 4,    13,  6}, { 4,    12,  7}, { 4,     6,  8}, 
  46.   { 5,    15,  9}, { 6,    29, 10}, { 7,    57, 11}, { 7,    56, 12}, 
  47.   { 0,     0,  0}
  48. };
  49. huff_entry_t bitalloc_d_12[] =
  50. {
  51.   { 2,     3,  1}, { 2,     2,  2}, { 2,     0,  3}, { 3,     2,  4}, 
  52.   { 4,     6,  5}, { 5,    14,  6}, { 6,    30,  7}, { 7,    62,  8}, 
  53.   { 8,   126,  9}, { 9,   254, 10}, {10,   511, 11}, {10,   510, 12}, 
  54.   { 0,     0,  0}
  55. };
  56. huff_entry_t bitalloc_e_12[] =
  57. {
  58.   { 1,     1,  1}, { 2,     0,  2}, { 3,     2,  3}, { 4,     6,  4}, 
  59.   { 5,    14,  5}, { 7,    63,  6}, { 7,    61,  7}, { 8,   124,  8}, 
  60.   { 8,   121,  9}, { 8,   120, 10}, { 9,   251, 11}, { 9,   250, 12}, 
  61.   { 0,     0,  0}
  62. };
  63. huff_entry_t *bitalloc_12[] =
  64. {
  65.   bitalloc_a_12,
  66.   bitalloc_b_12,
  67.   bitalloc_c_12,
  68.   bitalloc_d_12,
  69.   bitalloc_e_12
  70. };
  71. huff_entry_t scales_a_129[] =
  72. {
  73.   { 2,     1,  0}, { 3,     6,  1}, { 3,     5, -1}, { 3,     0,  2}, 
  74.   { 4,    15, -2}, { 4,     8,  3}, { 4,     3, -3}, { 5,    28,  4}, 
  75.   { 5,    19, -4}, { 5,     4,  5}, { 6,    59, -5}, { 6,    36,  6}, 
  76.   { 6,    11, -6}, { 7,    75,  7}, { 7,    74, -7}, { 8,   233,  8}, 
  77.   { 8,   232, -8}, { 8,    41,  9}, { 8,    40, -9}, { 9,    87, 10}, 
  78.   { 9,    86,-10}, {10,   937, 11}, {10,   936,-11}, {11,  1877, 12}, 
  79.   {11,  1876,-12}, {11,   341, 13}, {11,   340,-13}, {12,   686, 14}, 
  80.   {12,   685,-14}, {13,  1375, 15}, {13,  1374,-15}, {13,  1369, 16}, 
  81.   {13,  1368,-16}, {13,  1359, 17}, {13,  1358,-17}, {13,  1357, 18}, 
  82.   {13,  1356,-18}, {13,  1355, 19}, {13,  1354,-19}, {13,  1353, 20}, 
  83.   {13,  1352,-20}, {13,  1351, 21}, {13,  1350,-21}, {13,  1349, 22}, 
  84.   {13,  1348,-22}, {13,  1347, 23}, {13,  1346,-23}, {13,  1345, 24}, 
  85.   {13,  1344,-24}, {14, 15103, 25}, {14, 15102,-25}, {14, 15101, 26}, 
  86.   {14, 15100,-26}, {14, 15099, 27}, {14, 15098,-27}, {14, 15097, 28}, 
  87.   {14, 15096,-28}, {14, 15095, 29}, {14, 15094,-29}, {14, 15093, 30}, 
  88.   {14, 15092,-30}, {14, 15091, 31}, {14, 15090,-31}, {14, 15089, 32}, 
  89.   {14, 15088,-32}, {14, 15087, 33}, {14, 15086,-33}, {14, 15085, 34}, 
  90.   {14, 15084,-34}, {14, 15083, 35}, {14, 15082,-35}, {14, 15081, 36}, 
  91.   {14, 15080,-36}, {14, 15079, 37}, {14, 15078,-37}, {14, 15077, 38}, 
  92.   {14, 15076,-38}, {14, 15075, 39}, {14, 15074,-39}, {14, 15073, 40}, 
  93.   {14, 15072,-40}, {14, 15071, 41}, {14, 15070,-41}, {14, 15069, 42}, 
  94.   {14, 15068,-42}, {14, 15067, 43}, {14, 15066,-43}, {14, 15065, 44}, 
  95.   {14, 15064,-44}, {14, 15063, 45}, {14, 15062,-45}, {14, 15061, 46}, 
  96.   {14, 15060,-46}, {14, 15059, 47}, {14, 15058,-47}, {14, 15057, 48}, 
  97.   {14, 15056,-48}, {14, 15055, 49}, {14, 15054,-49}, {14, 15053, 50}, 
  98.   {14, 15052,-50}, {14, 15051, 51}, {14, 15050,-51}, {14, 15049, 52}, 
  99.   {14, 15048,-52}, {14, 15047, 53}, {14, 15046,-53}, {14, 15045, 54}, 
  100.   {14, 15044,-54}, {14, 15043, 55}, {14, 15042,-55}, {14, 15041, 56}, 
  101.   {14, 15040,-56}, {14, 15039, 57}, {14, 15038,-57}, {14, 15037, 58}, 
  102.   {14, 15036,-58}, {14, 15035, 59}, {14, 15034,-59}, {14, 15033, 60}, 
  103.   {14, 15032,-60}, {14, 15031, 61}, {14, 15030,-61}, {14, 15029, 62}, 
  104.   {14, 15028,-62}, {14, 15027, 63}, {14, 15026,-63}, {14, 15025, 64}, 
  105.   {14, 15024,-64}, { 0,     0,  0}
  106. };
  107. huff_entry_t scales_b_129[] =
  108. {
  109.   { 3,     3,  0}, { 3,     2,  1}, { 3,     1, -1}, { 4,    15,  2}, 
  110.   { 4,    14, -2}, { 4,    12,  3}, { 4,    11, -3}, { 4,    10,  4}, 
  111.   { 4,     9, -4}, { 4,     0,  5}, { 5,    27, -5}, { 5,    17,  6}, 
  112.   { 5,    16, -6}, { 6,    53,  7}, { 6,    52, -7}, { 6,     5,  8}, 
  113.   { 6,     4, -8}, { 7,    13,  9}, { 7,    12, -9}, { 8,    29, 10}, 
  114.   { 8,    28,-10}, { 9,    60, 11}, {10,   127,-11}, {11,   253, 12}, 
  115.   {11,   252,-12}, {12,   491, 13}, {12,   490,-13}, {13,   979, 14}, 
  116.   {13,   978,-14}, {14,  1955, 15}, {14,  1954,-15}, {14,  1953, 16}, 
  117.   {14,  1952,-16}, {15,  4031, 17}, {15,  4030,-17}, {15,  4029, 18}, 
  118.   {15,  4028,-18}, {15,  4027, 19}, {15,  4026,-19}, {15,  4025, 20}, 
  119.   {15,  4024,-20}, {15,  4023, 21}, {15,  4022,-21}, {15,  4021, 22}, 
  120.   {15,  4020,-22}, {15,  4019, 23}, {15,  4018,-23}, {15,  4017, 24}, 
  121.   {15,  4016,-24}, {15,  4015, 25}, {15,  4014,-25}, {15,  4013, 26}, 
  122.   {15,  4012,-26}, {15,  4011, 27}, {15,  4010,-27}, {15,  4009, 28}, 
  123.   {15,  4008,-28}, {15,  4007, 29}, {15,  4006,-29}, {15,  4005, 30}, 
  124.   {15,  4004,-30}, {15,  4003, 31}, {15,  4002,-31}, {15,  4001, 32}, 
  125.   {15,  4000,-32}, {15,  3999, 33}, {15,  3998,-33}, {15,  3997, 34}, 
  126.   {15,  3996,-34}, {15,  3995, 35}, {15,  3994,-35}, {15,  3993, 36}, 
  127.   {15,  3992,-36}, {15,  3991, 37}, {15,  3990,-37}, {15,  3989, 38}, 
  128.   {15,  3988,-38}, {15,  3987, 39}, {15,  3986,-39}, {15,  3985, 40}, 
  129.   {15,  3984,-40}, {15,  3983, 41}, {15,  3982,-41}, {15,  3981, 42}, 
  130.   {15,  3980,-42}, {15,  3979, 43}, {15,  3978,-43}, {15,  3977, 44}, 
  131.   {15,  3976,-44}, {15,  3975, 45}, {15,  3974,-45}, {15,  3973, 46}, 
  132.   {15,  3972,-46}, {15,  3971, 47}, {15,  3970,-47}, {15,  3969, 48}, 
  133.   {15,  3968,-48}, {15,  3967, 49}, {15,  3966,-49}, {15,  3965, 50}, 
  134.   {15,  3964,-50}, {15,  3963, 51}, {15,  3962,-51}, {15,  3961, 52}, 
  135.   {15,  3960,-52}, {15,  3959, 53}, {15,  3958,-53}, {15,  3957, 54}, 
  136.   {15,  3956,-54}, {15,  3955, 55}, {15,  3954,-55}, {15,  3953, 56}, 
  137.   {15,  3952,-56}, {15,  3951, 57}, {15,  3950,-57}, {15,  3949, 58}, 
  138.   {15,  3948,-58}, {15,  3947, 59}, {15,  3946,-59}, {15,  3945, 60}, 
  139.   {15,  3944,-60}, {15,  3943, 61}, {15,  3942,-61}, {15,  3941, 62}, 
  140.   {15,  3940,-62}, {15,  3939, 63}, {15,  3938,-63}, {15,  3937, 64}, 
  141.   {15,  3936,-64}, { 0,     0,  0}
  142. };
  143. huff_entry_t scales_c_129[] =
  144. {
  145.   { 3,     4,  0}, { 3,     1,  1}, { 3,     0, -1}, { 4,    13,  2}, 
  146.   { 4,    12, -2}, { 4,     7,  3}, { 4,     6, -3}, { 5,    31,  4}, 
  147.   { 5,    30, -4}, { 5,    23,  5}, { 5,    22, -5}, { 5,    11,  6}, 
  148.   { 5,    10, -6}, { 6,    59,  7}, { 6,    58, -7}, { 6,    43,  8}, 
  149.   { 6,    42, -8}, { 6,    19,  9}, { 6,    18, -9}, { 7,   115, 10}, 
  150.   { 7,   114,-10}, { 7,    83, 11}, { 7,    82,-11}, { 7,    35, 12}, 
  151.   { 7,    34,-12}, { 8,   227, 13}, { 8,   226,-13}, { 8,   162, 14}, 
  152.   { 8,   161,-14}, { 8,    66, 15}, { 8,    65,-15}, { 9,   450, 16}, 
  153.   { 9,   449,-16}, { 9,   321, 17}, { 9,   320,-17}, { 9,   129, 18}, 
  154.   { 9,   128,-18}, {10,   897, 19}, {10,   896,-19}, {10,   652, 20}, 
  155.   {10,   271,-20}, {10,   268, 21}, {11,  1807,-21}, {11,  1308, 22}, 
  156.   {11,  1307,-22}, {11,   540, 23}, {11,   539,-23}, {12,  3612, 24}, 
  157.   {12,  3611,-24}, {12,  2613, 25}, {12,  2612,-25}, {12,  1077, 26}, 
  158.   {12,  1076,-26}, {13,  7226, 27}, {13,  7221,-27}, {13,  2167, 28}, 
  159.   {13,  2166,-28}, {13,  2164, 29}, {14, 14455,-29}, {14, 14441, 30}, 
  160.   {14, 14440,-30}, {14,  4331, 31}, {14,  4330,-31}, {15, 28909, 32}, 
  161.   {15, 28908,-32}, {15, 28879, 33}, {15, 28878,-33}, {15, 28877, 34}, 
  162.   {15, 28876,-34}, {15, 28875, 35}, {15, 28874,-35}, {15, 28873, 36}, 
  163.   {15, 28872,-36}, {15, 28871, 37}, {15, 28870,-37}, {15, 28869, 38}, 
  164.   {15, 28868,-38}, {15, 28867, 39}, {15, 28866,-39}, {15, 28865, 40}, 
  165.   {15, 28864,-40}, {15, 20991, 41}, {15, 20990,-41}, {15, 20989, 42}, 
  166.   {15, 20988,-42}, {15, 20987, 43}, {15, 20986,-43}, {15, 20985, 44}, 
  167.   {15, 20984,-44}, {15, 20983, 45}, {15, 20982,-45}, {15, 20981, 46}, 
  168.   {15, 20980,-46}, {15, 20979, 47}, {15, 20978,-47}, {15, 20977, 48}, 
  169.   {15, 20976,-48}, {15, 20975, 49}, {15, 20974,-49}, {15, 20973, 50}, 
  170.   {15, 20972,-50}, {15, 20971, 51}, {15, 20970,-51}, {15, 20969, 52}, 
  171.   {15, 20968,-52}, {15, 20967, 53}, {15, 20966,-53}, {15, 20965, 54}, 
  172.   {15, 20964,-54}, {15, 20963, 55}, {15, 20962,-55}, {15, 20961, 56}, 
  173.   {15, 20960,-56}, {15, 20959, 57}, {15, 20958,-57}, {15, 20957, 58}, 
  174.   {15, 20956,-58}, {15, 20955, 59}, {15, 20954,-59}, {15, 20953, 60}, 
  175.   {15, 20952,-60}, {15, 20951, 61}, {15, 20950,-61}, {15, 20949, 62}, 
  176.   {15, 20948,-62}, {15, 20947, 63}, {15, 20946,-63}, {15, 20945, 64}, 
  177.   {15, 20944,-64}, { 0,     0,  0}
  178. };
  179. huff_entry_t scales_d_129[] =
  180. {
  181.   { 2,     0,  0}, { 3,     5,  1}, { 3,     4, -1}, { 4,    15,  2}, 
  182.   { 4,    14, -2}, { 4,     7,  3}, { 4,     6, -3}, { 5,    26,  4}, 
  183.   { 5,    25, -4}, { 5,    10,  5}, { 5,     9, -5}, { 6,    54,  6}, 
  184.   { 6,    49, -6}, { 6,    22,  7}, { 6,    17, -7}, { 7,   110,  8}, 
  185.   { 7,    97, -8}, { 7,    46,  9}, { 7,    33, -9}, { 8,   193, 10}, 
  186.   { 8,   192,-10}, { 8,    65, 11}, { 8,    64,-11}, { 9,   444, 12}, 
  187.   { 9,   191,-12}, { 9,   188, 13}, {10,   895,-13}, {10,   890, 14}, 
  188.   {10,   381,-14}, {10,   378, 15}, {11,  1789,-15}, {11,   761, 16}, 
  189.   {11,   760,-16}, {12,  3577, 17}, {12,  3576,-17}, {12,  1519, 18}, 
  190.   {12,  1518,-18}, {12,  1516, 19}, {13,  7151,-19}, {13,  7128, 20}, 
  191.   {13,  3035,-20}, {14, 14301, 21}, {14, 14300,-21}, {14,  6069, 22}, 
  192.   {14,  6068,-22}, {15, 28599, 23}, {15, 28598,-23}, {15, 28597, 24}, 
  193.   {15, 28596,-24}, {15, 28595, 25}, {15, 28594,-25}, {15, 28593, 26}, 
  194.   {15, 28592,-26}, {15, 28591, 27}, {15, 28590,-27}, {15, 28589, 28}, 
  195.   {15, 28588,-28}, {15, 28587, 29}, {15, 28586,-29}, {15, 28585, 30}, 
  196.   {15, 28584,-30}, {15, 28583, 31}, {15, 28582,-31}, {15, 28581, 32}, 
  197.   {15, 28580,-32}, {15, 28579, 33}, {15, 28578,-33}, {15, 28577, 34}, 
  198.   {15, 28576,-34}, {15, 28575, 35}, {15, 28574,-35}, {15, 28573, 36}, 
  199.   {15, 28572,-36}, {15, 28571, 37}, {15, 28570,-37}, {15, 28569, 38}, 
  200.   {15, 28568,-38}, {15, 28567, 39}, {15, 28566,-39}, {15, 28565, 40}, 
  201.   {15, 28564,-40}, {15, 28563, 41}, {15, 28562,-41}, {15, 28561, 42}, 
  202.   {15, 28560,-42}, {15, 28559, 43}, {15, 28558,-43}, {15, 28557, 44}, 
  203.   {15, 28556,-44}, {15, 28555, 45}, {15, 28554,-45}, {15, 28553, 46}, 
  204.   {15, 28552,-46}, {15, 28551, 47}, {15, 28550,-47}, {15, 28549, 48}, 
  205.   {15, 28548,-48}, {15, 28547, 49}, {15, 28546,-49}, {15, 28545, 50}, 
  206.   {15, 28544,-50}, {15, 28543, 51}, {15, 28542,-51}, {15, 28541, 52}, 
  207.   {15, 28540,-52}, {15, 28539, 53}, {15, 28538,-53}, {15, 28537, 54}, 
  208.   {15, 28536,-54}, {15, 28535, 55}, {15, 28534,-55}, {15, 28533, 56}, 
  209.   {15, 28532,-56}, {15, 28531, 57}, {15, 28530,-57}, {15, 28529, 58}, 
  210.   {15, 28528,-58}, {15, 28527, 59}, {15, 28526,-59}, {15, 28525, 60}, 
  211.   {15, 28524,-60}, {15, 28523, 61}, {15, 28522,-61}, {15, 28521, 62}, 
  212.   {15, 28520,-62}, {15, 28519, 63}, {15, 28518,-63}, {15, 28517, 64}, 
  213.   {15, 28516,-64}, { 0,     0,  0}
  214. };
  215. huff_entry_t scales_e_129[] =
  216. {
  217.   { 4,    14,  0}, { 4,    11,  1}, { 4,    10, -1}, { 4,     7,  2}, 
  218.   { 4,     6, -2}, { 4,     3,  3}, { 4,     2, -3}, { 5,    31,  4}, 
  219.   { 5,    30, -4}, { 5,    25,  5}, { 5,    24, -5}, { 5,    17,  6}, 
  220.   { 5,    16, -6}, { 5,     9,  7}, { 5,     8, -7}, { 5,     1,  8}, 
  221.   { 5,     0, -8}, { 6,    53,  9}, { 6,    52, -9}, { 6,    37, 10}, 
  222.   { 6,    36,-10}, { 6,    21, 11}, { 6,    20,-11}, { 6,     5, 12}, 
  223.   { 6,     4,-12}, { 7,   109, 13}, { 7,   108,-13}, { 7,    77, 14}, 
  224.   { 7,    76,-14}, { 7,    45, 15}, { 7,    44,-15}, { 7,    13, 16}, 
  225.   { 7,    12,-16}, { 8,   221, 17}, { 8,   220,-17}, { 8,   157, 18}, 
  226.   { 8,   156,-18}, { 8,    93, 19}, { 8,    92,-19}, { 8,    29, 20}, 
  227.   { 8,    28,-20}, { 9,   445, 21}, { 9,   444,-21}, { 9,   317, 22}, 
  228.   { 9,   316,-22}, { 9,   189, 23}, { 9,   188,-23}, { 9,    61, 24}, 
  229.   { 9,    60,-24}, {10,   892, 25}, {10,   639,-25}, {10,   637, 26}, 
  230.   {10,   636,-26}, {10,   381, 27}, {10,   380,-27}, {10,   125, 28}, 
  231.   {10,   124,-28}, {11,  1788, 29}, {11,  1787,-29}, {11,  1276, 30}, 
  232.   {11,   767,-30}, {11,   764, 31}, {11,   255,-31}, {11,   252, 32}, 
  233.   {12,  3583,-32}, {12,  3579, 33}, {12,  3578,-33}, {12,  2555, 34}, 
  234.   {12,  2554,-34}, {12,  1531, 35}, {12,  1530,-35}, {12,   507, 36}, 
  235.   {12,   506,-36}, {13,  7160, 37}, {13,  7147,-37}, {13,  7144, 38}, 
  236.   {13,  3067,-38}, {13,  3065, 39}, {13,  3064,-39}, {13,  1017, 40}, 
  237.   {13,  1016,-40}, {14, 14330, 41}, {14, 14329,-41}, {14, 14291, 42}, 
  238.   {14, 14290,-42}, {14,  6132, 43}, {14,  2039,-43}, {14,  2038, 44}, 
  239.   {14,  2037,-44}, {15, 28663, 45}, {15, 28662,-45}, {15, 28585, 46}, 
  240.   {15, 28584,-46}, {15, 12267, 47}, {15, 12266,-47}, {15,  4073, 48}, 
  241.   {15,  4072,-48}, {16, 57315, 49}, {16, 57314,-49}, {16, 57313, 50}, 
  242.   {16, 57312,-50}, {16, 57311, 51}, {16, 57310,-51}, {16, 57309, 52}, 
  243.   {16, 57308,-52}, {16, 57307, 53}, {16, 57306,-53}, {16, 57305, 54}, 
  244.   {16, 57304,-54}, {16, 57303, 55}, {16, 57302,-55}, {16, 57301, 56}, 
  245.   {16, 57300,-56}, {16, 57299, 57}, {16, 57298,-57}, {16, 57297, 58}, 
  246.   {16, 57296,-58}, {16, 57295, 59}, {16, 57294,-59}, {16, 57293, 60}, 
  247.   {16, 57292,-60}, {16, 57291, 61}, {16, 57290,-61}, {16, 57289, 62}, 
  248.   {16, 57288,-62}, {16, 57175, 63}, {16, 57174,-63}, {16, 57173, 64}, 
  249.   {16, 57172,-64}, { 0,     0,  0}
  250. };
  251. huff_entry_t *scales_129[] =
  252. {
  253.   scales_a_129,
  254.   scales_b_129,
  255.   scales_c_129,
  256.   scales_d_129,
  257.   scales_e_129
  258. };
  259. huff_entry_t bitalloc_a_3[] =
  260. {
  261.   { 1,     0,  0}, { 2,     2,  1}, { 2,     3, -1}, { 0,     0,  0}
  262. };
  263. huff_entry_t bitalloc_a_4[] =
  264. {
  265.   { 1,     0,  0}, { 2,     2,  1}, { 3,     6,  2}, { 3,     7,  3}, 
  266.   { 0,     0,  0}
  267. };
  268. huff_entry_t bitalloc_b_4[] =
  269. {
  270.   { 2,     2,  0}, { 3,     6,  1}, { 3,     7,  2}, { 1,     0,  3}, 
  271.   { 0,     0,  0}
  272. };
  273. huff_entry_t bitalloc_c_4[] =
  274. {
  275.   { 3,     6,  0}, { 3,     7,  1}, { 1,     0,  2}, { 2,     2,  3}, 
  276.   { 0,     0,  0}
  277. };
  278. huff_entry_t bitalloc_d_4[] =
  279. {
  280.   { 2,     0,  0}, { 2,     1,  1}, { 2,     2,  2}, { 2,     3,  3}, 
  281.   { 0,     0,  0}
  282. };
  283. huff_entry_t *tmode[] =
  284. {
  285.   bitalloc_a_4,
  286.   bitalloc_b_4,
  287.   bitalloc_c_4,
  288.   bitalloc_d_4
  289. };
  290. huff_entry_t bitalloc_a_5[] =
  291. {
  292.   { 1,     0,  0}, { 2,     2,  1}, { 3,     6, -1}, { 4,    14,  2}, 
  293.   { 4,    15, -2}, { 0,     0,  0}
  294. };
  295. huff_entry_t bitalloc_b_5[] =
  296. {
  297.   { 2,     2,  0}, { 2,     0,  1}, { 2,     1, -1}, { 3,     6,  2}, 
  298.   { 3,     7, -2}, { 0,     0,  0}
  299. };
  300. huff_entry_t bitalloc_c_5[] =
  301. {
  302.   { 1,     0,  0}, { 3,     4,  1}, { 3,     5, -1}, { 3,     6,  2}, 
  303.   { 3,     7, -2}, { 0,     0,  0}
  304. };
  305. huff_entry_t bitalloc_a_7[] =
  306. {
  307.   { 1,     0,  0}, { 3,     6,  1}, { 3,     5, -1}, { 3,     4,  2}, 
  308.   { 4,    14, -2}, { 5,    31,  3}, { 5,    30, -3}, { 0,     0,  0}
  309. };
  310. huff_entry_t bitalloc_b_7[] =
  311. {
  312.   { 2,     3,  0}, { 2,     1,  1}, { 2,     0, -1}, { 3,     4,  2}, 
  313.   { 4,    11, -2}, { 5,    21,  3}, { 5,    20, -3}, { 0,     0,  0}
  314. };
  315. huff_entry_t bitalloc_c_7[] =
  316. {
  317.   { 2,     3,  0}, { 2,     2,  1}, { 2,     1, -1}, { 4,     3,  2}, 
  318.   { 4,     2, -2}, { 4,     1,  3}, { 4,     0, -3}, { 0,     0,  0}
  319. };
  320. huff_entry_t bitalloc_a_9[] =
  321. {
  322.   { 1,     0,  0}, { 3,     7,  1}, { 3,     5, -1}, { 4,    13,  2}, 
  323.   { 4,     9, -2}, { 4,     8,  3}, { 5,    25, -3}, { 6,    49,  4}, 
  324.   { 6,    48, -4}, { 0,     0,  0}
  325. };
  326. huff_entry_t bitalloc_b_9[] =
  327. {
  328.   { 2,     2,  0}, { 2,     0,  1}, { 3,     7, -1}, { 3,     3,  2}, 
  329.   { 3,     2, -2}, { 5,    27,  3}, { 5,    26, -3}, { 5,    25,  4}, 
  330.   { 5,    24, -4}, { 0,     0,  0}
  331. };
  332. huff_entry_t bitalloc_c_9[] =
  333. {
  334.   { 2,     2,  0}, { 2,     0,  1}, { 3,     7, -1}, { 3,     6,  2}, 
  335.   { 3,     2, -2}, { 4,     6,  3}, { 5,    15, -3}, { 6,    29,  4}, 
  336.   { 6,    28, -4}, { 0,     0,  0}
  337. };
  338. huff_entry_t bitalloc_a_13[] =
  339. {
  340.   { 1,     0,  0}, { 3,     4,  1}, { 4,    15, -1}, { 4,    13,  2}, 
  341.   { 4,    12, -2}, { 4,    10,  3}, { 5,    29, -3}, { 5,    22,  4}, 
  342.   { 6,    57, -4}, { 6,    47,  5}, { 6,    46, -5}, { 7,   113,  6}, 
  343.   { 7,   112, -6}, { 0,     0,  0}
  344. };
  345. huff_entry_t bitalloc_b_13[] =
  346. {
  347.   { 2,     0,  0}, { 3,     6,  1}, { 3,     5, -1}, { 3,     2,  2}, 
  348.   { 4,    15, -2}, { 4,     9,  3}, { 4,     7, -3}, { 4,     6,  4}, 
  349.   { 5,    29, -4}, { 5,    17,  5}, { 5,    16, -5}, { 6,    57,  6}, 
  350.   { 6,    56, -6}, { 0,     0,  0}
  351. };
  352. huff_entry_t bitalloc_c_13[] =
  353. {
  354.   { 3,     5,  0}, { 3,     4,  1}, { 3,     3, -1}, { 3,     2,  2}, 
  355.   { 3,     0, -2}, { 4,    15,  3}, { 4,    14, -3}, { 4,    12,  4}, 
  356.   { 4,     3, -4}, { 5,    27,  5}, { 5,    26, -5}, { 5,     5,  6}, 
  357.   { 5,     4, -6}, { 0,     0,  0}
  358. };
  359. huff_entry_t bitalloc_a_17[] =
  360. {
  361.   { 2,     1,  0}, { 3,     7,  1}, { 3,     6, -1}, { 3,     4,  2}, 
  362.   { 3,     1, -2}, { 4,    11,  3}, { 4,    10, -3}, { 4,     0,  4}, 
  363.   { 5,     3, -4}, { 6,     4,  5}, { 7,    11, -5}, { 8,    20,  6}, 
  364.   { 9,    43, -6}, {10,    84,  7}, {11,   171, -7}, {12,   341,  8}, 
  365.   {12,   340, -8}, { 0,     0,  0}
  366. };
  367. huff_entry_t bitalloc_b_17[] =
  368. {
  369.   { 2,     0,  0}, { 3,     6,  1}, { 3,     5, -1}, { 3,     2,  2}, 
  370.   { 4,    15, -2}, { 4,     9,  3}, { 4,     8, -3}, { 5,    29,  4}, 
  371.   { 5,    28, -4}, { 5,    14,  5}, { 5,    13, -5}, { 6,    30,  6}, 
  372.   { 6,    25, -6}, { 6,    24,  7}, { 7,    63, -7}, { 8,   125,  8}, 
  373.   { 8,   124, -8}, { 0,     0,  0}
  374. };
  375. huff_entry_t bitalloc_c_17[] =
  376. {
  377.   { 3,     6,  0}, { 3,     4,  1}, { 3,     3, -1}, { 3,     0,  2}, 
  378.   { 4,    15, -2}, { 4,    11,  3}, { 4,    10, -3}, { 4,     4,  4}, 
  379.   { 4,     3, -4}, { 5,    29,  5}, { 5,    28, -5}, { 5,    10,  6}, 
  380.   { 5,     5, -6}, { 5,     4,  7}, { 6,    23, -7}, { 7,    45,  8}, 
  381.   { 7,    44, -8}, { 0,     0,  0}
  382. };
  383. huff_entry_t bitalloc_d_17[] =
  384. {
  385.   { 1,     0,  0}, { 3,     7,  1}, { 3,     6, -1}, { 4,    11,  2}, 
  386.   { 4,    10, -2}, { 5,    19,  3}, { 5,    18, -3}, { 6,    35,  4}, 
  387.   { 6,    34, -4}, { 7,    67,  5}, { 7,    66, -5}, { 8,   131,  6}, 
  388.   { 8,   130, -6}, { 9,   259,  7}, { 9,   258, -7}, { 9,   257,  8}, 
  389.   { 9,   256, -8}, { 0,     0,  0}
  390. };
  391. huff_entry_t bitalloc_e_17[] =
  392. {
  393.   { 1,     0,  0}, { 3,     5,  1}, { 3,     4, -1}, { 4,    12,  2}, 
  394.   { 5,    31, -2}, { 5,    28,  3}, { 5,    27, -3}, { 6,    60,  4}, 
  395.   { 6,    59, -4}, { 6,    53,  5}, { 6,    52, -5}, { 7,   122,  6}, 
  396.   { 7,   117, -6}, { 8,   247,  7}, { 8,   246, -7}, { 8,   233,  8}, 
  397.   { 8,   232, -8}, { 0,     0,  0}
  398. };
  399. huff_entry_t bitalloc_f_17[] =
  400. {
  401.   { 3,     6,  0}, { 3,     5,  1}, { 3,     4, -1}, { 3,     2,  2}, 
  402.   { 3,     1, -2}, { 4,    15,  3}, { 4,    14, -3}, { 4,     6,  4}, 
  403.   { 4,     1, -4}, { 5,    14,  5}, { 5,     1, -5}, { 6,    31,  6}, 
  404.   { 6,    30, -6}, { 6,     0,  7}, { 7,     3, -7}, { 8,     5,  8}, 
  405.   { 8,     4, -8}, { 0,     0,  0}
  406. };
  407. huff_entry_t bitalloc_g_17[] =
  408. {
  409.   { 2,     2,  0}, { 3,     7,  1}, { 3,     6, -1}, { 3,     1,  2}, 
  410.   { 3,     0, -2}, { 4,     5,  3}, { 4,     4, -3}, { 5,    14,  4}, 
  411.   { 5,    13, -4}, { 6,    30,  5}, { 6,    25, -5}, { 7,    62,  6}, 
  412.   { 7,    49, -6}, { 8,   127,  7}, { 8,   126, -7}, { 8,    97,  8}, 
  413.   { 8,    96, -8}, { 0,     0,  0}
  414. };
  415. huff_entry_t bitalloc_a_25[] =
  416. {
  417.   { 3,     6,  0}, { 3,     4,  1}, { 3,     3, -1}, { 3,     1,  2}, 
  418.   { 3,     0, -2}, { 4,    15,  3}, { 4,    14, -3}, { 4,     5,  4}, 
  419.   { 4,     4, -4}, { 5,    22,  5}, { 5,    21, -5}, { 6,    47,  6}, 
  420.   { 6,    46, -6}, { 7,    83,  7}, { 7,    82, -7}, { 8,   163,  8}, 
  421.   { 8,   162, -8}, { 8,   160,  9}, { 9,   323, -9}, {10,   644, 10}, 
  422.   {11,  1291,-10}, {12,  2580, 11}, {13,  5163,-11}, {14, 10325, 12}, 
  423.   {14, 10324,-12}, { 0,     0,  0}
  424. };
  425. huff_entry_t bitalloc_b_25[] =
  426. {
  427.   { 3,     5,  0}, { 3,     2,  1}, { 3,     1, -1}, { 4,    15,  2}, 
  428.   { 4,    14, -2}, { 4,     9,  3}, { 4,     8, -3}, { 4,     6,  4}, 
  429.   { 4,     1, -4}, { 5,    26,  5}, { 5,    25, -5}, { 5,    15,  6}, 
  430.   { 5,    14, -6}, { 6,    55,  7}, { 6,    54, -7}, { 6,    49,  8}, 
  431.   { 6,    48, -8}, { 6,     1,  9}, { 6,     0, -9}, { 7,     6, 10}, 
  432.   { 7,     5,-10}, { 7,     4, 11}, { 8,    15,-11}, { 9,    29, 12}, 
  433.   { 9,    28,-12}, { 0,     0,  0}
  434. };
  435. huff_entry_t bitalloc_c_25[] =
  436. {
  437.   { 3,     1,  0}, { 4,    15,  1}, { 4,    14, -1}, { 4,    12,  2}, 
  438.   { 4,    11, -2}, { 4,     9,  3}, { 4,     8, -3}, { 4,     6,  4}, 
  439.   { 4,     5, -4}, { 4,     1,  5}, { 4,     0, -5}, { 5,    26,  6}, 
  440.   { 5,    21, -6}, { 5,    15,  7}, { 5,    14, -7}, { 5,     8,  8}, 
  441.   { 6,    55, -8}, { 6,    41,  9}, { 6,    40, -9}, { 6,    18, 10}, 
  442.   { 7,   109,-10}, { 7,   108, 11}, { 7,    39,-11}, { 8,    77, 12}, 
  443.   { 8,    76,-12}, { 0,     0,  0}
  444. };
  445. huff_entry_t bitalloc_d_25[] =
  446. {
  447.   { 2,     2,  0}, { 3,     7,  1}, { 3,     6, -1}, { 3,     1,  2}, 
  448.   { 3,     0, -2}, { 4,     5,  3}, { 4,     4, -3}, { 5,    13,  4}, 
  449.   { 5,    12, -4}, { 6,    29,  5}, { 6,    28, -5}, { 7,    62,  6}, 
  450.   { 7,    61, -6}, { 8,   126,  7}, { 8,   121, -7}, { 9,   255,  8}, 
  451.   { 9,   254, -8}, {10,   483,  9}, {10,   482, -9}, {11,   963, 10}, 
  452.   {11,   962,-10}, {12,  1923, 11}, {12,  1922,-11}, {12,  1921, 12}, 
  453.   {12,  1920,-12}, { 0,     0,  0}
  454. };
  455. huff_entry_t bitalloc_e_25[] =
  456. {
  457.   { 2,     3,  0}, { 3,     3,  1}, { 3,     2, -1}, { 4,    11,  2}, 
  458.   { 4,    10, -2}, { 4,     1,  3}, { 4,     0, -3}, { 5,    17,  4}, 
  459.   { 5,    16, -4}, { 5,     5,  5}, { 5,     4, -5}, { 6,    38,  6}, 
  460.   { 6,    37, -6}, { 6,    14,  7}, { 6,    13, -7}, { 7,    79,  8}, 
  461.   { 7,    78, -8}, { 7,    72,  9}, { 7,    31, -9}, { 7,    25, 10}, 
  462.   { 7,    24,-10}, { 8,   147, 11}, { 8,   146,-11}, { 8,    61, 12}, 
  463.   { 8,    60,-12}, { 0,     0,  0}
  464. };
  465. huff_entry_t bitalloc_f_25[] =
  466. {
  467.   { 3,     1,  0}, { 3,     0,  1}, { 4,    15, -1}, { 4,    14,  2}, 
  468.   { 4,    13, -2}, { 4,    11,  3}, { 4,    10, -3}, { 4,     8,  4}, 
  469.   { 4,     7, -4}, { 4,     5,  5}, { 4,     4, -5}, { 5,    24,  6}, 
  470.   { 5,    19, -6}, { 5,    13,  7}, { 5,    12, -7}, { 6,    37,  8}, 
  471.   { 6,    36, -8}, { 7,   102,  9}, { 7,   101, -9}, { 8,   207, 10}, 
  472.   { 8,   206,-10}, { 8,   200, 11}, { 9,   403,-11}, {10,   805, 12}, 
  473.   {10,   804,-12}, { 0,     0,  0}
  474. };
  475. huff_entry_t bitalloc_g_25[] =
  476. {
  477.   { 2,     1,  0}, { 3,     6,  1}, { 3,     5, -1}, { 3,     0,  2}, 
  478.   { 4,    15, -2}, { 4,     8,  3}, { 4,     3, -3}, { 5,    28,  4}, 
  479.   { 5,    19, -4}, { 5,     4,  5}, { 6,    59, -5}, { 6,    36,  6}, 
  480.   { 6,    11, -6}, { 7,   116,  7}, { 7,    75, -7}, { 7,    21,  8}, 
  481.   { 7,    20, -8}, { 8,   149,  9}, { 8,   148, -9}, { 9,   470, 10}, 
  482.   { 9,   469,-10}, {10,   943, 11}, {10,   942,-11}, {10,   937, 12}, 
  483.   {10,   936,-12}, { 0,     0,  0}
  484. };
  485. huff_entry_t bitalloc_a_33[] =
  486. {
  487.   { 3,     2,  0}, { 3,     1,  1}, { 3,     0, -1}, { 4,    14,  2}, 
  488.   { 4,    13, -2}, { 4,    12,  3}, { 4,    11, -3}, { 4,     9,  4}, 
  489.   { 4,     8, -4}, { 4,     6,  5}, { 5,    31, -5}, { 5,    20,  6}, 
  490.   { 5,    15, -6}, { 6,    61,  7}, { 6,    60, -7}, { 6,    29,  8}, 
  491.   { 6,    28, -8}, { 7,    85,  9}, { 7,    84, -9}, { 8,   174, 10}, 
  492.   { 8,   173,-10}, { 9,   351, 11}, { 9,   350,-11}, {10,   691, 12}, 
  493.   {10,   690,-12}, {11,  1379, 13}, {11,  1378,-13}, {12,  2755, 14}, 
  494.   {12,  2754,-14}, {13,  5507, 15}, {13,  5506,-15}, {13,  5505, 16}, 
  495.   {13,  5504,-16}, { 0,     0,  0}
  496. };
  497. huff_entry_t bitalloc_b_33[] =
  498. {
  499.   { 3,     1,  0}, { 4,    15,  1}, { 4,    14, -1}, { 4,    11,  2}, 
  500.   { 4,    10, -2}, { 4,     8,  3}, { 4,     7, -3}, { 4,     4,  4}, 
  501.   { 4,     1, -4}, { 5,    27,  5}, { 5,    26, -5}, { 5,    19,  6}, 
  502.   { 5,    18, -6}, { 5,    12,  7}, { 5,    11, -7}, { 5,     1,  8}, 
  503.   { 5,     0, -8}, { 6,    50,  9}, { 6,    49, -9}, { 6,    26, 10}, 
  504.   { 6,    21,-10}, { 7,   103, 11}, { 7,   102,-11}, { 7,    96, 12}, 
  505.   { 7,    55,-12}, { 7,    41, 13}, { 7,    40,-13}, { 8,   194, 14}, 
  506.   { 8,   109,-14}, { 8,   108, 15}, { 9,   391,-15}, {10,   781, 16}, 
  507.   {10,   780,-16}, { 0,     0,  0}
  508. };
  509. huff_entry_t bitalloc_c_33[] =
  510. {
  511.   { 4,    13,  0}, { 4,    11,  1}, { 4,    10, -1}, { 4,     8,  2}, 
  512.   { 4,     7, -2}, { 4,     4,  3}, { 4,     3, -3}, { 4,     2,  4}, 
  513.   { 4,     1, -4}, { 5,    30,  5}, { 5,    29, -5}, { 5,    25,  6}, 
  514.   { 5,    24, -6}, { 5,    19,  7}, { 5,    18, -7}, { 5,    11,  8}, 
  515.   { 5,    10, -8}, { 5,     0,  9}, { 6,    63, -9}, { 6,    62, 10}, 
  516.   { 6,    57,-10}, { 6,    27, 11}, { 6,    26,-11}, { 6,    24, 12}, 
  517.   { 6,     3,-12}, { 7,   113, 13}, { 7,   112,-13}, { 7,    50, 14}, 
  518.   { 7,     5,-14}, { 7,     4, 15}, { 8,   103,-15}, { 9,   205, 16}, 
  519.   { 9,   204,-16}, { 0,     0,  0}
  520. };
  521. huff_entry_t bitalloc_d_33[] =
  522. {
  523.   { 2,     1,  0}, { 3,     6,  1}, { 3,     5, -1}, { 3,     0,  2}, 
  524.   { 4,    15, -2}, { 4,     8,  3}, { 4,     3, -3}, { 5,    28,  4}, 
  525.   { 5,    19, -4}, { 5,     4,  5}, { 6,    59, -5}, { 6,    36,  6}, 
  526.   { 6,    11, -6}, { 7,   116,  7}, { 7,    75, -7}, { 7,    21,  8}, 
  527.   { 7,    20, -8}, { 8,   149,  9}, { 8,   148, -9}, { 9,   469, 10}, 
  528.   { 9,   468,-10}, {10,   941, 11}, {10,   940,-11}, {11,  1885, 12}, 
  529.   {11,  1884,-12}, {12,  3773, 13}, {12,  3772,-13}, {13,  7551, 14}, 
  530.   {13,  7550,-14}, {14, 15099, 15}, {14, 15098,-15}, {14, 15097, 16}, 
  531.   {14, 15096,-16}, { 0,     0,  0}
  532. };
  533. huff_entry_t bitalloc_e_33[] =
  534. {
  535.   { 2,     2,  0}, { 3,     2,  1}, { 3,     1, -1}, { 4,    12,  2}, 
  536.   { 4,     7, -2}, { 4,     0,  3}, { 5,    31, -3}, { 5,    27,  4}, 
  537.   { 5,    26, -4}, { 5,     3,  5}, { 5,     2, -5}, { 6,    59,  6}, 
  538.   { 6,    58, -6}, { 6,    27,  7}, { 6,    26, -7}, { 7,   123,  8}, 
  539.   { 7,   122, -8}, { 7,   120,  9}, { 7,   115, -9}, { 7,   112, 10}, 
  540.   { 7,    51,-10}, { 7,    49, 11}, { 7,    48,-11}, { 8,   242, 12}, 
  541.   { 8,   229,-12}, { 8,   227, 13}, { 8,   226,-13}, { 8,   101, 14}, 
  542.   { 8,   100,-14}, { 9,   487, 15}, { 9,   486,-15}, { 9,   457, 16}, 
  543.   { 9,   456,-16}, { 0,     0,  0}
  544. };
  545. huff_entry_t bitalloc_f_33[] =
  546. {
  547.   { 4,    13,  0}, { 4,    12,  1}, { 4,    11, -1}, { 4,     9,  2}, 
  548.   { 4,     8, -2}, { 4,     7,  3}, { 4,     6, -3}, { 4,     4,  4}, 
  549.   { 4,     3, -4}, { 4,     1,  5}, { 4,     0, -5}, { 5,    30,  6}, 
  550.   { 5,    29, -6}, { 5,    21,  7}, { 5,    20, -7}, { 5,    10,  8}, 
  551.   { 5,     5, -8}, { 6,    63,  9}, { 6,    62, -9}, { 6,    56, 10}, 
  552.   { 6,    23,-10}, { 6,     9, 11}, { 6,     8,-11}, { 7,    45, 12}, 
  553.   { 7,    44,-12}, { 8,   230, 13}, { 8,   229,-13}, { 9,   463, 14}, 
  554.   { 9,   462,-14}, { 9,   456, 15}, {10,   915,-15}, {11,  1829, 16}, 
  555.   {11,  1828,-16}, { 0,     0,  0}
  556. };
  557. huff_entry_t bitalloc_g_33[] =
  558. {
  559.   { 3,     6,  0}, { 3,     3,  1}, { 3,     2, -1}, { 4,    15,  2}, 
  560.   { 4,    14, -2}, { 4,     9,  3}, { 4,     8, -3}, { 4,     1,  4}, 
  561.   { 4,     0, -4}, { 5,    22,  5}, { 5,    21, -5}, { 5,     6,  6}, 
  562.   { 5,     5, -6}, { 6,    46,  7}, { 6,    41, -7}, { 6,    14,  8}, 
  563.   { 6,     9, -8}, { 7,    94,  9}, { 7,    81, -9}, { 7,    30, 10}, 
  564.   { 7,    17,-10}, { 8,   191, 11}, { 8,   190,-11}, { 8,    63, 12}, 
  565.   { 8,    62,-12}, { 8,    32, 13}, { 9,   323,-13}, { 9,   321, 14}, 
  566.   { 9,   320,-14}, { 9,    67, 15}, { 9,    66,-15}, {10,   645, 16}, 
  567.   {10,   644,-16}, { 0,     0,  0}
  568. };
  569. huff_entry_t bitalloc_a_65[] =
  570. {
  571.   { 4,     6,  0}, { 4,     5,  1}, { 4,     4, -1}, { 4,     2,  2}, 
  572.   { 4,     1, -2}, { 4,     0,  3}, { 5,    31, -3}, { 5,    29,  4}, 
  573.   { 5,    28, -4}, { 5,    27,  5}, { 5,    26, -5}, { 5,    24,  6}, 
  574.   { 5,    23, -6}, { 5,    21,  7}, { 5,    20, -7}, { 5,    18,  8}, 
  575.   { 5,    17, -8}, { 5,    14,  9}, { 5,     7, -9}, { 5,     6, 10}, 
  576.   { 6,    61,-10}, { 6,    50, 11}, { 6,    45,-11}, { 6,    38, 12}, 
  577.   { 6,    33,-12}, { 6,    31, 13}, { 6,    30,-13}, { 7,   120, 14}, 
  578.   { 7,   103,-14}, { 7,    89, 15}, { 7,    88,-15}, { 7,    65, 16}, 
  579.   { 7,    64,-16}, { 8,   205, 17}, { 8,   204,-17}, { 8,   157, 18}, 
  580.   { 8,   156,-18}, { 9,   486, 19}, { 9,   485,-19}, { 9,   318, 20}, 
  581.   { 9,   317,-20}, {10,   975, 21}, {10,   974,-21}, {10,   639, 22}, 
  582.   {10,   638,-22}, {11,  1939, 23}, {11,  1938,-23}, {11,  1936, 24}, 
  583.   {11,  1267,-24}, {11,  1264, 25}, {12,  3875,-25}, {12,  2532, 26}, 
  584.   {12,  2531,-26}, {13,  7749, 27}, {13,  7748,-27}, {13,  5061, 28}, 
  585.   {13,  5060,-28}, {14, 10133, 29}, {14, 10132,-29}, {15, 20269, 30}, 
  586.   {15, 20268,-30}, {16, 40543, 31}, {16, 40542,-31}, {16, 40541, 32}, 
  587.   {16, 40540,-32}, { 0,     0,  0}
  588. };
  589. huff_entry_t bitalloc_b_65[] =
  590. {
  591.   { 4,     4,  0}, { 4,     2,  1}, { 4,     1, -1}, { 5,    30,  2}, 
  592.   { 5,    29, -2}, { 5,    26,  3}, { 5,    25, -3}, { 5,    23,  4}, 
  593.   { 5,    22, -4}, { 5,    19,  5}, { 5,    18, -5}, { 5,    16,  6}, 
  594.   { 5,    15, -6}, { 5,    12,  7}, { 5,    11, -7}, { 5,     7,  8}, 
  595.   { 5,     6, -8}, { 6,    63,  9}, { 6,    62, -9}, { 6,    56, 10}, 
  596.   { 6,    55,-10}, { 6,    49, 11}, { 6,    48,-11}, { 6,    41, 12}, 
  597.   { 6,    40,-12}, { 6,    34, 13}, { 6,    29,-13}, { 6,    26, 14}, 
  598.   { 6,    21,-14}, { 6,    20, 15}, { 6,     3,-15}, { 6,     0, 16}, 
  599.   { 7,   115,-16}, { 7,   109, 17}, { 7,   108,-17}, { 7,    86, 18}, 
  600.   { 7,    85,-18}, { 7,    70, 19}, { 7,    57,-19}, { 7,    56, 20}, 
  601.   { 7,    55,-20}, { 7,     4, 21}, { 7,     3,-21}, { 8,   229, 22}, 
  602.   { 8,   228,-22}, { 8,   175, 23}, { 8,   174,-23}, { 8,   143, 24}, 
  603.   { 8,   142,-24}, { 8,   108, 25}, { 8,    11,-25}, { 8,    10, 26}, 
  604.   { 8,     5,-26}, { 9,   339, 27}, { 9,   338,-27}, { 9,   336, 28}, 
  605.   { 9,   219,-28}, { 9,     9, 29}, { 9,     8,-29}, {10,   674, 30}, 
  606.   {10,   437,-30}, {10,   436, 31}, {11,  1351,-31}, {12,  2701, 32}, 
  607.   {12,  2700,-32}, { 0,     0,  0}
  608. };
  609. huff_entry_t bitalloc_c_65[] =
  610. {
  611.   { 5,    28,  0}, { 5,    25,  1}, { 5,    24, -1}, { 5,    23,  2}, 
  612.   { 5,    22, -2}, { 5,    19,  3}, { 5,    18, -3}, { 5,    16,  4}, 
  613.   { 5,    15, -4}, { 5,    13,  5}, { 5,    12, -5}, { 5,    10,  6}, 
  614.   { 5,     9, -6}, { 5,     7,  7}, { 5,     6, -7}, { 5,     4,  8}, 
  615.   { 5,     3, -8}, { 5,     1,  9}, { 5,     0, -9}, { 6,    62, 10}, 
  616.   { 6,    61,-10}, { 6,    59, 11}, { 6,    58,-11}, { 6,    54, 12}, 
  617.   { 6,    53,-12}, { 6,    43, 13}, { 6,    42,-13}, { 6,    40, 14}, 
  618.   { 6,    35,-14}, { 6,    29, 15}, { 6,    28,-15}, { 6,    17, 16}, 
  619.   { 6,    16,-16}, { 6,    11, 17}, { 6,    10,-17}, { 6,     4, 18}, 
  620.   { 7,   127,-18}, { 7,   121, 19}, { 7,   120,-19}, { 7,   110, 20}, 
  621.   { 7,   105,-20}, { 7,    83, 21}, { 7,    82,-21}, { 7,    68, 22}, 
  622.   { 7,    47,-22}, { 7,    46, 23}, { 7,    45,-23}, { 7,    11, 24}, 
  623.   { 7,    10,-24}, { 8,   252, 25}, { 8,   223,-25}, { 8,   209, 26}, 
  624.   { 8,   208,-26}, { 8,   138, 27}, { 8,    89,-27}, { 8,    88, 28}, 
  625.   { 9,   507,-28}, { 9,   445, 29}, { 9,   444,-29}, { 9,   278, 30}, 
  626.   {10,  1013,-30}, {10,  1012, 31}, {10,   559,-31}, {11,  1117, 32}, 
  627.   {11,  1116,-32}, { 0,     0,  0}
  628. };
  629. huff_entry_t bitalloc_d_65[] =
  630. {
  631.   { 3,     4,  0}, { 3,     1,  1}, { 3,     0, -1}, { 4,    13,  2}, 
  632.   { 4,    12, -2}, { 4,     7,  3}, { 4,     6, -3}, { 5,    31,  4}, 
  633.   { 5,    30, -4}, { 5,    23,  5}, { 5,    22, -5}, { 5,    11,  6}, 
  634.   { 5,    10, -6}, { 6,    59,  7}, { 6,    58, -7}, { 6,    43,  8}, 
  635.   { 6,    42, -8}, { 6,    19,  9}, { 6,    18, -9}, { 7,   115, 10}, 
  636.   { 7,   114,-10}, { 7,    83, 11}, { 7,    82,-11}, { 7,    35, 12}, 
  637.   { 7,    34,-12}, { 8,   227, 13}, { 8,   226,-13}, { 8,   163, 14}, 
  638.   { 8,   162,-14}, { 8,   160, 15}, { 8,    67,-15}, { 8,    64, 16}, 
  639.   { 9,   451,-16}, { 9,   448, 17}, { 9,   323,-17}, { 9,   132, 18}, 
  640.   { 9,   131,-18}, {10,   900, 19}, {10,   899,-19}, {10,   644, 20}, 
  641.   {10,   267,-20}, {10,   261, 21}, {10,   260,-21}, {11,  1797, 22}, 
  642.   {11,  1796,-22}, {11,   533, 23}, {11,   532,-23}, {12,  3605, 24}, 
  643.   {12,  3604,-24}, {12,  2582, 25}, {12,  2581,-25}, {13,  7215, 26}, 
  644.   {13,  7214,-26}, {13,  5167, 27}, {13,  5166,-27}, {13,  5160, 28}, 
  645.   {14, 14427,-28}, {14, 10323, 29}, {14, 10322,-29}, {15, 28853, 30}, 
  646.   {15, 28852,-30}, {15, 28851, 31}, {15, 28850,-31}, {15, 28849, 32}, 
  647.   {15, 28848,-32}, { 0,     0,  0}
  648. };
  649. huff_entry_t bitalloc_e_65[] =
  650. {
  651.   { 3,     4,  0}, { 3,     0,  1}, { 4,    15, -1}, { 4,     7,  2}, 
  652.   { 4,     6, -2}, { 5,    29,  3}, { 5,    28, -3}, { 5,    23,  4}, 
  653.   { 5,    22, -4}, { 5,    10,  5}, { 5,     9, -5}, { 5,     6,  6}, 
  654.   { 5,     5, -6}, { 6,    54,  7}, { 6,    53, -7}, { 6,    48,  8}, 
  655.   { 6,    43, -8}, { 6,    40,  9}, { 6,    23, -9}, { 6,    16, 10}, 
  656.   { 6,    15,-10}, { 6,     9, 11}, { 6,     8,-11}, { 7,   105, 12}, 
  657.   { 7,   104,-12}, { 7,   100, 13}, { 7,    99,-13}, { 7,    84, 14}, 
  658.   { 7,    83,-14}, { 7,    45, 15}, { 7,    44,-15}, { 7,    29, 16}, 
  659.   { 7,    28,-16}, { 8,   221, 17}, { 8,   220,-17}, { 8,   206, 18}, 
  660.   { 8,   205,-18}, { 8,   202, 19}, { 8,   197,-19}, { 8,   171, 20}, 
  661.   { 8,   170,-20}, { 8,   164, 21}, { 8,    71,-21}, { 8,    69, 22}, 
  662.   { 8,    68,-22}, { 9,   446, 23}, { 9,   445,-23}, { 9,   415, 24}, 
  663.   { 9,   414,-24}, { 9,   408, 25}, { 9,   407,-25}, { 9,   393, 26}, 
  664.   { 9,   392,-26}, { 9,   331, 27}, { 9,   330,-27}, { 9,   141, 28}, 
  665.   { 9,   140,-28}, {10,   895, 29}, {10,   894,-29}, {10,   889, 30}, 
  666.   {10,   888,-30}, {10,   819, 31}, {10,   818,-31}, {10,   813, 32}, 
  667.   {10,   812,-32}, { 0,     0,  0}
  668. };
  669. huff_entry_t bitalloc_f_65[] =
  670. {
  671.   { 3,     6,  0}, { 3,     3,  1}, { 3,     2, -1}, { 4,    15,  2}, 
  672.   { 4,    14, -2}, { 4,     9,  3}, { 4,     8, -3}, { 4,     1,  4}, 
  673.   { 4,     0, -4}, { 5,    21,  5}, { 5,    20, -5}, { 5,     5,  6}, 
  674.   { 5,     4, -6}, { 6,    45,  7}, { 6,    44, -7}, { 6,    13,  8}, 
  675.   { 6,    12, -8}, { 7,    93,  9}, { 7,    92, -9}, { 7,    29, 10}, 
  676.   { 7,    28,-10}, { 8,   189, 11}, { 8,   188,-11}, { 8,    61, 12}, 
  677.   { 8,    60,-12}, { 9,   381, 13}, { 9,   380,-13}, { 9,   125, 14}, 
  678.   { 9,   124,-14}, {10,   765, 15}, {10,   764,-15}, {10,   252, 16}, 
  679.   {11,  1535,-16}, {11,  1532, 17}, {11,   511,-17}, {11,   506, 18}, 
  680.   {12,  3069,-18}, {12,  3067, 19}, {12,  3066,-19}, {12,  1015, 20}, 
  681.   {12,  1014,-20}, {13,  6136, 21}, {13,  2043,-21}, {13,  2035, 22}, 
  682.   {13,  2034,-22}, {14, 12275, 23}, {14, 12274,-23}, {14,  4085, 24}, 
  683.   {14,  4084,-24}, {14,  4083, 25}, {14,  4082,-25}, {14,  4081, 26}, 
  684.   {14,  4080,-26}, {14,  4079, 27}, {14,  4078,-27}, {14,  4077, 28}, 
  685.   {14,  4076,-28}, {14,  4075, 29}, {14,  4074,-29}, {14,  4073, 30}, 
  686.   {14,  4072,-30}, {14,  4067, 31}, {14,  4066,-31}, {14,  4065, 32}, 
  687.   {14,  4064,-32}, { 0,     0,  0}
  688. };
  689. huff_entry_t bitalloc_g_65[] =
  690. {
  691.   { 4,    14,  0}, { 4,    11,  1}, { 4,    10, -1}, { 4,     8,  2}, 
  692.   { 4,     6, -2}, { 4,     4,  3}, { 4,     3, -3}, { 4,     0,  4}, 
  693.   { 5,    31, -4}, { 5,    26,  5}, { 5,    25, -5}, { 5,    18,  6}, 
  694.   { 5,    15, -6}, { 5,    10,  7}, { 5,     5, -7}, { 5,     2,  8}, 
  695.   { 6,    61, -8}, { 6,    54,  9}, { 6,    49, -9}, { 6,    38, 10}, 
  696.   { 6,    29,-10}, { 6,    22, 11}, { 6,     9,-11}, { 6,     6, 12}, 
  697.   { 7,   121,-12}, { 7,   110, 13}, { 7,    97,-13}, { 7,    78, 14}, 
  698.   { 7,    57,-14}, { 7,    46, 15}, { 7,    17,-15}, { 7,    14, 16}, 
  699.   { 8,   241,-16}, { 8,   223, 17}, { 8,   222,-17}, { 8,   159, 18}, 
  700.   { 8,   158,-18}, { 8,    95, 19}, { 8,    94,-19}, { 8,    31, 20}, 
  701.   { 8,    30,-20}, { 9,   480, 21}, { 9,   387,-21}, { 9,   384, 22}, 
  702.   { 9,   227,-22}, { 9,   225, 23}, { 9,   224,-23}, { 9,    65, 24}, 
  703.   { 9,    64,-24}, {10,   962, 25}, {10,   773,-25}, {10,   771, 26}, 
  704.   {10,   770,-26}, {10,   452, 27}, {10,   135,-27}, {10,   133, 28}, 
  705.   {10,   132,-28}, {11,  1927, 29}, {11,  1926,-29}, {11,  1545, 30}, 
  706.   {11,  1544,-30}, {11,   907, 31}, {11,   906,-31}, {11,   269, 32}, 
  707.   {11,   268,-32}, { 0,     0,  0}
  708. };
  709. huff_entry_t bitalloc_a_129[] =
  710. {
  711.   { 4,     8,  0}, { 4,    10,  1}, { 4,     9, -1}, { 4,     0,  2}, 
  712.   { 5,    31, -2}, { 5,    24,  3}, { 5,    23, -3}, { 5,    12,  4}, 
  713.   { 5,    11, -4}, { 5,     5,  5}, { 5,     4, -5}, { 6,    60,  6}, 
  714.   { 6,    58, -6}, { 6,    54,  7}, { 6,    53, -7}, { 6,    45,  8}, 
  715.   { 6,    44, -8}, { 6,    28,  9}, { 6,    27, -9}, { 6,    19, 10}, 
  716.   { 6,    18,-10}, { 6,    14, 11}, { 6,    13,-11}, { 6,     6, 12}, 
  717.   { 6,     5,-12}, { 7,   122, 13}, { 7,   119,-13}, { 7,   113, 14}, 
  718.   { 7,   112,-14}, { 7,   104, 15}, { 7,   103,-15}, { 7,   100, 16}, 
  719.   { 7,    63,-16}, { 7,    60, 17}, { 7,    59,-17}, { 7,    52, 18}, 
  720.   { 7,    43,-18}, { 7,    40, 19}, { 7,    35,-19}, { 7,    32, 20}, 
  721.   { 7,    31,-20}, { 7,    15, 21}, { 7,    14,-21}, { 8,   247, 22}, 
  722.   { 8,   246,-22}, { 8,   231, 23}, { 8,   230,-23}, { 8,   223, 24}, 
  723.   { 8,   222,-24}, { 8,   211, 25}, { 8,   210,-25}, { 8,   203, 26}, 
  724.   { 8,   202,-26}, { 8,   123, 27}, { 8,   122,-27}, { 8,   116, 28}, 
  725.   { 8,   107,-28}, { 8,    84, 29}, { 8,    83,-29}, { 8,    68, 30}, 
  726.   { 8,    67,-30}, { 8,    60, 31}, { 8,    51,-31}, { 8,    49, 32}, 
  727.   { 8,    48,-32}, { 8,    17, 33}, { 8,    16,-33}, { 9,   474, 34}, 
  728.   { 9,   473,-34}, { 9,   458, 35}, { 9,   457,-35}, { 9,   442, 36}, 
  729.   { 9,   441,-36}, { 9,   411, 37}, { 9,   410,-37}, { 9,   251, 38}, 
  730.   { 9,   250,-38}, { 9,   248, 39}, { 9,   235,-39}, { 9,   213, 40}, 
  731.   { 9,   212,-40}, { 9,   170, 41}, { 9,   165,-41}, { 9,   139, 42}, 
  732.   { 9,   138,-42}, { 9,   132, 43}, { 9,   123,-43}, { 9,   101, 44}, 
  733.   { 9,   100,-44}, { 9,    37, 45}, { 9,    36,-45}, {10,   950, 46}, 
  734.   {10,   945,-46}, {10,   919, 47}, {10,   918,-47}, {10,   912, 48}, 
  735.   {10,   887,-48}, {10,   881, 49}, {10,   880,-49}, {10,   818, 50}, 
  736.   {10,   817,-50}, {10,   499, 51}, {10,   498,-51}, {10,   469, 52}, 
  737.   {10,   468,-52}, {10,   343, 53}, {10,   342,-53}, {10,   329, 54}, 
  738.   {10,   328,-54}, {10,   267, 55}, {10,   266,-55}, {10,   245, 56}, 
  739.   {10,   244,-56}, {10,    79, 57}, {10,    78,-57}, {10,    77, 58}, 
  740.   {10,    76,-58}, {11,  1903, 59}, {11,  1902,-59}, {11,  1889, 60}, 
  741.   {11,  1888,-60}, {11,  1827, 61}, {11,  1826,-61}, {11,  1773, 62}, 
  742.   {11,  1772,-62}, {11,  1639, 63}, {11,  1638,-63}, {11,  1633, 64}, 
  743.   {11,  1632,-64}, { 0,     0,  0}
  744. };
  745. huff_entry_t bitalloc_b_129[] =
  746. {
  747.   { 5,    10,  0}, { 5,     7,  1}, { 5,     6, -1}, { 5,     4,  2}, 
  748.   { 5,     3, -2}, { 5,     0,  3}, { 6,    63, -3}, { 6,    60,  4}, 
  749.   { 6,    59, -4}, { 6,    57,  5}, { 6,    56, -5}, { 6,    53,  6}, 
  750.   { 6,    52, -6}, { 6,    50,  7}, { 6,    49, -7}, { 6,    46,  8}, 
  751.   { 6,    45, -8}, { 6,    43,  9}, { 6,    42, -9}, { 6,    39, 10}, 
  752.   { 6,    38,-10}, { 6,    35, 11}, { 6,    34,-11}, { 6,    32, 12}, 
  753.   { 6,    31,-12}, { 6,    28, 13}, { 6,    27,-13}, { 6,    25, 14}, 
  754.   { 6,    24,-14}, { 6,    22, 15}, { 6,    19,-15}, { 6,    16, 16}, 
  755.   { 6,    11,-16}, { 6,     5, 17}, { 6,     4,-17}, { 7,   125, 18}, 
  756.   { 7,   124,-18}, { 7,   122, 19}, { 7,   117,-19}, { 7,   110, 20}, 
  757.   { 7,   109,-20}, { 7,   103, 21}, { 7,   102,-21}, { 7,    96, 22}, 
  758.   { 7,    95,-22}, { 7,    89, 23}, { 7,    88,-23}, { 7,    81, 24}, 
  759.   { 7,    80,-24}, { 7,    74, 25}, { 7,    73,-25}, { 7,    66, 26}, 
  760.   { 7,    61,-26}, { 7,    59, 27}, { 7,    58,-27}, { 7,    52, 28}, 
  761.   { 7,    47,-28}, { 7,    37, 29}, { 7,    36,-29}, { 7,    21, 30}, 
  762.   { 7,    20,-30}, { 7,     6, 31}, { 7,     5,-31}, { 8,   247, 32}, 
  763.   { 8,   246,-32}, { 8,   223, 33}, { 8,   222,-33}, { 8,   217, 34}, 
  764.   { 8,   216,-34}, { 8,   189, 35}, { 8,   188,-35}, { 8,   166, 36}, 
  765.   { 8,   165,-36}, { 8,   151, 37}, { 8,   150,-37}, { 8,   144, 38}, 
  766.   { 8,   135,-38}, { 8,   121, 39}, { 8,   120,-39}, { 8,   106, 40}, 
  767.   { 8,    93,-40}, { 8,    71, 41}, { 8,    70,-41}, { 8,    68, 42}, 
  768.   { 8,    15,-42}, { 8,     9, 43}, { 8,     8,-43}, { 9,   466, 44}, 
  769.   { 9,   465,-44}, { 9,   391, 45}, { 9,   390,-45}, { 9,   388, 46}, 
  770.   { 9,   335,-46}, { 9,   329, 47}, { 9,   328,-47}, { 9,   269, 48}, 
  771.   { 9,   268,-48}, { 9,   215, 49}, { 9,   214,-49}, { 9,   184, 50}, 
  772.   { 9,   139,-50}, { 9,    29, 51}, { 9,    28,-51}, {10,   934, 52}, 
  773.   {10,   929,-52}, {10,   779, 53}, {10,   778,-53}, {10,   668, 54}, 
  774.   {10,   583,-54}, {10,   582, 55}, {10,   581,-55}, {10,   371, 56}, 
  775.   {10,   370,-56}, {10,   276, 57}, {11,  1871,-57}, {11,  1857, 58}, 
  776.   {11,  1856,-58}, {11,  1338, 59}, {11,  1161,-59}, {11,  1160, 60}, 
  777.   {11,   555,-60}, {12,  3741, 61}, {12,  3740,-61}, {12,  2678, 62}, 
  778.   {12,  1109,-62}, {12,  1108, 63}, {13,  5359,-63}, {14, 10717, 64}, 
  779.   {14, 10716,-64}, { 0,     0,  0}
  780. };
  781. huff_entry_t bitalloc_c_129[] =
  782. {
  783.   { 6,    58,  0}, { 6,    55,  1}, { 6,    54, -1}, { 6,    52,  2}, 
  784.   { 6,    51, -2}, { 6,    49,  3}, { 6,    48, -3}, { 6,    46,  4}, 
  785.   { 6,    45, -4}, { 6,    43,  5}, { 6,    42, -5}, { 6,    40,  6}, 
  786.   { 6,    39, -6}, { 6,    37,  7}, { 6,    36, -7}, { 6,    34,  8}, 
  787.   { 6,    33, -8}, { 6,    30,  9}, { 6,    29, -9}, { 6,    27, 10}, 
  788.   { 6,    26,-10}, { 6,    24, 11}, { 6,    23,-11}, { 6,    21, 12}, 
  789.   { 6,    20,-12}, { 6,    18, 13}, { 6,    17,-13}, { 6,    14, 14}, 
  790.   { 6,    13,-14}, { 6,    12, 15}, { 6,    11,-15}, { 6,     8, 16}, 
  791.   { 6,     7,-16}, { 6,     6, 17}, { 6,     5,-17}, { 6,     3, 18}, 
  792.   { 6,     2,-18}, { 7,   127, 19}, { 7,   126,-19}, { 7,   124, 20}, 
  793.   { 7,   123,-20}, { 7,   121, 21}, { 7,   120,-21}, { 7,   118, 22}, 
  794.   { 7,   115,-22}, { 7,   113, 23}, { 7,   112,-23}, { 7,   106, 24}, 
  795.   { 7,   101,-24}, { 7,    95, 25}, { 7,    94,-25}, { 7,    88, 26}, 
  796.   { 7,    83,-26}, { 7,    77, 27}, { 7,    76,-27}, { 7,    70, 28}, 
  797.   { 7,    65,-28}, { 7,    64, 29}, { 7,    63,-29}, { 7,    56, 30}, 
  798.   { 7,    51,-30}, { 7,    45, 31}, { 7,    44,-31}, { 7,    39, 32}, 
  799.   { 7,    38,-32}, { 7,    31, 33}, { 7,    30,-33}, { 7,    20, 34}, 
  800.   { 7,    19,-34}, { 7,    18, 35}, { 7,     9,-35}, { 7,     3, 36}, 
  801.   { 7,     2,-36}, { 7,     0, 37}, { 8,   251,-37}, { 8,   245, 38}, 
  802.   { 8,   244,-38}, { 8,   238, 39}, { 8,   229,-39}, { 8,   215, 40}, 
  803.   { 8,   214,-40}, { 8,   200, 41}, { 8,   179,-41}, { 8,   165, 42}, 
  804.   { 8,   164,-42}, { 8,   143, 43}, { 8,   142,-43}, { 8,   124, 44}, 
  805.   { 8,   115,-44}, { 8,   101, 45}, { 8,   100,-45}, { 8,    66, 46}, 
  806.   { 8,    65,-46}, { 8,    43, 47}, { 8,    42,-47}, { 8,    17, 48}, 
  807.   { 8,    16,-48}, { 8,     2, 49}, { 9,   501,-49}, { 9,   479, 50}, 
  808.   { 9,   478,-50}, { 9,   456, 51}, { 9,   403,-51}, { 9,   357, 52}, 
  809.   { 9,   356,-52}, { 9,   251, 53}, { 9,   250,-53}, { 9,   228, 54}, 
  810.   { 9,   135,-54}, { 9,   129, 55}, { 9,   128,-55}, { 9,     6, 56}, 
  811.   {10,  1001,-56}, {10,  1000, 57}, {10,   915,-57}, {10,   805, 58}, 
  812.   {10,   804,-58}, {10,   458, 59}, {10,   269,-59}, {10,   268, 60}, 
  813.   {10,    15,-60}, {11,  1829, 61}, {11,  1828,-61}, {11,   918, 62}, 
  814.   {11,    29,-62}, {11,    28, 63}, {12,  1839,-63}, {13,  3677, 64}, 
  815.   {13,  3676,-64}, { 0,     0,  0}
  816. };
  817. huff_entry_t bitalloc_d_129[] =
  818. {
  819.   { 4,     9,  0}, { 4,     6,  1}, { 4,     5, -1}, { 4,     2,  2}, 
  820.   { 4,     1, -2}, { 5,    30,  3}, { 5,    29, -3}, { 5,    26,  4}, 
  821.   { 5,    25, -4}, { 5,    22,  5}, { 5,    21, -5}, { 5,    16,  6}, 
  822.   { 5,    15, -6}, { 5,     8,  7}, { 5,     7, -7}, { 5,     0,  8}, 
  823.   { 6,    63, -8}, { 6,    56,  9}, { 6,    55, -9}, { 6,    48, 10}, 
  824.   { 6,    47,-10}, { 6,    40, 11}, { 6,    35,-11}, { 6,    28, 12}, 
  825.   { 6,    19,-12}, { 6,    12, 13}, { 6,     3,-13}, { 7,   124, 14}, 
  826.   { 7,   115,-14}, { 7,   108, 15}, { 7,    99,-15}, { 7,    92, 16}, 
  827.   { 7,    83,-16}, { 7,    68, 17}, { 7,    59,-17}, { 7,    36, 18}, 
  828.   { 7,    27,-18}, { 7,     4, 19}, { 8,   251,-19}, { 8,   228, 20}, 
  829.   { 8,   219,-20}, { 8,   196, 21}, { 8,   187,-21}, { 8,   164, 22}, 
  830.   { 8,   139,-22}, { 8,   116, 23}, { 8,    75,-23}, { 8,    52, 24}, 
  831.   { 8,    11,-24}, { 9,   501, 25}, { 9,   500,-25}, { 9,   437, 26}, 
  832.   { 9,   436,-26}, { 9,   373, 27}, { 9,   372,-27}, { 9,   277, 28}, 
  833.   { 9,   276,-28}, { 9,   149, 29}, { 9,   148,-29}, { 9,    21, 30}, 
  834.   { 9,    20,-30}, {10,   917, 31}, {10,   916,-31}, {10,   789, 32}, 
  835.   {10,   788,-32}, {10,   661, 33}, {10,   660,-33}, {10,   469, 34}, 
  836.   {10,   468,-34}, {10,   214, 35}, {10,   213,-35}, {11,  1838, 36}, 
  837.   {11,  1837,-36}, {11,  1582, 37}, {11,  1581,-37}, {11,  1326, 38}, 
  838.   {11,  1325,-38}, {11,   942, 39}, {11,   941,-39}, {11,   431, 40}, 
  839.   {11,   430,-40}, {12,  3679, 41}, {12,  3678,-41}, {12,  3167, 42}, 
  840.   {12,  3166,-42}, {12,  3160, 43}, {12,  2655,-43}, {12,  2648, 44}, 
  841.   {12,  1887,-44}, {12,  1880, 45}, {12,   851,-45}, {12,   849, 46}, 
  842.   {12,   848,-46}, {13,  7346, 47}, {13,  7345,-47}, {13,  6322, 48}, 
  843.   {13,  5309,-48}, {13,  3773, 49}, {13,  3772,-49}, {13,  3762, 50}, 
  844.   {13,  1701,-50}, {14, 14695, 51}, {14, 14694,-51}, {14, 14688, 52}, 
  845.   {14, 12647,-52}, {14, 10617, 53}, {14, 10616,-53}, {14, 10596, 54}, 
  846.   {14,  7527,-54}, {14,  3401, 55}, {14,  3400,-55}, {15, 29378, 56}, 
  847.   {15, 25293,-56}, {15, 21195, 57}, {15, 21194,-57}, {15, 15053, 58}, 
  848.   {15, 15052,-58}, {16, 58759, 59}, {16, 58758,-59}, {16, 50585, 60}, 
  849.   {16, 50584,-60}, {16, 42399, 61}, {16, 42398,-61}, {16, 42397, 62}, 
  850.   {16, 42396,-62}, {16, 42395, 63}, {16, 42394,-63}, {16, 42393, 64}, 
  851.   {16, 42392,-64}, { 0,     0,  0}
  852. };
  853. huff_entry_t bitalloc_e_129[] =
  854. {
  855.   { 5,    12,  0}, { 5,    11,  1}, { 5,    10, -1}, { 5,     9,  2}, 
  856.   { 5,     8, -2}, { 5,     7,  3}, { 5,     6, -3}, { 5,     4,  4}, 
  857.   { 5,     3, -4}, { 5,     2,  5}, { 5,     1, -5}, { 5,     0,  6}, 
  858.   { 6,    63, -6}, { 6,    61,  7}, { 6,    60, -7}, { 6,    59,  8}, 
  859.   { 6,    58, -8}, { 6,    56,  9}, { 6,    55, -9}, { 6,    53, 10}, 
  860.   { 6,    52,-10}, { 6,    51, 11}, { 6,    50,-11}, { 6,    47, 12}, 
  861.   { 6,    46,-12}, { 6,    45, 13}, { 6,    44,-13}, { 6,    42, 14}, 
  862.   { 6,    41,-14}, { 6,    38, 15}, { 6,    37,-15}, { 6,    36, 16}, 
  863.   { 6,    35,-16}, { 6,    32, 17}, { 6,    31,-17}, { 6,    29, 18}, 
  864.   { 6,    28,-18}, { 6,    26, 19}, { 6,    11,-19}, { 7,   125, 20}, 
  865.   { 7,   124,-20}, { 7,   109, 21}, { 7,   108,-21}, { 7,    98, 22}, 
  866.   { 7,    97,-22}, { 7,    87, 23}, { 7,    86,-23}, { 7,    79, 24}, 
  867.   { 7,    78,-24}, { 7,    68, 25}, { 7,    67,-25}, { 7,    60, 26}, 
  868.   { 7,    55,-26}, { 7,    21, 27}, { 7,    20,-27}, { 8,   230, 28}, 
  869.   { 8,   229,-28}, { 8,   198, 29}, { 8,   193,-29}, { 8,   163, 30}, 
  870.   { 8,   162,-30}, { 8,   139, 31}, { 8,   138,-31}, { 8,   123, 32}, 
  871.   { 8,   122,-32}, { 8,   108, 33}, { 9,   463,-33}, { 9,   457, 34}, 
  872.   { 9,   456,-34}, { 9,   385, 35}, { 9,   384,-35}, { 9,   321, 36}, 
  873.   { 9,   320,-36}, { 9,   266, 37}, { 9,   265,-37}, { 9,   218, 38}, 
  874.   {10,   925,-38}, {10,   798, 39}, {10,   797,-39}, {10,   646, 40}, 
  875.   {10,   645,-40}, {10,   535, 41}, {10,   534,-41}, {10,   528, 42}, 
  876.   {10,   439,-42}, {11,  1848, 43}, {11,  1599,-43}, {11,  1592, 44}, 
  877.   {11,  1295,-44}, {11,  1288, 45}, {11,  1059,-45}, {11,   877, 46}, 
  878.   {11,   876,-46}, {12,  3197, 47}, {12,  3196,-47}, {12,  2589, 48}, 
  879.   {12,  2588,-48}, {12,  2117, 49}, {12,  2116,-49}, {13,  7398, 50}, 
  880.   {13,  7397,-50}, {13,  6374, 51}, {13,  6373,-51}, {13,  5158, 52}, 
  881.   {13,  5157,-52}, {14, 14799, 53}, {14, 14798,-53}, {14, 12751, 54}, 
  882.   {14, 12750,-54}, {14, 10318, 55}, {14, 10313,-55}, {15, 29587, 56}, 
  883.   {15, 29586,-56}, {15, 29584, 57}, {15, 25491,-57}, {15, 20625, 58}, 
  884.   {15, 20624,-58}, {16, 59171, 59}, {16, 59170,-59}, {16, 50980, 60}, 
  885.   {16, 41277,-60}, {16, 50981, 61}, {16, 41278,-61}, {16, 50978, 62}, 
  886.   {16, 41279,-62}, {16, 50979, 63}, {16, 50976,-63}, {16, 50977, 64}, 
  887.   {16, 41276,-64}, { 0,     0,  0}
  888. };
  889. huff_entry_t bitalloc_f_129[] =
  890. {
  891.   { 6,    56,  0}, { 6,    55,  1}, { 6,    54, -1}, { 6,    52,  2}, 
  892.   { 6,    51, -2}, { 6,    50,  3}, { 6,    49, -3}, { 6,    48,  4}, 
  893.   { 6,    47, -4}, { 6,    46,  5}, { 6,    45, -5}, { 6,    44,  6}, 
  894.   { 6,    43, -6}, { 6,    41,  7}, { 6,    40, -7}, { 6,    39,  8}, 
  895.   { 6,    38, -8}, { 6,    36,  9}, { 6,    35, -9}, { 6,    34, 10}, 
  896.   { 6,    33,-10}, { 6,    31, 11}, { 6,    30,-11}, { 6,    29, 12}, 
  897.   { 6,    28,-12}, { 6,    26, 13}, { 6,    25,-13}, { 6,    23, 14}, 
  898.   { 6,    22,-14}, { 6,    21, 15}, { 6,    20,-15}, { 6,    18, 16}, 
  899.   { 6,    17,-16}, { 6,    15, 17}, { 6,    14,-17}, { 6,    12, 18}, 
  900.   { 6,    11,-18}, { 6,     9, 19}, { 6,     8,-19}, { 6,     7, 20}, 
  901.   { 6,     6,-20}, { 6,     3, 21}, { 6,     2,-21}, { 6,     1, 22}, 
  902.   { 6,     0,-22}, { 7,   125, 23}, { 7,   124,-23}, { 7,   123, 24}, 
  903.   { 7,   122,-24}, { 7,   120, 25}, { 7,   119,-25}, { 7,   116, 26}, 
  904.   { 7,   115,-26}, { 7,   114, 27}, { 7,   107,-27}, { 7,    84, 28}, 
  905.   { 7,    75,-28}, { 7,    65, 29}, { 7,    64,-29}, { 7,    54, 30}, 
  906.   { 7,    49,-30}, { 7,    39, 31}, { 7,    38,-31}, { 7,    27, 32}, 
  907.   { 7,    26,-32}, { 7,    20, 33}, { 7,    11,-33}, { 7,    10, 34}, 
  908.   { 7,     9,-34}, { 8,   254, 35}, { 8,   253,-35}, { 8,   243, 36}, 
  909.   { 8,   242,-36}, { 8,   235, 37}, { 8,   234,-37}, { 8,   213, 38}, 
  910.   { 8,   212,-38}, { 8,   149, 39}, { 8,   148,-39}, { 8,   110, 40}, 
  911.   { 8,    97,-40}, { 8,    66, 41}, { 8,    65,-41}, { 8,    43, 42}, 
  912.   { 8,    42,-42}, { 8,    16, 43}, { 9,   511,-43}, { 9,   505, 44}, 
  913.   { 9,   504,-44}, { 9,   474, 45}, { 9,   473,-45}, { 9,   343, 46}, 
  914.   { 9,   342,-46}, { 9,   340, 47}, { 9,   223,-47}, { 9,   192, 48}, 
  915.   { 9,   135,-48}, { 9,   129, 49}, { 9,   128,-49}, { 9,    34, 50}, 
  916.   {10,  1021,-50}, {10,   951, 51}, {10,   950,-51}, {10,   944, 52}, 
  917.   {10,   683,-52}, {10,   445, 53}, {10,   444,-53}, {10,   269, 54}, 
  918.   {10,   268,-54}, {10,    71, 55}, {10,    70,-55}, {11,  2040, 56}, 
  919.   {11,  1891,-56}, {11,  1364, 57}, {11,   775,-57}, {11,   774, 58}, 
  920.   {11,   773,-58}, {12,  4083, 59}, {12,  4082,-59}, {12,  3780, 60}, 
  921.   {12,  2731,-60}, {12,  1545, 61}, {12,  1544,-61}, {13,  7562, 62}, 
  922.   {13,  5461,-62}, {13,  5460, 63}, {14, 15127,-63}, {15, 30253, 64}, 
  923.   {15, 30252,-64}, { 0,     0,  0}
  924. };
  925. huff_entry_t bitalloc_g_129[] =
  926. {
  927.   { 4,     0,  0}, { 5,    29,  1}, { 5,    28, -1}, { 5,    25,  2}, 
  928.   { 5,    24, -2}, { 5,    21,  3}, { 5,    20, -3}, { 5,    17,  4}, 
  929.   { 5,    16, -4}, { 5,    13,  5}, { 5,    12, -5}, { 5,     9,  6}, 
  930.   { 5,     8, -6}, { 5,     5,  7}, { 5,     4, -7}, { 6,    63,  8}, 
  931.   { 6,    62, -8}, { 6,    55,  9}, { 6,    54, -9}, { 6,    47, 10}, 
  932.   { 6,    46,-10}, { 6,    39, 11}, { 6,    38,-11}, { 6,    31, 12}, 
  933.   { 6,    30,-12}, { 6,    23, 13}, { 6,    22,-13}, { 6,    15, 14}, 
  934.   { 6,    14,-14}, { 6,     7, 15}, { 6,     6,-15}, { 7,   123, 16}, 
  935.   { 7,   122,-16}, { 7,   107, 17}, { 7,   106,-17}, { 7,    91, 18}, 
  936.   { 7,    90,-18}, { 7,    75, 19}, { 7,    74,-19}, { 7,    59, 20}, 
  937.   { 7,    58,-20}, { 7,    43, 21}, { 7,    42,-21}, { 7,    27, 22}, 
  938.   { 7,    26,-22}, { 7,    11, 23}, { 7,    10,-23}, { 7,     8, 24}, 
  939.   { 8,   243,-24}, { 8,   240, 25}, { 8,   211,-25}, { 8,   208, 26}, 
  940.   { 8,   179,-26}, { 8,   176, 27}, { 8,   147,-27}, { 8,   144, 28}, 
  941.   { 8,   115,-28}, { 8,   112, 29}, { 8,    83,-29}, { 8,    80, 30}, 
  942.   { 8,    51,-30}, { 8,    48, 31}, { 8,    19,-31}, { 9,   484, 32}, 
  943.   { 9,   483,-32}, { 9,   421, 33}, { 9,   420,-33}, { 9,   357, 34}, 
  944.   { 9,   356,-34}, { 9,   293, 35}, { 9,   292,-35}, { 9,   229, 36}, 
  945.   { 9,   228,-36}, { 9,   226, 37}, { 9,   165,-37}, { 9,   162, 38}, 
  946.   { 9,   101,-38}, { 9,    98, 39}, { 9,    37,-39}, {10,   970, 40}, 
  947.   {10,   965,-40}, {10,   839, 41}, {10,   838,-41}, {10,   711, 42}, 
  948.   {10,   710,-42}, {10,   708, 43}, {10,   583,-43}, {10,   580, 44}, 
  949.   {10,   455,-44}, {10,   329, 45}, {10,   328,-45}, {10,   201, 46}, 
  950.   {10,   200,-46}, {10,   198, 47}, {10,    73,-47}, {11,  1942, 48}, 
  951.   {11,  1929,-48}, {11,  1675, 49}, {11,  1674,-49}, {11,  1672, 50}, 
  952.   {11,  1419,-50}, {11,  1165, 51}, {11,  1164,-51}, {11,  1162, 52}, 
  953.   {11,   909,-52}, {11,   655, 53}, {11,   654,-53}, {11,   652, 54}, 
  954.   {11,   399,-54}, {11,   145, 55}, {11,   144,-55}, {12,  3886, 56}, 
  955.   {12,  3857,-56}, {12,  3347, 57}, {12,  3346,-57}, {12,  2837, 58}, 
  956.   {12,  2836,-58}, {12,  2327, 59}, {12,  2326,-59}, {12,  1817, 60}, 
  957.   {12,  1816,-60}, {12,  1307, 61}, {12,  1306,-61}, {12,   797, 62}, 
  958.   {12,   796,-62}, {13,  7775, 63}, {13,  7774,-63}, {13,  7713, 64}, 
  959.   {13,  7712,-64}, { 0,     0,  0}
  960. };
  961. huff_entry_t *bitalloc_select[11][8] =
  962. {
  963.   { 0 },
  964.   { bitalloc_a_3, 0 },
  965.   { bitalloc_a_5, bitalloc_b_5, bitalloc_c_5, 0 },
  966.   { bitalloc_a_7, bitalloc_b_7, bitalloc_c_7, 0 },
  967.   { bitalloc_a_9, bitalloc_b_9, bitalloc_c_9, 0 },
  968.   { bitalloc_a_13, bitalloc_b_13, bitalloc_c_13, 0 },
  969.   { bitalloc_a_17, bitalloc_b_17, bitalloc_c_17, bitalloc_d_17,
  970.     bitalloc_e_17, bitalloc_f_17, bitalloc_g_17, 0 },
  971.   { bitalloc_a_25, bitalloc_b_25, bitalloc_c_25, bitalloc_d_25,
  972.     bitalloc_e_25, bitalloc_f_25, bitalloc_g_25, 0 },
  973.   { bitalloc_a_33, bitalloc_b_33, bitalloc_c_33, bitalloc_d_33,
  974.     bitalloc_e_33, bitalloc_f_33, bitalloc_g_33, 0 },
  975.   { bitalloc_a_65, bitalloc_b_65, bitalloc_c_65, bitalloc_d_65,
  976.     bitalloc_e_65, bitalloc_f_65, bitalloc_g_65, 0 },
  977.   { bitalloc_a_129, bitalloc_b_129, bitalloc_c_129, bitalloc_d_129,
  978.     bitalloc_e_129, bitalloc_f_129, bitalloc_g_129, 0 },
  979. };
  980. int InverseQ( dts_state_t * state, huff_entry_t * huff )
  981. {
  982.     int value = 0;
  983.     int length = 0, j;
  984.     while( 1 )
  985.     {
  986.         length++;
  987.         value <<= 1;
  988.         value |= bitstream_get (state, 1);
  989. for( j = 0; huff[j].length != 0 && huff[j].length < length; j++ );
  990. if( huff[j].length == 0 ) break;
  991. for( ; huff[j].length == length; j++ )
  992. {
  993.     if( huff[j].code == value ) return huff[j].value;
  994. }
  995.     }
  996.     return 0;
  997. }