NOTABLE CHANGES
===============

This file lists significant changes in the SDK that users should be aware of.
-----------------------------------------------------------------------------
Changes from 9.5.4.4703/4705 to 9.5.4.4709
-----------------------------------------------------------------------------

*   Patch to original 9.5.4 SDK release fixes fractional pixel shift of some
    some tiles in mixed-resolution MrSID composite mosaics (LT-1990)

-----------------------------------------------------------------------------
Changes from 9.5.1.x to 9.5.4.x
-----------------------------------------------------------------------------

*** API CHANGE *** Some non-breaking changes have been introduced to the API.
    This will not require changes to existing code, but a re-compile will be
	needed.

*   On Windows, the library is bulit without /Zc:wchar_t- so wchar_t is now
    a compile defined type, which is the VS default behavior.  The /Zc:wchar_t-
    options is not required to link with wide string methods in LTFileSpec.

*   Added LTIImage::getMetadataBlob(type, stream) to get XMP or EXIF metadata
    stored in MrSID, JPEG, and TIFF files.

*   BMPImageWriter supports writing images with an alpha band.

*   TIFFImageWriter now alows the the user to set the endianness of the output
    file.

*   Added utility methods:
    - LIIImage: getNumBandsWithoutAlpha()
    - LTIPixel: setNonAlphaSampleValuesFromDouble(), setSampleValuesFromPixel(),
         setNonAlphaSampleValuesFromPixel()
    - LTIOStreamInf: readString()

-----------------------------------------------------------------------------
Changes from 9.1.x.x to 9.5.x.x
-----------------------------------------------------------------------------

*** API CHANGE *** Some non-breaking changes have been introduced to the API.
    This will not require changes to existing code, but a re-compile will be
	needed.

-----------------------------------------------------------------------------
Changes from 9.0.x.x to 9.1.x.x
-----------------------------------------------------------------------------
 
*   Floating Point Support for MrSID Generation 4:
    - Added support for reading floating point images saved to the MrSID 
      Generation 4 format. These images are created with the quantization 
      compression type, a lossy compression method that reduces the precision
      of pixel values in the image.
    - Added metadata tags for images created with the quantization compression
      method.

-----------------------------------------------------------------------------
Changes from 8.5.x.x to 9.0.x.x
-----------------------------------------------------------------------------

*** API CHANGE *** As described below, some breaking changes have been
   introduced to the API. This may require small changes to existing code.

*** Multi-Processor Support *** See the User Manual for information about
   the multi-processor support. The TBB shared object must be distributed.

* In MrSIDImageReader, MG3SingleImageReader, MG4SingleImageReader, MrSIDImageStageManager:
  - Added getMaxWorkerThreads() and setMaxWorkerThreads(). See the User Manual
    for information about the multi-processor support.

* In J2KImageReader:
  - Added support for reading GMLJP2 files.

* Removed support for Solaris.

* In mrsiddecode and mrsidinfo:
  - On Unix, lib/libgeos.so must be in LD_LIBRARY_PATH.

* In LTIImageStage:
  - Added getPipelineInfo() to query the pipeline for its properties.  This will
    only affect persons that have derived subclasses of LTIImageStage,
    LTIImageFilter, or LTIImageReader.

* In LTIImageReader:
  - Added getSourceName() to improve some error messages. This will only affect
    persons that have derived subclasses of LTIImageReader.

* In LTIScene:
  - Added constructor that takes LTIGeomIntRect and magnification.

-----------------------------------------------------------------------------
Changes from 8.1.x.x to 8.5.x.x
-----------------------------------------------------------------------------

*** DLL NAME Change *** Beginning with SDK Version 8.5.0.3425, the Windows 
   dynamically-linked DSDK contains the version number in the DLL name 
   ("lti_dsdk_8.5.dll").  The stub library is unchanged ("lti_dsdk.lib").  
   This will allow applications to simultaneously use two different versions of the SDK.

*** API CHANGE *** As described below, some breaking changes have been
   introduced to the API to support efficient selection of bands during
   decodes.  This may require small changes to existing code.

* In LTIImageStage:
  - readBegin() and decodeBegin() now take a LTIPixel to select which bands
    should be decoded.  This will only affect persons that have derived sub-
    classes of LTIImageStage, LTIImageFilter, or LTIImageReader.

* In LTIPixel:
  - Added a copy constructor that only copies a subset of the bands, useful
    for band selected decodes.

