IP Library Granted Patent US 9,918,090
Granted Patent B2
US 9,918,090 · App. 14/108,173 · Granted Mar 13, 2018

Entropy coding supporting mode switching

Inventors: Valeri George (Berlin, DE); Benjamin Bross (Berlin, DE); Heiner Kirchhoffer (Berlin, DE); Detlev Marpe (Berlin, DE); Tung Nguyen (Berlin, DE); Matthias Preiss (Berlin, DE); Mischa Siekmann (Berlin, DE); Jan Stegemann (Berlin, DE); Thomas Weigand (Berlin, DE); Christian Bartnik (Berlin, DE)
Assignee: GE VIDEO COMPRESSION, LLC
H04N19/13H03M7/42H04N19/124H04N19/132H04N19/50H04N19/513H04N19/52H04N19/61H04N19/70H04N19/91H04N19/174H04N19/184
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,918,090
App. No.
14/108,173
Granted
Mar 13, 2018
Kind
B2
Abstract

A decoder for decoding a data stream into which media data is coded has a mode switch configured to activate a low-complexity mode or a high-efficiency mode depending on the data stream, an entropy decoding engine configured to retrieve each symbol of a sequence of symbols by entropy decoding using a selected one of a plurality of entropy decoding schemes, a desymbolizer configured to desymbolize the sequence of symbols to obtain a sequence of syntax elements, a reconstructor configured to reconstruct the media data based on the sequence of syntax elements, selection depending on the activated low-complexity mode or the high-efficiency mode. In another aspect, a desymbolizer is configured to perform desymbolization such that the control parameter varies in accordance with the data stream at a first rate in case of the high-efficiency mode being activated and the control parameter is constant irrespective of the data stream or changes depending on the data stream, but at a second lower rate in case of the low-complexity mode being activated.

Claims (80)

1. A decoder for decoding a data stream including encoded data of a video, the decoder comprising:

a mode switch configured to activate a low-complexity mode or a high efficiency mode based on mode information from the data stream;

an entropy decoding engine configured to decode, by entropy decoding, data from the data stream using a selected one of a plurality of entropy decoding schemes to obtain a sequence of symbols;

a desymbolizer configured to desymbolize the sequence of symbols in order to acquire a sequence of syntax elements; and

a reconstructor configured to reconstruct at least a portion of the video based on the sequence of syntax elements,

wherein the selection of the one of the plurality of entropy decoding schemes depends on the activated one of the low complexity mode and the high-efficiency mode,

wherein the entropy decoding engine is configured such that each of the plurality of entropy decoding schemes involves arithmetic decoding of symbols associated with the respective entropy decoding scheme, wherein the plurality of entropy decoding schemes differ from each other in terms of a different probability estimate used in the corresponding arithmetic decoding, and

wherein, for at least one symbol of the sequence of symbols, the entropy decoding engine is configured to:

select a context corresponding to the at least one symbol, the selected context corresponding to a probability model, and

entropy decode the at least one symbol using the selected one of a plurality of entropy decoding schemes based on the selected context, wherein the probability model is updated at a first update rate under the high-efficiency mode, and is updated at a second update rate lower than the first update rate under the low-complexity mode.

2. The decoder according to claim 1 , wherein the selection depends on previously retrieved symbols of the sequence of symbols in case of the high-efficiency mode being activated and independent from any previously retrieved symbols of the sequence of symbols in case of the low-complexity mode being activated.

3. The decoder according to claim 1 , wherein the data stream is structured into consecutive portions and each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein, for symbols of a predetermined symbol type within a current portion, the selection varies depending on previously retrieved symbols of the sequence of symbols of the predetermined symbol type within the current portion in case of the high-efficiency mode being activated, and is left constant within the current portion in case of the low-complexity mode being activated.

4. The decoder according to claim 1 , wherein each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein the entropy decoding engine is configured to, for a predetermined symbol of a predetermined symbol type,

select one of a plurality of contexts depending on previously retrieved symbols of the sequence of symbols and perform the selection among the entropy decoding schemes depending on a probability model associated with the selected context along with updating the probability model associated with the selected context depending on the predetermined symbol in case of the high-efficiency mode being activated, and

