Short: fast JFIF (JPEG) picture datatype 44.17 Author: Henryk Richter, gni@gecko.de (Gunther Nikl) Uploader: henryk richter gmx net (Henryk Richter) Type: util/dtype Version: 44.17 Architecture: m68k-amigaos >= 3.0.0 Distribution: NoCD Release 44.14+ contains an overhauled Huffman decoder that is especially tuned for high bitrate (or high quality) JPEG files. In addition, grayscale JPEGs are now handled with less CPU overhead. In short, the fastest 68k Amiga JPEG datatype got faster again. The only change in 44.15 is a quick bugfix for OS3.9 picture.datatype compatibility. A performance comparison is shown below. (on A4000 with MatzeTK060@50 MHz, 3.2 ROM, PicassoIV in HiColor, picture.datatype 47.5 from OS3.2, all datatypes at default settings; times in seconds measured as median over 5 iterations with "visage nojpeg time test") Name |akjfif |jfif |warpjpeg|OS3.2 | Version |45.95 |44.14 |45.15 |47.6 | ------------------------------------|--------|--------|--------|--------| AnalogPac640x480_70_seq.jpg |0.944 |0.624 |0.951 |0.736 | BGA1024x1024_gray.jpg |2.705 |2.331 |2.671 |2.607 | CasaDeCampo_2592x1728_70_seq_420.jpg|9.334 |6.597 |9.053 |7.762 | CasaDeCampo_2592x1728_90_seq_444.jpg|16.451 |11.322 |16.687 |13.562 | Goose1024x768_12_baselineopt.jpg |3.952 |2.875 |3.921 |3.632 | Molli512x384_9_seq.jpg |0.723 |0.493 |0.708 |0.600 | Peacock800x600_10_baseline.jpg |1.812 |1.240 |1.854 |1.508 | Sail768x576_9_seq.jpg |1.336 |0.864 |1.330 |1.040 | Wnmde1152x768_70_422v_prog.jpg |3.556 |2.963 |3.543 |3.309 | Wnmde1536x1024_90_422h_seq.jpg |3.670 |2.582 |3.727 |3.015 | jordan199b.jpg |2.366 |1.627 |2.352 |1.848 | The test images, benchmarking scripts and raw results are available at http://bax.comlab.uni-rostock.de/fileadmin/downloads/jpegbench.zip The datatype is an all-in-one binary for any 68020+ Amiga. A 68000 version (without assembly optimizations) is provided as well. Changes in this release 44.17: - fixed V42 mode (3.0/3.1 without updated picture.datatype) - added CPU check to 020+ version to exit cleanly on 68000/68010 - removed FPU requirement (FPU iDCT is still optionally available on FPU equipped systems) - added minimum CPU type to version string 44.16: - fixed occasionally missing rows of pixels in cases where the SCALE or MAXLENGTH options are active - prepared for additional speedup on OS3.2.1 (about 100ms per megapixel on 060/50 with picture.datatype 47.15) 44.15: - fixed incompatibility with picture.datatype 45.17 (OS3.9BB2) 44.14: - enabled arithmetic residual coding (not part of the JPEG standard last I checked, but there are some pictures on the internet using this mode) - improvements to Huffman decoding functions - leverage V47 picture.datatype features for more performance - improvements to grayscale image handling Feature overview - supports normal and progressive JFIFs with all its flavours - supports HAM output (HAM6 as well as HAM8) - switches to V43 mode if a picture.datatype V43 or newer is found - asynchronous file I/O to speedup image loading and decoding - utilizes WritePixelLine8() for chunky-to-planar in V42 mode - automatic colour quantizing of true-colour data for V42 - can be configured to suit personal preferences - OS 3.5 and later support (minimum OS3.0) - FBlit support - based on libjpeg-turbo - ASM optimizations to Huffman decoding, iDCT and color transform (68020+) - 30 bit internal resolution for color transform functions - Highly accurate and fast default inverse cosine transform function (stock libjpeg methods still available as options) - AMMX optimization for Apollo Core Gold 2.7 and later - FPU and AMMX availability is checked before use at runtime - support for XMP JFIF files - all-in-one binary for 68020+ Tuning (see also the guide file for additional options): Classic 68k based Amigas - The old fast iDCT is still about 5% faster than the new default. If you care more for speed than accuracy, just type makedir envarc:classes makedir envarc:classes/datatypes echo "DCT=FAST" >envarc:classes/datatypes/jfif44.prefs in a shell window. Alternatively, a single commandline call is also possible: setenv envarc:classes/datatypes/jfif44.prefs DCT=FAST Vampire Amigas - On Vampire, the default iDCT is the AMMX fast, less accurate iDCT. If you'd like to have the better accuracy of the new iDCT, type the following lines in a shell window: makedir envarc:classes makedir envarc:classes/datatypes echo "DCT=FASTGOOD" >envarc:classes/datatypes/jfif44.prefs alternative: setenv envarc:classes/datatypes/jfif44.prefs DCT=FASTGOOD