# US 7,925,100 B2 · Tiled packaging of vector image data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,925,100 B2
- Document ID: US7925100B2
- Status: Granted
- Kind: B2
- Application number: 11/831,057
- Filed: 2007-07-31
- Published: 2009-02-05
- Granted: 2011-04-12
- Earliest claimed: 2007-07-31
- Assignees: Microsoft Corporation
- Inventors: Jonathan R Howell; Jeremy Elson; Danyel Fisher
- Web page: https://patentgrep.com/patent/US7925100B2

## CPC

- G06T 11/40: Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
- G06T 9/00: Image coding (bandwidth or redundancy reduction for static pictures H04N1/41; coding or decoding of static colour picture signals H04N1/64; methods or arrangements for coding, decoding, compressing or decompressing digital video signals H04N19/00)
- H04N 21/4312: {involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations}
- H04N 21/4314: {for fitting data in a restricted space on the screen, e.g. EPG data in a rectangular grid}
- H04N 21/44012: {involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs}
- H04N 21/440263: {by altering the spatial resolution, e.g. for displaying on a connected PDA}
- H04N 21/44029: {for generating different versions}
- H04N 21/47205: {for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally}
- H04N 21/4782: Web browsing {, e.g. WebTV}
- H04N 21/64792: {Controlling the complexity of the content stream, e.g. by dropping packets (intermediate media network packet handling H04L65/765; proxy provisioning conversion or adaptation for reducing the amount or size of exchanged application data H04L67/5651; negotiation of resources in wireless networks H04W28/16)}
- H04N 21/8153: {comprising still images, e.g. texture, background image}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Architecture for encoding (or packaging) vector-object data using fixed boundary tiles. Tiling a large vector database provides the same advantages that tiling provides for a large raster image. Tiling the dataset means that the set of all possible browser requests is finite and predetermined. The tiles can be rasterized on a client once the tiles have been received from a server. Alternatively, the server can do the tiling and rasterizing, and then send the raster data to the client for presentation and user interaction. Tiles can be precomputed on the server, with selected tiles then transmitted to the client for rasterization. Moreover, tiles can be cached for improved performance, and prefetched based on user interactivity on the client. Summarization of the vector-object data can be accomplished at the server using a configurable plug-in interface.

## Claims

### Claim 1

A computer-implemented image handling system, comprising:
an encoding component for encoding vector data into vector tiles having tile boundaries of a predetermined size, such that vector objects with extent are intersected within the tile boundaries so that each vector tile contains only vector data that belongs within the extents of the objects;
a conversion component for rasterizing the vector data of the vector tiles into bitmap data on at least one of a client or a server, and
a processor that executes computer-executable instructions associated with at least one of the encoding component or the conversion component.

### Claim 2 (depends on 1)

The system of claim 1, wherein the vector tiles are precomputed on the server.

### Claim 3 (depends on 1)

The system of claim 1, wherein the vector tiles are cached.

### Claim 4 (depends on 1)

The system of claim 1, wherein the vector tiles associated with the bitmap data is prefetched.

### Claim 5 (depends on 1)

The system of claim 1, wherein per-tile metadata is provided with the bitmap data.

### Claim 6 (depends on 1)

The system of claim 1, wherein the client dynamically fetches subtiles of the vector tiles based on currently-displayed tile data, the subtiles having greater detail than the tile data.

### Claim 7 (depends on 1)

The system of claim 1, wherein the vector tiles are managed according to a content budget based on at least one of a count of pixels of an object representation or a count of bytes of the object representation.

### Claim 8 (depends on 1)

The system of claim 1, wherein the vector tiles are transmitted from multiple disparate servers.

### Claim 9 (depends on 1)

The system of claim 1, wherein the vector tiles are organized into a multi-resolution tile pyramid.

### Claim 10 (depends on 1)

The system of claim 1, wherein the vector tiles conform to a format compatible with a cylindrical projection of a spherical body.

### Claim 11

A computer-implemented method of handling image data, comprising acts of:
accessing a server datastore for an image in the form of vector-object data comprising vector objects having extent;
partitioning the vector-object data into vector tiles having tile boundaries;
transmitting the vector tiles to a client;
intersecting the vector objects within the tile boundaries so that each vector tile contains only vector data that belongs within the extents of the vector objects;
rasterizing the vector tiles into bitmap data on the client; and
utilizing a processor that executes instructions stored in memory to perform at least one of the acts of accessing, partitioning, transmitting, intersecting, or rasterizing.

### Claim 12 (depends on 11)

The method of claim 11, further comprising precomputing the vector tiles on a server.

### Claim 13 (depends on 11)

The method of claim 11, further comprising caching the vector tiles.

### Claim 14 (depends on 11)

The method of claim 11, further comprising generating and providing per-tile metadata with the bitmap data, the metadata and bitmap data presented via a browser application on the client for user interaction.

### Claim 15 (depends on 14)

The method of claim 14, further comprising prefetching the vector tiles related to the bitmap data.

### Claim 16 (depends on 11)

The method of claim 11, further comprising dynamically fetching subtiles of the vector tiles based on currently-displayed vector tiles, the subtiles having greater detail than the vector tiles.

### Claim 17 (depends on 11)

The method of claim 11, further comprising establishing a budget for tiles of the vector objects based on at least one of pixel count or a byte count of a tile.

### Claim 18 (depends on 11)

The method of claim 11, further comprising invoking summarization of the vector-object data prior to partitioning into vector tiles, both the summarization and the partitioning occurring on a server.

### Claim 19 (depends on 11)

The method of claim 11, further comprising determining if to transmit rasterized vector-object data to the client based on quantity of the vector-object data.

### Claim 20

A computer-implemented system, comprising:
computer-implemented means for accessing a server datastore of vector-object data comprising vector objects having extent;
computer-implemented means for partitioning the vector-object data into tiles having tile boundaries;
computer-implemented means for intersecting the vector objects within the tile boundaries so that each vector tile contains only vector data that belongs within the extents of the vector objects;
computer-implemented means for sending the tiles to a client;
computer-implemented means for rasterizing the tiles into bitmap data on the client;
computer-implemented means for presenting the bitmap data via a client browser application; and
a computer-readable medium on which resides at least one of the computer-implemented means for accessing, partitioning, intersecting, sending, rasterizing, or presenting.