* In MrSIDImageReader:
  - Removed a specific band-subset initialize() method; use the LTSceneBuffer
    to choose the band-subset when calling read().

* In J2KImageReader:
  - Removed a specific band-subset initialize() method; use the LTSceneBuffer
    to choose the band-subset when calling read().

* In LTISceneBuffer:
  - The implementation has been simplified to a more common width, height and
    "row-bytes" model.
  - Added getNumCols(), getNumRows(), getNumPixel(), getBSQData(),
    getBandData(), and getSample() to replace their getWindow*() counterparts
  - Deprecated all getWindow*() methods.
  - Deprecated all getTotal*() methods except getTotalNumCols() which is needed
    to calculate the row-bytes.

* In NITFReaderManager:
  - Added an initialize() that takes a LTIOStreamInf.

-----------------------------------------------------------------------------
Changes from 8.0.x.x to 8.1.x.x
-----------------------------------------------------------------------------

*** API CHANGE *** Signifcant changes have been made to the naming of
files and classes supporting reading and writing of NITF files.  For the
8.1 preview release, a list of changes is available separately from
LizardTech.


-----------------------------------------------------------------------------
Changes from 7.x to 8.0.0.x
-----------------------------------------------------------------------------

*** API CHANGE *** As described below, some (relatively minor) breaking 
  changes have been introduced to the API.  This will require small changes 
  to existing code.

* All image stage classes have two new functions:
  - getEncodingCost()
  - getModifications()

* In the various image writer implementations, the input image stage 
  parameter has moved from ctor to initialize().

* Various mild, syntactic changes to LTFileSpec class actors.

* LTIcolorTransformer and LTIDynamicRangeFilter have been changed such that
  initialize() and isSupportedTransform() now take an LTIPixel directly, 
  instead of a colorspace and a band count.

* LTIInterruptDelegate and LTIProgressDelegate now have virtual dtors.

* In LTIImage:
  - getPhysicalSize() was removed.
  - getNominalSize() was replaced by getNominalSizeWithAlpha() and 
    getNominalSizeWithoutAlpha().

* In LTIImageWriter:
  - Added deleteOutput().
  - Removed getEstimatedOutputSize().
  - Added setEncodingApplication().

* In LTIMosaicFilter:
  - Removed useResCorrect param from initialize(), as it is now always used.
  - Exposed resampling methods.

* LTIRawImageReader:
  - Removed setGeoCoordinate().
  - Removed setNoData(), setBackground().

* In MrSIDImageReader:
  - Added a specific band-subset initialize() call, for improved performance
    with multispectral imagery

* In TIFFImageWriter:
  - Added an option to enable BigTIFF support.
  
  
-----------------------------------------------------------------------------
Changes from 6.1. to 7.0.0.xxx
-----------------------------------------------------------------------------

*** API CHANGE *** As described in the Porting Guide section of the User
  Manual, breaking changes have been introduced to the API, in order to
  address the needs of more flexible workflows and pipelines in
  applications.  This will require small changes to existing code.
 
* The header files have been moved from "./include/*/*.h" to "./include/*.h".
  Existing applications will have to update their include paths accordingly.
 
* The LTIOFileStream class now support +2GB files.  The LTIOFileStream64
  class has been removed.
  
* The mix of supported platforms has been updated.  See platforms.txt
  for details.

* A number of bugs have been fixed in the JP2 and NITF readers and writers.

* Small performance improvements have been made in many areas of the code.

* Member functions that are not documented (or are explicitly marked as
  LizardTech-only) should in general not be used by third-party developers.


-----------------------------------------------------------------------------
Changes from 6.0.7.1407 [1304_br] (6.0 release) to 6.1.x.xxxx (TPx)
-----------------------------------------------------------------------------

NOTE the section below (6.0.4->6.0.7) includes changes between Bob_1287 and
Bob_1304, and also between Bob_1304_br_1304 and Bob_1304_br_1407.  Many of
those changes were merged from the trunk, so when you fill out this section,
get the changelog from Bob_1304 to present and make sure you are not repeating
something that was already mentioned in the previous section.


