EP0151133A4 - Rückgekoppelter vektorgenerator. - Google Patents
Rückgekoppelter vektorgenerator.Info
- Publication number
- EP0151133A4 EP0151133A4 EP19840902388 EP84902388A EP0151133A4 EP 0151133 A4 EP0151133 A4 EP 0151133A4 EP 19840902388 EP19840902388 EP 19840902388 EP 84902388 A EP84902388 A EP 84902388A EP 0151133 A4 EP0151133 A4 EP 0151133A4
- Authority
- EP
- European Patent Office
- Prior art keywords
- address
- block
- storage
- storage site
- data
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
Definitions
- the present invention is, in general, directed to writing information into a random access memory and, more particularly, to a method and apparatus for writing a vector of data into a random access memory at high speed.
- an image is produced on a visual display screen.
- the information by which this visual image is generated is stored in a screen refresh random access memory on a one-to-one or pixel- to-storage site basis. That is, for each pixel of the visual image display, there is a corresponding storage site in the random access memory (RAM) which contains data corresponding to and describing the visual information of that pixel.
- RAM random access memory
- the data from the screen refresh RAM are periodically read out on a line-by-line basis and displayed on a line-by-line basis in the visual display of the system.
- Typical of these displays are raster scanning devices such as high density television monitors which have a large number of horizontially displayed scan lines.
- an X and a Y address are supplied to the RAM, along with the data to be written thereby.
- a write enable signal is supplied to the RAM to write the data into the addressed storage site. This process must be repeated for each storage site into which data are to be written. This entails supplying a different address for each different storage site being writen into.
- the speed at which these write operations can occur is limited by the RAM access time; i.e., the amount of time that the address and data are required to be present before the RAM can accurately respond to the information. It is also well-known that the speed by which data can be written into the RAM is limited by the speed at which the addressing of the RAM occurs.
- the speed with which data can be written into a screen refresh RAM has a direct impact upon the performance of a graphics display system. For example, when extensive images are sought to be written into the screen refresh RAM, there will be a substantial time delay during which the write operation is being executed. In turn, this slows the operation of the entire system, as well as detracts from the operation of the system as a tool which assists in a design or display process.
- the foregoing problems of previous apparatus for writing data into a screen refresh RAM are overcome by the present invention of a method and apparatus for writing data into a screen refresh RAM at high speed, including a random access memory having a plurality of storage sites wherein the storage sites are addressable in blocks at a memory access rate.
- the storage sites within an accessed addressable block can be individually enabled at a write enable rate to receive data.
- An address generator provides the addressing for each block which is to be written into and the enable signal for the particular storage site within the accessed addressable block which is to receive the data.
- the rate of operation of the address generator is selectable between the memory access rate and the write enable rate.
- a control means is coupled to the address generator for selecting the rate of operation of the address generator according to the nature of the addresses being supplied by the address generator.
- control means Whenever addresses are supplied by the address generator for accessing a new addressable block, the control means cause the address generator to operate at the memory access rate for a predetermined period of time. After the predetermined period of time, the control means cause the address generator to resume operation at the write enable rate.
- a RAM access entails the application of an address on the RAM address lines, the receipt of or output of data on the RAM data lines, and the application of a write or a lead enable signal on the RAM enable line.
- the RAM enable operation entails the application of the write or read enable signal to the RAM, it being assumed that the address and input data remain unchanged.
- the period of time required for a RAM access such as a write operation, is longer than the period of time required for the RAM to be enabled, such as a write enable.
- a large proportion of the writing into or reading out of the storage sites in the RAM can be accomplished by enabling the appropriate storage site in the RAM.
- the number of storage sites within each block affect how frequently a RAM access operation will be required. Since the write enable signal is typically shorter than the RAM access time period, data can be written into the RAM at a higher speed for storage sites within a block. Thus, when the system is writing information within a block, the vector
- O generator can operate at a speed which is comparable to the write enable speed requirement.
- the control means causes the address generator to slow down for a time period which satisfies the RAM access " timing requirements. Thereafter, the control means permits the address generator to resume operation at the higher rate.
- a plurality of random access memories are addressed in common and receive data in common; however, each random access memory is supplied individually with a write enable signal.
- the corresponding storage site in each RAM for all of the RAMs collectively represent the block of storage sites corresponding to the address.
- control means are implemented by circuitry which monitors the Y address for any changes therein, and the X address for any addresses which correspond to the end points of a block of storage sites. Upon the occurrence of either a change in the Y address or the addressing of an end point of a block, the circuitry supplies a delay signal or an inhibit signal to the address generator. It is, therefore, an object of the present invention to provide a method and apparatus for writing data into a screen refresh RAM at high speed, wherein the screen refresh RAM includes storage sites which are accessable in addressable blocks, and wherein storage sites in an addressable block are individually enabled, and wherein addresses and write enable signals are
- Fig. 1 is a simplified functional block diagram of the present invention.
- Fig. 2 is a more detailed functional block diagram of the present invention.
- Fig. 3 illustrates the arrangement of storage sites in the screen refresh RAM.
- OMPI Fig. 4 illustrates the correspondence of the blocks of storage sites to pixel locations on the visual display of a video-graphics system.
- Fig. 5 illustrates the allocation of address information between a Y address, an X address and the allocation of the X address between a " block address and write enable information.
- Fig. 6 is an example of the operation of the present invention.
- a visual display apparatus 10 such as a cathode ray tube, receives and displays information from a shift register 12 and screen refresh RAM 14 via line 16 and line 18.
- a resolution of 1,280 x 1024 pixels is provided, and a pixel is displayed at a rate of one pixel per ten nanoseconds.
- shift register 12 receives 80 pieces of information from screen refresh RAM 14, in parallel, once every 800 nanoseconds. Shift register 12 thereafter shifts this information to visual display 10 via line 16 in a serial manner at a rate, of one item of information per 10 nanoseconds.
- the addressing by which this transfer of information is controlled is generated by screen refresh RAM read circuitry, which is a part of the system processor 25.
- each pixel of the video display 10 can have a number of different attributes.
- the data supplied to the visual display means 10 for each pixel includes a number of bits, i.e., a word of information.
- several planes of screen refresh RAM will be provided with corresponding shift registers, wherein each plane provides one bit of information for the word corresponding to a particular pixel.
- a single plane of screen refresh RAM will be discussed, it being understood that the discussion is equally applicable to multiple planes of screen refresh RAM.
- a Y address is supplied on line 20
- an X address is supplied on line 22
- write enable signals are supplied on line 24.
- Data are supplied to screen refresh RAM 14 from the system processor 25 via line 26.
- the Y address is supplied to line 20 by a Y address preset counter 28.
- the system processor 25 provides the preset information to Y address preset counter 28 via line 30.
- the X address and information for the write enable signals are generated by X address preset counter 32.
- the preset X address is supplied from the system processor 25 via line 34.
- a portion of the X address generated by X address preset counter 32 is supplied to line 22 as the X address to screen refresh RAM 14, while the remainder of the address is provided to a binary-to-80 decoder 36.
- Binary-to-80 decoder decodes the address information from X address preset counter 32 to provide a signal on one of 80 lines which are collectively referenced as line 24.
- Y address preset counter 28 and X address preset counter 32 are incremented or decremented by commands from vector generator 38.
- Vector generator 38 receives information from the system processor by which it generates the decrement and increment control signals to the Y address preset counter and the X address preset counter, and by which vectors of data can be written into screen refresh RAM
- the system processor supplies the vector generator 38 with the following information: (1) the magnitude of the change in the X direction, (2) the magnitude of change in the Y direction, (3) the direction of change in the X direction, i.e., the sign of X, (4) the direction of change in the Y direction, i.e., the sign of Y, and (5) a command to generate the address for the next pixel of data.
- the vector generator determines the optimal sequence of pixel addresses by which the vector can be generated, from the given starting point to an end point which is displaced from the starting point by the X and Y displacements specified, and in the directions specified.
- the Y preset and X preset information supplied to the Y address and X address preset counters 28 and 32, respectively, provide the starting point for the vector being generated. Therefore, the end point of the vector being generated is defined by the displacement and direction information from the system processor.
- vector generators there are numerous versions of vector generators in the prior art, and that any of these vector generators are suitable for use in the present invention so long as the vector generator is capable of providing addresses at a rate comparable to the write enable rate of the screen refresh RAM 14, and so long as the operation of the vector generator can be modified for a predetermined period of time to a lower rate of operation comparable to the access time for the screen refresh RAM 14. It is also to be understood that a vector generator which is suitable for use in the present invention can also be of the type which receives starting point and end point information and converts such information into addressing control signals.
- a Y boundary detector 48 monitors the decrement Y and increment Y commands from vector generator 38 to Y address preset counter 28. Whenever a signal is detected on either line, Y boundary detector 48 provides a signal to the delay input of vector generator 38, which causes vector generator 38 to operate at the rate which corresponds to the access rate of the screen refresh RAM 14.
- X boundary detector 50 monitors certain of the lines from X address preset counter 32. The lines monitored specify the storage site within the block of storage sites being currently addressed. X boundary detector 50 also monitors the decrement X and increment X commands from vector generator 38 to X address preset counter 32. By doing so, the X boundary detector 50 can determine whether the storage sites being subsequently addressed will fall within a different block of storage sites. In other words, if the storage site currently being addressed is at one end of the block of storage sites, and if the command from vector generator 38 is to increment or decrement the address so that the next address will fall outside of the block being currently addressed, the X boundary detector 50 will provide a delay signal to the delay input of vector generator 38.
- a feedback vector generator structure is provided by which the feedback generator can "look ahead" to determine whenever storage sites outside of the block currently being addressed will subsequently be addressed.
- the screen refresh RAM 14 comprises a plurality of RAMs 40.
- Each of these RAMs 40 receives, in common, the data from line 26 and addresses on line 42, it being understood that line 42 is comprised of Y address bus 20 and X address bus 22. Each of the RAMs 40 receives a write enable signal from separate write enable lines 24. Each of the RAMs 40 output data on separate lines 16. In the preferred embodiment of the present invention, there are 80 such RAMs 40, and each of the RAMs is a 16K x 1 static RAM. These static RAMs are commercially available, such as part number IMS-1400 manufactured by Inmos, Inc. of Colorado Springs, Colorado.
- Fig. 3 illustrates the organization of the storage sites in the plurality of RAMs 40 which is provided by the structure shown in Fig. 2.
- each address supplied to RAM 14 addresses a block of 80 storage sites.
- the structure shown in Figs. 2 and 3 provide 16,384 blocks of storage sites, with each block containing 80 storage sites. Data can be written into a particular storage site within an addressed block by providing the appropriate write enable signal on the corresponding write enable line for the RAM within which the site is located.
- a write enable signal would be supplied to the enable 1 line, line 44, which controls RAM 1. So long as a write enable signal is not applied to any of the remaining RAMs 40, the data on data bus 26 will only be written into the RAM 1 storage site corresponding to address 15. Similarly, if data were desired to be written into storage site 80 of the block corresponding to address 15, an appropriate signal would be supplied to enable 80 line, line 46, which controls RAM 80.
- Fig. 4 shows the correspondence of the blocks of addressed storage sites to the physical portions of visual display 10.
- the visual display provides 1280 pixels in the horizontal direction and 1024 pixels in the vertical direction.
- a scan line there will be 16 blocks of 80 pixels each.
- Fig. 4 illustrates the positioning of these blocks with corresponding addresses.
- FIG. 5 shows a 21 bit address which is supplied collectively from Y address preset counter 28 and X address preset counter 28.
- Y address preset counter 28 supplies the ten most significant bits of the collective address while X address preset counter 32 provides the remaining eleven bits of the collective address.
- the ten most significant bits of the collective address specify the scan line within which the storage site sought to be addressed is located. It can be seen that ten bits of binary address can accomodate the 1024 scan lines which are to be addressed.
- the four most significant bits thereof designate the block address within the scan line specified by above-mentioned Y address. Because, for the preferred embodiment of the present invention, there are 16 blocks of storage sites for each scan line, four bits of the X address are allocated to the block-addressing function. The remaining seven bits of the X address portion are allocated to designate individual storage sites within the addressed block. Therefore, in the preferred embodiment to the present invention, seven bits of address are allocated to address the 80 storage sites within a block.
- Fig. 2 illustrates the embodiment of the X and Y preset address counters 28 and 32, respecitvely.
- Y address preset counter 28 can be implemented using binary counters such as part number 10136 manufactured by Motorola, Inc. of Phoenix, Arizona.
- the starting point of the vector to be generated i.e., the scan line containing the storage site which corresponds to " the starting point of the vector, is preset into Y address preset counter 28 via line 30.
- Y address preset counter 28 will increment or decrement the preset Y address at a rate determined by clock signal CLK1 supplied to the clock input thereof.
- X address preset counter 32 can be implemented using a combination of binary preset counters, such as part number 10136, referred to above, and decade counter part number 10137, manufactured by Motorola, Inc. of Phoenix, Arizona.
- preset counters 49 and 50 are binary counters
- preset counter 52 is a decade counter.
- Preset counter 49 receives the three most significant bits of the preset address X supplied on line 34
- preset counter 50 receives the next four most significant bits.
- Preset decade counter 52 receives the four least significant bits of preset address X supplied on line 34.
- JSach of preset counters 49, 50 and 52 increment or decrement their count at a rate determined by clock CLKl.
- Preset counter 52 is enabled by an enable signal supplied to its Cl input.
- Preset counter 52 counts from zero to ten, in binary, and upon reaching a count of 10, provides a carry signal at its CO output.
- the output count is supplied from the Q output of the preset counter 52 on line 54.
- the carry output from preset counter 52 is applied to the Cl input of preset counter 50.
- preset counter 50 will be enabled to count for a period corresponding to the duration of the carry signal from preset counter 52.
- Preset counter 50 is a full binary counter which counts from 0 to 16 in binary, the actual count is supplied from the Q output thereof, on line 56. When a count of 16 is reached, preset counter 50 supplies a " carry signal at its CO output. This signal is applied to the Cl input of preset counter 49. Thus, preset counter 49 is enabled to count for a time period corresponding to the carry output from preset counter 50.
- the above configuration provides, for the seven least significant bits of the generated address, a form of binary-coded decimal address.
- decoder 36 selects one of its 80 output lines to enable the RAM 40 which contains the storage site specified in the BCD address data. It is to be understood that if the arrangement
- ⁇ ⁇ TUTE SHEET y ⁇ WI? of screen refresh RAM 14 permits the use of pure binary addressing of the storage sites within an addressed block decoder 36 would be a binary-to-N decoder, where N corresponds to the number of storage sites within a 5 block.
- a Y boundary detection circuit 48 and an X boundary detection circuit 50 are provided to permit a look- 0 ahead function.
- the Y boundary detector 48 is shown in the bottom righthand corner of Fig. 2.
- the Y boundary detector ' 48 monitors the decrement Y or increment Y control signals from vector generator 38. Because, as discussed above, the Y address portion of the 5 collective address supplied to screen refresh RAM 14 specifies the scan line containing the storage site into which the data are to be written, any change in the Y address count can be interpreted as a movement from one block of storage sites to another block of 0 storage sites, hence requiring a RAM access.
- NOR gate 58 The inputs of NOR gate 58 are connected to the decrement Y and increment Y lines from vector generator 38. Whenever a command signal is present on these lines, NOR gate 58 will supply a logic zero signal to 5 AND gate 60. The other input to AND gate 60 is supplied from a second clock CLK2. Typically, the CLK2 signal will have a repetition rate which is comparable to the access rate for screen RAM 14.
- the present invention exploits ⁇ the shorter time period typically required for the write enable signal into a random access memory. Recall that, during a write operation, data, an address and a write enable signal are required to be supplied to the random access memory. The typical requirement 5 is that the address and data be applied to the random access memory.
- OM access memory for a predetermined length of time before a valid write operation can be accomplished.
- This predetermined length of time permits the signals on the data and address lines to settle into a steady state condition as well as permits the random access memory itself to respond to the information on the data and address lines.
- the write enable signal is applied which has a shorter duration than the time period required for the address and data.
- the vector generator 38 will thus operate more often at the higher speed write enable rate, and will slow its operation only when a new block of storage sites is to be addressed.
- X boundary detection circuitry 50 is shown to receive information from the decrement X and increment X lines of vector generator 38, bits 4 through 6 from X address preset counter 32, and the carry output from decade preset counter 52.
- decade preset counter 52 provides a carry signal at its output whenever its count is incremented to a count of 10, or decremented to a count of 0.
- Bits 4 through 6 from the X address preset counter 32 correspond to the tens place of the binary coded decimal address which is supplied to BCD to 80 decoder 36.
- buffers 58 which, in turn, provide an inverted and a noninverted output representative of the state of the applied bits.
- emitter coupled logic circuitry is utilized.
- the outputs of buffers 58 can be tied together as shown in Fig. 2 to form "wired ORs".
- the inverted outputs from buffers 58 are tied together and the noninverted outputs of buffers 58 are tied together.
- Also forming a part of the "wired OR" 59 of the inverted outputs from buffers 58 is the output from inverted input NAND gate 60.
- Inverted input NAND gate 60 receives, as one of its inputs, the carry signal from preset counter 52. The other input to NAND gate 60 is supplied from the decrement X signal originating from vector generator 38.
- NAND gate 62 Also forming a part of the "wired OR" 61 of the noninverted outputs of buffers 58 is the output from inverted input NAND gate 62.
- One input to NAND gate 62 is supplied from the carry output of preset counter 52, while the other input is supplied from the increment X line, originating from vector generator 38.
- the "wired OR” 59 is connected to one input of inverted input NOR gate 64.
- the other input of NOR gate 64 is supplied from the "wired OR" 61.
- NOR gate 64 provides a logic zero level to the CE or chip enable input of D flipflop 66.
- the output of D flipflop 66 assumes a logic one state in synchronism with the CLKl signal applied to the CP input to D flipflop 66.
- OMP flipflop 66 can be seen to be connected to the D input of flipflop 68, as well as to the vector generator 38 via inverter 70. Note also that the output from Y boundary detector circuitry 48 is connected in a "wired OR" configuration to the output of X boundary detection circuit 50.
- the output of inverter 70 is received by NAND gate 72.
- the other input to NAND gate 72 is the "next pixel" signal from the system processor.
- the "next pixel" signal will be in a logic one condition.
- AND gate 72 from inverter 70 a logic zero level will be applied to the enable port of vector generator 38, as well as to the enable inputs of Y address preset counter 28 and X address preset counter 32. This halts the operation of the vector generator and the preset counters 28 and 32.
- the logic zero level from inverter 70 is removed, the operation of vector generator 38 and the preset counters 28 and 32 are permitted to resume.
- the chip enable input to D flipflop 68 is shown connected to the CLK2 signal.
- the CLK2 signal has a period which corresponds to the required RAM access time period.
- D flipflop 68 will receive at its D input the logic one state output then being provided by D flipflop 66.
- D flipflop 68 Upon receiving this logic one state, D flipflop 68 will provide at its output a logic one signal.
- This logic one signal is supplied to the reset input of D flipflop 66. 'This causes the output of D flipflop 66 to be reset to a logic zero level.
- NOR gate 58 detects a change in the decrement Y or increment Y signals from vector generator 38, it supplies a logic zero level to inverted input AND gate 60.
- CLK2 signal which is supplied to the other input of NAND gate 60 assumes a logic zero level
- AND gate 60 applies a logic one level to inverter 70.
- Inverter 70 thereafter, applies a logic zero level to NAND gate 72, thereby disabling vector generator 38 and preset coun ⁇ ters 28 and 32.
- CLK2 returns to a logic one level
- the output of AND gate 60 returns to a logic zero level, which in turn causes a logic one level to be output from inverter 70.
- This causes NAND gate 72 to enable the operation of vector generator 38 and preset counters 28 and 32.
- the CLK2 signal is preferably adjusted to correspond to the amount of time required by the screen refresh RAM for access purposes.
- X boundary detection circuity 50 determines when the address, supplied by X address preset counter 32, is addressing the low end or high end of a block of storage sites. Thus, when X address preset counter 32 outputs an address of 79 when in the incrementing mode, or an address of zero when in the decrementing mode, X boundary detection circuit 50 will supply the appropriate disable signal via inverter 70 to the vector generator 38. In the case of storage site 79, bits 4 through 6, received by buffers 58, will be all
- preset counter 52 will provide a carry signal at its CO output, indicating that a count of 10 has been reached.
- the carry signal is received by NAND gate 62, along with the inverted signal on the increment X line from vector generator 38.
- the "wired OR" 61 will provide a logic zero to NOR gate 64.
- D flipflops 66 and 68 will then generate the appropriate disable signal with the appropriate pulsewidth.
- decade preset counter 52 will supply a carry signal at its CO output, when a zero count is reached. This carry output is supplied to NAND gate 60, along with the inverted-decrement X signal from vector generator 38. Additionally, bits 4 through 6 will all be at a logic zero state. Buffers 58 will apply these logic zero states to the "wired OR" 59. When these conditions are met, the "wired OR” 59 will provide a logic zero signal to NOR gate 64 which, in turn, causes D flipflops 66 and 68 to supply the appropriate disable signal to vector generator 38 and preset counters 28 and 32.
- a vector generator which can be used in the present invention is shown in the lefthand portion of Fig. 2.
- the vector generator receives magnitude data for the amount of change desired in the X and the Y coordinate directions, as well as the direction of change.
- the vector generator shown in Fig. 2 implements what is known as the Bresenham vector generation algorithm. This algorithm is well known in the art and is discussed in a paper published in the IBM Journal, Vol.
- the Bresenham algorithm provides an optimal sequence of addresses by which a vector can be written into a bit-map type memory which vector connects a starting point to an ending point.
- a vector in order to display a line which is angled from the horizontal or vertical dimension of the display, such angled line is required to be constructed from a sequence of short horizontal and vertical line segments. When the resolution of the visual display is high enough, these connected line segments appear to the viewer as the desired angled line.
- the Bresenham algorithm provides a method for specifying the number, placement and interconnection of these horizontal and vertical line segments using only addition or subtraction operations.
- the Bresenham algorithm divides the plane in which the vector lies into octants which are referenced to the starting point of the vector, and then determines in which octant the vector is positioned.
- An octant corresponds to a pie-shaped segment subtending a 45° angle.
- the Bresenham algorithm specifies whether the next pixel of information to be written should be in the storage site wherein only one coordinate of the address is incremented/decremented, or both coordinates of the address are incremented/decremented. As an example, see Fig.
- the Bresenham algorithm provides the increment and decrement control signals by which the addresses generated and supplied to the screen refresh RAM 14 are made to correspond to the circles shown in the figure.
- the Bresenham algorithm would specify that only the X address be incremented.
- the Bresenham algorithm specifies that both the X and the Y address be incremented.
- the example illustrates the Bresenham algorithm for a vector located in the first octant.
- the address changes specified by the Bresenham algorithm are provided in Table 1.
- the octant in which the vector lies can be determined by the sign of the change in the X direction, the sign of the change in the Y direction, and whether the magnitude of the change . in the X direction is greater than the magnitude of the change in the Y direction.
- the vector is indicated as being located in octant number 7.
- Table 1 are the increment and decrement commands supplied by the vector generator 38 as a function of the octant in which the vector is located, and the sign of a number called the gradient.
- Equation (1) provides the value of the gradient for the starting point of the vector.
- Equation (2) the sign of the gradient for pixel i + 1 is used along with the octant location of the vector in order to designate whether the XY addresses will be incremented or decremented. This can be seen in the six right-most columns of Table 1. Thus, if the vector lies in octant 3 and the sign of the gradient is negative, the X address will be decremented while the Y address will be incremented.
- direction ROM implements the contents of Table 1.
- Direction ROM 74 receives the sign of the change in the X direction, the sign of the change in the Y direction, an indication whether the magnitude of the X direction change is greater than or equal to the magnitude of the Y direction change, and the sign of the gradient. The determination of the octant within which the vector lies is accounted for in
- OMPI the arrangement of the contents of direction ROM 74 in relation to the values of the sign of the X change, the sign of the Y change, the sign of the gradient, and the relative magnitude of the X and Y change.
- the values for delta a and delta b can be assigned accord ⁇ ing to whether the change in the X direction is greater than or equal to the change in the Y direction or is less than the change in the Y direction. If the change in the X direction is greater than the change in the Y direction, then delta a would be assigned the change in the X direction quantity while delta b would be assigned the change in the Y direction quantity.
- comparator 76 receives the magnitude of the X change and magnitude of the Y change and provides an indication at its output as to whether the change in the X direction is less than the change in the Y direction. This indication is inverted by inverter 82 to provide an indication as to whether the change in the X direction is greater than or equal to the change in the Y direction. This indication is supplied to direction ROM 74 and to the select inputs of multiplexers 84 and 86. Multiplexer 84 receives the change in the Y direction quantity as its first input and the change in the X direction quantity as its second input. Conversely, multiplexer 86 receives the change in the X direction as its first input and the change in the Y direction quantity as its second input.
- multiplexer 84 when the change in the X direction quantity is larger than the change in the Y direction quantity multiplexer 84 will provide at its output the change in the Y direction quantity, while multiplexer 86 will provide at its output the change in the X direction quantity. Conversely, when the change in the X direction quantity is less than the change in the Y direction quantity, multiplexer 84 will supply the X direction quantity at its output, while multiplexer 86 will provide the Y direction quantity at its output. It should be noted that the inverted output of multiplexer 82 is utilized. This is so that a 2's complement subtraction can be used in this implementation.
- the inverted output of multiplexer 84 provides the inverted delta a element while the output of
- OMPI EET multiplexer 86 provides the delta b element of equations (1) and (2).
- Summer 88 receives the output from multiplexer 84 at one of its inputs, and the output from multiplexer 86, which has been shifted upwards one bit, at its other input to provide an output quantity representative of equation (1).
- the input received from multiplexer 86 is shifted upwards by one bit, where the added bit is a logic zero, so that the effect of this shift is to multiply the inputted quantity by two.
- the output of summer 88 will be two times delta b minus delta a.
- summer 90 receives the output from multiplexer 84 and shifts this quantity upwards by one bit.
- the added bit is assigned a logic 1 state.
- the summer 90 also receives the output from multiplexer 86 and shifts this output upward by one bit, wherein the added bit is a logic zero. As before, this effectively multiplies a quantity by two. Thus, the output of summer 90 is two times delta b minus two times delta a.
- Multiplexer 92 receives the output from summer 90 at its first input and the output from multiplexer 86 at its second input. The quantity received by multiplexer 92 from multiplexer 86 is shifted upward by one bit, where the added bit is a logic zero, so as to multiply the quantity by two.
- the output of multiplexer 92 is selected to correspond to the quantity at either the ' first input or second input, depending upon the sign of the gradient. The sign of the gradient is the most significant bit of the output of gradient circuitry 76.
- multiplexer 92 will output the quantity, which is then multiplied by two, received from multiplexer 86.
- the output of multiplexer 92 is added, in summer 94, to the gradient quantity which is fed back from the output of gradient circuitry 76, via line 96.
- This gradient quantity represents the gradient quantity for the previous iteration, i.e. the gradient for pixel i.
- the output from summer 94 thus provides an output which satisfies equation (2) above.
- Multiplexer 96 permits the selection of the initial condition described by equation (1) above when the vector generator first begins the generation of a new vector.
- multiplexer 96 receives at its first input the output from summer 88 and receives at its second input the output from summer 94.
- An initial condition select signal is applied to the select input of multiplexer 96 from the system processor 25.
- summer 88 will provide at its output a quantity representative of the relationship two times delta b minus delta a.
- multiplexer 96 will provide an output which corresponds to the output of summer 94.
- Latch 98 receives the gradient information from multiplexer 96 and holds this quantity for use in the next iteration. The output of latch 98 is thus provided via line 97 to summer 94 and multiplexer 92.
- the most significant bit being the sign bit of the gradient, is supplied to direction ROM 74.
- equations (1) and (2) and Tables 1 and 2 above are implemented in the present invention.
- FIG. 6 an example of the operation of the present invention is provided. Shown in the upper portion of Fig. 6 is a portion of the visual
- the first column corresponds to the gradient; the second column corresponds to the scan line address of the storage site into which the pixel is to be written; the third column corresponds to the address of the block of storage sites within the scan line which contains the pixel to be written into; the fourth column corresponds to the storage site within the addressed block which is to receive the pixel; and the fifth and sixth columns indicate whether an X or a Y boundary has been detected. Shown underneath the column headings are the bit numbers for each of the addresses.
- the scan line address, in column 2 includes 10 bits.
- the first set of addresses can be seen to correspond to the XY starting address (75, 62).
- the gradient is determined to be a negative 2. From Table 1, it can be seen that in octant zero, whenever the sign of the gradient is negative, only the X address will be incremented. Thus, in the top portion of Fig. 6, it can be seen that, for the first iteration, only the X address is incremented. Thus, in column 4, the site address is seen to be increased by one. At this point, the pixel being written into is still within storage block 0000. For the next iteration, the gradient is determined to be a positive 4.
- the four least significant bits have a 1001 logic state, corresponding to a decimal 9, and the three most significant bits have a 111 state corresponding to a decimal 7.
- the X address is " incremented, in accordance with Table 1, and the storage site addresses make a transition from the 79th storage site in block 0000 to the first storage site in
- a boundary indication from boundary detector 50 causes the vector generator to slow its operation for a short period so that the RAM 14 has enough time to accept the new address from vector generator 38.
- bits 0 through 9 of the scan line address in Fig. 6 and bits 7 through 10 of the X address in Fig. 6 are supplied to the address inputs of RAM 14.
- the storage site address in Column 4 of Fig. 6 is supplied to a BCD decoder circuit 36, which in turn provides chip enable signals to the individual random access memories within RAM 14.
- the vector generator 38 can operate at high speed.
- the vector generator 38 is slowed for a short period to permit the new address to be accepted by RAM 14.
- the vector generator 38 and RAM 14 can be operated at high speed when no new addressing is required to be made and slowed down only when a new address is sought to be applied to RAM 14. Additionally, once the new address has been supplied to RAM 14, the vector generator 38 and RAM 14 can again be operated at the higher speed.
- the circuitry of vector generator 38 can be implemented by commercially available parts. Suitable commercial part numbers for the various functional blocks shown in Fig. 2 are provided in Table 3.
- Multiplexer 84 74LS158 Signetics Corp. , Sunnyvale, CA
- Multiplexer 86 74LS157 Signetics Corp., Sunnyvale, CA Summer 88, 90 74LS283 Signetics Corp., Sunnyvale, CA
- Multiplexer 92, 96 100155 Motorola, Inc., Phoenix, AZ
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Complex Calculations (AREA)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51594683A | 1983-07-20 | 1983-07-20 | |
US515946 | 1983-07-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0151133A1 EP0151133A1 (de) | 1985-08-14 |
EP0151133A4 true EP0151133A4 (de) | 1987-07-22 |
Family
ID=24053457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19840902388 Withdrawn EP0151133A4 (de) | 1983-07-20 | 1984-05-23 | Rückgekoppelter vektorgenerator. |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0151133A4 (de) |
JP (1) | JPS60502071A (de) |
AU (1) | AU3065084A (de) |
WO (1) | WO1985000679A1 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US4935880A (en) * | 1987-12-24 | 1990-06-19 | Digital Equipment Corporation | Method of tiling a figure in graphics rendering system |
GB2245394A (en) * | 1990-06-18 | 1992-01-02 | Rank Cintel Ltd | Video framestore selective addressing system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2512234A1 (fr) * | 1981-08-27 | 1983-03-04 | Honeywell Gmbh | Procede de simulation de vision et dispositif pour sa mise en oeuvre |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3649819A (en) * | 1970-10-12 | 1972-03-14 | Information Int Inc | Vector generator for rectangular cartesian coordinate positioning system |
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 |
US4027148A (en) * | 1975-09-10 | 1977-05-31 | Lawrence David Rosenthal | Vector generator |
US4157537A (en) * | 1976-04-19 | 1979-06-05 | Tektronix, Inc. | Display system utilizing digital-analog vector generation |
US4069511A (en) * | 1976-06-01 | 1978-01-17 | Raytheon Company | Digital bit image memory system |
US4254467A (en) * | 1979-06-04 | 1981-03-03 | Xerox Corporation | Vector to raster processor |
-
1984
- 1984-05-23 JP JP50238384A patent/JPS60502071A/ja active Pending
- 1984-05-23 EP EP19840902388 patent/EP0151133A4/de not_active Withdrawn
- 1984-05-23 WO PCT/US1984/000788 patent/WO1985000679A1/en not_active Application Discontinuation
- 1984-05-23 AU AU30650/84A patent/AU3065084A/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2512234A1 (fr) * | 1981-08-27 | 1983-03-04 | Honeywell Gmbh | Procede de simulation de vision et dispositif pour sa mise en oeuvre |
Non-Patent Citations (1)
Title |
---|
See also references of WO8500679A1 * |
Also Published As
Publication number | Publication date |
---|---|
JPS60502071A (ja) | 1985-11-28 |
EP0151133A1 (de) | 1985-08-14 |
WO1985000679A1 (en) | 1985-02-14 |
AU3065084A (en) | 1985-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4204206A (en) | Video display system | |
US3911420A (en) | Display system including a high resolution character generator | |
US4491836A (en) | Graphics display system and method including two-dimensional cache | |
US3936664A (en) | Method and apparatus for generating character patterns | |
US4496944A (en) | Graphics display system and method including associative addressing | |
US4492956A (en) | Graphics display system and method including preclipping circuit | |
US4570161A (en) | Raster scan digital display system | |
EP0737956A2 (de) | Bildspeicher für graphische Daten | |
US4667306A (en) | Method and apparatus for generating surface-fill vectors | |
US3778810A (en) | Display device | |
JPH0126072B2 (de) | ||
EP0279225A2 (de) | Zähler mit veränderbarer Verschaltung zur Adressierung in graphischen Anzeigesystemen | |
US3952296A (en) | Video signal generating apparatus with separate and simultaneous processing of odd and even video bits | |
US4646262A (en) | Feedback vector generator for storage of data at a selectable rate | |
JPS5912176B2 (ja) | デイジタル・テレビジヨン・デイスプレイのためのカ−ソル回路 | |
US4940970A (en) | CRT display device with a picture-shifting circuit | |
JPH0616230B2 (ja) | マルチスクリ−ン表示方法 | |
WO1985000679A1 (en) | Feedback vector generator and method | |
JP3313527B2 (ja) | グラフィックスコントローラおよびピクセルデータ転送システム | |
EP0148575A2 (de) | Einrichtung und Verfahren zur gleichmässigen horizontalen Verschiebung für einer Videoanzeigegenerator | |
EP0146594B1 (de) | Verfahren und vorrichtung zum erzeugen von vektorattributen | |
US4703230A (en) | Raster operation circuit | |
Matherat | A chip for low-cost raster-scan graphic display | |
KR880001082B1 (ko) | 저급 crtc의 리셋트 기능을 이용한 로우 테이블 어드레싱 방법 | |
JP2829051B2 (ja) | 文字表示方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19850315 |
|
AK | Designated contracting states |
Designated state(s): AT BE CH DE FR GB LI LU NL SE Kind code of ref document: A1 Designated state(s): AT BE CH DE FR GB LI LU NL SE |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 19870722 |
|
17Q | First examination report despatched |
Effective date: 19880708 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 19910604 |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: SMITH, DAVID, M. |