Está en la página 1de 42

Almacenamiento y procesamiento en

paralelo de mega-imágenes
comprimidas en JPEG2000

César Augusto Sánchez Baquero

Universidad Nacional de Colombia


Facultad de Ingenierı́a, Departamento de Ingenierı́a de Sistemas e Industrial
Bogotá, Colombia
2011
Almacenamiento y procesamiento en
paralelo de mega-imágenes
comprimidas en JPEG2000

César Augusto Sánchez Baquero

Tesis presentada como requisito parcial para optar al tı́tulo de:


Magister en Ingenierı́a de Sistemas y Computación

Director:
Ph.D., Eduardo Romero Castro

Lı́nea de Investigación:
Procesamiento de Imágenes
Grupo de Investigación:
Bioingenium

Universidad Nacional de Colombia


Facultad de Ingenierı́a, Departamento de Ingenierı́a de Sistemas y Computación
Bogotá, Colombia
2011
v

Acknowlegments

I want to thank my advisor Eduardo Romero for his confidence in all the time we have
worked in this thesis and for his valuable collaboration and guide in the development of my
research. I also want to thank my family for their support and the National University of
Colombia for all the human and material resources provided.
vii

Resumen

Las imágenes médicas requieren de un gran espacio de almacenamiento. Interactuar de


manera flexible con tal cantidad de datos conlleva varios desafı́os tecnológicos como lo es
mantener esas bases de datos de imágenes de gran tamaño para su uso en actividades concre-
tas de la medicina. El objetivo de esta tesis es utilizar de manera óptima una estrategia de
computación distribuida en tal escenario. Para ello, se aprovechó la granularidad de acceso
dada por el estándar JPEG2000, para distribuir las tareas de procesamiento entre diferentes
nodos de cómputo. Esta idea fue aplicada en una aplicación médica de microscopı́a virtual,
un software que proporciona una emulación digital de un microscopio de luz y en la que los
usuarios hacen peticiones a Regiones de Interés. Las solicitudes de los usuarios se atienden
mediante un sistema de procesamiento paralelo y por capas, que tiene acceso a los bloques de
información independiente de la imagen JPEG2000. La distribución de tareas ha mostrado
un buen rendimiento con múltiples accesos simultáneos a la base de datos de mega-imágenes.

Palabras clave: Computación en paralelo, microscopı́a virtual, JPEG2000, Arquitec-


tura distribuida, navegación eficiente de mega-imágenes.
viii

Storing and parallel processing of mega-images


compressed with JPEG2000

Abstract

Medical images require a huge space of hard disk. Flexible interaction with such quantity
of data introduces many technological challenges, for instance to maintain such large image
databases or to exploit them in actual medical activities. The aim of this thesis was to op-
timally use a distributed computing strategy in such scenario. For doing so, we have taken
advantage of the granularity provided by the JPEG2000 image compression standard to dis-
tribute processing tasks among the different computing nodes. This idea was applied in a
particular medical application, the virtual microscopy system, a software that provides a real-
istic digital emulation of a power light microscope in which users request Regions Of Interest.
These requests are attended using a parallel and layered processing system that accesses to
independent information blocks of the JPEG2000 compressed image file. Tasks distribution
has shown good performance for multiple concurrent accesses to the mega-images database.

Keywords: Parallel computing, virtual microscopy, JPEG2000, distributed architec-


ture, efficient navigation of mega-images
Contents

Acknowlegments v

Abstract in Spanish vii

Abstract in English viii

List of Figures xi

List of Tables xii

1 Introduction 1

2 A distributed architecture for a loosely coupled virtual microscopy system 2


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.1 The Parallel Approach . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.2 Distributed Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.3 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Conclusions and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 A multilayer, scalable and flexible Virtual Microscopy System 10


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Computational methods and theory . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.1 JPEG2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.2 Service Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.3 The problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 System architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.1 The Storage Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.2 Data Access Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.3 The Proxy layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.4 The client layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.5 Hardware and software specifications . . . . . . . . . . . . . . . . . . 18
3.4 Performance tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
x Contents

3.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Bibliography 30
List of Figures

2-1 Request partitioning and processing . . . . . . . . . . . . . . . . . . . . . . . 4


2-2 Hadoop Distributed File System . . . . . . . . . . . . . . . . . . . . . . . . . 5
2-3 Distributed architecture to handle image requests . . . . . . . . . . . . . . . 6
2-4 Job execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2-5 Graphical User interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3-1 JPEG2000 structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


3-2 Architecture Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3-3 Average time response during the simulated set of concurrent navigations.
Figure shows the navigation time in the x-axis against the average system
response in the y-axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3-4 Average response time with different number of client requests. Figure shows
the number of clients in the x-axis against the average system response in the
y-axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3-5 System execution profile over time. Figure shows the navigation time in the
x-axis against the number of invocations of each reconstruction phase in the
y-axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
List of Tables

2-1 Average time in milliseconds for serial and parallel versions of the virtual
microscopy system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2-2 Average time in milliseconds at higher resolution with concurrent client requests. 9

3-1 Influence of the multi-user cache policy in the time navigation performance.
Observe that the number of users influences the quality of the information
stored in the cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3-2 Average wavelet reconstruction time in ms. . . . . . . . . . . . . . . . . . . . 20
1 Introduction
Medical images are visual documents that support medical acts. Such images may require
a huge space of hard disk, i.e. a 1 cm2 biological sample amounts to a mega-image of 4.3
GB for a microscopical objective set to ×20. Flexible interaction with such quantity of
data introduces many technological challenges, for instance to maintain such large image
databases or to exploit them in actual activities such as diagnosis, follow up, prognosis,
research and health education. The aim of this thesis was to optimally use a distributed
computing strategy in such scenario. For doing so, we have taken advantage of the granularity
provided by the JPEG2000 image compression standard to distribute processing tasks among
the different computing nodes.
Chapter 2 introduces the problem of dealing with such mega-images in a particular medical
application, the virtual microscopy system, a software that provides a realistic digital emula-
tion of a power light microscope, using a specific Graphics User Interface (GUI). The chapter
presents a system that attends user requests using a parallel processing system that accesses
to independent information blocks of the JPEG2000 compressed image file and performs 60%
better than the non-parallelized version. This chapter was already presented at the SPIE
Medical Image Conference as an oral presentation the February 16, 2011 in Orlando-USA.
Chapter 3 complements the previous chapter and presents the design, implementation and
validation of a scalable and flexible architecture for the same medical application. The dif-
ferent layers that are part of this system were devised to cope with many different scenarios
and under extreme operation conditions, thereby optimizing the JPEG2000 decompression
pipeline. The architecture is composed of four decoupled layers, within which the decom-
pression tasks are distributed, aiming at optimizing the inevitable decompression delays. In
particular, when 100 concurrent users access the system, the average response time to process
a query for a region of interest of 100 × 100 pixels, was 102 ms. This hypothetical scenario
allows to state that the system is capable of maintaining adequate interaction levels with a
large group of users. The chapter was submitted to the Computer Methods and Programs
in Biomedicine Journal as a full research article.
2 A distributed architecture for a loosely
coupled virtual microscopy system
César Sánchez and Eduardo Romero, “A distributed architecture for a loosely coupled virtual
microscopy system”, Proc. SPIE 7963, 79633H (2011); doi:10.1117/12.878159

