* Version 4.0

Released on December 13, 2009.

** Improvements

- Huge new documentation in Info, PS, PDF, and XHTML formats.  Plain
  HTML format is not supported because it cannot portably render
  MathML.

- New manual pages.

- Automatic bit depth conversion between input and output images if
  necessary.

  For example: given 16-bit TIFF input images and a JPEG output image
  Enblend and Enfuse automatically convert from 16-bit to 8-bit before
  writing the JPEG file.

- Compilation without image cache works again
  ("--disable-image-cache").  Speedups of up to 30% have been reported
  on the amd64 architecture.

- Enblend and Enfuse accept repsonse files in addition to literal
  image files.  Response files contain lists of image filenames or
  names of other response files.

- Lots of new warnings if a command-line option has no effect, like,
  for example, combining a mask optimization option with
  "--no-optimize".

- Enblend shows the initial, unoptimized seam line in addition to the
  optimized one in all seam-line visualization images (option
  "--visualize").

- Enblend and Enfuse read multi-layer TIFF files ("multi directory" in
  TIFF jargon).  It is even possible to mix multi-layer with single
  layer images.  This partially fixes SourceForge bug ID 1170329.

- Save masks with (lossless) "Deflate" compression.

- An improved wrap-around option, formerly only "-w", now "-wMODE" and
  "--wrap=MODE", lets the user determine whether to create a 360
  degrees horizontal or vertical panorama.  It is possible to wrap
  around vertically and horizontally at the same time.

- Without any output filename given, i.e. no "-o" option, the output
  filename now defaults to "a.tif", making "-o" truly an option.

- The user has better control of the number of pyramid levels.
  Previously only the maximum number in any blend could be reduced
  by the "-l" option.  Now, the maximum number can be reduced by a
  fixed amount no matter what the actual maximum number of permissible
  pyramid levels is.

- Use OpenMP to make better use of multi-processor machines.  As the
  image cache is not reentrant, OpenMP can only be activated when the
  image cache is disabled.

- Enblend and Enfuse issue messages following the GNU standard.


** Bug Fixes

- Fix the calculation of the number of blending levels.  Previously,
  it was off by one in most cases.

- A longstanding bug (SourceForge ID 2160427) in the primary seam line
  generation that caused a sub-optimal seam line was fixed.  As a side
  effect the new seam line algorithm is at least 20% faster than the
  old one.

- Another longstanding bug (SourceForge ID 1891785) that caused wrong
  output for images with holes was also fixed.

- Fix a well hidden but serious bug in the seam line optimization.
  Both, the GPU and non-GPU versions of the optimizer were affected.

- Make Enblend and Enfuse aware of the input images' resolution.  Use
  the input resolution in the output file.

  With this change masks get the correct offsets.  This fixes the bug
  that masks do not end up at the correct position with respect to the
  input files.

- Fix MacOS problem of parsing floating-point parameters at the
  command line.


** New Commandline Options

- All Enfuse options have been converted to Enblend's option naming
  scheme.  This is, camel-casing has been replaced by lowercase plus
  dashes.  The new option name are more systematically constructed,
  too.  The old options will completely dissapear in the next release,
  4.1.

               Old Option                New Option
          ====================    ========================
          --ContrastWindowSize    --contrast-window-size
          --EdgeScale             --contrast-edge-scale
          --EntropyCutoff         --entropy-cutoff
          --EntropyWindowSize     --entropy-window-size
          --GrayProjector         --gray-projector
          --HardMask              --hard-mask
          --MinCurvature          --contrast-min-curvature
          --SaveMasks             --save-masks
          --SoftMask              --soft-mask
          --wContrast             --contrast-weight
          --wEntropy              --entropy-weight
          --wExposure             --exposure-weight
          --wExposureMu           --exposure-mu
          --wExposureSigma        --exposure-sigma
          --wSaturation           --saturation-weight

- New option to control the output bit depth ("--depth").

- Mask filenames can be specified with templates.

  * Enblend ("--save-masks", "--load-masks", "--visualize"): Save and
    load all masks of a project in a single run.  Same for seam line
    visualization files.

  * Enfuse ("--save-masks"): Save soft and hard masks according to
    path given in template.

- New option to control the mask vectorization, which is done before
  any mask optimizations ("--mask-vectorize").

- New option to control the Simulated Annealing optimizer called
  strategy 1 ("--anneal").

- New option to control the relative weights of the distance to the
  initial seam line and the total mismatch ("--optimizer-weights").

- New option to control the Dijkstra path minimizer called strategy 2
  ("--dijkstra").

- Option "--coarse-mask" takes an optional (linear) reduction factor.
  The default remains at 8.

- New option "--smooth-difference" to blur difference images prior to
  seam-line optimization.

- Long option "--levels" to control the number of levels; duplicates
  functionality of short option "-l".


** Removed Commandline Options

