Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
IMPLEMENTATION
IN IMAGE
OF THE CONVOLUTION
RECONSTRUCTION
METHOD
i. INTRODUCTION
Image
reconstruction
structure
of an
from
projections
investigated
object
allows
imaging
from appropriate
the
internal
measurements.
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
of
some
that
have
represents
the
whereas
widely
used
image
(called
also
the
reconstruction
convolution
method
is the
backprojection
convolution
method).
It
a given
convolving
function
(filtration),
and backprojection
of
and
industrial
situations
a conventional
new
generating
fast
data,
of
an
investigated
scanners
scans.
have
These
been
object.
scanners
rapid translation
Therefore,
developed
which
produce
CT scanning
for high
are
lot
speed
capable
of
of
measurement
The paper
describe
parallelism
Moreover,
specific
some
been presented.
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
Finally,
two architectures
356
Image
reconstruction
results
and
from the
image
data
spaces.
decomposing
is
open
to
structure
form
given
various
regularities
of
(parent)
forms
both
parallelism
process
of
parallelism.
in the
projection
determines
into
It
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
(voxel)
parallelism
and
calculation
let
of
the
the
exploits
function
density
the
regularity
of
data
in
the
of
the
this
component
pixel
process
(voxel).
be
By
the
using
PAR j = 0 FOR J
process.for.pixel(j)
where
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
of
data
that
us
assign
in
the
a
of
the
denotes
the
processes
the
process.for.projection(m)
geometry
(voxel).
function
Suppose
and
regularity
account
projections.
projection,
projection
projections,
projection.
throughout
pixels
component
number
of
measurement
m-th
number
collection
is
projection parallelism
constant
is defined
parallelism
exploits
the
regularity
of
data
in
the
discretized
projection space taking into account that the measurement data form an
array of ray sums.
ray
the
to
calculate
actualization
influence
of
the
ray
sum
is assigned to a
on
the
density
Hence,
the
357
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
parallelism
operations.
refers
In general,
it can
to
all
be
forms
described
of
by
concurrency
K various
for
processes,
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
(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
the
This
m-th
approach
the d i s c r e t i z e d
backprojection
starts.
process,
However,
vector
is known before
in many cases
are collected
so
of this o p e r a t o r can
as each component
in parallel.
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.
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
accessing
actualization
memory,
contributed
whereas
the
image
array.
be
assigned
may
in the
latter
In
it
the
to
is
They
former
given
forbidden
In
the
method
previous
have
been
section
some
formulated.
procedures
In these
of
the
procedures
parallel
convolution
component
These processes,
processes
however,
cannot
359
be
considered
simultaneous
section
to
w e will
avoid
used.
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
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
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
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,
parallelism.
procedure
higher
value
Hence,
the
of
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
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
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
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
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
access
separate
module.
Consider
cases
simultaneous
to p e r f o r m
Note
memory
backprojection
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,
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
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))
it
consists
of
an
array
of
similar
processes.
In
addition,
image memory.
Therefore,
the
component
processes
are
synchronous
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
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
is
of the
a component
synchronously
in
For the m - t h p r o c e s s o r
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
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"
This
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
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,
image
is w r i t t e n to the
image m e m o r y
in M
p r o c e s s o r w i t h the
for the p a r a l l e l
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
i.
[....pM, 1
switching
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
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
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
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
PM1
PMo
iteration
2.
PMM-I I
switching network
IM 1
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
and parallel
exists
The
sums
the
contributions
the
architecture
the
requires
times
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
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