CA1175150A - Banded vector to raster converter - Google Patents

Banded vector to raster converter

Info

Publication number
CA1175150A
CA1175150A CA000399980A CA399980A CA1175150A CA 1175150 A CA1175150 A CA 1175150A CA 000399980 A CA000399980 A CA 000399980A CA 399980 A CA399980 A CA 399980A CA 1175150 A CA1175150 A CA 1175150A
Authority
CA
Canada
Prior art keywords
vectors
coordinates
vector
memory
determining
Prior art date
Legal status (The legal status 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 status listed.)
Expired
Application number
CA000399980A
Other languages
French (fr)
Inventor
Bruce E. Imsand
Christopher L. Thomas
David D. Dorfmueller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intergraph Corp
Original Assignee
Intergraph Corp
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
Application filed by Intergraph Corp filed Critical Intergraph Corp
Application granted granted Critical
Publication of CA1175150A publication Critical patent/CA1175150A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/22Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using plotters
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/42Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of patterns using a display memory without fixed position correspondence between the display memory contents and the display position on the screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0065Page or partial page composition

Abstract

BANDED VECTOR TO RASTER CONVERTER

ABSTRACT OF THE DISCLOSURE
A vector to raster converter system in which vectors are delivered to the system and stored in a vector memory in groups. Each group includes all vectors which have at least a portion in a particular area of the output plot called a vector band. Vectors are serially read out of the vector memory and con-verted into a series of coordinates of points along the vector. The coordinates of each point are analyzed to determine if the point lies in a second particular area within the vector band called a raster band. The coordinates in the raster band are stored in a raster memory. After the entire vector band has been rasterized the contents of the raster memory are output to a plotter. The contents of the vector memory is then rasterized again and a determination is made as to whether each pair of coordinates is in the next raster band. This process continues until all of the raster bands in the vector band have been processed. All of the vectors in the next vector band are then loaded into the vector memory and the process continues.

Description

~7~15~

BANDED VECTOR TO RASTER CONVERTER
BACKGROUND OF THE INVENTXON

1. Field of the Invention The present invention relates to interface devices for electrostatic plotters, matrix plotters, s matrix television systems and other systems which need matrix or rasterized data to operate. More particularly, the present invention relates to vector to raster converters.
2. History of the Prior Art In many fields, such as interactive computer-graphics, computers are able to efficiently process data in the form of vectors. A vector is, in effect, a shorthand method of describing a line. Typically, a vector is representefl either as two coordinates (the 1~ coordinates of its origin and the coordinates of its end point), or as the coordinates of its origin and the chan~e hetween the origin and the end point in two or three dimensions, dependinq on whether we are dealing with a surface or a volume. Such a vector 2Q description is a shorthana notation as compared to the alternative of providinq the coordinates of every identifiable point between the end points of the line.
Obviously, vector notation ~reatly reduces the amount of data that must be stored in a computer 25 to describe the line Furthermore, al~orithms have been written for computers which efficiently and 4 rapidly process the vector representations.
In addition, vectors may be considered to be mathematically accurate descriptions of lines in that 30 vectors are continuous from endpoint to endpoint.
Out~ut devices exist which can make efficient use of vector data. For example, pen plotters are well known in which the movement of a pen on a sheet .. . . , . , .. . ~

1 ~75 lS~

of paper can be controlled in two dimensions. Thus, the pen in such a device is directed to the origin of the vector, and then the pen moves either to the coordinates of the end point of the vector or by the amount of change in the dimensions. In this manner, the vector is represented onto the paper. It is a good representation in that ;t is continuous just like the vector.
~owever, there are a number of sYstems which cannot efficiently process data in vector notation.
One example of such a system is an electrostatic plotter. Such plotters are capable of simultaneously printing a plurality of selected dots in a particular row across a sheet of paper. The paper then moves by an incremental amount and selected 20ts in the next row are simultaneously printed. Such printers are generally referred to as line printers in that they print a scan line of dots at a time. In order to print a vector, the printer produces a series of dots which approximate the position of the vector. Thus, there may be any number of dots in a scan line used to represent vector approximations intersecting that scan line. Outputtin~ vectors with a matrix plotter becomes more difficult as the number of vectors increases. For any given row on the output paper, it must be determined where dots should appear so that all of the appropriate vectors are represented.
A key difference, then, between a oe~
printer and an electrostatic plotter is that the Pe~
printer can output continuous data, while an electro-statie plotter can only output discrete points. The electrostatic plotter must be supplied with data as to which of the plurality of possible discrete dots should be printed. This type of discrete data is referred to as matrix data or ~rasterized" data.

~3~7~

Other devices which require rasterized data include matrix plotters and raster tellevision svstems.
common element of all of these devices or systems is that data is displayed a row a't a time.
Thus, for a computer which processes in vector notation to output data to such raster or matrix systems, the data must Ibe rasterized. That is, v~ctor notation must be converted to a raster or matrix format to determine where dots should be located on each scan line of the output device.
~ any approaches are known for rasterizing vector data. The following patents relate qenerally to vector to raster conversion: 3,870,922 - Shuttoh and 3,821,731 - Levine. In the most popular approach, the computer that has been processinq the vectors actually does the conversion~ First, the computer must define each vector in the plot and cli~ that portion of any vector which falls outside the area to be printed. Then, the computer must orient the 2~ vectors. That is, the computer must determine which end of each vector will appear on the output device first. After all of the vectors are oriented, the computer must order them. That is, the computer must make a list of the vectors in the order in which they will first appear on the output device. Finally, the computer must run through the list of vectors and convert each into a series of coordinates of the dots that approximate the vector.
Tasks such as these are relatively simple repetitive procedures which do not fully utilize the computational resources of a general purpose computer.
Furthermore, such simple procedures can be implemented with special purpose hardware at a significant cost reduction and performance improvement.

~7~

Systems are presently being marketed where these tasks are performed by a microPrOCeSSOr system ¦ in real time. In such a systenn, vectors are sent to the microprocessor system in random order. As each vector arrives, it is indexed, for example, using a linked tree-type scheme. The linked tree contains data as to where the next vector whiich will appear on the plot has been stored.
There are two Problems with this approach.
The most significant problem is that every vector in the entire plot must be stored, since the last vector sent from the computer to the microprocessor may be the first vector that will be printed. Although such a system does relieve the host computer of performing 1~ the entire rasterizing process, the system is still undesirable in that it must include an enormous amount of costly memorY. Secondly this approach merelv transfers the computational requirements from the host computer to the microprocessor. No processing speed improvements are realized since the microprocessor typicallv has no more processing capability than the host computer.
To speed the rasterizinq process, those skilled in the art have resorted to specialized hard-ware rather than computers to orqanize and perform theconversion. In one class of such systems, a host computer qenerates vectors, orients them (i.e., deter-mines which end of each vector will appear first), and determines which vectors fall within bands on the plot. Furthermore, the host computer divides the plot into equal size bands across the width of the drawinq.
The band size must be chosen so that the number of vectors appearing in any band does not exceed the capacity of the convertin~ svstem. The host computer outputs one band of vectors at a time to the ~ ~7~1~0 converting system where it is stored in vector memory.
While the vectors are being loaded, parametric information such as slope and the like are also stored in the vector memory.
As the outputting of raster data begins, each vector in the vector memory is analyzed to determine whether it has any points which fall in the first row to be printed. All such vectors are then flagged as "active" vectors (i.é., those vectors crossing the scan line presently being outputted). The points at which the active vectors cross the scan line being outputted are then calculated, using a slope-intercept approach~ and inserted in a scan line buffer. The data in the scan line buffer is then sent to the output device.
Then, the vector list is modified to elimi-nate those vectors that have been completely printed and to flag those vectors from the vector memor~ which should beccme active vectors for the next scan line.
~his process continues until all of the scan lines in the particular vector band are outputted. At the end of the vector band, all active vectors (i.e., those continuing into the next band) are saved and processed with the next vector band.
The vectors in the next band are then trans-ferred from the host computer to the vector memory and the process described above is repeated.
The system described above has the advantage that the host computer's processing requirements have been reduced; specifically, a majority of the sorting re~uirements have been distributed and the rasteriza-tion process is completely performed by the converting system. However, a number of drawbacks are inherent in this system. Specifically, this system must pro-cess the entire vector list for every scan line. For 5 ~

