ALE 0.9.0.3 To-do list

  David Hilvert

   Copyright (c) 2006, 2007 David Hilvert

   This article is free documentation; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by the
   Free Software Foundation; either version 3 of the License, or (at your
   option) any later version.

   This article is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
   for more details.

   You should have received a copy of the GNU General Public License along
   with this article; if not, write to the Free Software Foundation, Inc., 51
   Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

   Abstract

   This article contains a tentative list of future versions and features.

     ----------------------------------------------------------------------

   1. 0.9.0

                1.1. Argument scope

                1.2. Multiple-pass registration

                1.3. 3D scenes and depth recovery

                1.4. PSF windowing and infinite-support PSFs for Irani-Peleg
                rendering

                1.5. Variable lighting

                1.6. Interchange formats

                1.7. Raw file handling

                1.8. Abstract and partial transformations

                1.9. File scoping

                1.10. Irani-Peleg for 3D models

                1.11. Focus bracketing for depth-of-field expansion

                1.12. Output image characteristics

                1.13. Output devices

                1.14. Weight and certainty upper bounds

                1.15. Time locality

   2. 1.0.0 (Stable)

                2.1. Performance

                2.2. Synchronized frame set syntax

                2.3. Internationalization

                2.4. Technical Manual Updates

   3. Unsorted

                3.1. Documentation

                3.2. Integer-value routines

                3.3. Library

                3.4. Language Bindings

                3.5. Packaging

1.  0.9.0

  1.1.  Argument scope

     o Fix bugs in argument scope handling.

  1.2.  Multiple-pass registration

     o Revise alignment algorithm to allow multiple passes for less
       sensitivity to noise and better estimation of tonal certainty.

  1.3.  3D scenes and depth recovery

     o Revise 3D scene reconstruction algorithm to perform acceptably on a
       wider variety of scenes.

  1.4.  PSF windowing and infinite-support PSFs for Irani-Peleg rendering

     o Add syntax for PSF windowing and new PSF types with infinite support,
       including the gaussian kernel, suggested by HJ Hornbeck.

  1.5.  Variable lighting

     o Add a facility for handling variation in lighting between input
       frames.

  1.6.  Interchange formats

     o Add support for a commonly-used interchange format, such as autopano
       pto, suggested by Peter Miller.

  1.7.  Raw file handling

     o Use Dave Coffin's dcraw program to extract information from raw files,
       including pixel data, as well as black level and other meta-data, as
       suggested by Gregory Maxwell.

  1.8.  Abstract and partial transformations

     o Add a generic 2D transformation class, supporting partial
       transformations.
          o 'partial transformation', as used here, means that it is expected
            that some points will fail to map.
     o Add a partial 2D transformation class with constructor taking as
       arguments a pair of 3D projective transformations and a 3D model.

  1.9.  File scoping

     o Add new file-scoped options
          o Irani-Peleg
          o black level
          o alignment type
          o focus details

  1.10.  Irani-Peleg for 3D models

     o Modify existing Irani-Peleg code to use generic (partial) 2D
       transformations.
          o in combination with the above, this should allow the algorithm to
            operate on 3D models.

  1.11.  Focus bracketing for depth-of-field expansion

     o Add facilities for handling depth-of-field and focus bracketing in
       input image sets, as suggested by Viktors Rotanovs and Gregory
       Maxwell. This change will likely involve:
          o using the 3D model for depth data, as suggested by Gregory
            Maxwell
          o using user-provided (file-scoped) focus details to determine
            depth of field
          o using variable PSF in the Irani-Peleg algorithm, as suggested by
            Gregory Maxwell
          o developing an approach to handle the incremental
            (non-Irani-Peleg) case.

  1.12.  Output image characteristics

     o Allow specification of output image characteristics, including
       exposure (e.g., gamma) and channel offsets within a pixel.

  1.13.  Output devices

     o Add support for specifying output devices, such as LCD monitors, to
       allow shorthand customization of exposure (e.g., gamma) and other
       characteristics, such as channel offset in the case of LCD screens for
       sub-pixel anti-aliasing.

  1.14.  Weight and certainty upper bounds

     o Add support for specifying weight and certainty upper bounds for
       rendering, either as an absolute constraint or relative to average
       weights, so that the overall contributions to an output pixel (or
       channel) are constrained by weight.

  1.15.  Time locality

     o In combination with weight and certainty upper bounds, time locality
       could be used to determine which frames are used to generate an output
       pixel. As a special case of this, video stream processing could favor
       frames having the smallest time difference from the target frame.

2.  1.0.0 (Stable)

  2.1.  Performance

     o Refine rendering and alignment code for better performance.

  2.2.  Synchronized frame set syntax

     o Add syntax to identify synchronized frame sets.

  2.3.  Internationalization

     o Enhance the command-line interface in preparation for i18n. (?)
          o e.g., syntax for identifying synchronized frame sets
     o Internationalize the command-line interface and help text to
       accommodate translations.

  2.4.  Technical Manual Updates

     o Update the Technical Manual for information regarding 3D operation.

3.  Unsorted

  3.1.  Documentation

     o Generate correctly indented book-level tables of contents when
       rendering the complete set of manuals.
     o Add a tutorial, and credit Metin Toyran for suggesting a step-by-step
       guide.
     o Remedy meaningless page numbers for book title pages in the set ToC.
     o Complete migration of existing documentation from the localhost
       sub-directory, removing superfluous license terms in the footers.
     o Centralize licensing and authorship information (e.g., there should be
       only one COPYING file and only one AUTHORS file).
     o Include license and copyright terms for the doc tree Makefile as
       copyright notices in the AUTHORS and/or COPYING files (or equivalent).
     o Complete the documentation.
     o Revise the user manual for new features and syntax.
          o Document new scoping operators {}, [], and [<>].
          o Document other changes in UI, including regularization of syntax.
               + in particular, commas can no longer appear in
                 single-argument options when using assignment-delimited
                 syntax; use space-delimited syntax instead. This behavior is
                 inconsistent with 0.8.4.

  3.2.  Integer-value routines

     o Add facilities for manipulating images storing color as integer-valued
       data, possibly as library routines.

  3.3.  Library

     o Move image-processing routines into a library that can be used by
       other programs.

  3.4.  Language Bindings

     o Add bindings for other programming languages.

  3.5.  Packaging

    3.5.1.  Complete Package

     o Investigate options for distributing a 'complete' package including
       full revision history, pre-built documentation (if the ordinary
       distribution does not include this), and, possibly, example image
       sets. Direct download, bittorrent and CD are the most prominent
       candidates for distribution.
          o In the case of CD distribution, information should probably be
            added to the manuals regarding how to update CD-provided program
            source.

    3.5.2.  Windows Package

     o Investigate options for creating and distributing a combined source
       and binary Windows package containing sufficient software to ensure
       support for common image types (e.g., by statically linking with
       libraries for opening JPEG and PNG files). BitTorrent and CD are the
       most obvious candidates for distribution.
          o This package could build on the package described above, as a
            'for Windows' variant or some such.
          o This package could make use of an application such as
            InstallJammer or Nullsoft Scriptable Install System for
            installation.
