Index: libmpc/branches/r2d/libmpcdec/huffman.c
===================================================================
--- libmpc/branches/r2d/libmpcdec/huffman.c	(revision 161)
+++ libmpc/branches/r2d/libmpcdec/huffman.c	(revision 288)
@@ -33,41 +33,75 @@
 */
 /// \file huffman.c
-/// Implementations of sv7 huffman decoding functions.
+/// Implementations of sv7/sv8 huffman decoding functions.
 #include "huffman.h"
 
-const mpc_huffman mpc_table_HuffHdr  [10] =
-{{2147483648u,1,0},{1610612736u,3,1},{1577058304u,7,-4},{1568669696u,9,3},{1560281088u,9,4},{1543503872u,8,-5},{1476395008u,6,2},{1342177280u,5,-3},{1073741824u,4,-2},{0u,2,-1},};
-const mpc_huffman mpc_table_HuffSCFI [ 4] =
-{{2147483648u,1,1},{1610612736u,3,2},{1073741824u,3,0},{0u,2,3},};
-const mpc_huffman mpc_table_HuffDSCF [16] =
-{{4160749568u,5,5},{4026531840u,5,-4},{3758096384u,4,3},{3489660928u,4,-3},{3221225472u,4,8},{2684354560u,3,1},{2415919104u,4,0},{2281701376u,5,-5},{2214592512u,6,7},{2147483648u,6,-7},{1610612736u,3,-1},{1073741824u,3,2},{805306368u,4,4},{671088640u,5,6},{536870912u,5,-6},{0u,3,-2},};
-
-static const mpc_huffman mpc_table_HuffQ1 [2] [3*3*3] = {
-    {{3758096384u,3,13},{3690987520u,6,26},{3623878656u,6,0},{3556769792u,6,20},{3489660928u,6,6},{3221225472u,4,14},{2952790016u,4,12},{2684354560u,4,4},{2415919104u,4,22},{2348810240u,6,8},{2281701376u,6,18},{2214592512u,6,24},{2147483648u,6,2},{1879048192u,4,16},{1610612736u,4,10},{1476395008u,5,17},{1342177280u,5,9},{1207959552u,5,1},{1073741824u,5,25},{939524096u,5,5},{805306368u,5,21},{671088640u,5,3},{536870912u,5,11},{402653184u,5,15},{268435456u,5,23},{134217728u,5,19},{0u,5,7},},
-    {{2147483648u,1,13},{2113929216u,7,15},{2080374784u,7,1},{2046820352u,7,11},{2013265920u,7,7},{1979711488u,7,17},{1946157056u,7,25},{1912602624u,7,19},{1904214016u,9,8},{1895825408u,9,18},{1887436800u,9,2},{1879048192u,9,24},{1845493760u,7,3},{1811939328u,7,23},{1778384896u,7,21},{1744830464u,7,5},{1728053248u,8,0},{1711276032u,8,26},{1694498816u,8,6},{1677721600u,8,20},{1610612736u,6,9},{1342177280u,4,14},{1073741824u,4,12},{805306368u,4,4},{536870912u,4,22},{268435456u,4,16},{0u,4,10},},
-};
-static const mpc_huffman mpc_table_HuffQ2 [2] [5*5] = {
-    {{4026531840u,4,13},{3758096384u,4,17},{3489660928u,4,7},{3221225472u,4,11},{3154116608u,6,1},{3087007744u,6,23},{3053453312u,7,4},{3019898880u,7,20},{2986344448u,7,0},{2952790016u,7,24},{2818572288u,5,22},{2684354560u,5,10},{2147483648u,3,12},{2013265920u,5,2},{1879048192u,5,14},{1610612736u,4,6},{1342177280u,4,18},{1073741824u,4,8},{805306368u,4,16},{671088640u,5,9},{536870912u,5,5},{402653184u,5,15},{268435456u,5,21},{134217728u,5,19},{0u,5,3},},
-    {{4160749568u,5,18},{4026531840u,5,6},{3892314112u,5,8},{3875536896u,8,3},{3871342592u,10,24},{3867148288u,10,4},{3862953984u,10,0},{3858759680u,10,20},{3825205248u,7,23},{3791650816u,7,1},{3758096384u,7,19},{3623878656u,5,16},{3590324224u,7,15},{3556769792u,7,21},{3523215360u,7,9},{3489660928u,7,5},{3422552064u,6,2},{3355443200u,6,10},{3288334336u,6,14},{3221225472u,6,22},{2147483648u,2,12},{1610612736u,3,13},{1073741824u,3,17},{536870912u,3,11},{0u,3,7},},
-};
-static const mpc_huffman mpc_table_HuffQ3 [2] [ 7] = {
-    {{3758096384u,3,1},{3489660928u,4,3},{3221225472u,4,-3},{2684354560u,3,2},{2147483648u,3,-2},{1073741824u,2,0},{0u,2,-1},},
-    {{3221225472u,2,0},{2147483648u,2,-1},{1073741824u,2,1},{805306368u,4,-2},{671088640u,5,3},{536870912u,5,-3},{0u,3,2},},
-};
-static const mpc_huffman mpc_table_HuffQ4 [2] [ 9] = {
-    {{3758096384u,3,0},{3221225472u,3,-1},{2684354560u,3,1},{2147483648u,3,-2},{1610612736u,3,2},{1342177280u,4,-4},{1073741824u,4,4},{536870912u,3,3},{0u,3,-3},},
-    {{3758096384u,3,1},{3489660928u,4,2},{3221225472u,4,-3},{2147483648u,2,0},{1610612736u,3,-2},{1342177280u,4,3},{1207959552u,5,-4},{1073741824u,5,4},{0u,2,-1},},
-};
+
+// sv7 huffman tables
+const mpc_huffman mpc_table_HuffHdr [10] = {
+{0x8000, 1, 0}, {0x6000, 3, 1}, {0x5e00, 7, -4}, {0x5d80, 9, 3}, {0x5d00, 9, 4}, {0x5c00, 8, -5}, {0x5800, 6, 2}, {0x5000, 5, -3}, {0x4000, 4, -2}, {0x0, 2, -1}
+};
+
+const mpc_huffman mpc_table_HuffSCFI [4] = {
+	{0x8000, 1, 1}, {0x6000, 3, 2}, {0x4000, 3, 0}, {0x0, 2, 3}
+};
+
+const mpc_huffman mpc_table_HuffDSCF [16] = {
+	{0xf800, 5, 5}, {0xf000, 5, -4}, {0xe000, 4, 3}, {0xd000, 4, -3}, {0xc000, 4, 8}, {0xa000, 3, 1}, {0x9000, 4, 0}, {0x8800, 5, -5}, {0x8400, 6, 7}, {0x8000, 6, -7}, {0x6000, 3, -1}, {0x4000, 3, 2}, {0x3000, 4, 4}, {0x2800, 5, 6}, {0x2000, 5, -6}, {0x0, 3, -2}
+};
+
+static const mpc_huffman mpc_table_HuffQ1 [2] [27] = {
+	{
+		{0xe000, 3, 13}, {0xdc00, 6, 26}, {0xd800, 6, 0}, {0xd400, 6, 20}, {0xd000, 6, 6}, {0xc000, 4, 14}, {0xb000, 4, 12}, {0xa000, 4, 4}, {0x9000, 4, 22}, {0x8c00, 6, 8}, {0x8800, 6, 18}, {0x8400, 6, 24}, {0x8000, 6, 2}, {0x7000, 4, 16}, {0x6000, 4, 10}, {0x5800, 5, 17}, {0x5000, 5, 9}, {0x4800, 5, 1}, {0x4000, 5, 25}, {0x3800, 5, 5}, {0x3000, 5, 21}, {0x2800, 5, 3}, {0x2000, 5, 11}, {0x1800, 5, 15}, {0x1000, 5, 23}, {0x800, 5, 19}, {0x0, 5, 7}
+	}, {
+		{0x8000, 1, 13}, {0x7e00, 7, 15}, {0x7c00, 7, 1}, {0x7a00, 7, 11}, {0x7800, 7, 7}, {0x7600, 7, 17}, {0x7400, 7, 25}, {0x7200, 7, 19}, {0x7180, 9, 8}, {0x7100, 9, 18}, {0x7080, 9, 2}, {0x7000, 9, 24}, {0x6e00, 7, 3}, {0x6c00, 7, 23}, {0x6a00, 7, 21}, {0x6800, 7, 5}, {0x6700, 8, 0}, {0x6600, 8, 26}, {0x6500, 8, 6}, {0x6400, 8, 20}, {0x6000, 6, 9}, {0x5000, 4, 14}, {0x4000, 4, 12}, {0x3000, 4, 4}, {0x2000, 4, 22}, {0x1000, 4, 16}, {0x0, 4, 10}
+	}
+};
+
+static const mpc_huffman mpc_table_HuffQ2 [2] [25] = {
+	{
+		{0xf000, 4, 13}, {0xe000, 4, 17}, {0xd000, 4, 7}, {0xc000, 4, 11}, {0xbc00, 6, 1}, {0xb800, 6, 23}, {0xb600, 7, 4}, {0xb400, 7, 20}, {0xb200, 7, 0}, {0xb000, 7, 24}, {0xa800, 5, 22}, {0xa000, 5, 10}, {0x8000, 3, 12}, {0x7800, 5, 2}, {0x7000, 5, 14}, {0x6000, 4, 6}, {0x5000, 4, 18}, {0x4000, 4, 8}, {0x3000, 4, 16}, {0x2800, 5, 9}, {0x2000, 5, 5}, {0x1800, 5, 15}, {0x1000, 5, 21}, {0x800, 5, 19}, {0x0, 5, 3}
+	}, {
+		{0xf800, 5, 18}, {0xf000, 5, 6}, {0xe800, 5, 8}, {0xe700, 8, 3}, {0xe6c0, 10, 24}, {0xe680, 10, 4}, {0xe640, 10, 0}, {0xe600, 10, 20}, {0xe400, 7, 23}, {0xe200, 7, 1}, {0xe000, 7, 19}, {0xd800, 5, 16}, {0xd600, 7, 15}, {0xd400, 7, 21}, {0xd200, 7, 9}, {0xd000, 7, 5}, {0xcc00, 6, 2}, {0xc800, 6, 10}, {0xc400, 6, 14}, {0xc000, 6, 22}, {0x8000, 2, 12}, {0x6000, 3, 13}, {0x4000, 3, 17}, {0x2000, 3, 11}, {0x0, 3, 7}
+	}
+};
+
+static const mpc_huffman mpc_table_HuffQ3 [2] [7] = {
+	{
+		{0xe000, 3, 1}, {0xd000, 4, 3}, {0xc000, 4, -3}, {0xa000, 3, 2}, {0x8000, 3, -2}, {0x4000, 2, 0}, {0x0, 2, -1}
+	}, {
+		{0xc000, 2, 0}, {0x8000, 2, -1}, {0x4000, 2, 1}, {0x3000, 4, -2}, {0x2800, 5, 3}, {0x2000, 5, -3}, {0x0, 3, 2}
+	}
+};
+
+static const mpc_huffman mpc_table_HuffQ4 [2] [9] = {
+	{
+		{0xe000, 3, 0}, {0xc000, 3, -1}, {0xa000, 3, 1}, {0x8000, 3, -2}, {0x6000, 3, 2}, {0x5000, 4, -4}, {0x4000, 4, 4}, {0x2000, 3, 3}, {0x0, 3, -3}
+	}, {
+		{0xe000, 3, 1}, {0xd000, 4, 2}, {0xc000, 4, -3}, {0x8000, 2, 0}, {0x6000, 3, -2}, {0x5000, 4, 3}, {0x4800, 5, -4}, {0x4000, 5, 4}, {0x0, 2, -1}
+	}
+};
+
 static const mpc_huffman mpc_table_HuffQ5 [2] [15] = {
-    {{4026531840u,4,2},{3892314112u,5,5},{3825205248u,6,-7},{3758096384u,6,7},{3489660928u,4,-3},{3221225472u,4,3},{3087007744u,5,-6},{2952790016u,5,6},{2684354560u,4,-4},{2415919104u,4,4},{2147483648u,4,-5},{1610612736u,3,0},{1073741824u,3,-1},{536870912u,3,1},{0u,3,-2},},
-    {{4026531840u,4,3},{3892314112u,5,4},{3858759680u,7,6},{3841982464u,8,-7},{3825205248u,8,7},{3758096384u,6,-6},{3221225472u,3,0},{2684354560u,3,-1},{2147483648u,3,1},{1610612736u,3,-2},{1073741824u,3,2},{939524096u,5,-5},{805306368u,5,5},{536870912u,4,-4},{0u,3,-3},},
-};
+	{
+		{0xf000, 4, 2}, {0xe800, 5, 5}, {0xe400, 6, -7}, {0xe000, 6, 7}, {0xd000, 4, -3}, {0xc000, 4, 3}, {0xb800, 5, -6}, {0xb000, 5, 6}, {0xa000, 4, -4}, {0x9000, 4, 4}, {0x8000, 4, -5}, {0x6000, 3, 0}, {0x4000, 3, -1}, {0x2000, 3, 1}, {0x0, 3, -2}
+	}, {
+		{0xf000, 4, 3}, {0xe800, 5, 4}, {0xe600, 7, 6}, {0xe500, 8, -7}, {0xe400, 8, 7}, {0xe000, 6, -6}, {0xc000, 3, 0}, {0xa000, 3, -1}, {0x8000, 3, 1}, {0x6000, 3, -2}, {0x4000, 3, 2}, {0x3800, 5, -5}, {0x3000, 5, 5}, {0x2000, 4, -4}, {0x0, 3, -3}
+	}
+};
+
 static const mpc_huffman mpc_table_HuffQ6 [2] [31] = {
-    {{4160749568u,5,3},{4026531840u,5,-4},{3959422976u,6,-11},{3892314112u,6,12},{3758096384u,5,4},{3623878656u,5,6},{3489660928u,5,-5},{3355443200u,5,5},{3221225472u,5,7},{3087007744u,5,-7},{3019898880u,6,-12},{2952790016u,6,-13},{2818572288u,5,-6},{2684354560u,5,8},{2550136832u,5,-8},{2415919104u,5,9},{2281701376u,5,-9},{2214592512u,6,13},{2181038080u,7,-15},{2147483648u,7,15},{1879048192u,4,0},{1744830464u,5,-10},{1610612736u,5,10},{1342177280u,4,-1},{1073741824u,4,2},{805306368u,4,1},{536870912u,4,-2},{469762048u,6,14},{402653184u,6,-14},{268435456u,5,11},{0u,4,-3},},
-    {{4160749568u,5,-6},{4026531840u,5,6},{3758096384u,4,1},{3489660928u,4,-1},{3456106496u,7,10},{3422552064u,7,-10},{3405774848u,8,-11},{3397386240u,9,-12},{3395289088u,11,13},{3394764800u,13,15},{3394240512u,13,-14},{3393716224u,13,14},{3393191936u,13,-15},{3388997632u,10,-13},{3372220416u,8,11},{3355443200u,8,12},{3288334336u,6,-9},{3221225472u,6,9},{2952790016u,4,-2},{2684354560u,4,2},{2415919104u,4,3},{2147483648u,4,-3},{2013265920u,5,-7},{1879048192u,5,7},{1610612736u,4,-4},{1342177280u,4,4},{1207959552u,5,-8},{1073741824u,5,8},{805306368u,4,5},{536870912u,4,-5},{0u,3,0},},
-};
+	{
+		{0xf800, 5, 3}, {0xf000, 5, -4}, {0xec00, 6, -11}, {0xe800, 6, 12}, {0xe000, 5, 4}, {0xd800, 5, 6}, {0xd000, 5, -5}, {0xc800, 5, 5}, {0xc000, 5, 7}, {0xb800, 5, -7}, {0xb400, 6, -12}, {0xb000, 6, -13}, {0xa800, 5, -6}, {0xa000, 5, 8}, {0x9800, 5, -8}, {0x9000, 5, 9}, {0x8800, 5, -9}, {0x8400, 6, 13}, {0x8200, 7, -15}, {0x8000, 7, 15}, {0x7000, 4, 0}, {0x6800, 5, -10}, {0x6000, 5, 10}, {0x5000, 4, -1}, {0x4000, 4, 2}, {0x3000, 4, 1}, {0x2000, 4, -2}, {0x1c00, 6, 14}, {0x1800, 6, -14}, {0x1000, 5, 11}, {0x0, 4, -3}
+	}, {
+		{0xf800, 5, -6}, {0xf000, 5, 6}, {0xe000, 4, 1}, {0xd000, 4, -1}, {0xce00, 7, 10}, {0xcc00, 7, -10}, {0xcb00, 8, -11}, {0xca80, 9, -12}, {0xca60, 11, 13}, {0xca58, 13, 15}, {0xca50, 13, -14}, {0xca48, 13, 14}, {0xca40, 13, -15}, {0xca00, 10, -13}, {0xc900, 8, 11}, {0xc800, 8, 12}, {0xc400, 6, -9}, {0xc000, 6, 9}, {0xb000, 4, -2}, {0xa000, 4, 2}, {0x9000, 4, 3}, {0x8000, 4, -3}, {0x7800, 5, -7}, {0x7000, 5, 7}, {0x6000, 4, -4}, {0x5000, 4, 4}, {0x4800, 5, -8}, {0x4000, 5, 8}, {0x3000, 4, 5}, {0x2000, 4, -5}, {0x0, 3, 0}
+	}
+};
+
 static const mpc_huffman mpc_table_HuffQ7 [2] [63] = {
-    {{4227858432u,6,7},{4160749568u,6,8},{4093640704u,6,9},{4026531840u,6,-8},{3959422976u,6,11},{3925868544u,7,21},{3909091328u,8,-28},{3892314112u,8,28},{3825205248u,6,-9},{3791650816u,7,-22},{3758096384u,7,-21},{3690987520u,6,-10},{3623878656u,6,-11},{3556769792u,6,10},{3489660928u,6,12},{3422552064u,6,-13},{3388997632u,7,22},{3355443200u,7,23},{3288334336u,6,-12},{3221225472u,6,13},{3154116608u,6,14},{3087007744u,6,-14},{3053453312u,7,-23},{3036676096u,8,-29},{3019898880u,8,29},{2952790016u,6,-15},{2885681152u,6,15},{2818572288u,6,16},{2751463424u,6,-16},{2717908992u,7,-24},{2684354560u,7,24},{2617245696u,6,17},{2583691264u,7,-25},{2566914048u,8,-30},{2550136832u,8,30},{2483027968u,6,-17},{2415919104u,6,18},{2348810240u,6,-18},{2315255808u,7,25},{2281701376u,7,26},{2214592512u,6,19},{2181038080u,7,-26},{2147483648u,7,-27},{2013265920u,5,2},{1946157056u,6,-19},{1879048192u,6,20},{1744830464u,5,-1},{1728053248u,8,-31},{1711276032u,8,31},{1677721600u,7,27},{1610612736u,6,-20},{1476395008u,5,1},{1342177280u,5,-5},{1207959552u,5,-3},{1073741824u,5,3},{939524096u,5,0},{805306368u,5,-2},{671088640u,5,-4},{536870912u,5,4},{402653184u,5,5},{268435456u,5,-6},{134217728u,5,6},{0u,5,-7},},
-    {{4160749568u,5,-1},{4026531840u,5,2},{3892314112u,5,-2},{3758096384u,5,3},{3741319168u,8,-20},{3737124864u,10,24},{3736862720u,14,28},{3736600576u,14,-28},{3736338432u,14,-30},{3736076288u,14,30},{3735027712u,12,-27},{3734765568u,14,29},{3734503424u,14,-29},{3734241280u,14,31},{3733979136u,14,-31},{3732930560u,12,27},{3724541952u,9,-22},{3690987520u,7,-17},{3623878656u,6,-11},{3489660928u,5,-3},{3355443200u,5,4},{3221225472u,5,-4},{3187671040u,7,17},{3170893824u,8,20},{3162505216u,9,22},{3158310912u,10,-25},{3154116608u,10,-26},{3087007744u,6,12},{2952790016u,5,5},{2818572288u,5,-5},{2684354560u,5,6},{2550136832u,5,-6},{2483027968u,6,-12},{2449473536u,7,-18},{2415919104u,7,18},{2348810240u,6,13},{2281701376u,6,-13},{2147483648u,5,-7},{2080374784u,6,14},{2063597568u,8,21},{2046820352u,8,-21},{2013265920u,7,-19},{1879048192u,5,7},{1744830464u,5,8},{1677721600u,6,-14},{1610612736u,6,-15},{1476395008u,5,-8},{1409286144u,6,15},{1375731712u,7,19},{1371537408u,10,25},{1367343104u,10,26},{1358954496u,9,-23},{1350565888u,9,23},{1342177280u,9,-24},{1207959552u,5,-9},{1073741824u,5,9},{1006632960u,6,16},{939524096u,6,-16},{805306368u,5,10},{536870912u,4,0},{402653184u,5,-10},{268435456u,5,11},{0u,4,1},},
+	{
+		{0xfc00, 6, 7}, {0xf800, 6, 8}, {0xf400, 6, 9}, {0xf000, 6, -8}, {0xec00, 6, 11}, {0xea00, 7, 21}, {0xe900, 8, -28}, {0xe800, 8, 28}, {0xe400, 6, -9}, {0xe200, 7, -22}, {0xe000, 7, -21}, {0xdc00, 6, -10}, {0xd800, 6, -11}, {0xd400, 6, 10}, {0xd000, 6, 12}, {0xcc00, 6, -13}, {0xca00, 7, 22}, {0xc800, 7, 23}, {0xc400, 6, -12}, {0xc000, 6, 13}, {0xbc00, 6, 14}, {0xb800, 6, -14}, {0xb600, 7, -23}, {0xb500, 8, -29}, {0xb400, 8, 29}, {0xb000, 6, -15}, {0xac00, 6, 15}, {0xa800, 6, 16}, {0xa400, 6, -16}, {0xa200, 7, -24}, {0xa000, 7, 24}, {0x9c00, 6, 17}, {0x9a00, 7, -25}, {0x9900, 8, -30}, {0x9800, 8, 30}, {0x9400, 6, -17}, {0x9000, 6, 18}, {0x8c00, 6, -18}, {0x8a00, 7, 25}, {0x8800, 7, 26}, {0x8400, 6, 19}, {0x8200, 7, -26}, {0x8000, 7, -27}, {0x7800, 5, 2}, {0x7400, 6, -19}, {0x7000, 6, 20}, {0x6800, 5, -1}, {0x6700, 8, -31}, {0x6600, 8, 31}, {0x6400, 7, 27}, {0x6000, 6, -20}, {0x5800, 5, 1}, {0x5000, 5, -5}, {0x4800, 5, -3}, {0x4000, 5, 3}, {0x3800, 5, 0}, {0x3000, 5, -2}, {0x2800, 5, -4}, {0x2000, 5, 4}, {0x1800, 5, 5}, {0x1000, 5, -6}, {0x800, 5, 6}, {0x0, 5, -7}
+	}, {
+		{0xf800, 5, -1}, {0xf000, 5, 2}, {0xe800, 5, -2}, {0xe000, 5, 3}, {0xdf00, 8, -20}, {0xdec0, 10, 24}, {0xdebc, 14, 28}, {0xdeb8, 14, -28}, {0xdeb4, 14, -30}, {0xdeb0, 14, 30}, {0xdea0, 12, -27}, {0xde9c, 14, 29}, {0xde98, 14, -29}, {0xde94, 14, 31}, {0xde90, 14, -31}, {0xde80, 12, 27}, {0xde00, 9, -22}, {0xdc00, 7, -17}, {0xd800, 6, -11}, {0xd000, 5, -3}, {0xc800, 5, 4}, {0xc000, 5, -4}, {0xbe00, 7, 17}, {0xbd00, 8, 20}, {0xbc80, 9, 22}, {0xbc40, 10, -25}, {0xbc00, 10, -26}, {0xb800, 6, 12}, {0xb000, 5, 5}, {0xa800, 5, -5}, {0xa000, 5, 6}, {0x9800, 5, -6}, {0x9400, 6, -12}, {0x9200, 7, -18}, {0x9000, 7, 18}, {0x8c00, 6, 13}, {0x8800, 6, -13}, {0x8000, 5, -7}, {0x7c00, 6, 14}, {0x7b00, 8, 21}, {0x7a00, 8, -21}, {0x7800, 7, -19}, {0x7000, 5, 7}, {0x6800, 5, 8}, {0x6400, 6, -14}, {0x6000, 6, -15}, {0x5800, 5, -8}, {0x5400, 6, 15}, {0x5200, 7, 19}, {0x51c0, 10, 25}, {0x5180, 10, 26}, {0x5100, 9, -23}, {0x5080, 9, 23}, {0x5000, 9, -24}, {0x4800, 5, -9}, {0x4000, 5, 9}, {0x3c00, 6, 16}, {0x3800, 6, -16}, {0x3000, 5, 10}, {0x2000, 4, 0}, {0x1800, 5, -10}, {0x1000, 5, 11}, {0x0, 4, 1}
+	}
 };
 
