recursive. Therefore, all the motion vectors are stored in leaf
nodes.
The new technique will still split a node when a motion vector
generates an error that is larger than the threshold. Before actually
creating a sub-node, error is computed based on the comparison
of the motion vector applied previous frame with the current
frame in its sub-region. Only when a sub-region has an error that
is larger than the threshold, will the corresponding sub-node be
created to calculate the new motion vector. The motion vector at
an internal node needs to be saved to skip the motion vector
computation at the part of its sub-nodes. If two out of eight subregions
do not need to compute motion vectors, the total number
of motion vectors will be less than the original method. However,
when all eight sub-regions need to calculate the motion vectors,
the motion vector at the parent of these nodes need not be stored.
Therefore, the total number of motion vector for the new
technique will never be more than the original method. The
process is recursive. Therefore, motions vectors are stored in
internal nodes and leaf nodes. The pseudo-codes for two
algorithms are shown in Figure 5 and Figure 6.
Figure 5. The pseudo-codes for original octree approach
The new technique will always perform better than the original
one. Intuitively, the new method will perform significantly better
than the original one when a small region of a frame has
complicated motion and remaining larger parts has relatively
simpler motion. In this case, larger parts can be represented with
small number of motion vectors at top levels internal nodes. Small
region of complicated motion may be represented by deep leaf
nodes. For example, in an animation where the most of vertices
are moving the same distance in one direction and vertices in a
small region are doing a complicated movement, the original
method will put the same motion vectors in a lot of leaf nodes.
However, the new technique will put the motion vector for the
simple movement of most vertices in small number of internal
nodes. This is analogous to the concept of inheritance where the
regions that do not have complicated movement can inherit the
motion vector at higher levels.
It is provable that the octree generated by two techniques are
exactly the same. The difference is where the motion vectors are
stored. In the original method, motion vectors are stored in all of
the leaf nodes. The new method stores the motion vectors on
selected internal and leaf nodes. Figure 7 and Figure 8 show how
octree may look like for two techniques. Shaded node is where
motion vectors are stored