Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

Architecture

  1. Package diagram
  2. Array Package
  3. Persistency
  4. Training
  5. Class diagrams

Package diagram

The diagram below provides a design overview of the packages within Impala. You may check the design by inspecting the automatically generated dependencies on the dirs pages of the source section. The source section also contains an automatically generated list of namespaces.

inline_dotgraph_3

Array Package

The Core::Array package resides at the heart of Impala. Basically, it is a light-weigth incarnation of the C++ library for image and video processing from the Horus project.

Practially all numerical processing is done using functions in the Impala::Core::Array namespace. In principle, all functions should instantiate "Pat*" function(s) from Impala::Core::Array::Pattern with elements of Impala::Core::Array::Trait to arrive at the desired functionality with maximal code re-use. As a additional benefit, the operation may then be executed in a data parallel fashion on a cluster of computers without further effort by the user.

inline_dotgraph_4

Persistency

The Impala::Persitency layer is based on the notion of Locators and Repositories. For each class of objects that can be made persistent there is a corresponding locator. A Locator contains just enough information to designate the object of interest. You may think of a locator as a URI. The repository for a specific class performs the basic CRUD (create, read, update, and delete) operations on data objects. E.g. one may retrieve an object of class Aclass by calling the Get operation of the AclassRepository passing an AclassLocator as argument to designate the desired instance. Depending on the protocol specified in the locator, the AclassRepository will pass the request to either the AclassRepositoryInFile or the AclassRepositoryInMonet and thus retrieve the instance from the file system or the Monet DBMS.

Class diagram repository (using segmentation as example):

inline_dotgraph_5

In general, a repository will treat a data object as a single entity in performing its operations. For example, a get operation will read the whole object. However, some objects do not fit that profile (at least not in the current implementation) and therefore employ a slightly different mechanism. An ImageArchive is such an object. One still retrieves the object by providing a locator to the repository, but the ImageArhive specialization maintains a reference to its origin to be able to get individual images later on.

Class diagram image archive repository:

inline_dotgraph_6

Training

Class diagram training:

inline_dotgraph_7

Class diagrams

Window and View hierarchy

inline_dotgraph_8

Generated on Tue Mar 30 13:39:01 2010 for ImpalaDoc by  doxygen 1.5.1