@@ -77,58 +111,59 @@
 };
 
+
+// sv8 huffman tables
 const mpc_huffman mpc_table_HuffSCFI_1 [4] = {
-	{0x80000000, 1, 2}, {0x40000000, 2, 3}, {0x20000000, 3, 1}, {0x00000000, 3, 0}
+	{0x8000, 1, 2}, {0x4000, 2, 3}, {0x2000, 3, 1}, {0x0000, 3, 0}
 };
 
 const mpc_huffman mpc_table_HuffSCFI_2 [16] = {
-	{0xc0000000, 2, 15}, {0x80000000, 2, 10}, {0x60000000, 3, 14}, {0x40000000, 3, 11}, {0x38000000, 5, 13}, {0x30000000, 5, 9}, {0x28000000, 5, 7}, {0x20000000, 5, 6}, {0x18000000, 5, 5}, {0x14000000, 6, 12}, {0x10000000, 6, 8}, {0x0c000000, 6, 3}, {0x08000000, 6, 2}, {0x04000000, 6, 0}, {0x02000000, 7, 4}, {0x00000000, 7, 1}
+	{0xc000, 2, 15}, {0x8000, 2, 10}, {0x6000, 3, 14}, {0x4000, 3, 11}, {0x3800, 5, 13}, {0x3000, 5, 9}, {0x2800, 5, 7}, {0x2000, 5, 6}, {0x1800, 5, 5}, {0x1400, 6, 12}, {0x1000, 6, 8}, {0x0c00, 6, 3}, {0x0800, 6, 2}, {0x0400, 6, 0}, {0x0200, 7, 4}, {0x0000, 7, 1}
 };
 
 const mpc_huffman mpc_table_HuffDSCF_1 [64] = {
-	{0xe0000000, 3, 35}, {0xc0000000, 3, 34}, {0xa0000000, 3, 33}, {0x90000000, 4, 36}, {0x80000000, 4, 32}, {0x70000000, 4, 30}, {0x60000000, 4, 29}, {0x50000000, 4, 27}, {0x40000000, 4, 26}, {0x38000000, 5, 37}, {0x30000000, 5, 28}, {0x28000000, 5, 25}, {0x24000000, 6, 39}, {0x20000000, 6, 38}, {0x1c000000, 6, 24}, {0x18000000, 6, 23}, {0x16000000, 7, 40}, {0x14000000, 7, 22}, {0x12000000, 7, 21}, {0x10000000, 7, 20}, {0x0e000000, 7, 19}, {0x0d000000, 8, 43}, {0x0c000000, 8, 42}, {0x0b000000, 8, 41}, {0x0a000000, 8, 18}, {0x09000000, 8, 17}, {0x08000000, 8, 16}, {0x07000000, 8, 15}, {0x06800000, 9, 46}, {0x06000000, 9, 45}, {0x05800000, 9, 44}, {0x05000000, 9, 14}, {0x04800000, 9, 13}, {0x04000000, 9, 12}, {0x03800000, 9, 11}, {0x03400000, 10, 49}, {0x03000000, 10, 48}, {0x02c00000, 10, 47}, {0x02800000, 10, 31}, {0x02400000, 10, 10}, {0x02000000, 10, 9}, {0x01c00000, 10, 8}, {0x01800000, 10, 7}, {0x01400000, 10, 6}, {0x01200000, 11, 52}, {0x01000000, 11, 51}, {0x00e00000, 11, 50}, {0x00c00000, 11, 5}, {0x00a00000, 11, 4}, {0x00800000, 11, 3}, {0x00700000, 12, 54}, {0x00600000, 12, 53}, {0x00500000, 12, 2}, {0x00400000, 12, 1}, {0x00300000, 12, 0}, {0x00280000, 13, 57}, {0x00200000, 13, 56}, {0x00180000, 13, 55}, {0x00140000, 14, 63}, {0x00100000, 14, 62}, {0x000c0000, 14, 61}, {0x00080000, 14, 60}, {0x00040000, 14, 59}, {0x00000000, 14, 58}
+	{0xe000, 3, 35}, {0xc000, 3, 34}, {0xa000, 3, 33}, {0x9000, 4, 36}, {0x8000, 4, 32}, {0x7000, 4, 30}, {0x6000, 4, 29}, {0x5000, 4, 27}, {0x4000, 4, 26}, {0x3800, 5, 37}, {0x3000, 5, 28}, {0x2800, 5, 25}, {0x2400, 6, 39}, {0x2000, 6, 38}, {0x1c00, 6, 24}, {0x1800, 6, 23}, {0x1600, 7, 40}, {0x1400, 7, 22}, {0x1200, 7, 21}, {0x1000, 7, 20}, {0x0e00, 7, 19}, {0x0d00, 8, 43}, {0x0c00, 8, 42}, {0x0b00, 8, 41}, {0x0a00, 8, 18}, {0x0900, 8, 17}, {0x0800, 8, 16}, {0x0700, 8, 15}, {0x0680, 9, 46}, {0x0600, 9, 45}, {0x0580, 9, 44}, {0x0500, 9, 14}, {0x0480, 9, 13}, {0x0400, 9, 12}, {0x0380, 9, 11}, {0x0340, 10, 49}, {0x0300, 10, 48}, {0x02c0, 10, 47}, {0x0280, 10, 31}, {0x0240, 10, 10}, {0x0200, 10, 9}, {0x01c0, 10, 8}, {0x0180, 10, 7}, {0x0140, 10, 6}, {0x0120, 11, 52}, {0x0100, 11, 51}, {0x00e0, 11, 50}, {0x00c0, 11, 5}, {0x00a0, 11, 4}, {0x0080, 11, 3}, {0x0070, 12, 54}, {0x0060, 12, 53}, {0x0050, 12, 2}, {0x0040, 12, 1}, {0x0030, 12, 0}, {0x0028, 13, 57}, {0x0020, 13, 56}, {0x0018, 13, 55}, {0x0014, 14, 63}, {0x0010, 14, 62}, {0x000c, 14, 61}, {0x0008, 14, 60}, {0x0004, 14, 59}, {0x0000, 14, 58}
 };
 
 const mpc_huffman mpc_table_HuffDSCF_2 [65] = {
-	{0xe0000000, 3, 33}, {0xc0000000, 3, 32}, {0xa0000000, 3, 31}, {0x80000000, 3, 30}, {0x60000000, 3, 29}, {0x50000000, 4, 34}, {0x40000000, 4, 28}, {0x30000000, 4, 27}, {0x28000000, 5, 36}, {0x20000000, 5, 35}, {0x18000000, 5, 26}, {0x14000000, 6, 37}, {0x10000000, 6, 25}, {0x0e000000, 7, 38}, {0x0c000000, 7, 24}, {0x0a000000, 7, 23}, {0x09000000, 8, 40}, {0x08000000, 8, 39}, {0x07000000, 8, 22}, {0x06000000, 8, 21}, {0x05800000, 9, 42}, {0x05000000, 9, 41}, {0x04800000, 9, 20}, {0x04000000, 9, 19}, {0x03800000, 9, 18}, {0x03400000, 10, 45}, {0x03000000, 10, 44}, {0x02c00000, 10, 43}, {0x02800000, 10, 17}, {0x02400000, 10, 16}, {0x02000000, 10, 15}, {0x01c00000, 10, 14}, {0x01a00000, 11, 48}, {0x01800000, 11, 47}, {0x01600000, 11, 46}, {0x01400000, 11, 13}, {0x01200000, 11, 12}, {0x01000000, 11, 11}, {0x00e00000, 11, 10}, {0x00d00000, 12, 64}, {0x00c00000, 12, 52}, {0x00b00000, 12, 51}, {0x00a00000, 12, 50}, {0x00900000, 12, 49}, {0x00800000, 12, 9}, {0x00700000, 12, 8}, {0x00600000, 12, 7}, {0x00500000, 12, 6}, {0x00480000, 13, 55}, {0x00400000, 13, 54}, {0x00380000, 13, 53}, {0x00300000, 13, 5}, {0x00280000, 13, 4}, {0x00200000, 13, 3}, {0x001c0000, 14, 58}, {0x00180000, 14, 57}, {0x00140000, 14, 56}, {0x00100000, 14, 2}, {0x000c0000, 14, 1}, {0x000a0000, 15, 63}, {0x00080000, 15, 62}, {0x00060000, 15, 61}, {0x00040000, 15, 60}, {0x00020000, 15, 59}, {0x00000000, 15, 0}
+	{0xe000, 3, 33}, {0xc000, 3, 32}, {0xa000, 3, 31}, {0x8000, 3, 30}, {0x6000, 3, 29}, {0x5000, 4, 34}, {0x4000, 4, 28}, {0x3000, 4, 27}, {0x2800, 5, 36}, {0x2000, 5, 35}, {0x1800, 5, 26}, {0x1400, 6, 37}, {0x1000, 6, 25}, {0x0e00, 7, 38}, {0x0c00, 7, 24}, {0x0a00, 7, 23}, {0x0900, 8, 40}, {0x0800, 8, 39}, {0x0700, 8, 22}, {0x0600, 8, 21}, {0x0580, 9, 42}, {0x0500, 9, 41}, {0x0480, 9, 20}, {0x0400, 9, 19}, {0x0380, 9, 18}, {0x0340, 10, 45}, {0x0300, 10, 44}, {0x02c0, 10, 43}, {0x0280, 10, 17}, {0x0240, 10, 16}, {0x0200, 10, 15}, {0x01c0, 10, 14}, {0x01a0, 11, 48}, {0x0180, 11, 47}, {0x0160, 11, 46}, {0x0140, 11, 13}, {0x0120, 11, 12}, {0x0100, 11, 11}, {0x00e0, 11, 10}, {0x00d0, 12, 64}, {0x00c0, 12, 52}, {0x00b0, 12, 51}, {0x00a0, 12, 50}, {0x0090, 12, 49}, {0x0080, 12, 9}, {0x0070, 12, 8}, {0x0060, 12, 7}, {0x0050, 12, 6}, {0x0048, 13, 55}, {0x0040, 13, 54}, {0x0038, 13, 53}, {0x0030, 13, 5}, {0x0028, 13, 4}, {0x0020, 13, 3}, {0x001c, 14, 58}, {0x0018, 14, 57}, {0x0014, 14, 56}, {0x0010, 14, 2}, {0x000c, 14, 1}, {0x000a, 15, 63}, {0x0008, 15, 62}, {0x0006, 15, 61}, {0x0004, 15, 60}, {0x0002, 15, 59}, {0x0000, 15, 0}
 };
 
 const mpc_huffman mpc_table_HuffBands [33] = {
-	{0x80000000, 1, 0}, {0x40000000, 2, 32}, {0x20000000, 3, 1}, {0x18000000, 5, 31}, {0x10000000, 5, 2}, {0x0c000000, 6, 30}, {0x08000000, 6, 3}, {0x06000000, 7, 4}, {0x05000000, 8, 29}, {0x04000000, 8, 6}, {0x03000000, 8, 5}, {0x02800000, 9, 28}, {0x02000000, 9, 7}, {0x01c00000, 10, 27}, {0x01800000, 10, 26}, {0x01400000, 10, 8}, {0x01200000, 11, 25}, {0x01000000, 11, 24}, {0x00e00000, 11, 23}, {0x00c00000, 11, 9}, {0x00b00000, 12, 22}, {0x00a00000, 12, 21}, {0x00900000, 12, 20}, {0x00800000, 12, 18}, {0x00700000, 12, 17}, {0x00600000, 12, 16}, {0x00500000, 12, 15}, {0x00400000, 12, 14}, {0x00300000, 12, 12}, {0x00200000, 12, 11}, {0x00100000, 12, 10}, {0x00080000, 13, 19}, {0x00000000, 13, 13}
+	{0x8000, 1, 0}, {0x4000, 2, 32}, {0x2000, 3, 1}, {0x1800, 5, 31}, {0x1000, 5, 2}, {0x0c00, 6, 30}, {0x0800, 6, 3}, {0x0600, 7, 4}, {0x0500, 8, 29}, {0x0400, 8, 6}, {0x0300, 8, 5}, {0x0280, 9, 28}, {0x0200, 9, 7}, {0x01c0, 10, 27}, {0x0180, 10, 26}, {0x0140, 10, 8}, {0x0120, 11, 25}, {0x0100, 11, 24}, {0x00e0, 11, 23}, {0x00c0, 11, 9}, {0x00b0, 12, 22}, {0x00a0, 12, 21}, {0x0090, 12, 20}, {0x0080, 12, 18}, {0x0070, 12, 17}, {0x0060, 12, 16}, {0x0050, 12, 15}, {0x0040, 12, 14}, {0x0030, 12, 12}, {0x0020, 12, 11}, {0x0010, 12, 10}, {0x0008, 13, 19}, {0x0000, 13, 13}
 };
 
 const mpc_huffman mpc_table_HuffRes [2] [17] = {
 	{
-		{0x80000000, 1, 0}, {0x40000000, 2, 1}, {0x20000000, 3, 16}, {0x10000000, 4, 2}, {0x08000000, 5, 3}, {0x04000000, 6, 4}, {0x02000000, 7, 5}, {0x01000000, 8, 15}, {0x00800000, 9, 6}, {0x00400000, 10, 7}, {0x00200000, 11, 8}, {0x00100000, 12, 9}, {0x00080000, 13, 10}, {0x00040000, 14, 11}, {0x00020000, 15, 12}, {0x00010000, 16, 14}, {0x00000000, 16, 13}
-	}, {
-		{0xc0000000, 2, 16}, {0x80000000, 2, 1}, {0x40000000, 2, 0}, {0x20000000, 3, 2}, {0x10000000, 4, 15}, {0x08000000, 5, 3}, {0x04000000, 6, 14}, {0x02000000, 7, 4}, {0x01000000, 8, 5}, {0x00800000, 9, 13}, {0x00400000, 10, 6}, {0x00200000, 11, 12}, {0x00100000, 12, 7}, {0x000c0000, 14, 11}, {0x00080000, 14, 10}, {0x00040000, 14, 9}, {0x00000000, 14, 8}
+		{0x8000, 1, 0}, {0x4000, 2, 1}, {0x2000, 3, 16}, {0x1000, 4, 2}, {0x0800, 5, 3}, {0x0400, 6, 4}, {0x0200, 7, 5}, {0x0100, 8, 15}, {0x0080, 9, 6}, {0x0040, 10, 7}, {0x0020, 11, 8}, {0x0010, 12, 9}, {0x0008, 13, 10}, {0x0004, 14, 11}, {0x0002, 15, 12}, {0x0001, 16, 14}, {0x0000, 16, 13}
+	}, {
+		{0xc000, 2, 16}, {0x8000, 2, 1}, {0x4000, 2, 0}, {0x2000, 3, 2}, {0x1000, 4, 15}, {0x0800, 5, 3}, {0x0400, 6, 14}, {0x0200, 7, 4}, {0x0100, 8, 5}, {0x0080, 9, 13}, {0x0040, 10, 6}, {0x0020, 11, 12}, {0x0010, 12, 7}, {0x000c, 14, 11}, {0x0008, 14, 10}, {0x0004, 14, 9}, {0x0000, 14, 8}
 	}
 };
 
 static const mpc_huffman mpc_table_HuffQ1_8 [19] = {
-	{0xe0000000, 3, 7}, {0xc0000000, 3, 6}, {0xa0000000, 3, 5}, {0x80000000, 3, 4}, {0x60000000, 3, 3}, {0x50000000, 4, 10}, {0x40000000, 4, 9}, {0x30000000, 4, 8}, {0x20000000, 4, 2}, {0x10000000, 4, 1}, {0x08000000, 5, 11}, {0x04000000, 6, 0}, {0x02000000, 7, 12}, {0x01000000, 8, 13}, {0x00800000, 9, 14}, {0x00400000, 10, 15}, {0x00200000, 11, 16}, {0x00100000, 12, 18}, {0x00000000, 12, 17}
+	{0xe000, 3, 7}, {0xc000, 3, 6}, {0xa000, 3, 5}, {0x8000, 3, 4}, {0x6000, 3, 3}, {0x5000, 4, 10}, {0x4000, 4, 9}, {0x3000, 4, 8}, {0x2000, 4, 2}, {0x1000, 4, 1}, {0x0800, 5, 11}, {0x0400, 6, 0}, {0x0200, 7, 12}, {0x0100, 8, 13}, {0x0080, 9, 14}, {0x0040, 10, 15}, {0x0020, 11, 16}, {0x0010, 12, 18}, {0x0000, 12, 17}
 };
 
 static const mpc_huffman mpc_table_HuffQ2_8 [2] [5*5*5] = {
 	{
-		{0xe0000000, 3, 62}, {0xd0000000, 4, 87}, {0xc0000000, 4, 67}, {0xb0000000, 4, 63}, {0xa0000000, 4, 61}, {0x90000000, 4, 57}, {0x80000000, 4, 37}, {0x7c000000, 6, 93}, {0x78000000, 6, 92}, {0x74000000, 6, 88}, {0x70000000, 6, 86}, {0x6c000000, 6, 83}, {0x68000000, 6, 82}, {0x64000000, 6, 81}, {0x60000000, 6, 68}, {0x5c000000, 6, 66}, {0x58000000, 6, 58}, {0x54000000, 6, 56}, {0x50000000, 6, 42}, {0x4c000000, 6, 41}, {0x48000000, 6, 38}, {0x44000000, 6, 36}, {0x40000000, 6, 32}, {0x3c000000, 6, 31}, {0x3a000000, 7, 112}, {0x38000000, 7, 91}, {0x36000000, 7, 72}, {0x34000000, 7, 64}, {0x32000000, 7, 60}, {0x30000000, 7, 52}, {0x2e000000, 7, 43}, {0x2c000000, 7, 33}, {0x2a000000, 7, 12}, {0x29000000, 8, 117}, {0x28000000, 8, 113}, {0x27000000, 8, 111}, {0x26000000, 8, 107}, {0x25000000, 8, 97}, {0x24000000, 8, 89}, {0x23000000, 8, 85}, {0x22000000, 8, 77}, {0x21000000, 8, 73}, {0x20000000, 8, 71}, {0x1f000000, 8, 69}, {0x1e000000, 8, 65}, {0x1d000000, 8, 59}, {0x1c000000, 8, 55}, {0x1b000000, 8, 53}, {0x1a000000, 8, 51}, {0x19000000, 8, 47}, {0x18000000, 8, 39}, {0x17000000, 8, 35}, {0x16000000, 8, 27}, {0x15000000, 8, 17}, {0x14000000, 8, 13}, {0x13000000, 8, 11}, {0x12000000, 8, 7}, {0x11800000, 9, 118}, {0x11000000, 9, 116}, {0x10800000, 9, 108}, {0x10000000, 9, 106}, {0x0f800000, 9, 98}, {0x0f000000, 9, 96}, {0x0e800000, 9, 94}, {0x0e000000, 9, 90}, {0x0d800000, 9, 84}, {0x0d000000, 9, 80}, {0x0c800000, 9, 78}, {0x0c000000, 9, 76}, {0x0b800000, 9, 48}, {0x0b000000, 9, 46}, {0x0a800000, 9, 44}, {0x0a000000, 9, 40}, {0x09800000, 9, 34}, {0x09000000, 9, 30}, {0x08800000, 9, 28}, {0x08000000, 9, 26}, {0x07800000, 9, 18}, {0x07000000, 9, 16}, {0x06800000, 9, 8}, {0x06000000, 9, 6}, {0x05c00000, 10, 122}, {0x05800000, 10, 110}, {0x05400000, 10, 102}, {0x05000000, 10, 74}, {0x04c00000, 10, 70}, {0x04800000, 10, 54}, {0x04400000, 10, 50}, {0x04000000, 10, 22}, {0x03c00000, 10, 2}, {0x03a00000, 11, 123}, {0x03800000, 11, 121}, {0x03600000, 11, 119}, {0x03400000, 11, 115}, {0x03200000, 11, 114}, {0x03000000, 11, 109}, {0x02e00000, 11, 105}, {0x02c00000, 11, 103}, {0x02a00000, 11, 101}, {0x02800000, 11, 99}, {0x02600000, 11, 95}, {0x02400000, 11, 79}, {0x02200000, 11, 75}, {0x02000000, 11, 49}, {0x01e00000, 11, 45}, {0x01c00000, 11, 29}, {0x01a00000, 11, 25}, {0x01800000, 11, 23}, {0x01600000, 11, 21}, {0x01400000, 11, 19}, {0x01200000, 11, 15}, {0x01000000, 11, 14}, {0x00e00000, 11, 10}, {0x00c00000, 11, 9}, {0x00a00000, 11, 5}, {0x00800000, 11, 3}, {0x00600000, 11, 1}, {0x00500000, 12, 124}, {0x00400000, 12, 104}, {0x00300000, 12, 20}, {0x00200000, 12, 0}, {0x00180000, 13, 120}, {0x00100000, 13, 100}, {0x00080000, 13, 24}, {0x00000000, 13, 4}
-	}, {
-		{0xf0000000, 4, 62}, {0xe8000000, 5, 92}, {0xe0000000, 5, 87}, {0xd8000000, 5, 86}, {0xd0000000, 5, 82}, {0xc8000000, 5, 68}, {0xc0000000, 5, 67}, {0xb8000000, 5, 66}, {0xb0000000, 5, 63}, {0xa8000000, 5, 61}, {0xa0000000, 5, 58}, {0x98000000, 5, 57}, {0x90000000, 5, 56}, {0x88000000, 5, 42}, {0x80000000, 5, 38}, {0x78000000, 5, 37}, {0x70000000, 5, 32}, {0x6c000000, 6, 93}, {0x68000000, 6, 91}, {0x64000000, 6, 88}, {0x60000000, 6, 83}, {0x5c000000, 6, 81}, {0x58000000, 6, 43}, {0x54000000, 6, 41}, {0x50000000, 6, 36}, {0x4c000000, 6, 33}, {0x48000000, 6, 31}, {0x46000000, 7, 112}, {0x44000000, 7, 72}, {0x42000000, 7, 64}, {0x40000000, 7, 60}, {0x3e000000, 7, 52}, {0x3c000000, 7, 12}, {0x3b000000, 8, 118}, {0x3a000000, 8, 117}, {0x39000000, 8, 116}, {0x38000000, 8, 113}, {0x37000000, 8, 111}, {0x36000000, 8, 108}, {0x35000000, 8, 107}, {0x34000000, 8, 106}, {0x33000000, 8, 98}, {0x32000000, 8, 97}, {0x31000000, 8, 96}, {0x30000000, 8, 94}, {0x2f000000, 8, 90}, {0x2e000000, 8, 89}, {0x2d000000, 8, 85}, {0x2c000000, 8, 84}, {0x2b000000, 8, 80}, {0x2a000000, 8, 78}, {0x29000000, 8, 77}, {0x28000000, 8, 76}, {0x27000000, 8, 73}, {0x26000000, 8, 71}, {0x25000000, 8, 69}, {0x24000000, 8, 65}, {0x23000000, 8, 59}, {0x22000000, 8, 55}, {0x21000000, 8, 53}, {0x20000000, 8, 51}, {0x1f000000, 8, 48}, {0x1e000000, 8, 47}, {0x1d000000, 8, 46}, {0x1c000000, 8, 44}, {0x1b000000, 8, 40}, {0x1a000000, 8, 39}, {0x19000000, 8, 35}, {0x18000000, 8, 34}, {0x17000000, 8, 30}, {0x16000000, 8, 28}, {0x15000000, 8, 27}, {0x14000000, 8, 26}, {0x13000000, 8, 18}, {0x12000000, 8, 17}, {0x11000000, 8, 16}, {0x10000000, 8, 13}, {0x0f000000, 8, 11}, {0x0e000000, 8, 8}, {0x0d000000, 8, 7}, {0x0c000000, 8, 6}, {0x0b800000, 9, 122}, {0x0b000000, 9, 110}, {0x0a800000, 9, 74}, {0x0a000000, 9, 70}, {0x09800000, 9, 54}, {0x09000000, 9, 50}, {0x08800000, 9, 22}, {0x08000000, 9, 14}, {0x07800000, 9, 2}, {0x07400000, 10, 123}, {0x07000000, 10, 121}, {0x06c00000, 10, 119}, {0x06800000, 10, 115}, {0x06400000, 10, 114}, {0x06000000, 10, 109}, {0x05c00000, 10, 105}, {0x05800000, 10, 103}, {0x05400000, 10, 102}, {0x05000000, 10, 101}, {0x04c00000, 10, 99}, {0x04800000, 10, 95}, {0x04400000, 10, 79}, {0x04000000, 10, 75}, {0x03c00000, 10, 49}, {0x03800000, 10, 45}, {0x03400000, 10, 29}, {0x03000000, 10, 25}, {0x02c00000, 10, 23}, {0x02800000, 10, 21}, {0x02400000, 10, 19}, {0x02000000, 10, 15}, {0x01c00000, 10, 10}, {0x01800000, 10, 9}, {0x01400000, 10, 5}, {0x01000000, 10, 3}, {0x00c00000, 10, 1}, {0x00a00000, 11, 124}, {0x00800000, 11, 104}, {0x00600000, 11, 20}, {0x00400000, 11, 0}, {0x00300000, 12, 120}, {0x00200000, 12, 100}, {0x00100000, 12, 24}, {0x00000000, 12, 4}
-	}
-};
-
-
-static const mpc_huffman mpc_table_HuffQ3_8 [49] = {
-	{0xe0000000, 3, 56576}, {0xd0000000, 4, 56593}, {0xc0000000, 4, 56592}, {0xb0000000, 4, 56577}, {0xa0000000, 4, 56591}, {0x90000000, 4, 56816}, {0x80000000, 4, 56831}, {0x78000000, 5, 56608}, {0x70000000, 5, 56607}, {0x68000000, 5, 56578}, {0x60000000, 5, 56590}, {0x58000000, 5, 56817}, {0x50000000, 5, 56800}, {0x4c000000, 6, 56610}, {0x48000000, 6, 56609}, {0x44000000, 6, 56623}, {0x40000000, 6, 56622}, {0x3c000000, 6, 56594}, {0x38000000, 6, 56606}, {0x34000000, 6, 56818}, {0x30000000, 6, 56830}, {0x2c000000, 6, 56801}, {0x28000000, 6, 56815}, {0x24000000, 6, 56814}, {0x22000000, 7, 56625}, {0x20000000, 7, 56624}, {0x1e000000, 7, 56639}, {0x1c000000, 7, 56595}, {0x1a000000, 7, 56605}, {0x18000000, 7, 56579}, {0x16000000, 7, 56589}, {0x14000000, 7, 56819}, {0x12000000, 7, 56829}, {0x10000000, 7, 56802}, {0x0e000000, 7, 56785}, {0x0c000000, 7, 56784}, {0x0a000000, 7, 56799}, {0x09000000, 8, 56626}, {0x08000000, 8, 56638}, {0x07000000, 8, 56611}, {0x06000000, 8, 56621}, {0x05000000, 8, 56803}, {0x04000000, 8, 56813}, {0x03000000, 8, 56786}, {0x02000000, 8, 56798}, {0x01800000, 9, 56627}, {0x01000000, 9, 56637}, {0x00800000, 9, 56787}, {0x00000000, 9, 56797}
-};
-
-static const mpc_huffman mpc_table_HuffQ4_8 [91] = {
-	{0xf0000000, 4, 52224}, {0xe8000000, 5, 52256}, {0xe0000000, 5, 52241}, {0xd8000000, 5, 52240}, {0xd0000000, 5, 52255}, {0xc8000000, 5, 52226}, {0xc0000000, 5, 52225}, {0xb8000000, 5, 52239}, {0xb0000000, 5, 52238}, {0xa8000000, 5, 52465}, {0xa0000000, 5, 52464}, {0x98000000, 5, 52479}, {0x90000000, 5, 52448}, {0x8c000000, 6, 52273}, {0x88000000, 6, 52272}, {0x84000000, 6, 52258}, {0x80000000, 6, 52257}, {0x7c000000, 6, 52271}, {0x78000000, 6, 52270}, {0x74000000, 6, 52243}, {0x70000000, 6, 52242}, {0x6c000000, 6, 52254}, {0x68000000, 6, 52253}, {0x64000000, 6, 52227}, {0x60000000, 6, 52237}, {0x5c000000, 6, 52467}, {0x58000000, 6, 52466}, {0x54000000, 6, 52478}, {0x50000000, 6, 52477}, {0x4c000000, 6, 52450}, {0x48000000, 6, 52449}, {0x44000000, 6, 52463}, {0x40000000, 6, 52462}, {0x3c000000, 6, 52433}, {0x38000000, 6, 52432}, {0x34000000, 6, 52447}, {0x32000000, 7, 52288}, {0x30000000, 7, 52274}, {0x2e000000, 7, 52287}, {0x2c000000, 7, 52286}, {0x2a000000, 7, 52259}, {0x28000000, 7, 52269}, {0x26000000, 7, 52228}, {0x24000000, 7, 52236}, {0x22000000, 7, 52451}, {0x20000000, 7, 52461}, {0x1e000000, 7, 52434}, {0x1c000000, 7, 52446}, {0x1a000000, 7, 52416}, {0x18000000, 7, 52431}, {0x17000000, 8, 52290}, {0x16000000, 8, 52289}, {0x15000000, 8, 52303}, {0x14000000, 8, 52302}, {0x13000000, 8, 52275}, {0x12000000, 8, 52285}, {0x11000000, 8, 52260}, {0x10000000, 8, 52268}, {0x0f000000, 8, 52244}, {0x0e000000, 8, 52252}, {0x0d000000, 8, 52468}, {0x0c000000, 8, 52476}, {0x0b000000, 8, 52452}, {0x0a000000, 8, 52460}, {0x09000000, 8, 52435}, {0x08000000, 8, 52445}, {0x07000000, 8, 52418}, {0x06000000, 8, 52417}, {0x05000000, 8, 52430}, {0x04800000, 9, 52291}, {0x04000000, 9, 52301}, {0x03800000, 9, 52276}, {0x03000000, 9, 52284}, {0x02800000, 9, 52436}, {0x02000000, 9, 52444}, {0x01800000, 9, 52419}, {0x01000000, 9, 52429}, {0x00c00000, 10, 52292}, {0x00800000, 10, 52300}, {0x00400000, 10, 52420}, {0x00000000, 10, 52428}
+		{0xe000, 3, 62}, {0xd000, 4, 87}, {0xc000, 4, 67}, {0xb000, 4, 63}, {0xa000, 4, 61}, {0x9000, 4, 57}, {0x8000, 4, 37}, {0x7c00, 6, 93}, {0x7800, 6, 92}, {0x7400, 6, 88}, {0x7000, 6, 86}, {0x6c00, 6, 83}, {0x6800, 6, 82}, {0x6400, 6, 81}, {0x6000, 6, 68}, {0x5c00, 6, 66}, {0x5800, 6, 58}, {0x5400, 6, 56}, {0x5000, 6, 42}, {0x4c00, 6, 41}, {0x4800, 6, 38}, {0x4400, 6, 36}, {0x4000, 6, 32}, {0x3c00, 6, 31}, {0x3a00, 7, 112}, {0x3800, 7, 91}, {0x3600, 7, 72}, {0x3400, 7, 64}, {0x3200, 7, 60}, {0x3000, 7, 52}, {0x2e00, 7, 43}, {0x2c00, 7, 33}, {0x2a00, 7, 12}, {0x2900, 8, 117}, {0x2800, 8, 113}, {0x2700, 8, 111}, {0x2600, 8, 107}, {0x2500, 8, 97}, {0x2400, 8, 89}, {0x2300, 8, 85}, {0x2200, 8, 77}, {0x2100, 8, 73}, {0x2000, 8, 71}, {0x1f00, 8, 69}, {0x1e00, 8, 65}, {0x1d00, 8, 59}, {0x1c00, 8, 55}, {0x1b00, 8, 53}, {0x1a00, 8, 51}, {0x1900, 8, 47}, {0x1800, 8, 39}, {0x1700, 8, 35}, {0x1600, 8, 27}, {0x1500, 8, 17}, {0x1400, 8, 13}, {0x1300, 8, 11}, {0x1200, 8, 7}, {0x1180, 9, 118}, {0x1100, 9, 116}, {0x1080, 9, 108}, {0x1000, 9, 106}, {0x0f80, 9, 98}, {0x0f00, 9, 96}, {0x0e80, 9, 94}, {0x0e00, 9, 90}, {0x0d80, 9, 84}, {0x0d00, 9, 80}, {0x0c80, 9, 78}, {0x0c00, 9, 76}, {0x0b80, 9, 48}, {0x0b00, 9, 46}, {0x0a80, 9, 44}, {0x0a00, 9, 40}, {0x0980, 9, 34}, {0x0900, 9, 30}, {0x0880, 9, 28}, {0x0800, 9, 26}, {0x0780, 9, 18}, {0x0700, 9, 16}, {0x0680, 9, 8}, {0x0600, 9, 6}, {0x05c0, 10, 122}, {0x0580, 10, 110}, {0x0540, 10, 102}, {0x0500, 10, 74}, {0x04c0, 10, 70}, {0x0480, 10, 54}, {0x0440, 10, 50}, {0x0400, 10, 22}, {0x03c0, 10, 2}, {0x03a0, 11, 123}, {0x0380, 11, 121}, {0x0360, 11, 119}, {0x0340, 11, 115}, {0x0320, 11, 114}, {0x0300, 11, 109}, {0x02e0, 11, 105}, {0x02c0, 11, 103}, {0x02a0, 11, 101}, {0x0280, 11, 99}, {0x0260, 11, 95}, {0x0240, 11, 79}, {0x0220, 11, 75}, {0x0200, 11, 49}, {0x01e0, 11, 45}, {0x01c0, 11, 29}, {0x01a0, 11, 25}, {0x0180, 11, 23}, {0x0160, 11, 21}, {0x0140, 11, 19}, {0x0120, 11, 15}, {0x0100, 11, 14}, {0x00e0, 11, 10}, {0x00c0, 11, 9}, {0x00a0, 11, 5}, {0x0080, 11, 3}, {0x0060, 11, 1}, {0x0050, 12, 124}, {0x0040, 12, 104}, {0x0030, 12, 20}, {0x0020, 12, 0}, {0x0018, 13, 120}, {0x0010, 13, 100}, {0x0008, 13, 24}, {0x0000, 13, 4}
+	}, {
+		{0xf000, 4, 62}, {0xe800, 5, 92}, {0xe000, 5, 87}, {0xd800, 5, 86}, {0xd000, 5, 82}, {0xc800, 5, 68}, {0xc000, 5, 67}, {0xb800, 5, 66}, {0xb000, 5, 63}, {0xa800, 5, 61}, {0xa000, 5, 58}, {0x9800, 5, 57}, {0x9000, 5, 56}, {0x8800, 5, 42}, {0x8000, 5, 38}, {0x7800, 5, 37}, {0x7000, 5, 32}, {0x6c00, 6, 93}, {0x6800, 6, 91}, {0x6400, 6, 88}, {0x6000, 6, 83}, {0x5c00, 6, 81}, {0x5800, 6, 43}, {0x5400, 6, 41}, {0x5000, 6, 36}, {0x4c00, 6, 33}, {0x4800, 6, 31}, {0x4600, 7, 112}, {0x4400, 7, 72}, {0x4200, 7, 64}, {0x4000, 7, 60}, {0x3e00, 7, 52}, {0x3c00, 7, 12}, {0x3b00, 8, 118}, {0x3a00, 8, 117}, {0x3900, 8, 116}, {0x3800, 8, 113}, {0x3700, 8, 111}, {0x3600, 8, 108}, {0x3500, 8, 107}, {0x3400, 8, 106}, {0x3300, 8, 98}, {0x3200, 8, 97}, {0x3100, 8, 96}, {0x3000, 8, 94}, {0x2f00, 8, 90}, {0x2e00, 8, 89}, {0x2d00, 8, 85}, {0x2c00, 8, 84}, {0x2b00, 8, 80}, {0x2a00, 8, 78}, {0x2900, 8, 77}, {0x2800, 8, 76}, {0x2700, 8, 73}, {0x2600, 8, 71}, {0x2500, 8, 69}, {0x2400, 8, 65}, {0x2300, 8, 59}, {0x2200, 8, 55}, {0x2100, 8, 53}, {0x2000, 8, 51}, {0x1f00, 8, 48}, {0x1e00, 8, 47}, {0x1d00, 8, 46}, {0x1c00, 8, 44}, {0x1b00, 8, 40}, {0x1a00, 8, 39}, {0x1900, 8, 35}, {0x1800, 8, 34}, {0x1700, 8, 30}, {0x1600, 8, 28}, {0x1500, 8, 27}, {0x1400, 8, 26}, {0x1300, 8, 18}, {0x1200, 8, 17}, {0x1100, 8, 16}, {0x1000, 8, 13}, {0x0f00, 8, 11}, {0x0e00, 8, 8}, {0x0d00, 8, 7}, {0x0c00, 8, 6}, {0x0b80, 9, 122}, {0x0b00, 9, 110}, {0x0a80, 9, 74}, {0x0a00, 9, 70}, {0x0980, 9, 54}, {0x0900, 9, 50}, {0x0880, 9, 22}, {0x0800, 9, 14}, {0x0780, 9, 2}, {0x0740, 10, 123}, {0x0700, 10, 121}, {0x06c0, 10, 119}, {0x0680, 10, 115}, {0x0640, 10, 114}, {0x0600, 10, 109}, {0x05c0, 10, 105}, {0x0580, 10, 103}, {0x0540, 10, 102}, {0x0500, 10, 101}, {0x04c0, 10, 99}, {0x0480, 10, 95}, {0x0440, 10, 79}, {0x0400, 10, 75}, {0x03c0, 10, 49}, {0x0380, 10, 45}, {0x0340, 10, 29}, {0x0300, 10, 25}, {0x02c0, 10, 23}, {0x0280, 10, 21}, {0x0240, 10, 19}, {0x0200, 10, 15}, {0x01c0, 10, 10}, {0x0180, 10, 9}, {0x0140, 10, 5}, {0x0100, 10, 3}, {0x00c0, 10, 1}, {0x00a0, 11, 124}, {0x0080, 11, 104}, {0x0060, 11, 20}, {0x0040, 11, 0}, {0x0030, 12, 120}, {0x0020, 12, 100}, {0x0010, 12, 24}, {0x0000, 12, 4}
+	}
+};
+
+const mpc_huffman mpc_table_HuffQ3_8 [49] = {
+	{0xe000, 3, 0}, {0xd000, 4, 17}, {0xc000, 4, 16}, {0xb000, 4, 1}, {0xa000, 4, 15}, {0x9000, 4, -16}, {0x8000, 4, -1}, {0x7800, 5, 32}, {0x7000, 5, 31}, {0x6800, 5, 2}, {0x6000, 5, 14}, {0x5800, 5, -15}, {0x5000, 5, -32}, {0x4c00, 6, 34}, {0x4800, 6, 33}, {0x4400, 6, 47}, {0x4000, 6, 46}, {0x3c00, 6, 18}, {0x3800, 6, 30}, {0x3400, 6, -14}, {0x3000, 6, -2}, {0x2c00, 6, -31}, {0x2800, 6, -17}, {0x2400, 6, -18}, {0x2200, 7, 49}, {0x2000, 7, 48}, {0x1e00, 7, 63}, {0x1c00, 7, 19}, {0x1a00, 7, 29}, {0x1800, 7, 3}, {0x1600, 7, 13}, {0x1400, 7, -13}, {0x1200, 7, -3}, {0x1000, 7, -30}, {0xe00, 7, -47}, {0xc00, 7, -48}, {0xa00, 7, -33}, {0x900, 8, 50}, {0x800, 8, 62}, {0x700, 8, 35}, {0x600, 8, 45}, {0x500, 8, -29}, {0x400, 8, -19}, {0x300, 8, -46}, {0x200, 8, -34}, {0x180, 9, 51}, {0x100, 9, 61}, {0x80, 9, -45}, {0x0, 9, -35}
+};
+
+const mpc_huffman mpc_table_HuffQ4_8 [91] = {
+	{0xf000, 4, 0}, {0xe800, 5, 32}, {0xe000, 5, 17}, {0xd800, 5, 16}, {0xd000, 5, 31}, {0xc800, 5, 2}, {0xc000, 5, 1}, {0xb800, 5, 15}, {0xb000, 5, 14}, {0xa800, 5, -15}, {0xa000, 5, -16}, {0x9800, 5, -1}, {0x9000, 5, -32}, {0x8c00, 6, 49}, {0x8800, 6, 48}, {0x8400, 6, 34}, {0x8000, 6, 33}, {0x7c00, 6, 47}, {0x7800, 6, 46}, {0x7400, 6, 19}, {0x7000, 6, 18}, {0x6c00, 6, 30}, {0x6800, 6, 29}, {0x6400, 6, 3}, {0x6000, 6, 13}, {0x5c00, 6, -13}, {0x5800, 6, -14}, {0x5400, 6, -2}, {0x5000, 6, -3}, {0x4c00, 6, -30}, {0x4800, 6, -31}, {0x4400, 6, -17}, {0x4000, 6, -18}, {0x3c00, 6, -47}, {0x3800, 6, -48}, {0x3400, 6, -33}, {0x3200, 7, 64}, {0x3000, 7, 50}, {0x2e00, 7, 63}, {0x2c00, 7, 62}, {0x2a00, 7, 35}, {0x2800, 7, 45}, {0x2600, 7, 4}, {0x2400, 7, 12}, {0x2200, 7, -29}, {0x2000, 7, -19}, {0x1e00, 7, -46}, {0x1c00, 7, -34}, {0x1a00, 7, -64}, {0x1800, 7, -49}, {0x1700, 8, 66}, {0x1600, 8, 65}, {0x1500, 8, 79}, {0x1400, 8, 78}, {0x1300, 8, 51}, {0x1200, 8, 61}, {0x1100, 8, 36}, {0x1000, 8, 44}, {0xf00, 8, 20}, {0xe00, 8, 28}, {0xd00, 8, -12}, {0xc00, 8, -4}, {0xb00, 8, -28}, {0xa00, 8, -20}, {0x900, 8, -45}, {0x800, 8, -35}, {0x700, 8, -62}, {0x600, 8, -63}, {0x500, 8, -50}, {0x480, 9, 67}, {0x400, 9, 77}, {0x380, 9, 52}, {0x300, 9, 60}, {0x280, 9, -44}, {0x200, 9, -36}, {0x180, 9, -61}, {0x100, 9, -51}, {0xc0, 10, 68}, {0x80, 10, 76}, {0x40, 10, -60}, {0x0, 10, -52}, {0x0, 0, 0}, {0x0, 0, 0}, {0x0, 0, 0}, {0x0, 0, 0}, {0x0, 0, 0}, {0x0, 0, 0}, {0x0, 0, 0}, {0x0, 0, 0}, {0x0, 0, 0}, {0x0, 0, 0}
 };
 
 static const mpc_huffman mpc_table_HuffQ5_8 [2] [15] = {
 	{
-		{0xc0000000, 2, 0}, {0xa0000000, 3, 2}, {0x80000000, 3, 1}, {0x60000000, 3, -1}, {0x40000000, 3, -2}, {0x30000000, 4, 3}, {0x20000000, 4, -3}, {0x18000000, 5, 4}, {0x10000000, 5, -4}, {0x0c000000, 6, 5}, {0x08000000, 6, -5}, {0x06000000, 7, 7}, {0x04000000, 7, 6}, {0x02000000, 7, -6}, {0x00000000, 7, -7}
-	}, {
-		{0xe0000000, 3, 2}, {0xc0000000, 3, 1}, {0xa0000000, 3, 0}, {0x80000000, 3, -1}, {0x60000000, 3, -2}, {0x50000000, 4, 4}, {0x40000000, 4, 3}, {0x30000000, 4, -3}, {0x20000000, 4, -4}, {0x18000000, 5, 5}, {0x10000000, 5, -5}, {0x0c000000, 6, 7}, {0x08000000, 6, 6}, {0x04000000, 6, -6}, {0x00000000, 6, -7}
+		{0xc000, 2, 0}, {0xa000, 3, 2}, {0x8000, 3, 1}, {0x6000, 3, -1}, {0x4000, 3, -2}, {0x3000, 4, 3}, {0x2000, 4, -3}, {0x1800, 5, 4}, {0x1000, 5, -4}, {0x0c00, 6, 5}, {0x0800, 6, -5}, {0x0600, 7, 7}, {0x0400, 7, 6}, {0x0200, 7, -6}, {0x0000, 7, -7}
+	}, {
+		{0xe000, 3, 2}, {0xc000, 3, 1}, {0xa000, 3, 0}, {0x8000, 3, -1}, {0x6000, 3, -2}, {0x5000, 4, 4}, {0x4000, 4, 3}, {0x3000, 4, -3}, {0x2000, 4, -4}, {0x1800, 5, 5}, {0x1000, 5, -5}, {0x0c00, 6, 7}, {0x0800, 6, 6}, {0x0400, 6, -6}, {0x0000, 6, -7}
 	}
 };
