# US 2014/0198122 A1 · Engine for streaming virtual textures

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

- Number: US 2014/0198122 A1
- Document ID: US20140198122A1
- Status: Published application
- Kind: A1
- Application number: 13/741,735
- Filed: 2013-01-15
- Published: 2014-07-17
- Earliest claimed: 2013-01-15
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Mark Grossman
- Web page: https://patentgrep.com/patent/US20140198122A1

## CPC

- G06T 11/10: Texturing; Colouring; Generation of textures or colours (retouching, inpainting or scratch removal G06T5/77)
- 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)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

An engine decompresses texture data belonging to a virtual texture stored in processor readable memory so that decompressed texture data may be used to update a selected sub-image of a large texture image used to render a CGI. The updated sub-image may be at any location in the larger texture image. A processor executes an application to provide control information to the engine. The control information may include commands to decode compressed texture data at source addresses and provide a stream of decompressed virtual texture data to selected sub-image destination addresses in a texture buffer used for rendering a CGI. Similarly, the engine may compress texture sub-image information and store the compressed result at a destination address.

## Claims

### Claim 1

A method of operating an engine to decompress compressed texture information stored in at least one processor readable memory, the method comprising:
receiving a control signal to initiate decompression of the compressed texture information;
receiving a start address of the compressed texture information in the at least one processor readable memory;
receiving a destination address of a sub-image;
decompressing the compressed texture information to provide texture information; and
outputting the texture information to the destination address of the sub-image.

### Claim 2 (depends on 1)

The method of claim 1, wherein the decompressing the encoding texture information includes:
reading a first portion of the compressed texture information at the start address;
decoding the first portion of the compressed texture information to obtain a first portion of texture information; and
storing the first portion of the texture information in a buffer of the engine.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
reading a second portion of the compressed texture information of the compressed texture information;
decoding the second portion of the compressed texture information to obtain a second portion of texture information; and
storing the second portion of the texture information in the buffer; and
wherein the outputting includes writing the first and second portions of the texture information to the destination address of the sub-image.

### Claim 4 (depends on 3)

The method of claim 3, wherein the decoding includes using one of a JPEG decoder and LZ decoder to decode the compressed texture information.

### Claim 5 (depends on 3)

The method of claim 3, wherein the destination address of the sub-image represents a portion of a texture image used to render a computer generated image that is to be updated in a next frame of a video.

### Claim 6 (depends on 1)

The method of claim 1, wherein the method also compresses a sub-image of uncompressed texture information stored in the at least one processor readable memory, the method comprising:
receiving a control signal to initiate compression of the uncompressed texture information;
receiving a start address of the uncompressed texture information stored in the at least one processor readable memory;
compressing the sub-image of the uncompressed texture information to provide a compressed sub-image texture;
receiving a destination address to store the compressed sub-image texture, and
outputting the compressed sub-image texture to the destination address.

### Claim 7 (depends on 1)

The method of claim 1, wherein the compressed texture information is selected from one of compressed JPEG texture data and compressed LZ77 texture data, and wherein the engine includes an integrated circuit having a controller and decoder, and wherein the at least one processor readable memory includes volatile integrated circuit memory.

### Claim 8 (depends on 1)

The method of claim 1, wherein the destination address of the sub-image includes a start rectangle address, a sub-rectangle width and Y offset.

### Claim 9

An apparatus comprising:
an application having processor readable instructions;
at least one processor that executes the processor readable instructions to render a computer generated image using a texture image having a plurality of sub-images;
at least one processor readable memory that stores compressed data representing texture of at least a first sub-image in the plurality of sub-images;
an engine that receives at least one command to decompress the compressed data representing texture and stores the decompressed data representing texture in the at least one processor readable memory so that the at least one processor uses the decompressed data representing texture to update the first sub-image in the plurality of sub-images.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the first sub-image is used in rendering the computer generated image in a frame.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the application is a video game software program and the apparatus is a video game console.

### Claim 12 (depends on 9)

The apparatus of claim 9, wherein the at least one processor includes a graphics processor unit (GPU) and the at least one processor readable memory includes a random access memory (RAM) having a portion for a text buffer to store the decompressed data representing texture, and wherein the GPU accesses the text buffer to render the computer generated image using the first sub-image.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the GPU and RAM are included in a system on a chip (SoC).

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the engine includes a controller circuit and a decoder circuit to decode the compressed data representing texture that is selected from one of JPEG compressed data and lossless (Lempel-Ziv (LZ)) compressed data.

### Claim 15 (depends on 12)

The apparatus of claim 12, wherein the first sub-image is a sub-rectangle image having a destination address that is received by the engine.

### Claim 16

At least one processor readable memory having instructions encoded thereon which when executed cause at least one processor to perform a method for decompressing compressed texture data, the method comprising:
allocating memory for a texture;
determining an area of a sub-image of the texture;
determining a level of detail of the sub-image of the texture;
identify a memory location of a compressed texture data having the level of detail of the sub-image of the texture; and
transferring at least one command to an engine to decompress the compressed texture data at the memory location so that decompressed texture data may be used to update the sub-image of the texture that is used to render a computer generated image.

### Claim 17 (depends on 16)

The at least one processor readable memory of claim 16, further comprising transferring the decompressed texture data to a texture buffer accessible by a graphics processor in the at least one processor that renders the computer generated image.

### Claim 18 (depends on 16)

The at least one processor readable memory of claim 16, wherein the sub-image is a sub-rectangle of the texture used to render the computer generated image.

### Claim 19 (depends on 18)

The at least one processor readable memory of claim 18, wherein the instructions encoded include instructions of a video game that provides the computer generate image.

### Claim 20 (depends on 19)

The at least one processor readable memory of claim 19, wherein the engine includes an integrated circuit controller and decoder to decompress the compressed texture data in response to the at least one command.
