A Client-Server Digital Imaging Framework



Algorithms for image synthesis and image processing are highly complex
and require a vast amount of computing power. Image processing tasks
can take advantage of hardware specifically designed to support
digital signal processing. Currently such tasks are usually performed
on main-frame level machines or high end graphic workstations.  With
the advent of personal computers with high resolution displays and
multimedia, there is a growing interest in the use of applications
handling high quality images and animation on personal
computers. 

There are many applications related to image synthesis and processing
which have a good target audience on the PC class of machines but
which are constrained by the amount of computing that is available for
the image processing activities. Morphing and computer animation are
examples of applications which can greatly benefit from instant
feedback during interaction. Another area is virtual reality where
virtual worlds are modeled and synthesized inside the computer and
this has applications in the personal computer world for scientific
visualization, multimedia and games.  But due to the compute intensive
nature of such applications, the implementations of these applications
on personal computers are often constrained in the level of
sophistication that they can provide. Clearly they can benefit from a
mechanism to provide a higher level of computing power.  

One possibility while developing such applications is to run them on
the-end machines directly and use a network transparent Windowing
system like the X window system to provide the Graphical User
Interface on the end user's machine. This approach has its
demerits. The X Window System protocol does not provide any
particularly efficient mechanism for transferring images. This can
lead to bandwidth wastage and bottlenecks on the network. The X
Imaging extensions that have been provided to aid development of
imaging applications is not relevant here because it can utilize only
the capabilities of the workstation and not any high end machine where
the applications run. Another point which cannot be ignored in this
era of client-server computing is that it is not the dominant
windowing system on the desktops.

Client-Server computing is a new theme in the computing
world. It allows organizations to take advantage of the low-
cost and user-friendly environment that desktop
workstations provide while still taping on the power of high
end machines that stay in the background and provide
services to the client. It provides the capability to use the
most cost-effective user interface, data storage, connectivity
and application services. It is touted as the future of
computing.

In this work we discuss a client-server FrameWork for
providing image manipulation services to clients running
interactive applications. The servers may be high end
machines possibly with multiple processors or specialized
hardware to support such computations. The clients are
desktop machines running an OS such as Microsoft
Windows 95 or Windows NT. The FrameWork allows the
clients to run interactive applications making use of the
server's services for  time consuming processes. It also
takes into account efficiency issues in  maintaining versions
of images on the server and client side, keeping them  in
sync and transmitting them efficiently.


---------------------------------------------------------------