Abstract: Virtual microscopy systems are typically implemented following standard client-
server architectures, under which the server must store a huge quantity of data. The server
must attend requests from many clients as several Regions of Interest (RoIs) at any desired
levels of magnification and quality. The communication bandwidth limitation, the I/O image
data accesses, the decompression processing and specific raw image data operations such as
clipping or zooming to a desired magnification, are highly time-consuming processes. All
this together may result in poor navigation experiences with annoying effects produced by the
delayed response times. This article presents a virtual microscope system with a distributed
storage system and parallel processing. The system attends each request in parallel, using a
clustered java virtual machine and a distributed filesystem. Images are stored in JPEG2000
which allows natural parallelization by splitting the image data into a set of small codeblocks
that contain independent information of an image patch, namely, a particular magnification,
a specific image location and a pre-established quality level. The compressed JPEG2000 file is
replicated within the Distributed Filesystem, providing fault tolerance and fast access. A re-
quested RoI is split into stripes which are independently decoded for the distributed filesystem,
using an index file which allows to easily locate the particular node containing the required
set of codeblocks. When comparing with a non-parallelized version of the virtual microscope
software, user experience is improved by speeding up RoI displaying in about 60 % using two
computers.

2.1 Introduction
A virtual microscopy is a software system that provides a realistic digital emulation of a
high power light microscope [7]. The system should allow efficient storage of large micro-
scopical images while displays different RoIs at any resolution and desired quality. Virtual
microscopy systems are typically implemented following a client-server architecture, which
should support concurrent requests from many clients. Most data operations are highly time
2.1 Introduction 3

consuming whereby the experience of a seamless navigation is limited. Many strategies have
been devised to deal with, including cache and prefetching [12, 25].

JPEG2000 [23] is a compression standard developed by the Joint Photographic Expert


Group, whose main algorithm components are the Wavelet transform (DWT) and the Em-
bedded Code with Optimization Truncation. This is a well-suited image format for virtual
microscopy because it enables compressing, visualization and efficient access to large image
files produced by the modern microscope slide scanners [33]. JPEG2000 allows a high com-
pression ratio while provides very granular access to the image data due to its parallel coding
scheme. The format also supports RoI encoding, random access to the image stream and
access by quality layer and resolution level [23]. This versatility could be better exploited
by handling requests in parallel. This high degree of natural parallelism exhibited by many
image processing algorithms can be better exploited by using parallel computing and parallel
algorithms. [18].

JPEG2000 standard has been already parallelized by distributing the wavelet transform
into the computing nodes of a network [4]. Compression and coding of JPEG2000 using
the reference implementations of the standard (JJ2000 and Jasper) has been parallelized
using OpenMP and Java Threads [16]. Two works have used distributed architectures for
image navigation and visualization, in the former, the image is split into several blocks
which are independently compressed in JPEG [34] and then stored in different nodes. When
a particular query arrives the system decompresses those blocks that intersect this query,
thereby the computational processing can be far from being optimal. Each image block is
decompressed, clipped to the queried region and subsampled to meet a desired magnification
[7]. In the latter work, a JPIP server uses a local database to store some sort of pointer
to locations of a variable number of images that were previously distributed in many sub-
servers [33]. The main server delegates then the incoming client image requests to the
sub-servers that contain those images, that is to say that the computer load is distributed
at any moment.

This paper presents a distributed architecture which fully exploits JPEG2000 functionalities
by accessing only the required codeblocks of a desired requested RoI at a particular resolution
level. The whole strategy divides a particular request in N sub-requests so that the initial
query is attended by N different processes, each in a different server. The strategy takes
advantage of every node by distributing processes so that the system very rapidly offers
decompressed RoIs. This article is organized as follows, section 2.2.1 introduces the parallel
approach to JPEG2000, section 2.2.2 presents the parallel implementation. Section 2.3
compares the navigation times using the distributed version and the traditional client/server
version when changing different parameters such as the number of concurrent clients and
the number of requests. Finally section 2.4 presents some conclusions and discussion.
4 2 A distributed architecture for a loosely coupled virtual microscopy system

2.2 Methods
2.2.1 The Parallel Approach

Query divided in regions Process in parallel each 
region
Region 1 Region 2 Region 3

Processor i
Extracts only
required packets

Decodes and
QUERY decompresses

Image region is ready
to be displayed

Figure 2-1: Request partitioning and processing

The parallel version of the virtual microscope was implemented upon a traditional client/server
system, using an open source implementation of JPEG2000, the Jasper Library [1]. This
software decompresses a requested RoI, storing the resultant raw pixels as an array of bytes.
The array is partitioned in pieces which should match the RoI width so that the RoI is
displayed line per line, from left to right. Therefore, the parallel version splits any request in
horizontal stripes, which allowed an easier data retrieval from the library output. A request
is just a vector with the (x, y) position, length and width of the desired region. The server
splits this request into many stripes and processes it in parallel, dividing the query into the
number of available nodes and balancing the processing load. A particular node accesses
then the compressed image and retrieves only the JPEG2000 codeblocks that are needed to
reconstruct the image stripe, decompresses them and brings back the requested RoI. Figure
2-1 illustrates this process; the square inside the pathology image corresponds to the user
query, each of the three stripes corresponds to a task for a processor which access to the
required packets to decode and decompress the part of the image query (stripe) and let it
in the shared memory ready to be displayed. As described in [13] required codeblocks that
must be accessed for each image region are set by means of an index file where tiles, resolu-
tion levels, color components, precincts ans quality layers are associated to the corresponding
2.2 Methods 5

position and offset in the filestream.

2.2.2 Distributed Architecture


Distributed storage of images

Image data are stored using the Hadoop open source software [6]. As shown in figure 2-2, the
Hadoop Distributed Filesystem is composed of many Datanodes where files are physically
stored, and one Namenode responsible for keep track of file’s data block locations. The
system scales by adding more Datanodes. The filesystem automatically splits files into data
blocks which are replicated across available nodes. When a client requests a file to the
Namenode, it’s redirected to some of the Datanodes containing the file data blocks.
Image codeblocks are twice replicated, i.e. each codeblock is saved in two different nodes
so that access to information is guaranteed even if the node is temporally down. As the
index file is hardly used by all processing nodes, it’s stored in the distributed filesystem with
the maximum replication factor supported by the deployed system (i.e. a replication factor
equal to the number of Datanodes used). Every processing node has direct access to the
Distributed Filesystem, mounted in the local filesystem tree, assuring the network coherence
and simplifying this way the access to the image data. This configuration makes that any
local operation may also be remotely performed [31].

Figure 2-2: Hadoop Distributed File System


6 2 A distributed architecture for a loosely coupled virtual microscopy system

Parallel processing

In the absence of high-level parallel programming models and environments, programmers


have to explicitly take into account every aspect of parallelism such as task partitioning and
mapping, data distribution, communication scheduling or load-balancing. Having to deal
with these low-level details results in long, tedious and error-prone development cycles [28].
These concerns can be separated from the program logic using Aspect Oriented Programming
(AOP). Terracotta [5] software uses the AOP approach to implement transparent clustering
for java applications. Code written to work with this technology may run as a normal java
application within a single Jave Runtime Environment, or within a terracotta cluster, in
other words it is not necessary to make a full deployment of a terracotta to run and test the
code.
The presented parallel image processing implementation was carried out using a clustered
java virtual machine under the open source software version of Terracotta, thereby allowing
easy development and testing of parallel software.

L2
L2 Server
Server L2
L2 Server
Server L1
(Active) (Passive/Stand L1
(Active) (Passive/StandBy)
By) Virtual
VirtualMicroscope
Microscope
GUI
GUI
HDFS
HDFSClient
Client

Clustered JVM and Distributed File System


