The birds lake

Introduction : filters

Filter

Here a filter means a transformation of data from a format into another(that can be the same). We only speak from data such as file or serialised finished memory block.

An other project, GStreamer, handles with stream/flow filters in order for example in the multimedia context to cut the decompression of the video stream part and the decompression of the audio part. See [ GStreamer Motivation ] for more informations about GStreamer.

Importation / Exportation / Isomorph filters

To explain some concepts we are using the example of GIMP. GIMP has a native format XCF. This format is not a standart image format in the sense that many image application/libraries handle this format. But this format exists because GIMP can save into it all its specificies like layers, masks, paths, ... When Gimp exports an image, there is often a loss of informations. E.g. during an exportation into GIF, layers are merged, the alpha channel is deleted, and there is a 24bits TrueColor conversion to indexed 8 bit colors.

The Microsoft Office suite, during an exportation in HTML used to add some XML (non HTML) node to minimise that kind of loss of informations so they could reimport a HTML document with minimum variance from the original document.

The big importation problem that often appears is that there are no bijection with the data structures of the application. E.g. while importing a wiki database (like PHP Nuke) into a word processor, the articles will be kept, but what about the users management part ?

Isomorph filter is a particular case of exportation filter (or importation) in which the destination format is the same as the application format.

Before After
Application of a Sobel edge detection filter, example of isomorphism filter From an image (XCF), we have an image (XCF also).

Example of filters

Application or applications family Importation filter Exportation filter Isomorph filter
GIMP (Image) GIF to XCF XCF to GIF, (decrease number of colors, ...) XCF to XCF : Gaussian blur
GIMP (Image) JPEG to XCF XCF to JPEG, (informations destruction, merging layers, deleting alpha-channel, ...) XCF to XCF : Dithering
GIMP (Image) (nothing) to XCF, creating a logo with a script-fu with user parameters. XCF to PNG, (losing layers, masks & paths) XCF to XCF : Convolution matrix
Dia (diagrams) . DIA (UML) to a folder containing skeleton of app. in an object-oriented langage DIA (graph) to DIA : solving a flow problem using Ford-Bellman
Dia (diagrams) . DIA to SVG (scalable vector graphics), loosing type of composite objects, loosing constraints .
Abiword (wordprocessor) Doc (Microsoft word) to ABW ABW to HTML (web), generating not only html, but providing automatically all the graphics needed ABW to ABW, TRANSLAting from english to french without loosing the layout

Functionnalities

Objectives

Splitting the application, on one hand long processing (filters), on the other hand visualisation (components).

Use case diagram