161 lines
4.8 KiB
C
161 lines
4.8 KiB
C
/*
|
|
* Copyright (C) 2014 Andreas Steffen
|
|
* HSR Hochschule fuer Technik Rapperswil
|
|
*
|
|
* Optimum Huffman code for BLISS-X signatures
|
|
*
|
|
* This file has been automatically generated by the bliss_huffman utility
|
|
* Do not edit manually!
|
|
*/
|
|
|
|
/*
|
|
* Design: sigma = 215
|
|
*
|
|
* i p_z1[i]
|
|
* 0 0.7662277087816564 0 .. 256
|
|
* 1 0.2165251006508514 256 .. 512
|
|
* 2 0.0168930510015114 512 .. 768
|
|
* 3 0.0003522302274478 768 .. 1024
|
|
* 4 0.0000019067136680 1024 .. 1280
|
|
* 5 0.0000000026239598 1280 .. 1536
|
|
* 6 0.0000000000009052 1536 .. 1792
|
|
* 7 0.0000000000000001 1792 .. 2047
|
|
*
|
|
* k p_z2[k] dx = 1024
|
|
* -1 0.0086781953089156 -1535.5 .. -511.5
|
|
* 0 0.9826436093821688 -511.5 .. 511.5
|
|
* 1 0.0086781953089156 511.5 .. 1535.5
|
|
*
|
|
* (i, k) p
|
|
* (0,-1) 0.0066494737079101
|
|
* (0, 0) 0.7529287613658361
|
|
* (0, 1) 0.0066494737079101
|
|
*
|
|
* (1,-1) 0.0018790471127307
|
|
* (1, 0) 0.2127670064253900
|
|
* (1, 1) 0.0018790471127307
|
|
*
|
|
* (2,-1) 0.0001466011959546
|
|
* (2, 0) 0.0165998486096022
|
|
* (2, 1) 0.0001466011959546
|
|
*
|
|
* (3,-1) 0.0000030567227075
|
|
* (3, 0) 0.0003461167820328
|
|
* (3, 1) 0.0000030567227075
|
|
*
|
|
* (4,-1) 0.0000000165468336
|
|
* (4, 0) 0.0000018736200007
|
|
* (4, 1) 0.0000000165468336
|
|
*
|
|
* (5,-1) 0.0000000000227712
|
|
* (5, 0) 0.0000000025784174
|
|
* (5, 1) 0.0000000000227712
|
|
*
|
|
* (6,-1) 0.0000000000000079
|
|
* (6, 0) 0.0000000000008895
|
|
* (6, 1) 0.0000000000000079
|
|
*
|
|
* (7,-1) 0.0000000000000000
|
|
* (7, 0) 0.0000000000000001
|
|
* (7, 1) 0.0000000000000000
|
|
*
|
|
* p_sum 0.9999999999999998
|
|
*
|
|
* entropy = 1.0195 bits/tuple (521 bits)
|
|
*/
|
|
|
|
#include "bliss_huffman_code.h"
|
|
|
|
static bliss_huffman_code_node_t nodes[] = {
|
|
{ 1, 2, -1 }, /* 0: */
|
|
{ -1, -1, 1 }, /* 1: (0, 0) 1 bit */
|
|
{ 3, 4, -1 }, /* 2: */
|
|
{ -1, -1, 4 }, /* 3: (1, 0) 2 bits */
|
|
{ 5, 46, -1 }, /* 4: */
|
|
{ 6, 45, -1 }, /* 5: */
|
|
{ 7, 8, -1 }, /* 6: */
|
|
{ -1, -1, 0 }, /* 7: (0,-1) 5 bits */
|
|
{ 9, 44, -1 }, /* 8: */
|
|
{ 10, 11, -1 }, /* 9: */
|
|
{ -1, -1, 3 }, /* 10: (1,-1) 7 bits */
|
|
{ 12, 13, -1 }, /* 11: */
|
|
{ -1, -1, 10 }, /* 12: (3, 0) 8 bits */
|
|
{ 14, 29, -1 }, /* 13: */
|
|
{ 15, 22, -1 }, /* 14: */
|
|
{ 16, 19, -1 }, /* 15: */
|
|
{ 17, 18, -1 }, /* 16: */
|
|
{ -1, -1, 8 }, /* 17: (2, 1) 12 bits */
|
|
{ -1, -1, 6 }, /* 18: (2,-1) 12 bits */
|
|
{ 20, 21, -1 }, /* 19: */
|
|
{ -1, -1, 11 }, /* 20: (3, 1) 12 bits */
|
|
{ -1, -1, 9 }, /* 21: (3,-1) 12 bits */
|
|
{ 23, 26, -1 }, /* 22: */
|
|
{ 24, 25, -1 }, /* 23: */
|
|
{ -1, -1, 13 }, /* 24: (4, 0) 12 bits */
|
|
{ -1, -1, 14 }, /* 25: (4, 1) 12 bits */
|
|
{ 27, 28, -1 }, /* 26: */
|
|
{ -1, -1, 12 }, /* 27: (4,-1) 12 bits */
|
|
{ -1, -1, 16 }, /* 28: (5, 0) 12 bits */
|
|
{ 30, 37, -1 }, /* 29: */
|
|
{ 31, 34, -1 }, /* 30: */
|
|
{ 32, 33, -1 }, /* 31: */
|
|
{ -1, -1, 17 }, /* 32: (5, 1) 12 bits */
|
|
{ -1, -1, 15 }, /* 33: (5,-1) 12 bits */
|
|
{ 35, 36, -1 }, /* 34: */
|
|
{ -1, -1, 19 }, /* 35: (6, 0) 12 bits */
|
|
{ -1, -1, 20 }, /* 36: (6, 1) 12 bits */
|
|
{ 38, 41, -1 }, /* 37: */
|
|
{ 39, 40, -1 }, /* 38: */
|
|
{ -1, -1, 18 }, /* 39: (6,-1) 12 bits */
|
|
{ -1, -1, 22 }, /* 40: (7, 0) 12 bits */
|
|
{ 42, 43, -1 }, /* 41: */
|
|
{ -1, -1, 23 }, /* 42: (7, 1) 12 bits */
|
|
{ -1, -1, 21 }, /* 43: (7,-1) 12 bits */
|
|
{ -1, -1, 5 }, /* 44: (1, 1) 6 bits */
|
|
{ -1, -1, 2 }, /* 45: (0, 1) 4 bits */
|
|
{ -1, -1, 7 }, /* 46: (2, 0) 3 bits */
|
|
};
|
|
|
|
static bliss_huffman_code_tuple_t tuples[] = {
|
|
{ 24, 5 }, /* 0: (0,-1) 11000 */
|
|
{ 0, 1 }, /* 1: (0, 0) 0 */
|
|
{ 13, 4 }, /* 2: (0, 1) 1101 */
|
|
|
|
{ 100, 7 }, /* 3: (1,-1) 1100100 */
|
|
{ 2, 2 }, /* 4: (1, 0) 10 */
|
|
{ 51, 6 }, /* 5: (1, 1) 110011 */
|
|
|
|
{ 3249, 12 }, /* 6: (2,-1) 110010110001 */
|
|
{ 7, 3 }, /* 7: (2, 0) 111 */
|
|
{ 3248, 12 }, /* 8: (2, 1) 110010110000 */
|
|
|
|
{ 3251, 12 }, /* 9: (3,-1) 110010110011 */
|
|
{ 202, 8 }, /* 10: (3, 0) 11001010 */
|
|
{ 3250, 12 }, /* 11: (3, 1) 110010110010 */
|
|
|
|
{ 3254, 12 }, /* 12: (4,-1) 110010110110 */
|
|
{ 3252, 12 }, /* 13: (4, 0) 110010110100 */
|
|
{ 3253, 12 }, /* 14: (4, 1) 110010110101 */
|
|
|
|
{ 3257, 12 }, /* 15: (5,-1) 110010111001 */
|
|
{ 3255, 12 }, /* 16: (5, 0) 110010110111 */
|
|
{ 3256, 12 }, /* 17: (5, 1) 110010111000 */
|
|
|
|
{ 3260, 12 }, /* 18: (6,-1) 110010111100 */
|
|
{ 3258, 12 }, /* 19: (6, 0) 110010111010 */
|
|
{ 3259, 12 }, /* 20: (6, 1) 110010111011 */
|
|
|
|
{ 3263, 12 }, /* 21: (7,-1) 110010111111 */
|
|
{ 3261, 12 }, /* 22: (7, 0) 110010111101 */
|
|
{ 3262, 12 }, /* 23: (7, 1) 110010111110 */
|
|
};
|
|
|
|
/* code_length = 1.3189 bits/tuple (676 bits) */
|
|
|
|
bliss_huffman_code_t bliss_huffman_code_1 = {
|
|
.n_z1 = 8,
|
|
.n_z2 = 2,
|
|
.tuples = tuples,
|
|
.nodes = nodes
|
|
};
|