A discrete Gibbs random field (GRF) is specified by a probability mass function of the image as follows:
where is the energy function, and
, over all
images; G being the number of gray levels, and the image is
of size
. Except in very special
circumstances, it is not feasible to compute Z. A relaxation-type
algorithm described in [14] simulates a Markov chain through an
iterative procedure that re-adjusts the gray levels at pixel locations
during each iteration. This algorithm sequentially initializes the
value of each pixel using a uniform distribution. Then a single pixel
location is selected at random, and using the conditional distribution
that describes the Markov chain, the new gray level at that location
is selected, dependent only upon the gray levels of the pixels in its
local neighborhood. The sequential algorithm terminates after a given
number of iterations.
The sequential algorithm to generate a Gibbs random field described in [14] and [17] are used as a basis for our parallel algorithm. We introduce some terminology before presenting the parallel algorithm.
The neighborhood model N of a pixel is shown in
Figure 4. For all the algorithms given in this paper, we
use a symmetric neighborhood which is half the size of N.
This implies that if the vector
, then
, but only one of
is in
. Each element of array
is taken to represent the parameter associated with its corresponding
element in
. We use the notation
to represent the
gray level of the image at pixel location
.
Our Gibbs random field is generated using a simulated annealing type
process. For an image with G gray levels, the probability is binomial with parameter
, and number of trials G-1. The array
{T} is given in the following equation for a first-order model:
and is a weighted sum of neighboring pixels at each pixel location. Additional examples of {T} for higher order models may be found in [14].
This algorithm is ideal for parallelization. The calculation of {T} requires uniform communications between local processing elements, and all other operations needed in the algorithm are data independent, uniform at each pixel location, scalable, and simple. The parallel algorithm is as follows:
Figure: Isotropic Inhibition Texture using Gibbs Sampler (Texture 9b from [14]).
An example of a binary synthetic texture generated by the Gibbs Sampler is given in Figure 5.
With processing elements, and within each
iteration, step 2.1 can be executed in O
computational steps and O
communication
complexity, and steps 2.3 and 2.4 in O
computational time, yielding a computation complexity of
and communication complexity of
per iteration for a problem size of .
Table 1 shows the timings of a binary Gibbs sampler for model orders 1, 2, and 4, on the CM-2, and Table 2 shows the corresponding timings for the CM-5. Table 3 presents the timings on the CM-2 for a Gibbs sampler with fixed model order 4, but varies the number of gray levels, G. Table 4 gives the corresponding timings on the CM-5.
Table 1: Gibbs Sampler timings for a binary (G = 2) image (execution time in seconds per iteration on a CM-2 running at 7.00 MHz)
Table 2: Gibbs Sampler timings for a binary (G = 2) image (execution time in seconds per iteration on a CM-5 with vector units)
Table 3: Gibbs Sampler timings using the 4th order model and varying G (execution time in seconds per iteration on a 16k CM-2 running at 7.00 MHz)
Table 4: Gibbs Sampler timings using the 4th order model and varying G (execution time in seconds per iteration on a 32 node CM-5 with vector units)