IP Library Granted Patent US 10,924,754
Granted Patent B2
US 10,924,754 · App. 16/877,617 · Granted Feb 16, 2021

Sample array coding for low-delay based on position information

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,924,754
App. No.
16/877,617
Granted
Feb 16, 2021
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 (45)

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 data stream to reconstruct different portions of the sample array of the video, each of the plurality of entropy slices comprising entropy-encoded data for a corresponding row of the sample array,

wherein, for entropy decoding a current entropy slice of the plurality of entropy slices, the entropy decoder is configured to:

decode a position difference value of the current entropy slice using Exponential-Golomb coding, wherein the position difference value indicates a difference between a starting position of a preceding entropy slice within the data stream and a starting position of the current entropy slice, the current entropy slice corresponding to a current row of the sample array and the preceding entropy slice corresponding to a previous row of the sample array, the current and previous rows being consecutive rows of the sample array, and

derive the starting position within the data stream of the current entropy slice based on a sum of the starting position of the preceding entropy slice and the position difference value, wherein entropy decoding of the preceding entropy slice precedes entropy decoding of the current entropy slice.

2. The decoder of claim 1 , wherein the entropy decoding of the preceding entropy slice immediately precedes the entropy decoding of the current entropy slice, such that no other entropy slice is entropy decoded between the entropy decoding of the current and preceding entropy slices.

3. The decoder of claim 1 , wherein the Exponential-Golomb coding provides a prefix bin string and a suffix bin string related to the position difference value, and the prefix bin string identifies one of a plurality of value ranges to which the position difference value belongs.

4. The decoder of claim 1 , wherein each row has a same number of blocks of the sample array.

5. The decoder of claim 1 , wherein the entropy decoder is configured to perform, for each entropy slice, entropy decoding along a respective entropy coding path leading in parallel along the rows of the blocks.

6. The decoder of claim 5 , wherein the entropy decoder is configured to entropy-decode the plurality of entropy slices in a slice subset order, the slice subset order is chosen such that, along the slice subset order, the different portions follow each other in a direction angled relative to the entropy coding paths of the entropy slices.

7. The decoder of claim 5 , 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.

8. The decoder of 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 an entropy slice using a first probability estimation based on a previously-decoded part of that entropy slice, and a second probability estimation obtained in entropy decoding a previously-decoded frame relating to one of the sample arrays other than the current sample array.

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

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

entropy decoding a plurality of entropy slices in the data stream to reconstruct different portions of the sample array of the video, each of the plurality of entropy slices comprising entropy-encoded data for a corresponding row of the sample array,

wherein, for entropy decoding a current entropy slice of the plurality of entropy slices, the entropy decoding includes:

decoding a position difference value of the current entropy slice using Exponential-Golomb coding, wherein the position difference value indicates a difference between a starting position of a preceding entropy slice within the data stream and a starting position of the current entropy slice, the current entropy slice corresponding to a current row of the sample array and the preceding entropy slice corresponding to a previous row of the sample array, the current and previous rows being consecutive rows of the sample array, and

deriving the starting position within the data stream of the current entropy slice based on a sum of the starting position of the preceding entropy slice and the position difference value, wherein entropy decoding of the preceding entropy slice precedes entropy decoding of the current entropy slice.

11. The method of claim 10 , wherein the entropy decoding of the preceding entropy slice immediately precedes the entropy decoding of the current entropy slice, such that no other entropy slice is entropy decoded between the entropy decoding of the current and preceding entropy slices.

12. The method of claim 10 , wherein the Exponential-Golomb coding provides a prefix bin string and a suffix bin string related to the position difference value, and the prefix bin string identifies one of a plurality of value ranges to which the position difference value belongs.

13. The method of claim 10 , wherein each row has a same number of blocks of the sample array.

14. The method of claim 10 , wherein the entropy-decoding of each of the plurality of entropy slices is performed along a respective entropy coding path leading in parallel along the rows of the blocks.

15. The method of claim 14 , 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.

