the ends of finite knot vectors. The content of this paper is as follows. Section 2 contains the mathematical results mentioned above, while theimproved Oslo ...
1986 Society for Industrial and Applied Mathematics 012
SlAM J. NUMER. ANAL. 23, No. 3, June 1986
Vo|.
MAKING THE OSLO ALGORITHM MORE EFFICIENT* T. LYCHEf
AND
K. MORKENf
Abstract. The Oslo Algorithm is a general method for adding knots to a B-spline curve or tensor product B-spline surface. The method provides a framework in computer aided geometric design for both manipulating and rendering spine curves and surfaces, and is derived from properties of discrete B-splines. In this paper we prove that all discrete B-splines which are nonzero at a particular point can in general be considered as lower order discrete B-splines on a subset of the knots. We also give necessary and sufficient conditions for a discrete B-spline to be a continuous function of its parameters. These results are used to improve on the original Oslo algorithms.
Key words, divided differences, B-splines, subdivision AMS(MOS) subject classifications. 41A15, 65D07
1. Introduction. The Oslo Algorithm is a general method for adding knots to a B-spline curve or tensor product surface. The method provides a framework in computer aided geometric design for both manipulating and rendering spline curves and surfaces. The Oslo Algorithm was derived in [3] using the theory of discrete B-splines. In general, discrete B-splines occur as coefficients when expressing a kth order divided difference at some points as a sum of divided differences over a refinement of the original points. More specifically, suppose (tj)_oo is a nondecreasing, bi-infinite sequence of real numbers and k a positive integer. Let be a subsequence of containing at least k + 1 elements. Then for any suitable integer and a sufficiently smooth function f we have
(1.1)
(%+k-- ’i)[%,
",
Zi+k]f=
ai, k(j)(tj+k--
6)[t,
",
t+k]f.
The existence of a formula like (1.1) with nonnegative weights Oti, k(j) Oli, k,z,t(j), goes back to [7, p. 7]. Equation (1.1) is a discrete analogue of the Peano integral representation for divided differences
(1.2)
(r+k-- %)[,,
",
ri+k]f
I
Jk)(x)B"k(X) dx/(k- 1)[,
.,
where Bi, k is a B-spline of order k with knots r,. Ti+ k. For this reason the name discrete B-spline was used for a.k in [1]. With an appropriate choice off in (1.1) we obtain for all possible values of i,
(1.3)
ni, k
EJ a,,k,.,,(j) N,k,
", tJ +k- In knot refinement applications t is a new knot sequence obtained by adding knots to "r. Equation (1.3) gives the transformation from the basis {Bi, k} for splines on x to the basis {N,k} for splines on t. The existence of a formula like (1.3) follows a priori from the fact that
where/V,k is also a B-spline of order k but with knots b,"
S, span {Bi, k} c_ Sk,, span Discrete B-splines on a uniform t-sequence were introduced in [9] and studied further in [6]. The generalization to an arbitrary t-sequence was given in [1, p. 15]. * Received by the editors November 12, 1984, and in revised form May 6, 1985. Institute of Informatics, University of Oslo, Oslo 3, Norway.
"
663
664
T. LYCHE AND K.
MORKEN
The numerical value of Oli, k(j) can be computed by means of a recurrence relation similar to the recurrence relation for B-splines ([3, p. 97], see also [2] for the case of adding one knot to ,r). Several other properties of B-splines carry over to the discrete case. In particular, discrete B-splines are nonnegative and Yi ti,k(j) 1. Total positivity properties were given in [5], and in [10, p. 355] for the case of a uniform t-sequence. On the other hand, except for in the uniform case [6], [9], 10], the piecewise polynomial nature of ai.k(j) is not clear. In this paper we investigate more closely the dependence of aj, k(j) on ’j, "l’i+ k and b,’", tJ /k" We give necessary and sufficient conditions for ti,k(j) to depend continuously on these parameters, and show that for a given j the discrete B-spline ai, k(j) can in general be considered as a lower order discrete B-spline on a subset of the knots. This provides a basis for reducing the number of operations in the Oslo Algorithm. There are in fact two algorithms which qualify for the name the "Oslo Algorithm". These are called Algorithm 1 and Algorithm 2 in [3]. Since both algorithms are useful, we will refer to them as "Oslo Algorithm 1" and "Oslo Algorithm 2". We develop detailed improved versions of Oslo Algorithms 1 and 2. Algorithm 1 now uses only linear combinations of positive quantities with positive weights and is unconditionally stable. In the new Algorithm 2 only strict convex combinations of B-spline coefficients are used. We also remove some problems which can occur near the ends of finite knot vectors. The content of this paper is as follows. Section 2 contains the mathematical results mentioned above, while the improved Oslo Algorithms are given in 3. In 4 we collect some remarks.
,
2. Discrete B-splines. Let the positive integer k be given, and let t (b) be a nondecreasing bi-infinite sequence of real numbers with b < b/k for all j. Let be a subsequence of t containing at least k / 1 elements. Let
,k(Y) (y--tj/) 1 and let for any
a
(y--tj/k_) ifk>l; if k- 1;
b, b/k),
(2.1)
I.k(y)
0
if y > a, otherwise.
Let B,k and N,k denote B-splines on ,r and t respectively, right continuous and normalized to sum to 1. If b < t/k for all j, then it was shown in [1] and [3] that (1.3) holds with
ai,.,t(j) (’ri+k "ri)[’ri,
(2.2)
For convenience we also define a..,.,(j) for z
(2.3)
a,.k.,,,(j)
, "t’i+k]a,k. z+ and tj t+,
r+k](y-- tj)k+-1 if t 0
if Z,
6+k and z < r,+k, ,+k.
A number x is a strict convex combination of two numbers a and b if x Aa + (1- A)b for some weight A with 0 < A < 1. It is known that negative weights can occur in Oslo algorithm 2. However, it can be shown that these negative weights do not contribute to the final result (see remark in [4]). Nevertheless, the possibility of negative weights is somewhat annoying.
665
OSLO ALGORITHM
Here ify> b, otherwise.
We call ai, k.,t the ith discrete B-spline of order k on with knots r. In the rest of this paper it is convenient to think of j as a fixed integer. Consider tj+l,"’, tj+k- on which gg, k in (2.1) depends. These knots can be divided into two groups, the "old" knots and the "new" knots. More precisely, suppose that times
(2.4)
t+,’’’, t+k-l= Zl,’’’, Z,
Zh,
Zh
where z r" ti’’’t(J)= { lo ifr’-< z+l’otherwise.
.
Proof. We apply Leibniz’ rule for divided differences to the product dPj, k(y)= where ,k(Y) is obtained from ,k(Y) by removing the factor y-:.
(Y--),k(Y)
Arguing as in [3, p. 97] we obtain (2.9) and (2.10). lq The assumption that sc is a new knot ensures that z will be a subsequence of LEMMA 2.5. Suppose t+,. tj+k- are all new knots. Then
.,
(2.11)
r. < tj+
.
tj+k_ < T/z+
for some integer IX. Moreover Oti.k,..,(j) > 0 for
tx
k + 1,"
,
Ix,
and zero otherwise.
667
OSLO ALGORITHM
Proof. Clearly t+, # Zq for p 1, 2,..., k-1 and any integer q, for otherwise b+,’", t+k- could not all be new knots in the above sense. Since also ,r is a subsequence of t, the inequalities (2.11) follow. For the proof of the positivity we use (2.9) with t+k- and induction on k. If k= 1 and tj < tj+ then a,(j)= 1 >0 for i= denote the sequence obtained from t by reducing the number of occurrences of sr by
:
one. Since ’/’/
_-2. Consider first the case where x occurs at most k-2 times among r,. Zi+k. By the recurrence relation (2.8) we have
.,
Since
(2.23)
If X
-
P]+k-,
ak(j)
7,P
P ,,k-,
(j) +
ZSk t]+k-,) flP+ ,,k-, (j).
< Ti+k_ and z+ < "/’i+k we obtain by induction lim ak(j)
t+k-1- Z,)fl,,k-l(j) + (r+k t+k-1)fl,+l,k-l(j) a,,k(j).
Occurs
exactly k-1 times among z,.
,
Ti+ k
there are three possibilities.
’
P 0 and k-(j) remains r+k-2 < Zi+k-1 < r+k. In this case t+k-1 bounded since r < r+k-1, while /3P+l,k_l(j) fli+l,k-l(j) by induction. Hence (2.23)
(a) x
-
’
holds even in this case. (b) < x r+l Z+k 1 < Z+k. By (2.3) we have t,k,,,(j) therefore be enough to show that
(2.24)
Bi, k(X) 1. It will
i+k-r
lim
E
poo q=
a,(j)=l for r=l,2,..., k.
,
Without loss of generality we may assume that "rPq, tsPE(’riP, 7"/P+k) for q= + 1, + k- 1 and s =j,- j + k. Then precisely one of a (j), a+_, (j)
,
T. LYCHE AND K. MORKEN
670
is equal to 1. Thus (2.24) holds for r= 1. Suppose that r>_-2. By (2.8) we have i+k-r
i+k-r
q=i
q=i
[( t+,_, z)fl.,_,(j) + (’+ t+,_,)q+,,_,(j)]P i+k-r
P P + E fl,+k-,+,,r-l(J) (tJ?+r_l "t’f) pi,r_l(j) + (7"iP+k tj+r-) q=i+l
Therefore, since ty+r-1 ’rf- i+r-1
ri
P --> ’l’i+k and r,P+ tj+r-1
p-
aPq, r(j)=lim p
q
we find
i+k-r+l
i+k-r
lim
"J’i+k-r+l
a,-l(j) q
and (2.24) follows by induction.
(C) T < "/’i+1 < X--" ’/’i+2 "/’i+k" This case is similar to case (a). In order to complete the proof of the theorem, we give examples showing that ai.k(j) does not depend continuously on " and if condition (2.22) is violated, i.e., if
the number x =tj tj+k occurs k or k+ 1 times in the sequence -i,..., Z+k. Again there are three cases: (1) T, < r,+ Ti+ k X. We have a,.k(j) B,k(x) 0 since Bi, k is right continuous. Choose "rp "r and t p such that t < x and t+ x. Then by Theorem 2.2 a p,(j) 1 for all p. (2) r r+_l X < T+. This case is similar to case (i). (3) T r+k X. By definition ci,(j)=0 in this case. Choose zp and p such that 7"/p < ff’/P+k and r+q t+q for q 0,. k. Then OtPi, k(j)= 1 for all p. 1-1 The use of [10, Thm. 4.26] can be avoided if part (i) of the foregoing proof is based on (1.1) instead of (1.3). We note that Theorem 2.9 assures the continuity of a.k(j) in the cases z Zi+k-, Z+ Zi+k, and even z ’+k, as long as t < t+k.
.,
3. Algorithms. In this section the knot vectors, and t will be finite sequences. i=m m and m2 be given integers with k positive and m < m2, and let t (6) m2+k be a nondecreasing sequence of real numbers with tj < t/ for j m, m + 1,. m2. < m2-m Let x (’) "2+k i=n be a subsequence of t so that n2-n Let j { ml, m + 1, m2} be a fixed integer. We first want to give an algorithm to compute
Let k,
,
,
a,k.n,(j) for i= il, il+l,-
., i2
where
n), i2 min (/x’, n2), and/x’ and u are given by (2.7) and (2.5) respectively. These are the discrete B-splines of order k which are nonzero for a given j.2 (3.1)
il
max (/z’- v,
In any of the four situations
(3.2) (3.3) (3.4) (3.5)
t < r.,, and r,(j) > r.(n), t
.,
t+k > ’,2+k, t+k ,+k and l,(j + k) > l,( n2 + k),
In order to handle the complications near the beginning and end of the knot vectors, it is convenient to first extend "r and to bi-infinite sequences, apply the results in 3, and then restrict the range of the indices to the original, finite sequences.
671
OSLO ALGORITHM
the support of Ni, k is not properly contained in the support of Bi.k for any i n2}. Therefore ai, k,,t(j)= 0 for all in these cases. For other values of {nl, nl + 1,. j we use Theorem 2.2. For p- 0 for/=max (/z’-p+ 1, n),... ,min (/x’, n2+ v+ l-p),
(3.6)
and zero otherwise These positive c’s can be arranged in a polygonal shaped scheme. < n2 the scheme is triangular, If n + v 0 if and only if the support of N,k is properly contained in the support of Bi, k. Theorem 2.2 gives an alternative formulation and proof of this result. 5. Algorithms 1 and 2 reduce to standard B-spline algorithms in special eases. Suppose % -< x < ,+1. Algorithm 1 can be used to compute the values of all nonzero B-splines at x, of order