# US 12,179,096 B2 · Overlapping operations at a server and a client for a video frame to reduce latency in cloud gaming applications

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

- Number: US 12,179,096 B2
- Document ID: US12179096B2
- Status: Granted
- Kind: B2
- Application number: 18/408,512
- Filed: 2024-01-09
- Published: 2024-05-02
- Granted: 2024-12-31
- Earliest claimed: 2019-10-01
- Assignees: Sony Interactive Entertainment Inc.
- Applicants: Sony Interactive Entertainment Inc.
- Inventors: Kelvin M. Yong; Mark E. Cerny
- Web page: https://patentgrep.com/patent/US12179096B2

## CPC

- A63F 13/30: Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- 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/31: Communication aspects specific to video games, e.g. between several handheld game devices at close range
- A63F 13/35: Details of game servers
- 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/50: Controlling the output signals based on the game progress
- H04N 21/23605: {Creation or processing of packetized elementary streams [PES]}
- H04N 21/4385: Multiplex stream processing, e.g. multiplex stream decrypting
- A63F 2300/538: for performing operations on behalf of the game client, e.g. rendering
- A63F 2300/5593: involving scheduling aspects
- H04N 21/4781: {Games}
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method for cloud gaming. The method including receiving one or more encoded slices of a video frame at a client, wherein the video frame was generated at a server while executing a video game, and encoded by an encoder at the server into the one or more encoded slices. The method including decoding a first encoded slice at a decoder of the client before fully receiving the one or more encoded slices of the video frame.

## Claims

### Claim 1

A method, comprising:
receiving at a client device at least one of a plurality of encoded slices of a video frame, wherein the video frame was generated at a server and encoded into the plurality of encoded slices, wherein the server transmits the plurality of encoded slices to the client device over a network; and
begin decoding the at least one of the plurality of encoded slices that is received before the server fully transmits the plurality of encoded slices to the client device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
begin the decoding the at least one of the plurality of encoded slices before the video frame has been fully encoded at the server.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
begin the decoding the at least one of the plurality of encoded slices before scan-out of the video frame to the encoder has fully completed.

### Claim 4 (depends on 1)

The method of claim 1,
wherein a plurality of video frames including the video frame is generated at the server responsive to processing of an application by the server.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving each of a plurality of encoded communication packets of a corresponding encoded slice before decoding the corresponding encoded slice begins.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
begin displaying the at least one of the plurality of encoded slices that has been decoded before fully decoding the plurality of encoded slices.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
begin the decoding the at least one of the plurality of encoded slices that is received before fully receiving the plurality of encoded slices at the client device.

### Claim 8

A computer system comprising:
a processor; and
memory coupled to the processor and having stored therein instructions that, if executed by the computer system, cause the computer system to execute a method comprising:
receiving at a client device at least one of a plurality of encoded slices of a video frame, wherein the video frame was generated at a server and encoded into the plurality of encoded slices, wherein the server transmits the plurality of encoded slices to the client device over a network; and
begin decoding the at least one of the plurality of encoded slices that is received before the server fully transmits the plurality of encoded slices to the client device.

### Claim 9 (depends on 8)

The computer system of claim 8, the method further comprising:
begin the decoding the at least one of the plurality of encoded slices before the video frame has been fully encoded at the server.

### Claim 10 (depends on 8)

The computer system of claim 8, the method further comprising:
begin the decoding the at least one of the plurality of encoded slices before scan-out of the video frame to the encoder has fully completed.

### Claim 11 (depends on 8)

The computer system of claim 8,
wherein in the method a plurality of video frames including the video frame is generated at the server responsive to processing of an application by the server.

### Claim 12 (depends on 8)

The computer system of claim 8, the method further comprising:
receiving each of a plurality of encoded communication packets of a corresponding encoded slice before decoding the corresponding encoded slice begins.

### Claim 13 (depends on 8)

The computer system of claim 8, the method further comprising:
begin displaying the at least one of the plurality of encoded slices that has been decoded before fully decoding the plurality of encoded slices.

### Claim 14 (depends on 8)

The computer system of claim 8, the method further comprising:
begin the decoding the at least one of the plurality of encoded slices that is received before fully receiving the plurality of encoded slices at the client device.

### Claim 15

A non-transitory computer-readable medium storing a computer program performing a method, the computer-readable medium comprising:
program instructions for receiving at a client device at least one of a plurality of encoded slices of a video frame, wherein the video frame was generated at a server and encoded into the plurality of encoded slices, wherein the server transmits the plurality of encoded slices to the client device over a network; and
program instructions to begin decoding the at least one of the plurality of encoded slices that is received before the server fully transmits the plurality of encoded slices to the client device.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, further comprising:
program instructions to begin the decoding the at least one of the plurality of encoded slices before the video frame has been fully encoded at the server.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, further comprising:
program instructions to begin the decoding the at least one of the plurality of encoded slices before scan-out of the video frame to the encoder has fully completed.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, further comprising:
program instructions for receiving each of a plurality of encoded communication packets of a corresponding encoded slice before decoding the corresponding encoded slice begins.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, further comprising:
program instructions to begin displaying the at least one of the plurality of encoded slices that has been decoded before fully decoding the plurality of encoded slices.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, further comprising:
program instructions to begin the decoding the at least one of the plurality of encoded slices that is received before fully receiving the plurality of encoded slices at the client device.
