IP Library Granted Patent US 10,652,564
Granted Patent B2
US 10,652,564 · App. 16/578,716 · Granted May 12, 2020

Sample array coding for low-delay

Inventors: Valeri George (Berlin, DE); Anastasia Henkel (Berlin, DE); Heiner Kirchhoffer (Berlin, DE); Detlev Marpe (Berlin, DE); Thomas Schierl (Berlin, DE)
Assignee: GE VIDEO COMPRESSION, LLC
H04N19/44H03M7/3071H04N19/13H04N19/167H04N19/174H04N19/436H04N19/503H04N19/51H04N19/91H03M7/4037
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 10,652,564
App. No.
16/578,716
Granted
May 12, 2020
Kind
B2
Abstract

The entropy coding of a current part of a predetermined entropy slice is based on, not only, the respective probability estimations of the predetermined entropy slice as adapted using the previously coded part of the predetermined entropy slice, but also probability estimations as used in the entropy coding of a spatially neighboring, in entropy slice order preceding entropy slice at a neighboring part thereof. Thereby, the probability estimations used in entropy coding are adapted to the actual symbol statistics more closely, thereby lowering the coding efficiency decrease normally caused by lower-delay concepts. Temporal interrelationships are exploited additionally or alternatively.

Claims (54)

1. A decoder for reconstructing a sample array of a video from an entropy-encoded data stream, the decoder comprising:

an entropy decoder configured to entropy decode a plurality of entropy slices in the entropy-encoded data stream to reconstruct the sample array, each of the plurality of entropy slices including entropy-encoded data for a corresponding row of a plurality of rows of the sample array,

wherein, for a current entropy slice of the plurality of entropy slices, the entropy decoder is configured to perform entropy decoding along an entropy coding path using a first probability estimate by:

initializing, during a starting phase of the entropy decoding, the first probability estimate for the current entropy slice before decoding a first block of a current row corresponding to the current entropy slice based on a second probability estimate obtained after completing decoding of a second block of a previous row corresponding to a previous entropy slice of the plurality of entropy slices,

wherein the first block is the left-most block of the current row and the second block is a block spatially adjoining and to the right of the left-most block of the previous row,

wherein the current and previous rows are consecutive rows of the sample array, the previous row being spatially above the current row, and the entropy decoding of the previous entropy slice begins before the entropy decoding of the current entropy slice, and

adapting, during a continuation phase of the entropy decoding subsequent to the starting phase, the first probability estimate along the entropy coding path using a previously-decoded part of the current entropy slice.

2. The decoder according to claim 1 , wherein the entropy decoder is configured to entropy-decode the plurality of entropy slices in an order, the order is chosen such that, along the order, the plurality of rows follow each other in a direction angled relative to the entropy coding paths of the entropy slices.

3. The decoder according to claim 1 , wherein the entropy decoder is configured to store the second probability estimate after the second block is entropy-decoded, and use the stored second probability estimate for initializing the first probability estimate.

4. The decoder according to claim 1 , wherein the entropy decoder is configured to, in entropy decoding a current part of the current entropy slice, adapt the first probability estimate based on a third probability estimate obtained after decoding a portion of the previous entropy slice.

5. The decoder according to claim 4 , wherein the entropy decoder is configured to adapt the first probability estimate based on an average of the first probability estimate adapted using the previously-decoded part of the current entropy slice and the third probability estimate.

6. The decoder according to claim 4 , wherein the portion of the previous entropy slice corresponds to a portion of the previous row spatially-neighboring a portion of the current row corresponding to the current part of the current entropy slice.

7. The decoder according to claim 2 , wherein the entropy decoder is configured to steer the entropy decoding of immediately consecutive entropy slices in the order so that a distance of currently decoded blocks of rows corresponding to the immediately consecutive entropy slices measured in blocks along the entropy coding paths remains two blocks.

8. The decoder according to claim 1 , wherein the entropy slices are sub-divided into chunks, and the decoder further comprises a de-interleaver to de-interleave the chunks and the entropy decoder is configured to start the entropy decoding of the entropy slices in parallel along the entropy coding paths even before a reception of any of the entropy slices as a whole.

9. The decoder according to claim 1 , wherein the sample array is a current sample array of a sequence of sample arrays and the entropy decoder is configured to entropy-decode a current entropy slice based on the first probability estimate as adapted using the second probability estimate, the previously-decoded part of the current entropy slice, and a fourth probability estimate used in entropy decoding a previously decoded frame corresponding to one of the sample arrays other than the current sample array.

