pdf_g4_tables.h

Fri, 21 Feb 2003 12:29:16 +0000

author
eric
date
Fri, 21 Feb 2003 12:29:16 +0000
changeset 70
16e2cf55dbd9
parent 69
1bec9168554f
permissions
-rw-r--r--

updated HDRS

eric@69 1 /*
eric@69 2 * t2p: Create a PDF file from the contents of one or more TIFF
eric@69 3 * bilevel image files. The images in the resulting PDF file
eric@69 4 * will be compressed using ITU-T T.6 (G4) fax encoding.
eric@69 5 *
eric@69 6 * G4 encoding tables
eric@69 7 * $Id: pdf_g4_tables.h,v 1.2 2003/02/21 04:28:37 eric Exp $
eric@69 8 * Copyright 2001, 2002, 2003 Eric Smith <eric@brouhaha.com>
eric@69 9 *
eric@69 10 * This program is free software; you can redistribute it and/or modify
eric@69 11 * it under the terms of the GNU General Public License version 2 as
eric@69 12 * published by the Free Software Foundation. Note that permission is
eric@69 13 * not granted to redistribute this program under the terms of any
eric@69 14 * other version of the General Public License.
eric@69 15 *
eric@69 16 * This program is distributed in the hope that it will be useful,
eric@69 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
eric@69 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
eric@69 19 * GNU General Public License for more details.
eric@69 20 *
eric@69 21 * You should have received a copy of the GNU General Public License
eric@69 22 * along with this program; if not, write to the Free Software
eric@69 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
eric@69 24 */
eric@69 25
eric@69 26
eric@68 27 typedef struct
eric@68 28 {
eric@68 29 uint32_t count;
eric@68 30 uint32_t bits;
eric@68 31 } g4_bits;
eric@68 32
eric@68 33 static g4_bits g4_long_makeup_code [12] =
eric@68 34 {
eric@68 35 { 11, 0x008 }, /* 1792 */
eric@68 36 { 11, 0x00c }, /* 1856 */
eric@68 37 { 11, 0x00d }, /* 1920 */
eric@68 38 { 12, 0x012 }, /* 1984 */
eric@68 39 { 12, 0x013 }, /* 2048 */
eric@68 40 { 12, 0x014 }, /* 2112 */
eric@68 41 { 12, 0x015 }, /* 2176 */
eric@68 42 { 12, 0x016 }, /* 2240 */
eric@68 43 { 12, 0x017 }, /* 2304 */
eric@68 44 { 12, 0x01c }, /* 2368 */
eric@68 45 { 12, 0x01d }, /* 2432 */
eric@68 46 { 12, 0x01e } /* 2496 */
eric@68 47 };
eric@68 48
eric@68 49 static g4_bits g4_makeup_code [2] [27] =
eric@68 50 {
eric@68 51 {
eric@68 52 /* white */
eric@68 53 { 5, 0x1b }, /* 64 */
eric@68 54 { 5, 0x12 }, /* 128 */
eric@68 55 { 6, 0x17 }, /* 192 */
eric@68 56 { 7, 0x37 }, /* 256 */
eric@68 57 { 8, 0x36 }, /* 320 */
eric@68 58 { 8, 0x37 }, /* 384 */
eric@68 59 { 8, 0x64 }, /* 448 */
eric@68 60 { 8, 0x65 }, /* 512 */
eric@68 61 { 8, 0x68 }, /* 576 */
eric@68 62 { 8, 0x67 }, /* 640 */
eric@68 63 { 9, 0x0cc }, /* 704 */
eric@68 64 { 9, 0x0cd }, /* 768 */
eric@68 65 { 9, 0x0d2 }, /* 832 */
eric@68 66 { 9, 0x0d3 }, /* 896 */
eric@68 67 { 9, 0x0d4 }, /* 960 */
eric@68 68 { 9, 0x0d5 }, /* 1024 */
eric@68 69 { 9, 0x0d6 }, /* 1088 */
eric@68 70 { 9, 0x0d7 }, /* 1152 */
eric@68 71 { 9, 0x0d8 }, /* 1216 */
eric@68 72 { 9, 0x0d9 }, /* 1280 */
eric@68 73 { 9, 0x0da }, /* 1344 */
eric@68 74 { 9, 0x0db }, /* 1408 */
eric@68 75 { 9, 0x098 }, /* 1472 */
eric@68 76 { 9, 0x099 }, /* 1536 */
eric@68 77 { 9, 0x09a }, /* 1600 */
eric@68 78 { 6, 0x18 }, /* 1664 */
eric@68 79 { 9, 0x09b } /* 1728 */
eric@68 80 },
eric@68 81 {
eric@68 82 /* black */
eric@68 83 { 10, 0x00f }, /* 64 */
eric@68 84 { 12, 0x0c8 }, /* 128 */
eric@68 85 { 12, 0x0c9 }, /* 192 */
eric@68 86 { 12, 0x05b }, /* 256 */
eric@68 87 { 12, 0x033 }, /* 320 */
eric@68 88 { 12, 0x034 }, /* 384 */
eric@68 89 { 12, 0x035 }, /* 448 */
eric@68 90 { 13, 0x006c }, /* 512 */
eric@68 91 { 13, 0x006d }, /* 576 */
eric@68 92 { 13, 0x004a }, /* 640 */
eric@68 93 { 13, 0x004b }, /* 704 */
eric@68 94 { 13, 0x004c }, /* 768 */
eric@68 95 { 13, 0x004d }, /* 832 */
eric@68 96 { 13, 0x0072 }, /* 896 */
eric@68 97 { 13, 0x0073 }, /* 960 */
eric@68 98 { 13, 0x0074 }, /* 1024 */
eric@68 99 { 13, 0x0075 }, /* 1088 */
eric@68 100 { 13, 0x0076 }, /* 1152 */
eric@68 101 { 13, 0x0077 }, /* 1216 */
eric@68 102 { 13, 0x0052 }, /* 1280 */
eric@68 103 { 13, 0x0053 }, /* 1344 */
eric@68 104 { 13, 0x0054 }, /* 1408 */
eric@68 105 { 13, 0x0055 }, /* 1472 */
eric@68 106 { 13, 0x005a }, /* 1536 */
eric@68 107 { 13, 0x005b }, /* 1600 */
eric@68 108 { 13, 0x0064 }, /* 1664 */
eric@68 109 { 13, 0x0065 }, /* 1728 */
eric@68 110 }
eric@68 111 };
eric@68 112
eric@68 113
eric@68 114 static g4_bits g4_h_code [2] [64] =
eric@68 115 {
eric@68 116 {
eric@68 117 /* white */
eric@68 118 { 8, 0x35 }, /* 0 */
eric@68 119 { 6, 0x07 }, /* 1 */
eric@68 120 { 4, 0x7 }, /* 2 */
eric@68 121 { 4, 0x8 }, /* 3 */
eric@68 122 { 4, 0xb }, /* 4 */
eric@68 123 { 4, 0xc }, /* 5 */
eric@68 124 { 4, 0xe }, /* 6 */
eric@68 125 { 4, 0xf }, /* 7 */
eric@68 126 { 5, 0x13 }, /* 8 */
eric@68 127 { 5, 0x14 }, /* 9 */
eric@68 128 { 5, 0x07 }, /* 10 */
eric@68 129 { 5, 0x08 }, /* 11 */
eric@68 130 { 6, 0x08 }, /* 12 */
eric@68 131 { 6, 0x03 }, /* 13 */
eric@68 132 { 6, 0x34 }, /* 14 */
eric@68 133 { 6, 0x35 }, /* 15 */
eric@68 134 { 6, 0x2a }, /* 16 */
eric@68 135 { 6, 0x2b }, /* 17 */
eric@68 136 { 7, 0x27 }, /* 18 */
eric@68 137 { 7, 0x0c }, /* 19 */
eric@68 138 { 7, 0x04 }, /* 20 */
eric@68 139 { 7, 0x17 }, /* 21 */
eric@68 140 { 7, 0x03 }, /* 22 */
eric@68 141 { 7, 0x04 }, /* 23 */
eric@68 142 { 7, 0x28 }, /* 24 */
eric@68 143 { 7, 0x2b }, /* 25 */
eric@68 144 { 7, 0x13 }, /* 26 */
eric@68 145 { 7, 0x24 }, /* 27 */
eric@68 146 { 7, 0x18 }, /* 28 */
eric@68 147 { 8, 0x02 }, /* 29 */
eric@68 148 { 8, 0x03 }, /* 30 */
eric@68 149 { 8, 0x1a }, /* 31 */
eric@68 150 { 8, 0x1b }, /* 32 */
eric@68 151 { 8, 0x12 }, /* 33 */
eric@68 152 { 8, 0x13 }, /* 34 */
eric@68 153 { 8, 0x14 }, /* 35 */
eric@68 154 { 8, 0x15 }, /* 36 */
eric@68 155 { 8, 0x16 }, /* 37 */
eric@68 156 { 8, 0x17 }, /* 38 */
eric@68 157 { 8, 0x28 }, /* 39 */
eric@68 158 { 8, 0x29 }, /* 40 */
eric@68 159 { 8, 0x2a }, /* 41 */
eric@68 160 { 8, 0x2b }, /* 42 */
eric@68 161 { 8, 0x2c }, /* 43 */
eric@68 162 { 8, 0x2d }, /* 44 */
eric@68 163 { 8, 0x04 }, /* 45 */
eric@68 164 { 8, 0x05 }, /* 46 */
eric@68 165 { 8, 0x0a }, /* 47 */
eric@68 166 { 8, 0x0b }, /* 48 */
eric@68 167 { 8, 0x52 }, /* 49 */
eric@68 168 { 8, 0x53 }, /* 50 */
eric@68 169 { 8, 0x54 }, /* 51 */
eric@68 170 { 8, 0x55 }, /* 52 */
eric@68 171 { 8, 0x24 }, /* 53 */
eric@68 172 { 8, 0x25 }, /* 54 */
eric@68 173 { 8, 0x58 }, /* 55 */
eric@68 174 { 8, 0x59 }, /* 56 */
eric@68 175 { 8, 0x5a }, /* 57 */
eric@68 176 { 8, 0x5b }, /* 58 */
eric@68 177 { 8, 0x4a }, /* 59 */
eric@68 178 { 8, 0x4b }, /* 60 */
eric@68 179 { 8, 0x32 }, /* 61 */
eric@68 180 { 8, 0x33 }, /* 62 */
eric@68 181 { 8, 0x34 } /* 63 */
eric@68 182 },
eric@68 183 {
eric@68 184 /* black */
eric@68 185 { 10, 0x037 }, /* 0 */
eric@68 186 { 3, 0x2 }, /* 1 */
eric@68 187 { 2, 0x3 }, /* 2 */
eric@68 188 { 2, 0x2 }, /* 3 */
eric@68 189 { 3, 0x3 }, /* 4 */
eric@68 190 { 4, 0x3 }, /* 5 */
eric@68 191 { 4, 0x2 }, /* 6 */
eric@68 192 { 5, 0x03 }, /* 7 */
eric@68 193 { 6, 0x05 }, /* 8 */
eric@68 194 { 6, 0x04 }, /* 9 */
eric@68 195 { 7, 0x04 }, /* 10 */
eric@68 196 { 7, 0x05 }, /* 11 */
eric@68 197 { 7, 0x07 }, /* 12 */
eric@68 198 { 8, 0x04 }, /* 13 */
eric@68 199 { 8, 0x07 }, /* 14 */
eric@68 200 { 9, 0x018 }, /* 15 */
eric@68 201 { 10, 0x017 }, /* 16 */
eric@68 202 { 10, 0x018 }, /* 17 */
eric@68 203 { 10, 0x008 }, /* 18 */
eric@68 204 { 11, 0x067 }, /* 19 */
eric@68 205 { 11, 0x068 }, /* 20 */
eric@68 206 { 11, 0x06c }, /* 21 */
eric@68 207 { 11, 0x037 }, /* 22 */
eric@68 208 { 11, 0x028 }, /* 23 */
eric@68 209 { 11, 0x017 }, /* 24 */
eric@68 210 { 11, 0x018 }, /* 25 */
eric@68 211 { 12, 0x0ca }, /* 26 */
eric@68 212 { 12, 0x0cb }, /* 27 */
eric@68 213 { 12, 0x0cc }, /* 28 */
eric@68 214 { 12, 0x0cd }, /* 29 */
eric@68 215 { 12, 0x068 }, /* 30 */
eric@68 216 { 12, 0x069 }, /* 31 */
eric@68 217 { 12, 0x06a }, /* 32 */
eric@68 218 { 12, 0x06b }, /* 33 */
eric@68 219 { 12, 0x0d2 }, /* 34 */
eric@68 220 { 12, 0x0d3 }, /* 35 */
eric@68 221 { 12, 0x0d4 }, /* 36 */
eric@68 222 { 12, 0x0d5 }, /* 37 */
eric@68 223 { 12, 0x0d6 }, /* 38 */
eric@68 224 { 12, 0x0d7 }, /* 39 */
eric@68 225 { 12, 0x06c }, /* 40 */
eric@68 226 { 12, 0x06d }, /* 41 */
eric@68 227 { 12, 0x0da }, /* 42 */
eric@68 228 { 12, 0x0db }, /* 43 */
eric@68 229 { 12, 0x054 }, /* 44 */
eric@68 230 { 12, 0x055 }, /* 45 */
eric@68 231 { 12, 0x056 }, /* 46 */
eric@68 232 { 12, 0x057 }, /* 47 */
eric@68 233 { 12, 0x064 }, /* 48 */
eric@68 234 { 12, 0x065 }, /* 49 */
eric@68 235 { 12, 0x052 }, /* 50 */
eric@68 236 { 12, 0x053 }, /* 51 */
eric@68 237 { 12, 0x024 }, /* 52 */
eric@68 238 { 12, 0x037 }, /* 53 */
eric@68 239 { 12, 0x038 }, /* 54 */
eric@68 240 { 12, 0x027 }, /* 55 */
eric@68 241 { 12, 0x028 }, /* 56 */
eric@68 242 { 12, 0x058 }, /* 57 */
eric@68 243 { 12, 0x059 }, /* 58 */
eric@68 244 { 12, 0x02b }, /* 59 */
eric@68 245 { 12, 0x02c }, /* 60 */
eric@68 246 { 12, 0x05a }, /* 61 */
eric@68 247 { 12, 0x066 }, /* 62 */
eric@68 248 { 12, 0x067 } /* 63 */
eric@68 249 }
eric@68 250 };
eric@68 251
eric@68 252
eric@68 253 static g4_bits g4_vert_code [7] =
eric@68 254 {
eric@68 255 { 7, 0x02 },
eric@68 256 { 6, 0x02 },
eric@68 257 { 3, 0x02 },
eric@68 258 { 1, 0x01 },
eric@68 259 { 3, 0x03 },
eric@68 260 { 6, 0x03 },
eric@68 261 { 7, 0x03 }
eric@68 262 };