1 // Copyright 2016 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #include "core/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h" 8 9 #include "core/fxcrt/fx_memory.h" 10 11 const bool HuffmanTable_HTOOB_B1 = false; 12 const JBig2TableLine HuffmanTable_B1[] = {{1, 4, 0}, 13 {2, 8, 16}, 14 {3, 16, 272}, 15 {0, 32, -1}, 16 {3, 32, 65808}}; 17 const size_t HuffmanTable_B1_Size = FX_ArraySize(HuffmanTable_B1); 18 19 const bool HuffmanTable_HTOOB_B2 = true; 20 const JBig2TableLine HuffmanTable_B2[] = {{1, 0, 0}, {2, 0, 1}, {3, 0, 2}, 21 {4, 3, 3}, {5, 6, 11}, {0, 32, -1}, 22 {6, 32, 75}, {6, 0, 0}}; 23 const size_t HuffmanTable_B2_Size = FX_ArraySize(HuffmanTable_B2); 24 25 const bool HuffmanTable_HTOOB_B3 = true; 26 const JBig2TableLine HuffmanTable_B3[] = { 27 {8, 8, -256}, {1, 0, 0}, {2, 0, 1}, {3, 0, 2}, {4, 3, 3}, 28 {5, 6, 11}, {8, 32, -257}, {7, 32, 75}, {6, 0, 0}}; 29 const size_t HuffmanTable_B3_Size = FX_ArraySize(HuffmanTable_B3); 30 31 const bool HuffmanTable_HTOOB_B4 = false; 32 const JBig2TableLine HuffmanTable_B4[] = { 33 {1, 0, 1}, {2, 0, 2}, {3, 0, 3}, {4, 3, 4}, 34 {5, 6, 12}, {0, 32, -1}, {5, 32, 76}, 35 }; 36 const size_t HuffmanTable_B4_Size = FX_ArraySize(HuffmanTable_B4); 37 38 const bool HuffmanTable_HTOOB_B5 = false; 39 const JBig2TableLine HuffmanTable_B5[] = {{7, 8, -255}, {1, 0, 1}, {2, 0, 2}, 40 {3, 0, 3}, {4, 3, 4}, {5, 6, 12}, 41 {7, 32, -256}, {6, 32, 76}}; 42 const size_t HuffmanTable_B5_Size = FX_ArraySize(HuffmanTable_B5); 43 44 const bool HuffmanTable_HTOOB_B6 = false; 45 const JBig2TableLine HuffmanTable_B6[] = { 46 {5, 10, -2048}, {4, 9, -1024}, {4, 8, -512}, {4, 7, -256}, {5, 6, -128}, 47 {5, 5, -64}, {4, 5, -32}, {2, 7, 0}, {3, 7, 128}, {3, 8, 256}, 48 {4, 9, 512}, {4, 10, 1024}, {6, 32, -2049}, {6, 32, 2048}}; 49 const size_t HuffmanTable_B6_Size = FX_ArraySize(HuffmanTable_B6); 50 51 const bool HuffmanTable_HTOOB_B7 = false; 52 const JBig2TableLine HuffmanTable_B7[] = { 53 {4, 9, -1024}, {3, 8, -512}, {4, 7, -256}, {5, 6, -128}, {5, 5, -64}, 54 {4, 5, -32}, {4, 5, 0}, {5, 5, 32}, {5, 6, 64}, {4, 7, 128}, 55 {3, 8, 256}, {3, 9, 512}, {3, 10, 1024}, {5, 32, -1025}, {5, 32, 2048}, 56 }; 57 const size_t HuffmanTable_B7_Size = FX_ArraySize(HuffmanTable_B7); 58 59 const bool HuffmanTable_HTOOB_B8 = true; 60 const JBig2TableLine HuffmanTable_B8[] = { 61 {8, 3, -15}, {9, 1, -7}, {8, 1, -5}, {9, 0, -3}, {7, 0, -2}, 62 {4, 0, -1}, {2, 1, 0}, {5, 0, 2}, {6, 0, 3}, {3, 4, 4}, 63 {6, 1, 20}, {4, 4, 22}, {4, 5, 38}, {5, 6, 70}, {5, 7, 134}, 64 {6, 7, 262}, {7, 8, 390}, {6, 10, 646}, {9, 32, -16}, {9, 32, 1670}, 65 {2, 0, 0}}; 66 const size_t HuffmanTable_B8_Size = FX_ArraySize(HuffmanTable_B8); 67 68 const bool HuffmanTable_HTOOB_B9 = true; 69 const JBig2TableLine HuffmanTable_B9[] = { 70 {8, 4, -31}, {9, 2, -15}, {8, 2, -11}, {9, 1, -7}, {7, 1, -5}, 71 {4, 1, -3}, {3, 1, -1}, {3, 1, 1}, {5, 1, 3}, {6, 1, 5}, 72 {3, 5, 7}, {6, 2, 39}, {4, 5, 43}, {4, 6, 75}, {5, 7, 139}, 73 {5, 8, 267}, {6, 8, 523}, {7, 9, 779}, {6, 11, 1291}, {9, 32, -32}, 74 {9, 32, 3339}, {2, 0, 0}}; 75 const size_t HuffmanTable_B9_Size = FX_ArraySize(HuffmanTable_B9); 76 77 const bool HuffmanTable_HTOOB_B10 = true; 78 const JBig2TableLine HuffmanTable_B10[] = { 79 {7, 4, -21}, {8, 0, -5}, {7, 0, -4}, {5, 0, -3}, {2, 2, -2}, 80 {5, 0, 2}, {6, 0, 3}, {7, 0, 4}, {8, 0, 5}, {2, 6, 6}, 81 {5, 5, 70}, {6, 5, 102}, {6, 6, 134}, {6, 7, 198}, {6, 8, 326}, 82 {6, 9, 582}, {6, 10, 1094}, {7, 11, 2118}, {8, 32, -22}, {8, 32, 4166}, 83 {2, 0, 0}}; 84 const size_t HuffmanTable_B10_Size = FX_ArraySize(HuffmanTable_B10); 85 86 const bool HuffmanTable_HTOOB_B11 = false; 87 const JBig2TableLine HuffmanTable_B11[] = { 88 {1, 0, 1}, {2, 1, 2}, {4, 0, 4}, {4, 1, 5}, {5, 1, 7}, 89 {5, 2, 9}, {6, 2, 13}, {7, 2, 17}, {7, 3, 21}, {7, 4, 29}, 90 {7, 5, 45}, {7, 6, 77}, {0, 32, 0}, {7, 32, 141}}; 91 const size_t HuffmanTable_B11_Size = FX_ArraySize(HuffmanTable_B11); 92 93 const bool HuffmanTable_HTOOB_B12 = false; 94 const JBig2TableLine HuffmanTable_B12[] = { 95 {1, 0, 1}, {2, 0, 2}, {3, 1, 3}, {5, 0, 5}, {5, 1, 6}, 96 {6, 1, 8}, {7, 0, 10}, {7, 1, 11}, {7, 2, 13}, {7, 3, 17}, 97 {7, 4, 25}, {8, 5, 41}, {0, 32, 0}, {8, 32, 73}}; 98 const size_t HuffmanTable_B12_Size = FX_ArraySize(HuffmanTable_B12); 99 100 const bool HuffmanTable_HTOOB_B13 = false; 101 const JBig2TableLine HuffmanTable_B13[] = { 102 {1, 0, 1}, {3, 0, 2}, {4, 0, 3}, {5, 0, 4}, {4, 1, 5}, 103 {3, 3, 7}, {6, 1, 15}, {6, 2, 17}, {6, 3, 21}, {6, 4, 29}, 104 {6, 5, 45}, {7, 6, 77}, {0, 32, 0}, {7, 32, 141}}; 105 const size_t HuffmanTable_B13_Size = FX_ArraySize(HuffmanTable_B13); 106 107 const bool HuffmanTable_HTOOB_B14 = false; 108 const JBig2TableLine HuffmanTable_B14[] = {{3, 0, -2}, {3, 0, -1}, {1, 0, 0}, 109 {3, 0, 1}, {3, 0, 2}, {0, 32, -3}, 110 {0, 32, 3}}; 111 const size_t HuffmanTable_B14_Size = FX_ArraySize(HuffmanTable_B14); 112 113 const bool HuffmanTable_HTOOB_B15 = false; 114 const JBig2TableLine HuffmanTable_B15[] = { 115 {7, 4, -24}, {6, 2, -8}, {5, 1, -4}, {4, 0, -2}, {3, 0, -1}, 116 {1, 0, 0}, {3, 0, 1}, {4, 0, 2}, {5, 1, 3}, {6, 2, 5}, 117 {7, 4, 9}, {7, 32, -25}, {7, 32, 25}}; 118 const size_t HuffmanTable_B15_Size = FX_ArraySize(HuffmanTable_B15); 119