Documentation for the GEM-View Savingmodule JPEG.GVS """""""""""""""""""""""""""""""""""""""""""""""""""" (C) by Guido Vollbeding, May 14 1994 """""""""""""""""""""""""""""""""""" Changes ####### - Got rid of problems in dialog handling after Load/Save for braindamaged file selectors (like the original TOS one). - Little code optimizations in color conversion routines. May 12 1994: - First release. Introduction ############ Yeah, here it is, the hardly wanted JPEG-Savingmodule for the exciting Shareware program GEM-View (Version 3.xx) from Dieter Fiebelkorn. Since more and more people more and more asked me for this in the last time (Hi Dieter, Georg, Harald, ...), I left all other things aside some days to get this part ready by hardly working. Installation ############ Unlike the internal complexity of the subject, the usage is very simple: Just copy the file JPEG.GVS into the GVWSAVE folder of your GEM-View installation. Within GEM-View you can now select this module like any other. Please note, that this module only supports True-Color-Images and therefore is only available if you select the TC-Button in the Saving and Conversion dialogs. With the GEM-View Conversion module it is possible to process True-Color pictures indepen- dently from the actual screen resolution, even in monochrom. During saving a progress monitor is shown by the module in the GEM-View Log-window as a sequence of dots. 8 dots are totally displayed. In case of successful completion of saving, the achieved compression ratio (Original Image Size in relation to the JPG-File-Size) is displayed. Options ####### If you hold the Alternate key down at entering the saving function, a dialog appears where you can choose some JPEG compression parameters. Alternatively you can set the parameters offline by starting the module as a program without GEM-View from the Desktop. In that case exactly the same dialog appears as with the module in GEM- View. To achieve this, you can for instance rename the module to JPEG.PRG or JPEG.APP. A more likely way, however, is to insert the following line in your NEWDESK.INF desktop configuration file at the marked point: ... #W 00 00 06 01 34 09 00 @ #G 03 04 000 C:\1STGUIDE.ACC@ *.*@ @ #G 03 FF 000 *.AC*@ @ @ #G 03 FF 000 *.GV?@ @ @ <<-- #G 03 FF 000 *.APP@ @ @ #G 03 FF 000 *.PRG@ @ @ ... This avoids unlikely renaming and allows you to directly start any GEM-View modules as programs from the Desktop. The changes you made in case of start as a program have, of course, only an effect by saving them. The method of calling the dialog with the Alternate key is consistent with the method used in GEM-View to load images with the Alternate key. If you, however, should not like this for any reasons, the dialog provides the possibility to change the calling condition to any combination of special keys Shift/Control/Alternate. Here a selected button represents a pressed keystate, otherwise non- pressed. So, for example, if you deselect all four buttons, then the dialog would appear normally EVERY time the saving is called. So, if you convert many pictures, you could set individual parameters for each picture immediately before saving. Now let's have a look at the parameters in special: Quality ------- The most important parameter certainly is the predefined quality. Possible values are 0 to 100 %. The default setting is 75 %. This guaranties in allmost situations a good compromise between visi- ble image quality and compression ratio. The resulting images are nearly visually indistinguishable from the original (very good image quality), and the achieved compression ratios range from 10:1 to 20:1 depending on the image contents. To control the resulting image quality, you should read in the picture after saving to display it in the highest possible screen-color-depth (!). To do this you can either use GEM-View itself, or users of 1STGUIDE can also use this instead. If you see defects at default quality 75, then go up 5 or 10 counts at a time until you are happy with the output image. Quality values above about 95 are NOT recommended for normal use. The compressed file size goes up dramatically for hardly any gain in output image quality. In the other direction, if you prefer small files to be produced, set the quality value down until about 50. Lower values should be avoided because of visible loss of image quality. Entropy Optimization -------------------- Activating this option usually makes the resulting file a little smaller, but runs somewhat slower and needs much more memory. Image quality and speed of decompression are, however, unaffected by this option. This option is not yet supported, but is reserved for future versions. Smoothing --------- This value filters the input to eliminate fine-scale noise. This is useful when converting dithered palette-type pictures: A moderate smoothing factor of 10 to 50 gets rid of dithering patterns in the input image, resulting in a smaller JPG file and a better-looking image. Too large a smoothing factor will visibly blur the image, however. This option is not currently supported, since it is not necessary for real True-Color input. If I feel free to support reduced palette-type pictures in the future, this option will be used. Greyscale Output ---------------- With this option activated, a pure greyscale image is produced by trashing away the color information completely. ATTENTION! Some programs can't read in such files! This is a disadvantage of these programs. Insure, that a certain program you want to use with such files can handle this correctly. GEMVIEW and 1STGUIDE don't have any problems with this! The resulting files are, of course, somewhat smaller and take less time to decode. The corresponding compression ratio, how- ever, (only the greyscale information taken into account) is relatively small (at Q = 75 % about 5:1), because the color components normally can be harder compressed (only considering the color-subsampling). Distribution ############ I decided to put this project as real FREEWARE to the public, although much work has been spent in it and is expected to do in the future. The package, consisting of the following 3 files: JPEG.GVS -> the real GEM-View-Module, also executable as PRG or APP; JPEG_GVS.GER -> the german description; JPEG_GVS.ENG -> this text as english description can be freely distributed, as long as all files remain together and unchanged. Any commercial distribution (including PD-Series or so) is strictly excluded, because nobody else should be paid for my work if I myself also don't get anything. I accept NO LIABILITY for damages of any kind. A certain kind of data loss is unavoidable, however ;-). This is caused by the subject. So BE CAREFUL in usage, and read the above instructions. For questions, hints, critics (constructive!) or thanks here is my contact address: Guido Vollbeding Turmstraáe 61 D-06110 Halle (Saale) (Germany) Email: Guido Vollbeding @ HAL (Mausnet) Bank: Stadt- u. Saalkreissparkasse Halle Blz.: 800 537 62 Kto.: 486 260 725 To questions I can answer preferably only if they come from registered 1STGUIDE-users. It should be clear, that anybody who uses this module MUST be a registered GEMVIEW-user. BTW: A DSP-Support for the Falcon is not currently in question. I have spent much time in optimizing the code, however, but somewhat can be done in the future to increase performance a bit. As programming environment Pure-C is used (what else ?). References ########## If you want to learn more about the theory behind JPEG, the following article should be read as introduction: Wallace, Gregory K. "The JPEG Still Picture Compression Standard" Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44 At the end of this article you will find more detailed referen- ces. Last Words ########## At this point a great thank goes to Dieter Fiebelkorn for the fruitable cooperation (over years). Only the flexibility and comfort of GEM-View made it possible, that now an in my opinion ideal environment for JPEG compression is available. A further thank goes, of course, to the Independent JPEG Group. It's excellent sources built the basic of my work at all, and without them the subject JPEG certainly would be pure theory for a long time yet. Now I wish you much fun by using this module and hope to see much beautiful JPEG-images in the future.