A Spherical Representation of a Human Body for ... - IEEE Xplore

2 downloads 0 Views 866KB Size Report
Absmct-A three-dimensional human body model for displaying body movements on a computex graphics display is d e s c r i i . The sur- face of the body model ...
PROCEEDINGS OF THEIEEE,VOL.

1397

67, NO. 10, OCTOBER 1979

A Spherical Representation of a Human Body for Visualizing Movement NORMAN I. BADLER, JOSEPH O’ROURKE,

Absmct-A three-dimensional human body model for displaying body movements on a computex graphics display is d e s c r i i . The surface of the body model is formed from overlapping spheres, yielding a realistidy formed and shaded body image on a raster graphics display. An experimental model consisting of 310 spheres is articulated with 19 joints and 20 body segments. The properties of this model indude joints which do not deform during movement, simple hidden surface removal, and efficient edlision and contact detection. The model may also be placed in a planar polygon emironment, displayed in shaded form, and tested for cdlisions with the environment. A p plications in cnsh simulation and human movement simulation are indicated.

w

I. INTRODUCTION

UMAN movement data is collected or generated in many different disciplines. Measurements of body positions orjoint locations during movement arerecorded for further study in physiology, anthropology, kinetics, biomechanics,engineering, and dance. Computer programs simulate body movements to obtain position data where experimentation maybeexpensive or dangerous, such as in vehiclecrash studies [ 131 , [ 171, [ 281, or whereeffective automatic observation techniques are lacking, such as in dance [41, [211, [301. Visualizing human movement on a computer graphicsdisplay requires a computational model of the body with various properties. For the computer, the model should be straightforward to manipulate and display; to the observer, the result should be suitably “human” in form, properly articulated, and three dimensional. Our dissatisfaction with existing body models and “stick figure” displays led to the development of a new human model for computer displays based on a decomposition of the body into a collection of overlapping spheres [22]. The properties of this representation and the experimental implementation are discussed in the sequel. This model offers both computer and observer advantages: the display appears to preserve the form, surfaces, and three-dimensionality of the body;movements are defined in terms of angle changes at each joint;contactsand collisions between the body and itself or an environment maybe detected and described; and the image can be produced on a raster display or animated in real time ona suitable vector display. We shall begin by describing the body model and its formation and then follow with the various properties of the spheri-

Manuscript received August 4, 1978; revised January 24,1979. This work was supported in part by the National Science Foundation under Grants ENG75-10535 and MCS76-19464, and underONRContract N00014-78-C-0102. N. I. Badler and J. O’Rourke are with the Department of Computer and Information Science, Moore School of Electrical Engheering/DZ, University of Penmyivanii, Philadelphia, PA 19104. H. Toltzis is with the Goad Corporation, Cleveland, OH.

AND

HASIDA TOLTZIS

cal representation, such as display algorithms and collision detection. We conclude with a pair of applications demonstrating theusefulness and versatility of the model.

II. THE BODY MODEL The body model consists of two structures: a “skeleton” of joints and connecting segments, and a “skin” of overlapping spheres. Thejoint and segment structure for thecurrent model is adaptedfrom body data describing the “average” Navy pilot [ 141. There is nothing in the model, however, which depends in any way on the lengths of the various segments; in fact, the segment lengths may be altered t o model different physiques. The connectivity of any body is the same, and this tree structure is exploited in the algorithms which position the model. Each joint in the model approximates a corresponding human joint tosimplify the positioning computation: the joint is fixed in position relative to the segments it articulates, and each joint connects at most two segments. The first condition means that a sliding joint such as the shoulder or knee may not be modeled with great accuracy, but this has not been a problem in the applications considered so far (Section VI). The second condition constrains thedatastructure representing the body tree and is otherwise of no consequence. Presently the body model consists of 20 segments and 19 joints without articulating fingers and toes, although nothing in the methodology precludes extension to these joints. For computational simplicity the spine is approximated byfive joints along its length (pelvis, lower torso, center torso, neck, and head) rather than onefor each vertebra. In addition, an “invisible”segment of varying length relates the body t o the coordinate system of the environment. The model is organized into a tree structure with segments as nodes and joints as edges. One segment is designatedas the reference segment and becomes the root of the tree. This effectively permits the visualization of movements of the body relative to any fxed coordinate reference frame, namely that of the referencesegment. Normally the “invisible”segment connecting the body to the environment is the reference so that the body moves relative to the world. If, for example, the lower portion of the spine were made the reference segment, movements of the legs would be observed relative to it, in effect fixing the position of the pelvis. Anotherfeature of the tree organization is the ability to specify a subset of the set of segments as a logical window (as opposed to thephysical viewing window on theactual display). This restricts the body model to consist only of segments within the logicalwindow or those along a path from the reference segment t o some segment within the logical window. For example, if the reference segment is the lower part of the

0018-9219/79/1000-1397500.75 0 1979 IEEE

1398

torso, and if the left and right feet are specifled as the logical window, then movements of both legs (feet, calves, thighs, and hips) will be computed and displayed. The remainder of the body tree beyond the lower torso will be ignored. This speeds the computations and permits obsemtion of individual move ments in isolation. The shape and size of each segment is described independently of the other segments. Each segment contains a local coordinate system which is rigidly embeddedwithin it and moves together with it. The origin of this coordinate system is arbitrarily chosen to be at thecenter of gravity of its segment. Each reference system is oriented so that with the body standing upright, feet flat, toes forward, hands at sides, and p h toward thighs, the z-axis points upward, the x-axis points forward, and the y-axis points to the left. (Our “standard” position differs from the usual anatomical “standard” position in the orientation of the palms. We have chosen t o follow the conventions of Labanotation [ 181 for reasons which shall b e come apparent in Section VI.) Using the local coordinates of a segment,jointlocationsandtheshape of the segment are determined. In particular, each joint is completely specified by giving its coordinates in the coordinate system of the adjacent segment closer to theroot of the body tree. A table is associated with each segment specifying the local directions for “back,” “front,” “top,” “bottom,” “left,” and “right.” This permits any point on a segment to be “named” by a local direction independent of the segment‘s orientation in space. For example, the “back” to the right hand segment lies in the local direction -y of the right hand coordinate system. (Inourstandardposition,the back of the right hand faces right, and this direction is -y in the local coordinatesystem.)The“back” of thehand is the m e localdirection regardless of the global orientation of the hand. This feature is used to describe the points of collision or contact on a segment in termswhich are meaningN for each segment. To position the body model, the global coordinates of all of the segments selected by the logical window must be computed.The global coordinates lie in the (local)coordinate system of the reference segment. Each segment is related to its neighbors in the body tree by a rotation matrix encoding the roll, pitch, and yaw angles of each joint. By formulating the rotation as a 4 X 4 homogeneous matrix, and by similarly representing the relation between adjacent joints as a 4 x 4 homogeneous translation matrix, theglobal coordinates of any joint of the body are computed by chaining (multiplying) these local transformations along the paths of the body tree from the root node. The result is a single 4 X 4 matrix which, when multiplied by the coordinates of a point on the segment, yieldsthe point’s coordinateswithrespect to thereference segment. When successive positions of the body must be computed for an animation, some computation is avoided if the orientation of a joint is unchanged. If the segment lengths do not change, then the transformations associated with severalsegments and joints will not change either. Since thepartial products of the matrix chaining process are saved at each joint, only those transformations need be recomputed which lie at or beyond the changed joint.

PROCEEDINGS OF THE IEEE, VOL. 67, NO. 10, OCTOBER 1979

Fig 1. Human body model drawn with spheres projected 89 cirdea

to be desired in visual properties: it lacks solidity, it cannot occlude itself, and it may often rotate ambiguously. Two r e cent survey articles [ 21, [4] have motivated an alternative surface model based on overlapping spheres. Each segment of the body is given a “skin” of several overlapping spheres defining its approximate shape in threedimensions. Since the majorbodyparts and featuresare mostly convex or “blobby,” curved surfaces maybe rather realistically modeled. Our currentmodel consists of about 310 spheres (Fig. 1). These were generatedwith an interactive sphere editing program with an artist’s assistance [ 221. The sphere fitting process is aided by an algorithm which converts any number of p h a r cross section outlines into a set of a p proximating spheres depending on a given tolerance of fit and maximum and minimum sphere sizes [23].The resulting spheres are manually adjusted for better appearance. A newer model has been designed with better anatomical structure using about 600 spheres, but an adequate model need only contain as few as 60 spheres to demonstrate an interpretableform. In comparison, models based on 300 and 3000 surface lines have been prepared by Fetter [ 121, and about 300 planar patches areused in a realistic model of a head byParke [ 25 I . The sphere set defined for each segment is described relative to the segment’s local coordinate system, and thus is rigidly carried along on it. Positioning the segment positions all the spheres: the chained transformation need only be multiplied by each spherecenter to establish its global position.The radius of the sphere is not changed. The spheres of adjacent segments may overlap, so that the rotation of a joint causes the surface area of the overlapped spheres to be continuouslyexposed.The segments always appearsmoothlyjoined,yetnocomputationaladjustment is necessary to effect surface closure (as is necessary in some systems [ 27]), nor will the surface be deformed by the changing relationshipbetweensurfacepoints near thejoint.The latter arises in an otherwise excellent animationsystem using a planar polygon representation for ahand by Catmull [ 8 I . m.MODELING THE BODY SHAPE An exception to the application of the final chained transOnce the body model is positioned, it is a simple matter to formation to every sphere center in the segment arises when draw the segments as lines connecting the final joint positions. the segment itself is twisted along itsjoint-to-joint axis. In However, this three-dimensional stick figure [ 7 ] leaves much that case, a sphere center is transformed by a rotation propor-

BADLER et al.: A REPRESENTATION SPHERICAL

OF‘A HUMAN BODY

1399

tional to the distance of its center along the twist axis;that is, one end of the segment is not rotated about the axis at all, whife the other end is rotated by the twist amount. The effect is most apparent when the segment is not too circular in cross section along the axis. In the present model, varying the twist does not effect the angle of the segment at the next outward joint.

N.DISPLAYING THE SPHERICAL MODEL Spheres are very attractive computationally; they appearthe same shape from any viewing position, their boundaries are easy to compute [ 11, [ 161, and they are very compact to representinadatastructure(center ( x , y , z ) , radius, and possibly color). When asphere is projected onto atwodimensional graphic viewing plane, it always appears as a circle or disk. In an orthogonal projection the radii remain fured, while under a perspective transformation the radii are reduced in inverse proportion tothedepth of thecenterfrom the observer. The display is enhanced considerably by shading the spheres forsolidityand by removing hidden parts of the image to emphasize its three dimensionality. The spherical representationofferseconomicalhiddensurface removal onaraster graphic display. After positioning the body and its component spheres and transforming into the viewing coordinate system hiddensurface removal may be effected by avariety of methods. The simplest is to use a “depth buffer” for the creation of the final image [ 191, 1201. The screen is represented by a twdimensional array of pairs of numbers. At each array positiontheintensity and depth(from the observer’s eye position) of the displayed point of the model is stored. Initially the array contains zero intensity and maximum depth values at each point. Each sphere is then written into the depth buffer as a solid disk, using the value of the frontmost point as thedepth value. As each sphere is processed (the order is arbitrary), only those picture elements with a lesser (closer) depth are inserted by storing their intensity in the array cell: thus parts of spheres which are bidden by closer spheres are overwritten. By changing the grayvalueof the disk according to its depthin space (making closer spheres lighter anddistantspheresdarker),depth cueing and shading effects are generated. Provided the body decomposition is f i e enough, overlapping spheres will tend to be close in depth and, therefore, will have nearly identical grayvalues. Theresult is a quite smoothly shaded picture (Fig. 2). Notice that the surface of each sphere is not shaded to appear curved [ 261 ;it is sufficient to render the disk uniformly. In fact, the result of rendering the spheres as “true” spheres is quite unattractive for the body model. Because thedepthbuffer is afinitearray,a disk written into the array assumes a stepped appearance. These stepped edges are “aliases” of the true edge and disrupt the essential continuity of the curved boundary. The process of eliminating this raster effect is called “anti-aliasing” and has been solved in various ways [ 101, [ 111. A simple solution for the case of diskswas developed to enhance the appearance of the body model. Consider the drawing of a disk represented as a realvalued center and radius. Imagine each array cell as a square so that the image is completelypartitioned into squares. A disk covers a cell completely or partially: if completely, then that cell receives the full intensity of the disk; if only partially, then the intensity written is reduced in proportion to the area of the square cell covered. The covered area is approximated

Fig. 2. Human body modd drawn with solid disks and anti-alia8ed.

by fiding twointersection points of the boundary of thedisk with the square. These points plus the covered comer points define a polygon whose area is taken as an approximation to the actual area covered. The error increases as the disk size approaches the dimensions of the square, but these disks contribute little to the visual appearance anyway. A consequence of anti-aliasing is the apparent increase in spatial resolution. The image in Fig. 2 is anti-aliased by this technique. The final display is only about 160 lines high (on a 240 lines by 320 points display), yet the boundaries are much smoother than the original version. The satisfactory use of a low resolution device implies less computationandequipmentcostfora realistic display. An alternative display technique involving more computation is an adaptation ofWatkin’s hidden surface algorithm [32]. The display is produced one scan line atatime bv computing only the frontmost visible portions of the spheres intersecting the current scan line. A modification of this technique has been programmed in an attempt to generate outline drawing of the body model fora vector drawing display [ 221. The idea is to use the structure of the body to decide when a sphere boundary should be ignored or treated as a visible edge. Thus an arm positioned across the front of the body should appear in outline and properly occlude the body edges, yet be visibly connected to the body (Fig. 3). More work needs to be done on this algorithm to improve output quality; its cost,

1400

PROCEEDINGS OF THEIEEE, VOL. 67, NO. 10, OCTOBER 1979

determine all contacts or intersections between nonadjacent segments, perform the following tests. 1) Let S1 and S2 be two body segments, and El and E2, their respective enclosures. If E l and E2 do notoverlap, then S1 and S2 cannot overlap. 2) El and E2 overlap.Check whether anysphere of S1 intersects E2; if not, then S1 and S2 do not overlap. (Note that it is more efficient t o select as SI the segment having the fewer spheres.) 3) Some spheres of S1 overlap E2. Check whether those spheres overlap any sphere of S2; if not, then S1 and S2 do not overlap.If thereisan intersection between spheres of S1 and S2, it is reported at this point using the distance value to indicate contact or overlap and the local direction tables t o indicate the relative part of the segment affected. The reason for ordering the collision test in this manner is simply t o reduce theamount of computation required. A brute-force test of each sphere againstevery other involves Fig. 3. Human body in outline. order (N’) comparisons, or about 45 000 comparisons for the 310 sphere model. In contrast,the initial segment-segment however, precludes its use in real-time animation. A more ef- test requires only about 150 comparisons since adjacent segficient technique usmgellipsoids ratherthan spheres is de- ments are excluded. For each intersection at t h i s stage, about scribed by Herbison-Evans [ 151. 15 spheres on the average must becheckedagainst the enFor a vector drawing display, each sphere is drawn as a circle closure of the intersecting segment. Beyond this, the spheres (Fig. 1). In spite of the fact that no hidden surfaces are re- of two intersecting segments might be checked with an average moved, depth cueing on the circle intensities and animation of 100 tests. If it is assumed that illegal collisions are sparsely combine to produce an excellent threedimensionaleffect. distributed in the model, the actual number of comparisons Sincecircledrawing generates a sizable number of graphic made will be well under the brute-force maximum. commands, a display with a built-incircle generator is preThe second case to be considered for collision detection is ferred. One such graphic display, the Vector General 3404 between the model and another object. If the other object [ 3 1] , not only provides such a circle generator, but also allows is represented by a spherical decomposition the collision the circles to be positioned in any depth plane and intensity algorithm easily extends from the one sited. The enclosure of controlled automatically. theobject(for example, anotherbody model) may require recomputation in each display frame if it can change its shape.. V. COLLISIONDETECTION What is perhaps more surprising is that the collision detecOne problem which is nontrivial in most object representa- tion process can be extended t o check sphere intersections tions is thedetection and localization of collisions (inter- with object surfaces described by collections of planar polysections) or contact between parts [SI, [61, [91, [241. More- gons. The distance from a sphere to a plane is easy to comover, some collisions are “legal” in the sense that two adjacent pute. Let S be a sphere and P be a planar polygon. 1) If S does not intersect the plane containing P,there is no segments must intersect t o a varying degree about the common joint. These problems are easily solved by the spherical model. intersection. 2) S intersects the plane of P in a (possibly degenerate) First, consider collisions between the model and itself. For adjacent segments a “stop” function gives the numerical limit solid disk D. The problem reduces to finding whether D and to the segment orientation at the joint. Rather than rely on P intersect. If D contains the enclosure of P, they intersect; the roll, pitch, and yaw angles to define the limit, a single hence, S and P intersect. 3) If not, then D either intersects or lies within the encloangle representing the displacement of one segment from an axis of the adjacent segment is used. The “stop” function thus sure of P;further tests determine whether D actually intersects any edge of P. If an edge intersection exists, then D and P becomes a single number, and the admissible range of angles, a cone. Illegalcollisionof adjacent segments only requires must intersect; hence,S and P intersect. 4) If not, then D either lies totally within or totally outside computation of the current angle and a comparison against the P. If outside, then S cannot intersectP;if inside, then S must stop value. The case of nonadjacent segments is more complicated, but intersect P. still simpler than for other representations. Let D denote the The only difficulty with this algorithm occurs if the spherically distance between the closest surfaces of two spheres defined represented object bes totally within some solid component of as the distance between their centers minus the sum of their the environment. This case may be checked by testing whether radii. If D is zero, the spheres touch at exactly one point; every sphere center lies within one solid component: if so, inclusion is likely. In practice this test maybe if D is negative, the spheres share some nonzero volume (inter- thenthe sect); and if D is positive, the spheres are disjoint. The colli- avoided if all environmental objects are smaller in volume than sion detection algorithm follows easily. We associate a sphere the body model or if the body is moved only a small amount or box (called the enclosure) with each body segment which between frames. In the lattercase it is extremely unlikely that minimally encloses all spheres in the segment. Since the seg- the body will suddenly change from a position disjoint from ment length and shape is fixed, the size of a spherical enclo- the solid to one totally surrounded by it. In any event, the sure is also fmed. (If the segment can twist, then the definition resulting list of sphere-pdygon intersections or contacts can of the enclosure must allow for all possible configurations.) To be used in the same fashion as the sphere-sphere collisions.

BADLER e t al.: A SPHERICAL REPRESENTATION OF A HUMAN BODY

1401

Fig. 4. Human body model inside cockpit.

Fii. 5. (a)-(d) clash sequence data applied to body model. VI. APPLICATIONS

We are using the human body model in two research projects: one to combine the human model with existing cockpit design and crash simulation systems, the other to transform a symbolic human movement notation system into a graphic animation. These two applicationscomplementeachother

inthe sense thatthefirstmanipulatesthe body modelin response t o external physical forcesorenvironmental constraints, while the second involves the simulation of any skeletal body movement. For the crash simulation, we have integrated the outputs of two systems with the body model. A cockpit design and

1402

evaluation program 1291 provides a planar polygon environment, while a crash simulator provides hypothetical movements of a vehicle occupant under various deceleration conditions [ 131. The initial position of the body is a seated pose and it is registered with the cockpit seat of the design program (Fig. 4). The display is produced by extendingthedepth buffer algorithm to accept convex polygons. (Anti-aliasing has been sacrificed in our implementation, however.) Four frames fromatypical crash sequenceare shown (Fig. 5 (aHd)) head-on at an oblique angle, with the occupant restrained only by a lap belt. Although it would be slightly incongruous to associate such a sequence with the cockpit, it may be done in order to determine the times and points of contact between the body and the environment. The body model is shown in isolationin Fig. 5, however, to betterillustratethe visual qualities which the model projects. Although the integrationof body and vehicle may eventually be used to control the simulation, a more likely short-term goal is thepresentation of the simulationdatainareadily interpretable form. By generating each frame of the simulation and recording it on videotape, a permanent visual record of any simulated movements may be obtained. During the recording process, the real time between each frame may be extended to slow the actualmotion. With enough care in the positioning of the observer forthecomputer gexierated sequence of images, actual experimental data from high-speed photography maybe superimposed, allowing thesimulation designer to verify the accuracy of the simulation program. The movement simulationprojectismoreambitious and correspondingly morecomplex. A recent survey article def i e s the scope of theproblem [4]. Basically, wewish to represent the possible movements of the human body as a set of “instructions” for each joint. Representation in terms of roll,pitch, andyawangles is mathematicallysufficient to characterize joint angles, but this is not suitable to capture the global organizations of movements with whichwe describe human activities and behavior. For example, we do not consciously compute the joint angles required to turn a doorknob and open a door; the sequence of actions described presumes some intelligence or at least goaldirected activity on the part of the performer. We have been working with one symbolic system used to describe human movement, Labanotation [ 181. Weber, Smoliar, and Badler have abstracted a setof five “primitive movement concepts” which subsume nearly a l l of the movements describable in Labanotation [ 331. These “primitives” are: 1) movement of a joint t o or toward a given direction, 2) rotation or twist of a joint, 3) facing orientation of a body surface, 4) path of movement of a joint in space or a configuration of a set of joints in space, and 5 ) contact or relationship between the body and itself, other bodies, or its environment. Sequences of these primitives form programs interpreted by a human movement simulator [3]. The output from the simulator is a set of joint angles which position the bodymodel we have described. Thesimulation,therefore, results in a sequence of “snapshots” of the body model performing the notated movements. By storing the joint angles in a data file, the modelwill be animated in real time on a Vector General 3404, since the necessary circle generator and transformation chaining are provided in firmware. Implementation of thesimulatorandthe real-time display is currently in progress.

PROCEEDINGS OF THE IEEE, VOL. 67, NO. 10, OCTOBER 1979

W. CONCLUDINGREMARKS The conceptual simplicity of the spherical decompositionof thehumanbody provides many advantages to the user in terms of bodydefinition,hidden surface removal, collision detection, and device-independent display. While a fast vector drawing device would be used primarily for animation previewing, we are particularly hopeful that the raster-based display will provide, for thefirst time, the possibility of saving realistic human movement simulations on video tape so that animation playback can be done off-line without large computers or expensive displays.

ACKNOWLEDGMENT Development of the human body model has been considerably aided by artistic assistance from M. O’Rourke. We also wish to thank J. Weissman for the anti-aliasing algorithm. REFERENCES N. I. Badler, “Disk generators for a raster display device,” Comput. Graph. Image Procesning,v d . 6, pp. 589-593, 1977. N. I. Badler and R. Bajcsy, “Three-dimensional representations for computer graphics and computer vision,” Comput. Graph., VOL 12, PP. 153-160, AUg. 1978. N. I. Badler, J. O’Rourke, S. W. Smoliar, and L. Weber, “The simulation of human movement by computer,’’ Movement prok ect Rep. No. 14, Dep. of Computer and Information Science, University of Pennsylvania, Philadelphia, PA, July 1978. N. I. Badler and S. W. Smoliar, “Digital representations of human movement,” Computing Sun., voL 11, pp. 19-38, Mar. 1979. B. G. Baumgart, “Geometric modeIling forcomputer vision,” Tech. Rep.,Dep. of Computer Sdence, Stanford University, Stanford, CA, Oct. 1974. J. W. Boyse, ‘‘Interference detection among solids and surfaces,” Commun. ACM, vol. 22, pp. 3-9, Jan. 1979. T. W. C h e r t and J. Chapman, “Notation ofmovementwith computer assistance,” in Proc. ACM Annu. Conf.,vol. 2, pp. 731-736, 1978.

E. Catmull, “A system for computer generated movies,’’ in Proc. ACMAnnu. Conf.,vd. 1. DD. 422-431. 1972.

P.G. Comba, “A procedure for detecting intersections of threedimensional objects,”IACM, vol. 15, pp. 354-366, July 1968. F. C. Crow, “The aliasing problem in computer-synthesized shaded images,” Commun. ACM, vol. 20, pp. 799-805, Nov. 1977.

-, ‘The llse of grayscale for improvedraster display of vectors and characters,”Comput. Graph.,voL 12, pp. 1-5, Aug. 1978. W.A. Fetter, “A human f i i e computer graphik development,” in h o c . Eurocomp C o w . (Online, Brunel, England), pp. 476488, May 1974. J. T. Fleck, F. E. Butler, and S. L. Volgel, “An improved three dimensional computer simulation of aash victims,” vola 1-4, Final Rep. Contract No. DOT-HS053-2-485. DOTRep. N o s DOT-HS-801,507 through 510. NHTSA, Am. 1975. E.C. Giftord, J. R Provost, and I. Lazo, “Anthropometry of Naval aviators-1964,” Naval Air Development Center, Warminster, PA, Tech. Rep. NAEC-ACEG533.1964. D. Herbison-Evaus, “NUDES 2: A numericutility displaying ellipsoid solids,” Comput. Gmph., vol. 12, pp. 354-356, Aug. 1978.

B. K P. Horn, “Circle generators for display devices,” Comput. Gmph. Zmqge Proce&ng, voL 5, pp. 280-288, 1976. R.L. Huston, C.E.P-llo, M. W. Harlow, and J. M. Wiget, “The UCIN 3-D aircmft-occupant,” in Aircraft Cnuhworthiness, Saczalski e t d.,Eds. Charlottesville, VA: Univ. n e s s of V i 1975.

A. Hutchinson, Labanoration New York:Theatre Arts Books, second ed., 1960. K. Knowlton, Personal communication, 1978. M. E. Newell, R G. Newell, and T.L. Sancha, “A solution to the hidden surface problem,’’ in Proc. ACM Annu. Conf., v o l 1, vp. 443-450,1972. A. M. Noll, “Choreography andcomputas,” Dance Mag., Jan 1967.

J. O’Rourke. “Representation and display of threedimensional objects with spherq” MSE thesis, L%p. of Computer and Infarmation Science, University of Pennsylvania, Philadelphia, PA, Aug. 1977.

PROCEEDINGS IEEE,OF THE

VOL. 67, NO. 10, OCTOBER 1403 1979

[23] J. O’Rourke and N. I. Badler, “Decompositionof threedimensional objects into spheres,” B E E Thuu. Pattern AnaL Mach Intel., voL PAMI-1, pp. 295-306, July 1979. [24] R. E. Parent. “A systemforsculpting 3-D data,” Comput. Graph.,vol. 11, pp. 138-147, Summer 1977. [251 F. L Parke, “Animation of faces,” in Proc ACMAnnu. Conf., VOL 1, pp. 451-457, 1972. (261 T. K. Porter, “Spherical shading,” Compur.Graph., vol. 12, pp. 282-285, A=. 1978. (271 T. E. Potter, and K. D. Willmert, “Three-dimensional human display model,” Compur. Graph.,vol. 9. pp. 102-110, Spring 1975. [28] D. H. Robbins, R. 0. Bennett Jr., ana B. Bowman, “Useroriented mathematical crash victim simulator,” Highway Safety Research Institute, University of Michigan, Ann Arbor, MI, SAE Paper No. 720962, Proc. 16th Srapp Car Crash Conf., pp. 128-148, 1972.

[29] W. P. Ryan, “Cockpit geometry evaluation-Phase III rial report: Volume 1: Program description and summary,” Boeing, under ONR Contract N00014-71-C-0170, Boeing Rep. No. D162-10125-3. [ 301 S. W. Smoliar and L. Weber, “Using the computer for a semantic representation of Labanotation,” in Computing and the Humanities, S. Lusignan and J. S. North, Eds. Waterloo, Ontario: University of Waterloo Pres, 1977, pp. 253-261. [31] Vector General System 3404 Reference Manual, Vector General Corp., Woodland Hills, CA, 1977. [ 321 G. S. Watkins, “A real-time visible surface algorithm,” Tech. Rep. UTEC-CSC-70-101, Dep. of Computer Science, University of Utah, Salt Lake City, UT, June 1970. [33] L. Weber, S. W. Smoliar, and N. I. Badler, “An architecture for the simulation of human movement,” in Proc. ACMAnnu. Conf., v01. 2, pp. 737-745, 1978.

Applications .of CCD and Switched Capacitor Filter Technology CHARLES ROBERT HEWES, MEMBER, IEEE, ROBERT W. BRODERSEN, MEMBER, AND DENNIS D. BUSS, MEMBER, IEEE

Abmucf-Since the &est developments of charge trpnsfer devices for signal processing functions, there has been a rapid evolution of the technology towards thecapability of implementingcomplex signa4 processing functions on a siugle silicon substrate. Recently, switched capacitor filter techndogy has proven to be a Complementary moncl lithic lilter technology which is compatible wilh CCD’s in hbxication. We review the pMciples of both filter technologies and present somerecent developmentsin a number of signal process applications.

operaw

c

I. INTRODUCTION

HARGE-COUPLEDDEVICES(CCD’s) are inherently analog, and as such they are ideally suited to a number of sampleddata filtering functions [ 11-[3 1. CCD’s are functionally equivalent to the much older bucket-brigade device (BBD) 141 which can be implemented using any standard MOS or bipolar process. BBD’s areoftentreatedtogether with CCD’s inthe genericclassofcharge transfer devices (CTDs), and some of the examples presented in this paper deal with BBD’s. However, CCD’s have size and performance advantagesover BBD’s and will probably dominate CTDfiltering in the future. As soon as the principles ofCCD filters were demonstrated [5], it became evident that a considerable amount of support circuitry was required t o operate the devices and to facilitate the interface ofCCD filters to the rest of any realistic system. This has led to the incorporation of clock circuits, amplifiers, multipliers, A/D and D/A circuits, and other functions on thesame chip with CCD’s [6]-[8]. Manuscript received April 23, 1979. C. R. H e w s and D.D.Buss are with the Central Research Laboratories, Texas Instruments, Inc., Dallas, TX. R. W. Brodersen is with the University of California, Berkeley, CA.

IEEE,

Recently switchedcapacitor filters [9] have also been realized in monolithic form, and these devices have proven to be complementary to CCD’s in their capabilities, and at the same time compatible inthefabrication technology. Both switched capacitor and CCD filters are being exploitedin recent IC designs and will be discussed in more detail in this paper. We find that in some fiiters CCD’s offer both area and power savings in comparison to switched capacitor filters, while in other functions the oppositeis true. The two filtering approaches are related inthatboth CCD’s andswitched capacitor filters accomplish their filtering functions by manipulating charge packets representing sampledanalogsignals. Both approaches utilize the basic capability of MOS technology for precision ratioed capacitances t o perform these manipulations and to store the analog signals. In the next two sections of this paper we review the basic principles of CCD and switched capacitor sampled-data filters. We will also describe some recent practical improvements in the CCD filter fabricationand output circuit techniques. In Section IV we describe a CCD bandpass fiiter to illustrate capabilities for highlyselectivefilters. In Section V,we present the CCD chirp-z transform (CZT) for performing the discrete Fourier transform with CCD filters. This technology has culminated in the development of a self-contained 32-point and 5 12-point CZT IC which illustrates the capability of combining CCDs, clockdrivers, ROM’s, multiplying D/A converters and amplifiers in a single IC. Section VI describes the application of combined CCD and switched capacitor filters t o perform speechanalysis and synthesis for a vocoder. Recent developments in programmable devices are described in

0018-9219/79/1000-1403$00.75 0 1979 IEEE