-----------------------------------------------------------------------------
Changes from 6.0.4.1287 (TP4) to 6.0.7.1407 [1304_br] (6.0 release)
-----------------------------------------------------------------------------

 * **API CHANGE** Added ltic_getDimsAtMag() to the C API so customer code does
   not have to try to imitate the internal rounding.

 * New platforms are now supported: Darwin 8 Universal Binary gcc 4, and
   Solaris 64-bit (sparcv9) on sunpro 5.8.

 * Multi-resolution composites with non-octave tiles are now supported by MG3;
   this is a FILE FORMAT CHANGE (if you use this feature), decoders built on
   previous versions of the SDK will be able to decode these files.

 * **API CHANGE** The GIFImageWriter has been removed from the SDK.

 * New example code is available in the VC7 and VC8 SDKs, demonstrating a
   viewer based ont he Win32 API.

 * In all windows distributions of the SDK static libraries and DLLs are now
   included using four different code-generation options: /MD (Release_md),
   /MDd (Debug_md), /MT (Release), and /MTd (Debug).


-----------------------------------------------------------------------------
Changes from 6.0.3.1252 (6.0.3 TP3) to 6.0.4.1287 (6.0.4 TP4)
-----------------------------------------------------------------------------

 * Improved support for JPEG 2000 TLMs.

 * Memory usage reduced and leak fixed in MG2 and MG3 decoders. [13515, 13489]

 * NITF geopositioning greatly improved.

 * Dynamic range min and max values are preserved through mosaics. [13452]

 * 12-bit JPEGs are supported directly (formerly only 12-bit JPEG-encoded
   TIFFs were supported).

 * Behavior of getDimsAtMag() has changed so it always rounds "out".  Customer
   code relying on the former behavior of getDimsAtMag() may be affected.


-----------------------------------------------------------------------------
Changes from 6.0.1.1146 (6.0.1 TP1) to 6.0.3.1252 (6.0.3 TP3)
-----------------------------------------------------------------------------

 * Severed dependency on third-party crypto++ library.  This library has been
   removed from the SDK distribution.

 * New platforms are now supported: VC8, Linux gcc 3.2, and Linux gcc 3.4.

 * Added ESDK read support for DTED files with .dt1 and .dt2 file extensions.

 * The JPEG 2000 support is now based off of Kakadu 4.5.1.

 * Fixed problem while writing the GeoTIFF metadata box of JP2 files [13309],
   as well as various other minor GeoTIFF-metadata and WKT issues.

 * **API CHANGE** Replaced LTIColorCompositeFilter, LTISampleMapTransformer,
   and LTIColorTransformerMultiband filters with LTIBandSelectFilter, a single
   unified filter that encompasses all of their functionality.

 * The underlying GDAL library used has been updated to the 1.3.0 version.

 * All C++ usage of the GDAL library has been eliminated.  For flexibility in
   linking against newer versions of GDAL, the C interface is used instead.
 
 * Added a new file to help with versioning of the SDK interface.  The header
   lti_version.h now contains the following macros for identifying the
   GeoExpress SDK version: LTI_SDK_VERSION, LTI_SDK_MAJOR, LTI_SDK_MINOR, and
   LTI_SDK_REV.

 * Memory allocation throughout the source has been converted to use a central
   allocation class, which can be swapped out with a custom implementation
   according to the memory management needs of the application.

 * Various TIFF performance issues were resolved. [12270, 13323, 12904, 13038]

 * **API CHANGE** The growth rate of the LTIODynamicMemStream can now be set
   via a constructor parameter.


-----------------------------------------------------------------------------
Changes from 6.0.0.1057 [1055_br] to 6.0.1.1146 (6.0.1 TP1)
-----------------------------------------------------------------------------

 * Masked Region of Interest (MROI) support was added for MG3.

 * Signed 8- and 16-bit datatypes have been plumbed in the SDK and DTED was
   added as a valid input image format.

 * Two new examples with source code were added to the VC7 SDK:
    - Thumbnail Shell Extension: renders thumbnails in the file explorer.
    - Viewer: opens LizardTech-format images with basic pan-and-zoom.

 * GIFImageWriter and PNGImageWriter classes were added to write these image
   formats.

 * LTIBandAidFilter, a generalized band-remapping filter, was added.

 * LTIODynamicMemStream formerly doubled its memory allocation when
   automatically growing its buffer.  The growth rate can now be set
   explicitly in the constructor.

 * MG2 encoding of 16-bit CMYK images was explicitly disallowed in the SDK.

 * LTIBBBImageWriter now takes an LTIImage& instead of an LTIImageStage&.

 * The LTIMultiResFilter can now use bilinear or bicubic resampling methods.

 * The maximum subblock size for MG3 encoding clamped to 128.  Subblock sizes
   larger than this are not beneficial and can result in syntactically-correct
   images that nevertheless require a pathological resource allocation to
   decode.

 * A notable bug was fixed in accessing image files whose names contained
   letters with accents.

 * Various memory leaks were fixed.


