================================================================================
- Medical Data Segmentation Toolkit (MDSTk)
- Copyright (c) 2003-2007 by Michal Spanel, FIT, Brno University of Technology
-
- Author: Michal Spanel (spanel@fit.vutbr.cz)
- Date:   2003/12/24
-
- $Id:$
-
================================================================================

2007/06/25:
  [    ] - Locking of data handled by CRefData and CSHMData storages.
  [    ] - Adapters to view 1D data stored in CRefData, CStaticData, etc.
           as 2D (matrix) or 3D (volume).
  [    ] - Better template-based design of data entity serializer.

2007/02/14:
  [done] - Modify the -raw command line option so that the output image/volume
           data will not contain any specific formating and headers.

2006/12/01:
  [do..] - Enhance functionality of iterators by adding iterator traits and base
           iterator class without any pointer to container. Create a wrapper
           for STL iterators.

2006/08/11:
  [done] - Re-organize the ImageIO library to allow loading of JPEG and PNG
           images into different types of images (e.g. RGB and grayscale).
           At present, there are functions for loading such images only as
           medical slices.

2006/07/12:
  [    ] - Instrument to inform other processes about current state and progress
           of some operation (e.g. volume filtering). Virtual methods, function
           objects or functors in general should be used.
  [    ] - Simplify source code of the MDSTk modules using macros and etc.
  [done] - Modify the approach of data entities to support objects inheritance.
  [done] - Functions providing the FFT (Fast Fourier Transform) and conversion
           between grayscale, float and complex images.

2006/04/12:
  [    ] - Add support for direct allocation of objects in a shared memory.
           Efficient shared memory pool and manager must be implemented too.
  [done] - Support for images and volumes storing data in the shared memory.

2006/02/26:
  [    ] - Expression templates for effective implementation of matrix and image
           operations and solving the problem of temporary variables.
  [    ] - Fast operations with static vectors and matrixes by the help of meta
           programming techniques such as loop unrolling.

2006/01/25:
  [    ] - Logging channel implemented in a shared memory and module which will
           show all logs and messages.

2005/12/13:
  [done] - Create templates CVectorBase, CMatrixBase, CImageBase and etc. which
           should be used for coding algorithms templates for processing vector,
           matrix and image data (maybe 1D, 2D and 3D data) in some common way.
  [done] - Support for computation in the logarithmic space. E.g. operators
           for adding numbers represented by its logarithm.

2005/11/08:
  [done] - Modify mds::CVector template to support sparse vectors while the
           indexing function should be modified to allow stepping over vector
           elements.
  [do..] - Remade the mds::CMatrix template in the way of the mds::CImage class
           and add methods for creating references to rows and columns
           of the matrix.

2005/10/04:
  [    ] - Image region of interest ROI iterators which will be useful for
           implementation of a number of morphological operations working
           on image ROI.

2005/07/20:
  [xxxx] - Visualization of original and segmented volume data simultaneously
           using OpenGL blending support.
           Note: Module for merging two volumes has been added.
  [done] - Extend the RLE compression algorithm of data entities to 16-bits.
  [    ] - Create a new module for merging of segmented regions found in image
           or volume data by giving indexes of those regions.
  [    ] - Add mode-based and iterative histogram segmentation and Usu's
           segmentation algorithms to the MDSTk library.
  [    ] - Speedup the RG segmention algorithm, e.g. merging of two regions
           would be faster if the smaller region is selected first, then its
           index changed.
  [    ] - New template representing a LUT (LookUp Table) which would be suitable
           for pixel conversions, pseudo-coloring, histogram equalization
           and etc.
  [done] - RGB volume and image data.
  [done] - Modify the logging interface. Define abstract class CLogChannel
           (output logging channel) and its child classes like CFileLogChannel.
           Channels could be registered in the class CLog providing the logging
           functionality.

2005/03/05:
  [    ] - Channel implementation via named pipe must be corrected. Current
           version cannot be used to concatenate output of several modules
           at the same time.

2005/02/14:
  [    ] - Implementation of CKernel1D, CKernel2D and CKernel3D classes as
           a template CKernel<> having the number of dimensions as a parameter.
           Definition of CKernel<> template specializations each for the different
           number of dimensions. CPointXX and CLineXX could be modified
           in the similar way.
  [done] - Definition of a CFilter<> template which must be specialized for
           image and volume filtering.
  [    ] - Loading of PNG and JPEG images using a class derived from CSlice
           is useless. Better way would be to define functions that will allow
           loading images directly to the CUImage or CFImage objects.
  [d...] - Implementation of DFT (Discrete Fourier Transform), SVD (Singular
           Value Decomposition) and PCA (Principal Component Analysis) routines
           should be helpfull.

2004/06/18:
  [done] - Fix the multiple slices processing bug when stdin is used. Some kind
           of buffering should be used to recognize the EOF character earlier.

2004/05/13:
  [xxxx] - Allocation using STL functions in <allocate.h> should be faster
           then standard operators new and delete.
           Note: Fast small object allocator has been added.
  [done] - Template for a numerical type traits containing static functions like
           min(), max(), str() and so on
  [do..] - Generic template encapsulating smart pointer to an instance
           of a class. Template must provide operators =, *, &, ->, bool(),
           T*(), T&(), ... Also, constructors to create a new instance of
           encapsulated type have to be declared. Good idea should be
           to implement dynamic downcast and child type identification.

2004/04/28:
  [done] - Linux timer implementation using threads is weak and unsatisfactory.
           The timer thread has to wait for a periodic event.
  [done] - Thread function specification using macros should be changed.
           The better way is to define an user function which is called
           repeatedly until the thread terminates.
  [xxxx] - OS specific libSystem implementation could be separated to different
           .cpp files. Abstract classes, e.g. mds::CMutex, must be defined
           together with object factories.
           Note: Deprecated

2003/12/24:
  [don.] - Channels via shared memory and TCP/IP channels.
  [done] - I/O channels over named pipes.
  [done] - Command line specification of several input and/or output channels.
  [done] - Volume representation and view.
  [done] - RLE compression used to pack data entities.

================================================================================

