In this paper, we describe a software-based MPEG-4 video encoder which is i
mplemented using parallel processing on a cluster of workstations collectiv
ely working as a virtual machine. The contributions of our work are as foll
ows. First, a hierarchical Petri-nets-based modeling methodology is propose
d to capture the spatiotemporal relationships among multiple objects at dif
ferent levels of an MPEG-4 video sequence, Second, a scheduling algorithm i
s proposed to assign video objects to workstations for encoding in parallel
, The algorithm determines the execution order of video objects, ensures th
at the synchronization requirements among them are enforced and that presen
tation deadlines are met, Third, a dynamic partitioning scheme is proposed
which divides an object among multiple workstations to extract additional p
arallelism, The scheme achieves load balancing among the workstations with
a low overhead, The striking feature of our encoder is that it adjusts the
allocation and partitioning of objects automatically according to the dynam
ic variations in the video object behavior. We have made various additional
software optimizations to further speed up the computation. The performanc
e of the encoder can scale according to the number of workstations used. Wi
th 20 workstations, the encoder yields an encoding rate higher than real ti
me, allowing the encoding of multiple sequences simultaneously.