Warning, /graphics/digikam/core/libs/pgfutils/libpgf/README is written in an unsupported language. File is not indexed.

0001 The Progressive Graphics File
0002 =============================
0003  
0004 For more information see http://www.libpgf.org. There you can find some
0005 documents concerning this progressive graphic file codec.
0006  
0007 This project is hosted on the Sourceforge.net platform. For support and
0008 questions, please use the installed mailing list and forums there. 
0009 The Sourceforge URL of our project is: http://sourceforge.net/projects/libpgf
0010  
0011 =============================
0012 Release Notes
0013 
0014 Version 7.21.7, (Thu, 18 Feb 2021)
0015 ------------------------------------
0016 
0017 1. The new version is a minor bug fix of versions 7.15.25 to 7.21.2.
0018 
0019 2. This bug fix for ROI decoding only. This bug fix is necessary if several 
0020    Read() and ResetStreamPos() operations are called with the same PGFimage
0021    object after a single Open() call.
0022 
0023 
0024 Version 7.21.2, (Sun, 17 Jan 2021)
0025 ------------------------------------
0026 
0027 1. The new version is a documentation and build tool update of version 7.19.3.
0028 
0029 
0030 Version 7.19.3, (Tue, 15 Jan 2019)
0031 ------------------------------------
0032 
0033 1. The new version is a minor update of version 7.15.25.
0034 
0035 2. This version fixes a compilation bug seen when ROI support is disabled.
0036 
0037 
0038 Version 7.15.32, (Thu, 6 Aug 2015)
0039 ------------------------------------
0040 
0041 1. The new version is a minor update of version 7.15.25.
0042 
0043 2. This version improves the reuse of CPGFImage objects for several decoding operations. 
0044    It clarifies the usage of CPGFImage::Close() and CPGFImage::Destroy() by deletion of 
0045    Close(). Several reading operations can be performed in the following way:
0046    Open(), Read(), GetBitmap(), ResetStreamPos(), Read(), GetBitmap(), ResetStreamPos(), ...
0047    Calling Destroy() frees all allocated ressources and reinitializes the object to the 
0048    same state as the constructor does. This allows the reuse of the CPGFImage object for 
0049    encoding and decoding: 
0050    SetHeader(), ImportBitmap(), Write(), ResetStreamPos(), Destroy(), Open(), Read(), GetBitmap() 
0051     
0052 3. Caching or skipping of user data (meta data) while opening a PGF image can be controlled
0053    by a new UserdataPolicy in ConfigureDecoder().
0054  
0055 
0056 Version 7.15.25, (Sat, 20 June 2015)
0057 ------------------------------------
0058 
0059 1. This new version is a replacement of version 6.14.12. 
0060    In case you use the ROI decoding, we strongly encourage using version 6.15.25 instead of an older version.
0061 
0062 2. This version fixes some decoder bugs only seen in ROI decoding.
0063    ROI decoding is now also supported for Bitmap and RGB12 image modes.
0064 
0065 3. This version introduces a new and more efficient data format for binary images (bitmaps). 
0066    The new format allows ROI decoding.
0067    The decoder supports both the old and the new format, but ROI decoding works only with the new format.
0068 
0069 4. The two reserverd bytes in PGFHeader are now used for a more detailled PGF version number.
0070 
0071 5. The Visual Studio project files are in the VS12 format.
0072 
0073  
0074 Version 6.14.12, (Wed, 9 April 2014)  
0075 ------------------------------------
0076  
0077 1. The new version is a minor update of version 6.12.24. 
0078 
0079 2. It mainly contains some fixes of memory leaks in the OpenMP part and some improvements suggested by cppcheck and Coverity.
0080 
0081 3. The Visual Studio project files are in the VS11 format.
0082 
0083 
0084 Version 6.12.24, (Thu, 14 June 2012) 
0085 ------------------------------------ 
0086  
0087 1. The new version is a replacement of version 6.11.42. 
0088    In case you use the ROI encoding scheme, we strongly encourage using version 6.12.24 instead of version 6.11.42.
0089  
0090 2. This version fixes some decoder bugs, sometimes seen in ROI decoding.
0091  
0092 3. This version allows a simpler user-data handling, especially for uncached metadata. The following two methods
0093    in the class PGFimage are designed for this purpose:
0094 
0095         GetUserDataPos() returns in an opened PGF image the stream position of the user data area.                                                              
0096 
0097         WriteImage() encodes and writes the image at the current stream position. This method is called after
0098         WriteHeader(). In case you want to write uncached metadata into the stream, then do that after WriteHeader() 
0099         and just before WriteImage(). If you are not interested in writing uncached metadata, then you usually use
0100         Write() instead of WriteImage(). WriteHeader() and WriteImage() are called inside of Write(). 
0101 
0102 
0103 Version 6.11.42, (Sun, 23 Oct 2011) 
0104 ----------------------------------- 
0105  
0106 1. The new version is a replacement of version 6.11.24. 
0107    We strongly encourage using version 6.11.42 instead of version 6.11.24.
0108  
0109 2. This version fixes some decoder bugs, only seen in lossless compression of 
0110    large images.
0111  
0112 3. The rarely used, but sometimes misused, background information (3 Bytes) 
0113    in the PGFHeader has been replaced by
0114 
0115      UINT8 usedBitsPerChannel;    // number of used bits per channel 
0116                                   // in 16- and 32-bit per channel modes
0117      UINT8 reserved1, reserved2;  // not used
0118 
0119 The value usedBitsPerChannel is helpful in case you have more than 8 (16) but 
0120 less than 16 (32) significant bits per channel, stored in the most 
0121 significant bits of a pixel. For example, you have a grayscale image with 14 
0122 bit significant data per pixel stored in the ImageModeGray16 pixel format. In 
0123 case you have left shifted the 14 bits to be the most significant 14 bits, 
0124 then you should set usedBitsPerChannel=14. This will increase the compression 
0125 ratio without any drawbacks, because the 14 bits are internally right shifted. 
0126 On the other side, if the 14 bits are the least significant bits in 
0127 your 16 bit pixel format, then you shouldn't set usedBitsPerChannel. It will 
0128 be automatically set to 16, but this is no problem, since the not used most 
0129 significant bits per pixel are never encoded at all. So, in both cases the same 
0130 compression ratio will result.