each scan line to be outputted, the coordinates of thedots in that scan line are calculated employing the parametric data stored in the vector memory. rhe requirement of storinq the parametric data greatly enlarqes the vector memory, and thus the cost of the system. For example, each vector in the vector memorv is described in about 100 bits of data. This is approximately four times the amount o memory needed to simDly store the coordinates of the origin of the vector and either the coordinates of the end point or the amount of change between the origin and the end point.
Also, vectors (and not point coordinates~ are analyzed to determine whether they fall within a particular scan line to be outputted. The making of this decision requires a relatively large amount of processing for each of the vectorsO Thus, this also causes the system to be slow in processing data.
Finally, directed data must be supplied by the host computer to the converting system. That is the vector data must be oriented so that the ori~in, rather than the end point, of the vectors, will appear first in the plot. This vector manipulation is an additional processing step for the host computer.
The following U.S. patents teach s~stems similar to that described above in that vectors, and not raster coordinates, are analyzed to determine if the vector falls within a predetermined area or in any case should be processed next: 3,996,5~5 - ~o~an et al; 3,812,491 - Barraclough et al; 3,893,075 Orban et al; and 3,895,357 - Schwartz et al.

~ 17~ ~5~

S UMM~RY OF THE INVENT ION

¦ The present invention overcomes these problems by converting the vectors to a raster or matrix format before a decision is made as to whether each vector is ready to be outputted.
In the present invention, the host computer need only determine all vectors which have at least a portion in a particular area or vector band. The host computer outputs one band of vector data to the present invention at a time. The size of each band is determined by the density of the vectors in a particu-lar area and the size of the memory in the present invention into which the vector band of data is loaded. Once a vector band of data is stored in the memory, referred to as the vector memory, each vector is serially selected and applied to a hardware vector to raster converter which generates a series of coordinates which correspond to points in the vector. These coordinates are applied to a comparator and a decision is made with respect to each as to whether it falls within a particular small area of the output within the particular vector band referred to as the raster band. If the coordinate does fall within a raster band, a bit is stored in a second memoryr referred to as a raster memory, at an address related to the location of the coordinate.
All of the vectors in the vector band are processed in this fashion and a decision is made as to whether each ~enerated coordinate is within one par-ticular raster band. Once all of the vectors in thevector band have been so processed, the contents of the raster memory are output to, for example, an electrostatic ~lotter or other raster device.

1 175 1~

Then, all of the vectors in the vector memorv are again converted into coordinates and a decision is ¦ made with respect to each coordinate as to whether it is in the next raster band. IE it is, the coor~inate is stored in the raster memory. This process contin-ues until all of the vectors in the vector memory have been processed for each of the raster bands in the vector band. Then, the host computer sends to the vector memory all oi- the vectors that have at least a portion in the next vector band. The present inven-tion processes these vectors in the same manner.
Thus r for each raster band within a vector band, the entire vector band of data is rasterized.
~ecisions as to whether or not coordinates are in the ~5 raster band are made after rasterization.
At first blush, it may appear that the present invention is much less efficient than the prior art. ~oweverr the present invention is, in fact, much faster and more simple than the prior art. The primary reason for this is that hardware vector to raster converters operate many times faster than software processors. In factr in the preferred embodiment of the present invention, an additional coordinate in a vector can be generated every 87 nsec. The decision as to whether each coordinate is within the raster band can be made at this rate.
Thus r although every vector in a vector band must be rasterized ~or each raster bandr the rasterizing (coordinate generating) process itself is sufficiently fast, compared to software processing, to overcome the supposed inefficiency. Therefore, the amount of time necessary to rasterize a vector band is comparatively small, so that the present invention operat;s very rapidly.

1 17~150 Furthermore~ since the present invention does not require the ve~tors to be reoriented (so that the vector origins appear first Oll the output), and since it is not necessary to generate a vector list in order of appearance in the-output (which, as will be recalled from above, are extremely time consuming processes) the present invention operates more rapidlY
than any vector to raster convertin~ system presently known to the inventors.
~0 To further enhance the speed of the present invention, both memories are double buffered. That is, two vector memories and two raster memories are provided. As the host computer sends vector data to one of the vector memories, the contents of the other vector memory are bein~ processed by the vector to raster converter. When the vector memories are respectively filled and emptied, the role is reversed so that the host computer stores vector data in the second vector memory and the first vector memory provides data to the vector to raster converter.
As mentioned above, two raster memories are emploved. As coordinate locations are being stored in the first raster memory~ the contents of the second raster memory are being outputted. Once the first raster memory is full and the second raster memory is empty, coordinate data is then applied to the second raster memory and the contents of the first raster memory are outputted.
Not only is the present invention fast, but it is also simple and inexpensive to manufacture.
Since vector manipulations are held to an absolute minimum, complicated computer pro~ramming is elimi-nated. Since the vector memorv need only hold all of the vectors in a vector band, and since the raster memory need only hold data for a few lines of output, 1 17~ ~5~

the a~ount of memory required by the present invention is comparatively small. Thusv the cost of the present invention is further reduced.
Also, in the prior art, as has been described above, clipping is performed by the computer as a separate and independent step in its processing, and thus takes time. In the pres~ent invention, if a portion of the vector should :Lie outside o~ the plot being outputted, the coordinates in that portion of the vector will always reside outside of the particu-lar raster band being processed. Therefore thQ
coordinates of those points will be disregarded, and thrown into the proverbial "bit bucketn. Thus, in the present invention, clipping is performed "automati-cally" in that no separate and distinct clippingoperation must be performed by any component.

BRIEF DESCRIPTION OF THE DRAWING

These and other objects and advantages of the present invention will become more apparent and more readil~ appreciated from the following detailed description of the presently preferred exemplary embodiment of the invention taken in conjunction with the accompanying drawing, of which:

FIGURE 1 is a schematic representation of the present invention;

FIGURE 2 is a schematic illustration of the relation of vector banding to raster banding, FIGURE 3 i5 a timing diagram illustrating the operation oi- the device illustrated in FIGVRE l;

~ 175150 FIGURE 4 is a block diagram of the vector to raster conversion portion of the present invention;

FIGURE 5 is a timinq diagram useful in under-standing the circuitry illustrated in FIGURE 4;

FIGURE 6 is a block diagram of the algorithm generation portion of the present invention;

FIGURE 7 is a timing diagram useful in under-standing the circuitrY illustrated in ~IGU~ 6;

FIGURE 8 is a block diagram of the raster memory portion of the present invention; and FIGURE 9 is a timing diagram useful in understanding the operation of the circuitry illustrated in FIGURE 8.

DETA ILE~ DE SCR IP TION OF THE
PRESENTLY PREFERRED EXEMPLARY EMBODIMENT

Turning now to FIGURE 1, host computer 100 provides the vectors to be rasterized. These vectors are applied to either vector memory 102 or vector memory 104 as will be described below. In the preferred embodiment, each vector memory 102 and 104 is a random access memory that can store 10,000 lh-bit words that can be used to represent 4,000 to 7,000 vectors. ~owever, most plots contain more vectors than this. Therefore, a technique called vector banding must be employed to rasterize an entire plot. FIGU~E 2 illustrates the concept of vector banding. In FIGURE 2, plotter 216 is outputting a plot containing the letters "A", "B" and "C", and a ~ 17~ 150 circle. The plot maY be thought of as containing a plurality of areas, referred to as vector bands, extendin~ the full width of the plot. In FI~URE 2 the heavy lines in the Y direction define vector bands.
The first vector band contains no data. The second vector band contains the first portion of the circle and the letters "A" and "Bn. The third vector band contains the middle portion of the circle and the letter "cn. The next vector band contains the last portion of the circle.
To accomplish vector banding, host com~uter 100 divides into vector bands the entire list of vector~. It is a vector band of data that host computer 100 sends to vector memory 102 or vector memory 104 at a time. Host computer 100 has only two requirements in regard to this transfer. First, the vector bands must be fed in order from the top of the output to the bottom. Second, host computer 100 must place in each vector band all vectors which have at least a portion within the vector band. However, within each band, vectors can be in any order and in any direction.
The only restriction on the area covered by a vector band is that all vectors contained within it must be able to be stored in one of vector memories 102 and 104. With a low density plot there may be only one vector band for the plot. For an extremely dense plot there may be many vector bands. If a plot contains 100,000 vectors, and if we can store 5,000 vectors in vector memory 102, the host computer 100 could divide the 100,000 vectors into twenty vector bands.
Some portions of the plot are usually more densely packed with vectors than other portions.
Thus, if the plot were actually divided into the ~ ~7~ ~5~

twenty vector bands of equal area, chances are some bands would contain more than the S,000 permissible vectors. A method of dealing ~with this problem is to vary the area covered by a vector band in accordance s with the density of the plot SID that each vector band contains approximately the same number of vectors.
As described above, the only data necessary to describe a vector are the ~ordinates of its origin and either the coordinates of its end ~oint or the change in the coordinates from the oriqin to the end point. Thus, for any vector, data need only be stored with respect to its origin and its end point. One possible method Qf adjusting the area covered by each vector band so that all contain approximately the same number of vectors is to divide a plot into a large number of incremental vector bands. As host computer 100 produces the vector list, it can easily generate a vector density histogram which describes the density of vectors in each incremental vector band. Then, it is a simple matter for host computer 100 to count the number of vectors starting and stopping in each incremental vector band. Host computer 100 may then group incremental vector bands into vector bands which contain approximately the same number of vectors, which number is close to but less than the maximum number of vectors that can be stored in each vector memory 102 or 104. As is well known in the art, the creation of vector histograms bv host computers is not ne~, and does nDt play any part in the present invention.
In fact, the operations attributed to the host computer 100 outlined above need not even be performed b~ the host computer. Associative informa-tion processors are well known, such as the File ProcessorTM, manufactured by Intergraph, Corp. which l t`7~

will perform the vector banding. The File ProcessorTM
examines a disk file containing all of the vector data and decides whether the vectors reside in a particular vector band and outputs these vectors. The File ProcessorTM is particularly useful in that a 100,000 vector plot can be sorted into bands in a matter of seconds (approximately 15 seconds), whereas it takes many minutes to sort into bands the same number of vectors with more conventional processors. However, the use of these devices to perform vector banding or the like is not new, as known to those skill~d in the art, and does not play any part in this invention.
Vector memories 102 and 10~ provide a double buffered vector memory. That is, as host computer 100 is loading vectors into one of vector memories 10~ and 104, let us say vector memory 102 as an example, data is being outputted from vector memory 104. After vector memorY 102 is loaded and vector memorv 104 is emptY, host c~mputer 100 loads data into vector memory 104, while the contents of vector memory 102 are read out. This technique greatly speeds the rasterizing of the vectors.
Data from vector memories 102 and 104 are read out to vector to raster converter 106. The purpose of vector to raster converter 106 is to generate the coordinates of a series of point-s as close as possible to the actual vector. In the preferred embodiment of the present invention, this is accomplished using the Bresenham method. Before explaining the method, it will be necessary to define three terms used in the method: major axis, minor axis, and ~i. The preferred embodiment of the present invention e~ploys cartesian coordinates. Therefore, the change in one dimension between the origin and the end point of a vector mav he referred to as ~x and the 1 ~75~50 change in the other dimension may be referred to as ~y. The major axis is the axis with the larger abso-lute value of change. That is, x is the major axis when the absolute value of ~x is larger than the absolute value of Qy, and vice versa. The absolute value of the amount of change of the maJor axis is referred to as ~a. The minor axis is the axis with the smaller absolute value of change, and this value is referred to as ~b. ~i is t:he decision function generated in the ith iteration of the method.
According to the Bresenham method:

+2~b-n2~a, where i=1,2,3...

~=2~b-~a n=l if Qi ' =0 if ~i ~

One obviously starts to generate the coordi-nates with the origin of the vector. When ~i is greater than or equal to 0, both dimensions of the origin coordinates are incrementally changed to gener-ate the next coordinate of a point along the vectorO
When ~i is less than zero, only the coordinate related to the major axis is incrementally changed to generate the next coordinates of a point along the vector.
Thus, according to the Bresenham algorithm, the dimension corresponding to the major axis is always incrementally changed. The dimension corresponding to the minor a~is is incrementally changed depending on the sign of the decision function, Qi. The vector has been fully rasterized when i~ a.

~17~

The coordinates generated by vector to raster converter 106 are applied to comparator 108. The function o~ comparator 108 i9 to determine if each of the c~ordinates generated by vector to raster conver-ter 106 fall within a particular area of the vectorband, called the raster band. FIGURE 2 also illus-trates the concept of raster banding. Each vector band is divided into a plurality of areas of equal size referred to as raster bands. If the coordinates do fall within ~he particular raster band being analyzed, comparator 108 enables a bit to be recorded in one of random access raster memories 110 and 112 at a loca-tion related to the coordinate. If the coordinate falls outside of the raster band presently being processed, the coordinate is simply discarded.
Thus, the raster hand concept assigns a small amount of memory to a virtual address space or a raster band in the plot. Only the X and Y addresses contained within that virtual address space of the raster band memory are saved. A pass through the entire vector list describing the vector band must be made for every raster band area to be oonverted in the vector band. According to FIGURE 2, all of the raster bands in the first vector band and the first two raster bands in the second vector band contain no vectors, and therefore would have no bits turned on in the raster memory during these passes through the vector list. The next pass through the vector list for the second vector band contains part of the circle. In this pass, bit addresses generated by the vector-to-raster converter would be stored in the raster memory. The bit addresses are stored in the raster memory because the virtual address space assigned to the raster memory during this pass would ~ 5 1 5 0 be the same as portions of the bit addresses generated by the vector-to-raster converter.
At the conclusion of this pass a portion of the drawing is in memory. This portion in memory can be output without any fear of missing any data. After the data is outputted, the memory is cleared and the next pass through the vector ]List i5 made by the vector-to-raster converter At this time the raster memory is assigned to the virtual address space of the next raster band. A part of t:he character ~A~ and additional parts of the circle are stored in this pass. In the next two passes the remainder of the character "A" is rasteriz~d along with other parts of the circle. This process continues until the entire plot has been generated.
Obviously, the ~i~e of the ra~ter band is controlled by the amount of raster memory employed.
In the preferred embodiment, each of raster memories 110 and 112 contains 131,072 bits. If the width of a plotting area is 20.48 inches, the width of the raster band will be 0.16 inches or 32 scan lines at 200 dots per inch. Raster memories 110 and 112 are actually configured similar to the plot. Thus, each bit in memory corresponds to a particular dot in the output in the raster band. Raster memories 110 and 112 can he reconfigured to adjust for the size of the plot.
Thus, if the width of the plotting area doubles from 20.48 inches to 40.96 inches, the length of the raster band will change from 32 scan lines to 16 scan lines.
Raster memories 110 and 112 provide a single, double buffered memory. Thus, while vector to raster converter 106 provides data to raster memory 110, the contents of raster memory 112 are being read out.
Once raster memory 110 is full and raster memory 112 is empty, vector to raster converter 106 provides data 1 1751S~

to raster memory 112, and the contents of raster memory are read out and sent to plotter interface 114.
Vector to raster convert 106, employed in the preferred embodiment of the pxesent invention, can generate one coordinate every 87 nsec. However, raster memories 110 and 112 miight be key speed bottlenecks, since it takes 2]L7 nsec. to write data into the memory in the preferred embodiment. Faster memories could be used, but the cost of memories increases dramatically with speed. However, as has been described above, since the raster band is generally much smaller than a vector band, most of the coordinates generated by vector to raster converter 106 need not be stored in raster memories 110 and 112. Therefore, in the preferred embodiment, the rate at which vector to raster converter 106 operates is changed whenever a coordinate falls within the raster band.
As described above, the present invention appears to be inefficient since an entire vector band must be rasterized for each raster band. ~owever, as will be developed below~ vector to raster converter 106 provides no speed limitation in a typical case.
As indicated above, vector to raster converter 106, in the preferred embodiment, performs one oonversion ev~ry 87 nsec. Suppose there are 5000 vectors in each vector band, which value is indeed average for this preferred embodiment. Furthermore assume that the average length of each vector is 100 dots. Given a vector to raster conversion rate of 217 nsec./dot it will take 108.5 msec. to rasterize this vector hand.
Note that this vector to raster conversion rate is worst case and typicall~ is much less since not all coordinates fall within the raster band and therefore can be processed at an 87 nsec. rate. Also note that 1 ~751S~

the plotter output speed ~i.e., the speed at which the paper moves out of the plotter) is typically 1 ¦ inch/sec. and that a typically plotter resolution is 200 scan lines per inch. This means that a scan line is output every 5 msec. or a raster band of 32 scan lines is output every 160 msec. Notice that the vector to raster conversion is faster than l:he speed at which the plotter can output. Thus, vector to raster converter 106 does not limit the speed o~ the preferred embodiment of the present invention.
Once one of the raster memories, for example, raster memory 110 has been fully loaded by vector to raster converter 10S, the data stored therein i~ ready to be output. Thus, as illustrated in FIGURE 1, raster memory 110 provides the data to plotter inter-face 11~. Plotter interface 11~ sends the data, in turn, to the plotter.
As can be well imagined, the interaction of the components referred to above must be coordinated.
This coordination in the present invention is per-formed by housekeeping mucrocomputer 116. In the preferred embodiment, microcomputer 116 is the LSI
11/2 manufactured by Digital Equipment Corporation.
The interaction of microcomputer 11~ with the other elements will be described in more detail below with respect to FIGURE 3 which is a timing diagram of the operation of the system illustrated in FIGURE 1.
FIGURE 3 illustrates the operation of the circuitry in FIGURE 1 for three vector bands of data~
The first vector band includes three raster bands, the second vector band includes tWD raster bands, and the third vector bands includes four raster bands.
During a first time period, housekeeping microcomputer 116 causes host computer 100 to supply the first vector band of data to vector memory 102, and vector memory 102 accepts this data. During a second time interval, housekeeping microcomputer 116 causes host c~mputer 100 to supply the second vector band of data to vector memory 104, and vector memory 104 accepts this data. At the same time, housekeeping microcomputer 116 causes vector memory 102 to serially output all of the vectors stored therein to vector to raster converter 106 which converts all of the vectors to raster or matrix data. Comparator lOB determines whether each of the points generated by vector to raster converter 106 lies within the first raster band of the first vector band. The location of those points lying within the first raster band are loaded in raster memory 110.
After the contents of vector memory 102 have been rasterized, and those points in the first raster band have been stored in raster memory 110, house-keeping microcomputer 116, during a third time period, causes the cDntents of vector memory 102 to again be rasterized by vector to raster converter 106. This time, however, comparator 108 determines whether any of the points generated by converter 106 lie within the second raster band of t~.e first vector band. The positions of all such points are stored in raster memory 112. Also, since the location of all the points lying in the first raster band of the first vector band had been stored in raster memory 110 during the second time period, during the third time period, the oDntents of raster memory 110 are output to plotter interface 114, and eventually the plotter.
During a fourth time period, the contents of vector memory 102 are again rasterized by vector to raster converter 106. This time, comparator 108 determines whether any of the points generated by converter 106 lie within the third raster band of the ~ ;17~ ~0 ~1 first vector band. If so, the locations of these points are loaded in raster memory 110, since raster memory 110 was emptied during the third time period.
Also, since during the third time period, raster memory 112 was loaded with the locations o~ all points in the second raster band of the first vector band, during the fourth time period, the locations of these points are output from raster memory 11~ to plotter interface 114 so as to empty raster memory 112.
After the fourth time period, as a result of data that had been previously applied to housekeeping microcomputer 116, microcomputer 116 realizes that comparator 108 has compared the locations of the points generated by converter 106 against each of the three raster bands in the first vector band. There-~ fore, housekeepinq microcomputer 116 causes host computer 100 to load the third vector band of data into vector memory 102. At the same time, housekeep-ing microcGmputer 116 causes the contents of vector memory 104 (i.e., the vectors of the second vector band) to he rasterized by vector to raster converter 106. Comparator 108 determines whether the location of any of the points generated by converter 106 lies within the first raster band of the second vector band. If so, the locations of these points are stored in raster memory 112. At the same time, raster memory 110 contains the location of all of the points in the third raster band of the first vector band. Tbese points are output to plotter interface 114.
During the sixth time period, housekeeping microcomputer 116 again causes the contents of vector memory 104 to be rasteriz~d by vector to raster converter 106. Housekeeping microcomputer 116 causes comparator 108 to indicate those points which lie in the second raster band of the second vector band. The ~ 1751~0 location of such points are loaded in raster me~ory 110. At the same time, the locations of the points in ¦ the first raster band of the second vector band stored in raster memory 112 are output to plotter interface 114.
As indicated above, the vector data for the third vector band was loaded in vector memory 102 during the fifth time period. Since all of the raster bands in the second vector band were processed during the fi~th and sixth time periods, in the seventh time period, housekeeping microcomputer 116 causes the vector data for the third vector band stored in vector mem OE y 102 to be applied to vector bo raster converter 106. As this occurs, housekeeping microcomputer 11~
causes comparator 108 to determine whether any of the points generated by vector to raster converter 106 1ie within the first raster band of the third vector band.
The locations of such points are stored in raster memory 112. At the same time, the locations of points in the second raster band of the second vector band stored in raster memory 110 are output to plotter interface 114.
This process continues through the tenth time period during which period the contents of vector memory 102 (i.e., vectors in the third vector band) are rasterized in converter 106 for the last time and comparator 108 determines whether any of the points generated by converter 106 lie within the fourth raster band of the third vector band. Such points are loaded in raster memory 110.
During the process a escribed above, house-keeping microcomputer 116 is supplied with data as to the number of vector bands to be processed. Thus, in the eleventh time period, housekeeping microcomputer 11~ is aware that the last vector band has been ~ ~7~ lS~

processed. All that remains is to output the last data from raster memory 110. Thus, during the ¦ eleventh time period housekeeping microcomputer causes the locations of the points of the fourth raster band of the third vector memory stored in raster memory 110 to be output to plotter interface 114.
FIGURES 4, 6 and 8 illustrate in more detail the system shown in FIGURE 1. As can be seen in FIGURE 4, host computer 100 communicates with the remainder of the system via system bus 118. Also connected to bus 118 are housekeeping microccmputer 116, memory 120 associated with housekeeping microcom-puter 116, system bus tranceivers 122, processor and DMA protocol control and interrupt logic (PDPCI) 124 and bus interface control logic 126 (illustrated and explained in more detail with respect to FIGURE 8).
Memory 1~0 includes the program memory 128 for micro-computer 116, in addition to vector memories 102 and 104. System bus transceivers 122 act as an interface between system bus I18 and VRC bus 130. In the pre-ferred embodiment, transceivers 122 include trans-ceiver chips designate2 DC005 wh;ch are manufactured by Digital Equipment Corp. These chips are four bit wide transceivers with address and decoding functions built in. The chips were obtained from nigital E~uip-ment Corporation as part of a kit called the "CHIP
~IT" For Interfacing With The LSI-ll Bus. PDPCI 124 enables the various registers connected to VRC bus 130 and controls the transfer of data from vector memories 102 and 104 to the remainder of vector to raster converter (V]RC) 106. This control of the transfer of data is performed in response to housekeeping computer 116. The major components of PDPCI 12A, in the preferred embodiment, include the DC010 DMA controller chip which generates bus control signals to manage 5 ~ 5 0 data transfers on bus 118 when in a DM~ mode, and the DC003 interrupt protocol chip which manages and generates necessary bus signals for interrupt transactions. These chips are also made by Digital Equipment Corporation and contain~d in the "CHIP RIT"
referred to above.
As will be developed below, data is DMA'd from vector memories 10~ and 104 to VRC 106. When data is transferred by a DMA (Idirect memory access) it means that the dat~ is transferred without the assistance of an associated computer. Instead, a counter or the like addresses the memory and the counter is incremented to change the address being accessed. Thus, in order to set up DMA's, house-keeping microcomputer 116 provides a counter with theaddress of the first memory location from which information is to be retrieved and also provides another counter with the number of words of data to be transferred. Housekeeping microcomputer 116 then also provides a signal which starts the DMA. It receives a signal in the form of an interrupt when the D~ is finished.
In the preferred embodiment, vectors may be specified in a variety of manners. The system must 2; distinguish between moves (where a hypothetical pen tracing a particular vector does not touch the paper), and draws (where a hypothetical pen tracing the vector wDuld actually draw a line). Movement of a hyFotheti-cal pen may also be made in relative terms or absolute terms. If absolute terms are employed, the instruc-tion is for the hypothetical pen to go to one partic-ular location on the plot. In the preferred embodi-ment, the absolute mode can only be employed with moves and n~t draws. The relative mode instructs the hypothetical pen to move particular distances in the x i l~S150 and y directions relative to the previous position.
The relative mcde may be used with either moves or Q draws.
Also, the preferred embodiment has the ability to represent vectors in either a long form or a short form. The short form is employed with short vectors when using the relative mode, while the long format is employed with the absolute mode or long vectors in the relative mode. In the short format, 10 both dimensions of the vector (~x, ~y) are stored in a s;ngle 16 bit word. In the long format, each 16 bit word represents either an x coordinate or a y coordinate Typically, the transfer of data for one 15 vector requires the transfer of either two or three 16 bit ~ords. The first word is a oontrol word which contains in~ormation as to whether or not the relative or absolute mode is employed and whether or not the long or short format is employed. The next word 20 transferred oontains the x and y coordinates, if the short format is employed, or the x coordinate if the long format is employed. In the long format, an additional word is required to represent the y coordinate.
~5 Connected to VRC bus 130 are system bus transceivers 122, first in, first out (FIFO) register 132, VRC control/status register (CSR) 134, address co~pare register (ACR) 136, DM~ word counter (DWC) 138, and DM~ address counter (DAC) 140. When data is being transferred from system bus 118 to VRC bus 130, a control signal to PDPCI 124 causes PDPCI 124 to generate a signal bo enable the appropriate element ccnnected to VRC bus 130 to receive the data.
FIFO 132 is capable of storing 16 words.
When vector data is being transferred from vector 1 175~15~

memories 102 and 104 to VRC 106, the data is actually stored in FIFO 132. Data is DMA'd into FIFO 132 at a fixed rate, and is taken from FIFO 132 as needed by the remainder of VRC processor 106. Thus, FIFO 132 acts as a cushioh to insure that the remainder of VRC
106 always has the data it needs to continue the process. PDPCI 124 authorizes FIFO 132 to accept data by generating a Lo~D FIFO signal which is applied to FIFO 132. When FIFO 132 is full a signal is sent to PDPCI 124 to temporarily stop the transfer of data from vector memories 102 and 104 to FIFO 132.
VRC control/status register 134 generates signals indicative of the status of VRC 106 and initiates DMA transfers from vector memories 102 an~
104 to FIFO 132. After microcomputer llS has set up counters 138 and 140 for the DMA (as will be described below) housekeeping microcomputer 116 sends a bit to CSR 134. In response to this bit, CSR 134 generates a DM~ GO signal which is directed to PDPCI 124. When this occurs, P~PCI 124 begins the DMA as will be described below.
Address compare register 136 receives a number from housekeeping microcomputer 116 (upon a LOAD ACR signal from PDPCI 124) that indicates the particular raster band to be processed in the vector band that is loaded into one of raster memories 110 and 112. The numbers stored in ACR 136 are com~ared against higher order bits of the oDordinates generated by VRC 106 to determine if the point indicated by the coordinates is within the selected raster band.
n~c~ 140 addresses vector memory 102 or 104 during a DMA. DWC 138 indicates when the DMA transfer is finished. Thus, to begin a DM~, housekeeping microo~mputer 116 loads the address of the first location in vector memory 102 or 104 to be accessed 1 17515~

into n~C 140 via system bus 118, transceivers 122 and VRC bus 130 (upon a Lo~D n~c signal from PDPCI 124).
Housekeeping microcomputer 116 then places the total number of words bo be transferred from vector memory 102 or 104 to FIFO 132 on syst~em bus 118. This number passes from system bus 118 to transceivers 122 to VRC
bus 130, and this number is st~red in DWC 138 ~upon a LOAD D~C signal from PDPCI 124). In the preferred embodiment D~C 140 and DWC 138 are contained in a single chip designated DC 006. This chip is made by Digital Equipment Corp. a~d is contained in the "CHIP
RIT n referred to above.
After a DMA GD signal is received by PnæCI
124, pDecI 124 enables n~c 140 to access vector memorv 102 or 104 through buffer 142. After each accessing, PDPCI 124 increments ~AC 140 and decrements DWC 138.
This causes the next location in vector memory 102 or 104 to be retrieved. PDPCI 124 knows that the DM~
transfer is finished when DWC 138 sends a WORD COUNTER
0 signal indicating that the number stored therein is zero.
Words are read out of FIFO 132 as needed. If the particular word being read out is a control word, as indicated by the most significant bit therein, the pertinent bits are fed to control word register 148.
These bits indicate that this is a control word and whether the upcoming vector is in the long or short format, and the absolute or relative mode.
The output of x address counter 150 and y
3~ address counter 152 represent the oDordinates of a point in the vector. As the next point in the vector is determined, these oDunters are incrementally changed. If an absolute move is being processed, address counters 150 and 152 are loaded with the next two words from FIFO 132, respectively. It is from 5 ~
~8 these initi~1 coordinates that counters 150 and 152 will be incrementally changed to trace the upcoming relative move or draw. If the particular vector being processed is a relative move or draw, the process simply starts from wherever the previous vector left off. The o~ordinates of the last vector end point are retained by counters 150 and 152 and the incrementa-tion proceeds from there. Counters 150 and 152 are completely controlled by control logic 146.
FIGURE 5 is a timing diagram which illus-trates the sequence of events in the DM~ transfer of vector data from vector memories 102 and 104 to FIFO
132. FIGURE 5 particularly illustrates the operation of pnpcI 1~4. The scenario pictured in FIGURE S
assumes that vector data is being apPlied to FIFO 132 until FIFO 132 becomes full (after 16 words are stored). Then, after a pause, data is removed from FIFO 132 and the DMA transfer into FIFO 132 continues.
To begin the DM~ transfer, housekeeping microcomputer 116 causes a number related to the particular raster band being analyzed to be placed on VRC bus 130. Housekeeping microcomputer 116 then causes PDPCI 124 to generate a LC~D ACR signal so that address compare register 136 accepts this number.
Then, DM~ address counter 140 is loaded with the first address of vector memory 102 or 104 to be accessed. To accomplish this loading procedure, housekeeping microcomputer 116 causes the particular address to appear on VRC bus 130. Then, housekeeping microcomputer 116 causes PDPCI 124 to generate a Lo~D
n~c signal which causes DM~ address counter 140 to accept the data on VRC bus 130.
Next, DM~ word counter 138 is loaded in a manner similar to DMA address counter 140 in response to a LQ~D DWC signal. When DM~ word counter 138 is ~:~7~15~
2~

loaded with the ~tal n~nber of words to be trans-ferred into the DMA, the word oount in DWC 138 is no longer zero so the W~ D cw~ R O signal from DWC 138 becomes lo~.
~ousekeeping microcomputer 11~ then causes a bit to appear on VRC bus 130 to cause the initiation of the DM~ transfer, and housekeeping microcomputer 116 causes P~PCI 124 to generate a LQ~D CSR signal so that control status register 134 accepts the bit. In response, control status register 134 generates a DM~
t30 signal which is applied to P~PCI 124. In response to the D~ ~0 signal, PDPCI 124 generates a RE~D ~C
signal ~hich permits the address at the output o~ DMA
address counter 140 to be applied to vector memory 102 or 104 and the contents of the addressed memory location appear on VRC bus 130. After the data has settled on bus 130 P~PCI 124 generates a L~D E~tFO
siqnal which causes EIFO 132 to accept the data on VRC
bus 130.
So that the next word can be transferred to FIFO 132, P~PCI 124 generates INCgEMENT n~c and IE CREMENT DWC signals to cause the output of DM~
address counter 140 to be incremented and the output of DM~ word counter 138 to be decremented. A~ain, the output of ~C 140 is applied to vector memorv 102 s~r 104 in response t~ a READ nAc signal and the contents of the addressed memory location appear on VRC bus 130. PllPCI 124 then generates a LQ~D FIFO signal to cause ~IFO 132 to accept the data on VRC bus 130.
This process cont;nues until sixteen r~Q~D
FIFO signals have been generated so that FIFO 132 caltains sixteen words. At this point, FIFO 132 is full and upon the sixteenth L~D PIFO signal, FIFO 132 generates a FIFO FI~LL signal which is applied tc~ prpcI
35 124 to stop the DM~ transfer. As long as the F:~FO
.

~ ;~751~0 FULL signal is high, data is not transferred from vector m~mory 10~ or 104 to FIFO 132.
Eventually, data i~ withdrawn from PIFO 132 so that it is no longer ~ull. Upon this oc~urrence the FIFO full signal beoomes low to enable PEPCI 124 to continue the DMA transfer. Accordingly, P~PCI 124 increments DM~ counter 140 and decrements DM~ word counter 13~ and the data which appears on VRC bus 130 is accepted by FIFO 132.
This process continues until a number of words eqyal to the number initially stored in DM~ word coun'ter 138 are transferred to FIFO 132. At this point, DM~ word counter 138 is decremented to ~ero and a ~O.~D COUNTER 0 signal is applied to P~PCI 124. In response thereto, PDPCI 124 causes a bit to be written in oontrol statu register 134 so that the DMA GO
signal becomes low. Also, PDPCI 124 generates a ~M~
coMæLETE INTERRUP~ signal which is applied via system bus 118 to housekeeping ccmputer 116 to inform housa-keeping computer 116 that the DM~ transfer iscompleted. ~ousekeeping microcomputer 116 can then establish the next DMA transfer.
As indicated above, in order to perform the Bresenham metbod, the change in the major axis,~ a, and the change in the minor axis~ a b are needed by the apparatus. The vectors that are transmitted into FIFO
132 for performing a relative move or draw, however, are in the cartesian form ~x and ~y. Therefore, a preliminary step must be performed prior to the execution of the Bresenham algoritnm wherein it is determined which of ~x and ~y is the majcr axis value, ~a, and whi~ is the min~r axis value, ~b.
FIGURE 6 illustrate~ the apparatus fsr performing the Bresenham method. As will be recalled, the vector may be in the long format or the short ~ ~75 1~0 format. If it is in the short format, ~x and ~y are in the same word, and when the word is transferrea i from FIFO 132, MUX 156 selects the upper bits of the word, which is the ~x value an~ this passes through MUX 164 to major register 166. If it is in the long f~rmat, then the next two words from FIFO 132 are used. MUX 156 routes the ~y value to minor register 16~ and MUX 158 routes the ~x value to major register 166. A signal from control word register 148 indi-cates whether the vector is in the short or long format, and this signal is employed to control MUX's 156 and 158. When in the long format, the lcad signals to registers 162 and 166 from control logic 146 are used to control which accepts data from MUX's 156 and 158. As will be explained hereinafter, minor register 162 may be a simple register, whereas major register 166 must be a parallel loading shift register.
The lines connecting MUX 160 and register 162 and the lines connecting MUX 164 and register 166 are skewed to the left so that when data is transferred from these MUX's to the registers, a multiply by two operation is performed. Thus, register 162 is loaded with 2~y and register lS6 is loaded with 2~x. These numbers are applied to arithmetic unit 168 which performs a subtraction of the inputs.
As will be recalled from above, it is impor-tant to determine which of ~x and Qy is larger in order to perform the Bresenham method. The most significant bit of the output of arithmetic unit 168 is the sign bit and is employed to determine whether ~y or ~x is the major axis. If the most significant bit of the output of arithmetic 168 is positive, ~y is the major axis. This most significant bit signal ;s applied to control logic 146 and to AND gate 170 where ~ 175~SO

it is combined with an ENABLE CROSSOVER signal from control loyic 146. The output of AND gate 170 causes M~X's 160 and 164 to switch so that the output of minor register 162 is applied to the input of major register 166 and the output of major register 166 is applied bo the input of minor register 162. Thus~ the minor axis register is reloaded with tbe contents of the major axis register, 2~x, while simultaneously the major axis register is loaded with the contents of the minor axis registerO During this eransfer, the data to major register 166 is skewed one place to the right to effect a divide by 2, so that ~y i~ actuall~ loaded into the major axis register.
If the most significant bit of the output of 15 arithmetic 168 indicates a neqative result, 2~a is - -already in the major axis register so no reversal is necessary. However, register 166 skewS the data therein one step to the right leaving bain the register in response to a SHIFT RIG8T signal from control logic 146.
It should be noted that in FIGURE 6, MUX's 15~ and 160, and MUX's 158 and 164 are shown as separate elements to aid in explaining the circuit.
In the preferred embodiment, MUX's 156 and 160 are combined in a single, three input, one output MUX, and likewise MUX's 158 and 164 are combined as a similar MUX. The combining of the four MUX's into two MUX's improves the speed at which data can be transferred through this system.
At this point, minor register 162 contain~
2~b and major register 166 contains ~a~ These signals are applied to arithmetic 168, and the output, 2~b-~a is the value ~1 from the ~resenham method. ~1 is applied to an input of arithmetic unit 172 whose other input is zero, and the output of arithmetic unit 172, ~ 17~ 15~

~1~ is appli ed to acc~Dnulator 174. Only the most significant bit, the sign bit, of the output of arith-metic unit 172 is applied 'co flip-flop 176. ~1 is loaded into accum~ator 174 and flip-flop 176 upon S receipt of the clock A signal from control loglc 146. At this time, the value of aa from ma~or register 166 is loaded in st~p coun'cer 178. Also, as accumulat~or 174 is being loaded with Ql~ major register 166 shifts its t ontents one place to the leFt so 10 that it contains 2aal~ The apparatus is then able to execute the Bresenham method:

ai 1=~ il 2~b-n2aa where n=l when i >0, n=0 when i~ 0.

~ l is the output of arit~ne'cic unit 172.
The sign bit of ~i+l~ whic~ determines the value of n for the next iteration of the algoritt~n, is applied to fli~flop 176, so that the output of flip-flop 176 represents the value of n. This value is applied to 20 AND gate 180 to- act as an enable signal. When the sign bit of ~i is positive, the output of flip-flop 176 is high, which enables gate 180 so that the value of`2~a may pass from major register 166 to aritl~netic unit 168. When the sign of ai is negative, the output of flip-flop 176 is low" to disable gate 180 so that the value of 2~a in register 166 is not pass~d on to arithmetit: unit 168, in acoordance with the Bresenham method.
For each iteration, that is each time accumu~
lator 174 and flip-flop 176 is clocked by the CL0CR A
signal, tlhe CLOCR A signal also decrements stop ~ ~5 150 counter 178. Also, for each iteration, the output of flip-flop 176, indicative of the si~n a ~i~ is applied ¦ to control logic 146. At the time that the ~x and ay values are initially loaded into the major and minor registers, respectively, the sign bit of ~x, which occurs in the same word as the magnitude ax, is stored by the control logic 146, and similarly for the aY
sign bit. Also, as previously described, a determina-tion is made as to which of ~x and ~y is Qa and which is ~b. This information is also retained in the control logic block 146. The control logic, there-fore, has information as to which of ~x and ~y is the major axis and which is the minor axis and addition-ally, whether the x address counters will be incre-menting or decrementing, since a positive sign for ~xindicates that the x address counter will be incre-menting, and similarly for the y address counter.
According to the Bresenham method then, whichever of address counter 150 or address counter 152 that corresponds to the major axis will be either incre-mented or decremented for each iteration of the algorithm. Whichever of address counter 150 or address counter 152 that corresponds to the m~nor axis will be incremented or decremented only on those iterations of the algorithm for which the output of flip-flop 17~ is low.
The iterations continue until the contents in stop counter 178 have been decremented to æero. At that point, stop counter 178 sends a STOP OOUNTER 0 signal to control logic 146 which stops the present iterations by stopping the CLOCK A signals and sends a signal to FIF0 132 to unload the next word.
The oDntents of counters 150 and 152 are out-putted to M~IX's 182 and 184 in FIGURE 8, and to address co~Farator 108. Address comparator 108 ~ ~7~ lSO

compares the contents of these counter~ with the contents of address compare register 136 to determine if the coordinates fall within the raster band indi-cated by the o~ntents of address compare register 136.
Note that bath the ~ and y dimension of the particular raster band is compared with the contents of counters 150 and 152. If a coordinate ~alls o-'side of the length of the raster band, the ooordinate may be picked up in anDther raster band. However, if the coordinate falls outside the width of the raster band, it is outside the area of the plot. Therefore, this comparison step performs a clipping function.
To compare two 16 bit numbers with two other 16 bit numbers, a great deal of apparatus is generally required~ To lessen the amount of apparatus, raster bands are defined by binary boundaries. Consider a situation where there ~re only two raster bands in a vector band. To determine whether or not a vector is in one of the tWD raster bands, only the most signifi-cant bit of the ooordinate need be compared. If the most significant bit is a 1, then the coordinate is in one raster band, but if the highest order bit is ~on, then it is in the other raster band. Thus, address compare register 136 need only store one bit and comparator 108 need only compare one bit. If there are four raster bands in a vector band, then only the two highest order bits of the coordinate need be compared with a two bit number from the oompare register 136. By employing a binary number of raster bands, it is possible to reduce the number of c~mpari-sons necessary to determine whether a coordinate is within a raster band to less than the 16 bits of the address.
Once cDmp2rator 108 determines that the coordinates from the x and y counters 150 and 152 are ~ ~7~1~0 within the raster band specified by register 136, a SPEED S~IFT signal is sent from comparator lOfl to control logic 146 to cause tle frequency of the CLOCR A signal to be reduced by a factor o 2 I/~ so that the location of the pOillt in the raster band may be loaded into a raster memory. After the speed shift signal, comparator lOB sends a write control signal to MUX's 186 and 188 in FIGUR~ 8, which causes the address specified bycounters 150 and 152 to be written into lQ one of memories 110 and 112.
FIGURE 7 is useful in understanding the operation of the circuitry in FIGURE 60 FIGURE 7 illustrates the timing of the components in FIGURE 6 as these ~Dmponents process first an absolute move followed by a relative vector, and finally another absolute move. Furthermore, the long vector format is assumed to be employed. The scenario in FIGURE 7 assumes that the ~ value of the relative vector is larger than the ~y value and the vector starts outside the raster band being processed, passes through the raster band, then continues on outside the raster band. While the vector is within the raster band, two points are written into memory.
As illustrated in FIGURE 6, aontrol logic 146 accepts a signal from clock 144. Clock 144 produces a 23 mhz. signal. Control logic 146 divides the frequency of the 23 mhz. signal by two in order to generate a signal having a period of 87 nsec. This signal is the basic timing signal for the circuitry of FIQURE 6.
At the left side of FIGURE 7, it is assumed that a word appears at the output of FIFO 132. The hiqh level of the FIFO ~SB signal (the most signifi-cant bit of the word appearing at the output of FIFO
132) indicaites that the word at the output of FIFO 132 l S O

is a control word. The FIF0 MSB signal is applied to control logic 146 and in resp~nse thereto, control logic 146 generates a LC~D coN~RoL ~ORD REGISTER
- signal which causes control w03d register 148 to accept the appropriate bits of the word at the output of FIF0 132. These appropriate bits indicate that the next words at the output of FIF0 132 will represent an absolute vectort and a signal so indicating is applied to control logic 146. Also, a signal indicating that the long format is to be employed is applied to both control logic 146 and MUXs 156 and 158 of FIGUR~ 6.
At the same time that the word at the output of FIF0 132 is accepted by control word register 148, control logic 146 generates an UNLC~D FIF0 signal which causes the next word stored in FIF0 132 to appear at its output.
Since oontrol logic 146 has already accepted data indicating that the next two words from FIF0 132 represent an absolute vector, oontrol logic 146 then generates a Lo~ X ADDRESS COUNTER signal which causes X address counter 150 to accept the word at the output of FIF0 132. At the same time, oontrol logic 146 generates another UNLo~D FIF0 signal to cause the next word stored in FIF0 132 to appear at its output.
Control logic 146 then generates a LQ~D Y ADDRESS
COUNTER signal so that Y address counter 152 accepts the output of FIF0 132. Thus, at this point, the X
and Y address counters 150 and 152 are loaded with absolute ~oordinates received from FIF0 132.
At the same time that control logic 146 generates the Lo~D Y ADDRESS COUNTER signal, it also generates another UNLo~D FIF0 signal which causes the next word in FIF0 132 to appear at the output thereof.
In the Rcenario illustrated in FIGURE 7, this word is a oontrol word as indicated by its most significant ~5 ~5 bit and this information i5 transferred to control logic 146. Accordingly, control loglc 146 nex~
LCF~D CON'rRC~ WORD REGISTE
d gister 14B to accept the p of the word at the output of FIFO 132. ~hese pertinent bits indicate that the following w~rds from 1 te to a relative veCtor ~ormat and this data is transferred ~o control loqic 146.

~-~ Simultaneous with the generation of the load control word register siqnal, control logic 146 gener-ates an U~Lo~D FIFO signal so that the next word in FIFO 132 appears at its output. Since control logic 146 has received dàta that the circuitry is processing a relative vector, the data at the output of FqFO 132 is to be applied to major register 166, and acoording-ly control logic 146 generates a ~0~D M~JOR REGISTER
signal. Simultaneousl~ with the generation of the LO~D MU3OR REGISTER signal, control logic 146 also generates an UNLQ~D FIFO s;gnal to cause the naxt word in FIFO 132 to appear at its output. This word is loaded in minor register 162 in response to a ~o~D
MINOR ~EGISTER signal generated by control logic 146.
~s was discussed suPra~ data transferred from MUXs 160 and 164 to minor register 162 and major register 166 is multiplied by two due to a skewing of the ~ nes interconnecting these components. ~he ~alues in m~nor register 162 and major register 164 are applied to arithmetic unit 168 which generate~ a ~alue related to their difference. The most s~gn~fi-cant bit of this difference, the sign bit, indicate~
whethler the oontents of the major or minor register i~

~175:150 greater and this most significant bit is applied to control logic 146. An X major register, internal to control logic 146 accepts the contents of this most significant bit. As illustratled in FIGURE 7~ the most significant bit is a high level, indicating that the value in major reqister 166 is in fact larger than the value in minor register 162. ~Therefore, it is not necessary to interchange the contents of the major and minor registers.
As will be recalled from above, in order to detemine the value f ~ 1~ it is necessary to obtain the value of ~ a. Accordingly, control logic 146 generates a SHIFT MAJOR REGISTER right signal which causes the contents of major register 166 to be divided by two. The value of ~1 then appears at the input to accumulator 174.
With the rising edye of the CL~CK A signal, a number of events occur simultaneously. The value at the input of acc~mulator 174 is loaded into accumula-tor 174. The value of ~a in major register 166 is loaded in stop counter 178 in response to a LQAD STOP
COUNTER signal from control logic 146. As a result, the value in stop counter 17~ is no longer zero so the sToæ COUNTER 0 signal becomes high. Simultaneously with the first CLOCK A signal, control logic 146 also generates a SHIFT MAJOR REGISTER LEFT signal to cause the contents of major register 166 to shift one bit to the le~t, thus multiplying the value in major register 166 by two so that it contains 2~a.
It will be recalled from above that the CLOCK A signal also increments or decrements x and y address counters 150 and 152. In order to control when counters 150 and 152 should be incremented or decremented, enable signals are generated by control logic 146 and applied to counters 150 and 152.
I

~ ;~75~5~

Control logic 146 already contains data indicating that the x co~rdinate is the major ooordinate because ¦ it was not necessary to interchange the contents of the major and minor register~; during set up for the relative vectorO Therefore, control logic 146 causes x address counter 150 to be enabled by a low X ADDRESS
COUNTER ENABLE signal so that: it accepts all CLO~R A
signals to ~ncrement or decre!ment its contents. The results of the Bresenha~ method, are applied to control logic 146 by means of the ACCUMULATOR MOST
SIGNIFI QNT BIT signal. In response to the level of the ACCUMULATOR MOST SIGNIFIC~NT BIT signal, control logic 146 causes y address counter 152 to be enabled at appropriate times by means of the Y ADDRESS COUNTER
ENABLE signal so that the contents of x and y address counters 150 and 152 reflect coordinates of pDints along the vector. The circuitry illustrated in FIGURE
S continues to perform iterations of the Bresenham method in response to CLOCR A pulses.
With each pair of coordinates stored in counters 150 and 152, comparator 108 determines whether the pair of coordinates lie within the raster band. At same point in the processing of the vector illustrated in FIGURE 7, coordinates are generated within the raster band. Accordingly, comparator 108 generates a SPEED SHIFT signal which remains hi~h until a pair of coordinates are generated which do not lie within the raster band. The SPEED SHIFT signal is applied to control logic 146 which initiates the procedures necessary to write into raster memory 110 or 112. A part of this procedure is the generation of a WRITE ODNTRDL signal which is applied to vector memory 110 or 112 as will be described hereinafter.
A~s indicated above, when writing into the raster memories, it is necessary to slow the speed of ~175~5~

the vector to raster converter to match the ~aximum speed at which data may be written into the raster memories of the preferred embc~iment. Accordingly, upon receipt of the SPEED S~IFT signal, oontrol logic l46 causes the 23 mhz. signal from clock 144 to be divided by five instead of by two, to produce a signal with a period of 217 nsec. This corresponds to the maximum speed at which data may be written into the raster memories of the preferred embodiment.
Accordingly, as illustrated in FIGURE 7, 217 nsec. lapse between the first rising edge of the CLOCR A signal at which a favorable oomparison is made and the next rising edge of the CLOC~ A signal. With this rising edge, the next iteration of the Bresenham method is performPd and comparator 108 determines that the new coordinates also lie within the raster band.
Accordingly, the SPEED S~IFT signal remains high and at the appropriate timer control logic 146 generates another WRITE control signal.
Another 217 nsec. elapse before thP next rising edge of the CLOCK A signal an~ thus the next iter~tion of the Bresenham method. With this next iteration, coordinates are generates which comparator 108 determines to be outside the raster band.
Accordingly, the SPEED SHIFT signal becomes low and the CLOCR A signal resumes its higher frequency.
It will be recalled that stop counter 178 contains the value of ~a which also oorresponds with the total number of iterations necessary to process a particular vector. With each rising edge of the CLOCR A signal, stop counter 178 is decremented. When the vector has been fully processed, the value in stop counter 178 becomes zero so that the ST0P COUNTER 0 signal becomes low. When control logic 146 receives this low si~nal, it prepares the circuitry of FIGURE 6 ~:~7~1~0 ~2 for the processing of the next vector. Accordingly, control logic 146 generates an ACCUMULATOR CLEAR
signal which clears the contents of accumulator 174.
Also, the contents of the x major register within control logic 146 are also cleared.
When oontrol logic 14S generated the Lo~D
MINOR REGIS~ER signal illustralted in FIGURE 7, it also generated an UNLQ~D FIFO signal so that the next word stored in FIFO 132 appears as its output. The most significant bit of this wDrd indicates that the word is in fact a control word, and accordingly the FlFO
MOST SIGNIFIC~NT BrT signal remained high throughout the processing of the vector. After control logic 146 has initialized the circuitry in FIGURE 6, it is ready to process this control word. Accordingly, control logic 146 generates a Lo~D CONT~DL W~RD REGISTER
signal which causes the appropriate bits in the word to be applied to oontrol word register 148. This control word indicates that the next data from FIFO
~0 132 will represent an absolute vector and accordingly this data is transferred to control logic 146. The process continues in the manner described above with respect to the first absolute vector.
Thus, FIGURE 7 illustrates the manner in which control logic 146 and the circuitry of FIGURE 6 generally process a relative vector having a ~x value greater than a ~y value and a long format. If the Qy value had been greater than the Qx value, the timing diagram w~uld have been very similar to FIGURE 7, with changes as follows. Instead of the X M~JOR REGISTER
signal becoming high, it wDuld have remained low.
This signal remaining low would have caused control logi~ 146 to generate a low ENABLE CROSSOVER signal for one d ock period. The combination of ~he X M~JOR
and ENABLE l'ROSSOVER signals in AND gate 170 wDuld ~ ~7~15~

have caused MUXs 160 and 164 to accept the output of major register lS6 and minor register 162, respec-tively. When the ENA~LE CROSSOVER signal would become high with the next clock pulse, control loyic 146 w~uld also have generated Lo~D MAJOR and MINOR
REGTSTER signals to cause minor register 162 and major register 166 to accept the output of MUXs 160 and 164. As described above, since data transferred from the output of minor register 1~2 to the input of major register 166 is shifted one bit to the right, control logic 146 would not have generated the SHIFT MAJOR
REGISTER RI~T signal after the munor register was loaded. These are the only changes that are neces~ary to FIGURE 7 when ~y is greater than ~x.
If the relative vector being processed had been in the short format instead of the long format, the following minor changes would have appeared in FIGURE 7. Instead of sequentially generating LQ~D
MA~OR REGISTER and Lo~D MINOR REGISTER signals with ~0 consecutive UNLo~D FIFO signals, the Lo~D M~JOR
REGISTER and LoAD MINOR REGISTER signals would have been generated simultaneously, since the same word at the output of FIFO 132 would contain both ~x and ~y.
Turning now to FIGURE 8, the circuitry associated with raster memories 110 and 112 is illustrated. All of the MUX's in this figure are shown with one input path drawn solidly and another input path drawn in dotted line. The paths drawn solidly correspond to a situation where data is being stored in raster memory 110 and data is being read out of raster memory 112. As will be described below, housekeeping computer 116 controls which raster memory is being load~d and which raster memory is being emptied.

~75~S~

As indicated above, vector memories 102 and 104, as well as raster memories 110 and 112 bDth provide double buffering. However, vector memories 10~ and 104 are double buffered in a slightly differ-ent fashion than raster memories 110 and 112.
Specifically, data cannot ~e loaded into one of the vector memor~es 102 and 104 simultaneously with the unloading of data from the other vector memory. There is only one set of lines connecting host computer 100 with vector memories 102 and 104 an~ data can pass in only one direction at a time on these lines~ F~rther-more, the loading and unloading of vector memories 102 and 104 is not a continuous process. Thus, vector memories 10~ and 104 provide double buffering in that the loading of vectors in one vector memory is inter-- spersea in time with the unloading of vectors from the other vector memory. When onP vector memory is full and the other anpty, the roles reverse and the process continues.
2~ As described below, the loading and unloading of raster memories 110 and 112 is, comparatively speaking, a oontinuous process, and both processes occur simultaneously, independent of the other.
At the start of one particular cycle in the operation of FIGURE 8, one of raster memories 110 and 112 is full of data and the other is empty. ~ouse-keeping computer 116 controls which raster memory has been loadea and which raster memory has been unloaded.
As indicated above, housekeeping computer 116 controls the DMA's in the system and the transfer of data from the raster memories to the plotter is no exception.
At the beginning of a cycle, it is necessary for housekeeping computer 116 to set up control logic required bo transfer data from one of the raster memories tc~ the plotter. ~ousekeeping microcomputer ~ 175150 ~5 116 communicates with the circuitry illustrated in FIGURE 8 via system bus 118 and bus interface control logic 1~6. First, housekeepinlg microcomputer 116 causes the address of the first location in the raster memory to be read out to the plotter to be pla~ed on bus 190 in FIGURE 8. ~ousekeeping microcomputer 116 then causes bus interfac~ control logic 126 to generate a signal on the load strobe 1 line to cause raster mem ~ y address counter 192 to accept the data. Counter 192 plays the same role in trans~erring data out of the raster memories as address counter 140 played in transferring data out of the vector memories.
Next, housekeeping microcomputer 116 cau~es the total number of bytes to be read out of the raster memories to be placed on bus 190. At the same time, housekeeping microcomputer 116 causes bus interfac~
control logic 126 to generate a signal on the load strobe 2 line so that plotter byte counter 194 accepts the number on oommon bus 190. Counter 194 is related to the output of data from the raster memories in the same way that counter 138 is related to vector memories 102 and 104.
Finally, housekeeping microcomputer 116 causes a signal to be placed on bus 190 to indicate which of raster memories 110 and 112 will be loading data and which will be emptying data. Simultaneously, housekeeping microcomputer 116 causes bus interface control logic 126 to generate a signal on the load strobe 3 line so that control register 196 accepts this data. This causes control register 196 to generate a level on line 198 that controls the gating within MUX's 182, 184, 18~, 188, 200t 204 and 206.
Let us assume that raster memory 110 is empty and raster memory 112 is full. Thus, housekeeping micro-11751S~

c~mputer 116 causes all of the MUX's in FIGURE B toassume the gating indicated in solid lines in the ¦ figure. During this portion of the operating cycle, the output from counters 150 and 152 in ~RC 106 is applied through Mnx 18~ to the address input of ra~ter memory 110. MUX 200 causes a high level, or a 1"
level to be applied to the data input of raster memory 110. When oomparator 108 determines that a coordinate is within the raster band speciified by address regis-ter 136, oDmparator 108 generates a write oDntrol signal which is applied through MUX 186 to the write input of raster memory 110. This causes a n 1" to be written in the bit specified by the signal on the address lines, i.e., at an address representing the coordinates at the output of counters 150 and 152.
This process continues until all of the vectors in the particular vector band have been rasterized and each set of o~ordinates therein have been oompared to determine if they are in the raster band for which coordinates are being loaded into raster memory 110.
At the same time that control register 196recei~es the signal from housekeeping computer 116 as to which raster memory is to receive data, control register 196 also receives a signal from housekeeping computer 116 that the transfer of data out of the other raster memory can begin. Thus, on receipt of the signal from housekeeping CGmpUter 116, control register 196 generates a plotter go signai which is applied to plotter control sequencer and strobe generator 208. The number at the output of address counter 192 is applied through MUX 184 to the address input of raster memory 112. This causes the oDntents of the particular location being addressed to be applied to MUX 206 and latch 210. Plotter control sequencer an~ strobe generator generates a latch data ~ 1 7~ 1 ~ 0 strobe to cause latch 210 to receive and hold the signal from the output o~ rasl:er memory 112r ¦ It is then necessary to erase the bits stored at that particular address. 'rO this end, the data 5 input of raster memory 112 is connected through MUX
204 to a low or "0~ level. PLotter control seguencer and strobe generator 208 generat~s an erase ~ignal on line 212 which is transmitted to raster memory 712 by means of MUX 188. This causes a ~0~ level to be written into the bit presently addressed. Shortly thereafter, plotter control sequencer and strobe generator 208 qenerates an increment clock signal whi h is used to increment and decrement counters 192 and 194, resp~ctively. This causes counter 192 to address the next location in raster memory 112 and the process is repeated.
The data stored in latch 210 is transferred to driver 214 and then to plotter 216. Plotter control sequencer and strobe generator 208 then sends a data strobe signal to plotter 216 to accept the data in latch 210 as soon as plotter control sequencer and strobe generator 208 has received a plotter ready signal from the plotter.
A continuous ~ranser of data from the raster memories lasts for one scan line of the plotter. The count stored in plotter byte oDunter 194 is the number of bytes in one plotter line. When the last byte is reached, a signal on the increment clock line causes byte counter 194 to decrement to "0~ which causes counter 194 to send a last word signal to plotter control sequencer and strobe generator 208. This causes plotter control sequencer and strobe generator 208 to generate a signal on the interrupt line which is directed to housekeeping computer 116 via bus interface control logic 126. This tells housekeeping ~ ~5 ~50 microcomputer 11~ that the circuitry in FIGURE 8 is ready for the next transfer of information to the plotter. Also, after the la~t wora has been accepted by plotter 216, plotter sequencer 208 yenerates a line S terminate signal to plotter 21l5 which causes all of the data which has been acceptea in a buffer in ~lotter 216 to be actually printed on the paper ~nd the paper advanced.
FI~URE 9 illustrates the operation of the circuit in FI~URE 8 with respect to one of the raster memories, let us say raster memory 112. During the first part of an operating ~ycle, data is being stored in raster memory 112, and in the second part o~ the cycle data is being withdrawn from raster memory 112. As illustrated in FIGURE 9, for each line of data, signals are sequentially placed on the load strobe 1 line, load stroke 2 line, and the load strobe 3 line, to load counter 192 with the first address in raster memory 112 to be read out, oounter 194 with the total number of bytes in one plotter line, and control register 196 with data oDncerning which raster memory is receiving data and with the plotter go command, respectively. With the load strobe 3 signal, the plotter go comman~ is given to plotter control sequencer 208. At that time, a valid address signal appears at the input of raster memory 112 and valid aata may be withdrawn therefrom. Soon after valid data appears at the output of raster memory 112, plotter control sequencer 208 generates a signal on the latch data strobe line to cause latch 210 to accept the data. Soon thereafter, plotter control sequenoer 208 generates an erase signal to cause a ~0"
to be written into the same location of raster memory 112.

~ 1~515~

Next, plotter control sequencer 208 generates a data strobe signal so that plotter ~16 accepts the data from latch 210. While plotter 216 is a~cepting the data, it i~ not ready ~o receive more data, and therefore the data strobe signal causes the plotter ready signal to go low until it has accepted the data.
At some time after the latch data strobe signal is generated for latch 210, plotter ~ontrol sequencer 208 qenerates a rising edge on the ~ncrement clock line which causes oounters 192 and 194 to b~
changed incrementally. Shortly thereafter, new data appears at the out wt of raster memory 112 representing the next ~te to be output. The s~me sequence of a latsh data strobe, erase signal and dàta strobe is generated by plotter control sequencer 208. This process continues until the end of the line is approached and the number stored in plotter byte counter 194 approaches ~0~. A~ the end of the line, the rising edge of the increment clock sign~l causes 2a counter 194 to decrement to ~0~, signalling the end of the line. Counter 194 sends a last word signal ba~k to plotter control sequencer 208 which in turn generates an interrupt signal which is sent back to housekeeping microcomputer 116. This signal indicates to housekeeping microccmputer 116 tha~ it must set up the plotter oontrol sequencer 208 to transfer the next line of data from raster memory 112 to ~lotter 216.
Soon after the interrupt signal is generated, plotter control sequencer 208 generates a line terminate -signal which is sent to plotter 216. In response to thi~, the plotter ready signal goes low as plotter 216 actually prints the line of data which it has been storing in buffer~ and causes the paper tD advance to ~he next Line.

~ 1~5 1~

~ ousekeeping nicrocomputer 116 then sands the data for counters 192 and 194 and ~ontrol register 196 along with load strobes 1, 2 and 3. When counter 194 is loaded in resp~nse to load strobe 2, i~s contents change from "0" so that the llast word signal becomes low again. Load strobe 3 causes control register 196 to generate a high plotter go pulse to initiate the next continuous transfer to plotter 216.
~ousekeeping microcamputer 116 totals the number of lines ithat have been printed in a particular raster band. At some point, housekeeping microcom-puter 116 receives an interrupt indicating the end of a raster line and housekeeping microcomputer 116 determines that all of the data in the raster band has been outputted. By this time, raster memory 112 is empty and raster memory 110 has been filled. House-keeping microcomputer 116 places a signal on bus 190 to reverse the polarity of the bit/byte signal on line 198. At the same time, housekeeping microcomputer 116 causes bus interface cDntrol logic 126 to generate a load strobe 3 signal which causes control register 196 to accept the data on bus 190. UFDn the change in level on line 198, all of the MUX's reverse gating.
Thus, raster memory 112 accepts address inputs from counters 150 and 152 of VRC 106. Raster memory 112 accepts data from a high or ~1~ level by means of MnX
204. The write control for raster memory 112 is generated by the write oDntrol signal of comparator 108. Raster memory 110 is addressed by counter 192 via MUX 182. Data for raster memory 110 is received from a low source or a ~0" source by means of MUX
200. The write oontrol input of raster memory 110 is connected to the erase line from plotter control se~uencer 208 by means of MUX 186. Data is output ~ ~51~

from raster memory 110 to latdh 210 by means of MUX
206.
S Each time raster memory 112 receives a write control signal from VRC 106 (specifically comparator 108) by means of MUX 188, a ~1" is caused bo be written in an address corresponding to the output fro~
counters 150 and 152 of VRC 10~. In this manner, data is stored in raster memory 112.
Reep in mind that raster memory 110 is performing opposite functions from raster memory 11~. While raster memory 112 is outputting data to the plotter, raster memory 110 is receiving data from VR~ 106 and thus has signals associated with it which look like the portion of FIGURE 9 having the heading ~ADDRESS SUPPLIED BY VRCn. When raster memory 112 is accepting data, raster memory 110 has signals associ-ated with it similar to the lefthand two-thirds of FIGURE 9. Thus, in fact many of the signals illustra-ted in FIGURE 9 continue in the righthand one-third of the figure for the other raster memory, Likewise, the write oontrol signal actually is being generated by comparator 108 during the lefthand two-thirds of FIGURE 9, but is being directed to the other raster memory. These portions of these signals have been eliminated for simplicity.
One interesting aspect of the preferred embodiment of the present invention can be seen in FIGURE 8 at the input to MUX's 182 and 1840 Specifi-cally, the address coming from counters 150 and 152 is transferred on 17 lines wher~eas the address coming from DMA address counter 192 is transmitted on 14 lines. This is because data is inserted in raster memory 110 or 112 one single bit at a time, and it is necessary to address each bit in the raster memories independently~. On the other hand, data is output from ~ 175 1~

raster memories 110 and 112 a byte ~in this case 8 bits in parallel) at a time. Thus, 14 lines are needed to address each byte in raster memory 110 or 112. The extra three lines from counters 150 and 152 are employed to address a part:icular bit within the byte. Line 198 has been assigned the name bit/byte mode ~ ne, because this line causes memories 110 and 112 to operate in either a bil: mode (when data is being inputted to the memoriee;) or a byte mode ~when data is being output from the memories).
As noted above, the length of the raster memory can be adjusted as a function of the width of the raster memory, and thus the output plot. As can be seen in FIGURE 3, the address signal to raster memories 110 and 112 from VRC 106 is sent on 17 lines.
In FIGU~E 4, the output of x address counter 150 is indicated as having 5 lines and the output of y address counter 152 is indicated as having 14 lines.
The discrepancy arises because the indications in FIGURE 4 represent maximums. The total number of lines cannot exceed 17. Thus if the plot is narrow, the raster band will be long. At the extreme, the output of x address counter 150 (which holds the length dimension of the raster band) will be on 5 ~5 lines (indicating 32 lines in a raster band) and the output of y address counter 152 will be on 12 lines.
If the plot is wide, the output of y address counter 152 ~which holds the width dimension of the raster band) will be on 14 lines and the output of x address counter 150 will be on 3 lines (indicating 8 lines in a raster band).
Although only a few exemplary embodiments of this invention have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary 1 5 ~