@@ -136,7 +171,7 @@
 static const mpc_huffman mpc_table_HuffQ6_8 [2] [31] = {
 	{
-		{0xc0000000, 2, 0}, {0xa0000000, 3, 1}, {0x80000000, 3, -1}, {0x70000000, 4, 3}, {0x60000000, 4, 2}, {0x50000000, 4, -2}, {0x40000000, 4, -3}, {0x38000000, 5, 4}, {0x30000000, 5, -4}, {0x28000000, 5, -5}, {0x24000000, 6, 8}, {0x20000000, 6, 7}, {0x1c000000, 6, 6}, {0x18000000, 6, 5}, {0x14000000, 6, -6}, {0x10000000, 6, -7}, {0x0c000000, 6, -8}, {0x0a000000, 7, 9}, {0x08000000, 7, -9}, {0x07000000, 8, 11}, {0x06000000, 8, 10}, {0x05000000, 8, -10}, {0x04000000, 8, -11}, {0x03800000, 9, 15}, {0x03000000, 9, 14}, {0x02800000, 9, 13}, {0x02000000, 9, 12}, {0x01800000, 9, -12}, {0x01000000, 9, -13}, {0x00800000, 9, -14}, {0x00000000, 9, -15}
-	}, {
-		{0xf0000000, 4, 5}, {0xe0000000, 4, 4}, {0xd0000000, 4, 3}, {0xc0000000, 4, 2}, {0xb0000000, 4, 1}, {0xa0000000, 4, 0}, {0x90000000, 4, -1}, {0x80000000, 4, -2}, {0x70000000, 4, -3}, {0x60000000, 4, -4}, {0x50000000, 4, -5}, {0x48000000, 5, 8}, {0x40000000, 5, 7}, {0x38000000, 5, 6}, {0x30000000, 5, -6}, {0x28000000, 5, -7}, {0x20000000, 5, -8}, {0x1c000000, 6, 10}, {0x18000000, 6, 9}, {0x14000000, 6, -9}, {0x10000000, 6, -10}, {0x0e000000, 7, 13}, {0x0c000000, 7, 12}, {0x0a000000, 7, 11}, {0x08000000, 7, -11}, {0x06000000, 7, -12}, {0x04000000, 7, -13}, {0x03000000, 8, 15}, {0x02000000, 8, 14}, {0x01000000, 8, -14}, {0x00000000, 8, -15}
+		{0xc000, 2, 0}, {0xa000, 3, 1}, {0x8000, 3, -1}, {0x7000, 4, 3}, {0x6000, 4, 2}, {0x5000, 4, -2}, {0x4000, 4, -3}, {0x3800, 5, 4}, {0x3000, 5, -4}, {0x2800, 5, -5}, {0x2400, 6, 8}, {0x2000, 6, 7}, {0x1c00, 6, 6}, {0x1800, 6, 5}, {0x1400, 6, -6}, {0x1000, 6, -7}, {0x0c00, 6, -8}, {0x0a00, 7, 9}, {0x0800, 7, -9}, {0x0700, 8, 11}, {0x0600, 8, 10}, {0x0500, 8, -10}, {0x0400, 8, -11}, {0x0380, 9, 15}, {0x0300, 9, 14}, {0x0280, 9, 13}, {0x0200, 9, 12}, {0x0180, 9, -12}, {0x0100, 9, -13}, {0x0080, 9, -14}, {0x0000, 9, -15}
+	}, {
+		{0xf000, 4, 5}, {0xe000, 4, 4}, {0xd000, 4, 3}, {0xc000, 4, 2}, {0xb000, 4, 1}, {0xa000, 4, 0}, {0x9000, 4, -1}, {0x8000, 4, -2}, {0x7000, 4, -3}, {0x6000, 4, -4}, {0x5000, 4, -5}, {0x4800, 5, 8}, {0x4000, 5, 7}, {0x3800, 5, 6}, {0x3000, 5, -6}, {0x2800, 5, -7}, {0x2000, 5, -8}, {0x1c00, 6, 10}, {0x1800, 6, 9}, {0x1400, 6, -9}, {0x1000, 6, -10}, {0x0e00, 7, 13}, {0x0c00, 7, 12}, {0x0a00, 7, 11}, {0x0800, 7, -11}, {0x0600, 7, -12}, {0x0400, 7, -13}, {0x0300, 8, 15}, {0x0200, 8, 14}, {0x0100, 8, -14}, {0x0000, 8, -15}
 	}
 };