perform selecting the one of the plurality of contexts depending on the previously retrieved symbols of the sequence of symbols and perform the selection among the entropy decoding schemes depending on the probability model associated with the selected context along with leaving the probability model associated with the selected context constant in case of the low-complexity mode being activated.

5. The decoder according to claim 1 , wherein each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein

for each symbol of a predetermined symbol type, the selection of the one of the plurality of entropy decoding schemes depends on a probability model associated with the predetermined symbol type.

6. The decoder according to claim 1 wherein, for symbols of a predetermined symbol type,

a probability mode adaptation is performed using a probability state index defined at a first probability state accuracy and the selection depends on the probability state index defined at the first probability state accuracy in case of the high-efficiency mode being activated, and

no probability mode adaptation or a probability mode adaptation using a probability state index defined at a second probability state accuracy lower than the first probability state accuracy is performed and the selection depends on the probability state index defined at the second probability state accuracy in case of the low-complexity mode being activated.

7. The decoder according to claim 1 wherein the reconstructor is configured to operate independent from the high-efficiency mode or the low-complexity mode being activated.

8. The decoder according to claim 1 wherein the reconstructor is configured to reconstruct a transform block of transform coefficient levels based on a portion of the sequence of syntax elements independent from the high-efficiency mode or the low-complexity mode being activated, the portion of the sequence of syntax elements comprising, in an un-interleaved manner,

significance map syntax elements defining a significance map indicating positions of non-zero transform coefficient levels within the transform block; and

level syntax elements defining the non-zero transform coefficient levels.

9. The decoder according to claim 1 wherein the reconstructor is configured to reconstruct a transform block of transform coefficient levels based on a portion of the sequence of syntax elements independent from the high-efficiency mode or the low-complexity mode being activated, the portion of the sequence of syntax elements comprising, in an un-interleaved manner,

end position syntax elements indicating a position of a last non-zero transform coefficient level within the transform block;

first syntax elements together defining a significance map and indicating, for each position along a one-dimensional path leading from a DC position to the position of the last non-zero transform coefficient level within the transform block, as to whether the transform coefficient level at the respective position is non-zero or not;

second syntax elements indicating, for each position of the one-dimensional path where, according to the first binary syntax elements, a non-zero transform coefficient level is positioned, as to whether the transform coefficient level at the respective position is greater than one;

third syntax elements revealing, for each position of the one-dimensional path where, according to the first binary syntax elements, a transform coefficient level greater than one is positioned, an amount by which the respective transform coefficient level at the respective position exceeds one,

wherein an order among the end positions syntax elements, and the first, second and third syntax elements is the same for the high-efficiency mode and the low-complexity mode, and wherein the selection is performed for symbols from which the desymbolizer acquires the end position syntax elements, first syntax elements, second syntax elements and/or the third syntax elements, differently depending on the complexity mode or the high-efficiency mode being activated.

10. The decoder according to claim 9 , wherein the selection is, for symbols of a predetermined symbol type among a subsequence of symbols from which the desymbolizer acquires the first syntax elements and second syntax elements, performed so that

for each symbol of the predetermined symbol type one of a plurality of contexts is selected depending on previously retrieved symbols of the predetermined symbol type among the subsequence of symbols and the selection is performed depending on a probability model associated with the selected context in case of the high-efficiency mode being activated, and

the selection is performed in a piecewise constant manner such that the selection is constant over consecutive continuous subparts of the subsequence in case of the low-complexity mode being activated.

11. The decoder according to claim 10 , wherein the selection is, for the symbols of the predetermined symbol type among the subsequence of symbols from which the desymbolizer acquires the first syntax elements and second syntax elements, performed such that

for each symbol of the predetermined symbol type the one of a plurality of contexts is selected depending on a number of previously retrieved symbols of the predetermined symbol type within the subsequence of symbols, which comprise a predetermined symbol value and belong to the same subpart, or a number of previously retrieved symbols of the predetermined symbol type within the subsequence of symbols, which belong to the same subpart.

