# US 12,192,499 B2 · Methods and apparatuses for encoding and decoding a bytestream

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

- Number: US 12,192,499 B2
- Document ID: US12192499B2
- Status: Granted
- Kind: B2
- Application number: 18/295,197
- Filed: 2023-04-03
- Published: 2023-11-30
- Granted: 2025-01-07
- Earliest claimed: 2023-04-03
- Assignees: V-Nova International Limited
- Applicants: V-Nova International Limited
- Inventors: Ivan Makeev; Balázs Keszthelyi; Stergios Poularakis; Michele Sanna; Robert Ettinger
- Web page: https://patentgrep.com/patent/US12192499B2

## CPC

- H04N 19/96: Tree coding, e.g. quad-tree coding
- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- H04L 65/756: adapting media to device capabilities
- H04N 19/13: Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
- H04N 19/184: the unit being bits, e.g. of the compressed video stream
- H04N 19/1883: {the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]}
- H04N 19/44: Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N 19/91: Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

There is provided a method of decoding a received set of encoded data, the method comprising: receiving an encoded dataset; identifying from the dataset an ordered set of node symbols and data symbols, wherein a node symbol comprises a predetermined number of elements wherein each element indicates if a subsequent node symbol or data symbol is to be expected in the dataset and a data symbol is a predetermined number of bits which represent an encoded value; constructing, based on said ordered set, an ordered tree having a predetermined number of layers from the identified node symbols and data symbols.

## Claims

### Claim 1

A method of decoding a set of sparse data, the method comprising:
obtaining a set of encoded data comprising information that, when decoded, would enable reconstruction of the set of sparse data;
decoding a first portion of said set of encoded data to obtain a first set of decoded data; and
based on the first set of decoded data, determining how to reconstruct a first portion of the set of sparse data,
wherein the first set of decoded data corresponds to one or more metadata symbols indicating whether to reconstruct the first portion of the set of sparse data based on (i) a second set of decoded data or (ii) a simulation of the first portion of the set of sparse data, and
wherein, if the one or more metadata symbols indicates that reconstruction of the first portion of the set of sparse data should be based on the second set of decoded data, the method further comprises:
decoding a second portion of said set of encoded data to obtain the second set of decoded data; and
reconstructing the first portion of the set of sparse data by extracting, from the second set of decoded data, a first type of data symbols.

### Claim 2 (depends on 1)

The method of claim 1, wherein, if the one or more metadata symbols indicates that reconstruction of the first portion of the set of sparse data should be based on the simulation of the first portion of the set of sparse data, the method further comprises:
simulating the first portion of the set of sparse data by generating a second type of data symbols.

### Claim 3

A non-transitory computer readable storage medium having stored thereon computer executable instructions that are executable by one or more processors of a decoder to cause the decoder to:
obtain a set of encoded data comprising information that, when decoded, would enable reconstruction of a set of sparse data;
decode a first portion of said set of encoded data to obtain a first set of decoded data; and
based on the first set of decoded data, determine how to reconstruct a first portion of the set of sparse data,
wherein the first set of decoded data corresponds to one or more metadata symbols indicating whether to reconstruct the first portion of the set of sparse data based on (i) a second set of decoded data or (ii) a simulation of the first portion of the set of sparse data, and
wherein, if the one or more metadata symbols indicates that reconstruction of the first portion of the set of sparse data should be based on the simulation of the first portion of the set of sparse data, the computer executable instructions further cause the decoder to:
simulate the first portion of the set of sparse data by generating a type of data symbols.

### Claim 4 (depends on 3)

The computer readable storage medium of claim 3, wherein if the one or more metadata symbols indicates that reconstruction of the first portion of the set of sparse data should be based on the second set of decoded data, the method further comprises:
decoding a second portion of said set of encoded data to obtain the second set of decoded data; and
reconstructing the first portion of the set of sparse data by extracting, from the second set of decoded data, a different type of data symbols.

### Claim 5

A decoder comprising:
a processor;
a computer readable storage medium having stored thereon computer executable instructions that are executable by the processor to cause the decoder to:
obtain a set of encoded data comprising information that, when decoded, would enable reconstruction of a set of sparse data;
decode a first portion of said set of encoded data to obtain a first set of decoded data; and
based on the first set of decoded data, determine how to reconstruct a first portion of the set of sparse data,
wherein the first set of decoded data corresponds to one or more metadata symbols indicating whether to reconstruct the first portion of the set of sparse data based on (i) a second set of decoded data or (ii) a simulation of the first portion of the set of sparse data, and
wherein, if the one or more metadata symbols indicates that reconstruction of the first portion of the set of sparse data should be based on the second set of decoded data, the computer executable instruction further cause the decoder to:
decode a second portion of said set of encoded data to obtain the second set of decoded data; and
reconstruct the first portion of the set of sparse data by extracting, from the second set of decoded data, a first type of data symbols.

### Claim 6 (depends on 5)

The decoder of claim 5, wherein, if the one or more metadata symbols indicates that reconstruction of the first portion of the set of sparse data should be based on the simulation of the first portion of the set of sparse data, the computer executable instructions further cause the decoder to:
simulate the first portion of the set of sparse data by generating a second type of data symbols.

### Claim 7 (depends on 1)

The method of claim 1, wherein the set of sparse data is describable as an array of data.

### Claim 8 (depends on 7)

The method of claim 7, wherein a majority of the array has a value of 0.

### Claim 9 (depends on 7)

The method of claim 7, wherein a majority of the array has values that are below a predefined threshold.

### Claim 10 (depends on 7)

The method of claim 7, wherein the array is organized as a grid.

### Claim 11 (depends on 1)

The method of claim 1, wherein the first type of data symbols includes up to four data symbols.

### Claim 12 (depends on 3)

The non-transitory computer readable storage medium of claim 3, wherein the set of sparse data is describable as an array of data.

### Claim 13 (depends on 12)

The non-transitory computer readable storage medium of claim 12, wherein a majority of the array has a value of 0.

### Claim 14 (depends on 12)

The non-transitory computer readable storage medium of claim 12, wherein a majority of the array has values that are below a predefined threshold.

### Claim 15 (depends on 12)

The non-transitory computer readable storage medium of claim 12, wherein the array is organized as a grid.

### Claim 16 (depends on 3)

The non-transitory computer readable storage medium of claim 3, wherein the first type of data symbols includes up to four data symbols.

### Claim 17 (depends on 5)

The decoder of claim 5, wherein the set of sparse data is describable as an array of data.

### Claim 18 (depends on 17)

The decoder of claim 17, wherein a majority of the array has a value of 0.

### Claim 19 (depends on 17)

The decoder of claim 17, wherein a majority of the array has values that are below a predefined threshold.

### Claim 20 (depends on 17)

The decoder of claim 17, wherein the array is organized as a grid.
