# US 12,015,799 B2 · Systems and methods for data partitioning in video encoding

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

- Number: US 12,015,799 B2
- Document ID: US12015799B2
- Status: Granted
- Kind: B2
- Application number: 17/589,589
- Filed: 2022-01-31
- Published: 2023-03-16
- Granted: 2024-06-18
- Earliest claimed: 2021-09-13
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Sorin C Cismas; Ganesh G Yadav
- Web page: https://patentgrep.com/patent/US12015799B2

## CPC

- H04L 65/80: Responding to QoS
- H04N 19/66: involving data partitioning, i.e. separation of data into packets or partitions according to importance
- H04L 65/612: for unicast
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04L 65/70: Media network packetisation
- H04L 65/752: adapting media to network capabilities
- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04N 19/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- H04N 19/164: Feedback from the receiver or from the transmission channel
- H04N 19/174: the region being a slice, e.g. a line of blocks or a group of blocks
- H04N 19/18: the unit being a set of transform coefficients
- H04N 19/186: the unit being a colour or a chrominance component
- H04N 19/37: with arrangements for assigning different transmission priorities to video input data or to video coded data
- H04N 19/423: characterised by memory arrangements (H04N19/433 takes precedence)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

This disclosure is directed to systems and methods of data partitioning in image encoding. A video encoder may receive a single stream of video data that includes multiple layers. The video encoder may encode the one or more layers utilizing multiple counters for each component within the layers. The multiple counters may correspond to the header bits, luma bits, and chroma bits within each slice layer. The encoded layers may then be assembled into a single slice before it is sent to a decoder for decoding of image frame.

## Claims

### Claim 1

An electronic device comprising:
a buffer; and
a data streaming device communicatively coupled to the buffer, wherein the data streaming device is configured to transmit video stream data to a requesting device, and wherein the data streaming device comprises one or more processors configured to:
receive a request from the requesting device to stream one or more video streams;
determine an available bandwidth of the requesting device;
send the video stream data comprising a plurality of layers comprising different discrete cosine transform (DCT) coefficients, wherein a total number of the plurality of layers and a total number of DCT coefficients sent in the video stream data vary based on the available bandwidth of the requesting device, in response to receiving the request; and
buffer more layers than the plurality of layers corresponding to the requested video stream data into the buffer, wherein the video stream data comprises a header that identifies the plurality of layers.

### Claim 2 (depends on 1)

The electronic device of claim 1, wherein each layer of the plurality of layers comprises specified groups of the DCT coefficients.

### Claim 3 (depends on 1)

The electronic device of claim 1, wherein the data streaming device is configured to determine that the available bandwidth of the requesting device is below a threshold bandwidth value, and wherein the data streaming device is configured to send a base layer of the plurality of layers of the requested video stream data to the requesting device but not other layers of the plurality of layers, in response to a determination that the available bandwidth is below the threshold bandwidth value.

### Claim 4 (depends on 1)

The electronic device of claim 1, wherein the data streaming device is configured to send the plurality of layers as a single video data stream.

### Claim 5 (depends on 1)

The electronic device of claim 1, wherein the data streaming device is configured to remove one or more layers from the buffer based on the determined available bandwidth of the requesting device.

### Claim 6 (depends on 1)

The electronic device of claim 1, wherein the data streaming device is configured to cause the data streaming device to determine the available bandwidth of the requesting device at an additional time and adjust the plurality of layers sent based on the determined available bandwidth at the additional time.

### Claim 7 (depends on 1)

The electronic device of claim 1, wherein the requesting device comprises:
a network interface configured to receive the video stream data comprising image slices partitioned into the plurality of layers; and
image processing circuitry configured to:
receive the video stream data from the network interface; and
encode the video stream data, wherein multiple counters corresponding to a number of header bits, a number of luma bits, and a number of chroma bits that are used during encoding of each layer of the video stream data.

### Claim 8 (depends on 1)

The electronic device of claim 1, wherein the requesting device comprises processing circuitry and a tangible, non-transitory, machine-readable medium comprising instructions that, when executed by processing circuitry, causes the processing circuitry to perform operations comprising:
determining a number of layers within a slice of the video stream data;
encoding each layer within the slice of the video stream data using four counters for each layer within the slice of the video stream data; and
assembling the layers within the slice of the video stream data into an unpartitioned version of the slice.