12. The decoder according to claim 9 , wherein the third syntax elements revealing, for each position of the one-dimensional path where, according to the first binary syntax elements, a transform coefficient level greater than one is positioned, an amount by which the respective transform coefficient level at the respective position exceeds one, comprise integer-valued syntax elements, and the desymbolizer is configured to use a mapping function controllable by a control parameter to map a domain of symbol sequence words to a co-domain of the integer-valued syntax elements, and to set the control parameter per integer-valued syntax element depending on integer-valued syntax elements of previous third syntax elements if the high-efficiency mode is activated, and perform the setting in a piecewise constant manner such that the setting is constant over consecutive continuous subparts of the subsequence in case of the low-complexity mode being activated, wherein the selection selects a predetermined one of the entropy decoders or entropy decoding schemes for the symbols of symbol sequence words mapped onto the integer-valued syntax elements, which is associated with an equal probability distribution, in both the high-efficiency mode and the low-complexity mode.

13. The decoder according to claim 1 wherein each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein the selection depends, for symbols of each of a number of predetermined symbol types, on a respective probability model associated the respective predetermined symbol such that

the number of predetermined symbol types is lower in the low complexity mode than compared to the high-efficiency mode.

14. The decoder according to claim 1 wherein each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein the selection depends, for symbols of a predetermined symbol type, on a probability model associated with the predetermined symbol type along with or without updating the associated probability model, such that

a length of a learning phase of the sequence of symbols over which the selection for the symbols of the predetermined symbol type is performed along with the update, is shorter in the low complexity mode than compared to the high-efficiency mode.

15. The decoder according to claim 1 wherein each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein the selection depends, for symbols of a predetermined symbol type, on a probability model associated with the predetermined symbol type along with or without updating the associated probability model such that

a frequency at which the selection for the symbols of the predetermined symbol type is performed along with the update, is lower in the low complexity mode than compared to the high-efficiency mode.

16. The decoder according to claim 1 wherein each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein the selection performed via, for symbols of a predetermined symbol type, selecting one of a number of contexts depending on a number of previously retrieved symbols of the sequence of symbols and selecting among the entropy decoders or entropy decoding schemes depending on a probability model associated with the selected context, such that

the number of contexts, and/or the number of previously retrieved symbols, is lower in the low complexity mode than compared to the high-efficiency mode.

17. The decoder according to claim 1 wherein each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein the selection depends, for symbols of a predetermined symbol type, on a probability model associated with the predetermined symbol type, and the associated probability model is updated every x-th symbol of the predetermined type based on y most recent symbols of the predetermined symbol type such that

the ratio x/y is higher in the low complexity mode than compared to the high-efficiency mode.

18. The decoder according to claim 1 wherein each symbol of the sequence of symbols is associated with a respective one of a plurality of symbol types, wherein the probability models associated with the symbol types are initialized based on a computation using syntax elements in the data stream which computation and syntax elements are the same in the low complexity mode and the high-efficiency mode, respectively, with, however, a resolution of a result of the computation being lower in the low complexity mode and the high-efficiency mode.

19. The decoder according to claim 1 wherein the entropy decoding engine is configured such that merely one probability interval width value R and offset state value V is managed for all entropy decoding schemes.

20. An encoder for encoding data of a video into a data stream, the encoder comprising:

an inserter configured to signal within the data stream an activation of a low-complexity mode or a high efficiency mode;

a constructor configured to precode the data of the video into a sequence of syntax elements;

a symbolizer configured to symbolize the sequence of syntax elements into a sequence of symbols; and

an entropy encoding engine configured to encode each symbol of the sequence of symbols into the data stream using a selected one of a plurality of entropy encoding schemes,

wherein the entropy encoding engine is configured to perform the selection of the one of the plurality of entropy encoding schemes depending on the activated one of the low complexity mode and the high-efficiency mode,

wherein the entropy encoding engine is configured such that each of the plurality of entropy encoding schemes involves arithmetic encoding of symbols associated with the respective entropy encoding scheme, wherein the plurality of entropy encoding schemes differ from each other in terms of a different probability estimate used in the corresponding arithmetic encoding, and

wherein, for at least one symbol of the sequence of symbols, the entropy encoding engine is configured to:

select a context corresponding to the at least one symbol, the selected context corresponding to a probability model, and

