Introduction

Millions of people use spreadsheets every day. As well as being one of the most well understood data processing models, it is also one of the most visually expressive. The spreadsheet has several features that have ensured its success; it uses a form familiar to many potential users; large amounts of information are visible on a single screen; the visual response is very fast; information can be formatted on screen; very powerful operations can be performed on large amounts of data; there are many practical applications for the model.

We can contrast the spreadsheet model with the field of image processing. Traditionally image processing has been limited to a few experts with the skill, training and processing power necessary to operate specialised software. The common image processing package uses the data-flow model. While this is an easily understood visual model, it does have several disadvantages; the expressiveness of the model lies in the operational relations, which are of less interest in the long run; the data flow diagram quickly outgrows screen space; the user does not have a convenient view of all images and intermediate images.

These problems can be resolved by adopting the characteristics of the spreadsheet model.

The Spreadsheet of Large Images (SLI) changes the focus of image processing from the restrictive data flow model and makes use of the potential of the spreadsheet model. This new paradigm encapsulates the functional capabilities of the data flow model whilst providing the flexibility, power and expressiveness of the spreadsheet model. The SLI provides a medium that has the image rather than operation as its centre point. The grid structure of the SLI is scalable; positioning of cells within the range of the grid is to the user's discretion.

The SLI conforms with the common spreadsheet interface and functionality, with several extensions. The data set has been extended to include a graphical image value. Image values are displayed within a cell. Double clicking on an image cell causes a window, containing that image, to be opened. The image within this window can be resized. A cell can contain a widget, a graphical interaction object, which is used to modify a cell data value. Image processing formulae are constructed using a familiar grammar and entered on the formula line.

As well as supporting the user involved in traditional image processing operations, the SLI could be extended to support more general applications. The SLI could be used as an image browser. The user could copy cells to another spreadsheet and use all the standard editing commands. The SLI could be used to view and edit animation frames. Tools could be provided for animation operators. The fast visual response and simple operation application could be used to demonstrate effects upon scanned photographic images. The interesting nature of the SLI is demonstrated by the many applications which have been and are continuing to be discovered for it.

Due to the large size of image files, it is inevitable that image processing operations are processor intensive. The title of our project indicates that we fully expect large images to be used with the SLI and a central goal of the project has been to minimise the time the user perceives between initiating an operation and seeing the result. We have adopted several strategies to deal with this issue, these are discussed later.

To fully appreciate this report, the reader should be familiar with the field of image processing and with the spreadsheet model. The SLI was implemented on a Sun Workstation, running UNIX. The C++ object oriented language was used to implemented the majority of code.

The remainder of the report is organised as follows. Section 2 presents the aims of the project. Section 3 discusses HCI issues and prototyping. Section 4 presents the formula language. Section 5 describes the program design. Section 6 gives the conclusion.