..
.
L1
L1
worker
worker
L1
L1
worker
worker
... L1
L1
worker
worker
L1
L1
Virtual
VirtualMicroscope
Microscope
GUI
GUI
HDFS
HDFSClient
Client

Datablocks Datablocks Datablocks

Figure 2-3: Distributed architecture to handle image requests

Figure 2-3 shows the deployed system. Two terracotta servers, (L2 servers), control the
entire cluster and manage the shared data, one node is called the active server and the
other is called the passive or standby server, used to cover failures. The other nodes, the L1
clients, run the parallel application itself and the Hadoop Distributed File System (HDFS).
The developed application shares a job list among the worker nodes so that jobs are always
available, as shown in figure 2-4 where a job with a desired RoI is sent to the cluster. Each
job is a set of tasks (partial jobs) with specific parameters. When a node processes a partial
job for the first time, this is initialized and locally stored in memory since it could be reused
to process other parts of the same job i.e. connection to the image and index files stored in
2.2 Methods 7

the HDFS and header of the JPEG2000 image are reused. This policy allows to deal with
many kinds of jobs in parallel, by extending the appropriate classes.

Queue shared in the 
JVM cluster

Job 1 Job 2 Job 3 Job 4 Job 5 Job 6 . . . 

1. Clients add a job 
(a set of tasks, 2. A task is executed 
Task1 Task2 Task3
one task per image  in workers 
stripe) (decompression of 
the image stripe)

3. Decompressed stripes are available to the GUI

Figure 2-4: Job execution

When a RoI query is processed, the requested region is divided into stripes which are included
as a partial jobs. Typical job parameters are the resolution level, the image path in the HDFS,
the RoI parameters (x, y, width and height) and a number of stripes. The list of tasks is
included in the shared memory, from where a worker node takes a partial job, accesses the
image in the HDFS and decompresses the codeblocks intersecting the required stripe. Pixels
are then saved in the shared memory so that they are available to any client, as illustrated
in figure 2-3. Each node uses the Jasper library [1], linked to java through JNI (Java Native
Interface).

2.2.3 Evaluation
Experimentation was carried out on a 8829 × 5314 image, compressed in JPG2000 with 4
resolution levels. In the GUI (Graphical User Interface), the lower resolution of the image is
displayed to the user to navigate and make queries at the desired resolution, as shown at the
right panel of figure 2-5. Several RoI requests were performed, setting the window size at
8 2 A distributed architecture for a loosely coupled virtual microscopy system

1318 × 1318. The traditional client/server architecture was compared with the distributed
architecture, using for doing so two processing nodes, while requests were made from the
same client. The average displaying time was computed for the two architectures, making
requests at different resolution levels.
Response times were evaluated using a single client, varying the desired magnification. Be-
sides, the response times were evaluated at setting a fixed resolution level and varying the
number of concurrent requests.

Figure 2-5: Graphical User interface

2.3 Results
Table 2-1 shows the displaying time in milliseconds of a particular requested RoI at different
resolution levels and the consequent speedup1 using a parallel version that splits the request
in 2 regions. The Parallel version displays RoIs in less than half of the time used with the
conventional architecture (two processor used). This improvement reflects the fact that the
distributed filesystem replicates the image across nodes, so the parallelism is not only in the
distributed processing but also in the access to data.
1
Speedup calculated as the division of the execution time of the serial algorithm (client-server version) by
the execution time of the parallel algorithm (terracota version)
2.4 Conclusions and Discussion 9

Table 2-1: Average time in milliseconds for serial and parallel versions of the virtual mi-
croscopy system.

Magnification level Client/Server Terracotta Speedup


4x 6045.5 1646.25 3.6
10x 7127 2387.75 2.9
40x 5255.25 1876.25 2.8

Table 2-2 shows the displaying time in milliseconds of a particular requested RoI at the
higher magnification level, with different number of concurrent requests and the consequent
speedup when using a parallel version. With a larger number of client requests, the speedup
is higher.

Table 2-2: Average time in milliseconds at higher resolution with concurrent client requests.

Number of client requests Client/Server Terracotta Speedup


5 6418.60 2843.35 2.3
10 8575.70 3214.20 2.7
15 15282.67 4756.13 3.2

Another important result is that heterogeneous hardware was used to deploy the virtual mi-
croscope so we could take advantage of any available computer. Also the terracota framework
permitted to easily develop the parallel processing model. Finally, replicated codeblocks in
many nodes may be useful for preventing failures, but replication also helps to run faster
because many processing nodes can concurrently access to the same datablock.

2.4 Conclusions and Discussion


A distributed architecture in a real virtual microscopy system was herein presented using
JPEG2000, which is very suitable for this kind of architecture. The system allowed us to
access to the smallest information units: codeblocks, very efficiently. Unlike other implemen-
tations, we reported navigation speeds up by using codeblocks instead of tiles, by optimally
exploiting the work node division.
3 A multilayer, scalable and flexible
Virtual Microscopy System
César Sánchez,Jose Luis Morales and Eduardo Romero, submitted to Computer Methods and
Programs in Biomedicine, Elsevier.

Abstract: This paper presents a virtual microscopy system built upon a Service Oriented
architecture that fully exploits the JPEG2000 advantages and allows efficient interaction
with virtual slides. The whole system is scalable in terms of storage capacity, processing
and supports the concurrent access of multiple users. The virtual microscope is composed of
four decoupled layers, each devised to optimally distribute the involved decompression tasks
and reach seamless navigations. For doing so, a decoupled version of the JJ2000 library has
been developed. The storage layer keeps the compressed file (bitstream) while the requested
bitstream packets are transmitted to the proxy layer through the data access layer, which
generates the required web services to send information through Internet. The proxy layer
is charged of dequantizing and decoding the requested packets and to make up a cache space
to accelerate the data availability. Finally, the client layer performs the inverse wavelet
transform and displays the image. The decoupled architecture allows data produced in some
layers can be reused so that performance is improved. The system was evaluated by simulating
actual navigations, showing an average response time of 102ms per query with 100 concurrent
users, navigating Regions of Interest (ROIs) of 100 × 100 pixels.

3.1 Introduction
The Virtual Microscopy (VM) is the microscopy area dealing with realistic digital emulations
of a conventional light microscope and the Virtual Microscopy Viewer (VMV) is the software
tool that provides such emulation [25]. A VMV should offer new functionalities that hardly
a conventional microscope would meet, namely, an efficient slide exploration by multiple
users from different geographical locations [20, 22, 29], annotation of Regions of Interest
(ROIs), bookmark of regions at specific magnifications and qualities, and the development
of filters that highlight image relevant regions to support a diagnosis. Such a tool has
shown to be useful in different scenarios, i.e., pathologist training, collaborative diagnosis
and research [10, 15]. In despite of there exists different available software, the problem is
still an open issue.
3.1 Introduction 11