~nbodiments without materially departing from the novel teachings and advantages of this invention.
Accordingly, all su~ modifications are intended to be included within tlle scope of this invention as defined 5 in the following claims.

Claims

WHAT IS CLAIMED IS:

1. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) for any one of said vectors, determining the coordinates of a plurality of points in said vector;
b) determining whether each of said coordinates are within said space;
c) retaining the coordinates favorably determined in step b); and d) repeating steps a)-c) for other vectors until all of said vectors have been processed.

2. A method as in claim 1 wherein step a) includes the steps of:
for each of said vectors, determining the coordinates of the origin of said one vector;
loading a representation of said one vector origin first and second dimension coordinates into first and second counters, respectively; and incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector.

3. A method as in claim 1 wherein said step b) includes the step of comparing selected higher order bits of a representation of at least one dimension of said coordinates with a predetermined number to determine whether each of said coordinates is within said space.

4. A method as in claim 1 wherein said steps a) and b) include the steps of:
determining the coordinates of the origin of said one vector;
loading a representation of first and second dimensions of said one vector origin coordinates into first and second counters, respectively:
repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector, and for each of said coordinates, comparing at least one dimension of said coordinates represen-tations with a predetermined number to determine whether each of said coordinates is within said space.

5. A method as in claim 4 wherein said comparing step further comprises the step of comparing selected higher order bits of at least one dimension of said coordinates representations with a predetermined number.

6. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) for any one of said vectors, determining the coordinates of a plurality of points in said one vector;
b) determining whether each of said coordinates is within a particular area;
c) retaining the coordinates favorably determined in said step b);
d) repeating said steps a)-c) for other vectors until all of said vectors have been processed;

e) outputting said coordinates retained in said step c); and f) repeating said steps a)-e) for other said particular areas until the entire said space has been covered.

7. A method as in claim 6 wherein said steps a) and b) include the steps of:
determining the coordinates of the origin of said one vector;
loading a representation of first and second dimensions of said one vector origin coordinates into first and second counters, respectively;
repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector; and for each of said coordinates, comparing at least one dimension of said coordinates represen-tations with a predetermined number to determine whether each of said coordinates is within said particular area.

8. A method as in claim 7 wherein said comparing step further comprises the step of comparing selected higher order bits of at least one dimension of said coordinates representations with a predetermined number.

9. A method as in claim 1 or 6 wherein said step a) includes the step of determining said coordinates in accordance with the Bresenham method.

10. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) storing representations of said vectors in a first memory;
b) for any one of said vectors stored in said step a), determining the coordinates of a plurality of points in said vector;
c) determining whether each of said coordi-nates is within a particular area;
d) storing the coordinates favorably determined in said step c) in a second memory:
e) repeating said steps b)-d) for other vectors until all of said vectors have been processed;
f) outputting said coordinates stored in said step d); and g) repeating said steps b)-f) for other said particular areas until the entire said space has been covered.

11. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) for any one of said vectors, determining the coordinates of a plurality of points in said vector;
b) comparing selected higher order bits of binary representations of at least one dimension of each of said coordinates with a predetermined number to determine whether said coordinates are within a particular area;
c) retaining the coordinates favorably compared in said step b);
d) repeating said steps a)-c) for other vectors until all of said vectors have been processed;
e) outputting said coordinates retained in said step c); and f) repeating said steps a)-e) for other said particular areas until the entire said space has been covered.

12. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) for any one of said vectors, determining the coordinates of the origin of said one vector;
b) loading a representation of the two dimensions of said one vector origin coordinates into first and second counters, respectively;
c) repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
d) determining whether each of said coordinates representations is within a particular area;
e) retaining said coordinates which are favorably determined in said step d);
f) repeating said steps a)-e) for other vectors until all of said vectors have been processed;
g) transferring all data retained in said step e) to an output device;
h) repeating said steps a)-g) for other said particular areas until the entire said space has been covered.

13. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) storing representations of said vectors in a first memory;

b) for any one of said vectors stored in said step a), determining the coordinates of the origin of said one vector;
c) loading a representation of the two dimensions of said one vector origin coordinates into first and second counters, respectively;
d) repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
e) for each of said coordinates, comparing at least one of said dimensions of said coordinates representations with a predetermined number to determine whether each of said coordinates is within a particular area;
f) storing bits in a second memory at locations related to said coordinates which compared favorably in said step e);
g) repeating said steps b)-f) for other vectors stored in said step a) until all of said vectors stored in said step a) have been processed;
h) transferring all data stored in said step f) to an output device; and i) repeating said steps b)-h) for other said particular areas until the entire said space has been covered.

14. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a particular area of said space;
b) for any one of the vectors determined in said step a) determining the coordinates of a plurality of points of said vector;

c) determining whether each of said coordinates is within said particular area;
d) retaining the coordinates favorably determined in said step c);
e) repeating said steps b)-d) for other vectors until all of said vectors determined in said step a) have been processed;
f) outputting said coordinates retained in said step d); and g) repeating said steps a)-f) for other said particular areas until the entire said space has been covered.

15. A method as in claim 14 wherein said steps b) and c) include the steps of:
determining the coordinates of the origin of said one vector;
loading a representation of said first and second dimensions of said one vector origin coordinates into first and second counters, respectively;
incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector; and for each of said coordinates, comparing at least one dimension of said coordinates representations with a predetermined number to determine whether each of said coordinates is within said particular area.

16. A method as in claim 15 wherein said comparing step further comprises the step of comparing selected higher order bits of at least one dimension of said coordinates representations with a predeter-mined number.

17. A method as in claim 6 or 14 wherein said particular areas extend the entire distance of one dimension of said space.

18. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a particular area of said space;
b) storing representations of said vectors determined in said step a) in a first memory;
c) for any one of the vectors stored in said step b), determining the coordinates of a plurality of points of said vector;
d) determining whether each of said coordi-nates is within said particular area;
e) storing the coordinates favorably deter-mined in said step d) in a second memory;
f) repeating said steps c)-e) for other vectors until all of said vectors stored in said step h) have been processed;
g) outputting said coordinates stored in said step e); and h) repeating said steps a)-g) for other said particular areas until the entire said space has been covered.

19. A method as in claim 18 wherein said step d) includes the step of comparing selected higher order bits of a representation of at least one dimension of said coordinates with a predetermined number to determine whether each of said coordinates is within said particular area.

20. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a particular area of said space;
b) for any one of the vectors determined in said step a), determining the coordinates of a plurality of points of said vector;
c) comparing selected higher order bits of binary representations of at least one dimension of each of said coordinates with a predetermined number to determine whether said coordinates are within said particular area;
d) retaining the coordinates favorably compared in said step c);
e) repeating said steps b)-d) for other vectors until all of said vectors determined in said step a) have been processed;
f) outputting said coordinates retained in said step d); and g) repeating said steps a)-f) for other said particular areas-until the entire said space has been covered.

21. A method as in claim 1, 11 or 20 wherein:
said method further comprises the step of storing said vectors in a first memory prior to said step a); and said retaining step further comprises the step of storing said coordinates in a second memory.

22. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a particular area of said space;
b) for any one of said vectors determined in said step a), determining the coordinates of the origin of said one vector;
c) loading a representation of the two dimensions of said one vector origin coordinates into first and second counters, respectively;
d) repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
e) determining whether each of said coordinates representations is within said particular area;
f) retaining said coordinates which are favorably determined in said step e) g) repeating said steps b)-f) for other vectors determined in said step a) until all of said vectors determined in said step a) have been processed;
h) transferring all data retained in said step f) to an output device; and i) repeating said steps a)-h) for other said particular areas until the entire said space has been covered.

23. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a particular area of said space;

b) storing representations of said vectors determined in said step a) in a first memory;
c) for any one of said vectors stored in said step b), determining the coordinates of the origin of said one vector;
d) loading a representation of the two dimensions of said one vector origin coordinates into first and second counters, respectively;
e) repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
f) comparing at least one dimension of each of said coordinates representations with a predetermined number to determine whether each of said coordinates is within said particular area;
g) storing bits in a second memory at locations related to said coordinates which compared favorably in said step f);
h) repeating said steps c)-g) for other vectors stored in said step b) until all of said vectors stored in said step b) have been processed;
i) transferring all data stored in said step g) to an output device; and j) repeating said steps a)-i) for other said particular areas until the entire said space has been covered.

24. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a first particular area of said space;

b) for any one of the vectors determined in said step a), determining the coordinates of a plurality of points in said vector;
c) determining whether each of said coordinates is within a second particular area within said first particular area;
d) retaining the coordinates favorably determined in said step c);
e) repeating said steps b)-d) for other vectors until all of said vectors determined in said step a) have been processed;
f) outputting said coordinates retained in said step d);
g) repeating said steps b)-f) for other said second particular areas until the entire said first particular area has been covered; and h) repeating said steps a)-g) for other said first particular areas until the entire said space has been covered.

25. A method as in claim 24 wherein said steps b) and c) include the steps of:
determining the coordinates of the origin of said one vector;
loading a representation of first and second dimensions of said one vector origin coordinates into first and second counters, respectively;
incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector; and for each of said coordinates, comparing at least one dimension of said coordinates represen-tations with a predetermined number to determine whether each of said coordinates is within said second particular area.
26. A method as in claim 25 wherein said comparing step further comprises the step of comparing selected higher order bits of at least one dimension of said coordinates representations with a predeter-mined number.
27. A method as in claim 24 wherein said step b) includes the step of determining said coordinates in accordance with the Bresenham method.
28. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a first particular area of said space;
b) storing representations of said vectors determined in said step a) in a first memory;
c) for any one of the vectors determined in said step a), determining the coordinates of a plurality of points in said vector;
d) determining whether each of said coordinates are within a second particular area within said first particular area;
e) storing the coordinates favorably determined in said step d) in a second memory;
f) repeating said steps c)-e) for other vectors until all of said vectors determined in said step a) have been processed;
g) outputting said coordinates stored in said step e);

h) repeating said steps c)-g) for other said second particular areas until the entire said first particular area has been covered; and i) repeating said steps a)-h) for other said first particular areas until the entire said space has been covered.

29. A method as in claim 28 wherein said step d) includes the step of comparing selected higher order bits of a representation of at least one dimension of said coordinates with a predetermined number to determine whether each of said coordinates is within said second particular area.

30. A method as in claim 28 wherein:
said first and second memories each includes first and second portions; and said method further comprises the steps of:
loading vectors into said first memory first portion while vectors are being read out from said first memory second portion until said first memory first portion is completely loaded with vectors and all of the vectors in said first memory second portion have been read out and then loading vectors into said first memory second portion while vectors are being read out of said first memory first portion, and loading coordinates into said second memory first portion while reading out coordinates from said second memory second portion until said second memory first portion is entirely loaded with coordinates and all of said coordinates in said second memory second portion are read out, and then loading coordinates into said second memory second portion while reading out coordinates from said second memory first portion.

31. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a first particular area of said space:
b) for any one of the vectors determined in said step a), determining the coordinates of a plurality of points in said vector;
c) comparing selected higher order bits of binary representations of at least one dimension of each of said coordinates with a predetermined number to determine whether said coordinates are within a second particular area within said first particular area;
d) retaining the coordinates favorably determined in said step c);
e) repeating said steps b)-d) for other vectors until all of said vectors determined in said step a) have been processed;
f) outputting said coordinates retained in said step d);
g) repeating said steps b)-f) for other said second particular areas until the entire said first particular area has been covered; and h) repeating said steps a)-g) for other said first predetermined areas until the entire said space has been covered.

32. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a first particular area of said space;
b) for any one of the vectors determined in said step a), determining the coordinates of the origin of said one vector;
c) loading representations of first and second dimensions of said one vector origin coordinates into first and second counters, respectively;
d) repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
e) determining whether each of said coordinates is within a second particular area within said first particular area;
f) retaining the coordinates favorably determined in said step e);
g) repeating said steps b)-f) for other vectors until all of said vectors determined in said step a) have been processed;
h) outputting said coordinates retained in said step f);
i) repeating said steps b)-h) for other said second particular areas until the entire said first particular area has been covered; and j) repeating said steps a)-i) for other said first particular areas until the entire said space has been covered.

33. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a first particular area of said space;
b) storing representations of said vectors determined in said step a) in a first memory;
c) for any one of said vectors stored in said step b), determining the coordinates of the origin of said one vector;
d) loading a representation of said one vector origin first and second dimension coordinates into first and second counters, respectively;
e) repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
f) determining whether each of said coordinates is within a second particular area within a said first particular area;
g) storing bits in a second memory at locations related to said coordinates which were favorably determined in said step f);
h) repeating said steps c)-g) for other vectors stored in said step b) until all of said vectors stored in said step b) have been processed;
i) transferring all data stored in said step g) to an output device;
j) repeating said steps c)-i) for other said second particular areas until the entire said first particular area has been covered; and k) repeating said steps a)-j) for other said first particular areas until the entire said space has been covered.

34. A method as in claim 10 or 33 further comprising the steps of:
loading vectors into said first memory first portion while vectors are being read out from said first memory second portion until said first memory first portion is completely loaded with vectors and all of the vectors in said first memory second portion have been read out and then loading vectors into said first memory second portion while vectors are being read out of said first memory first portion; and loading coordinates into said second memory first portion while reading out coordinates from said second memory second portion until said second memory first portion is entirely loaded with coordinates and all of said coordinates in said second memory second portion are read out, and then loading coordinates into said second memory second portion while reading out coordinates from said second memory first portion.

35. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a first particular area of said space;
b) storing representations of said vectors determined in said step a) in a first memory;
c) for any one of said vectors stored in said step b) determining the coordinates of the origin of said one vector;

d) loading a representation of the two dimensions of said one vector origin coordinates into first and second counters, respectively;
e) repeatedly incrementally changing at least one of said first and second counters so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
f) comparing at least one dimension of each of said coordinates representations with a predetermined number to determine whether each of said coordinates is within a second particular area within said first particular area;
g) storing bits in a second memory at locations related to said coordinates which compared favorably in said step f);
h) repeating said steps c)-g) for other vectors stored in said step b) until all of said vectors stored in said step b) have been processed;
i) transferring all data stored in said step g) to an output device;
j) repeating said steps c)-i) for other said second particular areas until the entire said first particular area has been covered; and k) repeating said steps a)-j) for other said first particular areas until the entire said space has been covered.

36. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a first particular area of said space;
b) storing representations of said vectors determined in said step a) in a first memory;

c) for any one of said vectors stored in said step b), determining the coordinates of the origin of and the change in two dimensions from the origin to the end point of said one vector;
d) loading a representation of said one vector origin coordinates into said first and second counters corresponding to said two dimensions, respectively;
e) repeatedly incrementally changing at least one of said first and second counters in accordance with the Bresenham method, so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
f) comparing selected higher order bits of at least one dimension of each of said coordinates representations with a particular number to determine whether each of said coordinates is within a second particular area within said first particular area;
g) storing bits in a second memory at locations related to said coordinates which compared favorably in said step f), h) repeating said steps c)-g) for other vectors stored in said step b) until all of said vectors stored in said step b) have been processed;
i) transferring all data stored in said step g) to an output device;
j) repeating said steps c)-i) for other said second particular areas until the entire said first particular area has been covered; and k) repeating said steps a)-j) for other said first predetermined areas until the entire said space has been covered.

37. A method as in claim 24 or 36 wherein said first particular areas and said second particular areas extend the entire distance of one dimension of said space.

