# US 12,192,497 B2 · Segmented bitstream processing using fence identifiers

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

- Number: US 12,192,497 B2
- Document ID: US12192497B2
- Status: Granted
- Kind: B2
- Application number: 18/091,467
- Filed: 2022-12-30
- Published: 2024-07-04
- Granted: 2025-01-07
- Earliest claimed: 2022-12-30
- Assignees: ATI Technologies ULC
- Applicants: Ati Technologies Ulc
- Inventors: Sonu Thomas; Arun Bhaskaran Nair; Kurian Thomas
- Web page: https://patentgrep.com/patent/US12192497B2

## CPC

- H04N 19/423: characterised by memory arrangements (H04N19/433 takes precedence)
- H04L 65/75: Media network packet handling
- H04N 19/184: the unit being bits, e.g. of the compressed video stream
- H04N 19/46: Embedding additional information in the video signal during the compression process (H04N19/517, H04N19/68, H04N19/70 take precedence)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A bitstream encoding or decoding job is broken up into a plurality of segments, each of which is independent from subsequent segments and corresponds to a respective fence identifier. The segments are individually processed and progress is indicated using the fence identifiers. In some cases, a first segment is encoded, transmitted, decoded, and processed before a second segment is encoded. As a result, in some cases, segment statuses are more easily tracked, hardware is used more efficiently, end-to-end processing time is reduced, and less communication network bandwidth is used.

## Claims

### Claim 1

A method comprising:
receiving a bitstream encoding job to send an encoded version of bitstream data to a consumer as a bitstream; and
in response to encoding a first segment of the bitstream data based on the first segment being independent from other segments of the bitstream data, but prior to completing encoding of the bitstream data:
indicating, using a first fence identifier, that the first segment has been encoded; and
writing the encoded first segment to an output buffer.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
prior to completing encoding of the bitstream data, sending the encoded first segment from the output buffer to the consumer.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first segment is independent of the other segments of the bitstream data based on the first segment being able to be processed without the other segments.

### Claim 4 (depends on 1)

The method of claim 1, further comprising receiving an indication of a plurality of segments comprising the first segment and the other segments with the bitstream data.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
associating the first segment with the first fence identifier based on the first segment being independent from the other segments of the bitstream data.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
receiving an indication that the first segment is associated with the first fence identifier.

### Claim 7 (depends on 1)

The method of claim 1, wherein the bitstream encoding job is performed as part of a remote rendering operation of a cloud-based gaming application.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
identifying the first segment from the bitstream data prior to encoding the first segment.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
in response to encoding a second segment of the bitstream data based on the second segment being independent from other segments of the bitstream data, but prior to completing encoding of the bitstream data:
indicating, using a second fence identifier, that the second segment has been encoded; and
writing the encoded second segment to the output buffer.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
wherein the second segment is independent of other segments of the bitstream data based on the second segment not using data that is included in the other segments.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
prior to completing encoding of the bitstream data, sending the encoded second segment from the output buffer to the consumer.

### Claim 12

A system, comprising:
at least one processor; and
a non-transitory computer readable medium embodying a set of executable instructions, the set of executable instructions to manipulate the at least one processor to:
receive a bitstream encoding job to send an encoded version of bitstream data to a consumer as a bitstream; and
in response to encoding a first segment of the bitstream data based on the first segment being independent from other segments of the bitstream data, but prior to completing encoding of the bitstream data:
indicate, using a first fence identifier, that the first segment has been encoded; and
write the encoded first segment to an output buffer.

### Claim 13 (depends on 12)

The system of claim 12, wherein the set of executable instructions is to manipulate the at least one processor to:
prior to completing encoding of the bitstream data, send the encoded first segment from the output buffer to the consumer.

### Claim 14 (depends on 12)

The system of claim 12, wherein the first segment is independent of the other segments of the bitstream data based on the first segment being able to be processed without the other segments.

### Claim 15 (depends on 12)

The system of claim 12, wherein the set of executable instructions is to manipulate the at least one processor to:
receive an indication of a plurality of segments comprising the first segment and the other segments with the bitstream data.

### Claim 16 (depends on 12)

The system of claim 12, wherein the set of executable instructions is to manipulate the at least one processor to:
associate the first segment with the first fence identifier based on the first segment being independent from the other segments of the bitstream data.

### Claim 17 (depends on 12)

The system of claim 12, wherein the set of executable instructions is to manipulate the at least one processor to:
receive an indication that the first segment is associated with the first fence identifier.

### Claim 18

A method, comprising:
receiving, at a producer, a bitstream encoding job to send an encoded version of bitstream data to a consumer as a bitstream;
in response to encoding a first segment of the bitstream data based on the first segment being independent from other portions of the bitstream data, but prior to completing encoding of the bitstream data:
indicating, using a first fence identifier, that the first segment has been encoded; and
sending the encoded first segment to a consumer as part of the bitstream;
receiving, at the consumer, the encoded first segment as part of the bitstream; and
in response to decoding the encoded first segment but prior to completing decoding of the bitstream, indicating, using the first fence identifier, that the encoded first segment has been decoded.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
subsequent to decoding the first segment, decoding the other portions of the bitstream including an encoded second segment received subsequent to the first segment.

### Claim 20 (depends on 18)

The method of claim 18, further comprising:
subsequent to decoding the first segment, performing image processing operations on the first segment without performing the image processing operations on other portions of the bitstream.
