#include "huffman_codes.h" const HuffmanCode_t table_0X [163] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 0.43024 bit/sample // Shannon = 0.42687 bit/sample // Huffman Loss= 0.00338 bit/sample // Effective V = 0.26243 // { 0xDC000000, 10 }, // Code 1093, 10 bits, 0.08553% { 0xDC400000, 10 }, // Code 2551, 10 bits, 0.08553% { 0xDC800000, 10 }, // Code 3037, 10 bits, 0.08553% { 0xDCC00000, 10 }, // Code 3199, 10 bits, 0.08553% { 0xDD000000, 10 }, // Code 3253, 10 bits, 0.08553% { 0xDD400000, 10 }, // Code 3271, 10 bits, 0.08553% { 0xDD800000, 10 }, // Code 3277, 10 bits, 0.08553% { 0xDDC00000, 10 }, // Code 3279, 10 bits, 0.08553% { 0x80000000, 5 }, // Code 3280, 5 bits, 2.07492% { 0xDE000000, 10 }, // Code 3281, 10 bits, 0.08553% { 0xDE400000, 10 }, // Code 3283, 10 bits, 0.08553% { 0xDE800000, 10 }, // Code 3289, 10 bits, 0.08553% { 0xDEC00000, 10 }, // Code 3307, 10 bits, 0.08553% { 0xDF000000, 10 }, // Code 3361, 10 bits, 0.08553% { 0xDF400000, 10 }, // Code 3523, 10 bits, 0.08553% { 0xDF800000, 10 }, // Code 4009, 10 bits, 0.08553% { 0xDFC00000, 10 }, // Code 5467, 10 bits, 0.08553% { 0xE0000000, 10 }, // Code 6925, 10 bits, 0.08553% { 0xE0400000, 10 }, // Code 7411, 10 bits, 0.08553% { 0xE0800000, 10 }, // Code 7573, 10 bits, 0.08553% { 0xE0C00000, 10 }, // Code 7627, 10 bits, 0.08553% { 0xE1000000, 10 }, // Code 7645, 10 bits, 0.08553% { 0xE1400000, 10 }, // Code 7651, 10 bits, 0.08553% { 0xE1800000, 10 }, // Code 7653, 10 bits, 0.08553% { 0x88000000, 5 }, // Code 7654, 5 bits, 2.07492% { 0xE1C00000, 10 }, // Code 7655, 10 bits, 0.08553% { 0xE2000000, 10 }, // Code 7657, 10 bits, 0.08553% { 0xE2400000, 10 }, // Code 7663, 10 bits, 0.08553% { 0xE2800000, 10 }, // Code 7681, 10 bits, 0.08553% { 0xE2C00000, 10 }, // Code 7735, 10 bits, 0.08553% { 0xE3000000, 10 }, // Code 7897, 10 bits, 0.08553% { 0xE3400000, 10 }, // Code 8383, 10 bits, 0.08553% { 0xE3800000, 10 }, // Code 8869, 10 bits, 0.08553% { 0xE3C00000, 10 }, // Code 9031, 10 bits, 0.08553% { 0xE4000000, 10 }, // Code 9085, 10 bits, 0.08553% { 0xE4400000, 10 }, // Code 9103, 10 bits, 0.08553% { 0xE4800000, 10 }, // Code 9109, 10 bits, 0.08553% { 0xE4C00000, 10 }, // Code 9111, 10 bits, 0.08553% { 0x90000000, 5 }, // Code 9112, 5 bits, 2.07492% { 0xE5000000, 10 }, // Code 9113, 10 bits, 0.08553% { 0xE5400000, 10 }, // Code 9115, 10 bits, 0.08553% { 0xE5800000, 10 }, // Code 9121, 10 bits, 0.08553% { 0xE5C00000, 10 }, // Code 9139, 10 bits, 0.08553% { 0xE6000000, 10 }, // Code 9193, 10 bits, 0.08553% { 0xE6400000, 10 }, // Code 9355, 10 bits, 0.08553% { 0xE6800000, 10 }, // Code 9517, 10 bits, 0.08553% { 0xE6C00000, 10 }, // Code 9571, 10 bits, 0.08553% { 0xE7000000, 10 }, // Code 9589, 10 bits, 0.08553% { 0xE7400000, 10 }, // Code 9595, 10 bits, 0.08553% { 0xE7800000, 10 }, // Code 9597, 10 bits, 0.08553% { 0x98000000, 5 }, // Code 9598, 5 bits, 2.07492% { 0xE7C00000, 10 }, // Code 9599, 10 bits, 0.08553% { 0xE8000000, 10 }, // Code 9601, 10 bits, 0.08553% { 0xE8400000, 10 }, // Code 9607, 10 bits, 0.08553% { 0xE8800000, 10 }, // Code 9625, 10 bits, 0.08553% { 0xE8C00000, 10 }, // Code 9679, 10 bits, 0.08553% { 0xE9000000, 10 }, // Code 9733, 10 bits, 0.08553% { 0xE9400000, 10 }, // Code 9751, 10 bits, 0.08553% { 0xE9800000, 10 }, // Code 9757, 10 bits, 0.08553% { 0xE9C00000, 10 }, // Code 9759, 10 bits, 0.08553% { 0xA0000000, 5 }, // Code 9760, 5 bits, 2.07492% { 0xEA000000, 10 }, // Code 9761, 10 bits, 0.08553% { 0xEA400000, 10 }, // Code 9763, 10 bits, 0.08553% { 0xEA800000, 10 }, // Code 9769, 10 bits, 0.08553% { 0xEAC00000, 10 }, // Code 9787, 10 bits, 0.08553% { 0xEB000000, 10 }, // Code 9805, 10 bits, 0.08553% { 0xEB400000, 10 }, // Code 9811, 10 bits, 0.08553% { 0xEB800000, 10 }, // Code 9813, 10 bits, 0.08553% { 0xA8000000, 6 }, // Code 9814, 6 bits, 2.07492% { 0xEBC00000, 10 }, // Code 9815, 10 bits, 0.08553% { 0xEC000000, 10 }, // Code 9817, 10 bits, 0.08553% { 0xEC400000, 10 }, // Code 9823, 10 bits, 0.08553% { 0xEC800000, 10 }, // Code 9829, 10 bits, 0.08553% { 0xECC00000, 10 }, // Code 9831, 10 bits, 0.08553% { 0xAC000000, 6 }, // Code 9832, 6 bits, 2.07492% { 0xED000000, 10 }, // Code 9833, 10 bits, 0.08553% { 0xED400000, 10 }, // Code 9835, 10 bits, 0.08553% { 0xED800000, 10 }, // Code 9837, 10 bits, 0.08553% { 0xB0000000, 6 }, // Code 9838, 6 bits, 2.07492% { 0xEDC00000, 10 }, // Code 9839, 10 bits, 0.08553% { 0xB4000000, 6 }, // Code 9840, 6 bits, 2.07492% { 0x00000000, 1 }, // Code 9841, 1 bits, 50.33478% { 0xB8000000, 6 }, // Code 9842, 6 bits, 2.07492% { 0xEE000000, 10 }, // Code 9843, 10 bits, 0.08553% { 0xBC000000, 6 }, // Code 9844, 6 bits, 2.07492% { 0xEE400000, 10 }, // Code 9845, 10 bits, 0.08553% { 0xEE800000, 10 }, // Code 9847, 10 bits, 0.08553% { 0xEEC00000, 10 }, // Code 9849, 10 bits, 0.08553% { 0xC0000000, 6 }, // Code 9850, 6 bits, 2.07492% { 0xEF000000, 10 }, // Code 9851, 10 bits, 0.08553% { 0xEF400000, 10 }, // Code 9853, 10 bits, 0.08553% { 0xEF800000, 10 }, // Code 9859, 10 bits, 0.08553% { 0xEFC00000, 10 }, // Code 9865, 10 bits, 0.08553% { 0xF0000000, 10 }, // Code 9867, 10 bits, 0.08553% { 0xC4000000, 6 }, // Code 9868, 6 bits, 2.07492% { 0xF0400000, 10 }, // Code 9869, 10 bits, 0.08553% { 0xF0800000, 10 }, // Code 9871, 10 bits, 0.08553% { 0xF0C00000, 10 }, // Code 9877, 10 bits, 0.08553% { 0xF1000000, 10 }, // Code 9895, 10 bits, 0.08553% { 0xF1400000, 10 }, // Code 9913, 10 bits, 0.08553% { 0xF1800000, 10 }, // Code 9919, 10 bits, 0.08553% { 0xF1C00000, 10 }, // Code 9921, 10 bits, 0.08553% { 0xC8000000, 6 }, // Code 9922, 6 bits, 2.07492% { 0xF2000000, 10 }, // Code 9923, 10 bits, 0.08553% { 0xF2400000, 10 }, // Code 9925, 10 bits, 0.08553% { 0xF2800000, 10 }, // Code 9931, 10 bits, 0.08553% { 0xF2C00000, 10 }, // Code 9949, 10 bits, 0.08553% { 0xF3000000, 10 }, // Code 10003, 10 bits, 0.08553% { 0xF3400000, 10 }, // Code 10057, 10 bits, 0.08553% { 0xF3800000, 10 }, // Code 10075, 10 bits, 0.08553% { 0xF3C00000, 10 }, // Code 10081, 10 bits, 0.08553% { 0xF4000000, 10 }, // Code 10083, 10 bits, 0.08553% { 0xCC000000, 6 }, // Code 10084, 6 bits, 2.07492% { 0xF4400000, 10 }, // Code 10085, 10 bits, 0.08553% { 0xF4800000, 10 }, // Code 10087, 10 bits, 0.08553% { 0xF4C00000, 10 }, // Code 10093, 10 bits, 0.08553% { 0xF5000000, 10 }, // Code 10111, 10 bits, 0.08553% { 0xF5400000, 10 }, // Code 10165, 10 bits, 0.08553% { 0xF5800000, 10 }, // Code 10327, 10 bits, 0.08553% { 0xF5C00000, 10 }, // Code 10489, 10 bits, 0.08553% { 0xF6000000, 10 }, // Code 10543, 10 bits, 0.08553% { 0xF6400000, 10 }, // Code 10561, 10 bits, 0.08553% { 0xF6800000, 10 }, // Code 10567, 10 bits, 0.08553% { 0xF6C00000, 10 }, // Code 10569, 10 bits, 0.08553% { 0xD0000000, 6 }, // Code 10570, 6 bits, 2.07492% { 0xF7000000, 10 }, // Code 10571, 10 bits, 0.08553% { 0xF7400000, 10 }, // Code 10573, 10 bits, 0.08553% { 0xF7800000, 10 }, // Code 10579, 10 bits, 0.08553% { 0xF7C00000, 10 }, // Code 10597, 10 bits, 0.08553% { 0xF8000000, 10 }, // Code 10651, 10 bits, 0.08553% { 0xF8400000, 10 }, // Code 10813, 10 bits, 0.08553% { 0xF8800000, 10 }, // Code 11299, 10 bits, 0.08553% { 0xF8C00000, 10 }, // Code 11785, 10 bits, 0.08553% { 0xF9000000, 10 }, // Code 11947, 10 bits, 0.08553% { 0xF9400000, 10 }, // Code 12001, 10 bits, 0.08553% { 0xF9800000, 10 }, // Code 12019, 10 bits, 0.08553% { 0xF9C00000, 10 }, // Code 12025, 10 bits, 0.08553% { 0xFA000000, 10 }, // Code 12027, 10 bits, 0.08553% { 0xD4000000, 6 }, // Code 12028, 6 bits, 2.07492% { 0xFA400000, 10 }, // Code 12029, 10 bits, 0.08553% { 0xFA800000, 10 }, // Code 12031, 10 bits, 0.08553% { 0xFAC00000, 10 }, // Code 12037, 10 bits, 0.08553% { 0xFB000000, 10 }, // Code 12055, 10 bits, 0.08553% { 0xFB400000, 10 }, // Code 12109, 10 bits, 0.08553% { 0xFB800000, 10 }, // Code 12271, 10 bits, 0.08553% { 0xFBC00000, 10 }, // Code 12757, 10 bits, 0.08553% { 0xFC000000, 10 }, // Code 14215, 10 bits, 0.08553% { 0xFC400000, 10 }, // Code 15673, 10 bits, 0.08553% { 0xFC800000, 10 }, // Code 16159, 10 bits, 0.08553% { 0xFCC00000, 10 }, // Code 16321, 10 bits, 0.08553% { 0xFD000000, 10 }, // Code 16375, 10 bits, 0.08553% { 0xFD400000, 10 }, // Code 16393, 10 bits, 0.08553% { 0xFD800000, 10 }, // Code 16399, 10 bits, 0.08553% { 0xFDC00000, 10 }, // Code 16401, 10 bits, 0.08553% { 0xD8000000, 6 }, // Code 16402, 6 bits, 2.07492% { 0xFE000000, 10 }, // Code 16403, 10 bits, 0.08553% { 0xFE400000, 10 }, // Code 16405, 10 bits, 0.08553% { 0xFE800000, 10 }, // Code 16411, 10 bits, 0.08553% { 0xFEC00000, 10 }, // Code 16429, 10 bits, 0.08553% { 0xFF000000, 10 }, // Code 16483, 10 bits, 0.08553% { 0xFF400000, 10 }, // Code 16645, 10 bits, 0.08553% { 0xFF800000, 10 }, // Code 17131, 10 bits, 0.08553% { 0xFFC00000, 10 }, // Code 18589, 10 bits, 0.08553% }; const HuffmanCode_t table_03 [ 73] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 0.58012 bit/sample // Shannon = 0.57957 bit/sample // Huffman Loss= 0.00056 bit/sample // Effective V = 0.32203 // { 0xE0000000, 8 }, // Code 40, 8 bits, 0.20150% { 0xE1000000, 8 }, // Code 94, 8 bits, 0.20150% { 0xE2000000, 8 }, // Code 112, 8 bits, 0.20150% { 0xE3000000, 8 }, // Code 118, 8 bits, 0.20150% { 0xE4000000, 9 }, // Code 120, 9 bits, 0.20150% { 0x80000000, 5 }, // Code 121, 5 bits, 3.17000% { 0xE4800000, 9 }, // Code 122, 9 bits, 0.20150% { 0xE5000000, 9 }, // Code 124, 9 bits, 0.20150% { 0xE5800000, 9 }, // Code 130, 9 bits, 0.20150% { 0xE6000000, 9 }, // Code 148, 9 bits, 0.20150% { 0xE6800000, 9 }, // Code 202, 9 bits, 0.20150% { 0xE7000000, 9 }, // Code 256, 9 bits, 0.20150% { 0xE7800000, 9 }, // Code 274, 9 bits, 0.20150% { 0xE8000000, 9 }, // Code 280, 9 bits, 0.20150% { 0xE8800000, 9 }, // Code 282, 9 bits, 0.20150% { 0x88000000, 5 }, // Code 283, 5 bits, 3.17000% { 0xE9000000, 9 }, // Code 284, 9 bits, 0.20150% { 0xE9800000, 9 }, // Code 286, 9 bits, 0.20150% { 0xEA000000, 9 }, // Code 292, 9 bits, 0.20150% { 0xEA800000, 9 }, // Code 310, 9 bits, 0.20150% { 0xEB000000, 9 }, // Code 328, 9 bits, 0.20150% { 0xEB800000, 9 }, // Code 334, 9 bits, 0.20150% { 0xEC000000, 9 }, // Code 336, 9 bits, 0.20150% { 0x90000000, 5 }, // Code 337, 5 bits, 3.17000% { 0xEC800000, 9 }, // Code 338, 9 bits, 0.20150% { 0xED000000, 9 }, // Code 340, 9 bits, 0.20150% { 0xED800000, 9 }, // Code 346, 9 bits, 0.20150% { 0xEE000000, 9 }, // Code 352, 9 bits, 0.20150% { 0xEE800000, 9 }, // Code 354, 9 bits, 0.20150% { 0x98000000, 5 }, // Code 355, 5 bits, 3.17000% { 0xEF000000, 9 }, // Code 356, 9 bits, 0.20150% { 0xEF800000, 9 }, // Code 358, 9 bits, 0.20150% { 0xF0000000, 9 }, // Code 360, 9 bits, 0.20150% { 0xA0000000, 5 }, // Code 361, 5 bits, 3.17000% { 0xF0800000, 9 }, // Code 362, 9 bits, 0.20150% { 0xA8000000, 5 }, // Code 363, 5 bits, 3.17000% { 0x00000000, 1 }, // Code 364, 1 bits, 49.86995% { 0xB0000000, 5 }, // Code 365, 5 bits, 3.17000% { 0xF1000000, 9 }, // Code 366, 9 bits, 0.20150% { 0xB8000000, 5 }, // Code 367, 5 bits, 3.17000% { 0xF1800000, 9 }, // Code 368, 9 bits, 0.20150% { 0xF2000000, 9 }, // Code 370, 9 bits, 0.20150% { 0xF2800000, 9 }, // Code 372, 9 bits, 0.20150% { 0xC0000000, 5 }, // Code 373, 5 bits, 3.17000% { 0xF3000000, 9 }, // Code 374, 9 bits, 0.20150% { 0xF3800000, 9 }, // Code 376, 9 bits, 0.20150% { 0xF4000000, 9 }, // Code 382, 9 bits, 0.20150% { 0xF4800000, 9 }, // Code 388, 9 bits, 0.20150% { 0xF5000000, 9 }, // Code 390, 9 bits, 0.20150% { 0xC8000000, 5 }, // Code 391, 5 bits, 3.17000% { 0xF5800000, 9 }, // Code 392, 9 bits, 0.20150% { 0xF6000000, 9 }, // Code 394, 9 bits, 0.20150% { 0xF6800000, 9 }, // Code 400, 9 bits, 0.20150% { 0xF7000000, 9 }, // Code 418, 9 bits, 0.20150% { 0xF7800000, 9 }, // Code 436, 9 bits, 0.20150% { 0xF8000000, 9 }, // Code 442, 9 bits, 0.20150% { 0xF8800000, 9 }, // Code 444, 9 bits, 0.20150% { 0xD0000000, 5 }, // Code 445, 5 bits, 3.17000% { 0xF9000000, 9 }, // Code 446, 9 bits, 0.20150% { 0xF9800000, 9 }, // Code 448, 9 bits, 0.20150% { 0xFA000000, 9 }, // Code 454, 9 bits, 0.20150% { 0xFA800000, 9 }, // Code 472, 9 bits, 0.20150% { 0xFB000000, 9 }, // Code 526, 9 bits, 0.20150% { 0xFB800000, 9 }, // Code 580, 9 bits, 0.20150% { 0xFC000000, 9 }, // Code 598, 9 bits, 0.20150% { 0xFC800000, 9 }, // Code 604, 9 bits, 0.20150% { 0xFD000000, 9 }, // Code 606, 9 bits, 0.20150% { 0xD8000000, 5 }, // Code 607, 5 bits, 3.17000% { 0xFD800000, 9 }, // Code 608, 9 bits, 0.20150% { 0xFE000000, 9 }, // Code 610, 9 bits, 0.20150% { 0xFE800000, 9 }, // Code 616, 9 bits, 0.20150% { 0xFF000000, 9 }, // Code 634, 9 bits, 0.20150% { 0xFF800000, 9 }, // Code 688, 9 bits, 0.20150% }; const HuffmanCode_t table_04 [ 81] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 1.10694 bit/sample // Shannon = 1.10138 bit/sample // Huffman Loss= 0.00556 bit/sample // Effective V = 0.51564 // { 0xFF000000, 12 }, // Code 0, 12 bits, 0.03124% { 0xF0000000, 9 }, // Code 1, 9 bits, 0.17249% { 0xFF100000, 12 }, // Code 2, 12 bits, 0.03124% { 0xF0800000, 9 }, // Code 3, 9 bits, 0.17249% { 0xC0000000, 7 }, // Code 4, 7 bits, 0.95248% { 0xF1000000, 9 }, // Code 5, 9 bits, 0.17249% { 0xFF200000, 12 }, // Code 6, 12 bits, 0.03124% { 0xF1800000, 9 }, // Code 7, 9 bits, 0.17249% { 0xFF300000, 12 }, // Code 8, 12 bits, 0.03124% { 0xF2000000, 9 }, // Code 9, 9 bits, 0.17249% { 0xC2000000, 7 }, // Code 10, 7 bits, 0.95248% { 0xF2800000, 9 }, // Code 11, 9 bits, 0.17249% { 0xC4000000, 7 }, // Code 12, 7 bits, 0.95248% { 0x40000000, 4 }, // Code 13, 4 bits, 5.25964% { 0xC6000000, 7 }, // Code 14, 7 bits, 0.95248% { 0xF3000000, 9 }, // Code 15, 9 bits, 0.17249% { 0xC8000000, 7 }, // Code 16, 7 bits, 0.95248% { 0xF3800000, 9 }, // Code 17, 9 bits, 0.17249% { 0xFF400000, 12 }, // Code 18, 12 bits, 0.03124% { 0xF4000000, 9 }, // Code 19, 9 bits, 0.17249% { 0xFF500000, 12 }, // Code 20, 12 bits, 0.03124% { 0xF4800000, 9 }, // Code 21, 9 bits, 0.17249% { 0xCA000000, 7 }, // Code 22, 7 bits, 0.95248% { 0xF5000000, 9 }, // Code 23, 9 bits, 0.17249% { 0xFF600000, 12 }, // Code 24, 12 bits, 0.03124% { 0xF5800000, 9 }, // Code 25, 9 bits, 0.17249% { 0xFF700000, 12 }, // Code 26, 12 bits, 0.03124% { 0xF6000000, 9 }, // Code 27, 9 bits, 0.17249% { 0xCC000000, 7 }, // Code 28, 7 bits, 0.95248% { 0xF6800000, 9 }, // Code 29, 9 bits, 0.17249% { 0xCE000000, 7 }, // Code 30, 7 bits, 0.95248% { 0x50000000, 4 }, // Code 31, 4 bits, 5.25964% { 0xD0000000, 7 }, // Code 32, 7 bits, 0.95248% { 0xF7000000, 9 }, // Code 33, 9 bits, 0.17249% { 0xD2000000, 7 }, // Code 34, 7 bits, 0.95248% { 0xF7800000, 9 }, // Code 35, 9 bits, 0.17249% { 0xD4000000, 7 }, // Code 36, 7 bits, 0.95248% { 0x60000000, 4 }, // Code 37, 4 bits, 5.25964% { 0xD6000000, 7 }, // Code 38, 7 bits, 0.95248% { 0x70000000, 4 }, // Code 39, 4 bits, 5.25964% { 0x00000000, 2 }, // Code 40, 2 bits, 29.04386% { 0x80000000, 4 }, // Code 41, 4 bits, 5.25964% { 0xD8000000, 7 }, // Code 42, 7 bits, 0.95248% { 0x90000000, 4 }, // Code 43, 4 bits, 5.25964% { 0xDA000000, 7 }, // Code 44, 7 bits, 0.95248% { 0xF8000000, 9 }, // Code 45, 9 bits, 0.17249% { 0xDC000000, 7 }, // Code 46, 7 bits, 0.95248% { 0xF8800000, 9 }, // Code 47, 9 bits, 0.17249% { 0xDE000000, 7 }, // Code 48, 7 bits, 0.95248% { 0xA0000000, 4 }, // Code 49, 4 bits, 5.25964% { 0xE0000000, 7 }, // Code 50, 7 bits, 0.95248% { 0xF9000000, 9 }, // Code 51, 9 bits, 0.17249% { 0xE2000000, 7 }, // Code 52, 7 bits, 0.95248% { 0xF9800000, 9 }, // Code 53, 9 bits, 0.17249% { 0xFF800000, 12 }, // Code 54, 12 bits, 0.03124% { 0xFA000000, 9 }, // Code 55, 9 bits, 0.17249% { 0xFF900000, 12 }, // Code 56, 12 bits, 0.03124% { 0xFA800000, 9 }, // Code 57, 9 bits, 0.17249% { 0xE4000000, 7 }, // Code 58, 7 bits, 0.95248% { 0xFB000000, 9 }, // Code 59, 9 bits, 0.17249% { 0xFFA00000, 12 }, // Code 60, 12 bits, 0.03124% { 0xFB800000, 9 }, // Code 61, 9 bits, 0.17249% { 0xFFB00000, 12 }, // Code 62, 12 bits, 0.03124% { 0xFC000000, 9 }, // Code 63, 9 bits, 0.17249% { 0xE6000000, 7 }, // Code 64, 7 bits, 0.95248% { 0xFC800000, 9 }, // Code 65, 9 bits, 0.17249% { 0xE8000000, 7 }, // Code 66, 7 bits, 0.95248% { 0xB0000000, 4 }, // Code 67, 4 bits, 5.25964% { 0xEA000000, 7 }, // Code 68, 7 bits, 0.95248% { 0xFD000000, 9 }, // Code 69, 9 bits, 0.17249% { 0xEC000000, 7 }, // Code 70, 7 bits, 0.95248% { 0xFD800000, 9 }, // Code 71, 9 bits, 0.17249% { 0xFFC00000, 12 }, // Code 72, 12 bits, 0.03124% { 0xFE000000, 10 }, // Code 73, 10 bits, 0.17249% { 0xFFD00000, 12 }, // Code 74, 12 bits, 0.03124% { 0xFE400000, 10 }, // Code 75, 10 bits, 0.17249% { 0xEE000000, 7 }, // Code 76, 7 bits, 0.95248% { 0xFE800000, 10 }, // Code 77, 10 bits, 0.17249% { 0xFFE00000, 12 }, // Code 78, 12 bits, 0.03124% { 0xFEC00000, 10 }, // Code 79, 10 bits, 0.17249% { 0xFFF00000, 12 }, // Code 80, 12 bits, 0.03124% }; const HuffmanCode_t table_05 [ 27] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 1.36785 bit/sample // Shannon = 1.35762 bit/sample // Huffman Loss= 0.01023 bit/sample // Effective V = 0.62588 // { 0xF0000000, 7 }, // Code 0, 7 bits, 0.75135% { 0xA0000000, 5 }, // Code 1, 5 bits, 2.33344% { 0xF2000000, 7 }, // Code 2, 7 bits, 0.75135% { 0xA8000000, 5 }, // Code 3, 5 bits, 2.33344% { 0x40000000, 4 }, // Code 4, 4 bits, 7.24690% { 0xB0000000, 5 }, // Code 5, 5 bits, 2.33344% { 0xF4000000, 7 }, // Code 6, 7 bits, 0.75135% { 0xB8000000, 5 }, // Code 7, 5 bits, 2.33344% { 0xF6000000, 7 }, // Code 8, 7 bits, 0.75135% { 0xC0000000, 5 }, // Code 9, 5 bits, 2.33344% { 0x50000000, 4 }, // Code 10, 4 bits, 7.24690% { 0xC8000000, 5 }, // Code 11, 5 bits, 2.33344% { 0x60000000, 4 }, // Code 12, 4 bits, 7.24690% { 0x00000000, 2 }, // Code 13, 2 bits, 22.50651% { 0x70000000, 4 }, // Code 14, 4 bits, 7.24690% { 0xD0000000, 5 }, // Code 15, 5 bits, 2.33344% { 0x80000000, 4 }, // Code 16, 4 bits, 7.24690% { 0xD8000000, 5 }, // Code 17, 5 bits, 2.33344% { 0xF8000000, 7 }, // Code 18, 7 bits, 0.75135% { 0xE0000000, 6 }, // Code 19, 6 bits, 2.33344% { 0xFA000000, 7 }, // Code 20, 7 bits, 0.75135% { 0xE4000000, 6 }, // Code 21, 6 bits, 2.33344% { 0x90000000, 4 }, // Code 22, 4 bits, 7.24690% { 0xE8000000, 6 }, // Code 23, 6 bits, 2.33344% { 0xFC000000, 7 }, // Code 24, 7 bits, 0.75135% { 0xEC000000, 6 }, // Code 25, 6 bits, 2.33344% { 0xFE000000, 7 }, // Code 26, 7 bits, 0.75135% }; const HuffmanCode_t table_06 [125] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 1.55501 bit/sample // Shannon = 1.54386 bit/sample // Huffman Loss= 0.01115 bit/sample // Effective V = 0.70554 // { 0xFFFF0000, 19 }, // Code 0, 19 bits, 0.00011% { 0xFFD00000, 15 }, // Code 1, 15 bits, 0.00222% { 0xFF800000, 13 }, // Code 2, 13 bits, 0.00603% { 0xFFD20000, 15 }, // Code 3, 15 bits, 0.00222% { 0xFFFF2000, 19 }, // Code 4, 19 bits, 0.00011% { 0xFFD40000, 15 }, // Code 5, 15 bits, 0.00222% { 0xFC800000, 11 }, // Code 6, 11 bits, 0.04452% { 0xF7000000, 10 }, // Code 7, 10 bits, 0.12102% { 0xFCA00000, 11 }, // Code 8, 11 bits, 0.04452% { 0xFFD60000, 15 }, // Code 9, 15 bits, 0.00222% { 0xFF880000, 13 }, // Code 10, 13 bits, 0.00603% { 0xF7400000, 10 }, // Code 11, 10 bits, 0.12102% { 0xF0000000, 8 }, // Code 12, 8 bits, 0.32896% { 0xF7800000, 10 }, // Code 13, 10 bits, 0.12102% { 0xFF900000, 13 }, // Code 14, 13 bits, 0.00603% { 0xFFD80000, 15 }, // Code 15, 15 bits, 0.00222% { 0xFCC00000, 11 }, // Code 16, 11 bits, 0.04452% { 0xF7C00000, 10 }, // Code 17, 10 bits, 0.12102% { 0xFCE00000, 11 }, // Code 18, 11 bits, 0.04452% { 0xFFDA0000, 15 }, // Code 19, 15 bits, 0.00222% { 0xFFFF4000, 19 }, // Code 20, 19 bits, 0.00011% { 0xFFDC0000, 15 }, // Code 21, 15 bits, 0.00222% { 0xFF980000, 13 }, // Code 22, 13 bits, 0.00603% { 0xFFDE0000, 15 }, // Code 23, 15 bits, 0.00222% { 0xFFFF6000, 19 }, // Code 24, 19 bits, 0.00011% { 0xFFE00000, 15 }, // Code 25, 15 bits, 0.00222% { 0xFD000000, 11 }, // Code 26, 11 bits, 0.04452% { 0xF8000000, 10 }, // Code 27, 10 bits, 0.12102% { 0xFD200000, 11 }, // Code 28, 11 bits, 0.04452% { 0xFFE20000, 15 }, // Code 29, 15 bits, 0.00222% { 0xFD400000, 11 }, // Code 30, 11 bits, 0.04452% { 0xE0000000, 7 }, // Code 31, 7 bits, 0.89421% { 0x80000000, 5 }, // Code 32, 5 bits, 2.43071% { 0xE2000000, 7 }, // Code 33, 7 bits, 0.89421% { 0xFD600000, 11 }, // Code 34, 11 bits, 0.04452% { 0xF8400000, 10 }, // Code 35, 10 bits, 0.12102% { 0x88000000, 5 }, // Code 36, 5 bits, 2.43071% { 0x20000000, 4 }, // Code 37, 4 bits, 6.60735% { 0x90000000, 5 }, // Code 38, 5 bits, 2.43071% { 0xF8800000, 10 }, // Code 39, 10 bits, 0.12102% { 0xFD800000, 11 }, // Code 40, 11 bits, 0.04452% { 0xE4000000, 7 }, // Code 41, 7 bits, 0.89421% { 0x98000000, 5 }, // Code 42, 5 bits, 2.43071% { 0xE6000000, 7 }, // Code 43, 7 bits, 0.89421% { 0xFDA00000, 11 }, // Code 44, 11 bits, 0.04452% { 0xFFE40000, 15 }, // Code 45, 15 bits, 0.00222% { 0xFDC00000, 11 }, // Code 46, 11 bits, 0.04452% { 0xF8C00000, 10 }, // Code 47, 10 bits, 0.12102% { 0xFDE00000, 11 }, // Code 48, 11 bits, 0.04452% { 0xFFE60000, 15 }, // Code 49, 15 bits, 0.00222% { 0xFFA00000, 13 }, // Code 50, 13 bits, 0.00603% { 0xF9000000, 10 }, // Code 51, 10 bits, 0.12102% { 0xF1000000, 8 }, // Code 52, 8 bits, 0.32896% { 0xF9400000, 10 }, // Code 53, 10 bits, 0.12102% { 0xFFA80000, 13 }, // Code 54, 13 bits, 0.00603% { 0xF9800000, 10 }, // Code 55, 10 bits, 0.12102% { 0xA0000000, 5 }, // Code 56, 5 bits, 2.43071% { 0x30000000, 4 }, // Code 57, 4 bits, 6.60735% { 0xA8000000, 5 }, // Code 58, 5 bits, 2.43071% { 0xF9C00000, 10 }, // Code 59, 10 bits, 0.12102% { 0xF2000000, 8 }, // Code 60, 8 bits, 0.32896% { 0x40000000, 4 }, // Code 61, 4 bits, 6.60735% { 0x00000000, 3 }, // Code 62, 3 bits, 17.96065% { 0x50000000, 4 }, // Code 63, 4 bits, 6.60735% { 0xF3000000, 8 }, // Code 64, 8 bits, 0.32896% { 0xFA000000, 10 }, // Code 65, 10 bits, 0.12102% { 0xB0000000, 5 }, // Code 66, 5 bits, 2.43071% { 0x60000000, 4 }, // Code 67, 4 bits, 6.60735% { 0xB8000000, 5 }, // Code 68, 5 bits, 2.43071% { 0xFA400000, 10 }, // Code 69, 10 bits, 0.12102% { 0xFFB00000, 13 }, // Code 70, 13 bits, 0.00603% { 0xFA800000, 10 }, // Code 71, 10 bits, 0.12102% { 0xF4000000, 8 }, // Code 72, 8 bits, 0.32896% { 0xFAC00000, 10 }, // Code 73, 10 bits, 0.12102% { 0xFFB80000, 13 }, // Code 74, 13 bits, 0.00603% { 0xFFE80000, 15 }, // Code 75, 15 bits, 0.00222% { 0xFE000000, 11 }, // Code 76, 11 bits, 0.04452% { 0xFB000000, 10 }, // Code 77, 10 bits, 0.12102% { 0xFE200000, 11 }, // Code 78, 11 bits, 0.04452% { 0xFFEA0000, 15 }, // Code 79, 15 bits, 0.00222% { 0xFE400000, 11 }, // Code 80, 11 bits, 0.04452% { 0xE8000000, 7 }, // Code 81, 7 bits, 0.89421% { 0xC0000000, 5 }, // Code 82, 5 bits, 2.43071% { 0xEA000000, 7 }, // Code 83, 7 bits, 0.89421% { 0xFE600000, 11 }, // Code 84, 11 bits, 0.04452% { 0xFB400000, 10 }, // Code 85, 10 bits, 0.12102% { 0xC8000000, 5 }, // Code 86, 5 bits, 2.43071% { 0x70000000, 4 }, // Code 87, 4 bits, 6.60735% { 0xD0000000, 5 }, // Code 88, 5 bits, 2.43071% { 0xFB800000, 10 }, // Code 89, 10 bits, 0.12102% { 0xFE800000, 11 }, // Code 90, 11 bits, 0.04452% { 0xEC000000, 7 }, // Code 91, 7 bits, 0.89421% { 0xD8000000, 5 }, // Code 92, 5 bits, 2.43071% { 0xEE000000, 7 }, // Code 93, 7 bits, 0.89421% { 0xFEA00000, 11 }, // Code 94, 11 bits, 0.04452% { 0xFFEC0000, 15 }, // Code 95, 15 bits, 0.00222% { 0xFEC00000, 11 }, // Code 96, 11 bits, 0.04452% { 0xFBC00000, 10 }, // Code 97, 10 bits, 0.12102% { 0xFEE00000, 11 }, // Code 98, 11 bits, 0.04452% { 0xFFEE0000, 15 }, // Code 99, 15 bits, 0.00222% { 0xFFFF8000, 19 }, // Code 100, 19 bits, 0.00011% { 0xFFF00000, 15 }, // Code 101, 15 bits, 0.00222% { 0xFFC00000, 14 }, // Code 102, 14 bits, 0.00603% { 0xFFF20000, 15 }, // Code 103, 15 bits, 0.00222% { 0xFFFFA000, 19 }, // Code 104, 19 bits, 0.00011% { 0xFFF40000, 15 }, // Code 105, 15 bits, 0.00222% { 0xFF000000, 11 }, // Code 106, 11 bits, 0.04452% { 0xFC000000, 10 }, // Code 107, 10 bits, 0.12102% { 0xFF200000, 11 }, // Code 108, 11 bits, 0.04452% { 0xFFF60000, 15 }, // Code 109, 15 bits, 0.00222% { 0xFFC40000, 14 }, // Code 110, 14 bits, 0.00603% { 0xFC400000, 10 }, // Code 111, 10 bits, 0.12102% { 0xF5000000, 8 }, // Code 112, 8 bits, 0.32896% { 0xF6000000, 9 }, // Code 113, 9 bits, 0.12102% { 0xFFC80000, 14 }, // Code 114, 14 bits, 0.00603% { 0xFFF80000, 15 }, // Code 115, 15 bits, 0.00222% { 0xFF400000, 11 }, // Code 116, 11 bits, 0.04452% { 0xF6800000, 9 }, // Code 117, 9 bits, 0.12102% { 0xFF600000, 11 }, // Code 118, 11 bits, 0.04452% { 0xFFFA0000, 15 }, // Code 119, 15 bits, 0.00222% { 0xFFFFC000, 19 }, // Code 120, 19 bits, 0.00011% { 0xFFFC0000, 15 }, // Code 121, 15 bits, 0.00222% { 0xFFCC0000, 14 }, // Code 122, 14 bits, 0.00603% { 0xFFFE0000, 16 }, // Code 123, 16 bits, 0.00222% { 0xFFFFE000, 19 }, // Code 124, 19 bits, 0.00011% }; const HuffmanCode_t table_07 [ 25] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 1.73381 bit/sample // Shannon = 1.72334 bit/sample // Huffman Loss= 0.01047 bit/sample // Effective V = 0.80740 // { 0xFF000000, 10 }, // Code 0, 10 bits, 0.10164% { 0xF0000000, 7 }, // Code 1, 7 bits, 0.63260% { 0xE0000000, 6 }, // Code 2, 6 bits, 1.71959% { 0xF2000000, 7 }, // Code 3, 7 bits, 0.63260% { 0xFF400000, 10 }, // Code 4, 10 bits, 0.10164% { 0xF4000000, 7 }, // Code 5, 7 bits, 0.63260% { 0xC0000000, 5 }, // Code 6, 5 bits, 3.93736% { 0x40000000, 3 }, // Code 7, 3 bits, 10.70286% { 0xC8000000, 5 }, // Code 8, 5 bits, 3.93736% { 0xF6000000, 7 }, // Code 9, 7 bits, 0.63260% { 0xE4000000, 6 }, // Code 10, 6 bits, 1.71959% { 0x60000000, 3 }, // Code 11, 3 bits, 10.70286% { 0x00000000, 2 }, // Code 12, 2 bits, 29.09340% { 0x80000000, 3 }, // Code 13, 3 bits, 10.70286% { 0xE8000000, 6 }, // Code 14, 6 bits, 1.71959% { 0xF8000000, 7 }, // Code 15, 7 bits, 0.63260% { 0xD0000000, 5 }, // Code 16, 5 bits, 3.93736% { 0xA0000000, 3 }, // Code 17, 3 bits, 10.70286% { 0xD8000000, 5 }, // Code 18, 5 bits, 3.93736% { 0xFA000000, 7 }, // Code 19, 7 bits, 0.63260% { 0xFF800000, 10 }, // Code 20, 10 bits, 0.10164% { 0xFC000000, 7 }, // Code 21, 7 bits, 0.63260% { 0xEC000000, 6 }, // Code 22, 6 bits, 1.71959% { 0xFE000000, 8 }, // Code 23, 8 bits, 0.63260% { 0xFFC00000, 10 }, // Code 24, 10 bits, 0.10164% }; const HuffmanCode_t table_08 [ 49] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 2.25259 bit/sample // Shannon = 2.23474 bit/sample // Huffman Loss= 0.01785 bit/sample // Effective V = 1.15223 // { 0xFFE00000, 13 }, // Code 0, 13 bits, 0.00342% { 0xFE000000, 10 }, // Code 1, 10 bits, 0.05206% { 0xF8000000, 9 }, // Code 2, 9 bits, 0.14913% { 0xF8800000, 9 }, // Code 3, 9 bits, 0.17549% { 0xF9000000, 9 }, // Code 4, 9 bits, 0.14913% { 0xFE400000, 10 }, // Code 5, 10 bits, 0.05206% { 0xFFE80000, 13 }, // Code 6, 13 bits, 0.00342% { 0xFE800000, 10 }, // Code 7, 10 bits, 0.05206% { 0xF0000000, 7 }, // Code 8, 7 bits, 0.79276% { 0x90000000, 5 }, // Code 9, 5 bits, 2.27085% { 0x98000000, 5 }, // Code 10, 5 bits, 2.67235% { 0xA0000000, 5 }, // Code 11, 5 bits, 2.27085% { 0xF2000000, 7 }, // Code 12, 7 bits, 0.79276% { 0xFEC00000, 10 }, // Code 13, 10 bits, 0.05206% { 0xF9800000, 9 }, // Code 14, 9 bits, 0.14913% { 0xA8000000, 5 }, // Code 15, 5 bits, 2.27085% { 0x00000000, 4 }, // Code 16, 4 bits, 6.50486% { 0x10000000, 4 }, // Code 17, 4 bits, 7.65495% { 0x20000000, 4 }, // Code 18, 4 bits, 6.50486% { 0xB0000000, 5 }, // Code 19, 5 bits, 2.27085% { 0xFA000000, 9 }, // Code 20, 9 bits, 0.14913% { 0xFA800000, 9 }, // Code 21, 9 bits, 0.17549% { 0xB8000000, 5 }, // Code 22, 5 bits, 2.67235% { 0x30000000, 4 }, // Code 23, 4 bits, 7.65495% { 0x40000000, 4 }, // Code 24, 4 bits, 9.00837% { 0x50000000, 4 }, // Code 25, 4 bits, 7.65495% { 0xC0000000, 5 }, // Code 26, 5 bits, 2.67235% { 0xFB000000, 9 }, // Code 27, 9 bits, 0.17549% { 0xFB800000, 9 }, // Code 28, 9 bits, 0.14913% { 0xC8000000, 5 }, // Code 29, 5 bits, 2.27085% { 0x60000000, 4 }, // Code 30, 4 bits, 6.50486% { 0x70000000, 4 }, // Code 31, 4 bits, 7.65495% { 0x80000000, 4 }, // Code 32, 4 bits, 6.50486% { 0xD0000000, 5 }, // Code 33, 5 bits, 2.27085% { 0xFC000000, 9 }, // Code 34, 9 bits, 0.14913% { 0xFF000000, 10 }, // Code 35, 10 bits, 0.05206% { 0xF4000000, 7 }, // Code 36, 7 bits, 0.79276% { 0xD8000000, 5 }, // Code 37, 5 bits, 2.27085% { 0xE0000000, 5 }, // Code 38, 5 bits, 2.67235% { 0xE8000000, 5 }, // Code 39, 5 bits, 2.27085% { 0xF6000000, 7 }, // Code 40, 7 bits, 0.79276% { 0xFF400000, 10 }, // Code 41, 10 bits, 0.05206% { 0xFFF00000, 13 }, // Code 42, 13 bits, 0.00342% { 0xFF800000, 10 }, // Code 43, 10 bits, 0.05206% { 0xFC800000, 9 }, // Code 44, 9 bits, 0.14913% { 0xFD000000, 9 }, // Code 45, 9 bits, 0.17549% { 0xFD800000, 9 }, // Code 46, 9 bits, 0.14913% { 0xFFC00000, 11 }, // Code 47, 11 bits, 0.05206% { 0xFFF80000, 13 }, // Code 48, 13 bits, 0.00342% }; const HuffmanCode_t table_09 [ 81] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 2.71648 bit/sample // Shannon = 2.69749 bit/sample // Huffman Loss= 0.01900 bit/sample // Effective V = 1.59212 // { 0xFFF80000, 15 }, // Code 0, 15 bits, 0.00344% { 0xFF800000, 12 }, // Code 1, 12 bits, 0.02758% { 0xFB000000, 10 }, // Code 2, 10 bits, 0.08031% { 0xFB400000, 10 }, // Code 3, 10 bits, 0.11906% { 0xFB800000, 10 }, // Code 4, 10 bits, 0.12594% { 0xFBC00000, 10 }, // Code 5, 10 bits, 0.11906% { 0xFC000000, 10 }, // Code 6, 10 bits, 0.08031% { 0xFF900000, 12 }, // Code 7, 12 bits, 0.02758% { 0xFFFA0000, 15 }, // Code 8, 15 bits, 0.00344% { 0xFFA00000, 12 }, // Code 9, 12 bits, 0.02758% { 0xF8000000, 9 }, // Code 10, 9 bits, 0.22103% { 0xD0000000, 7 }, // Code 11, 7 bits, 0.64350% { 0xD2000000, 7 }, // Code 12, 7 bits, 0.95398% { 0xD4000000, 7 }, // Code 13, 7 bits, 1.00917% { 0xD6000000, 7 }, // Code 14, 7 bits, 0.95398% { 0xD8000000, 7 }, // Code 15, 7 bits, 0.64350% { 0xF8800000, 9 }, // Code 16, 9 bits, 0.22103% { 0xFFB00000, 12 }, // Code 17, 12 bits, 0.02758% { 0xFC400000, 10 }, // Code 18, 10 bits, 0.08031% { 0xDA000000, 7 }, // Code 19, 7 bits, 0.64350% { 0xC0000000, 6 }, // Code 20, 6 bits, 1.87351% { 0x30000000, 5 }, // Code 21, 5 bits, 2.77743% { 0x38000000, 5 }, // Code 22, 5 bits, 2.93812% { 0x40000000, 5 }, // Code 23, 5 bits, 2.77743% { 0xC4000000, 6 }, // Code 24, 6 bits, 1.87351% { 0xDC000000, 7 }, // Code 25, 7 bits, 0.64350% { 0xFC800000, 10 }, // Code 26, 10 bits, 0.08031% { 0xFCC00000, 10 }, // Code 27, 10 bits, 0.11906% { 0xDE000000, 7 }, // Code 28, 7 bits, 0.95398% { 0x48000000, 5 }, // Code 29, 5 bits, 2.77743% { 0x50000000, 5 }, // Code 30, 5 bits, 4.11746% { 0x58000000, 5 }, // Code 31, 5 bits, 4.35568% { 0x60000000, 5 }, // Code 32, 5 bits, 4.11746% { 0x68000000, 5 }, // Code 33, 5 bits, 2.77743% { 0xE0000000, 7 }, // Code 34, 7 bits, 0.95398% { 0xFD000000, 10 }, // Code 35, 10 bits, 0.11906% { 0xFD400000, 10 }, // Code 36, 10 bits, 0.12594% { 0xE2000000, 7 }, // Code 37, 7 bits, 1.00917% { 0x70000000, 5 }, // Code 38, 5 bits, 2.93812% { 0x78000000, 5 }, // Code 39, 5 bits, 4.35568% { 0x00000000, 4 }, // Code 40, 4 bits, 4.60768% { 0x10000000, 4 }, // Code 41, 4 bits, 4.35568% { 0x80000000, 5 }, // Code 42, 5 bits, 2.93812% { 0xE4000000, 7 }, // Code 43, 7 bits, 1.00917% { 0xF9000000, 9 }, // Code 44, 9 bits, 0.12594% { 0xFD800000, 10 }, // Code 45, 10 bits, 0.11906% { 0xE6000000, 7 }, // Code 46, 7 bits, 0.95398% { 0x88000000, 5 }, // Code 47, 5 bits, 2.77743% { 0x90000000, 5 }, // Code 48, 5 bits, 4.11746% { 0x20000000, 4 }, // Code 49, 4 bits, 4.35568% { 0x98000000, 5 }, // Code 50, 5 bits, 4.11746% { 0xA0000000, 5 }, // Code 51, 5 bits, 2.77743% { 0xE8000000, 7 }, // Code 52, 7 bits, 0.95398% { 0xFDC00000, 10 }, // Code 53, 10 bits, 0.11906% { 0xFE000000, 10 }, // Code 54, 10 bits, 0.08031% { 0xEA000000, 7 }, // Code 55, 7 bits, 0.64350% { 0xC8000000, 6 }, // Code 56, 6 bits, 1.87351% { 0xA8000000, 5 }, // Code 57, 5 bits, 2.77743% { 0xB0000000, 5 }, // Code 58, 5 bits, 2.93812% { 0xB8000000, 5 }, // Code 59, 5 bits, 2.77743% { 0xCC000000, 6 }, // Code 60, 6 bits, 1.87351% { 0xEC000000, 7 }, // Code 61, 7 bits, 0.64350% { 0xFE400000, 10 }, // Code 62, 10 bits, 0.08031% { 0xFFC00000, 12 }, // Code 63, 12 bits, 0.02758% { 0xF9800000, 9 }, // Code 64, 9 bits, 0.22103% { 0xEE000000, 7 }, // Code 65, 7 bits, 0.64350% { 0xF0000000, 7 }, // Code 66, 7 bits, 0.95398% { 0xF2000000, 7 }, // Code 67, 7 bits, 1.00917% { 0xF4000000, 7 }, // Code 68, 7 bits, 0.95398% { 0xF6000000, 7 }, // Code 69, 7 bits, 0.64350% { 0xFA000000, 9 }, // Code 70, 9 bits, 0.22103% { 0xFFD00000, 12 }, // Code 71, 12 bits, 0.02758% { 0xFFFC0000, 15 }, // Code 72, 15 bits, 0.00344% { 0xFFE00000, 12 }, // Code 73, 12 bits, 0.02758% { 0xFE800000, 10 }, // Code 74, 10 bits, 0.08031% { 0xFEC00000, 10 }, // Code 75, 10 bits, 0.11906% { 0xFA800000, 9 }, // Code 76, 9 bits, 0.12594% { 0xFF000000, 10 }, // Code 77, 10 bits, 0.11906% { 0xFF400000, 10 }, // Code 78, 10 bits, 0.08031% { 0xFFF00000, 13 }, // Code 79, 13 bits, 0.02758% { 0xFFFE0000, 15 }, // Code 80, 15 bits, 0.00344% }; const HuffmanCode_t table_10 [121] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 3.21626 bit/sample // Shannon = 3.19911 bit/sample // Huffman Loss= 0.01715 bit/sample // Effective V = 2.27744 // { 0xFFC00000, 12 }, // Code 0, 12 bits, 0.02310% { 0xFF800000, 11 }, // Code 1, 11 bits, 0.07021% { 0xFC000000, 10 }, // Code 2, 10 bits, 0.13779% { 0xF0000000, 9 }, // Code 3, 9 bits, 0.19481% { 0xF0800000, 9 }, // Code 4, 9 bits, 0.22131% { 0xF1000000, 9 }, // Code 5, 9 bits, 0.22538% { 0xF1800000, 9 }, // Code 6, 9 bits, 0.22131% { 0xF2000000, 9 }, // Code 7, 9 bits, 0.19481% { 0xFC400000, 10 }, // Code 8, 10 bits, 0.13779% { 0xFFA00000, 11 }, // Code 9, 11 bits, 0.07021% { 0xFFD00000, 12 }, // Code 10, 12 bits, 0.02310% { 0xFC800000, 10 }, // Code 11, 10 bits, 0.07021% { 0xF2800000, 9 }, // Code 12, 9 bits, 0.21339% { 0xE8000000, 8 }, // Code 13, 8 bits, 0.41882% { 0xB8000000, 7 }, // Code 14, 7 bits, 0.59211% { 0xBA000000, 7 }, // Code 15, 7 bits, 0.67267% { 0xBC000000, 7 }, // Code 16, 7 bits, 0.68505% { 0xBE000000, 7 }, // Code 17, 7 bits, 0.67267% { 0xC0000000, 7 }, // Code 18, 7 bits, 0.59211% { 0xE9000000, 8 }, // Code 19, 8 bits, 0.41882% { 0xF3000000, 9 }, // Code 20, 9 bits, 0.21339% { 0xFCC00000, 10 }, // Code 21, 10 bits, 0.07021% { 0xFD000000, 10 }, // Code 22, 10 bits, 0.13779% { 0xEA000000, 8 }, // Code 23, 8 bits, 0.41882% { 0xC2000000, 7 }, // Code 24, 7 bits, 0.82199% { 0x08000000, 6 }, // Code 25, 6 bits, 1.16211% { 0x0C000000, 6 }, // Code 26, 6 bits, 1.32023% { 0x10000000, 6 }, // Code 27, 6 bits, 1.34451% { 0x14000000, 6 }, // Code 28, 6 bits, 1.32023% { 0x18000000, 6 }, // Code 29, 6 bits, 1.16211% { 0xC4000000, 7 }, // Code 30, 7 bits, 0.82199% { 0xEB000000, 8 }, // Code 31, 8 bits, 0.41882% { 0xFD400000, 10 }, // Code 32, 10 bits, 0.13779% { 0xF3800000, 9 }, // Code 33, 9 bits, 0.19481% { 0xC6000000, 7 }, // Code 34, 7 bits, 0.59211% { 0x1C000000, 6 }, // Code 35, 6 bits, 1.16211% { 0x20000000, 6 }, // Code 36, 6 bits, 1.64295% { 0x24000000, 6 }, // Code 37, 6 bits, 1.86650% { 0x28000000, 6 }, // Code 38, 6 bits, 1.90082% { 0x2C000000, 6 }, // Code 39, 6 bits, 1.86650% { 0x30000000, 6 }, // Code 40, 6 bits, 1.64295% { 0x34000000, 6 }, // Code 41, 6 bits, 1.16211% { 0xC8000000, 7 }, // Code 42, 7 bits, 0.59211% { 0xF4000000, 9 }, // Code 43, 9 bits, 0.19481% { 0xF4800000, 9 }, // Code 44, 9 bits, 0.22131% { 0xCA000000, 7 }, // Code 45, 7 bits, 0.67267% { 0x38000000, 6 }, // Code 46, 6 bits, 1.32023% { 0x3C000000, 6 }, // Code 47, 6 bits, 1.86650% { 0x40000000, 6 }, // Code 48, 6 bits, 2.12046% { 0x44000000, 6 }, // Code 49, 6 bits, 2.15946% { 0x48000000, 6 }, // Code 50, 6 bits, 2.12046% { 0x4C000000, 6 }, // Code 51, 6 bits, 1.86650% { 0x50000000, 6 }, // Code 52, 6 bits, 1.32023% { 0xCC000000, 7 }, // Code 53, 7 bits, 0.67267% { 0xF5000000, 9 }, // Code 54, 9 bits, 0.22131% { 0xF5800000, 9 }, // Code 55, 9 bits, 0.22538% { 0xCE000000, 7 }, // Code 56, 7 bits, 0.68505% { 0x54000000, 6 }, // Code 57, 6 bits, 1.34451% { 0x58000000, 6 }, // Code 58, 6 bits, 1.90082% { 0x5C000000, 6 }, // Code 59, 6 bits, 2.15946% { 0x00000000, 5 }, // Code 60, 5 bits, 2.19917% { 0x60000000, 6 }, // Code 61, 6 bits, 2.15946% { 0x64000000, 6 }, // Code 62, 6 bits, 1.90082% { 0x68000000, 6 }, // Code 63, 6 bits, 1.34451% { 0xD0000000, 7 }, // Code 64, 7 bits, 0.68505% { 0xF6000000, 9 }, // Code 65, 9 bits, 0.22538% { 0xF6800000, 9 }, // Code 66, 9 bits, 0.22131% { 0xD2000000, 7 }, // Code 67, 7 bits, 0.67267% { 0x6C000000, 6 }, // Code 68, 6 bits, 1.32023% { 0x70000000, 6 }, // Code 69, 6 bits, 1.86650% { 0x74000000, 6 }, // Code 70, 6 bits, 2.12046% { 0x78000000, 6 }, // Code 71, 6 bits, 2.15946% { 0x7C000000, 6 }, // Code 72, 6 bits, 2.12046% { 0x80000000, 6 }, // Code 73, 6 bits, 1.86650% { 0x84000000, 6 }, // Code 74, 6 bits, 1.32023% { 0xD4000000, 7 }, // Code 75, 7 bits, 0.67267% { 0xF7000000, 9 }, // Code 76, 9 bits, 0.22131% { 0xF7800000, 9 }, // Code 77, 9 bits, 0.19481% { 0xD6000000, 7 }, // Code 78, 7 bits, 0.59211% { 0x88000000, 6 }, // Code 79, 6 bits, 1.16211% { 0x8C000000, 6 }, // Code 80, 6 bits, 1.64295% { 0x90000000, 6 }, // Code 81, 6 bits, 1.86650% { 0x94000000, 6 }, // Code 82, 6 bits, 1.90082% { 0x98000000, 6 }, // Code 83, 6 bits, 1.86650% { 0x9C000000, 6 }, // Code 84, 6 bits, 1.64295% { 0xA0000000, 6 }, // Code 85, 6 bits, 1.16211% { 0xD8000000, 7 }, // Code 86, 7 bits, 0.59211% { 0xF8000000, 9 }, // Code 87, 9 bits, 0.19481% { 0xFD800000, 10 }, // Code 88, 10 bits, 0.13779% { 0xEC000000, 8 }, // Code 89, 8 bits, 0.41882% { 0xDA000000, 7 }, // Code 90, 7 bits, 0.82199% { 0xA4000000, 6 }, // Code 91, 6 bits, 1.16211% { 0xA8000000, 6 }, // Code 92, 6 bits, 1.32023% { 0xAC000000, 6 }, // Code 93, 6 bits, 1.34451% { 0xB0000000, 6 }, // Code 94, 6 bits, 1.32023% { 0xB4000000, 6 }, // Code 95, 6 bits, 1.16211% { 0xDC000000, 7 }, // Code 96, 7 bits, 0.82199% { 0xED000000, 8 }, // Code 97, 8 bits, 0.41882% { 0xFDC00000, 10 }, // Code 98, 10 bits, 0.13779% { 0xFE000000, 10 }, // Code 99, 10 bits, 0.07021% { 0xF8800000, 9 }, // Code 100, 9 bits, 0.21339% { 0xEE000000, 8 }, // Code 101, 8 bits, 0.41882% { 0xDE000000, 7 }, // Code 102, 7 bits, 0.59211% { 0xE0000000, 7 }, // Code 103, 7 bits, 0.67267% { 0xE2000000, 7 }, // Code 104, 7 bits, 0.68505% { 0xE4000000, 7 }, // Code 105, 7 bits, 0.67267% { 0xE6000000, 7 }, // Code 106, 7 bits, 0.59211% { 0xEF000000, 8 }, // Code 107, 8 bits, 0.41882% { 0xF9000000, 9 }, // Code 108, 9 bits, 0.21339% { 0xFE400000, 10 }, // Code 109, 10 bits, 0.07021% { 0xFFE00000, 12 }, // Code 110, 12 bits, 0.02310% { 0xFE800000, 10 }, // Code 111, 10 bits, 0.07021% { 0xFEC00000, 10 }, // Code 112, 10 bits, 0.13779% { 0xF9800000, 9 }, // Code 113, 9 bits, 0.19481% { 0xFA000000, 9 }, // Code 114, 9 bits, 0.22131% { 0xFA800000, 9 }, // Code 115, 9 bits, 0.22538% { 0xFB000000, 9 }, // Code 116, 9 bits, 0.22131% { 0xFB800000, 9 }, // Code 117, 9 bits, 0.19481% { 0xFF000000, 10 }, // Code 118, 10 bits, 0.13779% { 0xFF400000, 10 }, // Code 119, 10 bits, 0.07021% { 0xFFF00000, 12 }, // Code 120, 12 bits, 0.02310% }; const HuffmanCode_t table_01 [ 32] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 3.74306 bit/sample // Shannon = 3.69606 bit/sample // Huffman Loss= 0.04700 bit/sample // Effective V = 3.21597 // { 0xFFFFFC00, 23 }, // Code 0, 23 bits, 0.00000% { 0xFFFFF000, 21 }, // Code 1, 21 bits, 0.00000% { 0xFFFFC000, 19 }, // Code 2, 19 bits, 0.00000% { 0xFFFF0000, 17 }, // Code 3, 17 bits, 0.00001% { 0xFFFC0000, 15 }, // Code 4, 15 bits, 0.00022% { 0xFFF00000, 13 }, // Code 5, 13 bits, 0.00286% { 0xFFC00000, 11 }, // Code 6, 11 bits, 0.02421% { 0xFF000000, 9 }, // Code 7, 9 bits, 0.13653% { 0xFC000000, 7 }, // Code 8, 7 bits, 0.53584% { 0xE0000000, 5 }, // Code 9, 5 bits, 1.52703% { 0xE8000000, 5 }, // Code 10, 5 bits, 3.29760% { 0x80000000, 4 }, // Code 11, 4 bits, 5.63147% { 0x90000000, 4 }, // Code 12, 4 bits, 7.93691% { 0xA0000000, 4 }, // Code 13, 4 bits, 9.63425% { 0x00000000, 3 }, // Code 14, 3 bits, 10.51125% { 0x20000000, 3 }, // Code 15, 3 bits, 10.75704% { 0x40000000, 3 }, // Code 16, 3 bits, 10.76660% { 0x60000000, 3 }, // Code 17, 3 bits, 10.51125% { 0xB0000000, 4 }, // Code 18, 4 bits, 9.63425% { 0xC0000000, 4 }, // Code 19, 4 bits, 7.93691% { 0xD0000000, 4 }, // Code 20, 4 bits, 5.63147% { 0xF0000000, 5 }, // Code 21, 5 bits, 3.29760% { 0xF8000000, 6 }, // Code 22, 6 bits, 1.52703% { 0xFE000000, 8 }, // Code 23, 8 bits, 0.53584% { 0xFF800000, 10 }, // Code 24, 10 bits, 0.13653% { 0xFFE00000, 12 }, // Code 25, 12 bits, 0.02421% { 0xFFF80000, 14 }, // Code 26, 14 bits, 0.00286% { 0xFFFE0000, 16 }, // Code 27, 16 bits, 0.00022% { 0xFFFF8000, 18 }, // Code 28, 18 bits, 0.00001% { 0xFFFFE000, 20 }, // Code 29, 20 bits, 0.00000% { 0xFFFFF800, 22 }, // Code 30, 22 bits, 0.00000% { 0xFFFFFE00, 23 }, // Code 31, 23 bits, 0.00000% }; const HuffmanCode_t table_02 [ 32] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 4.26343 bit/sample // Shannon = 4.22036 bit/sample // Huffman Loss= 0.04307 bit/sample // Effective V = 4.53977 // { 0xFFE00000, 12 }, // Code 0, 12 bits, 0.02499% { 0xFF000000, 10 }, // Code 1, 10 bits, 0.05199% { 0xFF400000, 10 }, // Code 2, 10 bits, 0.10299% { 0xFE000000, 9 }, // Code 3, 9 bits, 0.19430% { 0xFC000000, 8 }, // Code 4, 8 bits, 0.34910% { 0xF4000000, 7 }, // Code 5, 7 bits, 0.59733% { 0xF6000000, 7 }, // Code 6, 7 bits, 0.97336% { 0xE8000000, 6 }, // Code 7, 6 bits, 1.51052% { 0xC0000000, 5 }, // Code 8, 5 bits, 2.23240% { 0xC8000000, 5 }, // Code 9, 5 bits, 3.14204% { 0xD0000000, 5 }, // Code 10, 5 bits, 4.21160% { 0x40000000, 4 }, // Code 11, 4 bits, 5.37620% { 0x50000000, 4 }, // Code 12, 4 bits, 6.53580% { 0x60000000, 4 }, // Code 13, 4 bits, 7.56687% { 0x70000000, 4 }, // Code 14, 4 bits, 8.34310% { 0x00000000, 3 }, // Code 15, 3 bits, 8.76059% { 0x20000000, 3 }, // Code 16, 3 bits, 8.81422% { 0x80000000, 4 }, // Code 17, 4 bits, 8.34310% { 0x90000000, 4 }, // Code 18, 4 bits, 7.56687% { 0xA0000000, 4 }, // Code 19, 4 bits, 6.53580% { 0xB0000000, 4 }, // Code 20, 4 bits, 5.37620% { 0xD8000000, 5 }, // Code 21, 5 bits, 4.21160% { 0xE0000000, 5 }, // Code 22, 5 bits, 3.14204% { 0xEC000000, 6 }, // Code 23, 6 bits, 2.23240% { 0xF0000000, 6 }, // Code 24, 6 bits, 1.51052% { 0xF8000000, 7 }, // Code 25, 7 bits, 0.97336% { 0xFA000000, 7 }, // Code 26, 7 bits, 0.59733% { 0xFD000000, 8 }, // Code 27, 8 bits, 0.34910% { 0xFE800000, 9 }, // Code 28, 9 bits, 0.19430% { 0xFF800000, 10 }, // Code 29, 10 bits, 0.10299% { 0xFFC00000, 11 }, // Code 30, 11 bits, 0.05199% { 0xFFF00000, 12 }, // Code 31, 12 bits, 0.02499% }; const HuffmanCode_t table_11 [ 13] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 2.82366 bit/sample // Shannon = 2.76482 bit/sample // Huffman Loss= 0.05883 bit/sample // Effective V = 1.66003 // { 0xFF800000, 10 }, // Code 0, 10 bits, 0.00135% { 0xFE000000, 8 }, // Code 1, 8 bits, 0.06415% { 0xF8000000, 6 }, // Code 2, 6 bits, 0.94646% { 0xE0000000, 4 }, // Code 3, 4 bits, 5.26139% { 0x80000000, 3 }, // Code 4, 3 bits, 13.47611% { 0x00000000, 2 }, // Code 5, 2 bits, 19.73273% { 0x40000000, 2 }, // Code 6, 2 bits, 21.03564% { 0xA0000000, 3 }, // Code 7, 3 bits, 19.73273% { 0xC0000000, 3 }, // Code 8, 3 bits, 13.47611% { 0xF0000000, 5 }, // Code 9, 5 bits, 5.26139% { 0xFC000000, 7 }, // Code 10, 7 bits, 0.94646% { 0xFF000000, 9 }, // Code 11, 9 bits, 0.06415% { 0xFFC00000, 10 }, // Code 12, 10 bits, 0.00135% }; const HuffmanCode_t table_20 [ 33] = { // // Probability = 100.00000% (Huffman), 100.00000% (Shannon) // Huffman = 3.02971 bit/sample // Shannon = 2.95733 bit/sample // Huffman Loss= 0.07238 bit/sample // Effective V = 2.05267 // { 0xFFFC0000, 16 }, // Code 0, 16 bits, 0.00066% { 0xFFFD0000, 16 }, // Code 1, 16 bits, 0.00129% { 0xFFF80000, 15 }, // Code 2, 15 bits, 0.00254% { 0xFFF00000, 14 }, // Code 3, 14 bits, 0.00499% { 0xFFE00000, 13 }, // Code 4, 13 bits, 0.00980% { 0xFFC00000, 12 }, // Code 5, 12 bits, 0.01926% { 0xFF800000, 11 }, // Code 6, 11 bits, 0.03786% { 0xFF000000, 10 }, // Code 7, 10 bits, 0.07441% { 0xFE000000, 9 }, // Code 8, 9 bits, 0.14624% { 0xFC000000, 8 }, // Code 9, 8 bits, 0.28742% { 0xF8000000, 7 }, // Code 10, 7 bits, 0.56489% { 0xF0000000, 6 }, // Code 11, 6 bits, 1.11021% { 0xE0000000, 5 }, // Code 12, 5 bits, 2.18197% { 0xC0000000, 4 }, // Code 13, 4 bits, 4.28836% { 0x40000000, 3 }, // Code 14, 3 bits, 8.42817% { 0x60000000, 3 }, // Code 15, 3 bits, 16.56440% { 0x00000000, 2 }, // Code 16, 2 bits, 32.55502% { 0x80000000, 3 }, // Code 17, 3 bits, 16.56440% { 0xA0000000, 3 }, // Code 18, 3 bits, 8.42817% { 0xD0000000, 4 }, // Code 19, 4 bits, 4.28836% { 0xE8000000, 5 }, // Code 20, 5 bits, 2.18197% { 0xF4000000, 6 }, // Code 21, 6 bits, 1.11021% { 0xFA000000, 7 }, // Code 22, 7 bits, 0.56489% { 0xFD000000, 8 }, // Code 23, 8 bits, 0.28742% { 0xFE800000, 9 }, // Code 24, 9 bits, 0.14624% { 0xFF400000, 10 }, // Code 25, 10 bits, 0.07441% { 0xFFA00000, 11 }, // Code 26, 11 bits, 0.03786% { 0xFFD00000, 12 }, // Code 27, 12 bits, 0.01926% { 0xFFE80000, 13 }, // Code 28, 13 bits, 0.00980% { 0xFFF40000, 14 }, // Code 29, 14 bits, 0.00499% { 0xFFFA0000, 15 }, // Code 30, 15 bits, 0.00254% { 0xFFFE0000, 16 }, // Code 31, 16 bits, 0.00129% { 0xFFFF0000, 16 }, // Code 32, 16 bits, 0.00066% }; /* end of huffman_codes.c */