16. The method of claim 14 , wherein the entropy-decoding of the plurality of entropy slices is performed in a slice subset order, the slice subset order is chosen such that, along the slice subset order, the different portions follow each other in a direction angled relative to the entropy coding paths of the entropy slices.

17. The method of claim 10 , wherein the sample array is a current sample array of a sequence of sample arrays and the entropy-decoding an entropy slice uses a first probability estimation based on a previously-decoded part of the entropy slice, and a second probability estimation obtained in entropy decoding a previously-decoded frame relating to one of the sample arrays other than the current sample array.

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

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

wherein the entropy encoding includes encoding into the data stream, for a current entropy slice of the plurality of entropy slices, using Exponential-Golomb coding, a position difference value related to a starting position within the data stream of the current entropy slice, the position difference value indicating a difference between a starting position within the data stream of a preceding entropy slice and the starting position of the current entropy slice, wherein

the current entropy slice corresponds to a current row of the sample array and the preceding entropy slice corresponds to a previous row of the sample array, the current and previous rows being consecutive rows of the sample array,

the starting position of the current entropy slice within the data stream is to be derived based on a sum of the starting position of the preceding entropy slice and the position difference value, and

entropy encoding of the preceding entropy slice precedes entropy encoding of the current entropy slice.

19. The method of claim 18 , wherein the entropy encoding of the preceding entropy slice immediately precedes the entropy encoding of the current entropy slice, such that no other entropy slice is entropy encoded between the entropy encoding of the current and preceding entropy slices.

20. The method of claim 18 , wherein the Exponential-Golomb coding provides a prefix bin string and a suffix bin string related to the position difference value, and the prefix bin string identifies one of a plurality of value ranges to which the position difference value belongs.

21. The method of claim 18 , wherein each row has a same number of blocks of the sample array.

22. The method of claim 18 , wherein the entropy encoding of each of the plurality of entropy slices is performed along a respective entropy coding path leading in parallel along the rows of the blocks.

23. The method of claim 22 , wherein the entropy slices are sub-divided into chunks, and the method further comprises interleaving the chunks into the data stream.

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

25. The method of claim 18 , wherein the sample array is a current sample array of a sequence of sample arrays and the entropy encoding an entropy slice uses a first probability estimation based on a previously-encoded part of the entropy slice, and a second probability estimation obtained in entropy encoding a previously-encoded frame relating to one of the sample arrays other than the current sample array.

26. 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 comprising entropy-encoded data for a corresponding row of the sample array,

wherein entropy encoding of the sample array includes encoding into the data stream, for a current entropy slice of the plurality of entropy slices, using Exponential-Golomb coding, a position difference value related to a starting position within the data stream of the current entropy slice, the position difference value indicating a difference between a starting position within the data stream of a preceding entropy slice and the starting position of the current entropy slice, wherein

the current entropy slice corresponds to a current row of the sample array and the preceding entropy slice corresponds to a previous row of the sample array, the current and previous rows being consecutive rows of the sample array,

the starting position of the current entropy slice within the data stream is to be derived based on a sum of the starting position of the preceding entropy slice and the position difference value, and

entropy encoding of the preceding entropy slice precedes entropy encoding of the current entropy slice.

27. The non-transitory computer-readable medium of claim 26 , wherein the Exponential-Golomb coding provides a prefix bin string and a suffix bin string related to the position difference value, and the prefix bin string identifies one of a plurality of value ranges to which the position difference value belongs.

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 May 19, 2020
From: GEORGE, VALERI; HENKEL, ANASTASIA; KIRCHHOFFER, HEINER; MARPE, DETLEV; SCHIERL, THOMAS
To: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V
Reel/Frame 052696/0354 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2020
From: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V
To: GE VIDEO COMPRESSION, LLC
Reel/Frame 052696/0623 →
Continuity (10)
Continuation 16840043 · Apr 3, 2020
Continuation 16578716 · Sep 23, 2019
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 20200280731A1 · Sep 3, 2020