-----------------------------------------------------------------------------
Changes from 5.0.6.955 [947_br] to 6.0.0.1055 [1055_br] (6.0 TP0)
-----------------------------------------------------------------------------

 * The -blockSize option in the mrsidencode application now works correctly
   for MrSID/MG2 files.

 * Very minor changes to the JP2 writer and reader APIs, in order to better
   distinguish and support "JPC", "JP2", and "JPX" style files.

 * Significant bug fixes, resolution corrections, and memory improvements to
   the image mosaicker.  This may significantly improve workflows with
   composite MrSID imagery.
     
 * A number of functions in LTIImage and it derived classes are no longer
   virtual, e.g. getHeight(), getDataType(), etc.

 * The JPEG 2000 support is now based off of Kakadu 4.4.

 * The underlying GDAL library used has been updated to the 20050425 CVS
   snapshot.
 
 * Preliminary support for reading 12-bit, JPEGged TIFF images has been added.

 * gcc builds will no longer issues the "tmpnam" warning.


-----------------------------------------------------------------------------
Changes from 4.1.2.893 (TP3) to 5.0.6.955 [947_br] (public 5.0 release)
-----------------------------------------------------------------------------

 * **API CHANGE** LTINavigator::setSceneAsResRel...() methods were removed.
   Behavior of setSceneAsCWH() has been corrected.  There is a corresponding
   change in behavior with the "-cxy" option of all command-line apps.  Apps
   relying on previous (erroneous) behavior beware. [11247, 12199]

 * **API CHANGE** The ESDK now supports the writing of multi-segment NITF
   files.  Corresponding additions made to both the C++ and C APIs.

 * Third-party libraries previously built-in to the SDK library are now
   shipped separately under the 3rd-party directory.  This changes the linking
   requirements for applications using the SDK; these libraries must now be
   included on the link line.  See examples/makefile for an example.

 * Multi-segment NITF files will always be treated as a mosaic by
   mrsiddecoder, unless the LT_NITF_IMAGENUM environment variable is set, in
   which case the single segment described by its value will be used, instead.

 * The NITF encode and decode APIs have an added option to support images
   compliant with the 2500B/Notice2 NITF specification.  The default is to
   support compliance with the 2500C/Draft specification. [11411]

 * The mrsidinfo application now prints out the profile used for a given NITF
   or JP2 file. [10741]

 * The mrsidinfo application now shows metadata for all NITF/JP2 segments.

 * The LTIOSubStream stream class has been added to the SDK.  This is a stream
   that wraps another stream, providing access to a contiguous subset of the
   bytes of the parent stream.

 * The LTIMosaicFilter has a new method, preserveMetadata(), which will cause
   metadata from its input images to be preserved.  The default behavior has
   been changed so that metadata is automatically removed from all input
   images.  By removing metadata, memory is reclaimed for the mosaicking
   operation; however, if the metadata will be needed by the application after
   the operation, preserveMetadata() should be called.  Note that the
   resulting file will not be affected by making use of this option.

 * The NITFImageReader now reads BLOCKA TRE's into its metadata.  The
   NITFImageWriter will now use WKT information if available for georeferenced
   images to write BLOCKA TRE's.

 * A bug has been fixed in which MG2 files with truncated metadata were
   causing applications using the SDK to return an error, when previous MrSID
   SDKs were able to continue rendering the image.  [11923]

 * GDAL data files have been added in support of WKTs.  The GDAL_DATA
   environment variable must be set for the SDK to find the directory; if it
   is not set, the SDK will not produce WKTs.



-----------------------------------------------------------------------------
Changes from 4.1.1.871 (TP3) to 4.1.2.893 (TP4)
-----------------------------------------------------------------------------

 * The JP2 codec has been upgraded; performance in some areas is improved, and
   stronger error checking has been added.

 * LTIImage::{setPixelProps(), setDims(), setBackgroundPixel(),
   setNoDataPixel(), setGeoCoord()} now also set the corresponding metadata
   tags.



-----------------------------------------------------------------------------
Changes from 4.1.1.841 (TP2) to 4.1.2.871 (TP3)
-----------------------------------------------------------------------------

 * The following features are are under significant development at this time
   and should not be used with this release:
     - NITF reader and writer
     - WKT support
     - reprojection support
     - JP2 and MrSID/MG3 ROI encoding

 * A performance issue with opening MG3 composites containing a large number
  (hundreds) of MG3s has been resolved.

 * Use of the LTI_PROFILE_HOME, GDAL_DATA, and PROJSO are now required when
   using J2K profiles, NITF, or reprojection-related functions.

 * NPJE now set to use 9-7 wavelet by default.

 * A bug with LTIColorTransformer which did not allow the identity transform
   has been fixed.



-----------------------------------------------------------------------------
Changes from 4.1.1.811 (TP1) to 4.1.2.841 (TP2)
-----------------------------------------------------------------------------

 * **API CHANGES** Several (very minor) API changes have occurred.  (However,
   the original APIs may be restored in a subsequent release.)

 * The NITF reader and writer are in the middle of a substantial upgrade.
   They should not be used at this time.

 * Improved georeferencing and reprojection support is being added.  These
   features should not be used at this time, however.

 * Support for XML-based "profiles" is being added to the J2KWriterParams
   class.  This feature should not be used in this release.

 * A problem with reading MG2 files whose metadata had been truncated has been
   fixed.  (It is not known what tool may have created the corrupted files
   came from.)

 * A few more minor JP2 compliance issues have been addressed.

 * A bug in compressing large (width*height > 2^32) JP2 images has been fixed.

 * Additional datatypes have been added tothe core libraries, e.g. F64 and
   S32.

 * The JpegImageReader now supports stream-based images as well as file-based.

 * The MG2 writer now sets the default block size based on the input image
   dimensions, instead of a static value.  Also, the stripheight parameter is
   no longer supported for this class.  These changes may result in
   substantial performance improvements.



-----------------------------------------------------------------------------
Changes from 4.1.0.768 (TP0) to 4.1.1.811 (TP1)
-----------------------------------------------------------------------------

 * **API CHANGE** LTIImageStage::getInterruptStatus() is no longer const

 * **API CHANGE** LTIImageStage::checkSupported() has been removed (you must
   construct the impedence check manually now)

 * At the core level, new datatypes are supported: S8, S16, S32, U32, F64.
   Only the Raw/BBB readers/writers support these types, however.

 * The BBBImageWriter class now always writes "DATATYPE U8" to the .hdr file
   (this used to be the silent default).

 * The IMGImageReader class is no longer supported by the ESDK.



-----------------------------------------------------------------------------
Changes from 4.0.9.712 (public 4.0 release) to 4.1.0.768 (TP0)
-----------------------------------------------------------------------------

 * Support for the Solaris/SPARC platform under gcc 3.2.3 has been added.

 * A memory issue with very large MG2 encodes has been addressed.

 * Uniform worldfile support has been added to all image readers, via the
   introduction of the LTIGeoImageReader class.

 * The TIFFImageWriter did not work correctly if the output target was a
   stream (as opposed to a file).  This has been fixed.  [9715]

 * The following JP2ImageReader code fragment returned an error code (50916)
   from the initialize() call due to mishandling of the LTFileSpec object:
      const char* fileName = ...
      J2KImageReader reader(LTFileSpec(fileName));
      LT_STATUS sts = reader.initialize();
   This has been fixed.  [10042]



-----------------------------------------------------------------------------
Changes from 4.0.8.673 ("TP8") to 4.0.9.712 (public 4.0 release)
-----------------------------------------------------------------------------

 * The MrSID reader classes are now restricted to just MrSIDImageReader and
   MG3CompositeImageReader; the other MrSID readers were not needed in the
   public API.  The interfaces of the two remaining classes have changed
   slightly, to make resource control more sensible.

 * The SDKs now are built against gdal v1.2.0.

 * Upgraded to Kakadu 4.2.

 * More JPEG 2000 encoder options available, including support for reading raw
   codestreams.

 * MG3 optimizer now works on composite images.

 * World files, composite images, the optimizer, etc, all now play together
   nicely.

 * The C API for decoding has been improved and is now complete.

 * On win32 and win32-vc7, DLLs are now available.

 * Multibanded data now supported by MG3; this is a FILE FORMAT CHANGE (if you
   use this feature), old decoders will NOT WORK on these files.

 * A "fuzzy" option is now available for fixing the black-line "grout bug" in
   multires mosaics.

 * The User Manual and Reference Manual are both now complete.

 * Obsolete lti_bufferData.h (LTIBufferData) removed; use LTISceneBuffer
   instead.