38. A method of rasterizing vectors in a predetermined space comprising the steps of:
a) determining all vectors which have at least a portion in a first particular area of said space;
b) storing representations of said vectors determined in said step a) in a first memory, said first memory having two portions;
c) for any one of said vectors stored in said step b), determining the coordinates of the origin of and the change in two dimensions from the origin to the end point of said one vector;
d) loading a representation of the two dimensions of said one vector origin coordinates into first and second counters corresponding to said two dimensions;
e) repeatedly incrementally changing at least one of said first and second counters in accordance with the Bresenham method, so that after each said incrementation, said counters store a representation of coordinates of a point in said one vector;
f) comparing selected higher order bits of at least one dimension of each of said coordinates representations with a predetermined number to determine whether each of said coordinates is within a second particular area within said first particular area;
g) storing bits in a second memory at locations related to said coordinates which compared favorably in said step f), said second memory having two portions;
h) repeating said steps c)-g) for other vectors stored in said step b) until all of said vectors stored in said step b) have been processed;
i) transferring all data stored in said step g) to an output device;
j) repeating said steps c)-h) simultaneously with said step i) for other said second particular areas until the entire said first particular area has been covered, said step g) occurring in one said second memory portion while said step i) occurs in another said second memory portion, said steps g) and i) reversing with respect to said portions upon each completion of said steps h) and i); and k) repeating said steps a)-b) simultaneously with said steps c)-j) for other said first particular areas until the entire said space has been covered, said step b) occurring in one said first memory portion while data for said step c) is obtained in another said first memory portion, said steps b) and c) reversing with respect to said first memory portions upon each completion of said step b) and said steps c)-j).

39. Apparatus for rasterizing vectors in a predetermined space comprising:
means for serially selecting each of said vectors until all of said vectors have been selected;
first means, responsive to said selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
second means, responsive to said first determining means, for determining whether each of said coordinates is within said space; and means for retaining said coordinates favorably determined by said second determining means.

40. Apparatus as in claim 39 wherein:
said apparatus further comprises vector memory means for storing said vectors, said selecting means being responsive to said vector memory means;
and said means for retaining includes raster memory means for storing said coordinates favorably determined in said second determining means.

41. Apparatus as in claim 39 wherein said first determining means further comprises:
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter; and means for incrementally changing at least one of said first and second counters so that the output of said first and second counters after each incrementation represents the coordinates of a point in said selected vector.

42. Apparatus as in claim 39 wherein said first and second determining means further comprises:
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;

means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector; and means for comparing at least one of said first and second counter outputs with a predetermined number to determine if said coordinates at said first and second counter outputs are within said space.

43. Apparatus as in claim 39 wherein said first and second determining means further comprises:
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of a selected vector selected by said first selecting means into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector; and means for comparing selected higher order bits of at least one of said first and second counter outputs with a predetermined number to determine if said coordinates at said first and second counter outputs are within said space.

44. Apparatus for rasterizing vectors in a predetermined space comprising:
first means for serially selecting each of a plurality of particular areas until all of said space has been covered;
second means for serially selecting each of said vectors until all of said vectors have been selected for each of said particular areas;
first means, responsive to said second selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
second means, responsive to said first determining means, for determining whether each of said coordinates is within said selected particular area;
means for retaining said coordinates favorably determined by said second determining means;
and means for outputting said coordinates retained by said retaining means after said second selecting means has selected all of said vectors for one of said particular areas.

45. Apparatus for rasterizing vectors in a predetermined space comprising:
vector memory means for storing representations of said vectors;
first means for serially selecting each of a plurality of particular areas until all of said space has been covered;
second means for serially selecting each of said vectors stored in said vector memory means until all of said vectors have been selected for each of said particualr areas;

first means, responsive to said second selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
second means, responsive to said first determining means, for determining whether each of said coordinates are within said selected particular area;
raster memory means for storing said coordinates favorably determined by said second determining means; and means for outputting said coordinates stored in said raster memory means after said second selecting means has selected all of said vectors for one of said particular areas.

46. Apparatus as in claim 45 wherein:
said raster memory means includes first and second portions; and said apparatus further comprises means for first directing coordinates from said first determining means in response to a favorable determination to said raster memory means first portion while said outputting means obtains coordinates from said raster memory means second portion until all vectors in said vector memory means have been processed by said second selecting means and said first determining means and said outputting means has output all of said vectors in said raster memory means second portion, and then directing coordinates from said first determining means in response to a favorable determination to said raster memory means second portion while said outputting means obtains coordinates from said raster memory means first portion.

47. Apparatus for rasterizing vectors in a predetermined space comprising:
first means for serially selecting each of a plurality of particular areas until all of said space has been covered;
second means for serially selecting each of said vectors until all of said vectors have been selected for each of said particular areas, means, responsive to said second selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
means, responsive to said determining means, for comparing higher order bits of binary represen-tations of at least one dimension of said coordinates with a predetermined number to determine whether said coordinates are within said selected particular area;
means for retaining said coordinates favorably compared by said comparing means; and means for outputting said coordinates retained by said retaining means after said second selecting means has selected all of said vectors for one of said particular areas.

48. Apparatus for rasterizing vectors in a predetermined space comprising:
first means for serially selecting each of a plurality of particular areas until all of said space has been covered;
second means for serially selecting each of said vectors until all of said vectors have been selected for each of said particular areas;
a first counter;

a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector;
means for determining whether said coordinates at outputs of said first and second counters are within said selected particular area;
means, responsive to said determining means and said first and second counters, for retaining said first and second counter outputs in response to a favorable determination; and means for outputting said coordinates retained by said retaining means after all of said vectors have been selected for one of said particular areas.

49. Apparatus for rasterizing vectors in a predetermined space comprising:
vector memory means for storing said vectors;
first means for serially selecting each of a plurality of particular areas until all of said space has been covered;
second means for serially selecting each of said vectors stored in said vector memory means until all of said vectors have been selected for each of said particular areas;
a first counter;
a second counter;

means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector;
means for comparing outputs of at least one of said first and second counters with a predetermined number to determine if said coordinates at said first and second counter outputs are within said selected particular area;
raster memory means, responsive to said comparing means and said first and second counters, for storing, said first and second counter outputs in response to a favorable comparison; and means for outputting the contents of said raster memory means after all vectors stored in said vector memory means have been selected for one of said particular areas.

50. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying all vectors which have at least a portion in a selected one of a plurality of particular areas within said space;
first means for serially selecting each of said particular areas until all of said space has been covered;
second means for serially selecting each of said vectors identified by said identifying means until all of said vectors in said selected particular area have been selected;
first means, responsive to said second selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
second means, responsive to said first determining means, for determining whether each of said coordinates is within said selected particular area;
means for retaining said coordinates favorably determined in said second determining means;
and means for outputting said coordinates retained by said retaining means after said second selecting means has selected all of said identified vectors for one of said particular areas.

51. Apparatus as in claim 44 or 50 wherein said particular areas have one dimension the same as one dimension of said space.

52. Apparatus as in claim 44 or 50 wherein said first and second determining means further comprises:
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector; and means for comparing at least one of said first and second counter outputs with a predetermined number to determine if said coordinates at said first and second counter outputs are within said selected particular area.

53. Apparatus as in claim 44 or 50 wherein said first and second determining means further comprises:
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of a selected vector selected by said first selecting means into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector; and means for comparing selected higher order bits of at least one of said first and second counter outputs with a predetermined number to determine if said coordinates at said first and second counter outputs are within said selected particular area.

54. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying groups of vectors, each of said groups including all vectors which have at least a portion in a selected one of a plurality of particular areas within said space;

vector memory means, responsive to said identifying means, for serially storing representations of each of said groups of vectors until said vectors in all of said particular areas have been stored;
means for serially selecting each of said vectors identified by said identifying means and stored in said vector memory means until all of said vectors in each of said selected particular areas have been selected;
first means, responsive to said selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
second means, responsive to said first determining means, for determining whether each of said coordinates is within said selected particular area;
raster memory means for storing said coordinates favorably determined by said second determining means; and means for outputting said coordinates stored in said raster memory means after said second selecting means has selected all of said identified vectors for one of said particular areas.

55. Apparatus as in claim 45 or 54 wherein said second determining means includes means for comparing higher order bits of binary representations of at least one dimension of said coordinates with a predetermined number to determine if said coordinates are within said selected particular area.

56. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying all vectors which have at least a portion in a selected one of a plurality of particular areas within said space;
first means for serially selecting each of said particular areas until all of said space has been covered;
second means for serially selecting each of said vectors identified by said identifying means until all of said vectors in said selected particular area have been selected;
means, responsive to said second selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
means, responsive to said determining means, for comparing higher order bits of a binary represen-tation of at least one dimension of said coordinates with a predetermined number to determine whether said coordinates are within said selected particular area;
means for retaining said coordinates favorably compared in said comparing means; and means for outputting said coordinates retained by said retaining means after said second selecting means has selected all of said identified vectors for one of said particular areas.

57. Apparatus as in claim 56 further comprising:
vector memory means, responsive to said identifying means, for serially storing all of said vectors in each of said particular areas, said second selecting means being responsive to said vector memory means; and said means for retaining includes raster memory means for storing said coordinates retained by said retaining means.

58. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying all vectors which have at least a portion in a corresponding one of a plurality of particular areas within said space;
first means for serially selecting each of said particular areas until all of said space has been covered;
second means for serially selecting each of said vectors in said selected predetermined area until all of said vectors have been selected;
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector;
means for determining whether said coordinates at said first and second counter outputs are within said selected particular area;
means, responsive to said determining means and said first and second counters, for retaining said first and second counter outputs in response to a favorable determination; and means for outputting said coordinates retained in said retaining means after said second selecting means has selected all of said vectors for one of said particular areas.

59. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying groups of vectors, each of said groups including all vectors which have at least a portion in a selected one of a plurality of particular areas within said space;
vector memory means, responsive to said identifying means, for serially storing representations of each of said groups of vectors until said vectors in all of said particular areas have been stored;
means for serially selecting each of said vectors stored in said vector memory means until all of said vectors in said selected particular area have been selected;
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector;
means for comparing outputs of at least one of said first and second counters with a predetermined number to determine if said coordinates at said first and second counter outputs are within said selected particular area;
raster memory means, responsive to said comparing means and said first and second counters, for storing said first and second counter outputs in response to a favorable comparison and means for outputting the contents of said raster memory means after all vectors stored in said vector memory means have been selected for one of said particular areas.

60. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying all vectors which have at least a portion in a selected one of a plurality of first particular areas within said space;
first means for serially selecting each of said first particular areas until all of said space has been covered;
second means for serially selecting each of a plurality of second particular areas within said selected first particular area until the entire said selected first particular area has been covered;
third means for serially selecting each of said vectors identified by said identifying means until all of said vectors in said selected first particular area have been selected for each second particular area;
first means, responsive to said third selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
second means, responsive to said first determining means, for determining whether each of said coordinates is within said selected second particular area;

means for retaining said coordinates favorably determined by said second determining means;
and means for outputting said coordinates retained by said retaining means after said third selecting means has selected all of said identified vectors for one of said second particular areas.

61. Apparatus as in claim 60 wherein said first and second determining means further comprises:
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector; and means for comparing at least one of said first and second counter outputs with a predetermined number to determine if said coordinates at said first and second counter outputs are within said selected second particular area.

62. Apparatus as in claim 60 wherein said first and second determining means further comprises:
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of a selected vector selected by said first selecting means into said first counter;

means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector; and means for comparing selected higher order bits of at least one of said first and second counter outputs with à predetermined number to determine if said coordinates at said first and second counter outputs are within said selected second particular area.

63. Apparatus as in claim 39, wherein said first determining means includes means for determining the coordinates of a plurality of points in each of said selected vectors in accordance with the Bresenham method.

64. Apparatus as in claim 44 wherein said first determining means include means for determining the coordi-nates of a plurality of points in each of said selected vectors in accordance with the Bresenham method.

65. Apparatus as in claim 60 wherein said first determining means include means for determining the coordi-nates of a plurality or points in each of said selected vectors in accordance with the Bresenham method.

66. Apparatus as in claim 63,64 or 65 wherein said first determining means further comprises:
a first multiplexer having a first input responsive to the change in one dimension between ends of said selected vector;
a second multiplexer having a first input responsive to the change in another dimension between ends of said selected vector;

91.a a first register responsive to an output of said first multiplexer;
a second register responsive to an output of said second multiplexer;
means for transmitting the output of said first register to a second input of said second multiplexer;

means for transmitting the output of said second register to a second input of said first multiplexer;
an AND gate having a first input responsive to the output of said second register and a second input;
first arithmetic means having a first input responsive to the output of said first register and a second input responsive to the output of said AND
gate, said arithmetic means producing an output related to the difference between said first input and said second input, the most significant bit of an output of said arithmetic means controlling said first and second multiplexers;
second arithmetic means having a first input responsive to said first arithmetic means output and a second input, said second arithmetic means producing an output related to the sum of said first and second inputs, said second input of said AND gate and said second determining means being responsive to said second arithmetic means output; and an accumulator responsive to the output of said second arithmetic means, said second arithmetic means second input being responsvie to the output of said accumulator.
67. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying groups of vectors, each of said groups including all vectors which have at least a portion in a selected one of a plurality of first particular areas within said space;
vector memory means, responsive to said identifying means, for serially storing representations of each of said groups of vectors until said vectors in all of said first particular areas have been stored;
first means for serially selecting each of a plurality of second particular areas; within said selected first particular area until the entire said selected first particular area has been covered;
second means for serially selecting each of said vectors stored in said vector memory means until all of said vectors in said selected first particular area have been selected for each said second particular area;
first means, responsive to said second selecting means, for determining the coordinates of a plurality of points in each of said selected vectors;
second means, responsive to said first determining means, for determining whether each of said coordinates are within said selected second particular area;
raster memory means for storing representations of said coordinates favorably determined in said second determining means; and means for outputting said coordinates stored in said raster memory means after said second selecting means has selected all of said identified vectors for one of said second particular areas.

68. Apparatus as in claim 54 or 67 wherein said second determining means includes means for comparing higher order bits of binary representations of at least one dimension of said coordinates with a predetermined number to determine if said coordinates are within said selected second particular area.

69. Apparatus as in claim 67 wherein:
said raster memory means and said vector memory means each includes first and second portions;
and said apparatus further comprises:
means for first directing vectors from said identifying means to said vector memory means first portion while said first selecting means selects vectors from said vector memory means second portion until said identifying means has identified all vectors in one of said first particular areas and said first selecting means has selected all of said vectors in said vector memory means second portion, and then directing vectors from said identifying means to said vector memory means second portion while said first selecting means selects vectors from said vector memory means first portion, and means for first directing coordinates from said first determining means in response to a favorable determination to said raster memory means first portion while said outputting means obtains coordinates from said raster memory means second portion until all vectors in said vector memory means have been processed by said second selecting means and said first determining means and said outputting means has output all of said coor-dinates in said raster memory means second portion, and then directing coordinates from said first determining means in response to a favorable determination to said raster memory means second portion while said outputting means obtains coordinates from said raster memory means first portion.

70. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying all vectors which have at least a portion in a selected one of a plurality of first particular areas within said space;
first means for serially selecting each of said first particular areas until all of said space has been covered;
second means for serially selecting each of a plurality of second particular areas within said selected first particular area until the entire said selected first particular area has been covered;
third means for serially selecting each of said vectors identified by said identifying means until all of said vectors in said selected first particular area have been selected for each second particular area;
means, responsive to said determining means, for comparing higher order bits of binary representations of at least one dimension of said coordinates with a predetermined number to determine whether said coordinates are within said selected second particular area;
means for retaining said coordinates favorably compared by said comparing means; and means for outputting said coordinates retained by said retaining means after said third selecting means has selected all of said identified vectors for one of said second particular areas.