A proper level of interaction between an expert and a Whole Virtual Slide (WVS) demands
to cope with different types of complementary problems, storage limitations because of the
WVS sizes, capturing standard procedures, concurrent accesses to databases with multiple
WVS and a seamless navigation under the restriction of a relatively narrow bandwidth of
the communication channels. A proper solution should reach high satisfaction levels when
an user is requesting pieces of information from a WVS, such as a particular region at a
desired magnification. Moreover, the quality of the displayed image is not necessarily a fixed
variable but rather a quantity that changes during navigation, depending on the specific
user needs. This long list of requirements can be partially satisfied by using compression
standards such as JPEG2000 [23]. Among other advantages, this standard allows random
spatial access to any image location with desired levels of quality and magnification in very
large images. Furthermore, the JPEG2000 Interactive Protocol (JPIP) is very robust to any
lost during transmission and complements the available tools to navigate such volume of data.
Nevertheless, the fact that information is compressed results in a delayed visualization since
raw data are obtained by transforming back from the bitstream. Overall, with no acceleration
strategies and a conventional stand alone architecture, a particular RoI is displayed in about
300 ms. [12]
Acceleration of these navigations can be achieved by smartly re-using the available informa-
tion as long as the navigation goes on. Cache and prefetching strategies have been used to
speed up the performance of virtual microscopy systems [11, 12, 25]. A Cache strategy sets
both a space in the fast access memory and a replacement policy so that any displayed infor-
mation is stored there and used if it is required in the future [8]. Prefetching is quite more
difficult since it requires a wider knowledge of the specific domain. The strategy consists in
early loading ROIs which are known to be important so that they can be required within
the navigation with a very high probability. The success of such strategy depends upon the
user navigation model to predict the navigation or diagnostic paths, or upon modeling an
accurate multi-user environment. All these concerns have led to the development of different
software solutions and architectures.
We present herein a fully decoupled, flexible and scalable architecture, composed of four basic
layers. This architecture exploits the high level of granularity of the JPEG2000 standard
by optimizing the performance of each of the different layers at distributing the JPEG2000
decompression pipeline among the different architecture layers. This architecture also takes
advantage of the multiresolution data nature to reduce the quantity of transmitted data. The
architecture supports the addition of as many nodes as needed so that scalability is assured
in terms of storing and concurrent access necessities. Finally, this modern architecture can
be used over standard Internet protocols with very light clients.
This article presents a Web Service Oriented Architecture for a virtual microscopy system,
devised to optimally exploit the JPEG2000 data representation and allow seamless naviga-
tions. A frame of concepts is introduced in section 3.2 for a better comprehension. Section
3.3 presents the different components of the system, divided by layers, and describes the
12 3 A multilayer, scalable and flexible Virtual Microscopy System

image processing distribution between those layers. Evaluation of the system is shown in
section 3.4. Finally, section 3.5 presents discussion and future work.

3.2 Computational methods and theory


The service oriented architecture allows many scales of interaction between the stored images
and the different applications connected to any of the exposed services. These services by
definition should be granular and hence they may be easily distributed among the available
computer resources, ensuring thereby the system scalability.
The proposed architecture facilitates the JPEG2000 exploitation so that the image decoding
can be distributed, reaching several levels of seamless image interaction, namely different
image resolutions, many quality layers and random access to any spatial location. This
framework improves the quality of the possible navigations, i.e., many users interacting with
several types of virtual slides.

3.2.1 JPEG2000
JPEG2000 [23] is a compression standard developed by the Joint Photographic Expert
Group, aiming at exploiting different types of interaction with a compressed file, i.e. a
random spatial access, different resolutions and a desired level of quality. The standard
was designed upon two main components, the Wavelet transform (DWT) or a multiresolu-
tion representation, and the Embedded Code with Optimization Truncation, a compression
strategy which takes advantage of the spatial information. These functionalities make that
JPEG2000 is considered as a well-suited image format for virtual microscopy, that is to say
it provides adequate compression rates, it facilitates different visualization paradigms as well
as efficient access to large images, or virtual slides in case of microscopy [33].
JPEG2000 allows a high compression ratio while provides very granular access to the image
data because of the independent coding approach. The format also supports RoI encoding,
random access, image codestream processing and access to different quality layers and reso-
lution levels [23]. Before compression, the image is split into tiles for improving the memory
management and independent administration of spatial information. This partition allows a
random access to particular pieces of bitstream, associated to specific image locations. Each
tile is then decorrelated into the luminance (Y) and chrominance (UV) components. Af-
terward, a finite supported wavelet transform accomplishes a multiresolution representation
of each of these tiles. The standard provides two different wavelets, among which the 5-3
Daubechies allows a perfect reconstruction, that is to say, a lossless representation. Once
image data are wavelet-represented, the sub-band wavelet coefficients are grouped into small
blocks which create a second partition, this time of the spectral space. These blocks are
called code-blocks which can be thought of as a tiling of coefficients in the wavelet domain.
Each codeblock is composed of bit-planes which store different levels of information rele-
3.2 Computational methods and theory 13

vancy. These bit-planes are associated following a particular order, defined as the set of
coefficients that are within a certain interval of the classical rate-distortion curve [35]. The
number of quality layers is chosen in advance and the bit-planes belonging to each level are
selected by using a conventional Lagrangian algorithm, which aims to optimize the amount
of information per layer [23]. A group of blocks associated to any spacial location is called
the precinct, as illustrated in figure 3-1. The final bitstream corresponds to a codestream
of packets, each independently coded, where each packet can be thought of as a minimal
information unit that can be connected together for yielding different resolutions, quality
layers or particular spatial locations.

Figure 3-1: JPEG2000 structure

Current JPEG2000 Implementations


So far most JPEG2000 implementations have solved the compression problem, but they
do not deal with the problem of interacting with the compressed file. Indeed, every known
JPEG2000 implementation (Jasper [1], JJ2000 [27], Kakadu [30]) is a stand alone application,
with a different degree of functionality, i.e., this software has been designed to deal with the
problem of compressing-decompressing images. These distributions are not by themselves
appropriate to administrate large collections of images, neither they provide any type of
parallelism or charge distribution to accelerate de decompression or visualizations processes.
We will present later an extension of the JJ2000 stand alone application to a functional
library which allows to exploit the standard functionalities under a modern architecture
with charge processing distribution.

3.2.2 Service Orientation


Services are well-defined units of functionality, accessible over the network via standard pro-
tocols. They can be though of as remote procedure calls [3]. A Service Oriented Architecture
14 3 A multilayer, scalable and flexible Virtual Microscopy System

consists in a set of design principles, aimed to achieve a maximum degree of decoupling.


These principles include, among others: reuse, granularity, modularity, composability, en-
capsulation and separation of the underlying business logic from the technology [2]. In a
service oriented architecture, systems communicate using services, that is to say, a special-
ized function allows two systems to interact. The design of a service depends very much upon
the particular concern and hence services can be built in many different ways. Nevertheless,
there are standards and guidelines that attempt to ensure or promote interoperability [3].
Services that follow standards like XML (eXtensible Markup Language), SOAP (Simple Ob-
ject Access Protocol), WSDL (Web Services Description Language) and are accessed through
HTTP (Hypertext Transfer Protocol) are called web services.
The very basic idea of a service oriented architecture is to reach a decoupled interaction
between systems, in other words to achieve parallel interaction and processing strategies so
that these services may be distributed among the network computer resources. A distributed
system consists of multiple autonomous computers that communicate using a computer net-
work. These computers interact with each other to achieve a common goal. Each computer,
or node, in a distributed system, may have its own user with individual needs, and the
purpose of the distributed system is to coordinate the use of shared resources or to provide
communication services to users. Overall, such distributed solutions lye upon a software
engineering theory known as the ”separation of concerns”. This theory states that a larger
problem is more effectively solved if the problem is decomposed into a set of smaller problems
or concerns [9]: services are units of software designed to solve an individual concern.

3.2.3 The problem


