IE54824B1 - Image data transfer method - Google Patents

Image data transfer method

Info

Publication number
IE54824B1
IE54824B1 IE589/87A IE58987A IE54824B1 IE 54824 B1 IE54824 B1 IE 54824B1 IE 589/87 A IE589/87 A IE 589/87A IE 58987 A IE58987 A IE 58987A IE 54824 B1 IE54824 B1 IE 54824B1
Authority
IE
Ireland
Prior art keywords
scan line
region
location
image data
memory
Prior art date
Application number
IE589/87A
Other versions
IE870589L (en
Original Assignee
Apple Computer
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/428,635 external-priority patent/US4622545A/en
Application filed by Apple Computer filed Critical Apple Computer
Publication of IE870589L publication Critical patent/IE870589L/en
Publication of IE54824B1 publication Critical patent/IE54824B1/en

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)

Description

IMAGE DATA TRANSFER METHOD 1. Field The present invention relates to a method Tor transferring data from a first location in a computer memory to a second 5 location in said computer memory for use in improving graphics capabilities. 2. Prior Art, 10 In the computing industry, it is quite common to represent and convey information to a user through graphic representations. These representations may take a variety of forma, such as for example alphanumeric characters, cartesian or other coordinate graphs, as uell as shapes of well known physical objects, etc.
Historically, humans have interfaced uith computers through a system of discrete commands which typically comprise a combination of both text and mathematical symbolic characters. Examples. of such systems are numerous and include the programming languages of Fortran, Algol, Pt/1, Sasic, and Cobol, which transform a given 20 set of user commands into machine executable "object" coda.
However, the ease uith which a user become proficient in programming or interacting uith a computer baaed system is generally a function of how close the system models the logical 25 thought of the user himself. If the user is able to enter commands in the order in which he would find most logically appropriate, rather than having to transpose his desired command into the code of a programming language, greater user efficiency in using the system is achieved.
One system which has been developed to minimize the learning and acclamation period which a user must go through in order to become proficient in the interaction with a computer system is frequently referred to as an "object-oriented" or "Smalltalk" 2 system. The Smalltalk approach is to replace many common coded programming commands uith tuo-dimensional graphics and animation on a computer display. Quantitatively, it haa been found that since people readily think in terms of images, a person can 5 absorb and manipulate information presented in a visual context much faster than if represented by text. The particular type of graphic interface by uhich the user interacts uith the machine may vary for any given application.
Cine common Smalltalk interface approach utilizes multiple "uindous" displayed on a cathodB ray tube (CRT) in uhich combinations of text and graphics are used to convey information. For example, each window may take the form of a file folder, of the type used in a standard filing cabinet, overlapping other 15 folders, uith the "top" fully visible folder constituting the current uorkfile. A user may add or delete information from a file, rerile the file folder in another location, and generally operate on the file just aa if an actual file in an office uas being used. Thus, by graphically presenting an image uhich 2Q represents the object of the user's command, and allouing the user to operate on and manipulate the image in substantially the same way he would aa if the image constituted the actual object, the machine becomes easier to operate to the user and a stronger man-machine interface is achieved. See, for example, 0.Robson 25 "Object-Oriented Software Systems", BYTE. August 1981, Page 74, Vol.6, No.8; and L.Tesler, "The Smalltalk Environment",BYTE, August 1981, page 90, Vol.6, No.8.
Although a variety of graphic representations ere desired in 30 Smalltalk or other systems, traditionally large amounts of memory have been required in order to generate, store and manipulate graphics characters. In its simplest form, a block of memory may be allocated in a data processing storage system uith each memory bit (a 1 or 0) mapped onto a corresponding picture element 35 (pixel) on the display system. Thus, an entire CRT screen full of data, in the form of images and/or text, is represented as either a 1 (black dot) or a 0 (uhite dot) in a block of memory - 3 - known as a "bitmap". However, tha use of a one-to-one correspondence between the bitmap and the CRT display requires a significant amount of storage space uithin the computer's core memory. In addition, the generation and manipulation of an image or character requires that virtually all bits in the bitmap be updated after any modification to an image or the like. This procedure ia both repetitive and time consuming, and significantly hampers the practical use of interactive graphics display operating systems.
Ona method of providing the necessary graphic capabilities, for systems such as Smalltalk, is "BitBlt" (Bit Boundry Block Transfer) as developed by the Xerox Learning Research Group, Palo Alto Research Center, Palo Alto, California. See. D.Ingalls, "The Smalltalk Graphics Kernel," BYTE, page 168, August 19B1, Vol.6 No.B. BitBlt utilizes regions which are themselves small bitmaps and define simple forms, such as for example an arrow head shaped form to be used as a cursor, a pattern, etc. BitBlt, as will be discussed more fully below, transfers characters from a source bitmap; such as for example a font file of characters, to a destination bitmap (i.a. a block of memory to be displayed on a CRT) at given coordinates. By incorporating the use of a "clipping rectangle" which limits the region of the destination bitmap which can be affected, a portion of a larger scene can be mapped into a window such that only that portion of the transferred scans which falls uithin the window will be transferred. In addition, a variety of transfer operations are provided which control the combination of a transferred scene or character with sn existing scene previously stored at the destination bitmap. However, the BitBlt system is limited in terms of the types of images which can be transferred and manipulated. Specifically, BitBlt is constrained to transfers of rectangular areas. This limitation significantly restricts its usb as a graphics tool since BitBlt is thereby unable to transfer data to overlapping windows or the like. In addition, large ampunts of memory are required for the BitBlt system. Other limitations in prior art systems, such as BitBlt, are described in order to more fully identify the nature of the present invention. 4 SUMMARY OF THE INVENTION The present invention provides a method for selectively transferring image data from a first location in a computer memory to a second location in said memory, comprising the steps of: defining a one scan line buffer in said memory, said scan line buffer sequentially containing said image data in said first location; defining a one scan line mask buffer in said memory, said scan line mask sequentially containing mask image data in said second location; sequentially comparing the contents of said scan line buffer with the contents of said scan line mask; providing a predetermined precedence as defined by a user between the contents of said scan line buffer and said scan line mask, such that only selected image data in said scan line buffer having priority is transferred to said second location; whereby image data is selectively transferred from said first location to said second location.
An 'inversion point' as used herein is defined as a point at which the state of all points having coordinates to the right and below the subject point are inverted (e.g. binary zeros are converted to binary ones and visa versa). A "Region" as used herein is defined as any arbitrary area which may include a number of groups of disjoint areas. Thus, any shape, such as for example an "L" shape is treated simply as another region to be defined and operated on. By defining a set of inversion points for any given region, all of the points which constitute the region need not be stored in memory, rather, only the inversion points defining the region need be stored.
There is described means for generating an input representation of a region, which may comprise any arbitrary shape or area the perimeter of which need not be a continuous - 5 - curve and may include disjoint areas. This input representation is most advantageously coupled to a digital computer. Once received, the digital computer determines the position of the inversion points needed to define the region and sorts the points 5 left to right and top to bottom in accordance with their coordinates in the region. Algorithm means are provided to transfer and operate on regions (or portions thereof) uithin the computer memory and to display a resulting region on an appropriate device, such as for example a cathode ray tube 10 (CRT) or the like.
A scan line mask comprises a one scan lina buffer, uhich in binary form represents existing regions uhich are currently being displayed and stored in a destination bitmap. The destination 15 bitmap comprises a black of memory in uhich each bit corresponds to a pixel or the like on the display device. The scan line mask vertically seana down and "slices" the existing regions into horizontal roua corresponding to aach raster line on the CRT display. Similarly, data from a aourea bitmap or font file, in 20 the form of characters or the like, to ba added to a portion of the destination bitmap is also "sliced" and placed into a horizontal scan line buffer corresponding to each raster scan line of the CRT. Aa one horizontal' scan line is transferred from the source bitmap or the like to the destination bitmap, the 25 contents of the source scan line buffer are compared to the contents of the scan line mask, such that the source scan line is "masked" and only selected portions of thB source buffer are transferred to the destination bitmap. By using a variety of region operators, precedence between existing and neu regions may 30 ba specified. Thus, a pattern (auch as.for example striped, checked or the like) may ba added to an existing region, text may ba overlayad, scrolling of text uithin a region may ba easily accomplished, and numerous other graphics operations may be completed.
- The resulting destination bitmap la converted to signals uhich are then applied to a CRT or other display device, and the image ia displayed in a conventional manner. 6 BRIEF DESCRIPTION OF THE ORAUINGS.
Figure 1 illustrates a computer; Figure 2 shous a typical arrangement of program storage in the system of Figure 1; Figures 3 (a) - (h) illustrate the use of inversion paints to define a region; Figures 4 (a) - (e) illustrate operations on regions using inversion points; Figure 5 illustrates the process of converting a region defined by inversion points into a one scan line buffer scanning vertically down a region; Figure 6 symbolically illustrates the nAN0" operation between tuo regions one scan line at a time; Figure 7 symbolically illustrates the operation of a bitmap mask to selectively mask portions of a source region to be displayed; Figure 8 symbolically illustrates the use of one scan line buffer and a scan line mask to selectively mask portions of a source region prior to its transfer to the destination bitmap for display; Figure 9 illustrates the result of using the inversion point scan line mask system; NOTATIOM AND NOMENCLATURE The detailed descriptions which follow are presented largely in'terms of algorithms and symbolic representations of operations on data bite within a computer memory. These algorithmic - ? - descriptions and representations are the means used by those skilled in the data processing arts to most affectively convey the substance of their uork to others skilled in the art.
An algorithm is here, and generally, conceived to be a self- consistent sequence of steps leading to a desired result. These steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being 10 stared, transferred, combined, compared, and otherwise manipulated. It proves convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and 15 similar terms ere to be associated with the appropriate physical quantities end are merely convenient labels applied to these quantities.
Further, the manipulations performed are often referred to 20 in terms, such as adding or comparing, uhich are commonly associated with mental operations performed by a human operator. Να such capability of a human operator is necessary, or desirable in most cases, in any of the operations described herein uhich form part of the present invention; the operations are machine 25 operations. Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices. In all cases there should be borne in mind the distinction between the method operations in operating a computer and the method of computation itself. The present 3D invention relates to method steps for operating a computer in processing electrical or other (e.g. mechanical, chemical) physical signals to generate other desired physical signals.
An apparatus for performing these operations may be specially 35 constructed for the required purposes or it may comprise a 8 general purpose computer as selectively activated or reconfigured by a computer program stored in the computer. The algorithms presented herein are not inherently related to any particular computer or other apparatus. In particular, various general purpose machines may be used with programs written in accordance uith the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given below.
DETAILED DESCRIPTION.
The following detailed description will be divided into several sections. The first of these will treat a general system arrangement for generating computer graphics. Subsequent sections will deal uith such aspects of the present invention as defining an inputted region in terms of inversion points, the sorting of inversion points, operations on inversion paints, generation of a scan line mask, and region transfer operations among others.
In addition, in the following description, numerous specific details are sat forth such as algorithmic conventions, specific numbers of bits, etc., in order to provide a thorough understanding of the present invention. However, it will be obvious to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known circuits and structures are not described in detail in order not to obscure the present invention unnecessarily.
GENERAL SYSTEM CONFIGURATION Figure 1 shows a typical computer-based system for generating computer graphic images. Shown there is a computer 20 which comprises three major components. The first of these is the input/autput (I/O) circuit 22 which is used to communicate information in appropriately structured form to - 9 - and front the other parts of computer 20. Also shoun .as part of computer 20 is the central processing unit (CPU) 24 and memory 26. these latter tuo elements are those typically found in most general purpose computers and almost all special purpose computers.
In fact, the several elements contained uithin computer 20 ere intended to be representative of this broad category of data processors. Particular examples of suitable data processors to fill the role of computer 20 included machines manufactured by the Apple Computer Co., Cupertino, California, Other computers having like capabilities may of course be adapted in a straightforward manner to perform the aeueral functions described belou.
Also shown in Figure 1 is an input device 30, shoun in typical embodiment as a keyboard. It should be understood, 15 however, that the input device may actually be a card reader, magnetic or paper taps reader, or other well-known input device (including, of course, another computer). A mass memory device 32 is coupled to the 1/0 circuit 22 and provides additional storage capability for the computer 20, The mass memory may 20 include other programs, fonts for given characters, and the like and may take the form of a magnetic or paper tape reader or other well known device. It will be appreciated that the data retained uithin mesa memory 32, may, in appropriate cases, ba incorporated in standard fashion into computer 20 as part of memory 26.
In addition, a display monitor 34 is illustrated which is used to display the images being generated by the present invention. Such a display monitor may take the form of any of several well-known verities of CRT displays. A cursor control 36 30 is used to select command modes and edit graphics data, such as for example a particular image, and provides a more convenient means to input information into tha system.
Figure 2 shows a typical arrangement of the major programs 35 contained within the memory 26 illustrated in Figure 1. In particular, there is shoun a video destination bitmap 38, which in the presently preferred embodiment comprises approximately 32 - 10 kilobytes or storage. This destination bitmap represents the video memory Tor the display monitor 34. Each bit in the destination bitmap corresponds to the upper left coordinate of a corresponding pixel on the display monitor. Thus, the 5 destination bitmap can be described by a tuo-dimensional array of points having known coordinates. Of course, in the case where other display means are used, such as for example a printer or the like, the contents of the bitmap 38 would represent the data points to be displayed by the particular display device. Memory 10 26 also includes programs 40 which represent a variety of sequences of instructions for execution by the CPU. For example, the control program implimenting the operations and routines described herein, monitor'and control programs, disk operating systems and the like may ba stored within this memory 15 location.
Source bitmap 42 which may comprise regions, fonts, data structures, coordinates and characters are also stored in memory 26, or may be temporarily stored in mass memory unit 32 as may be 2Q required. Additionally, space within memory 26 is reserved for other programs and spare memory which is designated at 44. These other programs may include a variety of useful computational or utility programs as may be desired.
INVERSION POINT REPRESENTATION OF DEFINED REGIONS_ Any arbitrarily defined region is represented in terms of "inversion points". In addition, a "region" is defined to be 30 any arbitrary area which may include a plurality of disjoint areas of any shape or configuration. Referring now to Figure 3(a), an inversion point 40 is illustrated. An inversion point is, by definition, a point at which the state of all points having coordinates to the right and below the inversion point are inverted. 35 Thus, as depicted, all areas to the right and below the point 40 are dark since point 40 was defined on a previously white background. In terms of the physical implementation of the inversion 11 paint system! the position of an inversion point is described in terms of its coordinates in a memory bitmap.
As illustrated in Figure 3(b), a vertical unbounded strip results uhen tuo inversion points, 40 and 42, are defined on a bitmap such as destination bitmap 38, and subsequently displayed on monitor 34. The addition of the point 42 on the bitmap inverts the state of all points having coordinates to its right and belou it, cancelling the effect of point 40 uithin this area and thereby defining a darkened vertical strip.
Similarly, four inversion paints 40, 42, 44 and 46 define a square or other quadrangle as shoun in Figure 3(c). As illustrated in Figures 3(d) and (e) other areas may ba defined using inversion points, and voids uithin a given shape may be easily generated. In addition, it uill be apparent that any given region may contain any number of disjoint areas, as shoun in Figure 3(f), inasmuch as all shapes uithin a region are simply defined by the coordinates of the inversion points.
Moreover, circular and other non-linear regions may be defined by proper positioning of inversion points. Uith reference to Figure 3(g), a diagonal line 43 may be defined batuaen points "X" and rtYrt by a step series of tuo inversion points between " X' and * V. Although a direct diagonal line betueen points uould be preferred, the physical structure of the raster line display monitor 34 does not permit this. Each pixel on the CRT display occupies a unit area betueen given coordinates, uhera by convention a particular pixel is accessed by the coordinate of the grid point uhich lies at its top left. Thus, a step-like function of inversion points defining a series of horizontal line segments is required to approximate a diagonal line.
It uill be appreciated that once any given region is defined in terms of its inversion points, in general only the inversion points need be retained in memory 26, unlike many 12 prior art systems which require that virtually all points comprising an image be stored. A region is entered into the computer 20 by a user by means of cursor control 36 or other input device. The position of the inversion points defining S the region is determined by detecting horizontal line segments uhich in part form portions of the imputted region. Uith reference to figure 3(h), line segments 60, 85, 90, 100 and 125 are thus identified. Inversion points are then defined at the coordinates corresponding to the end points of each line segment, 10 thereby defining the entire region in terms of its inversion points. Vertical line segments uithin the region are ignored since they will be generated automatically, by definition, using the previously described inversion point convention. The specific sequence of operations uhich are required to be executed 15 by computer 20 to detect and isolate horizontal line segments, uill be apparent to those skilled in the data processing arts, and uill not be set forth in this description. The inversion points of a region are sorted into an ordered list of points in a left to right, top to bottom order in accordance uith their 20 coordinates. For example, uith reference to the region of Figure 3(e) the list of inversion points in accordance uith the convention uauld be as follous: 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76.
It has been found, that the use of the above convention permits simplified operations on regions such as those illustrated in Figures 4(a) - (a). Typical operations uhich may be performed using the present invention's use of ordered lists of inversion points are the functions of the determination of 30 point membership, as uell as the intersection, union, difference, and exclusive-OR of regions.
Frequently, in the course of a graphics operation, it is necessary to determine if a point in the destination bitmap 38 35 (and thereby correspondingly displayed on the display monitor) lies uithin a particular region. This function is generally 13 referred to as "point membership". Traaitionally, the determination of paint membership required rather extensive data . manipulations end calculations, For example) one prior art method of determining point membership uas to calculate and sum 5 the angles from the point in question to the region of interest.
If the sum of the angles equals 3GQ degrees then paint membership uithin the region exists. It will be appreciated that this particular method of determining point membership requires numerous and repetitive calculations and is extremely time 10 consuming.
However, the use of inversion points provides an efficient means to determine point membership. Uith reference to Figure 4(a), the previously ordered list of inversion points defining 15 the region in question is scanned through from top to bottom.
If an inversion point has a vertical coordinate greeter than or equal to the vertical coordinate of the point in question (point "P" in Figure 4(a)), and the inversion point's horizontal coordinate is less than that of point "P", a variable is "toggled" 20 uhich is either true or false (and uhich uas originally set, for example, to false). Thus, each time an inversion point above and to the left of the point in question is detected, the state of a true/false variable is switched. If, after scanning through the list of inversion points defining the region the 25 variable is true (i.e. an odd number of state changes occurred) the point in question (i.e. paint "P") lies uithin the particular region. However, if the variable is false (i.e. zero or an even number of state changes occurred) the point is not uithin the region. 35 - 14 - REGION TO SCAN LINE BUFFER TRANSFORflATION The use of ordered lists of inversion points provides a straightforward means of representing the contents of each raster scan line on monitor 34. Referring now to Figure 5, a portion of memory 40 (See Figure 2) is allocated as a one scan line buffer. This scan line buffer is sufficiently large such that each horizontal row of pixels on the CRT monitor screen or other output device is represented by a bit within the buffer. A region which has been previously defined in terms of an ordered list of inversion points may be represented by bit states within the scan line buffer. For every horizontal row displayed on monitor 34, designated VQ, V1 ,V2 . . . Wn+1 in Figure 5, inversion points having vertical coordinates corresponding to the particular horizontal row which is scanned are represented by an altered bit state (i.e. a 1 in an original scan line field of 0'S) at appropriate coordinates on the scan line buffer. All bits between pairs of inversion points in scan line 155 are then inverted, such that a true representation of the region to be displayed is generated from the inversion point ordered list. Thus, as shown in Figure 5, by scanning through each horizontal row to be displayed, any region may be horizontally and sequentially "sliced" into segments one scan line wide.
As will be discussed below, the use of a single raster scan line buffer allows a region to be transferred from a source bitmap 42 to the destination bitmap 38 and appropriately "masked" such that any arbitrary region may be transferred and manipulated, unlike prior art systems such as BitBlt which are confined to rectangular region transfers.
In addition, it will be appreciated that the region to scan line buffer transform is revarsable. Once a region is represented in the form of a one scan line buffer, en ordered set of inversion points may be redefined by locating inversion states on the buffer as the buffer scans a region from its top (V^) to bottom (Vfj+i). Inversion point positions are located easily inasmuch as an inversion point position on the buffer, is that point where a bit state change is sensed (i.e. a 1 where the next bit is a 0). Mora specifically· the location of inversion paints may simply be determined by an excluaivB-OR operation between the current scan line (e,g. Vj) buffer contents and the previous (e.g. scan line buffer contents. Thus, the portions of regions which remain unchanged between subsequent vertical scan line positions are ignored inasmuch as a uniformity of content between one vertical scan line position and the next would indicate that no inversion points are present. In addition, horizontal positions of inversion points may then be determined by shifting the resulting exclusive-OR ed scan line to the right by 1 bit, end effectuating another exclusive-OR operation. Tor example, if after the exclusive-OR operation between scan line .buffer UR and the result was 01110011, then by shifting the result to the right one bit and completing another excluaive -OR operation wa obtain: 01110011 00111001 (1) 01001010 - inversion point positions for scan line V_. n The specific commands to be executed by computer 20 in order to determine where in a scan line buffer a state change exists will be 'apparent to one skilled in the art, and will not be further described.
REGION OPERATORS The use of a one scan line buffer to systematically represent the contents of regions permits the previously described operations of union, intersection, ate., to bB easily accomplished. For example, the intersection operation illustrated in Figure 4(b) provides an inversion point representation of the shaded area, and is obtained by executing an "AND" of the two overlapping regions "A" and "Θ". Referring now to Figure 6, a one scan - 16 - line buffer is defined for each region "A" and "B". for each horizontal raster rou of the CRT display, the respective scan line buffer represents each region's contents in binary form.
The contents of the scan line buffers ere then operated upon in 5 order to accomplish the desired function. In the case of figure 4(b), the contents would be NAND"ed together to result in a composite scan line, for example, if for vertical position "A" scan line - 11111100 10 "B" scan line - 10010001 Then the composite scan line after en "AND" operation would be : 10010000. In addition, the identical "AND" operation is done for each horizontal rou Vn comprising each region. The 15 result of the above operation being a composite representation, one scan line at a time, of the resulting intersecting shaded region "C" of figure 4(b). The position of the inversion points comprising the shaded region "C" may then be extracted using known techniques, such as the exclusive-OR operation previously 20 described.
. Similarly, an "OR" operation between the two regions is utilized in order to achieve the union function of figure 4(c).
To obtain the "Difference" of figure 4(d), the operation between 25 the two regions would be (NOT "S") AND "R", wherein the state of all binary quantities represented within the "S" scan line buffer is inverted prior to "AND"ing the contents with the "R" scan line buffer. finally, the exclusive -OR operation of figure 4(a) is simply achieved by performing the exclusive -OR on each region's scan line buffer contents, in the same manner as was done in the above example of the "AND" operation. However, it will be apparent to one skilled in the art that the use of ordered 35 lists of inversion points renders the exclusive-OR operation trivial. The operation may be accomplished by merge sorting the inversion point lists of regions "T" and "U" of - 17 Figure 4(e), and discarding any points having the sane· coordinates in both regions. In other uords, computer 20 simply treats the ordered lists of inversion points defining regions "T" and "U" as one large list, and sorts all of the inversion paints, left to 5 right and top to bottom in accordance uith the previously described convention. The resultant list of inversion points represents a region uhasa points are contained either in region njn or but not both.
It uill be appreciated that numerous other operations, and combinations of operations, using the inversion point and scan line buffer method may be performed on arbitrary regions than was possible in prior art methods.
SCAN LINE PlflSK Uith reference nou to Figure 7, the use of a scan line mask to provide arbitrary region clipping is symbolically illustrated. A previously defined region 16Q uhich has been converted into 20 an ordered list of inversion points is used as a "mask" to uhich ell additional images to be displayed on the monitor 24 are compared, prior to affecting the destination bitmap 38.
As ahoun in Figure 9, it is frequently desired that multiple regions overlap uith some predetermined precedence. ' As is 25 illustrated, folders may be depicted as overlapping, text may be provided on each displayed folder, and other arbitrary regions may be displayed. Houever, as discussed above, prior art methods such as BitBlt are constrained to rectangular "region clipping". Thus, the versatility of prior art systems 30 is severely limited by the constraint of operating on rectangular regions only, and their inability to selectively affect regions other than the topmost window (e.g. folder 210).
As symbolically illustrated in Figure 7, other regions 35 such as patterns or characters are compared to a bitmap "mask", one'scan line at a time, of existing regions uhich are 1β currently being displayed. Aa will be discussed belou, 'by defining region operators various masking priorities may be defined. Thus, patterns may be provided as uell as fonts and other characters uithin any arbitrary region. "Region clipping" is provided in accordance with the region operators such that portions of overlapping regions are selectively displayed.
Referring που to figure 8, each source bitmap 42 uhich may comprise an image, character, font or the like uhich is desired to be displayed is "sliced" and transformed into a one scan line buffer in accordance, uith for example, the above discussion under the heading "Region to Scan line Buffer Transformation'. Thus, any region to be displayed is represented by a one line, scan buffer uhich horizontally scene the source bitmap 42 and provides a binary representation of the source region by proper expansion of inversion point positions along the buffer.
The regions uhich are presently being displayed form a bitmap "mask" region to uhich neu regions to be displayed are compared. As is done uith the neu source regions to bs added, the existing displayed region is transformed into a one acan line mask representing the contents in binary form of the destination region. Depending on the transfer mods operation specified,each scan line of the neu region is selectively transferred to the destination bitmap 38 and displayed on the display monitor 24.
The specific type of transfer mode operator used is a function of the desired output. Region operators include the functions of OR, ANO, exclusive-OR, NOT as uell as any combination thereof. For example, if the current acan line mask for rou on the CRT contains 01101010 end the currant source seen line buffer for V^, contains 01100110 then the result after an "AND" operation uhich uauld be displayed on monitor 34 uauld be : 19 Q11Q1010 - scan line mask buffer contents (AND) 01100110 - source scan line buffer contents 01100010 - destination bitmap scan line contents S to be displayed Thus, it will be appreciated that not all portions of the neu source region uill be transferred to the display device, and is thereby "clipped" depending on the particular transfer 10 operator chosen. In addition, it uill be noted that the particular shape of the regions being operated upon is irrelevant to the method. The use of inversion points and one scan line buffers allow any arbitrary region to be defined, maskea and transferred.
Three separate scan line mask buffers are provided to which a new source region is compared. A "user region" mask comprises the existing region being displayed uhich the neu region, if transferred, uill affect. A "visible region" mask 20 is defined as the visible portion of the existing region currently being displayed (e.g. folder 200 of figure 9). The "clipping region" comprises the visible portion of the user region to which the neu source region uill be "clipped", such that only a portion of the source region is transferred. Thus, a neu 25 source iBgion to be transferred from the source bitmap 42 to the destination bitmap 38 is passed through the equivalent of three scan line mask buffers. In practice, each scan line mask is "AND" ed with one another and the composite scan line mask is then utilized to mask neu regions.
Uith reference to figure 9, an example of an output displayed on monitor 34 is illustrated. Region 200 uas originally defined by a user and stored in memory 26 as an ordered list of inversion points. By specifying a proper 35 region operator as described above, regions 210 and 240 have been displayed such that it appears that region 20 200 lies betueen regions 210 and 240. Similarly, 'text has been provided uithin each folder shaped region, and appropriate region clipping using the scan line mask method as described above , insures that only those portions of each region uhich uould be 5 visible if actual folders were used is displayed.
Moreover, it uill be apparent to one skilled in the art that although the method has been described uith emphasis on binary representations on the display device 34, end therefore 10 in black and uhite, that appropriate inversion point and scan line masking for colour images may also be achieved, for example, to provide the colours of red, green and blue, three inversion point representations of a region may be utilized, one for each colour respectively. Thus, the presence of an inversion point 15 in one colour region may.selectively discharge a colour gun in a colour CRT or the like for that colour. Similarly, various colours could be achieved by the appropriate combination of the three inversion point representations of each region stored in memory.
CODING DETAILS No particular programming language hoe been indicated for carrying out the various procedures described above. This is in part due to the fact that not all languages that might ba mentioned are universally available. Each user of a particular 25 computer uill be aware of the language which is most suitable for his immediate purposes. In practice, it has proven useful to substantially implement the method in an Assembly language uhich provides a machine executable object code.
Because the computers end the monitor systems uhich may be used in practicing the method consist of many diverse elements, no deteiled program listings have been provided. It is considered that the oparationsand other procedures described above and illustrated in the accompanying drawings are 35 sufficiently disclosed to permit one of ordinary skill to practice the method or so much of it as is of use to him. 21 Thus, methods and apparatus uhich are most advantageously used in conjunction with -a digital computer to provide improved graphics capability have been disclosed. The use of inversion points and scan lin9 masking allows any arbitrary region to be defined, manipulated and transferred faster and more efficiently than systems previously found in the art.
The present application has been divided-out of our' capending Application No,0324146 in uhich there is described end claimed a computer display system and a method for generating and manipulating graphic representations on a computer controlled display means.

Claims (5)

1. A method for selectively transferring image data from a first location in a computer memory to a second location in said memory, comprising the steps of: defining a one scan line buffer in said memory, said scan line buffer sequentially containing said image data in said first location; defining a one scan line mask buffer in said memory, said scan line mask sequentially containing mask image data in said second location; sequentially comparing the contents of said scan line buffer with the contents of said scan line mask; providing a predetermined precedence as defined by a user between the contents of said scan line buffer and said scan line mask, such that only selected image data in said scan line buffer having priority is transferred to said second location; whereby image data is selectively transferred from said first location to said second location.
2. The method as defined by claim 1 wherein said second location comprises a plurality of bits, each bit corresponding to an element on a display system.
3. The method as defined by claim 2 wherein image data in said second location is displayed on said display system.
4. The method as defined by claim 3 wherein said scan line buffer sequentially contains said image data in said first location in the order in which said image data will be displayed on said display system. 5. The method as defined by claim 4 wherein said scan line mask sequentially contains image data in said second location in the order in which said image data is displayed. - 23 - 6. A method for selectively transferring image data from a first location in a computor memory to a second location in said memory substantially as described herein with reference to the accompanying drawings. Dated this 9th day of March 1987. BY: (Signed) TOMKINS & CO., (Applicants1 Agents,
5. , Dartmouth Road, DUBLIN 6.
IE589/87A 1982-09-30 1983-09-29 Image data transfer method IE54824B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/428,635 US4622545A (en) 1982-09-30 1982-09-30 Method and apparatus for image compression and manipulation
IE2292/83A IE54823B1 (en) 1982-09-30 1983-09-29 Graphics display method and apparatus

Publications (2)

Publication Number Publication Date
IE870589L IE870589L (en) 1984-03-30
IE54824B1 true IE54824B1 (en) 1990-02-14

Family

ID=26319247

Family Applications (1)

Application Number Title Priority Date Filing Date
IE589/87A IE54824B1 (en) 1982-09-30 1983-09-29 Image data transfer method

Country Status (1)

Country Link
IE (1) IE54824B1 (en)

Also Published As

Publication number Publication date
IE870589L (en) 1984-03-30

Similar Documents

Publication Publication Date Title
US4622545A (en) Method and apparatus for image compression and manipulation
EP0356103B1 (en) Scan-conversion process and processor
US4982345A (en) Interactive computer graphics display system processing method for identifying an operator selected displayed object
US5329613A (en) Apparatus and method for relating a point of selection to an object in a graphics display system
EP0116737A2 (en) Three-dimensional display system
US5003497A (en) Method for three-dimensional clip checking for computer graphics
US5175805A (en) Method and apparatus for sequencing composite operations of pixels
US5014222A (en) Method of manipulating images larger than a viewport
US5020002A (en) Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system
US5157764A (en) Apparatus and method for using a test window in a graphics subsystem which incorporates hardware to perform clipping of images
US5128872A (en) Method and apparatus for determining line positions for display and manipulation by a computer system
US4945497A (en) Method and apparatus for translating rectilinear information into scan line information for display by a computer system
IE54824B1 (en) Image data transfer method
US5117485A (en) Method and apparatus for sorting line segments for display and manipulation by a computer system
US5261032A (en) Method for manipulation rectilinearly defined segmnts to form image shapes
EP0268038B1 (en) Graphics processing system
EP0145817B1 (en) A data display system
GB2059729A (en) Multicolour display of digitally processed data
EP0521210B1 (en) Graphics clipping
Levy Vax station: A general-purpose raster graphics architecture
GB2223383A (en) Graphic generation and storage
AU618129B2 (en) Method and apparatus for sorting line segments for display and manipulation by a computer system
Foley et al. ICL: The Image Composition Language
JPS62271187A (en) Vector drawing system
EP0163872A2 (en) Method of correlating on straight lines in an interactive display system

Legal Events

Date Code Title Description
MM4A Patent lapsed