71. Apparatus as in claim 70 wherein:
said apparatus further comprises vector memory means, responsive to said identifying means, for serially storing all of said vectors in each of said first particular areas, said third selecting means being responsive to said vector memory means;
and said means for retaining includes raster memory means for storing said coordinates retained by said retaining means.

77 . Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying all vectors which have at least a portion in a corresponding one of a plurality of first particular areas within said space;
first means for serially selecting one of said first particular areas until all of said space has been covered;
second means for serially selecting each of a plurality of second particular areas within said selected first particular area until all of said selected first particular area has been covered;
third means for serially selecting each of said vectors in said selected first particular area until all of said vectors in said selected first particular area have been selected for each second particular area;
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;

means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector;
means, responsive to said first and second counters, for determining whether said coordinates at said first and second counter outputs are within said selected second particular area;
means, responsive to said determining means and said first and second counters, for retaining said first and second counter outputs in response to a favorable determination; and means for outputting said retained coordinates after said third selecting means has selected all of said vectors for one of said second particular areas.

73. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying groups of vectors, each of said groups including all vectors which have at least a portion in a selected one of a plurality of first particular areas within said space;
vector memory means, responsive to said identifying means, for serially storing representa-tions of each of said groups of vectors until said vectors in all of said particular areas have been stored;
first means for serially selecting each of a plurality of second particular areas within each said first particular area;

second means for serially selecting each of said vectors identified by said identifying means and stored in said vector memory means until all of said vectors in said selected first particular area have been selected for each second particular area;
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector;
means for determining whether said coordinates at said first and second counter outputs are within said selected second particular area;
raster memory means, responsive to said determining means and said first and second counters, for storing said first and second counter outputs in response to a favorable determination; and means for outputting the contents of said raster memory means after all vectors in said selected first particular area and stored in said vector memory means have been selected for one of said second particular areas.

74 . Apparatus as in claim 73 wherein:
said raster memory means and said vector memory means each includes first and second portions;
and 75. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying groups of vectors, each of said groups including all vectors which have at least a portion in a selected one of a plurality of first particular areas within said space;
vector memory means, responsive to said identifying means, for serially storing representations of each of said groups of vectors until said vectors in all of said first particular areas have been stored;
first means for serially selecting each of a plurality of second particular areas within each said first particular area;
second means for serially selecting each of said vectors stored in said vector memory means until all of said vectors in said selected first particular area have been selected for each said second particular area;
a first counter;
a second counter;
means for loading a first dimension coordi-nate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
means for incrementally changing at least one of said first and second counters so that the output of said first and second counters represents coordinates of points in said selected vector;
means for comparing outputs of at least one of said first and second counters with a predetermined number to determine if said coordinates at said first and second counter outputs are within said selected second particular area;
raster memory means, responsive to said comparing means and said first and second counters, for storing said first and second counter outputs in response to a favorable comparison; and means for outputting the contents of said raster memory means after all vectors in said selected first particular area and stored in said vector memory means have been selected for one of said second particular areas.

76. Apparatus for rastarizing vectors in a predetermined space comprising:
means for identifying groups of vectors, each of said groups including all vectors which have at least a portion in a selected one of a plurality of first particular areas within said space;
vector memory means, responsive to said identifying means, for serially storing represen-tations of each of said groups of vectors until said vectors in all of said first particular areas have been stored;
means for serially storing raster band numbers, each representative of a selected second particular area within each said first particular area;
means for serially selecting each of said vectors stored in said vector memory means until all of said vectors in said selected first particular area have been selected for each second particular area corresponding to a number stored in said raster band storing means;
a first counter;

means have been selected for one of said second particular areas.

77. Apparatus as in claim 60 or 76 wherein said first and second particular areas have one dimension the same as one dimension of said space.

78 . Apparatus as in claim 76 wherein said first incrementing means further comprises:
a first multiplexer having a first input responsive to the change in one dimension between ends of said selected vector;
a second multiplexer having a first input responsive to the change in another dimension between ends of said selected vector;
a first register responsive to an output of said first multiplexer;
a second register responsive to an output of said second multiplexer means for transmitting the output of said first register to a second input of said second multiplexer;
means for transmitting the output of said second register to a second input of said first multiplexer;
an AND gate having one input responsive to the output of said second register;
first arithmetic means having a first input responsive to the output of said first register and a second input responsive to the output of said AND
gate, said arithmetic means producing an output related to the difference between said first input and said second input, the most significant bit of an output of said arithmetic means controlling said first and second multiplexers;

second arithmetic means having a first input responsive to said first arithmetic means output and a second input, said second arithmetic means producing an output related to the sum of said first and second inputs, another input of said AND gate and said first and second counters being responsive to said second arithmetic means output; and an accumulator responsive to the output of said second arithmetic means, said second arithmetic means second input being responsive to the output of said accumulator.

79. Apparatus for rasterizing vectors in a predetermined space comprising:
means for identifying groups of vectors, each of said groups including all vectors which have at least a portion in a selected one of a plurality of first particular areas within said space;
vector memory means, responsive to said identifying means, for serially storing represen-tations of each of said groups of vectors until said vectors in all of said first predetermined particular areas have been stored, said vector memory means having first and second portions;
means for serially storing raster band numbers, each representative of a selected second particular area within each said first particular area;
means for serially selecting each of said vectors stored in said vector memory means until all of said vectors in said selected first particular area have been selected for each second particular area corresponding to a number stored in said raster band number storing means;

means for first directing vectors from said identifying means to said vector memory means first portion while said selecting means selects vectors from said vector memory means second portion until said identifying means has identified all vectors in one of said first particular areas and said selecting means has selected all of said vectors in said vector memory means second portion, and then directing vectors from said identifying means to said vector memory means second portion while said selecting means selects vectors from said vector memory means first portion;
a first counter;
a second counter;
means for loading a first dimension coordinate of the origin of said selected vector into said first counter;
means for loading a second dimension coordinate of the origin of said selected vector into said second counter;
a first register;
a second register;
means for loading the change in said first dimension between the origin and end of said selected vector in said first register;
means for loading the change in said second dimension between the origin and end of said selected vector in said second register;
means, responsive to said first and second registers, for incrementally changing at least one of said first and second counters in accordance with the Bresenham method, the output of said first and second counters representing coordinates of points in said selected vector;

means for comparing higher order bits of at least one of said first and second counters outputs with one of said raster band numbers to determine if said coordinates at said first and second counter outputs are within said selected second particular area;
raster memory means, responsive to said comparing means and said first and second counters, for storing said first and second counter outputs in response to a favorable comparison, said raster memory means including first and second portions;
means for outputting the contents of said raster memory means after 211 vectors stored in said vector memory means have been selected for one of said second particular areas; and means for first directing coordinates from said first and second counters, in response to a favorable comparison, to said raster memory means first portion while said outputting means obtains coordinates from said raster memory means second portion until all vectors in one of said first and second portions of said vector memory means have been processed by the plurality of said loading means and said incrementing means and said outputting means has output all of said vectors in said raster memory means second portion, and then directing coordinates from said first and second counters, in response to a favorable comparison, to said raster memory means second portion while said outputting means obtains coordinates from said raster memory means first portion.
CA000399980A 1981-05-13 1982-03-31 Banded vector to raster converter Expired CA1175150A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/263,192 US4458330A (en) 1981-05-13 1981-05-13 Banded vector to raster converter
US263,192 1981-05-13

Publications (1)

Publication Number Publication Date
CA1175150A true CA1175150A (en) 1984-09-25

Family

ID=23000778

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000399980A Expired CA1175150A (en) 1981-05-13 1982-03-31 Banded vector to raster converter

Country Status (2)

Country Link
US (1) US4458330A (en)
CA (1) CA1175150A (en)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58114274A (en) * 1981-12-28 1983-07-07 Hitachi Ltd Data processor
JPH067304B2 (en) * 1982-12-10 1994-01-26 株式会社日立製作所 Graphic processing device
US4707801A (en) * 1983-05-11 1987-11-17 International Business Machines Corporation Word processing system based on a data stream having integrated alphanumeric and graphic data
US4549275A (en) * 1983-07-01 1985-10-22 Cadtrak Corporation Graphics data handling system for CAD workstation
US4646075A (en) * 1983-11-03 1987-02-24 Robert Bosch Corporation System and method for a data processing pipeline
US4611268A (en) * 1984-01-06 1986-09-09 Goetz Sandor Method and electronic apparatus for optimal arrangement of shapes having at least two dimensions
US4725831A (en) * 1984-04-27 1988-02-16 Xtar Corporation High-speed video graphics system and method for generating solid polygons on a raster display
US4677573A (en) * 1984-05-15 1987-06-30 International Business Machines Corporation Hardware generation of styled vectors in a graphics system
US4660029A (en) * 1984-07-06 1987-04-21 Tektronix, Inc. Method of providing raster information for a graphics display employing linked lists
US4625288A (en) * 1984-10-01 1986-11-25 Tektronix, Inc. Method and apparatus for creating a structured image data set based on acquired image data
JPH0640337B2 (en) * 1984-10-03 1994-05-25 株式会社日立製作所 Pipeline arithmetic unit
JPS61182093A (en) * 1985-02-08 1986-08-14 株式会社日立製作所 High speed graphic drawing system
JPS62187977A (en) * 1986-02-13 1987-08-17 Dainippon Screen Mfg Co Ltd Image data processor
US4799173A (en) * 1986-02-28 1989-01-17 Digital Equipment Corporation Transformation circuit to effect raster operations
US4791595A (en) * 1986-07-11 1988-12-13 Tektronix, Inc. Digital vector generation with velocity correction by tabulation of counter control signals
US4816814A (en) * 1987-02-12 1989-03-28 International Business Machines Corporation Vector generator with direction independent drawing speed for all-point-addressable raster displays
US4808986A (en) * 1987-02-12 1989-02-28 International Business Machines Corporation Graphics display system with memory array access
US4837563A (en) * 1987-02-12 1989-06-06 International Business Machine Corporation Graphics display system function circuit
US4904994A (en) * 1987-09-08 1990-02-27 Auto-Trol Technology Corporation Apparatus and method for identifying next matrices for vector drawing
US4939671A (en) * 1987-09-08 1990-07-03 Auto-Trol Technology Corporation Method and system for line drawing with next matrix feature
US4928243A (en) * 1987-10-06 1990-05-22 Preco Industries, Inc. Method and system for printing graphics and text from vector-based computer aided source information
US4901064A (en) * 1987-11-04 1990-02-13 Schlumberger Technologies, Inc. Normal vector shading for 3-D graphics display system
US4888712A (en) * 1987-11-04 1989-12-19 Schlumberger Systems, Inc. Guardband clipping method and apparatus for 3-D graphics display system
US4885703A (en) * 1987-11-04 1989-12-05 Schlumberger Systems, Inc. 3-D graphics display system using triangle processor pipeline
US4945500A (en) * 1987-11-04 1990-07-31 Schlumberger Technologies, Inc. Triangle processor for 3-D graphics display system
US4918624A (en) * 1988-02-05 1990-04-17 The United States Of America As Represented By The United States Department Of Energy Vector generator scan converter
US5028848A (en) * 1988-06-27 1991-07-02 Hewlett-Packard Company Tile vector to raster conversion method
US5016195A (en) * 1989-03-03 1991-05-14 Da Vinci Graphics, Inc. High quality plotting technique for raster printing devices
US5138561A (en) * 1989-11-01 1992-08-11 Xerox Corporation Computer graphics plotter control
US5157765A (en) * 1989-11-15 1992-10-20 International Business Machines Corporation Method and apparatus for pipelined parallel rasterization
US5164711A (en) * 1990-02-08 1992-11-17 International Business Machines Corporation System and method for generating graphical output
JPH06266844A (en) * 1992-08-20 1994-09-22 Internatl Business Mach Corp <Ibm> Method and equipment for discriminating raster data picture and vector data picture
DE69737717T2 (en) * 1996-03-04 2008-01-10 Canon Finetech Inc., Mitsukaido IMAGE PROCESSOR
US7038681B2 (en) * 2000-03-29 2006-05-02 Sourceprose Corporation System and method for georeferencing maps
US7148898B1 (en) * 2000-03-29 2006-12-12 Sourceprose Corporation System and method for synchronizing raster and vector map images
AU2001245995A1 (en) * 2000-03-29 2001-10-08 Provar Inc. System and method for georeferencing digital raster maps
US6995774B2 (en) * 2002-07-10 2006-02-07 L3 Communications Corporation Display system and method of diminishing unwanted artifacts

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3821731A (en) * 1971-06-07 1974-06-28 Ann Arbor Terminals Inc Graphics display system and method
GB1405884A (en) * 1971-10-27 1975-09-10 Gec Elliott Automation Ltd Raster-scanned display devices
US3870922A (en) * 1972-05-02 1975-03-11 Nippon Electric Co Graphic pattern generation for a tv-like scanned-graphic display equipment
US3893075A (en) * 1972-12-29 1975-07-01 Richard Orban Method and apparatus for digital scan conversion
US3895357A (en) * 1973-02-23 1975-07-15 Ibm Buffer memory arrangement for a digital television display system
US3996585A (en) * 1974-06-11 1976-12-07 International Business Machines Corporation Video generator circuit for a dynamic digital television display
US4139838A (en) * 1977-04-06 1979-02-13 Hitachi, Ltd. Color pattern and alphanumeric character generator for use with raster-scan display devices
US4254467A (en) * 1979-06-04 1981-03-03 Xerox Corporation Vector to raster processor

Also Published As

Publication number Publication date
US4458330A (en) 1984-07-03

Similar Documents

Publication Publication Date Title
CA1175150A (en) Banded vector to raster converter
CA1153470A (en) Vector to raster processor
US5533175A (en) Low cost page printer system and method
US5671445A (en) Interface for transmitting graphics data to a printer from a host computer system in rasterized form
US5016001A (en) Pattern data generating system
US5588095A (en) System and method of printer banding
GB2149165A (en) Method of reducing characters
JPH06266514A (en) Resources-oriented printer device and operating method
WO1993001565A1 (en) Single chip page printer controller
JPH06202972A (en) Mode switchover device and method
WO1990009640A1 (en) Apparatus for high speed image rotation
WO1992002898A1 (en) Graphic image printing system and method
JPH0378651B2 (en)
EP0100853B1 (en) Character generator for raster printers
JPH06175786A (en) Disk array device
WO1992002899A1 (en) Expander cartridge for printer font cartridge
US6018400A (en) Laser printer employing overlapped color plane processing
US5337409A (en) Parallel/serial data conversion system
US5586229A (en) Band printing method for preventing band overrun error in page printer
CN1055340C (en) Input buffer device for a printer using an fifo and data input method
CN114995780A (en) FIFO buffer and control method of FIFO buffer
Dinstein et al. Handling memory overflow in connected component labeling applications
JP3506335B2 (en) Control method
KR930008045B1 (en) Interface circuit of parallel printer for a serial bus
JP2523213B2 (en) Page printer print control method

Legal Events

Date Code Title Description
MKEC Expiry (correction)
MKEX Expiry