You are on page 1of 10

PARALLEL

IMPLEMENTATION
IN IMAGE

OF THE CONVOLUTION
RECONSTRUCTION

METHOD

Wieslaw Lucjan Nowinski
Institute of Computer Science, Polish Academy of Sciences
P.O. Box 22, PKiN, PL 00-901 Warsaw, Poland

i. INTRODUCTION

Image

reconstruction

structure

of an

from

projections

investigated

object

allows

imaging

from appropriate

description of image reconstruction methods,

the

internal

measurements.

and implementational problems are to be found, e.g.,

in [1,2,3,4].

greatest

is

application

tomography
function
passed

(CT).

called

through

CT

is

The most
method

image

an

reconstruction

reconstruction

from measurements

of

investigated

object.

The

emanations

density

The

computerized

computer-assisted

"density"

spatial distribution
the emanation

of

A

their mathematical basis,

of

some

that

have

represents

of some physical property of the object,

the

whereas

is any physical process being used to study the object.

widely

used

image

(called

also

the

reconstruction
convolution

method

is the

backprojection

convolution
method).

It

reconstructs an image in two steps: convolution of the projection data
with

a given

convolving

function

(filtration),

and backprojection

of

the convolved projection data.
In many medical

and

industrial

situations

a conventional

is unsuitable to collect the projection data due to
or deformation
tomography

new

generating

fast

data,

of

an

investigated

scanners
scans.

have
These

been

object.

scanners

rapid translation

Therefore,

developed

which

produce

a

CT scanning

for high
are

lot

speed

capable

of

of

measurement

so high speed tomography demands parallel processing.

The paper
describe

is concerned with parallelism
parallelism

parallelism
Moreover,

specific

some

been presented.

in the convolution method.

the

occam

language

to

image

reconstruction

formulations

of

A simultaneous

the

is

parallel

used

[6].

have

The

been

convolution

forms

To
of

reviewed.

method

have

access either to the projection memory

or to the image memory has been discussed.

Finally,

two architectures

for the parallel convolution method have been proposed.

356

2. DEFINITIONS OF THE PARALLELISM FORMS

Image

reconstruction

results
and

from the

image

data

spaces.

decomposing

a

is

open

to

structure

A

form

given

various

regularities

of

(parent)

forms

both

parallelism
process

of

parallelism.

in the

projection

determines

into

It

a

way

concurrent

of

component

processes.
In

[5]

the

following

reconstruction
projection

have

basic

been

parallelism,

forms

defined:

ray

of

parallelism

pixel

(voxel)

parallelism,

operation

parallelism.

parallelism,

and

in

image

Below, we will review them briefly.
Pixel

(voxel)

parallelism

discretized image space.
(voxel),

and

calculation

let
of

the

the

exploits

function

density

replicated PAR pixel

the

regularity

of

data

in

the

Let us assign a component process to a pixel
of

of

the

this

component

pixel

process

(voxel).

be

By

the

using

a

(voxel) parallelism has been defined as follows

PAR j = 0 FOR J
process.for.pixel(j)
where

J

denotes

the

process.for.pixel(j)
Projection
the

discretized

projection

data

form

process

to

component

process

be

of

an
a

If

space
array

taking

of

(voxels),

and

the

structure
into

and

let

processing.

Let

the

the measurement process,

of

data

that

us

assign

in
the
a

of

the

denotes

the

processes

the

M

process.for.projection(m)

geometry

(voxel).

function

Suppose

and

regularity

account

projections.

projection,

projection

projections,

projection.

throughout

pixels

calculates the density of the j-th pixel

component
number

of

parallelism makes use of the data

measurement

m-th

number

collection

is

projection parallelism

constant

is defined

in the following way
PAR m = 0 FOR M
process.for.projection(m)
Otherwise the above definition can be rewritten as
PAR
{process.for.projection}
Ray

parallelism

exploits

the

regularity

of

data

in

the

discretized

projection space taking into account that the measurement data form an
array of ray sums.

In this case a component process

ray

the

to

calculate

actualization

influence

of

the

ray

sum

is assigned to a
on

of the pixels through which the ray passes.

the

density

Hence,

the