10. The decoder according to claim 1 , wherein the decoder is at least a portion of a programmable logic device, programmable gate array, microprocessor, computer or hardware apparatus.

11. A method for reconstructing a sample array from an entropy-encoded data stream coded with the video, the method comprising:

entropy decoding a plurality of entropy slices in the entropy-encoded data stream to reconstruct the sample array, each of the plurality of entropy slices including entropy-encoded data for a corresponding row of a plurality of rows of the sample array,

wherein, for a current entropy slice of the plurality of entropy slices, the entropy decoding is performed along an entropy coding path using a first probability estimate, and includes:

initializing, during a starting phase of the entropy decoding, the first probability estimate for the current entropy slice before decoding a first block of a current row corresponding to the current entropy slice based on a second probability estimate obtained after completing decoding of a second block of a previous row corresponding to a previous entropy slice of the plurality of entropy slices,

wherein the first block is the left-most block of the current row and the second block is a block spatially adjoining and to the right of the left-most block of the previous row,

wherein the current and previous rows are consecutive rows of the sample array, the previous row being spatially above the current row, and the entropy decoding of the previous entropy slice begins before the entropy decoding of the current entropy slice, and

adapting, during a continuation phase of the entropy decoding subsequent to the starting phase, the first probability estimate along the entropy coding path using a previously-decoded part of the current entropy slice.

12. The method according to claim 11 , wherein the entropy decoding of the plurality of entropy slices is performed in an order, wherein the order is chosen such that, along the order, the plurality of rows follow each other in a direction angled relative to the entropy coding paths of the entropy slices.

13. The method according to claim 11 , further comprising storing the second probability estimate after the second block is entropy-decoded; and using the stored second probability estimate for initializing the first probability estimate.

14. The method according to claim 11 , further comprising, in entropy decoding a current part of the current entropy slice, adapting the first probability estimate based on a third probability estimate obtained after decoding a portion of the previous entropy slice.

15. The method according to claim 14 , wherein the adapting the first probability estimate is based on an average of the first probability estimate adapted using the previously-decoded part of the current entropy slice and the third probability estimate.

16. The method according to claim 14 , wherein the portion of the previous entropy slice corresponds to a portion of the previous row spatially-neighboring a portion of the current row corresponding to the current part of the current entropy slice.

17. The method according to claim 12 , further comprising steering the entropy decoding of immediately consecutive entropy slices in the order so that a distance of currently decoded blocks of rows corresponding to the immediately consecutive entropy slices measured in blocks along the entropy coding paths remains two blocks.

18. The method according to claim 11 , wherein the entropy slices are sub-divided into chunks, and the method further comprises de-interleaving the chunks, and starting the entropy decoding of the entropy slices in parallel along the entropy coding paths even before a reception of any of the entropy slices as a whole.

19. The method according to claim 11 , wherein the sample array is a current sample array of a sequence of sample arrays and the method comprises entropy decoding a current entropy slice based on the first probability estimate as adapted using the second probability estimate, the previously-decoded part of the current entropy slice, and a fourth probability estimate used in entropy decoding a previously decoded frame corresponding to one of the sample arrays other than the current sample array.

20. A method for encoding a sample array into an entropy-encoded data stream coded with a video, the method comprising:

entropy encoding a plurality of entropy slices into the entropy-encoded data stream, each of the plurality of entropy slices including entropy-encoded data for a corresponding row of a plurality of rows of the sample array

wherein, for a current entropy slice of the plurality of entropy slices, the entropy encoding is performed along an entropy coding path using a first probability estimate by:

initializing, during a starting phase of the entropy encoding, the first probability estimate for the current entropy slice before encoding a first block of a current row corresponding to the current entropy slice based on a second probability estimate obtained after completing encoding of a second block of a previous row corresponding to a previous entropy slice of the plurality of entropy slices,

wherein the first block is the left-most block of the current row and the second block is a block spatially adjoining and to the right of the left-most block of the previous row,

wherein the current and previous rows are consecutive rows of the sample array, the previous row being spatially above the current row, and the entropy encoding of the previous entropy slice begins before the entropy encoding of the current entropy slice, and

