Aims of the Project
This project has been an investigation into the issues involved in the relatively new paradigm of the Large Image Spreadsheet and has from the outset been an exploritive exercise. Several areas have arisen as being specifically relevant to the amalgamation of the Spreadsheet and image processing with large images. It has been our aim to explore these issues and implement a Large Image Spreadsheet which addresses as many of these as possible. In this section we discuss several of these areas and introduce our implemented LIS application.
Over the last ten years, the Spreadsheet model has been a well developed and well understood paradigm. There are several popular packages with good interface designs. However, when we introduce image processing features, there are new HCI and interface design issues to address. Questions such as how to handle resizing of image cells, do we rescale the image or do we clip; do we use a tool bar and which tools do we include from the wide array of useful image operations; how should we allow users to apply image functions; how do we handle the loading, manipulation and storing of multiple image files; how are animation sequences displayed or spread across the spreadsheet.
To help resolve these questions and to aid the design of a good user interface, we used a three step prototype plan. These issues and the prototype plan are discussed in section 3.
Reducing Response Time
Images are very large and so operations on images are very time consuming. The majority of images in the spreadsheet will be thumbnail size, with perhaps several windows containing larger images. We have investigated several methods of improving response time.
The user can be given the option of disabling cells and thus preventing their update. This obviously speeds up response time as whole operations are ignored. The user can use this option to effectively influence his own environment and optimise response time for his own focal space.
Hierarchical Image Structure
Requesting several different sizes of a cell image is a frequently used operation. To generate a resized image is a processor intensive task and thus a bottleneck which will decrease the apparent speed of the system. One method which we have investigated to reduce this apparent slowing of system response is to use a hierarchical image structure. When an image is generated, it would be created as a pyramid structure of smaller to larger images. The requested size of image would be supplied immediately and the rest of the pyramid structure built in idle time. When a new image size is requested there is a good chance that the image is waiting. This method in effect tries to preempt an image resize request thus making the time delay involved in resizing appear minimal to the user. The effectiveness of this method is dependent on whether the image is stored in main memory or on disk. Either way, this method will provide a faster response. We did not implement this method in our application, however an image caching system was used.
Multiple Cell Updates
A dependency chain is formed when a cell relies on any other cell's value. A dependency chain can become very complicated, with many branches and involving many cell links. When a dependency chain or tree of cells has its root cell modified, this will cause all dependent cells to request an update. There are various ways this could be organised but considering that the spreadsheet might contain many large images and that the image cache may have saved some of its contents to disk, it becomes obvious that there could be significant time delays caused by reloading images from store. This can be avoided by ensuring that a single dependency chain is recalculated at a time, with no interrupts for any other calculations. This ensures that there is a minimal number of cache misses.
Built on top of this method is a request driven priority system which gives higher priority to a dependency chain which will be more visible to the user and which will involve the calculation of larger images.
Powerful and Familiar Formulae
It is important that we integrate image processing functionality into the Spreadsheet model. If the user cannot apply a useful range of image processing functions then there will be no practical use for the application. It is equally important that the user be able to apply image processing functions using a simple method. Section Three discusses the method of application of functions. Section Four introduces the actual Formula Language used by the LIS.
The Large Image Spreadsheet
The implementation of the LIS with all the features we have investigated would be a formidable task, therefore it has been our aim to incorporate as many as possible within the given time frame. We have several fundamental requirements that the LIS should meet, briefly these include the ability to : open and close a spreadsheet which is familiar to the user as a standard spreadsheet; enter simple formulae, text or numeric values into cells from a formula line; load image files as cell values; display a cell's image value within the cell's display area. Section 5 introduces the program design more detailed and ambitious requirements are given in the requirements specification section. Section 6 discusses the stage of development of the LIS implementation and the and its future.