357

form has b e e n d e f i n e d as follows
P A R i = 0 FOR I
process, for. ray (i)
where

I d e n o t e s the n u m b e r of rays,

and p r o c e s s . f o r . r a y ( i )

actualizes

the d e n s i t i e s of t h o s e p i x e l s t h r o u g h w h i c h the i-th ray passes.
Operation

parallelism

operations.

refers

In general,

it can

to

all

be

forms

described

of

by

concurrency

K various

for

processes,

each performing different functions
PAR
process. 1
process. 2
process. K
Based

on

the

algorithms
attainable

introduced

have
over

been

forms,

many

formulated.

sequential

parallel

image

Moreover,

processing

by

reconstruction

the

using

gain

these

forms

in

speed

has

been

d e t e r m i n e d in [5].

3. P A R A L L E L C O N V O L U T I O N M E T H O D

The

convolution

projections

and

projections

method

projection

backprojection

contains

backprojection.

can

two

In

parallelism

make

use

of

operations:

order

to

may

pixel,

filtration

perform

be

filtration

exploited,

projection,

or

of
of

whereas
operation

parallelisms.
The

convolution

method

in

which

backprojection

is

parallelized

by

pixel p a r a l l e l i s m can be e x p r e s s e d as follows
PROC c o n v o l u t i o n . m e t h o d . p i x e l . p a r a l l e l i s m
INT m, j :
SEQ
PAR m = 0 FOR M
projection.filtration(m)
PAR j = 0 FOR J
backproj ection, o p e r a t i o n (j)

Exploiting projection parallelism

(VAL INT M, J)

in o r d e r to p e r f o r m b a c k p r o j e c t i o n ,

the c o n v o l u t i o n m e t h o d can be f o r m u l a t e d as
PROC c o n v o l u t i o n . m e t h o d . p r o j e c t i o n . p a r a l l e l i s m
INT m, j :
SEQ
PAR m = 0 FOR M

(VAL INT M, J)

358

projection.filtration(m)
PAR m = 0 FOR M
SEQ j = 0 FOR J
actualize.density(m,j)

The

actualize.density(m,j)

projection

the d e n s i t y

procedure

actualization

calculates

for

of the j-th pixel.

the

This

m-th

approach

is possible due to superposition.
In addition,

the d i s c r e t i z e d

backprojection

by using operation parallelism,
be calculated

starts.

process,

However,

vector

is known before

in many cases

are collected

so

of this o p e r a t o r can

of the c o n v o l u t i o n m e t h o d are possible p r o v i d e d

that the complete m e a s u r e m e n t
projections

as each component

in parallel.

The above formulations
process

operator can be d e c o m p o s e d

projection

throughout

in commercial

the d u r a t i o n

parallelism

filtration of p r o j e c t i o n s

(e.g.,
does

a reconstruction

not

scanners)

of a r e c o n s t r u c t i o n

exist.

In

this

case

has to be performed s e q u e n t i a l l y

PROC c o n v o l u t i o n . m e t h o d . s e q u e n t i a l . p r o j e c t i o n s
(VAL INT M, J)
INT m, j :
SEQ m = 0 FOR M
SEQ
projection.filtration(m)
PAR j = 0 FOR J
backprojection.operation.single.projection(m,j)

The

backprojection.operation.single.projection(m,j)
j-th

pixel's

the

projection.

Note that the b a c k p r o j e c t i o n . o p e r a t i o n . s i n g l e . p r o j e c t i o n ( )

and actualize.density()
differ

only

in the

procedures

way

procedure

the

density

location

in the

image

due to a s i m u l t a n e o u s

density

procedure

actualizes

of

by

the

m-th

p e r f o r m the same calculations.

accessing

actualization
memory,

contributed

whereas

the

image

array.

be

assigned

may

in the

latter

In
it

the
to

is

a

They

former
given

forbidden

access to this location by many processes.

4. CONFLICT FREE M E M O R Y ACCESS

In

the

method

previous
have

been

section

some

formulated.

procedures
In these

form the arrays of similar processes.

of

the

procedures

parallel

convolution

component

These processes,

processes

however,

cannot

359

be

considered

