home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 110 / EnigmaAmiga110CD.iso / indispensabili / utility / apdf / xpdf-0.80 / xpdf / stream-ccitt.h < prev    next >
C/C++ Source or Header  |  1998-11-27  |  15KB  |  404 lines

  1. //========================================================================
  2. //
  3. // Stream-CCITT.h
  4. //
  5. // Tables for CCITT Fax decoding.
  6. //
  7. // Copyright 1996 Derek B. Noonburg
  8. //
  9. //========================================================================
  10.  
  11. struct CCITTCode {
  12.   short bits;
  13.   short n;
  14. };
  15.  
  16. #define ccittEOL -2
  17.  
  18. //------------------------------------------------------------------------
  19. // 2D codes
  20. //------------------------------------------------------------------------
  21.  
  22. #define twoDimPass   0
  23. #define twoDimHoriz  1
  24. #define twoDimVert0  2
  25. #define twoDimVertR1 3
  26. #define twoDimVertL1 4
  27. #define twoDimVertR2 5
  28. #define twoDimVertL2 6
  29. #define twoDimVertR3 7
  30. #define twoDimVertL3 8
  31.  
  32. // 1-4 bit codes
  33. static CCITTCode twoDimTab1[16] = {
  34.   {-1, -1},                // 0000
  35.   {4, twoDimPass},            // 0001
  36.   {3, twoDimHoriz}, {3, twoDimHoriz},    // 001x
  37.   {3, twoDimVertL1}, {3, twoDimVertL1},    // 010x
  38.   {3, twoDimVertR1}, {3, twoDimVertR1},    // 011x
  39.   {1, twoDimVert0}, {1, twoDimVert0},    // 1xxx
  40.     {1, twoDimVert0}, {1, twoDimVert0},
  41.     {1, twoDimVert0}, {1, twoDimVert0},
  42.     {1, twoDimVert0}, {1, twoDimVert0}
  43. };
  44.  
  45. //------------------------------------------------------------------------
  46. // white run lengths
  47. //------------------------------------------------------------------------
  48.  
  49. // 11-12 bit codes (upper 7 bits are 0)
  50. static CCITTCode whiteTab1[32] = {
  51.   {-1, -1},                    // 00000
  52.   {12, ccittEOL},                // 00001
  53.   {-1, -1}, {-1, -1},                // 0001x
  54.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},    // 001xx
  55.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},    // 010xx
  56.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},    // 011xx
  57.   {11, 1792}, {11, 1792},            // 1000x
  58.   {12, 1984},                    // 10010
  59.   {12, 2048},                    // 10011
  60.   {12, 2112},                    // 10100
  61.   {12, 2176},                    // 10101
  62.   {12, 2240},                    // 10110
  63.   {12, 2304},                    // 10111
  64.   {11, 1856}, {11, 1856},            // 1100x
  65.   {11, 1920}, {11, 1920},            // 1101x
  66.   {12, 2368},                    // 11100
  67.   {12, 2432},                    // 11101
  68.   {12, 2496},                    // 11110
  69.   {12, 2560}                    // 11111
  70. };
  71.  
  72. // 1-9 bit codes
  73. static CCITTCode whiteTab2[512] = {
  74.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},    // 0000000xx
  75.   {8, 29}, {8, 29},                // 00000010x
  76.   {8, 30}, {8, 30},                // 00000011x
  77.   {8, 45}, {8, 45},                // 00000100x
  78.   {8, 46}, {8, 46},                // 00000101x
  79.   {7, 22}, {7, 22}, {7, 22}, {7, 22},        // 0000011xx
  80.   {7, 23}, {7, 23}, {7, 23}, {7, 23},        // 0000100xx
  81.   {8, 47}, {8, 47},                // 00001010x
  82.   {8, 48}, {8, 48},                // 00001011x
  83.   {6, 13}, {6, 13}, {6, 13}, {6, 13},        // 000011xxx
  84.     {6, 13}, {6, 13}, {6, 13}, {6, 13},
  85.   {7, 20}, {7, 20}, {7, 20}, {7, 20},        // 0001000xx
  86.   {8, 33}, {8, 33},                // 00010010x
  87.   {8, 34}, {8, 34},                // 00010011x
  88.   {8, 35}, {8, 35},                // 00010100x
  89.   {8, 36}, {8, 36},                // 00010101x
  90.   {8, 37}, {8, 37},                // 00010110x
  91.   {8, 38}, {8, 38},                // 00010111x
  92.   {7, 19}, {7, 19}, {7, 19}, {7, 19},        // 0001100xx
  93.   {8, 31}, {8, 31},                // 00011010x
  94.   {8, 32}, {8, 32},                // 00011011x
  95.   {6, 1}, {6, 1}, {6, 1}, {6, 1},        // 000111xxx
  96.     {6, 1}, {6, 1}, {6, 1}, {6, 1},
  97.   {6, 12}, {6, 12}, {6, 12}, {6, 12},        // 001000xxx
  98.     {6, 12}, {6, 12}, {6, 12}, {6, 12},
  99.   {8, 53}, {8, 53},                // 00100100x
  100.   {8, 54}, {8, 54},                // 00100101x
  101.   {7, 26}, {7, 26}, {7, 26}, {7, 26},        // 0010011xx
  102.   {8, 39}, {8, 39},                // 00101000x
  103.   {8, 40}, {8, 40},                // 00101001x
  104.   {8, 41}, {8, 41},                // 00101010x
  105.   {8, 42}, {8, 42},                // 00101011x
  106.   {8, 43}, {8, 43},                // 00101100x
  107.   {8, 44}, {8, 44},                // 00101101x
  108.   {7, 21}, {7, 21}, {7, 21}, {7, 21},        // 0010111xx
  109.   {7, 28}, {7, 28}, {7, 28}, {7, 28},        // 0011000xx
  110.   {8, 61}, {8, 61},                // 00110010x
  111.   {8, 62}, {8, 62},                // 00110011x
  112.   {8, 63}, {8, 63},                // 00110100x
  113.   {8, 0}, {8, 0},                // 00110101x
  114.   {8, 320}, {8, 320},                // 00110110x
  115.   {8, 384}, {8, 384},                // 00110111x
  116.   {5, 10}, {5, 10}, {5, 10}, {5, 10},        // 00111xxxx
  117.     {5, 10}, {5, 10}, {5, 10}, {5, 10},
  118.     {5, 10}, {5, 10}, {5, 10}, {5, 10},
  119.     {5, 10}, {5, 10}, {5, 10}, {5, 10},
  120.   {5, 11}, {5, 11}, {5, 11}, {5, 11},        // 01000xxxx
  121.     {5, 11}, {5, 11}, {5, 11}, {5, 11},
  122.     {5, 11}, {5, 11}, {5, 11}, {5, 11},
  123.     {5, 11}, {5, 11}, {5, 11}, {5, 11},
  124.   {7, 27}, {7, 27}, {7, 27}, {7, 27},        // 0100100xx
  125.   {8, 59}, {8, 59},                // 01001010x
  126.   {8, 60}, {8, 60},                // 01001011x
  127.   {9, 1472},                    // 010011000
  128.   {9, 1536},                    // 010011001
  129.   {9, 1600},                    // 010011010
  130.   {9, 1728},                    // 010011011
  131.   {7, 18}, {7, 18}, {7, 18}, {7, 18},        // 0100111xx
  132.   {7, 24}, {7, 24}, {7, 24}, {7, 24},        // 0101000xx
  133.   {8, 49}, {8, 49},                // 01010010x
  134.   {8, 50}, {8, 50},                // 01010011x
  135.   {8, 51}, {8, 51},                // 01010100x
  136.   {8, 52}, {8, 52},                // 01010101x
  137.   {7, 25}, {7, 25}, {7, 25}, {7, 25},        // 0101011xx
  138.   {8, 55}, {8, 55},                // 01011000x
  139.   {8, 56}, {8, 56},                // 01011001x
  140.   {8, 57}, {8, 57},                // 01011010x
  141.   {8, 58}, {8, 58},                // 01011011x
  142.   {6, 192}, {6, 192}, {6, 192}, {6, 192},    // 010111xxx
  143.     {6, 192}, {6, 192}, {6, 192}, {6, 192},
  144.   {6, 1664}, {6, 1664}, {6, 1664}, {6, 1664},    // 011000xxx
  145.     {6, 1664}, {6, 1664}, {6, 1664}, {6, 1664},
  146.   {8, 448}, {8, 448},                // 01100100x
  147.   {8, 512}, {8, 512},                // 01100101x
  148.   {9, 704},                    // 011001100
  149.   {9, 768},                    // 011001101
  150.   {8, 640}, {8, 640},                // 01100111x
  151.   {8, 576}, {8, 576},                // 01101000x
  152.   {9, 832},                    // 011010010
  153.   {9, 896},                    // 011010011
  154.   {9, 960},                    // 011010100
  155.   {9, 1024},                    // 011010101
  156.   {9, 1088},                    // 011010110
  157.   {9, 1152},                    // 011010111
  158.   {9, 1216},                    // 011011000
  159.   {9, 1280},                    // 011011001
  160.   {9, 1344},                    // 011011010
  161.   {9, 1408},                    // 011011011
  162.   {7, 256}, {7, 256}, {7, 256}, {7, 256},    // 0110111xx
  163.   {4, 2}, {4, 2}, {4, 2}, {4, 2},        // 0111xxxxx
  164.     {4, 2}, {4, 2}, {4, 2}, {4, 2},
  165.     {4, 2}, {4, 2}, {4, 2}, {4, 2},
  166.     {4, 2}, {4, 2}, {4, 2}, {4, 2},
  167.     {4, 2}, {4, 2}, {4, 2}, {4, 2},
  168.     {4, 2}, {4, 2}, {4, 2}, {4, 2},
  169.     {4, 2}, {4, 2}, {4, 2}, {4, 2},
  170.     {4, 2}, {4, 2}, {4, 2}, {4, 2},
  171.   {4, 3}, {4, 3}, {4, 3}, {4, 3},        // 1000xxxxx
  172.     {4, 3}, {4, 3}, {4, 3}, {4, 3},
  173.     {4, 3}, {4, 3}, {4, 3}, {4, 3},
  174.     {4, 3}, {4, 3}, {4, 3}, {4, 3},
  175.     {4, 3}, {4, 3}, {4, 3}, {4, 3},
  176.     {4, 3}, {4, 3}, {4, 3}, {4, 3},
  177.     {4, 3}, {4, 3}, {4, 3}, {4, 3},
  178.     {4, 3}, {4, 3}, {4, 3}, {4, 3},
  179.   {5, 128}, {5, 128}, {5, 128}, {5, 128},    // 10010xxxx
  180.     {5, 128}, {5, 128}, {5, 128}, {5, 128},
  181.     {5, 128}, {5, 128}, {5, 128}, {5, 128},
  182.     {5, 128}, {5, 128}, {5, 128}, {5, 128},
  183.   {5, 8}, {5, 8}, {5, 8}, {5, 8},        // 10011xxxx
  184.     {5, 8}, {5, 8}, {5, 8}, {5, 8},
  185.     {5, 8}, {5, 8}, {5, 8}, {5, 8},
  186.     {5, 8}, {5, 8}, {5, 8}, {5, 8},
  187.   {5, 9}, {5, 9}, {5, 9}, {5, 9},        // 10100xxxx
  188.     {5, 9}, {5, 9}, {5, 9}, {5, 9},
  189.     {5, 9}, {5, 9}, {5, 9}, {5, 9},
  190.     {5, 9}, {5, 9}, {5, 9}, {5, 9},
  191.   {6, 16}, {6, 16}, {6, 16}, {6, 16},        // 101010xxx
  192.     {6, 16}, {6, 16}, {6, 16}, {6, 16},
  193.   {6, 17}, {6, 17}, {6, 17}, {6, 17},        // 101011xxx
  194.     {6, 17}, {6, 17}, {6, 17}, {6, 17},
  195.   {4, 4}, {4, 4}, {4, 4}, {4, 4},        // 1011xxxxx
  196.     {4, 4}, {4, 4}, {4, 4}, {4, 4},
  197.     {4, 4}, {4, 4}, {4, 4}, {4, 4},
  198.     {4, 4}, {4, 4}, {4, 4}, {4, 4},
  199.     {4, 4}, {4, 4}, {4, 4}, {4, 4},
  200.     {4, 4}, {4, 4}, {4, 4}, {4, 4},
  201.     {4, 4}, {4, 4}, {4, 4}, {4, 4},
  202.     {4, 4}, {4, 4}, {4, 4}, {4, 4},
  203.   {4, 5}, {4, 5}, {4, 5}, {4, 5},        // 1100xxxxx
  204.     {4, 5}, {4, 5}, {4, 5}, {4, 5},
  205.     {4, 5}, {4, 5}, {4, 5}, {4, 5},
  206.     {4, 5}, {4, 5}, {4, 5}, {4, 5},
  207.     {4, 5}, {4, 5}, {4, 5}, {4, 5},
  208.     {4, 5}, {4, 5}, {4, 5}, {4, 5},
  209.     {4, 5}, {4, 5}, {4, 5}, {4, 5},
  210.     {4, 5}, {4, 5}, {4, 5}, {4, 5},
  211.   {6, 14}, {6, 14}, {6, 14}, {6, 14},        // 110100xxx
  212.     {6, 14}, {6, 14}, {6, 14}, {6, 14},
  213.   {6, 15}, {6, 15}, {6, 15}, {6, 15},        // 110101xxx
  214.     {6, 15}, {6, 15}, {6, 15}, {6, 15},
  215.   {5, 64}, {5, 64}, {5, 64}, {5, 64},        // 11011xxxx
  216.     {5, 64}, {5, 64}, {5, 64}, {5, 64},
  217.     {5, 64}, {5, 64}, {5, 64}, {5, 64},
  218.     {5, 64}, {5, 64}, {5, 64}, {5, 64},
  219.   {4, 6}, {4, 6}, {4, 6}, {4, 6},        // 1110xxxxx
  220.     {4, 6}, {4, 6}, {4, 6}, {4, 6},
  221.     {4, 6}, {4, 6}, {4, 6}, {4, 6},
  222.     {4, 6}, {4, 6}, {4, 6}, {4, 6},
  223.     {4, 6}, {4, 6}, {4, 6}, {4, 6},
  224.     {4, 6}, {4, 6}, {4, 6}, {4, 6},
  225.     {4, 6}, {4, 6}, {4, 6}, {4, 6},
  226.     {4, 6}, {4, 6}, {4, 6}, {4, 6},
  227.   {4, 7}, {4, 7}, {4, 7}, {4, 7},        // 1111xxxxx
  228.     {4, 7}, {4, 7}, {4, 7}, {4, 7},
  229.     {4, 7}, {4, 7}, {4, 7}, {4, 7},
  230.     {4, 7}, {4, 7}, {4, 7}, {4, 7},
  231.     {4, 7}, {4, 7}, {4, 7}, {4, 7},
  232.     {4, 7}, {4, 7}, {4, 7}, {4, 7},
  233.     {4, 7}, {4, 7}, {4, 7}, {4, 7},
  234.     {4, 7}, {4, 7}, {4, 7}, {4, 7}
  235. };
  236.  
  237. //------------------------------------------------------------------------
  238. // black run lengths
  239. //------------------------------------------------------------------------
  240.  
  241. // 10-13 bit codes (upper 6 bits are 0)
  242. static CCITTCode blackTab1[128] = {
  243.   {-1, -1}, {-1, -1},                    // 000000000000x
  244.   {12, ccittEOL}, {12, ccittEOL},            // 000000000001x
  245.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},        // 00000000001xx
  246.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},        // 00000000010xx
  247.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},        // 00000000011xx
  248.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},        // 00000000100xx
  249.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},        // 00000000101xx
  250.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},        // 00000000110xx
  251.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},        // 00000000111xx
  252.   {11, 1792}, {11, 1792}, {11, 1792}, {11, 1792},    // 00000001000xx
  253.   {12, 1984}, {12, 1984},                // 000000010010x
  254.   {12, 2048}, {12, 2048},                // 000000010011x
  255.   {12, 2112}, {12, 2112},                // 000000010100x
  256.   {12, 2176}, {12, 2176},                // 000000010101x
  257.   {12, 2240}, {12, 2240},                // 000000010110x
  258.   {12, 2304}, {12, 2304},                // 000000010111x
  259.   {11, 1856}, {11, 1856}, {11, 1856}, {11, 1856},    // 00000001100xx
  260.   {11, 1920}, {11, 1920}, {11, 1920}, {11, 1920},    // 00000001101xx
  261.   {12, 2368}, {12, 2368},                // 000000011100x
  262.   {12, 2432}, {12, 2432},                // 000000011101x
  263.   {12, 2496}, {12, 2496},                // 000000011110x
  264.   {12, 2560}, {12, 2560},                // 000000011111x
  265.   {10, 18}, {10, 18}, {10, 18}, {10, 18},        // 0000001000xxx
  266.     {10, 18}, {10, 18}, {10, 18}, {10, 18},
  267.   {12, 52}, {12, 52},                    // 000000100100x
  268.   {13, 640},                        // 0000001001010
  269.   {13, 704},                        // 0000001001011
  270.   {13, 768},                        // 0000001001100
  271.   {13, 832},                        // 0000001001101
  272.   {12, 55}, {12, 55},                    // 000000100111x
  273.   {12, 56}, {12, 56},                    // 000000101000x
  274.   {13, 1280},                        // 0000001010010
  275.   {13, 1344},                        // 0000001010011
  276.   {13, 1408},                        // 0000001010100
  277.   {13, 1472},                        // 0000001010101
  278.   {12, 59}, {12, 59},                    // 000000101011x
  279.   {12, 60}, {12, 60},                    // 000000101100x
  280.   {13, 1536},                        // 0000001011010
  281.   {13, 1600},                        // 0000001011011
  282.   {11, 24}, {11, 24}, {11, 24}, {11, 24},        // 00000010111xx
  283.   {11, 25}, {11, 25}, {11, 25}, {11, 25},        // 00000011000xx
  284.   {13, 1664},                        // 0000001100100
  285.   {13, 1728},                        // 0000001100101
  286.   {12, 320}, {12, 320},                    // 000000110011x
  287.   {12, 384}, {12, 384},                    // 000000110100x
  288.   {12, 448}, {12, 448},                    // 000000110101x
  289.   {13, 512},                        // 0000001101100
  290.   {13, 576},                        // 0000001101101
  291.   {12, 53}, {12, 53},                    // 000000110111x
  292.   {12, 54}, {12, 54},                    // 000000111000x
  293.   {13, 896},                        // 0000001110010
  294.   {13, 960},                        // 0000001110011
  295.   {13, 1024},                        // 0000001110100
  296.   {13, 1088},                        // 0000001110101
  297.   {13, 1152},                        // 0000001110110
  298.   {13, 1216},                        // 0000001110111
  299.   {10, 64}, {10, 64}, {10, 64}, {10, 64},        // 0000001111xxx
  300.     {10, 64}, {10, 64}, {10, 64}, {10, 64}
  301. };
  302.  
  303. // 7-12 bit codes (upper 4 bits are 0)
  304. static CCITTCode blackTab2[192] = {
  305.   {8, 13}, {8, 13}, {8, 13}, {8, 13},            // 00000100xxxx
  306.     {8, 13}, {8, 13}, {8, 13}, {8, 13},
  307.     {8, 13}, {8, 13}, {8, 13}, {8, 13},
  308.     {8, 13}, {8, 13}, {8, 13}, {8, 13},
  309.   {11, 23}, {11, 23},                    // 00000101000x
  310.   {12, 50},                        // 000001010010
  311.   {12, 51},                        // 000001010011
  312.   {12, 44},                        // 000001010100
  313.   {12, 45},                        // 000001010101
  314.   {12, 46},                        // 000001010110
  315.   {12, 47},                        // 000001010111
  316.   {12, 57},                        // 000001011000
  317.   {12, 58},                        // 000001011001
  318.   {12, 61},                        // 000001011010
  319.   {12, 256},                        // 000001011011
  320.   {10, 16}, {10, 16}, {10, 16}, {10, 16},        // 0000010111xx
  321.   {10, 17}, {10, 17}, {10, 17}, {10, 17},        // 0000011000xx
  322.   {12, 48},                        // 000001100100
  323.   {12, 49},                        // 000001100101
  324.   {12, 62},                        // 000001100110
  325.   {12, 63},                        // 000001100111
  326.   {12, 30},                        // 000001101000
  327.   {12, 31},                        // 000001101001
  328.   {12, 32},                        // 000001101010
  329.   {12, 33},                        // 000001101011
  330.   {12, 40},                        // 000001101100
  331.   {12, 41},                        // 000001101101
  332.   {11, 22}, {11, 22},                    // 00000110111x
  333.   {8, 14}, {8, 14}, {8, 14}, {8, 14},            // 00000111xxxx
  334.     {8, 14}, {8, 14}, {8, 14}, {8, 14},
  335.     {8, 14}, {8, 14}, {8, 14}, {8, 14},
  336.     {8, 14}, {8, 14}, {8, 14}, {8, 14},
  337.   {7, 10}, {7, 10}, {7, 10}, {7, 10},            // 0000100xxxxx
  338.     {7, 10}, {7, 10}, {7, 10}, {7, 10},
  339.     {7, 10}, {7, 10}, {7, 10}, {7, 10},
  340.     {7, 10}, {7, 10}, {7, 10}, {7, 10},
  341.     {7, 10}, {7, 10}, {7, 10}, {7, 10},
  342.     {7, 10}, {7, 10}, {7, 10}, {7, 10},
  343.     {7, 10}, {7, 10}, {7, 10}, {7, 10},
  344.     {7, 10}, {7, 10}, {7, 10}, {7, 10},
  345.   {7, 11}, {7, 11}, {7, 11}, {7, 11},            // 0000101xxxxx
  346.     {7, 11}, {7, 11}, {7, 11}, {7, 11},
  347.     {7, 11}, {7, 11}, {7, 11}, {7, 11},
  348.     {7, 11}, {7, 11}, {7, 11}, {7, 11},
  349.     {7, 11}, {7, 11}, {7, 11}, {7, 11},
  350.     {7, 11}, {7, 11}, {7, 11}, {7, 11},
  351.     {7, 11}, {7, 11}, {7, 11}, {7, 11},
  352.     {7, 11}, {7, 11}, {7, 11}, {7, 11},
  353.   {9, 15}, {9, 15}, {9, 15}, {9, 15},            // 000011000xxx
  354.     {9, 15}, {9, 15}, {9, 15}, {9, 15},
  355.   {12, 128},                        // 000011001000
  356.   {12, 192},                        // 000011001001
  357.   {12, 26},                        // 000011001010
  358.   {12, 27},                        // 000011001011
  359.   {12, 28},                        // 000011001100
  360.   {12, 29},                        // 000011001101
  361.   {11, 19}, {11, 19},                    // 00001100111x
  362.   {11, 20}, {11, 20},                    // 00001101000x
  363.   {12, 34},                        // 000011010010
  364.   {12, 35},                        // 000011010011
  365.   {12, 36},                        // 000011010100
  366.   {12, 37},                        // 000011010101
  367.   {12, 38},                        // 000011010110
  368.   {12, 39},                        // 000011010111
  369.   {11, 21}, {11, 21},                    // 00001101100x
  370.   {12, 42},                        // 000011011010
  371.   {12, 43},                        // 000011011011
  372.   {10, 0}, {10, 0}, {10, 0}, {10, 0},            // 0000110111xx
  373.   {7, 12}, {7, 12}, {7, 12}, {7, 12},            // 0000111xxxxx
  374.     {7, 12}, {7, 12}, {7, 12}, {7, 12},
  375.     {7, 12}, {7, 12}, {7, 12}, {7, 12},
  376.     {7, 12}, {7, 12}, {7, 12}, {7, 12},
  377.     {7, 12}, {7, 12}, {7, 12}, {7, 12},
  378.     {7, 12}, {7, 12}, {7, 12}, {7, 12},
  379.     {7, 12}, {7, 12}, {7, 12}, {7, 12},
  380.     {7, 12}, {7, 12}, {7, 12}, {7, 12}
  381. };
  382.  
  383. // 2-6 bit codes
  384. static CCITTCode blackTab3[64] = {
  385.   {-1, -1}, {-1, -1}, {-1, -1}, {-1, -1},        // 0000xx
  386.   {6, 9},                        // 000100
  387.   {6, 8},                        // 000101
  388.   {5, 7}, {5, 7},                    // 00011x
  389.   {4, 6}, {4, 6}, {4, 6}, {4, 6},            // 0010xx
  390.   {4, 5}, {4, 5}, {4, 5}, {4, 5},            // 0011xx
  391.   {3, 1}, {3, 1}, {3, 1}, {3, 1},            // 010xxx
  392.     {3, 1}, {3, 1}, {3, 1}, {3, 1},
  393.   {3, 4}, {3, 4}, {3, 4}, {3, 4},            // 011xxx
  394.     {3, 4}, {3, 4}, {3, 4}, {3, 4},
  395.   {2, 3}, {2, 3}, {2, 3}, {2, 3},            // 10xxxx
  396.     {2, 3}, {2, 3}, {2, 3}, {2, 3},
  397.     {2, 3}, {2, 3}, {2, 3}, {2, 3},
  398.     {2, 3}, {2, 3}, {2, 3}, {2, 3},
  399.   {2, 2}, {2, 2}, {2, 2}, {2, 2},            // 11xxxx
  400.     {2, 2}, {2, 2}, {2, 2}, {2, 2},
  401.     {2, 2}, {2, 2}, {2, 2}, {2, 2},
  402.     {2, 2}, {2, 2}, {2, 2}, {2, 2}
  403. };
  404.