Pfinder is implemented on the SGI architecture using the VL (Video Library)
interface. A typical frame-rate on sixteenth resolution (160x120 pixel)
frames is 10Hz using a 200MHz R4400 processor Indy with Vino Video. The
same code also runs on the Indigo platform with Galileo video, but is
substantially slower. The difference in speed seems to derive from the
fact that the Indy moves video into DRAM with little CPU intervention.
The user model allows for an optimization called growing. The grow operation is allows Pfinder to touch as few uninteresting pixels as possible. By starting at model-determined seed points and expanding analysis outward, Pfinder identifies all the pixels the belong to a single connected region (given the assumption that people are connected). The algorithm for the grow is the familiar ``brush fire'' algorithm from computer graphics work[9]. Although the grow is much less efficient on a per-pixel basis, it provides an overall performance gain, as shown in Table 4.2.