simultaneous
section

to

w e will

avoid

a

used.

A

which

can

synchronous,
either

discuss

so as to o b t a i n
To

be

access

parallel
be

memory

accessed

the

Then,

module

array

by m o d u l e
memory

pixel

indices

index,

Assume

above

by

a

In this

procedures

memories

memory
that

be

each

memory

address

procedures

should

modules,

the

the length A.
the

of

consists

Let b = 0..B-I

within

formulated

and addresses.

It

however,

location.

Therefore,

conflict

free

we w i l l

access

the

several

address)

parallelism.

image memory,

restricting

parallel

0..A-I

in the

introduced

a module.

above)

It r e q u i r e s

should

to d e t e r m i n e

- array mapping

(module
Consider

of

a =

is

image memory.

reformulate

each h a v i n g

and

or

access.

access

consists

(used

a following

and

independently.

(blocks),

be r e p l a c e d

whole

problem

memory

index,

indices

asynchronism

free m e m o r y

simultaneous

of B m e m o r y m o d u l e s
denote

this

a conflic

as

to the p r o j e c t i o n

degree

-> a r r a y

demands

a

index

.

simultaneous

each c o m p o n e n t

process

redefine

parallelism

to

the

of

pixel

pixel

image

memory.

parallelism

access

writes

to

the

to just one

so as to get a

It

can

be

to

the

number

in

a

done
of

by

memory

modules
SEQ a = 0 FOR A
PAR b = 0 F O R B
process.for.pixel(a+(b*A))
Of

course,

a

parallelism.
procedure

higher

value

Hence,

the

of

B

results

higher

degree

of

convolution.method.pixel.parallelism()

w i t h no s i m u l t a n e o u s

image m e m o r y

access

can be r e w r i t t e n

as

PROC c o n v o l u t i o n . p i x e l . c o n f l i c t . f r e e . i m a g e . m e m o r y . a c c e s s ( V A L
INT m, a, b :
SEQ
PAR m = 0 F O R M
projection.filtration(m)
SEQ a = 0 F O R A
PAR b = 0 FOR B
backprojection.operation(a+(b*A))

INT M,A,B)

Consider

processes

projection

parallelism.

simultaneously

require

memory.

that

i.e.,
index.

Assume
J

=

M

A.

an

the

access

image

Furthermore,

In
to

suppose

Hence,

the

image m e m o r y - i m a g e

Let Jm d e n o t e

the

image a r r a y

attain

a conflict

free

should

be

so as to

shifted

a

memory

index

image m e m o r y
restrict

this

case

given

location

consists
ms =

of

0..M-I

array mapping
for the m-th
access

M

in

the

memory

denotes

image

modules,

the

module

is:

j = a + m Ao
s
c o m p o n e n t process. To

the indices

an a c c e s s

M

of

any

Jm' m = O..M-I,
process

to

just

360

one m e m o r y

module

image m e m o r y

Jm =
Thus,

the

at t h e

- image

s a m e time.

array

It c a n b e a c h i e v e d

mapping

for t h e m - t h

[mA + a + m s A ] m o d J =

convolution

can be r e w r i t t e n

procedure

[a +

making

by defining

component

process

(m+ms)A ] mod J

use

of

the
as

.

projection

parallelism

as f o l l o w s

PROC

convolution.projection.conflict.free.image.memory.*
* a c c e s s ( V A L I N T M, A)
INT m, ms, a :
SEQ
PAR m = 0 FOR M
projection.filtration(m)
PAR m = 0 FOR M
SEQ m
= 0 FOR M
SEQSa = 0 FOR A
backprojection.operation.single.projection(m,
(a+(m+ms)*A) R E M (A,M))

Note

that

the

backprojection.operation.single.projection()

in

this

case

instead

of

the

actualize.density()

procedure

procedure

may

be

used.

Let

us

consider

is u s e d

that

with

respect

it

either

is e a s y
to

to

projection

filtration
avoid

filtration

memory

of p r o j e c t i o n s

a simultaneous

by

access.

storing

each

This

memory

or b a c k p r o j e c t i o n .

projection

memory

projection

in

a

access

separate

module.

Consider
cases

simultaneous

to p e r f o r m

Note

memory

a

backprojection

J > M and then

avoided.

However,

B = M we

can

parallelized

a simultaneous

making

obtain

use

of

a conflict

by

pixel

projection
restricted

free

parallelism.
memory
pixel

projection

In

access

parallelism

memory

most

cannot

access.

be

with

Then

we

have
PROC convolution.pixel.conflict.free.memory.access
(VAL INT M, A)
INT m, a :
SEQ
PAR m = 0 FOR M
projection.filtration(m)
SEQ a = 0 F O R A
PAR m = 0 FOR M
backprojection.conflict.free.projection.memory.access(a,m)

In

the

backprojection

the values

of t h e

are different
In the
is

no

operation

summation

for all

we

index

concurrently

convolution

method

simultaneous

image

must

that

the values

processed

parallelized
memory

assure

(i.e.,

by

access,

the

same

time

indices)

pixels.

operation
as

at

of m o d u l e

all

parallelism

pixels

are

there

processed

361

sequentially.
hand,

A

simultaneous

projection

memory

access,

can e a s i l y be a v o i d e d by s t o r i n g p r o j e c t i o n s

on

the

other

in s e p a r a t e m e m o r y

modules.

Let

us

consider

parallelized
fact

that

by

the

the

convolution

by p r o j e c t i o n
both

parallelism.

filtration

same

method

form

and

in

which

Then,

it

of

Therefore,

is w o r t h

backprojection

are

parallelism.

backprojection.operation.single.projection()
single p r o j e c t i o n .

backprojection
noting

the

parallelized

Moreover,

procedure

is

demands

the
just

a

the c o n v o l u t i o n m e t h o d can be f o r m u l a t e d

as follows
PROC c o n v o l u t i o n . p r o j e c t i o n . c o n f l i c t . f r e e . m e m o r y . a c c e s s (VAL INT M, A)
INT ms, m, a :
PAR m = 0 FOR M
SEQ
projection.filtration(m)
SEQ m = 0 FOR M
SEQ~a = 0 FOR A
backprojection.operation.single.projection(m,
(a+(m+ms)*A) REM (A,M))

This f o r m u l a t i o n of the c o n v o l u t i o n m e t h o d has a v e r y c l e a r structure.
Namely,

it

consists

of

an

array

of

similar

processes.

In

addition,

t h e r e is a s i m u l t a n e o u s access n e i t h e r to the p r o j e c t i o n m e m o r y nor to
the

image memory.

Therefore,

the

component

processes

are

synchronous

and the m e t h o d may be i m p l e m e n t e d on a S I M D architecture.

5. A R C H I T E C T U R E S

Based

on

the

FOR THE P A R A L L E L C O N V O L U T I O N M E T H O D

above

considerations

we

will

propose

two

architectures

s u i t a b l e for the p a r a l l e l c o n v o l u t i o n method.

Let

us

consider

parallelized
method

the

convolution

by p r o j e c t i o n

consists

of an a r r a y

p r o c e s s to a processor.

method

parallelism.

Thus,

in
The

which
final

of s i m i l a r processes.
the p r o c e s s o r s

backprojection
formulation
Assign

execute

a SIMD m o d e the same p r o g r a m on d i f f e r e n t data.

is

of the

a component

synchronously

in

For the m - t h p r o c e s s o r

the p r o g r a m c o n s i s t s of the f o l l o w i n g s e q u e n c e of instructions:

362
projection.filtration(m)
SEQ m = 0 FOR M
SEQSa = 0 FOR A
backprojection.operation.single.projection(m,
(a+(m+ms)*A) R E M
Note that

each p r o c e s s o r demands

p r o j e c t i o n memory.

an access

(A,M))

just to one m o d u l e

of the

Therefore, we can p r o v i d e the p r o c e s s o r s w i t h local

m e m o r i e s so that the m - t h p r o j e c t i o n m e m o r y m o d u l e PM m is c o n n e c t e d to
the m - t h

processor

Pm"

among local memories.

This

be kept in global memory,
whole

image

m = O..M-I,
The c o m p l e t e
iterations.

way

a measurement

A reconstructed

memory.

vector

is d i s t r i b u t e d

image, on the o t h e r hand, has to

as each p r o c e s s o r r e q u i r e s an a c c e s s to the

Therefore,

the

image

memory

modules

IMm,

have to be a c c e s s e d by p r o c e s s o r s via a s w i t c h i n g network.
reconstructed

image

is w r i t t e n to the

image m e m o r y

in M

In the l-th iteration the s w i t c h i n g n e t w o r k links the m - t h

p r o c e s s o r w i t h the
for the p a r a l l e l

(m + i) mod M image m e m o r y module.

convolution method

is p r e s e n t e d in Fig.

IPMol
...

An a r c h i t e c t u r e

exploiting projection parallelism

i.

[....pM, 1

switching

l

I,

I

network

l, IMM'I

F i g u r e i. An a r c h i t e c t u r e for the p a r a l l e l c o n v o l u t i o n
method exploiting projection parallelism

363
Let us c o n s i d e r the case o p p o s i t e to the p r e v i o u s one.
that

a

measurement

reconstructed
this

image

situation

backprojection

vector
is

kept

distributed

occurs
is

is

in

parallelized

the
by

in

among

memory,

local

memories.

convolution
pixel

Namely,

global

method

parallelism.

assume

whereas
Note
in

Thus,

the

a

that
which
m-th

p r o c e s s o r e x e c u t e s the f o l l o w i n g p r o g r a m
projection.filtration(m)
SEQ a = 0 FOR A
backprojection.conflict.free.projection.memory.access(a,m)
The

projection

data

are

read

in M

iterations.

In the

the s w i t c h i n g n e t w o r k links the m - t h p r o c e s s o r w i t h the
p r o j e c t i o n m e m o r y module.

l-th

(m + i) mod M

An a r c h i t e c t u r e for the p a r a l l e l c o n v o l u t i o n

m e t h o d m a k i n g use of pixel p a r a l l e l i s m is p r e s e n t e d in Fig.

PM1

PMo

iteration

2.

PMM-I I

switching network

IM° 1

I

IMI

,,,, I M M - t

F i g u r e 2. An a r c h i t e c t u r e for the p a r a l l e l c o n v o l u t i o n
m e t h o d m a k i n g use of pixel p a r a l l e l i s m

Both

architectures

presented

t h e y c o n t a i n M processors,

above

have

the

same

components,

M p r o j e c t i o n m e m o r y modules,

i.e.,

M image m e m o r y

364

modules,
perform

and
the

the

switching

same

functions,

network.
i.e.,

Furthermore,
filtration

the

of

processors

projections

and

calculation of the density for all pixels. Note that the architectures
allow to

attain

times

for

these

common

these

the

same

sequential

features,

there

architectures.

parallelism
density,

speedup

M

and parallel

exists

The

sums

the

contributions

the

architecture

the

requires

times

M

complete

and, consequently,

more

density.
accesses

an
of

the

making
the

the

memory

equal.

difference

projections
use

image

of

the

of

between

projection
to

pixel
former

memory

access

In spite

exploiting

Therefore,
to

that
are

essential

architecture

whereas

calculates

provided

processing

than

the

image

parallelism
architecture
the

latter

results in slower reconstruction.

REFERENCES

[i] HERMAN,
G.T.
(ed.):
Image Reconstruction
from
Projections.
Implementation and Applications. Springer-Verlag, Berlin
1979.
[2] HERMAN,
G.T.:
Image
Reconstruction
from
Projections.
The
Fundamentals of Computerized Tomography. Academic Press, New York
1980.
[3] NATTERER, F.: The Mathematics of Computerized Tomography.
New York 1986.

Willey,

[4] NOWINSKI, W.Lo: Image reconstruction methods and a tool for their
investigation. Journal of New Generation Computer Systems, Vol. i,
No. 4, 1988, 327-352.
[5] NOWI~SKI, W.L.: Some notes on parallelism in image reconstruction.
Institute of Computer Science of Polish Academy
of Sciences
Reports, 652, 1989, 1-52.
[6J POUTAIN, D.: A tutorial introduction to occam
Ltd., 1987.

programming.

Inmos