			----------------------------
			MegaWave2 : Revision History
			----------------------------


Version 3.01	20/06/2007
============

First public distribution of 3.x release.

Version 3.00	14/05/2007
============

MegaWave2 version 3.00 comes with a new preprocessor of modules sources,
called the 'light' preprocessor, and with many new modules or new capabilities.

- System library update. 
  + mwplight, the 'light' preprocessor, has been added.
    By default, modules are now compiled with the 'light' preprocessor.
    This preprocessor avoids parsing errors in system's include files but
    it imposes some limitation in module's sources (see guide #1).
    The 'traditional' preprocessor is still available for Linux systems
    with correct or patched system's include files (basically, the same
    than those working with MegaWave2 version 2.31).
  + Internal type Wpack2d and external type A_WPACK2D have been
    added to manage 2D-wavelet packets (see guide #2).
  + Search path convention has changed for external types (see guide #2).
  + Revision of the entire library to conform to gcc 4.0.

- Documentation update.
  + All three guides have been updated.

- Module update.
  + Added module's group "wave/packets" for 2D-wavelet packets (see guide #3) :
      * wp2dchangepack : transform a wp decomposition into another one
      * wp2dchangetree : modify a wp quad-tree
      * wp2dchecktree : check if an image is a wp decomposition quad-tree
      * wp2ddecomp : compute the wp transform of an image
      * wp2deigenval : eigenvalues in wp basis and convolution approximation
      * wp2dfreqorder : wp index / frequency band correspondence
      * wp2dmktree : create a wp quad-tree
      * wp2doperate : image change using wp operation
      * wp2drecomp : recomposition of a wp decomposition
      * wp2dview : display the wp transform of a Fimage
      * wpsconvolve : signal convolution with donwn- (or up-) sampling
      * Wp2dcheck : demo 
   + New modules for filtering
      * tvdeblur : image deblurring by total variation minimization 
      * tvdenoise2 : image denoising by total variation minimization using
          Chambolle's dual algorithm, with real-time visualization 
      * nlmeans : image denoising with Buades et al. Non-Local means 
      * flipschitz : lipschitz sup- or inf-enveloppe of an image 
      * prolatef : create a prolate kernel in Fourier domain 
   + New module for visualization
      * flip : interactive image comparison using flipping 
   + New modules for Fourier domain
      * fft1dshrink, fft2dshrink : signal/image shrinking to speed up FFT 
      * fkeepphase : combine DFT phase/modulus of two images 
      * fshift : periodic image translation 
   + New capabilities
      * fft1d,fft2d : any dimensions (not only 2^k) now available 
      * fft2dpol,fft2dview,fft2drad,fftconvol,fftgrad,fftrot,frandphase, wiener 
        have been adapted in the same way (any image dimensions available)
      * fftzoom : any zoom factor and image dimension available
      * prolate : added energy output
      * fsample : added shift (-d) and normalization (-n) options
      * sreadasc : added scale/shift/gain specifications (-s/-t/-g options)
      * sinfo : added standart deviation
      * saxpb : added -M option (set total mass) and some field preserving
      * faxpb : added -N option (set l^2 norm)
      * fvar : added -s (standart deviation) and -e (empirical estimate) options
      * fnoise, cnoise, cmnoise : added -q option (quantization noise) 
        and processus id term in the random seed initialization
      * frandphase : added processus id term in the random seed initialization
      * fhisto : added -w option (weight image)
      * tvdenoise : added -p option (allow more general gradient schemes)
      * tvdenoise,wiener: -w option replaced by -W option (see doc)
      * fthre : now can discard extremal values (-p -q -d -a -l options)
      * fview : now can discard extremal values (-d -m -M options),removed s key
      * fft2dview : improved display (-d instead of -s option)
   + Bugs fixed
      * one_levelset, segct, msegct (fixed static/non static definitions)
      * fiscalq (bug with optional argument, temporary solution)
      * fscalq (bug with optional argument + fmse() call fixed)
      * signal/sconst (include string.h)
      * align becomes falign (avoid collision with align Linux command)
      * align_mdl becomes falign_mdl (coherence with align -> falign)
      * wiener (fixed missing deallocations)
      * cdisc (bug with cy variable fixed)
      * fsmooth (convolution bug)
      * tvdenoise (consistency and step reduction loop bugs)
      * frandphase (bug with non-square images)

   + Miscellaneous
      * image_motion/hs_flow (unused part removed)
      * segtxt,mschannels,flst_bilinear,llmap,tjpoint,tjmap,mscarea,ll_distance,
        finfo,fftconvol,fconvol,rotaffin,forder,fsmooth,infsup,fvq,cvsorgcode,
        cvsencode,cvsfrecode,fencode,entropy (mwcommand syntax normalization)
      * faxpb, frandphase (fvar upgrade)
      * ll_boundaries, ll_edges (fhisto upgrade)
      * heat : C syntax change
      * forder : removed constraint on n
      * fadd (fthre upgrade, removed useless -n option)

Version 2.31	08/10/2004
============

- Minor system revision to offer compatibility with Linux Mandrake 10.0.

Version 2.30	05/05/2004
============

- System library update. 

  + Now, the system uses bibliographical databases where all citations are
    recorded. As this allows cross-references, it is now possible to get all
    modules associated to a given article. 
    See guide #1 "User's Guide" Section "Document a module" to learn more about
    this and to know how to change references in your .tex files.
    Beware: as the code for documentation (.doc file) generated by
    cmw2/cmw2macro commands has changed, you will have to redo
    compilation in your $MY_MEGAWAVE2/src directory in order to get
    documentation macros (such as mwdoc) properly working on private
    modules (anyway, that is always a good idea to redo compilation on private
    modules when the MegaWave2 kernel has changed).

  + It is now possible to generate a html version of the guide #3 "User's Modules 
    and Macros Library" (see system's macro mwmakedoc). In conjunction with 
    bibliographical databases, this allows to read articles associated to a module
    by simply clicking a link (you may also get the html version of the guide #3 from 
    the Megawave homepage).

  + Command 'dc' (an arbitrary precision calculator) has been changed by 'expr' on 
    system's macros to allow installation without the dc/bc package. However, bc or 
    dc may still be needed to run user's macros.

  + System's macros 
    mwecho : new macro for a portable echo with -n and -E options. Replace old
             macro 'mwechon' by 'mwecho -n'.
    mwmakedoc : -h added option to generate html documents (need latex2html).
    mwmodbibtex : add to the bibliography a list of references to modules.
    mwmodsearch : new macro to search for modules and user's macros matching words.
 
  + Conversion from RGB color images to gray scale images has been modified to
    follow the CCIR-601 norm. 

  + Several minor bugs corrected.

- Documentation update.
  + All three guides have been updated.

- Module update.

  + NEW MODULES

    Reminder: you can locate a module with the macro 'mwwhere'

    * align_mdl (MDL segment detection, L.Moisan, A.Almansa)
    * vpoint, vpsegplot, VP_DEMO (Detection of vanishing points, A.Almansa)
    * ws_flow (Weickert and Schnrr optical flow, F.Ranchin)
    * hs_flow (Horn and Schunck optical flow, O.Sanchez)
    * ofdraw (Visualization of optical flow data, L.Moisan)
    * motionseg (Aubert-Deriche-Kornprobst motion segmentation, T.Buades)
    * ccdissoclusion (color disocclusion, S.Masnou)
    * cml_decompose, cml_draw, cml_reconstruct.c (color morpho lines
      modules, J.Froment)
    * cll_remove (remove small level lines in a color image, J.Froment)
    * stkwave1,istkwave1,ridgelet,iridgelet (ridgelets, C.Jonchery, A.Robin)
    * ridgthres (denoising with ridgelets, C.Jonchery, A.Robin)
    * ridgpolrec,ridgrecpol (Polar/cartesian ridgelet transforms, G.Charpiat, V.Feuvrier)
    * fftconvol (convolution in Fourier Domain, L.Moisan)
    * ll_boundaries2 (meaningful boundaries, L.Moisan, F.Cao)

 + CHANGES

    * revision of drawocclusion and disocclusion (S.Masnou)
    * minor changes in fftzoom (Shannon condition)
    * minor bug correction in km_codecurve_ai
    * minor bug correction in mam
    * minor bug correction in fhisto
    * minor bug correction in flstb_dual


Version 2.20	15/04/2003
============

- System library update. 

  + The following file (external) types have been added 
        BMP      Microsoft Windows char image format (BitMaP) [1x8-bits plane]
        BMPC     Microsoft Windows color image format (BitMaP) [3x8-bits planes]
        JFIF     JPEG/JFIF char image format from the Independent JPEG Group, 
                 monochrome version [1x8-bits plane] (needs libjpeg).
        JFIFC    JPEG/JFIFC color image format from the Independent JPEG Group
                 [3x8-bits planes] (needs libjpeg).
        PPM      Portable pixmap color image format, rawbits version [3x8-bits planes]
        WAVE_PCM Microsoft's RIFF WAVE sound file format with PCM encoding
    Now, MegaWave2 Ascii files generated under Dos are directly readable.

  + As the new WAVE_PCM file format shows it, support for sound and speech processing
    has been added. This leads to a new field 'bpsample' in the memory (internal) type
    Fsignal, where the number of bit per sample is recorded. In order to be able to play
    a sound after it has been processed by a module, be sure to keep the header unchanged
    (you may use the new function  mw_copy_fsignal_header()).

  + System's macros 
    cmw2 : a warning is issued when a new module has the same name than an
           existing command.
    cmw2_all : option -v added, to get trace of compilations.
    cmw2macro : now link to macros are relative, so you don't need to recompile
                macros when changing name of MegaWave directory.
    mwdoc : in-line documentation of file formats added (mwdoc f).

  + Data files
    Coiflet and Symlet wavelet bases added.
    See also MISCELLANEOUS section below.
 
- Wdevice library update.
  + Driver for wheel button added.

- Documentation update.
  + All three guides have been updated.

- Module update.

  + NEW MODULES

    CURVE MATCHING
    * curve matching modules (km_* in in src/curve/matching/ directory)
      and the demo KM_DEMO (J.-L.Lisani, P.Muse, F.Sur)

    CURVE SMOOTHING
    * gcsf, iter_gcsf : generalized curve shortening flow (F.Cao, L.Moisan)

    SNAKES
    * lsnakes,lsnakes_demo : Level Set implementation of the Snakes Model 
                             (F.Dibos, J.Froment, K.Lakhiari)
    * mac_snakes : Maximizing Average Contrast Snakes Model (L.Moisan)

    RESTORATION (SIGNAL & IMAGE)
    * stvrestore,Swtvdenoise : Wavelet denoising using TV minimization (J.Froment)
    * w1threshold : thresholding of a 1D wavelet transform (J.Froment)
    * cfsharpen : color version of fsharpen (J.Froment)

    CONTRAST CHANGES
    * fcontrast : apply a contrast change to a Fimage (L.Moisan)
    * frank : compute generalized rank image (histogram equalization) (L.Moisan)
    * flgamma : (x,x^g) Flist, useful for gamma correction (L.Moisan)
    * bicontrast : find optimal contrast change between two images (L.Moisan)

    DETECTION
    * harris : Harris corner detector (F.Cao)

    FOR DISPLAY
    * cmcollect,ccmcollect: collect all images of a Cmovie/Ccmovie into 
      a single image (L.Moisan)

    MISCELLANEOUS
    * flconcat : concatenation of two Flists  (L.Moisan)
    * flscale : scaling of a Flists (L.Moisan)
    * sinfo : informations about a Fsignal (L.Moisan)
    * sprintasc : displays (part of) a Fsignal (L.Moisan)
    * saxpb : Apply gain/offset correction to a Fsignal (L.Moisan)

  + NEW CAPABILITIES

    * sop : -D and -N options added
    * splot : mouse wheel scrolling added
    * fkview : new 'k' and 'n' interactive keys 
    * several signal modules: preserve header info for sound processing
    * flprintasc : added -n and -v options
    * faxpb : added -M option
    * kplot : added -d option
    * ll_boundaries : added weak maximality (-w option)

  + BUGS FIXED

    * forder, fsharpen (fixed minor bugs)
    * dsplit_convex (fixed cusp case)
    * funzoom (fixed image border bug)
    * fzoom (fixed bug in usage description)
    * cview,fview,ccview (fixed lag)
    * cview,fview (fixed 'c' bug)


  + MISCELLANEOUS

    * some src/curve modules have been put in subdirectories (io,smooth)
    * the data file $MEGAWAVE2/data/shape_recognition/formes.gif has been added
    * ccimage2bmp module has been removed (useless with BMPC file type)



Version 2.10	11/02/2002
============


- System library update. 

  + The following memory (internal) types have been added 
	Rawdata : allows to read and write any file format.
  	Dcurve/Dcurves : same as Fcurve/Fcurves but coordinates on double precision.
        Flist/Flists : alternate type for Fcurve/Fcurves, where coordinates
		       are recorded in array (speeds some algoritms).
        Dlist/Dlists : same as Flist/Flists but for coordinates on double precision.
  + Automatic generation of code to convert memory types and file formats,
    see guide #2 "System Library" Section "Conversion between memory types".
  + System options added (see guide #1 "User's Guide" Section "System options"):
    -fsum (function summary), -proto (function prototype), -vers (version number).
  + New system's macros (see guide #1 "User's Guide" Section "System macros"):
	mwrm : safely remove a module or a user's macro.
	mwsysmaclist : list all system's macros.
        mwcmwcheck : check if the MegaWave2 compiler can operate.
  + New optional environmental variable MW_CHECK_HIDDEN, to check at run-time 
    if a module or a macro hides another one.
  + The following system's macros have been renamed :
	make_mw2doc->mwmakedoc, smw2latex->mwdoclatex,  smw2xdvi->mwdocxdvi.
  + Wpanel added (panel display facilities and buttons) : it is a small
    library that allows to handle buttons and bars. It is not documented
    yet, and will probably change quite much in the future. For the time 
    being, it is used only in the module llview.c.
  + Too many bugs fixed to report them !

- Wdevice library update.
 
  + Driver for 16-bits plane added.
  + Keyboard : now handle non-Ascii keys (as control keys). Now WGetKeyboard()
    returns a key code in case of a non-printable character (return type is
    int and no more char). See module llview.c for a demo.

- Documentation update.

  + All three guides have been updated; in particular, morphological structures
    are now documented in the guide #2 "MegaWave2 System Library";
    index has been added in each guide.    
  + Now the three guides are also available in html format
    (see http://www.cmla.ens-cachan.fr/Cmla/Megawave).

- Module update.

  The module library offers several new possibilities:
  + curve evolution (mean curvature motion and affine scale space);
  + image interpolation : bilinear, bicubic, splines;
  + image reduction : splines, prolate;
  + image filters : sharpen, total variation denoising, wiener;
  + new image/detection group (detection of alignments, edges, boundaries);
  + level lines extraction with bilinear interpolation (flst);
  + new or enhanced visualization tools (llview, fkview, splot).
  For a more complete description, please go to 
	http://www.cmla.ens-cachan.fr/Cmla/Megawave


Version 2.00	04/02/2000
============

- No more registration procedure to get a free license : with versions 2.x you 
  do not have any registration form to send.

- Full source code given : The sources of MegaWave2 kernel (preprocessor and 
  libraries) are given. Therefore, you are now able to modify the kernel, for 
  example to adapt it on a new machine architecture.

- No more pre-compiled kernels : the local MegaWave2 administrator has to compile 
  the kernel for its machine architecture by himself.

- MegaWave2 has been adapted for Linux on i386.

- The modules library has deeply changed : new modules appear, former modules have 
  been fully checked and some of them have been renamed. Group hierarchy and name
  has changed. See guide #3 "User's Modules and Macros Library".

- The doc directory structure has changed. Now put the documentation you write in
  the src subdirectory, without creating subdirectories for groups.
  See guide #1 "User's Guide" Section "Documentation".

- The data directory structure has changed, together with the search path convention.
  A PUBLIC subdirectory has been created where all public data not specifically 
  associated to some modules have to be put. To resolve an input filename, a module
  now searches inside all subdirectories of data.
  See guide #2 "System Library" Section "Search path convention".

- System's macros have been enhanced. For example, access to the documentation has
  been simplified (see macro mwdoc).

- System library update.


Version 1.05	07/05/1997
============

- Add binaries and libraries for Silicon Graphics SGI IRIX 5.x.

- System library update: 
	
	New structures have been added, in order to implement morphological 
		data types and associated algorithms. This is a consequence of some
		current research subjects we develop, based on morphological image
		processing. These structures are not currently documented, and the
		morphological modules using them are not currently furnished. This is
		because they are still in development and subject to important changes.
	PGM (portable graymap file format) standard is now recognized to load/save 
		gray levels images, both in the rawbits version (PGMR) and in the 
		Ascii version (PGMA).
	Another alternative is given to access to the pixel of an image, using a 
		bi-dimensional tab (see the guide #1 and the module demo/fadd4).

- Module update:
	In the "common/float_image" group, modules have been put to perform
		some linear filtering operations, as the classical Canny-Deriche's
		edge detector.
	In the "seg" group, modules to perform texture discrimination and 
		segmentation have been added.

- Revision of the guides #1, #2 and #3 to reflect the changes (except for the
	morphological functions, not documented in the guide #2).


Version 1.04	03/06/1996
============

- Solaris users : we apologize that the libraries for Sparc SunOS 5.xx 
	(Solaris) could not be included with this version (just because we 
	do not have anymore access to such a system). On the other hand, we 
	expect to distribute a Silicon Graphics version by the end of 
	summer 96.

- User's macro :
	They are now managed in the same way than modules. It means that
	the location of the user's macro has changed (to be the same
	than modules, into a group) and that each user's macro has to
	be documented.

- System library update: 
	dynamic (shared) library is now given: this save a lot of space
		disk since the system library is no more duplicated into
		each executable module;
	TIFF format may be recognized to load/save images. This assumes you
		have the TIFF library (libtiff);
	change in the file formats of types "MW2_CURVE" and "MW2_CURVES"
		(internal formats "Curve" and "Curves"): Now the (x,y)
		coordinates are recorded using integers (int) instead of
                short integers (short). There is no compatibility between
                the old and new formats;
	change in some system's macros to reflect the way user's macros
		are now managed.

- Module update:
	add group "morpho" where are put the mathematical morphology
		algorithms derived from PDE's methods. 
	add group "shape_recognition" which allows to recognize an image
		among a database of shapes.
	add 2D-FFT and related modules, including "texturization" by
		phase randomization (group common/float_image).

- Revision of the guides #1, #2 and #3 to reflect the changes.

Version 1.03	25/07/1995
============

- System library update: 
	important changes in the Wdevice library, needed by the future
		XMegaWave2 environment; see the new version of the display
		modules (e.g. cview, cmview, splot, ...) and the new display
		demo module called demo/view_demo;
	add the memory types: Fcurve, Fcurves (Float Curves) and
		Fpolygon, FPolygons (Float Polygons);
	new options for cmw2 and cmw2_all, add dependencies list for modules;

- Module update:
	add various basic modules in the common group;
	add the main modules PDE/mam and seg/one_levelset as well as
		various modules in the new group "regular" (pattern 
		recognition by regularity estimation);
	changes in the display modules (needed by the changes in Wdevice):
		cview, ccview, cmview (new name for cmovie), ccmview
		(new name for ccmovie), splot, readpoly;
	
- Revision of the guides #1, #2 and #3 to reflect the changes.


Version 1.02	17/03/1995
============

- Add binaries for Sun sparc SunOS 5.xx (Solaris):
	now the macro "mwarch" has to be called with the option "-s".
- System library update: 
	add the file type "PS" (PostScript) for images;
	add the memory types "ccmovie" and "cfmovie" for color movies;
- Modules update:
	fix slight bugs in PDE/extgc, PDE/amss and in owave;
        add modules for anisotropic diffusion of color images (in PDE);
- Revision of the guides #1, #2 and #3 to reflect the changes.


Version 1.01	23/01/1995
============

Fix bugs in the "owave" group's modules (doc revision will come later).


Version 1.00	20/12/1994
============

Initial release of MegaWave2. The former sofware MegaWave is renamed
MegaWave1 and will not be anymore maintained.







