Mapping application for rendering pixel imagery
First Claim
1. A memory device encoding a mapping application for use with a display, said mapping application comprising the steps of:
- storing a plurality of maps in memory, each said map having its own map space comprising pixel data;
in response to a first input, selecting a plurality of objects assigned to different said maps and arranging them in a world space coordinate system, each said object defining the extent of its map in world space;
in response to a second input, positioning a view port representing a portion of display space within world space;
for each pixel in the view port, assigning said pixel a world space coordinate using a first affine transformation from display space to world space;
for each assigned world space coordinate, determining which objects, if any, intersect the coordinate and for at least a topmost intersecting object determining its map space coordinate using a second object-specific affine transformation from world space to that object'"'"'s map space based on the extent of that object'"'"'s map in world space and sampling the object'"'"'s map pixel data at its determined map space coordinate to assign a value to the associated pixel in the view port so that only object map pixel data that contributes to painting the display within the view port is sampled;
assigning a background value to the pixels in the view port that do not intersect an object; and
painting the display with the map and background pixels assigned to the view port.
1 Assignment
0 Petitions
Accused Products
Abstract
A mapping application relies on a modified affine transformation algorithm to provide near real-time navigation of imagery, track-up capability and integration of segment and picture data. The affine transformation is modified to map a “world space” comprised of a plurality of pixel maps onto a view port. The pixel data for the maps is preferably stored in vertical strips of memory to reduce the likelihood of cache misses. The mapping application is most useful for rendering pixel imagery on a platform with limited processing power, limited memory and small display sizes, e.g., “hand held devices” such as a GPS handset, or Pocket PC.
-
Citations
32 Claims
-
1. A memory device encoding a mapping application for use with a display, said mapping application comprising the steps of:
-
storing a plurality of maps in memory, each said map having its own map space comprising pixel data; in response to a first input, selecting a plurality of objects assigned to different said maps and arranging them in a world space coordinate system, each said object defining the extent of its map in world space; in response to a second input, positioning a view port representing a portion of display space within world space; for each pixel in the view port, assigning said pixel a world space coordinate using a first affine transformation from display space to world space; for each assigned world space coordinate, determining which objects, if any, intersect the coordinate and for at least a topmost intersecting object determining its map space coordinate using a second object-specific affine transformation from world space to that object'"'"'s map space based on the extent of that object'"'"'s map in world space and sampling the object'"'"'s map pixel data at its determined map space coordinate to assign a value to the associated pixel in the view port so that only object map pixel data that contributes to painting the display within the view port is sampled; assigning a background value to the pixels in the view port that do not intersect an object; and painting the display with the map and background pixels assigned to the view port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A memory device encoding a mapping application for use with a hand-held device in which a plurality of maps having their own map spaces are stored as pixel data in memory for presentation on a display, a processor executing the mapping application comprising the steps of:
-
selecting a plurality of objects assigned to different said maps and arranging them in a world space coordinate system, each said object defining the extent of its map in world space; positioning a view port representing a portion of display space at rotation and scale in world space; for each pixel in the view port, assigning said pixel a world space coordinate using a first affine transformation from display space to world space; for each assigned world space coordinate, determining at least a topmost object, if any, that intersects the coordinate and for only said topmost intersecting object determining its map space coordinate using a second object-specific affine transformation from world space to that object'"'"'s map space based on the extent of that object'"'"'s map in world space and sampling the object'"'"'s map pixel data at its determined map space coordinate to assign a value to the associated pixel in the view port; assigning a background value to the pixels in the view port that do not intersect an object; and painting the display once with the map and background pixels assigned to the view port to render said plurality of maps at the same time. - View Dependent Claims (18, 19, 20)
-
-
21. A memory device encoding a mapping application for use with a hand-held device in which a plurality of rectangular maps having their own map spaces are stored for presentation on a rectangular display, said mapping application comprising the steps of:
-
storing said pixel data for each said rectangular map in a plurality of vertical strips in main memory, a hardware caching operating storing pixel data for a range of addresses around a most recently accessed address from a vertical strip into a cache memory; selecting a plurality of rectangular objects assigned to different said maps and arranging them in a world space coordinate system, each said rectangular object defining the extent of its map in world space; positioning a rectangular view port representing a portion of display space with a specified translation, rotation and scale in world space; for each pixel in the view port, assigning said pixel a world space coordinate by performing two liner interpolations, one along the vertical axis of the view port and a second along the horizontal axis of the view port from display space to world space; for each assigned world space coordinate, determining which objects, if any, intersect the coordinate and for at least a topmost intersecting object determining its map space coordinate by performing two linear interpolations, one along the vertical axis of the rectangular object and the second along the horizontal axis of the rectangular object, based on the extent of that object'"'"'s map in world space and sampling the object'"'"'s map pixel data from cache and then main memory at its determined map space coordinate to assign a value to the associated pixel in the view port; assigning a background value to the pixels in the view port that do not intersect an object; and painting the display with the map and background pixels assigned to the view port to render said plurality of maps at the same time. - View Dependent Claims (22, 23)
-
-
24. A hand held device, comprising:
-
a display; non-volatile storage for storing a plurality of pixel maps each having its own map space and a mapping application; main memory into which the mapping application is loaded once initiated and segments of said pixel maps are stored in vertical strips, each said vertical strip including multiple partial rows of row-oriented pixel data, in response to user input; a processor that retrieves pixel data from a sequential range of memory addresses around the most recently accessed address in a vertical strip of main memory and stores the pixel data in cache memory; and user I/O for loading maps from non-volatile storage into main memory in a world space coordinate system and for navigating world space to position a view port representing a portion of display space therein, said processor executing the mapping application to position one or more objects in world space that define the position and spatial extent of the respective maps, for each pixel in the view port, assigning said pixel a world space coordinate using a first affine transformation from display space to world space, for each assigned world space coordinate, determining which objects, if any, intersect the coordinate and for at least a topmost intersecting object determining its map space coordinate using a second affine transformation from world space to that object'"'"'s map space based on the extent of that object'"'"'s map in world space and attempting to sample the object'"'"'s map pixel data at its determined map space coordinate to assign a value to the associated pixel in the view port from cache and if unsuccessful sampling the map pixel data from the vertical strip stored in main memory to assign a value to that pixel in the view port, assign a background value to the pixels that do not intersect an object and paint the display with the map and background pixels assigned to the view port. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
-
Specification