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

Architecture

  1. Package diagram
  2. Array Package
  3. Persistency
  4. Features
  5. Training
  6. 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_17

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_18

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_19

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_20

Features

Features are special in that they are often used, there are a lot of them, and they take up a whole lot of space. Therefore, special classes and storage facilities have been designed to be able to use them in an efficient way.

Class diagram feature store and virtual tables:

inline_dotgraph_21

Training

Class diagram training:

inline_dotgraph_22

Class diagrams

Window and View hierarchy

inline_dotgraph_23

Generated on Fri Mar 4 15:40:18 2011 for ImpalaDoc by  doxygen 1.5.1