The Virtual Microscopy Viewer (VMV) is a specific tool devised for running over microscop-
ical virtual slides, composed of thousands of microscopical fields of view (FOVs). Minimal
requirements for this kind of viewer are: spatial random access to the virtual slide, a sufficient
range of magnification settings and several levels of quality to accelerate image navigations.
This software should also be capable of managing increasing numbers of concurrent users and
different queries to any virtual slide in the database, in other words the system should allow
scalability and flexibility. The design should also consider that databases could be located at
any place and that also the users could connect from any place. Finally the interface should
be adapted to the user needs.
Overall, this set of requirements can be fulfilled by introducing a service oriented architecture,
exploiting the data granularity offered by the JPEG2000 standard.

3.3 System architecture


The virtual microscopy system herein presented is scalable, supports an increasing number
of users and fully exploits the JPEG2000 functionalities. Scalability is achieved by distribut-
3.3 System architecture 15

ing data and tasks among several network nodes. Data distribution allows to dynamically
increase the available number of images while the number of supported users is scaled by
distributing the reconstruction tasks. Load balancing is in due turn preserved by replicating
tasks and data among the nodes so that many accesses of multiple users are guaranteed
thanks to the parallel design. On the other hand, navigating any of these virtual slides is a
complex process of interaction with variable pieces of visual information, typically a Win-
dow of Interest (WoI) at a particular microscopical enlargement, at any spatial region of the
virtual slide and at a desired level of quality.
The goal was herein to achieve a decoupled system with different levels of hierarchy, designed
from very different non functional requirements. A service oriented architecture deals well
with such variable functionality while allows different connectivity scenarios. For instance,
it facilitates implementation of each image reconstruction task as a defined service that may
run alone in a separate server or can be replicated among the available nodes so that any
service client request can be redirected to the server that runs the specific service. This
flexibility results in a system that carries out different deployments and that easily tackles
with a variable number of users and capabilities of the underlying hardware.
Such level of decoupling passes by assuring independent operability of the JPEG2000 pipeline,
i.e., each module, either at the transformation, quantization, or coding phases, should be
independently executed. The available open source versions of JPEG2000 are not actually
libraries in this sense, but rather they are stand alone applications that deal exclusively
with compression-decompression operations. A first step was then to develop a decoupled
and flexible version of one of the available open source libraries. For achieving so, we chose
the JJ2000 implementation because it was easier to integrate this JAVA native code to the
philosophy oriented to services. In the original library, compression and decompression oper-
ations are managed using data structures which depend on each other for any of the phases of
the whole pipeline, whereby each decompression (compression) step depends on data struc-
tures previously used within the JPEG2000 pipeline. The code was therefore modified to
separate the decompression tasks which are the ones used in a navigation. Our modified
version provides the next additional and independent functionalities

• Independent recover of packets that correspond to a randomly selected spatial region at


a desired resolution and quality levels. The fact that any packet retrieval is independent
means that it is possible to construct a query of a particular region with no need of
fully decompressing the tiles which contain such packets, as it is usually required in
the JJ2000 implementation

• Independent packet decoding.

• De-quantization of the decoded data.

• Inverse wavelet transform in the two versions: Daubechies 5-3 and 9-7.
16 3 A multilayer, scalable and flexible Virtual Microscopy System

• Color inverse transform, typically Y U V and Y Cb Cr


Once an actual management of the JPEG2000 data granularity was accomplished, the whole
oriented service architecture can be defined and implemented. An architecture with at
least four different layers met the requested functionality, as illustrated in figure 3-2. This
architecture is capable of maintaining a completely uncoupled access to the information,
that is say, geographically distant users can access to remote image databases.

Figure 3-2: Architecture Layers

3.3.1 The Storage Layer


A main requirement for this layer was a flexible, scalable and reliable storing system. The
Hadoop Distributed Filesystem (HDFS) [6] was herein used because of its facility to increase
the storage capacity with no need to shut the system down, meeting thereby the image
database growing needs. It also supports file replication, allowing so a proper load balancing
among nodes and increasing the system reliability and accessibility.
Images and metadata information are stored in associated structures, which set aside com-
pression parameters like the number of resolution levels, the number of quality layers and
tiles and codeblock sizes. A custom designed index file allows to access any possible queried
WoI in terms of a desired level of resolution, quality and spatial region.

3.3.2 Data Access Layer


The pool of connections to the storage layer is efficiently managed by introducing a data
access layer. An independent access layer is fully justified by the level of data granularity
3.3 System architecture 17

which is required in an actual virtual microscopy application. This granularity is of course


provided by the JPEG2000 standard at decomposing the compressed image or bitstream
into very basic units of information, called packets, which independently store information
from any spatial region at different magnifications and levels of quality. The management of
such level of granularity is a major challenge, above all when the number of images increases.
This problem was previously addressed [13] by constructing an index file which stores the
packet location in the bitstream, associated to any resolution, quality layer or image spatial
location. This indexation policy allows interaction with the pieces of bitstream associated
to a particular query, but this is not enough in terms of access to the level or required
granularity. This access was herein optimized using a hierarchy of hash maps that associates
tiles, components, resolution levels and subbands to the corresponding packet location and
size in the image bitstream. Once the index is loaded in memory, the required access time
is given by the time used to access the hash map plus the time used to read the desired
packets. This interface allows to retrieve the packets associated to any particular query.

3.3.3 The Proxy layer

Aiming at distributing the processing load for the decompression phases, users located within
the same Local Area Network (LAN) can be attended together by a proxy. Each proxy is
associated to a LAN and is also responsible of interacting with the data layer through Inter-
net. The proxy is charged of obtaining the required packets for decoding and dequantizing
tasks. Overall, the higher magnification WoIs demand the lower magnification WoI versions
at reconstructing a higher resolution query. Provided that our application allows simulta-
neous access of multiple users to the same virtual slide, this layer maintains a cache space
within which the data corresponding to lower resolutions may be stored, thereby decreasing
the server load and the traffic network.
Once a query arrives, each proxy searches within its own caching space, trying to find out a
similar query that had been previously attended. The cache space is split into a fixed number
of sections, thereby allowing parallel reading and writing operations. The proxy brings back
the wavelet coefficients to reconstruct that query, otherwise the proxy must interact with the
server to request the specific packets. For each tile, the proxy divides the query into packets
so that the server can attend simultaneously multiple queries from different proxies. Each
query contains information about the required tile, but also about the requested packet such
as its location within the tile. Once the required packets are received from the server, the
proxy executes the process of decoding and dequantizing the data to generate the wavelet
coefficients which are stored in the caching space and send to the client.
18 3 A multilayer, scalable and flexible Virtual Microscopy System

3.3.4 The client layer


Each virtual slide is stored in the server and displayed at the client side within the work area
of a conventional navigation browser. The user selects the image to be navigated and the
compression set of parameters is used to prepare the work area, within which the image is
going to be navigated. For each image tile, the client uses an independent processing thread
that is charged of dealing with the different resolution or quality levels. Each thread uses
a set of parameters to request a particular query, composed of an image location, the color
component to use and the resolution level, among others. Once the wavelet coefficients arrive
to the client side, the local application applies the color and wavelet inverse transforms to
obtain the raw pixels and display them. Finally, depending on the particular requested WoI,
a query can include more than one tile or a part of one of them. This problem was overcome
thanks to the independent thread distribution because each load is also independent.
The reconstruction time of the particular query is also optimized at taking advantage of the
multiresolution support provided by the JPEG2000 standard. When a particular region of
the image has to be reconstructed, the application uses the previously requested resolutions,
decreasing the information to be transmitted as long as the resolution level increases during
the virtual slide visualization.

3.3.5 Hardware and software specifications


