Methods and devices for load balancing in parallel entropy coding and decoding
First Claim
1. A method of decoding a bitstream at a decoder having two or more parallel entropy decoders, the bitstream having a payload of concatenated encoded subsequences, the method comprising:
- extracting length data for the encoded subsequences from the bitstream, wherein each of the encoded subsequences is associated with a respective estimated probability defined by a context model;
partitioning the payload into a plurality of segments for parallel decoding, wherein the partitioning divides at least one of the encoded subsequences into a first part within one of the plurality of segments and a second part within another of the plurality of segments;
reading auxiliary information from the bitstream; and
decoding the plurality of segments using the two or more parallel entropy decoders, wherein the auxiliary information enables decoding of the second part without first decoding the first part.
6 Assignments
0 Petitions
Accused Products
Abstract
Devices and methods for entropy decoding a bitstream of encoded data by extracting a plurality of encoded subsequences from a payload field of the bitstream for parallel decoding on a set of parallel entropy decoders. The method includes dividing the payload of concatenated encoded subsequences into segments using a distribution function and distributing the segments amongst the set of parallel entropy decoders to balance the computational load among the parallel entropy decoders. The received bitstream includes auxiliary information inserted by the encoder to enable the decoder to entropy decode segments that begin with a portion of an encoded subsequence.
11 Citations
23 Claims
-
1. A method of decoding a bitstream at a decoder having two or more parallel entropy decoders, the bitstream having a payload of concatenated encoded subsequences, the method comprising:
-
extracting length data for the encoded subsequences from the bitstream, wherein each of the encoded subsequences is associated with a respective estimated probability defined by a context model; partitioning the payload into a plurality of segments for parallel decoding, wherein the partitioning divides at least one of the encoded subsequences into a first part within one of the plurality of segments and a second part within another of the plurality of segments; reading auxiliary information from the bitstream; and decoding the plurality of segments using the two or more parallel entropy decoders, wherein the auxiliary information enables decoding of the second part without first decoding the first part. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for encoding multiple sources to generate a bitstream, the method comprising:
-
entropy encoding the multiple sources to generate encoded subsequences, wherein each of the encoded subsequences is associated with a respective estimated probability defined by a context model, and concatenating the encoded subsequences; calculating a partition of the concatenated encoded subsequences into a plurality of segments, wherein the partition would divide at least one of the encoded subsequences into a first part within one of the plurality of segments and a second part within another of the plurality of segments; determining auxiliary information required by a decoder to enable the decoder to decode the second part without first decoding the first part; and outputting the bitstream, wherein the bitstream includes the concatenated encoded subsequences and the auxiliary information. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A decoder for decoding a bitstream using two or more parallel entropy decoders, the bitstream having a payload of encoded subsequences, the decoder comprising:
-
a processor; a memory; and a decoding application stored in memory and containing instructions for configuring the processor to decode the bitstream by extracting length data for the encoded subsequences from the bitstream, wherein each of the encoded subsequences is associated with a respective estimated probability defined by a context model; partitioning the payload into a plurality of segments for parallel decoding, wherein the partitioning divides at least one of the encoded subsequences into a first part within one of the plurality of segments and a second part within another of the plurality of segments; reading auxiliary information from the bitstream; and decoding the plurality of segments using the two or more parallel entropy decoders, wherein the auxiliary information enables decoding of the second part without first decoding the first part.
-
-
23. An encoder for encoding multiple sources to generate a bitstream, the encoder comprising:
-
a processor; a memory; and an encoding application stored in memory and containing instructions for configuring the processor to generate the bitstream by entropy encoding the multiple sources to generate encoded subsequences, wherein each of the encoded subsequences is associated with a respective estimated probability defined by a context model, and concatenating the encoded subsequences; calculating a partition of the concatenated encoded subsequences into a plurality of segments, wherein the partition would divide at least one of the encoded subsequences into a first part within one of the plurality of segments and a second part within another of the plurality of segments; determining auxiliary information required by a decoder to enable the decoder to decode the second part without first decoding the first part; and outputting the bitstream, wherein the bitstream includes the concatenated encoded subsequences and the auxiliary information.
-
Specification