Home | History | Annotate | Download | only in jbig2
      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