Java software version 6 is required for each component. Hadoop version 0.20.2 was used.
Data access and proxy layers were deployed within the GlassFish 3.1 server. For the perfor-
mance test, the HDFS was deployed using 5 Linux nodes. For the data access layer a server
with a 4 processor cores at 2.8 Ghz and 5 GB of memory was used, and for the proxy layer
it was used a server with a 6 core processor at 2.8 Ghz and 5GB of memory.

3.4 Performance tests


The whole system was twofold evaluated, firstly by independently assessing the components,
i.e., storage, Data Access, Proxy and client layers, and secondly by exhaustively testing the
system with a large number of simulated navigations.
The capacity of the distributed system to respond to multiple queries was challenged by
comparing the system performance when files are either stored at the server hard disk or at
the different nodes of the HDFS. In the former case, images files were stored in the filesystem
of a high performance server (5 GB of memory, 4 processors at 2.8 Ghz, hardware-based
RAID array with 3 hard drives) while for the later the HDFS was installed in a network
of five machines with limited processing capacity and relatively slow hard disks (1 GB of
memory, processor at 2.2 Ghz, disk at 7200 rpm). A load test consisted in a set of concurrent
requests, simulated by means of an incremental number of threads (30, 60, 100, 150 up to
3.4 Performance tests 19

210), which demanded services from the data access layer. The average time taken to retrieve
a JPEG2000 packet was 10.817 ms for the server and 10.675 ms for the HDFS network, two
figures that can be considered as comparable. In fact, there exists a difference of 1.68 % in
favor of the HDFS system, indicating that both storing configurations are alike. It should
be strengthen out that while the server performance was saturated, the HDFS network can
still add as many nodes as available machines there would be, with no change of the previous
performance, that is to say, the network is completely scalable.
The evaluation of the data access layer was carried out together with the previous storage
test. Overall, data transfer through Web Services passes by a XML parsing to reconstruct the
original object, once the service has been consumed by any of the available applications. This
parsing requires a lot of string comparisons and matching, as well as data type casting [14]. A
single client spends in average 2.4 ms to recover a single package after the request1 , including
in this time an average of 0.3 ms for retrieving the package from the JPEG2000 bitstream,
i.e., the average transfer time through the network was 2.1 ms.
A large cache space is set at the beginning of the navigation at the proxy layer, typically
about 50 M Bytes so that a very basic multi-user cache policy can be used. This cache space
stores every past navigation and allows to accelerate the user interaction. Of course more
elaborated cache policies can be integrated [11,21], but our aim was herein to leave a plug-in
to which any policy cache may be connected. Evaluation consisted then in evaluating the
time spent for a packet to arrive to the client’s side with and without the caching space.
Simulated navigations were composed of a random list of ROIs with an average size of
100 × 100 (drawn from actual navigations [24]) to which different levels of resolution are
increasingly requested, from a different number of clients. Table 3-1 shows the response
times in both scenarios. The gain with a single user is practically null since there is nothing
in the cache space to be used. On the contrary, as long as the number of users increases, the
time performance remarkably decreases, in despite the only cache policy was to reserve a
large memory space. The large data variance may be attributed to the fact that information
is mixed up, that is to say, each of the queries contains different entropy values per tile and
different resolution levels.
Finally, the client processing is basically a function of the display time, which in turn depends
on the inverse wavelet transform. The processing wavelet time was then determined for each
client, after receiving the packet from the proxy. A tile reconstruction needs a particular res-
olution level that uses the previous resolutions. Table 3-2 shows the average reconstruction
times. Thanks to our decoupled version of the JJ2000 library, the client can use data from
lower resolutions to build up the whole requested tile. Likewise, processing from different
quality layers is decoupled, thereby the desired user query can be fully satisfied.
The performance of the whole system was also assessed by simulating the concurrent access
of 100 users, upon a Whole Virtual Slide (WVS) of 13264 × 6736 pixels with a tile size of
1
recall that the transmitted data corresponds to the packet size, 2.3 kbytes in this case, plus the frame from
the HTTP protocol
20 3 A multilayer, scalable and flexible Virtual Microscopy System

Table 3-1: Influence of the multi-user cache policy in the time navigation performance. Ob-
serve that the number of users influences the quality of the information stored in
the cache.

Average time in ms.


Number of clients
Cache enabled Cache disabled
1 49.40 ± 31.79 49.71 ± 31.32
3 20.54 ± 32.25 52.68 ± 35.86
5 14.54 ± 29.55 58.21 ± 40.45

Table 3-2: Average wavelet reconstruction time in ms.

Resolution Average time


0 0.04 ± 0.20
1 0.22 ± 0.46
2 0.56 ± 1.06
3 1.76 ± 1.74
4 4.74 ± 1.25

512 × 512. Navigations were composed of 50 different ROIs 2 , picked from a random list,
with an average size of 100 × 100. Each user was associated to a different version of the
random list. A navigation is herein understood as a sequence of jumps between ROIs, not
necessarily connected.
Evaluation consisted in executing several navigations, from 5 to 100 clients, incrementing
by 5 the number of clients. Figure 3-3 shows the navigation time in the x-axis against the
average system response in the y-axis, for a different number of concurrent clients. For the
sake of visualization, only results with 10, 25, 50, 75 and 100 concurrent clients are shown.
The different plots show the same trend, an important increase of the average response at
the beginning, followed by a rapid decrease of this average time and a very efficient use of the
computational resource after some time because of the cache strategy. When the whole set
of users starts to navigate at the same time, the system holds on the list of requests because
it has to firstly deal with the connection to the data server and to manage the concurrent
cache, regarding reading and writing operations. Once a certain level of shared information
is stored in the cache space and this space is split into sections that increase the parallel

2
A region can be of Interest if every expert stops there or if the time spent by a pathologist examining this
is larger than the average [24].
3.5 Discussion 21

access, the performance improvement is remarkable. Figure 3-4 shows the average response
times of the entire set of navigations against the number of simultaneous clients.

Figure 3-3: Average time response during the simulated set of concurrent navigations. Fig-
ure shows the navigation time in the x-axis against the average system response
in the y-axis.

On the other hand, when multiples clients are accessing the data, several decompression
phases overlap to have to the final raw data to be displayed, namely, data access, decod-
ing, dequantizing and visualization. Performance is improved by taking advantage of the
parallelism, i.e., while accessing the data corresponding to a particular query, the data from
previous queries is decoded and dequantized, such as it is shown in the execution profile
plotted in figure 3-5. Notice that after some time and some concurrent accesses, which
guarantee shared information, the system only executes the inverse wavelet transform.

3.5 Discussion
A distributed, flexible and scalable architecture, which uses a decoupled version of the JJ2000
library to implement a VMV, has been herein presented. The presented architecture allows
multiple concurrent users with optimal interaction to the data and seamless navigations.
The architecture layers attempted not only to provide flexibility, but also to save time and
22 3 A multilayer, scalable and flexible Virtual Microscopy System

Figure 3-4: Average response time with different number of client requests. Figure shows
the number of clients in the x-axis against the average system response in the
y-axis.
3.5 Discussion 23

Figure 3-5: System execution profile over time. Figure shows the navigation time in the
x-axis against the number of invocations of each reconstruction phase in the
y-axis.

bandwidth channel. Specifically, access to data is facilitated by an optimal indexation policy,