- After having been deprecated for a long time, Enfuse's option
  "--debug", which saved the masks used in fusing, was removed.
  Option "--save-masks" now provides a superset of the previous
  functionality.

- After having been deprecated for a long time, Enblend's and Enfuse's
  option "-z", which compressed TIFF-output files with the LZW
  algorithm, was removed.  Option "--compression" now provides a
  superset of the previous functionality and "--compression=LZW" is a
  substitute for "-z".


** Developer Stuff

- VPATH builds work.  This makes it easy to compile for differently
  configured versions, like for example with and without image cache.

- The target "make distcheck" works again.

- Introduce additional Make variables to control the Make process
  after the project was configured.  See "README" file.

- Debugging of dynamic memory allocation has been eased by the
  integration of the DMalloc package; "configure --with-dmalloc"

- Use only m4 files that clearly have a GPL license.  This fixes
  SourceForge feature request ID 2152850.

- Remove all files that are meant to be generated auto Autoconf.  This
  fixes SourceForge bug ID 2036031.

- Install m4 file to detect the M$ compiler.  This fixes SourceForge
  bug ID 2036034.

- Make "configure" report that extra features will get compiled and if
  they cannot tell the developer why not.

- Pull version of program and documentation into file "VERSION".  Both
  program and documentation automatically use this information on
  every build.

- The MSVC project files were removed.  They can be regenerated by the
  (still experimental) CMake environment.

- README hosts build instructions for GNU Autoconf/Automake based
  systems, for MacOSX, and for Win.


** What is known not to work?

- Documentation generation is not as reliable and smooth as it ought
  to be.  The culprit is Automake; see PR/486.



* Version 3.2

Released on September 8, 2008.

** Improvements

- Official release of Enfuse for automatic multi-level exposure
  blending and focus stack creation.

- Support for PNG and OpenEXR input files.

- Support for writing JPEG output files (8 bit only).


** Bug Fixes

- Bugfix to correctly interpret the alpha channel of float (HDR)
  images.


** New Commandline Options

- New --compression option for selecting the compression type of the
  output image.


** Developer Stuff

- This release includes a Windows binary that does not require a
  SSE2-capable processor.

- There will not be a 3.1 release in order to avoid confusion with
  numerous cvs builds that self-identify as version 3.1.



* Version 3.0

Released on January 27, 2007.

** Improvements

- New, faster image processing algorithms for computing Gaussian and
  Laplacian pyramids.


** New Commandline Options

- Optional optimization of seam line placement to try to avoid
  mismatches and parallax errors in the image overlap region.

- Masks can now be saved and loaded from files.  This makes it
  possible to manually edit the location of the seam before
  multiresolution spline blending is applied.

- Checkpointing of partial results is now optional.  This improves
  speed.

- Optional blending using the CIECAM02 color appearance model.  Your
  TIFF files should have embedded ICC profiles in order to use this
  option.  This replaces the CIE L*a*b* color blending in Enblend 2.X
  that never worked properly.

- Optional use of the graphics processor to speed up certain
  computations.  This feature is experimental and may not work on all
  systems.


** Developer Stuff

- Like other X.0 releases, please consider this a beta.



* Version 2.5

Released on December 11, 2005.

** Bug Fixes

- Fixed a bug where Enblend would crash when the -w parameter was
  used.

- Fixed a bug where Enblend would sometimes say "mask transition line
  bounding box undefined."



* Version 2.4

Released on December 3, 2005.

** Improvements

- Enblend will now create output files with embedded ICC profiles.
  The first ICC profile found amongst the input images will be copied
  to the output image.  Enblend does not use ICC profiles to do color
  calculations.

- Incorporated a patch from Fulvio Senore to make the mask generation
  faster.  Fulvio wrote a more efficient data structure for use in the
  nearest feature transform.


** New Commandline Options

- Added support for working with cropped and shifted input images.
  These types of files are created by Nona's "Multiple TIFF" stitching
  option.  A cropped and shifted TIFF saves space and time because it
  is just large enough for a single input image, instead of being the
  size of the entire output panorama with lots of empty space all
  around.  Nona embeds an (x, y) offset coordinate in the file so that
  Enblend can tell where this file belongs in the final panorama.

  By default, if you give Enblend cropped and shifted TIFFs, the
  output will also be a cropped and shifted TIFF.  Sometimes you may
  want to include the extra blank space anyway, for example if you are
  creating a 360-degree panorama and the image size must be exactly a
  2:1 ratio.  In this case, use the new -f parameter to manually set
  the size of the output image:

  -f WIDTHxHEIGHT

  Thanks to Pablo d'Angelo for providing this patch.



* Version 2.3

Released on April 17, 2005.

** Bug Fixes

- Fixed a bug in temporary file handling in the Windows version of
  enblend.  This should solve the "unable to open temporary file"
  error.

- Reduced the maximum number of levels you can specify with the -l
  parameter from 30 to 29.  While both of these are impractically
  large, at least 29 does not lead to arithmetic overflow and a
  subsequent crash.