-----------------------------------------------------------------------------
Changes from 4.0.7.646 ("TP7") to 4.0.8.673 ("TP8")
-----------------------------------------------------------------------------

 * The SDK now builds under gcc version 3.2.3 for Linux.

 * The mrsidtiler command line application has been significantly cleaned up
   and is now included in the E-SDK distribution.

 * The MG3Tiler class has been significantly cleaned up and is now included in
   the E-SDK distribution.

 * The BBB reader and writer classes have been improved and now reside in the
   "base" include directory.  Endianness support has been added; the default
   is to use the endianness of the host.

 * The mrsiddecoder application has improved BBB output support, including
   -bil, -bsq, and -endian.

 * A number of fixes and improvements have been made to MG3 composite
   workflows, including significant fixes for resource usage problems.

 * A number of fixes and improvements have been made to the multires and
   static zoom filters, in support of mosaicking and compositing operations.
   Image quality for multires composites images has improved.

 * The NITFImageWriter class is now supported.

 * The mrsiddecoder app now supports NITF output.

 * The command line apps should now work properly in under I18N conditions.

 * LTIUtils now has functions to query the SDK version.

 * Three new stream classes have been added: LTIMemStream,
   LTIODynamicMemStream, and LTIOBufferedStream.

 * All "public" enums have now been assigned constant values (to enable future
   DLL usage).

 * The LTINavigator member functions have been finished, including the
   addition of zoomTo(), zoomBy(), and setSceneToIcon();

 * The decodeBegin/Strip/End methods in the LTIImageStage classes are now
   protected, instead of public.

 * The Reference Manual has been reorganized and the start of a User Manual
   has been added.

 * MG2 again supports writing 32-bit floating images.

 * The command line apps send error messages to stderr now.

 * An off-by-one error in the dynamic range filter has been fixed.

 * The LTIImage::getId() function (and associated enums) has been removed.

 * The mrsidviewer application now supports zooming for images that do have
   multiple levels, e.g. TIF or BBB.

 * The class LTIBufferDataAcc is no longer included in the SDK.  (Given the
   new organization of the LTISceneBuffer, the Acc class is no longer
   required.)

 * The "preview" filter (for test-encode support) now works for 16-bit data.

 * The JPEG 2000 classes now support ability to read and writer user-specified
   UUID boxes.

 * The TIFF writer now supported multibanded images.

 * A VERSION.txt file has been added.  This file should be included with all
   problem reports.


-----------------------------------------------------------------------------
Changes from 4.0.6.619 ("TP6") to 4.0.7.646 ("TP7")
-----------------------------------------------------------------------------

 * This release should contain the last major/significant API changes needed
   for the final release.  There will still be API changes, but they should be
   contained to small changes in specific classes as opposed to major core
   changes.

 * Under repeated panning and zooming, the mrsidviewer sample application was
   buggy; this has been fixed.

 * The "crop" optimization of MG3 files may take significantly longer than it
   should for a very large and/or very sparse MG3 image. [8037]

 * The MG2ImageWriter, MG3ImageWriter, and MG3Optimizer classes now use
   separate "Params" classes for setting encoding parameters, like the
   J2KImageWriter does.

 * The LTIBufferData class has been renamed to LTISceneBuffer.  (A typedef has
   been provided for backwards compatibility, but this is expected to be
   removed before the final release.)

 * More headers have been doxygenated.

 * Some additional JP2 encoding parameters have been added.  However,
   tile-part markers are not working and large file workflows have not been
   validated or tuned.

 * Several MG3 optimizer bugs and issues have been fixed.  In some case,
   performance should be significantly better than the previous release.

 * A number of MG3 workflows resulted in excessive file handles being kept
   open.  These have been fixed.  (And some additional improvements will be in
   the next release.)

 * The constructor process for the LTIRawImageReader class has changed, and a
   number of additional features have been added, e.g. BIL and BSQ support.

 * The LTIMeteredImageWriter::disableUsageMeter() function has been changed to
   to setUsageMeterEnabled(bool).

 * The LTIGeoNavigator and LTIResRelNavigator classes have been removed and
   their functions migrated back to LTINavigator.

 * Our TIFF support has been greatly improved.  More TIFF variants are now
   supported.

 * BBBImageWriter now supports BSQ output.

 * A bug with Background and NoData support for J2KImageWriter has been fixed.


