Hierarchical data structure
AssigneeV-Nova International Limited
InventorsIvan Makeev, Balazs Keszthelyi, Stergios Poularakis, Michele Sanna, Robert Ettinger
Life of this patent
Estimating the term…
Abstract
A method of decoding a stream of encoded data the method comprising, at a decoder: receiving an encoded dataset comprising multiple tiles; receiving a data structure, said data structure indicative of the amount of data required to encode a plurality of tiles; identifying a portion of the encoded dataset to be decoded by: identifying the tiles associated with the portion to be decoded; determining the location of data related to the tiles based on the amount of data required to encode said tiles; extracting the identified portion of the encoded dataset from the encoded dataset; and decoding said identified portion of the encoded data set.
Claims20
A method of decoding a stream of encoded data that has been selectively encoded in a manner such that some, but not all, values of a residual frame are encoded while other values of the residual frame are not encoded, the method comprising, at a decoder:
- receiving an encoded dataset comprising multiple tiles, wherein the decoder is configured to decode sparse residual data included in the encoded dataset, and wherein the sparse residual data is generated by:
- subdividing a residual frame of data into a plurality of tiles;
- identifying, from among the plurality of tiles, a first block of residual data, a second block of residual data, and a third block of residual data, the first and second blocks having associated values above a threshold while the third block has an associated value equal to or below the threshold;
- and
- selecting tiles comprising the first and second blocks to be encoded and to be included among said multiple tiles while refraining from encoding a tile comprising the third block such that a sparse encoding process is performed in which some, but not all, tiles in the plurality of tiles are encoded and such that the encoded dataset includes residual frame tiles whose values were encoded and does not include residual frame tiles whose values were not encoded;
- receiving a data structure, said data structure indicative of an amount of data required to encode the tiles comprising the first and second blocks;
- identifying a portion of the encoded dataset to be decoded, wherein said portion includes the tiles comprising the first and second blocks but does not include the tile comprising the third block, and wherein said identifying is performed by determining a location of data related to the tiles comprising the first and second blocks based on the amount of data required to encode the tiles comprising the first and second blocks;
- extracting the identified portion of the encoded dataset from the encoded dataset;
- and
- causing the identified portion, which includes the tiles comprising the first and second blocks, to be decoded such that the decoder decodes the first block and the second block and such that the decoder refrains from decoding the third block.
A method of decoding a stream of encoded data that has been selectively encoded in a manner such that some, but not all, values of a residual frame are encoded while other values of the residual frame are not encoded, the method comprising, at a decoder:
- receiving an encoded dataset comprising multiple tiles, wherein the decoder is configured to decode sparse residual data included in the encoded dataset, and wherein the sparse residual data is generated by:
- subdividing a residual frame of data into a plurality of tiles;
- identifying, from among the plurality of tiles, a first block of residual data, a second block of residual data, and a third block of residual data, the first and second blocks having associated values above a threshold while the third block has an associated value equal to or below the threshold;
- and
- selecting tiles comprising the first and second blocks to be encoded and to be included among said multiple tiles while refraining from encoding a tile comprising the third block such that a sparse encoding process is performed in which some, but not all, tiles in the plurality of tiles are encoded and such that the encoded dataset includes residual frame tiles whose values were encoded and does not include residual frame tiles whose values were not encoded;
- receiving a data structure, said data structure indicative of a distribution of data above, below, or equal to, the threshold for the multiple tiles;
- identifying the tiles comprising the first and second blocks, wherein the tiles comprising the first and second blocks have the associated values that are above, or equal to, the threshold, and wherein the tiles comprising the first and second blocks are encoded at a first level of quality and at a second level of quality, the second level of quality being a higher level of quality than the first level of quality;
- and
- causing the tiles comprising the first and second blocks to be decoded such that the decoder decodes the first block and the second block and such that the decoder refrains from decoding the third block.
A decoder for decoding an encoded stream of video data, where the encoded stream is selectively encoded in a manner such that some, but not all, values of a residual frame are encoded while other values of the residual frame are not encoded, the decoder configured to execute a method comprising:
- receiving an encoded dataset comprising multiple tiles wherein the decoder is configured to decode sparse residual data included in the encoded dataset, and wherein the sparse residual data is generated by:
- subdividing a residual frame of data into a plurality of tiles;
- identifying, from among the plurality of tiles, a first block of residual data, a second block of residual data, and a third block of residual data, the first and second blocks having mapped binary values of 1 as a result of the first and second blocks including non-zero residual values while the third block has a mapped binary value of 0 as a result of the third block including a zero residual value;
- and
- selecting tiles comprising the first and second blocks to be encoded and to be included among said multiple tiles while refraining from encoding a tile comprising the third block such that a sparse encoding process is performed in which some, but not all, tiles in the plurality of tiles are encoded and such that the encoded dataset includes residual frame tiles whose values were encoded and does not include residual frame tiles whose values were not encoded;
- receiving a data structure, said data structure indicative of an amount of data required to encode the tiles comprising the first and second blocks;
- identifying a portion of the encoded dataset to be decoded by, wherein said portion includes the tiles comprising the first and second blocks but does not include the tile comprising the third block, and wherein said identifying is performed by determining a location of data related to the tiles comprising the first and second blocks based on the amount of data required to encode the tiles comprising the first and second blocks,
- extracting the identified portion of the encoded dataset from the encoded dataset;
- and
- causing the identified portion, which includes the tiles comprising the first and second blocks, to be decoded such that the decoder decodes the first block and the second block and such that the decoder refrains from decoding the third block.
Dependencies are inferred from the claim text.