data transfer is accelerated by using web services and the bandwidth traffic is highly improved
by an integrated cache space that stores either the wavelet coefficients or the raw data,
depending on the sparsity of the signal. Finally, a local cache space keeps the first wavelet
scales and thereby only larger scales must be inverse transformed it they are requested.
Multiple clients save time because they may require similar ROIs and then they only have
to apply the inverse wavelet transformation.
Different types of architectures have been already proposed for virtual microscopy. Under a
conventional client-server frame, parallel computing has been proposed at the server side by
splitting the image into several blocks which are independently compressed in JPEG [34] and
stored in different nodes. When a particular query arrives, the system decompresses those
blocks intersecting the query, each is clipped to the requested region and subsampled to meet
a desired magnification [7]. These authors have pointed out that a wavelet based format
could be more appropriate for virtual microscopy because of the natural availability of the
requested data, but they have used the JPEG format because of the facilities regarding stable
decompression libraries for that format. They reported that available JPEG2000 libraries
were from 10 to 20 times slower for decompressing microscopical images. Yet this was true
five years ago, the development and availability of distributed computing has completely
changed the scenario. The present work, dealing with the JPEG2000 wavelet-based format
24 3 A multilayer, scalable and flexible Virtual Microscopy System

and a decoupled library that allows processing distribution, has speeded up the interaction
process by distributing tasks between nodes so that navigation times result comparable
to what is obtained with formats such the classic JPG. Likewise, architectures composed
of subsystems that temporarily store JPEG2000 packets, have been used to reduce the
transmission times between clients and remote JPIP servers. These subsystems are near
to the client for speeding up data delivery [19] and use proxy architectures with HTTP as
the communication protocol. In this case, the packets already requested are served by an
intermediate component (the proxy-cache), with the proxy and the clients within the same
Local Area Network. Nevertheless, this system fails to concurrently support a large number
of users, indeed they report tests with some clients but there is not explicit mention of the
number and more importantly, this test is not exhaustive regarding this number. In addition,
no report is included in same paper about storing capabilities, a fundamental issue in virtual
microscopy. Another work has reported a load balanced implementation to distribute the
workload for a JPIP server [33]. In this case the main server stores the image locations
in a local database, previously distributed in many sub-servers. The main server delegates
then the incoming client image request to the sub-servers that contain it. However, every
client request uses the same internet channel to communicate, whereby this point becomes a
bottle neck when many users attempt to concurrently access the server, that is to say the load
balancer is only functional in terms of distribution of client requests. In our architecture, the
well defined layers and services give us the flexibility to set many proxy services in different
Internet locations, i.e., each proxy can attend many users and the used bandwidth is the one
required to communicate the proxy to the data access layer.
Multiresolution formats may decrease visualization times: with these formats it is possible
to prioritize the data to be transmitted and therefore to progressively optimize the quality
of the displayed image [12], i.e., it is then possible to display a low resolution version of a
region, and then start to display higher resolution versions. Instead of using multiresolution
formats, some approaches have used images in multiple resolutions, such as the Google
Maps API. This API has been used to implement a virtual microscope [32] with a pyramidal
representation of the different image magnifications. Each level of the pyramid is subdivided
in tiles which are in due turn independently compressed in the JPEG format. Each particular
query corresponds then to a set of tiles which must be decompressed and sent to the client
for visualization in the google viewer. A similar implementation [17] uses the Zoomifier
tool to generate the pyramid of images, while visualization is carried out in conventional
web browsers or standalone applications. However, a first drawback with these two last
implementations, is that they require multiple raw resolution image versions to achieve a
particular query, i.e. a specific magnification and a spatial region. Furthermore, different
layers of quality are not provided, a well known smart strategy that accelerates navigations
in virtual microscopy [12]. On the other hand, the weight of a Whole Virtual Slide is out
of the scope of such applications and this is not a marginal issue, i.e., It has been reported
that a microscopical capture of barely a 1 cm2 can reach 4.3 GB for a medium magnification
3.5 Discussion 25

(× 20 objective) [25]. In other words, an usual histopathological sample that can amount to
some cm2 can reach hundreds of Gbytes. In addition, the fact that most of these images are
used for diagnostic tasks imposes another limitation: the lossless compression, a very hard
requirement that few compression standards fulfill. Finally, it is important to keep in mind
that most health institutions or Faculties of Medicine, who would be the final users of such
applications, usually do not count with the required computational resources. This last set
of reasons makes that this type of applications require of very flexible compression strategies
and a high level of data granularity so that seamless navigations would be possible.
In our previous work [26], navigations were speeded up by parallel decompressing the virtual
slides. For doing so, a desired WOI is split into subregions that are requested to the com-
pressed file in JPEG2000 and distributed into the available nodes. Virtual slides were also
stored using the HDFS, but the reconstruction processing depended on the Jasper library [1]
that was replicated at every node. An extension of the Java Native Interface (JNI) had to
be also replicated among the nodes. The system required a high bandwidth to transfer the
decompressed ROI between the cluster and clients, so it could only be used in a Local Area
Network.
The architecture herein presented was composed of four basic layers that coped with the
main issues of this problem. These four layers permitted flexibility and easy management of
the different components. Firstly, the HDFS allows flexible data storage, and the addition
of as many storage units as needed, without affecting the rest of the system. The data layer
provides well defined web services to recover packets, services that can be either consumed
by the proposed proxy layer or used directly from the clients, case in which the architec-
ture easily changes to three layers. However the additional proxy layer provides the system
with many advantages, as the possibility of sharing common information and therefore ac-
celerating navigations, or the optimization of the available bandwidth since the proxy is the
only to communicate with the external network (the internal network has not important
bottle neck). These four decoupled layers serve as a model to give some intrinsic parallelism
to multiple users because also the processing is distributed, for instance the decoding and
dequantization steps were assigned to the proxy while the inverse wavelet and the RGB re-
construction were left to the client. Even though the decoupled library would allow to split
the task in many other sub-tasks, these four processing phases optimized already the user
interaction and no important further benefit is obtained by adding new layers.
In conclusion this architecture has shown good performance for concurrent accesses to the
data base system in virtual microscopy. This was possible by distributing tasks among nodes
and by splitting the computational load among different layers. Future work includes the
design and development of more elaborated cache and prefetching implementations, address-
ing the issue of concurrent multi-user access. So far this system may scale up the storage
layer using low cost hardware, thereby allowing centralized and growing image database.
Finally, we have developed a flexible virtual microscopy architecture where each layer is
charged of multiple functions, that is to say, the data access layer not only accesses images,
26 3 A multilayer, scalable and flexible Virtual Microscopy System

but it also efficiently recovers packets using an index, the proxy layer not only optimizes the
data exchange with the Internet, but it also decodes and dequantizes packets and finally the
client layer not only displays the queried ROI but it also reconstructs coefficients and takes
advantage of the multiresolution format.
Bibliography
[1] Adams, M. D. ; Kossentini, F.: JasPer: A software-based JPEG-2000 codec imple-
mentation. En: Proc. of IEEE International Conference on Image Processing Vol. 2,
2000, p. 53–56

[2] Balzer, Yvonne. Improve your SOA project plans.


http://www.ibm.com/developerworks/webservices/library/ws-improvesoa/. Juli
2004

[3] Besemer, David: Designing Services. En: An Implementor’s Guide to Service Ori-
ented Architecture - Getting It Right. Westminster Promotions, April 2008. – ISBN
0979930405

[4] Bethel, Wes ; Tierney, Brian ; lee, Jason ; Gunter, Dan ; Lau, Stephen: Us-
ing high-speed WANs and network data caches to enable remote and distributed vi-
sualization. En: Proceedings of the 2000 ACM/IEEE conference on Supercomputing
(CDROM). Dallas, Texas, United States : IEEE Computer Society, 2000. – ISBN
0–7803–9802–5, p. 28