-----------------------------------------------------------------------------
Changes from 4.0.0.564 ("TP5") to 4.0.6.619 ("TP6")
-----------------------------------------------------------------------------

 * This release now supports JPEG 2000 encoding and decoding, via the
   J2KImageWriter and J2KImageReader classes.  The usage meter (data
   cartridge) is used for encoding, as with the MrSID encoder class.  The
   command line applications fully support the .jp2 file format.  The J2K
   classes currently support "classical" MrSID-style metadata as well as the
   two MSI metadata formats (world file data and degenerate GeoTIFF file
   data).

 * There have been significant changes to the interfaces for LTIScene and
   LTINavigator.  With these changes we have clarified the use of
   "low-resolution" (integer) coordinates versus "high-resolution" (double)
   coordinates; the former is to be used for buffer or memory related
   operations, where the image data is being discretized to a known physical
   buffer; the latter is for scene selection and management, prior to output
   to a buffer.  These changes will lead to less round-off errors and pixel
   shifts.  These changes will break existing code.

 * There have been significant changes to the LTIBufferData and LTIPixel*
   classes.  All intermediate buffering is now done only in "BSQ" format,
   which improves both performance and ease-of-use.  Export methods are
   provided to convert the BSQ data to other formats, e.g. BIP.  The Pixel
   changes will allow the SDK to in the future support pixels with mixed
   sample types, e.g.  a pixel with three 8-bit values (rgb) and a fourth
   16-bit grey band.  These changes will break existing code.

 * The lti_geometry.h classes are no longer part of the SDK distribution.

 * The MG3ImageReader class has been split into two classes,
   MG3SingleImageReader and MG3CompositeImageReader.  The latter class wraps
   the former class, in order to handle composite ("tiled") mg3 files.

 * The command line encoder and decoder now use "-if" and "-of" switches to
   indicate the input and output image formats, e.g. "-if nitf" and "-of mg2".
   These switches are only required where the default behaviour is not
   correct.

 * Use of LTFileSpec objects is no longer is as permissive as it was with
   respect to subsituting char* strings when passing arguments.  This change
   allows us to tighten up some I18N issues.  This change will cause compile
   failures with existing code; to fix, assign variables of type LTFileSpec
   directly.

 * A number of problems with the TIFF reader have been addressed; more
   variants of the TIFF standard are now supported.

 * A number of issues having to do with pixel shifts, subpixel resolutions,
   etc, have been resolved.

 * A signfifcant leak of file handles caused by the undelrying encoders has
   been fixed.

 * Multispectral/multiband support has been added.  The colorspace
   LTI_COLORSPACE_MULTISPECTRAL indicates image has one or more bands and the
   "colorspace" is not one of the usual (RGB, GREYSCALE, etc).  Multiband
   images are supported by the Raw and J2K image readers and writers.


-----------------------------------------------------------------------------
Changes from 4.0.0.534 ("TP4") to 4.0.0.564 ("TP5")
-----------------------------------------------------------------------------

 * Darwin-6.6 and Darwin-7 are now fully supported and validating.  However,
   under darwin-6.6 the data cartridge features are disabled.

 * The mrsidencoder application is no longer shipped as part of the DSDK.

 * The SunPro native compiler is now fully supported.  (Note that 2-byte
   alignment is required for 16-bit data buffers.)

 * A problem with certain MG2 files not being correctly decoded due to a
   metadata formatting issue has been corrected.  [8310, 8274]

 * Most symbols publicly exported by the SDK libraries are now either within
   the LizardTech namespace or have their names prefixed by appropriate
   letters so as to avoid clashes in user-level application.

 * Minor API changes were performed to several core classes to change certain
   memory buffer parameters from "lt_uint8*" to "void*".  This should not
   require any changes to existing code.

 * The SDKs now are built against gdal v1.1.9.

-----------------------------------------------------------------------------
Changes as of August 07
-----------------------------------------------------------------------------
 * Upgraded GDAL to 1.4.2 and GEOS to 2.2.3
