114 lines
5.1 KiB
Plaintext
114 lines
5.1 KiB
Plaintext
The Progressive Graphics File
|
||
=============================
|
||
|
||
For more information see http://www.libpgf.org. There you can find some
|
||
documents concerning this progressive graphic file codec.
|
||
|
||
This project is hosted on the Sourceforge.net platform. For support and
|
||
questions, please use the installed mailing list and forums there.
|
||
The Sourceforge URL of our project is: http://sourceforge.net/projects/libpgf
|
||
|
||
=============================
|
||
Release Notes
|
||
|
||
Version 7.19.3, (Tue, 15 Jan 2019)
|
||
------------------------------------
|
||
|
||
1. The new version is a minor update of version 7.15.25.
|
||
|
||
2. This version fixes a compilation bug seen when ROI support is disabled.
|
||
|
||
|
||
Version 7.15.32, (Thu, 6 Aug 2015)
|
||
------------------------------------
|
||
|
||
1. The new version is a minor update of version 7.15.25.
|
||
|
||
2. This version improves the reuse of CPGFImage objects for several decoding operations.
|
||
It clarifies the usage of CPGFImage::Close() and CPGFImage::Destroy() by deletion of
|
||
Close(). Several reading operations can be performed in the following way:
|
||
Open(), Read(), GetBitmap(), ResetStreamPos(), Read(), GetBitmap(), ResetStreamPos(), ...
|
||
Calling Destroy() frees all allocated ressources and reinitializes the object to the
|
||
same state as the constructor does. This allows the reuse of the CPGFImage object for
|
||
encoding and decoding:
|
||
SetHeader(), ImportBitmap(), Write(), ResetStreamPos(), Destroy(), Open(), Read(), GetBitmap()
|
||
|
||
3. Caching or skipping of user data (meta data) while opening a PGF image can be controlled
|
||
by a new UserdataPolicy in ConfigureDecoder().
|
||
|
||
|
||
Version 7.15.25, (Sat, 20 June 2015)
|
||
------------------------------------
|
||
|
||
1. This new version is a replacement of version 6.14.12.
|
||
In case you use the ROI decoding, we strongly encourage using version 6.15.25 instead of an older version.
|
||
|
||
2. This version fixes some decoder bugs only seen in ROI decoding.
|
||
ROI decoding is now also supported for Bitmap and RGB12 image modes.
|
||
|
||
3. This version introduces a new and more efficient data format for binary images (bitmaps).
|
||
The new format allows ROI decoding.
|
||
The decoder supports both the old and the new format, but ROI decoding works only with the new format.
|
||
|
||
4. The two reserverd bytes in PGFHeader are now used for a more detailled PGF version number.
|
||
|
||
5. The Visual Studio project files are in the VS12 format.
|
||
|
||
|
||
Version 6.14.12, (Wed, 9 April 2014)
|
||
------------------------------------
|
||
|
||
1. The new version is a minor update of version 6.12.24.
|
||
|
||
2. It mainly contains some fixes of memory leaks in the OpenMP part and some improvements suggested by cppcheck and Coverity.
|
||
|
||
3. The Visual Studio project files are in the VS11 format.
|
||
|
||
|
||
Version 6.12.24, (Thu, 14 June 2012)
|
||
------------------------------------
|
||
|
||
1. The new version is a replacement of version 6.11.42.
|
||
In case you use the ROI encoding scheme, we strongly encourage using version 6.12.24 instead of version 6.11.42.
|
||
|
||
2. This version fixes some decoder bugs, sometimes seen in ROI decoding.
|
||
|
||
3. This version allows a simpler user-data handling, especially for uncached metadata. The following two methods
|
||
in the class PGFimage are designed for this purpose:
|
||
|
||
GetUserDataPos() returns in an opened PGF image the stream position of the user data area.
|
||
|
||
WriteImage() encodes and writes the image at the current stream position. This method is called after
|
||
WriteHeader(). In case you want to write uncached metadata into the stream, then do that after WriteHeader()
|
||
and just before WriteImage(). If you are not interested in writing uncached metadata, then you usually use
|
||
Write() instead of WriteImage(). WriteHeader() and WriteImage() are called inside of Write().
|
||
|
||
|
||
Version 6.11.42, (Sun, 23 Oct 2011)
|
||
-----------------------------------
|
||
|
||
1. The new version is a replacement of version 6.11.24.
|
||
We strongly encourage using version 6.11.42 instead of version 6.11.24.
|
||
|
||
2. This version fixes some decoder bugs, only seen in lossless compression of
|
||
large images.
|
||
|
||
3. The rarely used, but sometimes misused, background information (3 Bytes)
|
||
in the PGFHeader has been replaced by
|
||
|
||
UINT8 usedBitsPerChannel; // number of used bits per channel
|
||
// in 16- and 32-bit per channel modes
|
||
UINT8 reserved1, reserved2; // not used
|
||
|
||
The value usedBitsPerChannel is helpful in case you have more than 8 (16) but
|
||
less than 16 (32) significant bits per channel, stored in the most
|
||
significant bits of a pixel. For example, you have a grayscale image with 14
|
||
bit significant data per pixel stored in the ImageModeGray16 pixel format. In
|
||
case you have left shifted the 14 bits to be the most significant 14 bits,
|
||
then you should set usedBitsPerChannel=14. This will increase the compression
|
||
ratio without any drawbacks, because the 14 bits are internally right shifted.
|
||
On the other side, if the 14 bits are the least significant bits in
|
||
your 16 bit pixel format, then you shoulden’t set usedBitsPerChannel. It will
|
||
be automatically set to 16, but this is no problem, since the not used most
|
||
significant bits per pixel are never coded at all. So, in both cases the same
|
||
compression ratio will result. |