adapting, during a continuation phase of the entropy encoding subsequent to the starting phase, the first probability estimate along the entropy coding path using a previously-encoded part of the current entropy slice.

21. The method according to claim 20 , wherein the entropy encoding of the plurality of entropy slices is performed in an order, the entropy slice order is chosen such that, along the entropy slice order, the different portions follow each other in a direction angled relative to the entropy coding paths of the entropy slices.

22. The method according to claim 20 , further comprising storing the second probability estimate after the second block is entropy-encoded, wherein the stored second probability estimate is used for initializing the first probability estimate.

23. The method according to claim 20 , further comprising, in entropy encoding a current part of the current entropy slice, adapting the first probability estimate based on a third probability estimate obtained after encoding a portion of the previous entropy slice.

24. The method according to claim 23 , wherein the adapting the first probability estimate is based on an average of the first probability estimate adapted using the previously-encoded part of the current entropy slice and the third probability estimate.

25. The method according to claim 23 , wherein the portion of the previous entropy slice corresponds to a portion of the previous row spatially-neighboring a portion of the current row corresponding to the current part of the current entropy slice.

26. The method according to claim 21 , further comprising steering the entropy encoding of immediately consecutive entropy slices in the order so that a distance of currently encoded blocks of rows corresponding to the immediately consecutive entropy slices measured in blocks along the entropy coding paths remains two blocks.

27. The method according to claim 20 , wherein the entropy slices are sub-divided into chunks, and the method further comprises de-interleaving the chunks, and starting the entropy encoding of the entropy slices in parallel along the entropy coding paths even before a reception of any of the entropy slices as a whole.

28. The method according to claim 20 , wherein the sample array is a current sample array of a sequence of sample arrays and the method comprises entropy encoding a current entropy slice based on the first probability estimate as adapted using the second probability estimate, the previously-encoded part of the current entropy slice, and a fourth probability estimate used in entropy encoding a previously encoded frame corresponding to one of the sample arrays other than the current sample array.

29. A non-transitory computer-readable medium for storing data associated with a video, comprising:

a data stream stored in the non-transitory computer-readable medium, the data stream comprising entropy-encoded information associated with a sample array of a video, the entropy-encoded information including a plurality of entropy slices, each of the plurality of entropy slices including entropy-encoded data for a corresponding row of a plurality of rows of the sample array

wherein, a current entropy slice of the plurality of entropy slices is entropy encoded along an entropy coding path using a first probability estimate by:

initializing, during a starting phase of entropy encoding, the first probability estimate for the current entropy slice before encoding a first block of a current row corresponding to the current entropy slice based on a second probability estimate obtained after completing encoding of a second block of a previous row corresponding to a previous entropy slice of the plurality of entropy slices,

wherein the first block is the left-most block of the current row and the second block is a block spatially adjoining and to the right of the left-most block of the previous row,

wherein the current and previous rows are consecutive rows of the sample array, the previous row being spatially above the current row, and the entropy encoding of the previous entropy slice begins before the entropy encoding of the current entropy slice, and

adapting, during a continuation phase of entropy encoding subsequent to the starting phase, the first probability estimate along the entropy coding path using a previously-encoded part of the current entropy slice.

30. The non-transitory computer-readable medium 29 , wherein the operations further comprise storing the second probability estimate after the second block is entropy-encoded, wherein the stored second probability estimate is used for initializing the first probability estimate.

Assignments (3)
CHANGE OF NAME Recorded Nov 26, 2024
From: GE VIDEO COMPRESSION, LLC
To: DOLBY VIDEO COMPRESSION, LLC
Reel/Frame 069450/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2019
From: GEORGE, VALERI; HENKEL, ANASTASIA; KIRCHHOFFER, HEINER; MARPE, DETLEV; SCHIERL, THOMAS
To: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
Reel/Frame 050458/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2019
From: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
To: GE VIDEO COMPRESSION, LLC
Reel/Frame 050541/0699 →
Continuity (8)
Continuation 16109874 · Aug 23, 2018
Continuation 15824196 · Nov 28, 2017
Continuation 15639312 · Jun 30, 2017
Continuation 15414356 · Jan 24, 2017
Continuation 14141374 · Dec 26, 2013
Continuation PCTEP2012063929 · Jul 16, 2012
Provisional Application 61508477 · Jul 15, 2011
Related Publication 20200021830A1 · Jan 16, 2020