2.1 A Subdivision Scheme for B-splines 39
value 1 at x == 0 and is zero at the remaining integer knots. However, higher-order
B-splines are not interpolatory (i.e., their limit curves do not pass through the
coefficients of
p
k
plotted on the grid
1
2
k
Z). For now, the convergence of the vectors
p
k
to the actual values of p[x] as k →∞is simply assumed. For those interested in a
proof of this fact, we suggest skipping ahead to Chapter 3, where this question is
considered in detail.
This subdivision scheme for B-splines was first documented by Chaikin [18]
(for the quadratic case) and by Lane and Riesenfeld [93] (for the general case). Lane
and Riesenfeld described a particularly elegant implementation of this subdivision
method based on the factorization of
s
m
[x] in Theorem 2.1. The subdivision mask
s
m
[x] can be written as 2(
1+x
2
)
m
. Thus, given a set of coefficients p
k−1
defined on a
coarse grid
1
2
k−1
Z, we can compute a set of coefficients p
k
defined on the fine grid
1
2
k
Z as follows:
■
Construct the generating function p
k−1
[x] from p
k−1
. Upsample p
k−1
[x] to
obtain
p
k−1
[x
2
]. Set p
k
[x] = 2p
k−1
[x
2
].
■
Update p
k
[x] m times via the recurrence p
k
[x] = (
1+x
2
)p
k
[x].
■
Extract the coefficients p
k
of the resulting generating function p
k
[x].
In geometric terms, each multiplication of
p
k
[x] by
(1+x)
2
corresponds to computing
the midpoints of adjacent vertices of the control polygon
p
k
. Thus, a single round
of subdivision for a B-spline of order
m can be expressed as upsampling followed
by
m rounds of midpoint averaging. Figure 2.9 shows an example of a single round
of subdivision for cubic B-splines implemented in this manner.
In practice, using generating functions to implement subdivision is inefficient.
A better method is to observe that the coefficient sequence for the product
s
m
[x]p
k−1
[x
2
] is simply the discrete convolution of the sequence s
m
and the up-
sampled sequence
p
k−1
. Using an algorithm such as the Fast Fourier Transform
(FFT), the discrete convolution of these two coefficient sequences can be com-
puted very quickly. (See Cormen, Leiserson, and Rivest [27] for more information
on the FFT.) More generally, upsampling and midpoint averaging can be viewed as
simple filters. Used in conjunction with wiring diagrams, these filters are a useful
tool for creating and analyzing uniform subdivision schemes. An added benefit of
the filter approach is that it is compatible with the filter bank technology used
in constructing wavelets and in multiresolution analysis. Strang and Nguyen [150]
give a nice introduction to the terminology and theory of filters. Guskov et al. [69],
Kobbelt and Schr
¨
oder [87], and Kobbelt [84] give several examples of using filter
technology to construct subdivision schemes.