75dfa6a6fb
Add packJPG filter for Jpeg files (not active yet). Directory format changes for clarity.
256 lines
9 KiB
Text
256 lines
9 KiB
Text
packJPG v2.5g (09/14/2013)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
packJPG is a compression program specially designed for further
|
|
compression of JPEG images without causing any further loss. Typically
|
|
it reduces the file size of a JPEG file by 20%.
|
|
|
|
|
|
LGPL v3 license and special permissions
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
All programs in this package are free software; you can redistribute
|
|
them and/or modify them under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either version 3
|
|
of the License, or (at your option) any later version.
|
|
|
|
The package is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
|
|
General Public License for more details at
|
|
http://www.gnu.org/copyleft/lgpl.html.
|
|
|
|
If the LGPL v3 license is not compatible with your software project you
|
|
might contact us and ask for a special permission to use the packJPG
|
|
library under different conditions. In any case, usage of the packJPG
|
|
algorithm under the LGPL v3 or above is highly advised and special
|
|
permissions will only be given where necessary on a case by case basis.
|
|
This offer is aimed mainly at closed source freeware developers seeking
|
|
to add PJG support to their software projects.
|
|
|
|
Copyright 2006...2013 by HTW Aalen University and Matthias Stirner.
|
|
|
|
|
|
Usage of packJPG
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
JPEG files are compressed and PJG files are decompressed using this
|
|
command:
|
|
|
|
"packJPG [file(s)]"
|
|
|
|
packJPG recognizes file types on its own and decides whether to compress
|
|
(JPG) or decompress (PJG). For unrecognized file types no action is
|
|
taken. Files are recognized by content, not by extension.
|
|
|
|
packJPG supports wildcards like "*.*" and drag and drop of multiple
|
|
files. Filenames for output files are created automatically. In default
|
|
mode, files are never overwritten. If a filename is already in use,
|
|
packJPG creates a new filename by adding underscores.
|
|
|
|
If "-" is used as a filename input from stdin is assumed and output is
|
|
written to stdout. This can be useful for example if jpegtran is to be
|
|
used as a preprocessor.
|
|
|
|
Usage examples:
|
|
|
|
"packJPG *.pjg"
|
|
"packJPG lena.jpg"
|
|
"packJPG kodim??.jpg"
|
|
"packJPG - < sail.pjg > sail.jpg"
|
|
|
|
|
|
Command line switches
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
-ver verify files after processing
|
|
-v? level of verbosity; 0,1 or 2 is allowed (default 0)
|
|
-np no pause after processing files
|
|
-o overwrite existing files
|
|
-p proceed on warnings
|
|
-d discard meta-info
|
|
|
|
By default, compression is cancelled on warnings. If warnings are
|
|
skipped by using "-p", most files with warnings can also be compressed,
|
|
but JPEG files reconstructed from PJG files might not be bitwise
|
|
identical with the original JPEG files. There won't be any loss to
|
|
image data or quality however.
|
|
|
|
Unnecessary meta information can be discarded using "-d". This reduces
|
|
compressed files' sizes. Be warned though, reconstructed files won't be
|
|
bitwise identical with the original files and meta information will be
|
|
lost forever. As with "-p" there won't be any loss to image data or
|
|
quality.
|
|
|
|
There is no known case in which a file compressed by packJPG (without
|
|
the "-p" option, see above) couldn't be reconstructed to exactly the
|
|
state it was before. If you want an additional layer of safety you can
|
|
also use the verify option "-ver". In this mode, files are compressed,
|
|
then decompressed and the decompressed file compared to the original
|
|
file. If this test doesn't pass there will be an error message and the
|
|
compressed file won't be written to the drive.
|
|
|
|
Please note that the "-ver" option should never be used in conjunction
|
|
with the "-d" and/or "-p" options. As stated above, the "-p" and "-d"
|
|
options will most likely lead to reconstructed JPG files not being
|
|
bitwise identical to the original JPG files. In turn, the verification
|
|
process may fail on various files although nothing actually went wrong.
|
|
|
|
Usage examples:
|
|
|
|
"packJPG -v1 -o baboon.pjg"
|
|
"packJPG -ver lena.jpg"
|
|
"packJPG -d tiffany.jpg"
|
|
"packJPG -p *.jpg"
|
|
|
|
|
|
Known Limitations
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
packJPG is a compression program specially for JPEG files, so it doesn't
|
|
compress other file types.
|
|
|
|
packJPG has low error tolerance. JPEG files might not work with packJPG
|
|
even if they work perfectly with other image processing software. The
|
|
command line switch "-p" can be used to increase error tolerance and
|
|
compatibility.
|
|
|
|
If you try to drag and drop to many files at once, there might be a
|
|
windowed error message about missing privileges. In that case you can
|
|
try it again with less files or consider using the command prompt.
|
|
packJPG has been tested to work perfectly with thousands of files from
|
|
the command line. This issue also happens with drag and drop in other
|
|
applications, so it might not be a limitation of packJPG but a
|
|
limitation of Windows.
|
|
|
|
Compressed PJG files are not compatible between different packJPG
|
|
versions. You will get an error message if you try to decompress PJG
|
|
files with a different version than the one used for compression. You
|
|
may download older versions of packJPG from:
|
|
http://www.elektronik.htw-aalen.de/packJPG/binaries/old/
|
|
|
|
|
|
Open source release / developer info
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The packJPG source codes is found inside the "source" subdirectory.
|
|
Additional documents aimed to developers, containing detailed
|
|
instructions on compiling the source code and using special
|
|
functionality, are included in the "packJPG" subdirectory.
|
|
|
|
|
|
History
|
|
~~~~~~~
|
|
|
|
v1.9a (04/20/2007) (non public)
|
|
- first released version
|
|
- only for testing purposes
|
|
|
|
v2.0 (05/28/2007) (public)
|
|
- first public version of packJPG
|
|
- minor improvements to overall compression
|
|
- minor bugfixes
|
|
|
|
v2.2 (08/05/2007) (public)
|
|
- around 40% faster compression & decompression
|
|
- major improvements to overall compression (around 2% on average)
|
|
- reading from stdin, writing to stdout
|
|
- smaller executable
|
|
- minor bugfixes
|
|
- various minor improvements
|
|
|
|
v2.3 (09/18/2007) (public)
|
|
- compatibility with JPEG progressive mode
|
|
- compatibility with JPEG extended sequential mode
|
|
- compatibility with the CMYK color space
|
|
- compatibility with older CPUs
|
|
- around 15% faster compression & decompression
|
|
- new switch: [-d] (discard meta-info)
|
|
- various bugfixes
|
|
|
|
v2.3a (11/21/2007) (public)
|
|
- crash issue with certain images fixed
|
|
- compatibility with packJPG v2.3 maintained
|
|
|
|
v2.3b (12/20/2007) (public)
|
|
- some minor errors in the packJPG library fixed
|
|
- compatibility with packJPG v2.3 maintained
|
|
|
|
v2.4 (03/24/2010) (public)
|
|
- major improvements (1%...2%) to overall compression
|
|
- around 10% faster compression & decompression
|
|
- major improvements to JPG compatibility
|
|
- size of executable reduced to ~33%
|
|
- new switch: [-ver] (verify file after processing)
|
|
- new switch: [-np] (no pause after processing)
|
|
- new progress bar output mode
|
|
- arithmetic coding routines rewritten from scratch
|
|
- various smaller improvements to numerous to list here
|
|
- new SFX (self extracting) archive format
|
|
|
|
v2.5 (11/11/2011) (public)
|
|
- improvements (~0.5%) to overall compression
|
|
- several minor bugfixes
|
|
- major code cleanup
|
|
- removed packJPX from the package
|
|
- added packARC to the package
|
|
- packJPG is now open source!
|
|
|
|
v2.5a (11/21/11) (public)
|
|
- source code compatibility improvements (Gerhard Seelmann)
|
|
- avoid some compiler warnings (Gerhard Seelmann)
|
|
- source code clean up (Gerhard Seelmann)
|
|
|
|
v2.5b (01/27/12) (public)
|
|
- further removal of redundant code
|
|
- some fixes for the packJPG static library
|
|
- compiler fix for Mac OS (thanks to Sergio Lopez)
|
|
- improved compression ratio calculation
|
|
- eliminated the need for temp files
|
|
|
|
v2.5c (04/13/12) (public)
|
|
- various source code optimizations
|
|
|
|
v2.5d (07/03/12) (public)
|
|
- fixed a rare bug with progressive JPEG
|
|
|
|
v2.5e (07/03/12) (public)
|
|
- some minor source code optimizations
|
|
- changed packJPG licensing to LGPL
|
|
- moved packARC to a separate package
|
|
|
|
v2.5f (02/24/13) (public)
|
|
- fixed a minor bug in the JPG parser (thanks to Stephan Busch)
|
|
|
|
v2.5g (09/14/13) (public)
|
|
- fixed a rare crash bug with manipulated JPEG files
|
|
|
|
|
|
Acknowledgements
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
packJPG is the result of countless hours of research and development. It
|
|
is part of my final year project for Hochschule Aalen.
|
|
|
|
Prof. Dr. Gerhard Seelmann from Hochschule Aalen supported my
|
|
development of packJPG with his extensive knowledge in the field of data
|
|
compression. Without his advice, packJPG would not be possible.
|
|
|
|
The official homepage of packJPG is currently maintained by Hochschule
|
|
Aalen staff.
|
|
|
|
packJPG logo and icon are designed by Michael Kaufmann.
|
|
|
|
|
|
Contact
|
|
~~~~~~~
|
|
|
|
The official home of packJPG:
|
|
http://www.elektronik.htw-aalen.de/packjpg/
|
|
|
|
For questions and bug reports:
|
|
packjpg (at) htw-aalen.de
|
|
|
|
|
|
____________________________________
|
|
packJPG by Matthias Stirner, 09/2013
|