diff options
Diffstat (limited to 'jbig2dec/jbig2_hufftab.h')
-rw-r--r-- | jbig2dec/jbig2_hufftab.h | 305 |
1 files changed, 16 insertions, 289 deletions
diff --git a/jbig2dec/jbig2_hufftab.h b/jbig2dec/jbig2_hufftab.h index 29a39db0..68d1b619 100644 --- a/jbig2dec/jbig2_hufftab.h +++ b/jbig2dec/jbig2_hufftab.h @@ -18,298 +18,25 @@ */ /* predefined Huffman table definitions - -- See Annex B of the JBIG2 specification */ + -- See Annex B.5 of the JBIG2 specification */ #ifndef _JBIG2_HUFFTAB_H #define _JBIG2_HUFFTAB_H -/* types are in jbig2_huffman.h, you must include that first */ - -#define JBIG2_COUNTOF(x) (sizeof((x)) / sizeof((x)[0])) - -/* Table B.1 */ -const Jbig2HuffmanLine jbig2_huffman_lines_A[] = { - {1, 4, 0}, - {2, 8, 16}, - {3, 16, 272}, - {0, 32, -1}, /* low */ - {3, 32, 65808} /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_A = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_A), jbig2_huffman_lines_A }; - -/* Table B.2 */ -const Jbig2HuffmanLine jbig2_huffman_lines_B[] = { - {1, 0, 0}, - {2, 0, 1}, - {3, 0, 2}, - {4, 3, 3}, - {5, 6, 11}, - {0, 32, -1}, /* low */ - {6, 32, 75}, /* high */ - {6, 0, 0} /* OOB */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_B = { TRUE, JBIG2_COUNTOF(jbig2_huffman_lines_B), jbig2_huffman_lines_B }; - -/* Table B.3 */ -const Jbig2HuffmanLine jbig2_huffman_lines_C[] = { - {8, 8, -256}, - {1, 0, 0}, - {2, 0, 1}, - {3, 0, 2}, - {4, 3, 3}, - {5, 6, 11}, - {8, 32, -257}, /* low */ - {7, 32, 75}, /* high */ - {6, 0, 0} /* OOB */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_C = { TRUE, JBIG2_COUNTOF(jbig2_huffman_lines_C), jbig2_huffman_lines_C }; - -/* Table B.4 */ -const Jbig2HuffmanLine jbig2_huffman_lines_D[] = { - {1, 0, 1}, - {2, 0, 2}, - {3, 0, 3}, - {4, 3, 4}, - {5, 6, 12}, - {0, 32, -1}, /* low */ - {5, 32, 76}, /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_D = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_D), jbig2_huffman_lines_D }; - -/* Table B.5 */ -const Jbig2HuffmanLine jbig2_huffman_lines_E[] = { - {7, 8, -255}, - {1, 0, 1}, - {2, 0, 2}, - {3, 0, 3}, - {4, 3, 4}, - {5, 6, 12}, - {7, 32, -256}, /* low */ - {6, 32, 76} /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_E = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_E), jbig2_huffman_lines_E }; - -/* Table B.6 */ -const Jbig2HuffmanLine jbig2_huffman_lines_F[] = { - {5, 10, -2048}, - {4, 9, -1024}, - {4, 8, -512}, - {4, 7, -256}, - {5, 6, -128}, - {5, 5, -64}, - {4, 5, -32}, - {2, 7, 0}, - {3, 7, 128}, - {3, 8, 256}, - {4, 9, 512}, - {4, 10, 1024}, - {6, 32, -2049}, /* low */ - {6, 32, 2048} /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_F = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_F), jbig2_huffman_lines_F }; - -/* Table B.7 */ -const Jbig2HuffmanLine jbig2_huffman_lines_G[] = { - {4, 9, -1024}, - {3, 8, -512}, - {4, 7, -256}, - {5, 6, -128}, - {5, 5, -64}, - {4, 5, -32}, - {4, 5, 0}, - {5, 5, 32}, - {5, 6, 64}, - {4, 7, 128}, - {3, 8, 256}, - {3, 9, 512}, - {3, 10, 1024}, - {5, 32, -1025}, /* low */ - {5, 32, 2048} /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_G = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_G), jbig2_huffman_lines_G }; - -/* Table B.8 */ -const Jbig2HuffmanLine jbig2_huffman_lines_H[] = { - {8, 3, -15}, - {9, 1, -7}, - {8, 1, -5}, - {9, 0, -3}, - {7, 0, -2}, - {4, 0, -1}, - {2, 1, 0}, - {5, 0, 2}, - {6, 0, 3}, - {3, 4, 4}, - {6, 1, 20}, - {4, 4, 22}, - {4, 5, 38}, - {5, 6, 70}, - {5, 7, 134}, - {6, 7, 262}, - {7, 8, 390}, - {6, 10, 646}, - {9, 32, -16}, /* low */ - {9, 32, 1670}, /* high */ - {2, 0, 0} /* OOB */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_H = { TRUE, JBIG2_COUNTOF(jbig2_huffman_lines_H), jbig2_huffman_lines_H }; - -/* Table B.9 */ -const Jbig2HuffmanLine jbig2_huffman_lines_I[] = { - {8, 4, -31}, - {9, 2, -15}, - {8, 2, -11}, - {9, 1, -7}, - {7, 1, -5}, - {4, 1, -3}, - {3, 1, -1}, - {3, 1, 1}, - {5, 1, 3}, - {6, 1, 5}, - {3, 5, 7}, - {6, 2, 39}, - {4, 5, 43}, - {4, 6, 75}, - {5, 7, 139}, - {5, 8, 267}, - {6, 8, 523}, - {7, 9, 779}, - {6, 11, 1291}, - {9, 32, -32}, /* low */ - {9, 32, 3339}, /* high */ - {2, 0, 0} /* OOB */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_I = { TRUE, JBIG2_COUNTOF(jbig2_huffman_lines_I), jbig2_huffman_lines_I }; - -/* Table B.10 */ -const Jbig2HuffmanLine jbig2_huffman_lines_J[] = { - {7, 4, -21}, - {8, 0, -5}, - {7, 0, -4}, - {5, 0, -3}, - {2, 2, -2}, - {5, 0, 2}, - {6, 0, 3}, - {7, 0, 4}, - {8, 0, 5}, - {2, 6, 6}, - {5, 5, 70}, - {6, 5, 102}, - {6, 6, 134}, - {6, 7, 198}, - {6, 8, 326}, - {6, 9, 582}, - {6, 10, 1094}, - {7, 11, 2118}, - {8, 32, -22}, /* low */ - {8, 32, 4166}, /* high */ - {2, 0, 0} /* OOB */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_J = { TRUE, JBIG2_COUNTOF(jbig2_huffman_lines_J), jbig2_huffman_lines_J }; - -/* Table B.11 */ -const Jbig2HuffmanLine jbig2_huffman_lines_K[] = { - {1, 0, 1}, - {2, 1, 2}, - {4, 0, 4}, - {4, 1, 5}, - {5, 1, 7}, - {5, 2, 9}, - {6, 2, 13}, - {7, 2, 17}, - {7, 3, 21}, - {7, 4, 29}, - {7, 5, 45}, - {7, 6, 77}, - {0, 32, -1}, /* low */ - {7, 32, 141} /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_K = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_K), jbig2_huffman_lines_K }; - -/* Table B.12 */ -const Jbig2HuffmanLine jbig2_huffman_lines_L[] = { - {1, 0, 1}, - {2, 0, 2}, - {3, 1, 3}, - {5, 0, 5}, - {5, 1, 6}, - {6, 1, 8}, - {7, 0, 10}, - {7, 1, 11}, - {7, 2, 13}, - {7, 3, 17}, - {7, 4, 25}, - {8, 5, 41}, - {8, 32, 73}, - {0, 32, -1}, /* low */ - {0, 32, 0} /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_L = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_L), jbig2_huffman_lines_L }; - -/* Table B.13 */ -const Jbig2HuffmanLine jbig2_huffman_lines_M[] = { - {1, 0, 1}, - {3, 0, 2}, - {4, 0, 3}, - {5, 0, 4}, - {4, 1, 5}, - {3, 3, 7}, - {6, 1, 15}, - {6, 2, 17}, - {6, 3, 21}, - {6, 4, 29}, - {6, 5, 45}, - {7, 6, 77}, - {0, 32, -1}, /* low */ - {7, 32, 141} /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_M = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_M), jbig2_huffman_lines_M }; - -/* Table B.14 */ -const Jbig2HuffmanLine jbig2_huffman_lines_N[] = { - {3, 0, -2}, - {3, 0, -1}, - {1, 0, 0}, - {3, 0, 1}, - {3, 0, 2}, - {0, 32, -1}, /* low */ - {0, 32, 3}, /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_N = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_N), jbig2_huffman_lines_N }; - -/* Table B.15 */ -const Jbig2HuffmanLine jbig2_huffman_lines_O[] = { - {7, 4, -24}, - {6, 2, -8}, - {5, 1, -4}, - {4, 0, -2}, - {3, 0, -1}, - {1, 0, 0}, - {3, 0, 1}, - {4, 0, 2}, - {5, 1, 3}, - {6, 2, 5}, - {7, 4, 9}, - {7, 32, -25}, /* low */ - {7, 32, 25} /* high */ -}; - -const Jbig2HuffmanParams jbig2_huffman_params_O = { FALSE, JBIG2_COUNTOF(jbig2_huffman_lines_O), jbig2_huffman_lines_O }; - -#undef JBIG2_COUNTOF +extern const Jbig2HuffmanParams jbig2_huffman_params_A; +extern const Jbig2HuffmanParams jbig2_huffman_params_B; +extern const Jbig2HuffmanParams jbig2_huffman_params_C; +extern const Jbig2HuffmanParams jbig2_huffman_params_D; +extern const Jbig2HuffmanParams jbig2_huffman_params_E; +extern const Jbig2HuffmanParams jbig2_huffman_params_F; +extern const Jbig2HuffmanParams jbig2_huffman_params_G; +extern const Jbig2HuffmanParams jbig2_huffman_params_H; +extern const Jbig2HuffmanParams jbig2_huffman_params_I; +extern const Jbig2HuffmanParams jbig2_huffman_params_J; +extern const Jbig2HuffmanParams jbig2_huffman_params_K; +extern const Jbig2HuffmanParams jbig2_huffman_params_L; +extern const Jbig2HuffmanParams jbig2_huffman_params_M; +extern const Jbig2HuffmanParams jbig2_huffman_params_N; +extern const Jbig2HuffmanParams jbig2_huffman_params_O; #endif /* _JBIG2_HUFFTAB_H */ |