JPEG version 1.2 1) Printing documentation: Documentation is in the PostScript file doc.ps. It is about 50 pages long. 2) Making the program. The makefile should be setup for most UNIX systems as is. Simply type "make" in the source code directory. For SYSV only libraries, substitute the first line in the makefile #DEFINES = -DSYSV -DNOTRUNCATE for #DEFINES which allows for SYSV libraries to be used instead. The NOTRUNCATE flag avoids the lack of the ftruncate() call used in io.c. Caution: For the compilation, the lexer.l file should be older than the lexer.c file otherwise many machines will try and lex the lexer.l file (thus clobbering potentially the lexer.c file). In general, the tar will take out the lexer.l file first (it's specified to do that), so there shouldn't be any problems unless the directory is _copied_ and then remade, in which case, the lexer.c file will be older because is lexically of lesser value than lexer.l. This is a potential bug. 3) Testing the program. Two small test files are nonint.jpg and blkint.jpg. If you wish to extract them, type jpeg -d -s nonint.jpg jpeg -d -s blkint.jpg The resulting files should be in nonint.jpg.1 nonint.jpg.2 nonint.jpg.3 blkint.jpg.1 blkint.jpg.2 blkint.jpg.3 These files are raw raster-scan component files 128x128 for the Y (.1), 64x128 for the U(.2) and V(.3). 4) Displaying the decompressed files. The decompressed *.1 *.2 *.3 files may be displayed through the program "cv" which may be obtained by anonymous ftp from havefun.stanford.edu:pub/cv/CVv1.1.tar.Z. If the program is in your current directory search-path, type cv -iw 128 -ih 128 nonint.jpg -SF or cv -iw 128 -ih 128 blkint.jpg -SF 5) Recompressing the sample files Use the following commands to recompress the nonint.jpg.* component files into the nonint.jpg2 file: jpeg -iw 128 -ih 128 -n -hf 2 nonint.jpg.1 nonint.jpg.2 nonint.jpg.3 \ -s nonint2.jpg Use the following commands to recompress the blkint.jpg.* component files into the blkint.jpg2 file: jpeg -iw 128 -ih 128 -hf 2 blkint.jpg.1 blkint.jpg.2 blkint.jpg.3 \ -s blkint2.jpg Surprisingly, recompressing and decompressing the blkint should yield the same result. (The nonint files will not yield the same result - but very close - since the non-interleaved mode defaults to using the LUMINANCE quantization matrix for the first color component of each scan.) See the documentation for more details on other parameters. 6) Some short interpreted programs for the encoder: (See Chapter 4 of the documentation behind these programs). test.huff test.3stream test.q