@@ -144,7 +179,7 @@
 static const mpc_huffman mpc_table_HuffQ7_8 [2] [63] = {
 	{
-		{0xc0000000, 2, 0}, {0xa0000000, 3, 1}, {0x80000000, 3, -1}, {0x70000000, 4, 2}, {0x60000000, 4, -2}, {0x58000000, 5, 4}, {0x50000000, 5, 3}, {0x48000000, 5, -3}, {0x40000000, 5, -4}, {0x3c000000, 6, 7}, {0x38000000, 6, 6}, {0x34000000, 6, 5}, {0x30000000, 6, -5}, {0x2c000000, 6, -6}, {0x28000000, 6, -7}, {0x26000000, 7, 13}, {0x24000000, 7, 11}, {0x22000000, 7, 10}, {0x20000000, 7, 9}, {0x1e000000, 7, 8}, {0x1c000000, 7, -8}, {0x1a000000, 7, -9}, {0x18000000, 7, -10}, {0x16000000, 7, -11}, {0x14000000, 7, -12}, {0x13000000, 8, 17}, {0x12000000, 8, 16}, {0x11000000, 8, 15}, {0x10000000, 8, 14}, {0x0f000000, 8, 12}, {0x0e000000, 8, -13}, {0x0d000000, 8, -14}, {0x0c000000, 8, -15}, {0x0b000000, 8, -16}, {0x0a000000, 8, -17}, {0x09800000, 9, 28}, {0x09000000, 9, 27}, {0x08800000, 9, 21}, {0x08000000, 9, 20}, {0x07800000, 9, 19}, {0x07000000, 9, 18}, {0x06800000, 9, -18}, {0x06000000, 9, -19}, {0x05800000, 9, -20}, {0x05000000, 9, -21}, {0x04800000, 9, -27}, {0x04000000, 9, -28}, {0x03c00000, 10, 31}, {0x03800000, 10, 30}, {0x03400000, 10, 29}, {0x03000000, 10, 26}, {0x02c00000, 10, 25}, {0x02800000, 10, 24}, {0x02400000, 10, 23}, {0x02000000, 10, 22}, {0x01c00000, 10, -22}, {0x01800000, 10, -23}, {0x01400000, 10, -24}, {0x01000000, 10, -25}, {0x00c00000, 10, -26}, {0x00800000, 10, -29}, {0x00400000, 10, -30}, {0x00000000, 10, -31}
-	}, {
-		{0xf8000000, 5, 10}, {0xf0000000, 5, 9}, {0xe8000000, 5, 8}, {0xe0000000, 5, 7}, {0xd8000000, 5, 6}, {0xd0000000, 5, 5}, {0xc8000000, 5, 4}, {0xc0000000, 5, 3}, {0xb8000000, 5, 2}, {0xb0000000, 5, 1}, {0xa8000000, 5, 0}, {0xa0000000, 5, -1}, {0x98000000, 5, -2}, {0x90000000, 5, -3}, {0x88000000, 5, -4}, {0x80000000, 5, -5}, {0x78000000, 5, -6}, {0x70000000, 5, -7}, {0x68000000, 5, -8}, {0x60000000, 5, -9}, {0x5c000000, 6, 17}, {0x58000000, 6, 16}, {0x54000000, 6, 15}, {0x50000000, 6, 14}, {0x4c000000, 6, 13}, {0x48000000, 6, 12}, {0x44000000, 6, 11}, {0x40000000, 6, -10}, {0x3c000000, 6, -11}, {0x38000000, 6, -12}, {0x34000000, 6, -13}, {0x30000000, 6, -14}, {0x2c000000, 6, -15}, {0x28000000, 6, -16}, {0x24000000, 6, -17}, {0x22000000, 7, 22}, {0x20000000, 7, 21}, {0x1e000000, 7, 20}, {0x1c000000, 7, 19}, {0x1a000000, 7, 18}, {0x18000000, 7, -18}, {0x16000000, 7, -19}, {0x14000000, 7, -20}, {0x12000000, 7, -21}, {0x10000000, 7, -22}, {0x0f000000, 8, 29}, {0x0e000000, 8, 28}, {0x0d000000, 8, 27}, {0x0c000000, 8, 26}, {0x0b000000, 8, 25}, {0x0a000000, 8, 24}, {0x09000000, 8, 23}, {0x08000000, 8, -23}, {0x07000000, 8, -24}, {0x06000000, 8, -25}, {0x05000000, 8, -26}, {0x04000000, 8, -27}, {0x03000000, 8, -28}, {0x02000000, 8, -29}, {0x01800000, 9, 31}, {0x01000000, 9, 30}, {0x00800000, 9, -30}, {0x00000000, 9, -31}
+		{0xc000, 2, 0}, {0xa000, 3, 1}, {0x8000, 3, -1}, {0x7000, 4, 2}, {0x6000, 4, -2}, {0x5800, 5, 4}, {0x5000, 5, 3}, {0x4800, 5, -3}, {0x4000, 5, -4}, {0x3c00, 6, 7}, {0x3800, 6, 6}, {0x3400, 6, 5}, {0x3000, 6, -5}, {0x2c00, 6, -6}, {0x2800, 6, -7}, {0x2600, 7, 13}, {0x2400, 7, 11}, {0x2200, 7, 10}, {0x2000, 7, 9}, {0x1e00, 7, 8}, {0x1c00, 7, -8}, {0x1a00, 7, -9}, {0x1800, 7, -10}, {0x1600, 7, -11}, {0x1400, 7, -12}, {0x1300, 8, 17}, {0x1200, 8, 16}, {0x1100, 8, 15}, {0x1000, 8, 14}, {0x0f00, 8, 12}, {0x0e00, 8, -13}, {0x0d00, 8, -14}, {0x0c00, 8, -15}, {0x0b00, 8, -16}, {0x0a00, 8, -17}, {0x0980, 9, 28}, {0x0900, 9, 27}, {0x0880, 9, 21}, {0x0800, 9, 20}, {0x0780, 9, 19}, {0x0700, 9, 18}, {0x0680, 9, -18}, {0x0600, 9, -19}, {0x0580, 9, -20}, {0x0500, 9, -21}, {0x0480, 9, -27}, {0x0400, 9, -28}, {0x03c0, 10, 31}, {0x0380, 10, 30}, {0x0340, 10, 29}, {0x0300, 10, 26}, {0x02c0, 10, 25}, {0x0280, 10, 24}, {0x0240, 10, 23}, {0x0200, 10, 22}, {0x01c0, 10, -22}, {0x0180, 10, -23}, {0x0140, 10, -24}, {0x0100, 10, -25}, {0x00c0, 10, -26}, {0x0080, 10, -29}, {0x0040, 10, -30}, {0x0000, 10, -31}
+	}, {
+		{0xf800, 5, 10}, {0xf000, 5, 9}, {0xe800, 5, 8}, {0xe000, 5, 7}, {0xd800, 5, 6}, {0xd000, 5, 5}, {0xc800, 5, 4}, {0xc000, 5, 3}, {0xb800, 5, 2}, {0xb000, 5, 1}, {0xa800, 5, 0}, {0xa000, 5, -1}, {0x9800, 5, -2}, {0x9000, 5, -3}, {0x8800, 5, -4}, {0x8000, 5, -5}, {0x7800, 5, -6}, {0x7000, 5, -7}, {0x6800, 5, -8}, {0x6000, 5, -9}, {0x5c00, 6, 17}, {0x5800, 6, 16}, {0x5400, 6, 15}, {0x5000, 6, 14}, {0x4c00, 6, 13}, {0x4800, 6, 12}, {0x4400, 6, 11}, {0x4000, 6, -10}, {0x3c00, 6, -11}, {0x3800, 6, -12}, {0x3400, 6, -13}, {0x3000, 6, -14}, {0x2c00, 6, -15}, {0x2800, 6, -16}, {0x2400, 6, -17}, {0x2200, 7, 22}, {0x2000, 7, 21}, {0x1e00, 7, 20}, {0x1c00, 7, 19}, {0x1a00, 7, 18}, {0x1800, 7, -18}, {0x1600, 7, -19}, {0x1400, 7, -20}, {0x1200, 7, -21}, {0x1000, 7, -22}, {0x0f00, 8, 29}, {0x0e00, 8, 28}, {0x0d00, 8, 27}, {0x0c00, 8, 26}, {0x0b00, 8, 25}, {0x0a00, 8, 24}, {0x0900, 8, 23}, {0x0800, 8, -23}, {0x0700, 8, -24}, {0x0600, 8, -25}, {0x0500, 8, -26}, {0x0400, 8, -27}, {0x0300, 8, -28}, {0x0200, 8, -29}, {0x0180, 9, 31}, {0x0100, 9, 30}, {0x0080, 9, -30}, {0x0000, 9, -31}
 	}
 };
@@ -152,12 +187,12 @@
 static const mpc_huffman mpc_table_HuffQ8_8 [2] [127] = {
 	{
-		{0xc0000000, 2, 0}, {0xa0000000, 3, 1}, {0x80000000, 3, -1}, {0x70000000, 4, -2}, {0x68000000, 5, 3}, {0x60000000, 5, 2}, {0x58000000, 5, -3}, {0x54000000, 6, 7}, {0x50000000, 6, 6}, {0x4c000000, 6, 5}, {0x48000000, 6, 4}, {0x44000000, 6, -4}, {0x40000000, 6, -5}, {0x3c000000, 6, -6}, {0x38000000, 6, -7}, {0x36000000, 7, 11}, {0x34000000, 7, 10}, {0x32000000, 7, 9}, {0x30000000, 7, 8}, {0x2e000000, 7, -8}, {0x2c000000, 7, -9}, {0x2a000000, 7, -10}, {0x28000000, 7, -11}, {0x27000000, 8, 19}, {0x26000000, 8, 18}, {0x25000000, 8, 17}, {0x24000000, 8, 16}, {0x23000000, 8, 15}, {0x22000000, 8, 14}, {0x21000000, 8, 13}, {0x20000000, 8, 12}, {0x1f000000, 8, -12}, {0x1e000000, 8, -13}, {0x1d000000, 8, -14}, {0x1c000000, 8, -15}, {0x1b000000, 8, -16}, {0x1a000000, 8, -17}, {0x19000000, 8, -19}, {0x18800000, 9, 56}, {0x18000000, 9, 55}, {0x17800000, 9, 31}, {0x17000000, 9, 28}, {0x16800000, 9, 27}, {0x16000000, 9, 26}, {0x15800000, 9, 25}, {0x15000000, 9, 24}, {0x14800000, 9, 23}, {0x14000000, 9, 22}, {0x13800000, 9, 21}, {0x13000000, 9, 20}, {0x12800000, 9, -18}, {0x12000000, 9, -20}, {0x11800000, 9, -21}, {0x11000000, 9, -22}, {0x10800000, 9, -23}, {0x10000000, 9, -24}, {0x0f800000, 9, -25}, {0x0f000000, 9, -26}, {0x0e800000, 9, -27}, {0x0e000000, 9, -33}, {0x0d800000, 9, -54}, {0x0d000000, 9, -56}, {0x0cc00000, 10, 63}, {0x0c800000, 10, 62}, {0x0c400000, 10, 61}, {0x0c000000, 10, 60}, {0x0bc00000, 10, 59}, {0x0b800000, 10, 58}, {0x0b400000, 10, 57}, {0x0b000000, 10, 54}, {0x0ac00000, 10, 53}, {0x0a800000, 10, 43}, {0x0a400000, 10, 40}, {0x0a000000, 10, 39}, {0x09c00000, 10, 38}, {0x09800000, 10, 37}, {0x09400000, 10, 36}, {0x09000000, 10, 35}, {0x08c00000, 10, 34}, {0x08800000, 10, 33}, {0x08400000, 10, 32}, {0x08000000, 10, 30}, {0x07c00000, 10, 29}, {0x07800000, 10, -28}, {0x07400000, 10, -29}, {0x07000000, 10, -30}, {0x06c00000, 10, -31}, {0x06800000, 10, -32}, {0x06400000, 10, -34}, {0x06000000, 10, -35}, {0x05c00000, 10, -36}, {0x05800000, 10, -37}, {0x05400000, 10, -38}, {0x05000000, 10, -39}, {0x04c00000, 10, -40}, {0x04800000, 10, -41}, {0x04400000, 10, -43}, {0x04000000, 10, -53}, {0x03c00000, 10, -55}, {0x03800000, 10, -57}, {0x03400000, 10, -58}, {0x03000000, 10, -59}, {0x02c00000, 10, -60}, {0x02800000, 10, -61}, {0x02600000, 11, 49}, {0x02400000, 11, 47}, {0x02200000, 11, 46}, {0x02000000, 11, 45}, {0x01e00000, 11, 44}, {0x01c00000, 11, 42}, {0x01a00000, 11, 41}, {0x01800000, 11, -42}, {0x01600000, 11, -44}, {0x01400000, 11, -45}, {0x01200000, 11, -46}, {0x01000000, 11, -47}, {0x00e00000, 11, -48}, {0x00c00000, 11, -49}, {0x00a00000, 11, -50}, {0x00800000, 11, -62}, {0x00600000, 11, -63}, {0x00500000, 12, 52}, {0x00400000, 12, 51}, {0x00300000, 12, 50}, {0x00200000, 12, 48}, {0x00100000, 12, -51}, {0x00000000, 12, -52}
-	}, {
-		{0xfc000000, 6, 13}, {0xf8000000, 6, 11}, {0xf4000000, 6, 10}, {0xf0000000, 6, 9}, {0xec000000, 6, 8}, {0xe8000000, 6, 7}, {0xe4000000, 6, 6}, {0xe0000000, 6, 5}, {0xdc000000, 6, 4}, {0xd8000000, 6, 3}, {0xd4000000, 6, 2}, {0xd0000000, 6, 1}, {0xcc000000, 6, 0}, {0xc8000000, 6, -1}, {0xc4000000, 6, -2}, {0xc0000000, 6, -3}, {0xbc000000, 6, -4}, {0xb8000000, 6, -5}, {0xb4000000, 6, -6}, {0xb0000000, 6, -7}, {0xac000000, 6, -8}, {0xa8000000, 6, -9}, {0xa4000000, 6, -10}, {0xa0000000, 6, -11}, {0x9c000000, 6, -12}, {0x98000000, 6, -13}, {0x96000000, 7, 39}, {0x94000000, 7, 38}, {0x92000000, 7, 37}, {0x90000000, 7, 36}, {0x8e000000, 7, 35}, {0x8c000000, 7, 34}, {0x8a000000, 7, 33}, {0x88000000, 7, 32}, {0x86000000, 7, 31}, {0x84000000, 7, 30}, {0x82000000, 7, 29}, {0x80000000, 7, 28}, {0x7e000000, 7, 27}, {0x7c000000, 7, 26}, {0x7a000000, 7, 25}, {0x78000000, 7, 24}, {0x76000000, 7, 23}, {0x74000000, 7, 22}, {0x72000000, 7, 21}, {0x70000000, 7, 20}, {0x6e000000, 7, 19}, {0x6c000000, 7, 18}, {0x6a000000, 7, 17}, {0x68000000, 7, 16}, {0x66000000, 7, 15}, {0x64000000, 7, 14}, {0x62000000, 7, 12}, {0x60000000, 7, -14}, {0x5e000000, 7, -15}, {0x5c000000, 7, -16}, {0x5a000000, 7, -17}, {0x58000000, 7, -18}, {0x56000000, 7, -19}, {0x54000000, 7, -20}, {0x52000000, 7, -21}, {0x50000000, 7, -22}, {0x4e000000, 7, -23}, {0x4c000000, 7, -24}, {0x4a000000, 7, -25}, {0x48000000, 7, -26}, {0x46000000, 7, -27}, {0x44000000, 7, -28}, {0x42000000, 7, -29}, {0x40000000, 7, -30}, {0x3e000000, 7, -31}, {0x3c000000, 7, -32}, {0x3a000000, 7, -33}, {0x38000000, 7, -34}, {0x36000000, 7, -35}, {0x34000000, 7, -36}, {0x32000000, 7, -37}, {0x30000000, 7, -38}, {0x2e000000, 7, -39}, {0x2c000000, 7, -40}, {0x2a000000, 7, -41}, {0x29000000, 8, 59}, {0x28000000, 8, 58}, {0x27000000, 8, 57}, {0x26000000, 8, 56}, {0x25000000, 8, 55}, {0x24000000, 8, 54}, {0x23000000, 8, 53}, {0x22000000, 8, 52}, {0x21000000, 8, 51}, {0x20000000, 8, 50}, {0x1f000000, 8, 49}, {0x1e000000, 8, 48}, {0x1d000000, 8, 47}, {0x1c000000, 8, 46}, {0x1b000000, 8, 45}, {0x1a000000, 8, 44}, {0x19000000, 8, 43}, {0x18000000, 8, 42}, {0x17000000, 8, 41}, {0x16000000, 8, 40}, {0x15000000, 8, -42}, {0x14000000, 8, -43}, {0x13000000, 8, -44}, {0x12000000, 8, -45}, {0x11000000, 8, -46}, {0x10000000, 8, -47}, {0x0f000000, 8, -48}, {0x0e000000, 8, -49}, {0x0d000000, 8, -50}, {0x0c000000, 8, -51}, {0x0b000000, 8, -52}, {0x0a000000, 8, -53}, {0x09000000, 8, -54}, {0x08000000, 8, -55}, {0x07000000, 8, -56}, {0x06000000, 8, -57}, {0x05000000, 8, -58}, {0x04000000, 8, -59}, {0x03800000, 9, 63}, {0x03000000, 9, 62}, {0x02800000, 9, 61}, {0x02000000, 9, 60}, {0x01800000, 9, -60}, {0x01000000, 9, -61}, {0x00800000, 9, -62}, {0x00000000, 9, -63}
-	}
-};
-
-const mpc_huffman mpc_table_HuffQ9up_8 [256] ={
-	{0xfc000000, 6, 128}, {0xf8000000, 6, 127}, {0xf6000000, 7, 148}, {0xf4000000, 7, 146}, {0xf2000000, 7, 145}, {0xf0000000, 7, 144}, {0xee000000, 7, 143}, {0xec000000, 7, 142}, {0xea000000, 7, 141}, {0xe8000000, 7, 140}, {0xe6000000, 7, 139}, {0xe4000000, 7, 138}, {0xe2000000, 7, 137}, {0xe0000000, 7, 136}, {0xde000000, 7, 135}, {0xdc000000, 7, 134}, {0xda000000, 7, 133}, {0xd8000000, 7, 132}, {0xd6000000, 7, 131}, {0xd4000000, 7, 130}, {0xd2000000, 7, 129}, {0xd0000000, 7, 126}, {0xce000000, 7, 125}, {0xcc000000, 7, 124}, {0xca000000, 7, 123}, {0xc8000000, 7, 122}, {0xc6000000, 7, 121}, {0xc4000000, 7, 120}, {0xc2000000, 7, 119}, {0xc0000000, 7, 118}, {0xbe000000, 7, 117}, {0xbc000000, 7, 116}, {0xba000000, 7, 115}, {0xb8000000, 7, 114}, {0xb6000000, 7, 113}, {0xb4000000, 7, 112}, {0xb2000000, 7, 111}, {0xb0000000, 7, 110}, {0xae000000, 7, 109}, {0xac000000, 7, 108}, {0xab000000, 8, 212}, {0xaa000000, 8, 211}, {0xa9000000, 8, 210}, {0xa8000000, 8, 209}, {0xa7000000, 8, 208}, {0xa6000000, 8, 207}, {0xa5000000, 8, 206}, {0xa4000000, 8, 205}, {0xa3000000, 8, 204}, {0xa2000000, 8, 203}, {0xa1000000, 8, 202}, {0xa0000000, 8, 201}, {0x9f000000, 8, 200}, {0x9e000000, 8, 199}, {0x9d000000, 8, 198}, {0x9c000000, 8, 197}, {0x9b000000, 8, 196}, {0x9a000000, 8, 195}, {0x99000000, 8, 194}, {0x98000000, 8, 193}, {0x97000000, 8, 192}, {0x96000000, 8, 191}, {0x95000000, 8, 190}, {0x94000000, 8, 189}, {0x93000000, 8, 188}, {0x92000000, 8, 187}, {0x91000000, 8, 186}, {0x90000000, 8, 185}, {0x8f000000, 8, 184}, {0x8e000000, 8, 183}, {0x8d000000, 8, 182}, {0x8c000000, 8, 181}, {0x8b000000, 8, 180}, {0x8a000000, 8, 179}, {0x89000000, 8, 178}, {0x88000000, 8, 177}, {0x87000000, 8, 176}, {0x86000000, 8, 175}, {0x85000000, 8, 174}, {0x84000000, 8, 173}, {0x83000000, 8, 172}, {0x82000000, 8, 171}, {0x81000000, 8, 170}, {0x80000000, 8, 169}, {0x7f000000, 8, 168}, {0x7e000000, 8, 167}, {0x7d000000, 8, 166}, {0x7c000000, 8, 165}, {0x7b000000, 8, 164}, {0x7a000000, 8, 163}, {0x79000000, 8, 162}, {0x78000000, 8, 161}, {0x77000000, 8, 160}, {0x76000000, 8, 159}, {0x75000000, 8, 158}, {0x74000000, 8, 157}, {0x73000000, 8, 156}, {0x72000000, 8, 155}, {0x71000000, 8, 154}, {0x70000000, 8, 153}, {0x6f000000, 8, 152}, {0x6e000000, 8, 151}, {0x6d000000, 8, 150}, {0x6c000000, 8, 149}, {0x6b000000, 8, 147}, {0x6a000000, 8, 107}, {0x69000000, 8, 106}, {0x68000000, 8, 105}, {0x67000000, 8, 104}, {0x66000000, 8, 103}, {0x65000000, 8, 102}, {0x64000000, 8, 101}, {0x63000000, 8, 100}, {0x62000000, 8, 99}, {0x61000000, 8, 98}, {0x60000000, 8, 97}, {0x5f000000, 8, 96}, {0x5e000000, 8, 95}, {0x5d000000, 8, 94}, {0x5c000000, 8, 93}, {0x5b000000, 8, 92}, {0x5a000000, 8, 91}, {0x59000000, 8, 90}, {0x58000000, 8, 89}, {0x57000000, 8, 88}, {0x56000000, 8, 87}, {0x55000000, 8, 86}, {0x54000000, 8, 85}, {0x53000000, 8, 84}, {0x52000000, 8, 83}, {0x51000000, 8, 82}, {0x50000000, 8, 81}, {0x4f000000, 8, 80}, {0x4e000000, 8, 79}, {0x4d000000, 8, 78}, {0x4c000000, 8, 77}, {0x4b000000, 8, 76}, {0x4a000000, 8, 75}, {0x49000000, 8, 74}, {0x48000000, 8, 73}, {0x47000000, 8, 72}, {0x46000000, 8, 71}, {0x45000000, 8, 70}, {0x44000000, 8, 69}, {0x43000000, 8, 68}, {0x42000000, 8, 67}, {0x41000000, 8, 66}, {0x40000000, 8, 65}, {0x3f000000, 8, 64}, {0x3e000000, 8, 63}, {0x3d000000, 8, 62}, {0x3c000000, 8, 61}, {0x3b000000, 8, 60}, {0x3a000000, 8, 59}, {0x39000000, 8, 58}, {0x38000000, 8, 57}, {0x37000000, 8, 56}, {0x36000000, 8, 55}, {0x35000000, 8, 54}, {0x34000000, 8, 53}, {0x33000000, 8, 52}, {0x32000000, 8, 51}, {0x31000000, 8, 50}, {0x30000000, 8, 49}, {0x2f000000, 8, 48}, {0x2e000000, 8, 47}, {0x2d000000, 8, 46}, {0x2c000000, 8, 45}, {0x2b000000, 8, 44}, {0x2a000000, 8, 43}, {0x29000000, 8, 42}, {0x28000000, 8, 40}, {0x27000000, 8, 20}, {0x26000000, 8, 19}, {0x25800000, 9, 249}, {0x25000000, 9, 248}, {0x24800000, 9, 247}, {0x24000000, 9, 246}, {0x23800000, 9, 245}, {0x23000000, 9, 244}, {0x22800000, 9, 243}, {0x22000000, 9, 242}, {0x21800000, 9, 241}, {0x21000000, 9, 240}, {0x20800000, 9, 239}, {0x20000000, 9, 238}, {0x1f800000, 9, 237}, {0x1f000000, 9, 236}, {0x1e800000, 9, 235}, {0x1e000000, 9, 234}, {0x1d800000, 9, 233}, {0x1d000000, 9, 232}, {0x1c800000, 9, 231}, {0x1c000000, 9, 230}, {0x1b800000, 9, 229}, {0x1b000000, 9, 228}, {0x1a800000, 9, 227}, {0x1a000000, 9, 226}, {0x19800000, 9, 225}, {0x19000000, 9, 224}, {0x18800000, 9, 223}, {0x18000000, 9, 222}, {0x17800000, 9, 221}, {0x17000000, 9, 220}, {0x16800000, 9, 219}, {0x16000000, 9, 218}, {0x15800000, 9, 217}, {0x15000000, 9, 216}, {0x14800000, 9, 215}, {0x14000000, 9, 214}, {0x13800000, 9, 213}, {0x13000000, 9, 41}, {0x12800000, 9, 39}, {0x12000000, 9, 38}, {0x11800000, 9, 37}, {0x11000000, 9, 36}, {0x10800000, 9, 35}, {0x10000000, 9, 34}, {0x0f800000, 9, 33}, {0x0f000000, 9, 32}, {0x0e800000, 9, 31}, {0x0e000000, 9, 30}, {0x0d800000, 9, 29}, {0x0d000000, 9, 28}, {0x0c800000, 9, 27}, {0x0c000000, 9, 26}, {0x0b800000, 9, 25}, {0x0b000000, 9, 24}, {0x0a800000, 9, 23}, {0x0a000000, 9, 22}, {0x09800000, 9, 21}, {0x09000000, 9, 18}, {0x08800000, 9, 17}, {0x08000000, 9, 16}, {0x07800000, 9, 15}, {0x07000000, 9, 14}, {0x06800000, 9, 13}, {0x06000000, 9, 12}, {0x05800000, 9, 11}, {0x05000000, 9, 10}, {0x04800000, 9, 9}, {0x04000000, 9, 8}, {0x03800000, 9, 7}, {0x03000000, 9, 6}, {0x02800000, 9, 5}, {0x02400000, 10, 253}, {0x02000000, 10, 252}, {0x01c00000, 10, 251}, {0x01800000, 10, 250}, {0x01400000, 10, 4}, {0x01000000, 10, 3}, {0x00c00000, 10, 2}, {0x00800000, 10, 1}, {0x00400000, 10, 0}, {0x00200000, 11, 255}, {0x00000000, 11, 254}
+		{0xc000, 2, 0}, {0xa000, 3, 1}, {0x8000, 3, -1}, {0x7000, 4, -2}, {0x6800, 5, 3}, {0x6000, 5, 2}, {0x5800, 5, -3}, {0x5400, 6, 7}, {0x5000, 6, 6}, {0x4c00, 6, 5}, {0x4800, 6, 4}, {0x4400, 6, -4}, {0x4000, 6, -5}, {0x3c00, 6, -6}, {0x3800, 6, -7}, {0x3600, 7, 11}, {0x3400, 7, 10}, {0x3200, 7, 9}, {0x3000, 7, 8}, {0x2e00, 7, -8}, {0x2c00, 7, -9}, {0x2a00, 7, -10}, {0x2800, 7, -11}, {0x2700, 8, 19}, {0x2600, 8, 18}, {0x2500, 8, 17}, {0x2400, 8, 16}, {0x2300, 8, 15}, {0x2200, 8, 14}, {0x2100, 8, 13}, {0x2000, 8, 12}, {0x1f00, 8, -12}, {0x1e00, 8, -13}, {0x1d00, 8, -14}, {0x1c00, 8, -15}, {0x1b00, 8, -16}, {0x1a00, 8, -17}, {0x1900, 8, -19}, {0x1880, 9, 56}, {0x1800, 9, 55}, {0x1780, 9, 31}, {0x1700, 9, 28}, {0x1680, 9, 27}, {0x1600, 9, 26}, {0x1580, 9, 25}, {0x1500, 9, 24}, {0x1480, 9, 23}, {0x1400, 9, 22}, {0x1380, 9, 21}, {0x1300, 9, 20}, {0x1280, 9, -18}, {0x1200, 9, -20}, {0x1180, 9, -21}, {0x1100, 9, -22}, {0x1080, 9, -23}, {0x1000, 9, -24}, {0x0f80, 9, -25}, {0x0f00, 9, -26}, {0x0e80, 9, -27}, {0x0e00, 9, -33}, {0x0d80, 9, -54}, {0x0d00, 9, -56}, {0x0cc0, 10, 63}, {0x0c80, 10, 62}, {0x0c40, 10, 61}, {0x0c00, 10, 60}, {0x0bc0, 10, 59}, {0x0b80, 10, 58}, {0x0b40, 10, 57}, {0x0b00, 10, 54}, {0x0ac0, 10, 53}, {0x0a80, 10, 43}, {0x0a40, 10, 40}, {0x0a00, 10, 39}, {0x09c0, 10, 38}, {0x0980, 10, 37}, {0x0940, 10, 36}, {0x0900, 10, 35}, {0x08c0, 10, 34}, {0x0880, 10, 33}, {0x0840, 10, 32}, {0x0800, 10, 30}, {0x07c0, 10, 29}, {0x0780, 10, -28}, {0x0740, 10, -29}, {0x0700, 10, -30}, {0x06c0, 10, -31}, {0x0680, 10, -32}, {0x0640, 10, -34}, {0x0600, 10, -35}, {0x05c0, 10, -36}, {0x0580, 10, -37}, {0x0540, 10, -38}, {0x0500, 10, -39}, {0x04c0, 10, -40}, {0x0480, 10, -41}, {0x0440, 10, -43}, {0x0400, 10, -53}, {0x03c0, 10, -55}, {0x0380, 10, -57}, {0x0340, 10, -58}, {0x0300, 10, -59}, {0x02c0, 10, -60}, {0x0280, 10, -61}, {0x0260, 11, 49}, {0x0240, 11, 47}, {0x0220, 11, 46}, {0x0200, 11, 45}, {0x01e0, 11, 44}, {0x01c0, 11, 42}, {0x01a0, 11, 41}, {0x0180, 11, -42}, {0x0160, 11, -44}, {0x0140, 11, -45}, {0x0120, 11, -46}, {0x0100, 11, -47}, {0x00e0, 11, -48}, {0x00c0, 11, -49}, {0x00a0, 11, -50}, {0x0080, 11, -62}, {0x0060, 11, -63}, {0x0050, 12, 52}, {0x0040, 12, 51}, {0x0030, 12, 50}, {0x0020, 12, 48}, {0x0010, 12, -51}, {0x0000, 12, -52}
+	}, {
+		{0xfc00, 6, 13}, {0xf800, 6, 11}, {0xf400, 6, 10}, {0xf000, 6, 9}, {0xec00, 6, 8}, {0xe800, 6, 7}, {0xe400, 6, 6}, {0xe000, 6, 5}, {0xdc00, 6, 4}, {0xd800, 6, 3}, {0xd400, 6, 2}, {0xd000, 6, 1}, {0xcc00, 6, 0}, {0xc800, 6, -1}, {0xc400, 6, -2}, {0xc000, 6, -3}, {0xbc00, 6, -4}, {0xb800, 6, -5}, {0xb400, 6, -6}, {0xb000, 6, -7}, {0xac00, 6, -8}, {0xa800, 6, -9}, {0xa400, 6, -10}, {0xa000, 6, -11}, {0x9c00, 6, -12}, {0x9800, 6, -13}, {0x9600, 7, 39}, {0x9400, 7, 38}, {0x9200, 7, 37}, {0x9000, 7, 36}, {0x8e00, 7, 35}, {0x8c00, 7, 34}, {0x8a00, 7, 33}, {0x8800, 7, 32}, {0x8600, 7, 31}, {0x8400, 7, 30}, {0x8200, 7, 29}, {0x8000, 7, 28}, {0x7e00, 7, 27}, {0x7c00, 7, 26}, {0x7a00, 7, 25}, {0x7800, 7, 24}, {0x7600, 7, 23}, {0x7400, 7, 22}, {0x7200, 7, 21}, {0x7000, 7, 20}, {0x6e00, 7, 19}, {0x6c00, 7, 18}, {0x6a00, 7, 17}, {0x6800, 7, 16}, {0x6600, 7, 15}, {0x6400, 7, 14}, {0x6200, 7, 12}, {0x6000, 7, -14}, {0x5e00, 7, -15}, {0x5c00, 7, -16}, {0x5a00, 7, -17}, {0x5800, 7, -18}, {0x5600, 7, -19}, {0x5400, 7, -20}, {0x5200, 7, -21}, {0x5000, 7, -22}, {0x4e00, 7, -23}, {0x4c00, 7, -24}, {0x4a00, 7, -25}, {0x4800, 7, -26}, {0x4600, 7, -27}, {0x4400, 7, -28}, {0x4200, 7, -29}, {0x4000, 7, -30}, {0x3e00, 7, -31}, {0x3c00, 7, -32}, {0x3a00, 7, -33}, {0x3800, 7, -34}, {0x3600, 7, -35}, {0x3400, 7, -36}, {0x3200, 7, -37}, {0x3000, 7, -38}, {0x2e00, 7, -39}, {0x2c00, 7, -40}, {0x2a00, 7, -41}, {0x2900, 8, 59}, {0x2800, 8, 58}, {0x2700, 8, 57}, {0x2600, 8, 56}, {0x2500, 8, 55}, {0x2400, 8, 54}, {0x2300, 8, 53}, {0x2200, 8, 52}, {0x2100, 8, 51}, {0x2000, 8, 50}, {0x1f00, 8, 49}, {0x1e00, 8, 48}, {0x1d00, 8, 47}, {0x1c00, 8, 46}, {0x1b00, 8, 45}, {0x1a00, 8, 44}, {0x1900, 8, 43}, {0x1800, 8, 42}, {0x1700, 8, 41}, {0x1600, 8, 40}, {0x1500, 8, -42}, {0x1400, 8, -43}, {0x1300, 8, -44}, {0x1200, 8, -45}, {0x1100, 8, -46}, {0x1000, 8, -47}, {0x0f00, 8, -48}, {0x0e00, 8, -49}, {0x0d00, 8, -50}, {0x0c00, 8, -51}, {0x0b00, 8, -52}, {0x0a00, 8, -53}, {0x0900, 8, -54}, {0x0800, 8, -55}, {0x0700, 8, -56}, {0x0600, 8, -57}, {0x0500, 8, -58}, {0x0400, 8, -59}, {0x0380, 9, 63}, {0x0300, 9, 62}, {0x0280, 9, 61}, {0x0200, 9, 60}, {0x0180, 9, -60}, {0x0100, 9, -61}, {0x0080, 9, -62}, {0x0000, 9, -63}
+	}
+};
+
+const mpc_huffman mpc_table_HuffQ9up_8 [256] = {
+	{0xfc00, 6, -128}, {0xf800, 6, 127}, {0xf600, 7, -108}, {0xf400, 7, -110}, {0xf200, 7, -111}, {0xf000, 7, -112}, {0xee00, 7, -113}, {0xec00, 7, -114}, {0xea00, 7, -115}, {0xe800, 7, -116}, {0xe600, 7, -117}, {0xe400, 7, -118}, {0xe200, 7, -119}, {0xe000, 7, -120}, {0xde00, 7, -121}, {0xdc00, 7, -122}, {0xda00, 7, -123}, {0xd800, 7, -124}, {0xd600, 7, -125}, {0xd400, 7, -126}, {0xd200, 7, -127}, {0xd000, 7, 126}, {0xce00, 7, 125}, {0xcc00, 7, 124}, {0xca00, 7, 123}, {0xc800, 7, 122}, {0xc600, 7, 121}, {0xc400, 7, 120}, {0xc200, 7, 119}, {0xc000, 7, 118}, {0xbe00, 7, 117}, {0xbc00, 7, 116}, {0xba00, 7, 115}, {0xb800, 7, 114}, {0xb600, 7, 113}, {0xb400, 7, 112}, {0xb200, 7, 111}, {0xb000, 7, 110}, {0xae00, 7, 109}, {0xac00, 7, 108}, {0xab00, 8, -44}, {0xaa00, 8, -45}, {0xa900, 8, -46}, {0xa800, 8, -47}, {0xa700, 8, -48}, {0xa600, 8, -49}, {0xa500, 8, -50}, {0xa400, 8, -51}, {0xa300, 8, -52}, {0xa200, 8, -53}, {0xa100, 8, -54}, {0xa000, 8, -55}, {0x9f00, 8, -56}, {0x9e00, 8, -57}, {0x9d00, 8, -58}, {0x9c00, 8, -59}, {0x9b00, 8, -60}, {0x9a00, 8, -61}, {0x9900, 8, -62}, {0x9800, 8, -63}, {0x9700, 8, -64}, {0x9600, 8, -65}, {0x9500, 8, -66}, {0x9400, 8, -67}, {0x9300, 8, -68}, {0x9200, 8, -69}, {0x9100, 8, -70}, {0x9000, 8, -71}, {0x8f00, 8, -72}, {0x8e00, 8, -73}, {0x8d00, 8, -74}, {0x8c00, 8, -75}, {0x8b00, 8, -76}, {0x8a00, 8, -77}, {0x8900, 8, -78}, {0x8800, 8, -79}, {0x8700, 8, -80}, {0x8600, 8, -81}, {0x8500, 8, -82}, {0x8400, 8, -83}, {0x8300, 8, -84}, {0x8200, 8, -85}, {0x8100, 8, -86}, {0x8000, 8, -87}, {0x7f00, 8, -88}, {0x7e00, 8, -89}, {0x7d00, 8, -90}, {0x7c00, 8, -91}, {0x7b00, 8, -92}, {0x7a00, 8, -93}, {0x7900, 8, -94}, {0x7800, 8, -95}, {0x7700, 8, -96}, {0x7600, 8, -97}, {0x7500, 8, -98}, {0x7400, 8, -99}, {0x7300, 8, -100}, {0x7200, 8, -101}, {0x7100, 8, -102}, {0x7000, 8, -103}, {0x6f00, 8, -104}, {0x6e00, 8, -105}, {0x6d00, 8, -106}, {0x6c00, 8, -107}, {0x6b00, 8, -109}, {0x6a00, 8, 107}, {0x6900, 8, 106}, {0x6800, 8, 105}, {0x6700, 8, 104}, {0x6600, 8, 103}, {0x6500, 8, 102}, {0x6400, 8, 101}, {0x6300, 8, 100}, {0x6200, 8, 99}, {0x6100, 8, 98}, {0x6000, 8, 97}, {0x5f00, 8, 96}, {0x5e00, 8, 95}, {0x5d00, 8, 94}, {0x5c00, 8, 93}, {0x5b00, 8, 92}, {0x5a00, 8, 91}, {0x5900, 8, 90}, {0x5800, 8, 89}, {0x5700, 8, 88}, {0x5600, 8, 87}, {0x5500, 8, 86}, {0x5400, 8, 85}, {0x5300, 8, 84}, {0x5200, 8, 83}, {0x5100, 8, 82}, {0x5000, 8, 81}, {0x4f00, 8, 80}, {0x4e00, 8, 79}, {0x4d00, 8, 78}, {0x4c00, 8, 77}, {0x4b00, 8, 76}, {0x4a00, 8, 75}, {0x4900, 8, 74}, {0x4800, 8, 73}, {0x4700, 8, 72}, {0x4600, 8, 71}, {0x4500, 8, 70}, {0x4400, 8, 69}, {0x4300, 8, 68}, {0x4200, 8, 67}, {0x4100, 8, 66}, {0x4000, 8, 65}, {0x3f00, 8, 64}, {0x3e00, 8, 63}, {0x3d00, 8, 62}, {0x3c00, 8, 61}, {0x3b00, 8, 60}, {0x3a00, 8, 59}, {0x3900, 8, 58}, {0x3800, 8, 57}, {0x3700, 8, 56}, {0x3600, 8, 55}, {0x3500, 8, 54}, {0x3400, 8, 53}, {0x3300, 8, 52}, {0x3200, 8, 51}, {0x3100, 8, 50}, {0x3000, 8, 49}, {0x2f00, 8, 48}, {0x2e00, 8, 47}, {0x2d00, 8, 46}, {0x2c00, 8, 45}, {0x2b00, 8, 44}, {0x2a00, 8, 43}, {0x2900, 8, 42}, {0x2800, 8, 40}, {0x2700, 8, 20}, {0x2600, 8, 19}, {0x2580, 9, -7}, {0x2500, 9, -8}, {0x2480, 9, -9}, {0x2400, 9, -10}, {0x2380, 9, -11}, {0x2300, 9, -12}, {0x2280, 9, -13}, {0x2200, 9, -14}, {0x2180, 9, -15}, {0x2100, 9, -16}, {0x2080, 9, -17}, {0x2000, 9, -18}, {0x1f80, 9, -19}, {0x1f00, 9, -20}, {0x1e80, 9, -21}, {0x1e00, 9, -22}, {0x1d80, 9, -23}, {0x1d00, 9, -24}, {0x1c80, 9, -25}, {0x1c00, 9, -26}, {0x1b80, 9, -27}, {0x1b00, 9, -28}, {0x1a80, 9, -29}, {0x1a00, 9, -30}, {0x1980, 9, -31}, {0x1900, 9, -32}, {0x1880, 9, -33}, {0x1800, 9, -34}, {0x1780, 9, -35}, {0x1700, 9, -36}, {0x1680, 9, -37}, {0x1600, 9, -38}, {0x1580, 9, -39}, {0x1500, 9, -40}, {0x1480, 9, -41}, {0x1400, 9, -42}, {0x1380, 9, -43}, {0x1300, 9, 41}, {0x1280, 9, 39}, {0x1200, 9, 38}, {0x1180, 9, 37}, {0x1100, 9, 36}, {0x1080, 9, 35}, {0x1000, 9, 34}, {0xf80, 9, 33}, {0xf00, 9, 32}, {0xe80, 9, 31}, {0xe00, 9, 30}, {0xd80, 9, 29}, {0xd00, 9, 28}, {0xc80, 9, 27}, {0xc00, 9, 26}, {0xb80, 9, 25}, {0xb00, 9, 24}, {0xa80, 9, 23}, {0xa00, 9, 22}, {0x980, 9, 21}, {0x900, 9, 18}, {0x880, 9, 17}, {0x800, 9, 16}, {0x780, 9, 15}, {0x700, 9, 14}, {0x680, 9, 13}, {0x600, 9, 12}, {0x580, 9, 11}, {0x500, 9, 10}, {0x480, 9, 9}, {0x400, 9, 8}, {0x380, 9, 7}, {0x300, 9, 6}, {0x280, 9, 5}, {0x240, 10, -3}, {0x200, 10, -4}, {0x1c0, 10, -5}, {0x180, 10, -6}, {0x140, 10, 4}, {0x100, 10, 3}, {0xc0, 10, 2}, {0x80, 10, 1}, {0x40, 10, 0}, {0x20, 11, -1}, {0x0, 11, -2}
 };
 
