Virtual coordinate to linear physical memory address converter for computer graphics system
First Claim
1. An address generator for converting a two dimensional virtual coordinate, on a display screen of a display device, of a pixel to a linear physical address, in a memory, comprising:
- an edge walking circuit, receiving a two-dimensional virtual coordinate of a first pixel on a first edge of an object displayed on said display screen, and selectively outputting a two dimensional virtual coordinate of a second pixel which intercepts said first edge of said object at an adjacent row to that of said first pixel,a span expansion circuit, receiving said two-dimensional virtual coordinate of said second pixel, and selectively expanding said two-dimensional virtual coordinate of said second pixel, according to the number of bits used to represent each pixel and the amount of information which can be accessed at a time from said memory, to produce first and second expanded coordinates of said second pixel, anda linear address circuit, receiving said first and second expanded coordinates of said second pixel and outputting a linear physical address of said second pixel in a memory,wherein pixels displayed on said screen are sequentially stored in said memory at linear addresses beginning with the lowest two-dimensional virtual coordinate of said display screen and ending with the highest two-dimensional virtual coordinate of said display screen.
2 Assignments
0 Petitions
Accused Products
Abstract
An address generator is disclosed for performing 2-D virtual coordinate to linear physical memory address conversion. The address generator has an edge walking circuit which receives a 2-D virtual coordinate of a first pixel on a first edge of an object displayed on the display screen. The edge walking circuit selectively outputs a 2-D virtual coordinate of a second pixel which intercepts the first edge of the object at an adjacent pixel row or column to the first pixel. The address generator also has a span expansion circuit which receives the 2-D virtual coordinate of the second pixel. The span expansion circuit selectively expands the 2-D virtual coordinate of the second pixel, according to the number of bits used to represent each pixel and the amount of information which can be accessed at a time from memory. This produces first and second expanded coordinates of the second pixel. Furthermore, the address generator has a linear address circuit which receives the first and second expanded coordinates of the second pixel. The linear address circuit outputs a linear physical address of the second pixel in memory.
44 Citations
12 Claims
-
1. An address generator for converting a two dimensional virtual coordinate, on a display screen of a display device, of a pixel to a linear physical address, in a memory, comprising:
-
an edge walking circuit, receiving a two-dimensional virtual coordinate of a first pixel on a first edge of an object displayed on said display screen, and selectively outputting a two dimensional virtual coordinate of a second pixel which intercepts said first edge of said object at an adjacent row to that of said first pixel, a span expansion circuit, receiving said two-dimensional virtual coordinate of said second pixel, and selectively expanding said two-dimensional virtual coordinate of said second pixel, according to the number of bits used to represent each pixel and the amount of information which can be accessed at a time from said memory, to produce first and second expanded coordinates of said second pixel, and a linear address circuit, receiving said first and second expanded coordinates of said second pixel and outputting a linear physical address of said second pixel in a memory, wherein pixels displayed on said screen are sequentially stored in said memory at linear addresses beginning with the lowest two-dimensional virtual coordinate of said display screen and ending with the highest two-dimensional virtual coordinate of said display screen. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for drawing a line on a display screen given the starting point and ending point two-dimensional virtual coordinates of said line on said display screen comprising the steps of:
-
(a) storing first and second coordinate values as first and second coordinates of said two-dimensional virtual coordinate of said starting point of said line to be drawn on a display screen in first and second registers, respectively, of an edge walking circuit, (b) using a linear address circuit, determining a linear address of said starting point of said line in a physical memory from said first and second coordinates, (c) until an ending point of said line is reached; (c)(1) until a last point that intercepts said line, having said second coordinate value stored in said second register as said second coordinate, is reached; (c)(1)(i) using a first adder, adding said first coordinate to a first slope component to produce a modified first coordinate, (c)(1)(ii) storing said modified first coordinate in said first register, and (c)(1)(iii) using a linear address circuit, determining a linear address of said modified first coordinate and said second coordinate in a physical memory, (c)(2) using a second adder, adding said second coordinate to a second slope component to produce a modified second coordinate, and (c)(3) storing said modified second coordinate in said second register, wherein pixels displayed on said screen are sequentially stored in said memory at linear addresses beginning with the lowest two-dimensional virtual coordinate of said display screen and ending with the highest two-dimensional virtual coordinate of said display screen.
-
-
8. A method for moving a source rectangle of pixels to a destination rectangle of pixels comprising the steps of:
-
(a) storing in first and second registers of a span expansion circuit, first and second values which depend on an amount of data used to represent each pixel and first and second virtual coordinates of a starting point of a near edge of source rectangle on a display screen, (b) until a far edge, opposite to said near edge of said source rectangle is reached; (b)(1) using said first and second values stored in said first and second registers, determining a linear address in a memory, (b)(2) reading out the bits of at least one pixel from said linear address in said memory, (b)(3) using an adder of said span expansion circuit, adding the amount of data read out by said step (b)(2) to said first value and storing the output of said adder as said first value in said first register, (c) if the endpoint of the source rectangle is not reached, storing in said second register, a value which depends on the second virtual coordinate of the point adjacent to said source rectangle starting point on said near edge of said source rectangle, wherein pixels displayed on said screen are sequentially stored in said memory at linear addresses beginning with the lowest two-dimensional virtual coordinate of said display screen and ending with the highest two-dimensional virtual coordinate of said display screen. - View Dependent Claims (9, 10)
-
-
11. A method for drawing triangle, which has first, second and third vertices, a first edge between said first and second vertexes, a second edge between said first and third vertices and a third edge between said third and second vertices, said method comprising the steps of:
-
(a) storing first and second coordinates of said first triangle vertex in first and second registers of an edge walking circuit, (b) storing first and second values which depend on said first and second coordinates and an amount of data used to represent each pixel in first and second registers of a span expansion circuit, (c) using a first adder of said span expansion circuit, adding a value which depends on a first slope component of said first edge, and said amount of data used to represent each pixel, to said first value to produce a first sum, (d) storing said first sum as said first value in said first register of said span expansion circuit, (e) using a second adder of said span expansion circuit, adding a value which depends on a second slope component of said first edge, and said amount of data used to represent each pixel, to said second value to produce a second sum, (f) storing said second sum as said second value in said second register of said span expansion circuit, (g) using a first adder of said edge walking circuit, adding a first slope component of said second edge to said first coordinate to produce a third sum, (h) storing said third sum as said first coordinate in said first register of said edge walking circuit, (i) using a second adder of said edge walking circuit, adding a second slope component of said second edge to said second coordinate to produce a fourth sum, (j) storing said fourth sum as said second coordinate in said second register of said edge walking circuit, (k) storing in third and fourth registers of said span expansion circuit, third and fourth values which depend on said third and fourth sums and an amount of data used to represent each pixel in first and second coordinates of a span expansion circuit, (l) until a point on said first edge corresponding to said first and second values stored in said first and second registers of said span expansion circuit is reached; (l)(1) using said third and fourth values stored in said third and fourth registers of said span expansion circuit, determining a linear address in a memory, (l)(2) reading out the bits of at least one pixel from said linear address in said memory, (l)(3) using said first adder of said span expansion circuit, adding the amount of data read out by said step (l)(2) to said third value and storing the output of said adder as said third value in said third register wherein pixels displayed on said screen are sequentially stored in said memory at linear addresses beginning with the lowest two-dimensional virtual coordinate of said display screen and ending with the highest two-dimensional virtual coordinate of said display screen.
-
-
12. A method for converting a two dimensional virtual coordinate, on a display screen of a display device, of a pixel to a linear physical address, in a memory, comprising:
-
using an edge walking circuit, receiving a two-dimensional virtual coordinate of a first pixel on a first edge of an object displayed on said display screen, and selectively outputting a two dimensional virtual coordinate of a second pixel which intercepts said first edge of said object at an adjacent row to that of said first pixel, using a span expansion circuit, receiving said two-dimensional virtual coordinate of said second pixel, and selectively expanding said two-dimensional virtual coordinate of said second pixel, according to the number of bits used to represent each pixel and the amount of information which can be accessed at a time from said memory, to produce first and second expanded coordinates of said second pixel, and using a linear address circuit, receiving said first and second expanded coordinates of said second pixel and outputting a linear physical address of said second pixel in a memory, wherein pixels displayed on said screen are sequentially stored in said memory at linear addresses beginning with the lowest two-dimensional virtual coordinate of said display screen and ending with the highest two-dimensional virtual coordinate of said display screen.
-
Specification