- Fixed a bug in temporary file handling in the Windows version of
  enblend.  This should solve the "unable to open temporary file"
  error.



* Version 2.2

Released on February 5, 2004.

** Improvements

- The Windows binary of Enblend is now build with a version of libtiff
  that includes support for all of the TIFF compression standards,
  such as Deflate, LZW, JPEG, and Packbits.  Nona/Hugin produces TIFF
  files with the Deflate option.

- Replaced some system calls that are specific to Windows 2000 and XP
  with more generic functions.  This should get the Windows binary of
  Enblend to run on pre-Win2K machines.


** Bug Fixes

- This release fixes issues with the Windows version of Enblend.  If
  you are using Enblend on UN*X you do not need to upgrade.



* Version 2.1

Released on November 15, 2004.

** Improvements

- Compression is no longer the default option in the Windows
  executable.


** Bug Fixes

- Turned off TIFF library warning messages that required user
  interaction on Windows.

- Fixed a bug in Vigra that caused primary color spots to appear in
  overexposed areas of 16-bit images.

- Fixed a problem with Enblend crashing on large panoramas.  Modified
  tiff import to use a scanline-based interface instead of a strip-
  based interface.  PTStitcher generates TIFFs with the rows/strip tag
  set to an unreasonable value.


** Developer Stuff

- Ported the source to compile natively on Win32 using MSVC.



* Version 2.0

Released on October 17, 2004.

** Improvements

- Support for signed and unsigned 16-bit, 32-bit, single- and double-
  precision floating point pixel types.

- Sophisticated memory/disk balancing.  You can tell Enblend how much
  memory it is allowed to use, and it will swap to disk after that.

- Support for huge panoramas.  I have tested that Enblend can blend a
  1.2 gigapixel, 16-bit per channel color image.  You should be able
  to go right up to the 4 gigabyte limit of the TIFF format.


** Bug Fixes

- Fixed the banding artifacts that often appeared in skies.


** New Commandline Options

- Optional blending in CIE L*a*b* color space.

- Option to use LZW compression for the output image, if your libtiff
  supports it.  This option is selected by default in the prebuilt
  Windows executable.

- The -s option for sequential blending is now the default.  Enblend
  cannot accurately determine how many blending levels to use when
  there are multiple disjoint overlap regions in one blending
  iteration.  It is better to manually tell Enblend the order in which
  the images should be blended. If you still want Enblend to assemble
  non-overlapping images first, use the -a flag.

- The -l option now tells Enblend the exact number of blending levels
  that you want to use.  The geometry of your images may force Enblend
  to use a smaller number of levels.  In this case a message will be
  printed.

- Gimp (ver. < 2) and Cinepaint exhibit unusual behaviors when loading
  images with unassociated alpha channels.  Use the -g flag to work
  around this.  With this flag Enblend will create the output image
  with the associated alpha tag set, even though the image is really
  unassociated alpha.


** Developer Stuff

- Ported Enblend to the VIGRA Computer Vision Library.




* Version 1.3

Released May 18, 2004.

** Bug Fixes

- Added a configure test for the endian-ness of the machine.  I
  changed the way enblend reads and writes 8-bit color fields in
  32-bit pixel words to reflect the endian-ness of the machine.  This
  should get enblend working on powerpc machines.

This release adds no new features.



* Version 1.2

Released April 26, 2004.

** Bug Fixes

- Fixed a bug where 8-bit TIFFs would not be identified properly on
  big-endian machines.

- A second (better) fix for the boundary condition problem that lead
  to horizontal or vertical seams to appear in the output.



* Version 1.1

Released April 3, 2004.

** Bug Fixes

- Fixed a bug in reading from temporary files that appeared on
  machines with different versions of GCC.

- Fixed a boundary condition problem that lead to horizontal or
  vertical seams to appear in the output.

- Fixed a bug where segments of an input image would appear on the far
  side of a blending zone.  This would cause strange wedge-shaped
  artifacts in some output images.



* Version 1.0

Released March 27, 2004.

** New Commandline Options

- Added options to limit the number of blending levels used.  This can
  reduce memory usage and improve speed, at a loss of quality.

- Added an option to blend around the -180/+180 degree boundary.
  There is still an open issue as to how to handle the zenith and
  nadir.

- Added an option to blend the input images sequentially in the order
  given on the command line.  Sometimes the assembler can make poor
  choices and seams will still be visible in the output.

** Developer Stuff

- Replaced erosive thinning algorithm for mask creation with a much
  faster nearest feature transform.

- Reduced memory requirements.  Enblend now swaps most of its data to
  disk as temporary files.  Enblend also calculates the region of
  pixels that are involved in each blending step and only does math on
  those pixels, improving speed and memory usage.



* Version 0.9

Released on March 4, 2004.




Local Variables:
mode: outline
End:
