# US 12,179,098 B2 · Rendering method and apparatus

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

- Number: US 12,179,098 B2
- Document ID: US12179098B2
- Status: Granted
- Kind: B2
- Application number: 17/895,562
- Filed: 2022-08-25
- Published: 2022-12-29
- Granted: 2024-12-31
- Earliest claimed: 2020-02-25
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Xian Meng; Pan Zhang; Kang Zhou
- Web page: https://patentgrep.com/patent/US12179098B2

## CPC

- A63F 13/358: Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
- A63F 13/335: using Internet
- A63F 13/355: Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
- A63F 13/77: involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
- G06T 15/005: {General purpose rendering architectures}
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Before a network jitter occurs, a server receives operation instructions from an electronic device, generates a plurality of first rendering instruction streams based on the operation instructions, sends the plurality of first rendering instruction streams to the electronic device, and generates and stores one or more first rendering contexts for one or more first rendering instruction streams in the plurality of first rendering instruction streams. When the network jitter occurs, the server generates a second rendering instruction stream based on received operation instructions, and generates and stores a second rendering context based on the second rendering instruction stream. After the recovery from the network jitter, the server sends a set of rendering context differences to the electronic device. In this way, network transmission traffic after the recovery from the network jitter is reduced, transmission and processing delays are also reduced, and user experience is improved.

## Claims

### Claim 1

A rendering method, wherein the method is applied to a server and comprises:
before a network jitter occurs on a network, successively receiving, by the server, operation instructions from an electronic device through the network, generating a plurality of first rendering instruction streams based on the operation instructions, and sending the plurality of first rendering instruction streams to the electronic device; and generating and storing, by the server, one or more first rendering contexts for one or more first rendering instruction streams in the plurality of first rendering instruction streams, wherein the one or more first rendering contexts one-to-one corresponds to the one or more first rendering instruction streams, and each of the one or more first rendering contexts comprises a corresponding first rendering instruction stream or information used for restoring the corresponding first rendering instruction stream;
when the network jitter occurs, continuing, by the server, to generate a second rendering instruction stream based on received operation instructions, and generating and storing a second rendering context based on the second rendering instruction stream, wherein the second rendering context comprises the second rendering instruction stream or information used for restoring the second rendering instruction stream, and the second rendering instruction stream is a rendering instruction stream most recently generated before recovery from the network jitter; and
after the recovery from the network jitter, sending, by the server, a set of rendering context differences to the electronic device, wherein the set of rendering context differences comprises one or more rendering context differences, wherein each of the one or more rendering context differences is a difference between the second rendering context and one of the first rendering contexts, and the electronic device uses the set of rendering context differences to obtain the second rendering instruction stream.

### Claim 2 (depends on 1)

The method according to claim 1, wherein before the generating and storing any first rendering context in the one or more first rendering contexts, the method comprises:
determining one of the plurality of first rendering instruction streams as a rendering instruction stream corresponding to data of an image frame; or
determining one of the plurality of first rendering instruction streams as a target rendering instruction stream, wherein the target rendering instruction stream is prestored on the server.

### Claim 3 (depends on 1)

The method according to claim 1, wherein an action of the generating and storing of one or more first rendering contexts is periodically performed.

### Claim 4 (depends on 1)

The method according to claim 1, further comprising:
generating, by the server, a third rendering instruction stream and generating a third rendering context based on the third rendering instruction stream, wherein the third rendering context comprises the third rendering instruction stream or information used for restoring the third rendering instruction stream, and the third rendering instruction stream is one of the plurality of first rendering instruction streams generated after the server receives the operation instructions from the electronic device; and
setting a baseline snapshot, wherein the baseline snapshot is the third rendering context.

### Claim 5 (depends on 4)

The method according to claim 4, further comprising:
receiving a rendering instruction stream response sent by the electronic device, wherein the rendering instruction stream response comprises an instruction stream number of a rendering instruction stream most recently received by the electronic device, and updating the baseline snapshot to a first rendering context corresponding to the received instruction stream number.

### Claim 6 (depends on 5)

The method according to claim 5, further comprising:
after receiving the rendering instruction stream response, deleting other first rendering contexts of the one or more first rendering contexts stored on the server.

### Claim 7 (depends on 4)

The method according to claim 4, wherein the storing of the one or more first rendering contexts comprises: storing a difference between one of the one or more first rendering context and the baseline snapshot.

### Claim 8 (depends on 4)

The method according to claim 4, wherein the sending a set of rendering context differences comprises:
sending a set of differences between the second rendering context and each first rendering context in the one or more first rendering contexts; or
sending a set of differences between a difference between the second rendering context and the baseline snapshot, and a sum of differences between the any first rendering context and the baseline snapshot.

### Claim 9 (depends on 1)

The method according to claim 1, wherein after recovery from the network jitter, the method further comprises:
obtaining an instruction stream number of a rendering instruction stream last executed by the electronic device before the network jitter occurs; and
the sending a set of rendering context differences comprises sending a difference between the second rendering context and a first rendering context corresponding to the instruction stream number.

### Claim 10

A graphics rendering apparatus, wherein the graphics rendering apparatus comprises a memory and a processor, the memory is configured to store computer-readable instructions, and the processor executes the instructions to:
before a network jitter occurs on a network, receive, by the server, operation instructions from an electronic device through the network, generate a plurality of first rendering instruction streams based on the operation instructions, and send the plurality of first rendering instruction streams to the electronic device; and generate and store, by the server, one or more first rendering contexts for one or more first rendering instruction streams in the plurality of first rendering instruction streams, wherein the one or more first rendering contexts one-to-one correspond to the one or more first rendering instruction streams, and each of the one or more first rendering contexts comprises a corresponding first rendering instruction stream or information used for restoring the corresponding first rendering instruction stream;
when the network jitter occurs, continue, by the server, to generate a second rendering instruction stream based on received operation instructions, and generate and store a second rendering context based on the second rendering instruction stream, wherein the second rendering context comprises the second rendering instruction stream or information used for restoring the second rendering instruction stream, and the second rendering instruction stream is a rendering instruction stream most recently generated before recovery from the network jitter; and
after the recovery from the network jitter, send, by the server, a set of rendering context differences to the electronic device, wherein the set of rendering context differences comprises one or more rendering context differences, wherein each of the one or more rendering context differences is a difference between the second rendering context and one of the first rendering contexts, and the electronic device uses the set of rendering context differences to obtain the second rendering instruction stream.

### Claim 11 (depends on 10)

The graphics rendering apparatus according to claim 10, wherein the processor executes the instructions to:
determine one of the plurality of first rendering instruction streams as a rendering instruction stream corresponding to data of an image frame; or
determine one of the plurality of first rendering instruction streams as a target rendering instruction stream, wherein the target rendering instruction stream is prestored on the server.

### Claim 12 (depends on 10)

The graphics rendering apparatus according to claim 10, wherein an action of the generating and storing of one or more first rendering contexts is periodically performed.

### Claim 13 (depends on 10)

The graphics rendering apparatus according to claim 10, wherein the processor executes the instructions to:
generate a third rendering instruction stream and generating a third rendering context based on the third rendering instruction stream, wherein the third rendering context comprises the third rendering instruction stream or information used for restoring the third rendering instruction stream, and the third rendering instruction stream is one of the plurality of first rendering instruction streams generated after the server receives the operation instructions from the electronic device; and
set a baseline snapshot, wherein the baseline snapshot is the third rendering context.

### Claim 14 (depends on 10)

The graphics rendering apparatus according to claim 10, wherein the processor executes the instructions to:
send a set of differences between the second rendering context and each first rendering context in the one or more first rendering contexts; or
send a set of differences between a difference between the second rendering context and the baseline snapshot, and a sum of differences between the any first rendering context and the baseline snapshot.
