-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCHANGES
408 lines (300 loc) · 14.6 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
-*- Text -*-
Changes from version 2.0 of the toolkit.
Due to a loss of source control for a time, not all changes are
represented in detail here. However, the significant changes are
covered. Changes are divided into External and Internal. External
changes are those that affect a user of the toolkit. Internal changes
are those that affect someone programming using the toolkit library.
Summary of External Changes
Toolkit setup: A new configuration procedure is in place. Edit the
file urt.config (read README.conf for instructions) to
configure the toolkit for your local installation.
Configuration files for some machines are included.
(Almost) all tools:
[-o outfile] option for explicit specification of output file.
outfile='-' means send to standard output.
Input file name may be '-' for standard input.
If enabled (NO_OPEN_PIPES not defined in configuration file), a file
name starting with '|' will be executed as a (sh) command. If
an input file, the output of the command will be read by the
tool. If an output file, the output of the tool will be sent
to the standard input of the command.
If enabled, (NO_OPEN_PIPES not defined), a file name ending in ".Z"
(and not starting with '|') will be decompressed (for input)
or compressed (for output) using the unix compress command.
Most tools will process files containing multiple concatenated images.
The exceptions are noted below and in the individual manual
pages. The only 'get' program that handles multiple images is
getx11, and none of the 'cnv' programs handle multiple images.
Most tools add to a "HISTORY" comment in the RLE header. The
exception is rleaddcom.
Individual tools:
applymap Now handles files with multiple images.
avg4 Now handles files with multiple images.
crop New -b flag means to compute the bounding box (ala
rlebox). Input cannot come from a pipe if -b is
given. Now handles multiple images (even with -b).
fant -o (origin) flag changes to -p (position). New -o
flag used for output file name. Now handles files
with multiple images. Major changes by Jamie Painter,
U of Utah -- inner loop rewritten in fixed point, gets
from 50% to 500% speedup depending on hardware. New
-b flag uses filtering algorithm by Painter that is a
little blurrier, but leaves fewer artifacts when the
image has small features (e.g., lines).
mcut Now handles files with multiple images. -D flag
(dither) changed to -d. -d colors (number of colors
to use) changed to -n colors.
mergechan Now handles files with multiple images. Each input
file is viewed as a stream of images that are merged
to produce a stream of output images.
pyrmask Now handles files with multiple images.
repos Now handles files with multiple images. Changed
[-i xinc yinc] (incremental positioning) to
[-P xinc yinc].
rleaddcom Now handles files with multiple images. Adds the same
comment(s) to all images. Changed [-f infile] to
[infile]. Added -i for "in place" comment
modification. Works like the 'into' program -- writes
the output to a temp file and then renames it onto the
original. Even works with compressed images.
rleaddeof New program to add an end-of-image marker to images
generated by programs that don't do so.
rlebg Generates HISTORY comment. [outfile] changes to
[-o outfile].
rlebox Now handles files with multiple images.
rlecomp Name changed from 'comp' to avoid conflict with MH
mail handling system. Now handles files with multiple
images (Two streams of input images merge into one
stream of output images.) The command line syntax
changed to 'Afile op Bfile' from '-o op Afile Bfile'.
There is no default operation now. The new -o flag
indicates the output file name.
rledither New program. Dithers an image against a given
colormap using Floyd-Steinberg dithering. Handles
files with multiple images.
rleflip Handles files with multiple images.
rlehdr Now accepts multiple files and files with multiple images.
rlehisto Handles files with multiple images (outputs
concatenated histogram images. For multiple channel
images, the individual channel histograms are now
overlaid on each other. A new -c (cumulative) flag
produces a cumulative histogram. The -b flag causes
the program to ignore the background color when
computing the histogram scaling. The default image
size is changed to 256x256. (Some of these changes are
courtesy of Gregg Townsend, University of Arizona).
rleldmap Handles files with multiple images (but the colormap
to be loaded is determined only once, and used for all
images in the input file).
rlemandl Creates a history comment.
rlenoise Handles files with multiple images.
rlepatch Handles files with multiple images -- The set of
files is treated as a collection of parallel image
streams. The n'th image in the first stream is patched
with the n'th image in each of the patch streams. The
program exits as soon as one stream terminates.
rleprint New program. Prints all the pixel values (one pixel
per line) in the input. Not very useful because of
the verbosity of its output.
rlequant New program. Quantizes images to a given number of
colors using a variance-based algorithm written by
Craig Kolb, Yale University. Dithering code written
by Rod Bogart, U of Michigan.
rlescale Creates a history comment.
rlesetbg Handles files with multiple images.
rleskel Not really a program. This source file provides a
skeleton for a basic "filter" tool. The program is
not normally compiled and installed. If it were, it
would just copy its input to its output.
rlespiff New program. Uses a simplistic contrast enhancement
process to "spiff up" an image.
rlesplice New program. Sticks two images together side by side
or one above the other. This can be accomplished with
rlepatch, but this program is easier to use. Written
by Martin Friedmann, MIT Media Lab.
rlesplit '-p prefix' changed to '-o output-file-name-prefix' to
be consistent with the -o convention of the rest of
the tools. Always handled concatenated images.
rleswap Handles files with multiple images. Changed
-i input_channels to -f from_channels
-o output_channels to -t to_channels
Added -o outfile
rlezoom Handles files with multiple images. The major change
here is the addition of "floating point" zoom. It
uses a simple algorithm to super- or sub- sample the
image for non-integral zoom factors. It's a lot
faster than fant, even if it doesn't look as good. It
could probably be faster if someone wants to rewrite
the inner loop using all integer arithmetic.
smush Handles files with multiple images.
to8 Handles files with multiple images.
tobw Handles files with multiple images.
unexp Handles files with multiple images.
unslice No major changes. Does not handle files with multiple
images.
Conversion programs:
cubitorle No major changes. Creates a history comment.
dvirle Updated to work with current McTeX distribution (not
included, see the README).
giftorle New program. Converts a GIF image to RLE. By David Koblas.
graytorle No major changes. Creates a history comment.
painttorle Takes input from a file as well as stdin. Creates a
history comment.
rastorle A number of bug fixes, so that it no longer produces
pathological RLE files. Handles 24 bit raster files.
Creates a history comment.
rawtorle New program. Converts a variety of "raw" image
formats to RLE. From Martin Friedmann, MIT.
rletoabA60 New program. Converts RLE to the Abekas A60 digital
video disk format.
rletoabA62 New program. Converts RLE to the Abekas A62 digital
video disk format.
rletoascii New program. For making simple "line printer"
pictures from RLE images. Doesn't do any overprinting
(if someone is serious about this output form, maybe you
could add this enhancement).
rletogif New program. Converts a single channel RLE file to
GIF. Use rlequant, mcut, to8, or tobw to get a 1
channel image from an RGB image. By Bailey Brown, U
of Michigan.
rletogray Changed -p prefix to -o outprefix.
rletopaint Change -i (invert) to -r (reverse). Add -o outfile.
rletops Color postscript output with -C flag. 50% speedup.
The image is printed at the top of the page instead of
the bottom. A %%BoundingBox comment is now output.
Most of these changes courtesy of Gregg Townsend, U of
Arizona.
rletorast New program? Converts RLE to Sun RASTER (8 or 24 bit,
depending on input).
rletoraw New program. Convert RLE to simple RGBRGBRGB raw
format. By Martin Friedmann.
rletotiff New program. Convert (24 bit) RLE images to TIFF.
Requires Sam Leffler's 'libtiff'. See cnv/README. By
Bailey Brown, U of Michigan.
targatorle No major changes. Creates history comment.
tifftorle New program. Convert (24 bit) TIFF images to RLE.
Requires Leffler's libtiff. By Bailey Brown, U of
Michigan.
wasatchrle No major changes. Creates history comment.
Display programs:
get4d New program. Displays RLE files on a Silicon Graphics
Iris 4D (or the new IBM RS6000 with the GL compatible
graphics).
getX Changed -l levels to -n levels.
get_orion Changed -b (black & white) to -w (for consistency).
getap Change -i (inverse) to -r (reverse video).
getbob No major changes.
getcx3d No major changes.
getfb No major changes.
getgmr No major changes.
getiris No major changes.
getmac Updated to use 32 bit quickdraw if present. Still
only runs under MPW (not even A/UX).
getmex No major changes.
getqcr No major changes.
getren Works with devices other than hp98721.
getsun Now forks into background.
gettaac New program. Displays on a TAAC1 under the SunView
environment.
getx11 New program. All-singing-all-dancing display program
for X11. Includes zoom and pan and a "movie mode".
read98721 New program. Reads an image from a HP "Renaissance"
display and writes an RLE file.
****************************************************************
Internal changes:
One of the most obvious changes is the new configuration procedure.
This should make it much easier to maintain the toolkit in a
heterogeneous environment. The configuration files and makefiles are
designed so that you could maintain multiple binary trees from a
single source tree, simply by specifying different destination
directories (and 'making clean' when switching machines). There are a
lot of configuration variables, but most systems require only a few
changes from the default. The large number of variables give us the
best flexibility.
Another "cataclysmic" change is the change in function and data
structure names. Rather than enumerate the changes, you should refer
to the 'sv.sed' file in the toolkit root directory. To convert your
toolkit program to use the new headers and library, you simply
sed -f sv.sed myfile.c | into myfile.c
(Of course, if you are at all paranoid, you won't do this on the only
copy.) You should examine the output for bizarre comments (I have not
run into any code problems in our conversion, just mangled comments).
A common one is to find the word 'hdral' (used to be 'global'), as one
of the changes was to get rid of the term 'globals' when refering to
the RLE header structure. All the 'sv_' prefixes on function,
variable, and structure field names went away or changed to 'rle_'.
Again, see sv.sed for the details.
A lot of work was put into cleaning the code and making it compatible
with as many C compilers as possible (including ANSI).
Now, to the more specific changes.
exit_status.h: This distribution actually includes this file,
required by getx11.
rle.h This file used to be called "svfb_global.h". It now
includes full prototypes for almost all the library
functions (a few are defined in rle_raw.h). This
header is C++ compatible (i.e., you can include it in
C++ programs). However, the toolkit will not, in
general, compile with C++. Byte order dependencies
were removed (hurray!)
rle_code.h Used to be called XtndRunsv.h. Byte order and word
size dependencies removed.
rle_put.h Used to be called svfb.h.
rle_raw.h Used to be called rle_getraw.h, but since in includes
definitions for rle_putraw, the name was changed.
Includes prototypes for ANSI and C++ compilers.
Runput.c Used to be called Runsv.c. Major change here is due
to Mike Muuss, Ballistic Research Lab. The code is
now totally byte order and word size independent
(well, it may assume that a short is at least 16
bits). This should make Cray users happy. Another
fix eliminates the random values that were written
into unused bytes of the file. You should now be able
to 'cmp' two RLE files.
bstring.c Conditional on NEED_BSTRING
cmd_name.c NEW. A convenience routine to extract the "command name"
from argv. Used in error messages.
colorquant.c NEW. Variance-based color quantization code from Craig
Kolb, Yale Univ.
dither.c ANSI compatibility.
getopt.c Conditional on NEED_GETOPT.
rle_addhist.c NEW. Add to the HISTORY comment. From Andrew Marrot,
Curtin U of Tech. (Australia).
rle_cp.c NEW. Copy the "rest" of an rle image from input to
output. To properly handle concatenated images, the
process of copying got more complex. Thus, it was
encapsulated here.
rle_getraw.c After the last line is read, but before it is
returned, any data remaining in the image ("above the
top") is skipped. This makes it easier to process
multiple-image files. This change should be
invisible. Now byte order & word size independent.
Thanks to Thomas Palmer (NCI supercomputer facility)
and Mike Muuss for this.
rle_getrow.c Same skipping logic as above added. Byte order and
word size independence as above (thanks Mike!).
Routines added to make error checking rle_get_setup
easier.
rle_getskip.c NEW. Skip scanlines in the input.
rle_global.c Name changed from svfb_global.c. Global variable
initialization.
rle_open_f.c NEW. Common file opening code. Try to encapsulate
common code (e.g., '-' for stdin/stdout, pipe
semantics, compressed file interface) and system
dependencies ('b' for binary IO on some systems). Has
nothing to do with RLE files, really.
rle_putraw.c Changed from sv_putraw.c. Byte order/word size
dependencies removed.
rle_putrow.c Was sv_putrow.c. Byte order/word size dependencies
removed. sv_setup changed to rle_put_setup, and first
argument removed. Added rle_put_init function -- like
rle_put_setup, but just initializes the header
structure, doesn't do any I/O. Useful for appending
more scanline data to an existing image.
rle_rawrow.c NEW. Convert "raw" data to normal scanline data.
sVsetlinebuf.c Conditional on NEED_SETLINEBUF
scanargs.c More portable.
vaxshort.c NEW. Support for byte order/word size independence.
Local variables:
fill-prefix: "\t\t"
End: