IP Library Granted Patent US 9,596,469
Granted Patent B2
US 9,596,469 · App. 14/141,374 · Granted Mar 14, 2017

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/00951H04N19/13H04N19/436H04N19/503H04N19/91H03M7/3071H03M7/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 9,596,469
App. No.
14/141,374
Granted
Mar 14, 2017
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 (43)

1. A decoder for reconstructing a sample array from an entropy encoded data stream, configured to

entropy decode a plurality of entropy slices within the entropy encoded data stream so as to reconstruct different portions of the sample array associated with the entropy slices, respectively, by

performing, for each entropy slice, entropy decoding along a respective entropy coding path using respective probability estimations,

adapting the respective probability estimations along the respective entropy coding path using a previously decoded part of the respective entropy slice,

entropy decoding the plurality of entropy slices sequentially using an entropy slice order, and

performing, in entropy decoding a predetermined entropy slice, entropy decoding a current part of the predetermined entropy slice based on the respective probability estimations of the predetermined entropy slice as adapted using the previously decoded part of the predetermined entropy slice, and probability estimations as used in the entropy decoding of a spatially neighboring, in the entropy slice order, preceding entropy slice at a neighboring part of the spatially neighboring preceding entropy slice,

wherein each entropy slice comprises entropy encoded data for a corresponding portion of the sample array, the different portions forming rows of blocks of the sample array with the blocks being regularly arranged in rows and columns so that portions corresponding to the entropy slices comprise a same number of blocks, and the entropy coding path points in parallel along the rows of the blocks, wherein the decoder is configured to initialize, for each respective entropy slice, the probability estimations before decoding a first block of a portion corresponding to the respective entropy slice along the respective coding path with probability estimations manifesting themselves after having entropy decoded a second block of the portion corresponding to, in the entropy slice order, the preceding entropy slice along the respective coding path.

2. The decoder according to claim 1 , wherein 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, which, in turn, extend substantially in parallel to each other.

3. The decoder according to claim 1 , wherein the decoder is configured to store the probability estimations manifesting themselves after having entropy decoded the second block of the portion corresponding to, in the entropy slice order, the preceding entropy slice along the respective coding path, and using the stored probability estimations for the initialization before decoding the first block of the portion corresponding to the respective entropy slice along the respective coding path.

4. The decoder according to claim 1 , wherein the decoder is further configured to perform, for each entropy slice, the entropy decoding along the respective entropy coding path and the adaptation of the respective probability estimations along the respective entropy coding path such that, after the current part of the predetermined entropy slice has been entropy decoded based on the respective probability estimations of the predetermined entropy slice, the respective probability estimations of the predetermined entropy slice are adapted depending on the current part of the predetermined entropy slice, and the probability estimations as manifesting themselves in the entropy decoding of the neighboring part of the spatially neighboring preceding entropy slice.

5. The decoder according to claim 4 , wherein the decoder is configured such that the adaptation of the respective probability estimations of the predetermined entropy slice, after the current part of the predetermined entropy slice has been entropy decoded based on the respective probability estimations of the predetermined entropy slice, is performed by a first adaptation depending on the current part of the predetermined entropy slice and an averaging of a result of the first adaptation with the probability estimations as used in the entropy decoding of the neighboring part of the spatially neighboring preceding entropy slice.

6. The decoder according to claim 1 , wherein the decoder is configured to steer the entropy decoding of immediately consecutive entropy slices in the entropy slice order so that a distance of currently decoded blocks of portions corresponding to the immediately consecutive entropy slices measured in blocks along the encoding paths is prevented from becoming lower than two blocks.

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

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

9. The decoder according to claim 1 , wherein the entropy slices are subdivided into chunks and the decoder is configured to

check whether a current chunk corresponds to a first sub-portion of the portion of the predetermined entropy slice along the entropy coding path, and

if so, entropy decode the current chunk under adapting the respective probability estimations and take a state of the respective probability estimations as manifesting themselves at an end of entropy decoding the current chunk, into account when entropy decoding another chunk which corresponds to a second sub-portion of the portion of the predetermined entropy slice along the entropy coding path, and

if not, entropy decode the current chunk using probability estimations which depend on probability estimations manifesting themselves at an end of entropy decoding a chunk which corresponds to a sub-portion of the portion of the predetermined entropy slice preceding the sub-portion corresponding to the current chunk, along the entropy coding path.

10. The decoder according to claim 1 , wherein the sample array is a current sample array of a sequence of sample arrays and the decoding is configured to, in entropy decoding a predetermined entropy slice, entropy decode the current part of the predetermined entropy slice based on the respective probability estimations of the predetermined entropy slice as adapted using the previously decoded part of the predetermined entropy slice, probability estimations as used in the entropy decoding of a spatially neighboring, in the entropy slice order preceding entropy slice at a neighboring part of the spatially neighboring preceding entropy slice, and probability estimations used in decoding a previously decoded frame of the entropy encoded data stream relating to another sample array than the current sample array.

11. An encoder for encoding a sample array into an entropy encoded data stream, configured to:

entropy encode a plurality of entropy slices into the entropy encoded data stream each entropy slice being associated with a different portion of the sample array, respectively, by

performing, for each entropy slice, entropy encoding along a respective entropy coding path using respective probability estimations,

adapting the respective probability estimations along the respective entropy coding path using a previously encoded part of the respective entropy slice,

entropy encoding the plurality of entropy slices sequentially using an entropy slice order, and

performing, in entropy encoding a predetermined entropy slice, entropy encoding a current part of the predetermined entropy slice based on the respective probability estimations of the predetermined entropy slice as adapted using the previously encoded part of the predetermined entropy slice, and probability estimations as used in the entropy encoding of a spatially neighboring, in the entropy slice order preceding entropy slice at a neighboring part of the spatially neighboring preceding entropy slice,

wherein each entropy slice comprises entropy encoded data for a corresponding portion of the sample array, the different portions forming rows of blocks of the sample array with the blocks being regularly arranged in rows and columns so that portions corresponding to the entropy slices comprise a same number of blocks, and the entropy coding path points in parallel along the rows of the blocks, wherein the encoder is configured to initialize, for each respective entropy slice, the probability estimations before encoding a first block of a portion corresponding to the respective entropy slice along the respective coding path with probability estimations manifesting themselves after having entropy encoded a second block of the portion corresponding to, in the entropy slice order, the preceding entropy slice along the respective coding path.

12. A method for reconstructing a sample array from an entropy encoded data stream, comprising

entropy decoding a plurality of entropy slices within the entropy encoded data stream so as to reconstruct different portions of the sample array associated with the entropy slices, respectively, by

performing, for each entropy slice, entropy decoding along a respective entropy coding path using respective probability estimations,

adapting the respective probability estimations along the respective entropy coding path using a previously decoded part of the respective entropy slice,

entropy decoding the plurality of entropy slices sequentially using an entropy slice order, and

performing, in entropy decoding a predetermined entropy slice, entropy decoding a current part of the predetermined entropy slice based on the respective probability estimations of the predetermined entropy slice as adapted using the previously decoded part of the predetermined entropy slice, and probability estimations as used in the entropy decoding of a spatially neighboring, in the entropy slice order, preceding entropy slice at a neighboring part of the spatially neighboring preceding entropy slice,

wherein each entropy slice comprises entropy encoded data for a corresponding portion of the sample array, the different portions forming rows of blocks of the sample array with the blocks being regularly arranged in rows and columns so that portions corresponding to the entropy slices comprise a same number of blocks, and the entropy coding path points in parallel along the rows of the blocks,

the entropy decoding further comprising: initializing, for each respective entropy slice, the probability estimations before decoding a first block of a portion corresponding to the respective entropy slice along the respective coding path with probability estimations manifesting themselves after having entropy decoded a second block of the portion corresponding to, in the entropy slice order, the preceding entropy slice along the respective coding path.

13. A method for encoding a sample array into an entropy encoded data stream, comprising

entropy encoding a plurality of entropy slices into the entropy encoded data stream each entropy slice being associated with a different portion of the sample array, respectively, by

performing, for each entropy slice, entropy encoding along a respective entropy coding path using respective probability estimations,

adapting the respective probability estimations along the respective entropy coding path using a previously encoded part of the respective entropy slice,

entropy encoding the plurality of entropy slices sequentially using an entropy slice order, and

performing, in entropy encoding a predetermined entropy slice, entropy encoding a current part of the predetermined entropy slice based on the respective probability estimations of the predetermined entropy slice as adapted using the previously encoded part of the predetermined entropy slice, and probability estimations as used in the entropy encoding of a spatially neighboring, in the entropy slice order, preceding entropy slice at a neighboring part of the spatially neighboring preceding entropy slice,

wherein each entropy slice comprises entropy encoded data for a corresponding portion of the sample array, the different portions forming rows of blocks of the sample array with the blocks being regularly arranged in rows and columns so that portions corresponding to the entropy slices comprise a same number of blocks, and the entropy coding path points in parallel along the rows of the blocks,

the entropy encoding further comprising: initializing, for each respective entropy slice, the probability estimations before encoding a first block of the portion corresponding to the respective entropy slice along the respective coding path with probability estimations manifesting themselves after having entropy encoded a second block of the portion corresponding to, in the entropy slice order, the preceding entropy slice along the respective coding path.

14. A non-transitory computer-readable medium comprising a program code configured to perform, when running on a computer, a method according to claim 12 .

Assignments (4)
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 Jan 29, 2014
From: GEORGE, VALERI; HENKEL, ANASTASIA; KIRCHHOFFER, HEINER; MARPE, DETLEV; SCHIERL, THOMAS
To: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.
Reel/Frame 032084/0723 →
Continuity (3)
Continuation PCTEP2012063929 · Jul 16, 2012
Provisional Application 61508477 · Jul 15, 2011
Related Publication 20140105293A1 · Apr 17, 2014