entropy encode the at least one symbol using the selected one of a plurality of entropy encoding schemes based on the selected context, wherein the probability model is updated at a first update rate under the high-efficiency mode, and is updated at a second update rate lower than the first update rate under the low-complexity mode.

21. A method for decoding a data stream including encoded data of a video, the method comprising:

activating a low-complexity mode or a high efficiency mode based on mode information from the data stream;

entropy decoding data from the data stream using a selected one of a plurality of entropy decoding schemes to obtain a sequence of symbols;

desymbolizing the sequence of symbols in order to acquire a sequence of syntax elements; and

reconstructing at least a portion of the video based on the sequence of syntax elements,

wherein the selection of the one of the plurality of entropy decoding schemes is performed depending on the activated one of the low complexity mode and the high-efficiency mode,

wherein the entropy decoding is performed such that each of the plurality of entropy decoding schemes involves arithmetic decoding of symbols associated with the respective entropy decoding scheme, wherein the plurality of entropy decoding schemes differ from each other in terms of a different probability estimate used in the corresponding arithmetic decoding, and

wherein, for at least one symbol of the sequence of symbols, the entropy decoding comprises:

selecting a context corresponding to the at least one symbol, the selected context corresponding to a probability model, and

entropy decoding the at least one symbol using the selected one of a plurality of entropy decoding schemes based on the selected context, wherein the probability model is updated at a first update rate under the high-efficiency mode, and is updated at a second update rate lower than the first update rate under the low-complexity mode.

22. A method for encoding data of a video into a data stream, the method comprising:

signalling within the data stream an activation of a low-complexity mode or a high efficiency mode;

precoding the data of the video into a sequence of syntax elements;

symbolizing the sequence of syntax elements into a sequence of symbols; and

entropy encoding each symbol of the sequence of symbols into the data stream using a selected one of a plurality of entropy encoding schemes,

wherein the selection of the one of the plurality of entropy encoding schemes is performed depending on the activated one of the low complexity mode and the high-efficiency mode,

wherein the encoding is performed such that each of the plurality of entropy encoding schemes involves arithmetic encoding of symbols associated with the respective entropy encoding scheme, wherein the plurality of entropy encoding schemes differ from each other in terms of a different probability estimate used in the corresponding arithmetic encoding, and

wherein, for at least one symbol of the sequence of symbols, the entropy encoding comprises:

selecting a context corresponding to the at least one symbol, the selected context corresponding to a probability model, and

entropy encoding the at least one symbol using the selected one of a plurality of entropy encoding schemes based on the selected context, wherein the probability model is updated at a first update rate under the high-efficiency mode, and is updated at a second update rate lower than the first update rate under the low-complexity mode.

23. A non-transitory computer program comprising a program code for performing, when running on a computer, a method according to claim 21 .

24. A non-transitory computer program comprising a program code for performing, when running on a computer, a method according to claim 22 .

Assignments (5)
CHANGE OF NAME Recorded Jan 30, 2026
From: GE VIDEO COMPRESSION, LLC
To: DOLBY VIDEO COMPRESSION, LLC
Reel/Frame 074536/0694 →
CHANGE OF NAME Recorded Nov 26, 2024
From: GE VIDEO COMPRESSION, LLC
To: DOLBY VIDEO COMPRESSION, LLC
Reel/Frame 069450/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2015
From: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
To: GE VIDEO COMPRESSION, LLC
Reel/Frame 036982/0977 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2015
From: BARTNIK, CHRISTIAN
To: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
Reel/Frame 034923/0317 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2014
From: GEORGE, VALERI; BROSS, BENJAMIN; KIRCHHOFFER, HEINER; MARPE, DETLEV; NGUYEN, TUNG; PREISS, MATTHIAS; SIEKMANN, MISCHA; STEGEMANN, JAN; WIEGAND, THOMAS
To: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
Reel/Frame 033022/0757 →
Continuity (4)
Continuation PCTEP2012061615 · Jun 18, 2012
Provisional Application 61508506 · Jul 15, 2011
Provisional Application 61497794 · Jun 16, 2011
Related Publication 20140140400A1 · May 22, 2014