[5] Boner, J. ; Kuleshov, E.: Clustering the Java virtual machine using aspect-oriented
programming. En: AOSD 07: Industry Track of the 6th international conference on
Aspect-Oriented Software Development, 2007

[6] Borthakur, D. The hadoop distributed file system: Architecture and design.
http://hadoop.apache.org/common/docs/r0.20.2/hdfs design.pdf. 2007

[7] Catalyurek, Umit ; Beynon, Michael D. ; Chang, Chialin ; Kurc, Tahsin ; Suss-
man, Alan ; Saltz, Joel: The virtual microscope. En: IEEE Transactions on Infor-
mation Technology in Biomedicine: A Publication of the IEEE Engineering in Medicine
and Biology Society 7 (2003), Dezember, Nr. 4, p. 230–248. – PMID: 15000350. – ISSN
1089–7771

[8] Davison, B. D.: A survey of proxy cache evaluation techniques. En: Proceedings of
the Fourth International Web Caching Workshop (WCW99), 1999, p. 67–77

[9] Erl, Thomas: SOA Principles of Service Design. 1. Prentice Hall, Juli 2007. – ISBN
0132344823
28 Bibliography

[10] Goldberg, Harry R. ; Dintzis, Renee: The positive impact of team-based virtual
microscopy on student learning in physiology and histology. En: Advan. Physiol. Edu.
31 (2007), Nr. 3, p. 261–265

[11] Gómez, Francisco ; Marı́n, Diana ; Romero, Eduardo: A soft-cache strategy for
pathologist’s navigation in virtual microscopy. En: Microscopy Research and Technique
(2010), p. n/a–n/a. – ISSN 1059910X

[12] Iregui, Marcela ; Gomez, Francisco ; Romero, Eduardo: Strategies for efficient
virtual microscopy in pathological samples using JPEG2000. En: Micron 38 (2007),
Oktober, Nr. 7, p. 700–713. – ISSN 0968–4328

[13] Iregui, Marcela ; Meessen, Jérôme ; Pierre, C. ; Benoit, M.: Flexible access to
JPEG2000 codestreams. En: 23rd Symposium on Information Theory in the Benelux
(2002), Mai

[14] Juric, M. B. ; Kezmah, B. ; Hericko, M. ; Rozman, I. ; Vezocnik, I.: Java RMI,


RMI tunneling and Web services comparison and performance analysis. En: ACM
SIGPLAN Notices 39 (2004), Nr. 5, p. 58–65. – ISSN 0362–1340

[15] Kim, Min H. ; Park, Youngwoon ; Seo, Donghee ; Lim, Yu J. ; Kim, Dong-Il ; Kim,
Chul W. ; Kim, Woo H.: Virtual microscopy as a practical alternative to conventional
microscopy in pathology education. 1 (2008), Nr. 1, p. 46–48

[16] Meerwald, Peter ; Norcen, Roland ; Uhl, Andreas: Parallel JPEG2000 Image
Coding on Multiprocessors. En: Parallel and Distributed Processing Symposium, In-
ternational Vol. 1. Los Alamitos, CA, USA : IEEE Computer Society, 2002. – ISBN
0–7695–1573–8, p. 0002b

[17] Mikula, Shawn ; Trotts, Issac ; Stone, James M. ; Jones, Edward G.: Internet-
enabled high-resolution brain mapping and virtual microscopy. En: NeuroImage 35
(2007), März, Nr. 1, p. 9–15. – ISSN 1053–8119

[18] Nicolescu, Cristina ; Jonker, Pieter: Parallel low-level image processing on a


distributed-memory system. En: Parallel and Distributed Processing. 2000, p. 226–
233

[19] Ortiz, J.P.G. ; Ruiz, V.G. ; Lopez, M.F. ; Garcia, I.: Interactive Transmission of
JPEG2000 Images Using Web Proxy Caching. En: Multimedia, IEEE Transactions on
10 (2008), Nr. 4, p. 629–636. – ISSN 1520–9210

[20] Parvin, B. ; Taylor, J. ; Callahan, D. ; Johnston, W. ; Dahmen, U.: Visual


servoing for on-line facilities. En: IEEE Computer Magazine (1997)
Bibliography 29

[21] Podlipnig, S. ; B\ösz\örmenyi, L.: A survey of web cache replacement strategies.


En: ACM Computing Surveys (CSUR) 35 (2003), Nr. 4, p. 374–398. – ISSN 0360–0300

[22] Potter, C. ; etal: Evac: A virtual environment for control of remote imaging
instrumentation. En: IEEE Computer Magazine (1996), p. 62–66

[23] Rabbani, Majid ; Joshi, Rajan: An overview of the JPEG 2000 still image compression
standard. En: Signal Processing: Image Communication 17 (2002), Januar, Nr. 1, p.
3–48. – ISSN 0923–5965

[24] Roa-Pena, Lucia ; Gomez, Francisco ; Romero, Eduardo: An experimental study


of pathologist’s navigation patterns in virtual microscopy. En: Diagnostic Pathology 5
(2010), Nr. 1, p. 71. – ISSN 1746–1596

[25] Romero, E. ; Gómez, F. ; Iregui, M.: Virtual Microscopy in Medical Images: a


Survey. En: Modern research and educational topics in microscopy, Formatex (2007),
p. 996–1006. – ISSN 978–84–611–9420–9

[26] Sanchez, Cesar ; Romero, Eduardo: A distributed architecture for a loosely coupled
virtual microscopy system. En: Proc. SPIE 7963. Lake Buena Vista, Florida, USA,
2011, p. 79633H–79633H–7

[27] Santa-Cruz, D. ; Grosbois, R. ; Ebrahimi, T.: JJ2000: The JPEG 2000 refer-
ence implementation in Java. En: Proceedings of the First International JPEG 2000
Workshop, 2003, p. 46–49

[28] Sérot, Jocelyn ; Ginhac, Dominique: Skeletons for parallel image processing: an
overview of the SKIPPER project. En: Parallel Computing 28 (2002), Dezember, Nr.
12, p. 1685–1708. – ISSN 0167–8191

[29] S.J., Young ; etal: Implementing collaboratory for microscopic digital anatomy. En:
Int. Journal of Supercomputer Applications and High Performance Computing (1996),
p. 170–181

[30] Taubman, D.: Kakadu: A comprehensive, heavily optimized, fully compliant software
toolkit for JPEG2000 developers. (2002)

[31] Thanh, Tran D. ; Mohan, Subaji ; Choi, Eunmi ; Kim, SangBum ; Kim, Pilsung: A
Taxonomy and Survey on Distributed File Systems. En: 2008 Fourth International Con-
ference on Networked Computing and Advanced Information Management. Gyeongju,
South Korea, 2008, p. 144–149

[32] Triola, Marc ; Holloway, William: Enhanced virtual microscopy for collaborative
education. En: BMC Medical Education 11 (2011), Nr. 1, p. 4. – ISSN 1472–6920
30 Bibliography

[33] Tuominen, Vilppu ; Isola, Jorma: The Application of JPEG2000 in Virtual Mi-
croscopy. En: Journal of Digital Imaging 22 (2009), Juni, Nr. 3, p. 250–258

[34] Wallace, G.K.: The JPEG still picture compression standard. En: Consumer Elec-
tronics, IEEE Transactions on 38 (1992), Nr. 1, p. xviii–xxxiv. – ISSN 0098–3063

[35] Wyner, A. ; Ziv, J.: The rate-distortion function for source coding with side informa-
tion at the decoder. En: Information Theory, IEEE Transactions on 22 (1976), Nr. 1,
p. 1–10. – ISSN 0018–9448

También podría gustarte