r+k

8 downloads 0 Views 1MB Size Report
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