IP Library › Granted Patent US 10,484,695
Granted Patent B2
US 10,484,695 · App. 15/798,495 · Granted Nov 19, 2019

Refined entropy coding for level maps

Inventors: Joseph Young (Mountain View, CA); Dake He (Sunnyvale, CA)
Assignee: GOOGLE LLC
H04N19/18H04N19/124H04N19/129H04N19/13H04N19/159H04N19/176H04N19/45H04N19/91H04N19/122
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,484,695
App. No.
15/798,495
Granted
Nov 19, 2019
Kind
B2
Abstract

Coding using level maps is disclosed. A method includes coding a scan position, in a forward scan direction, corresponding to an end-of-block and coding, in a backward scan direction, a non-zero map indicating positions of the transform block containing non-zero transform coefficients. The method also includes coding, in the backward scan direction, lower-range level maps, each lower-range level map having a respective map level up to a maximum map level, the lower-range level map indicating which absolute values of the non-zero transform coefficients are equal to the respective map level and which absolute values of the non-zero transform coefficients are greater than the respective map level. The method also includes coding a coefficient residual map, each residual coefficient of the coefficient residual map corresponding to a respective non-zero transform coefficient of the transform block having an absolute value exceeding the maximum map level.

Claims (40)

1. A method for coding a transform block using level maps, comprising:

coding a scan position, in a forward scan direction, corresponding to an end-of-block;

coding, in a backward scan direction, a non-zero map indicating positions of the transform block containing non-zero transform coefficients, wherein the coding the non-zero map starts at a position that is based on the scan position;

coding, in the backward scan direction, lower-range level maps, each lower-range level map having a respective map level up to a maximum map level, the lower-range level map indicating which absolute values of the non-zero transform coefficients are equal to the respective map level and which absolute values of the non-zero transform coefficients are greater than the respective map level, wherein the coding, in the backward scan direction, the lower-range level maps comprising:

selecting, based on a transform class used to generate the transform block, a template for determining a coding context for coding a value of the non-zero map, wherein the transform class is one of a vertical transform class, a horizontal transform class, or a two-dimensional transform class; and

coding a coefficient residual map, each residual coefficient of the coefficient residual map corresponding to a respective non-zero transform coefficient of the transform block having an absolute value exceeding the maximum map level.

2. The method of claim 1 , wherein the template comprises scan positions of previously coded non-zero neighboring values of the value of the non-zero map.

3. The method of claim 2 , wherein the template consists of 7 positions.

4. The method of claim 1 , wherein coding the scan position corresponding to the end-of-block comprises:

coding an index of a scan positions group that includes the scan position; and

coding an offset within the scan positions group, the offset corresponding to a position of the scan position within the scan positions group.

5. The method of claim 4 , wherein the scan positions group includes a power of 2 number of scan positions.

6. The method of claim 5 , wherein the scan positions group includes 16 scan positions.

7. The method of claim 4 , wherein coding the offset within the scan positions group comprises:

coding the offset using literal mode.

8. The method of claim 4 , wherein the offset comprises prefix bits and suffix bits, and wherein coding the offset within the scan positions group comprises:

context-coding the prefix bits; and

coding the suffix bits using literal mode.

9. The method of claim 1 , wherein encoding the non-zero map further comprises:

determining a coding context for a value of the non-zero map, the coding context based on previously coded non-zero neighboring values, in the non-zero map, of the value.

10. An apparatus for coding a transform block using level maps, the apparatus comprising:

a memory; and

a processor, wherein the memory includes instructions executable by the processor to:

code a scan position, in a first scan direction, corresponding to an end-of-block;

code, in a second scan direction that is different from the first scan direction, an up to whether a transform coefficient of the transform block is greater than a maximum map level of the level maps, wherein the coding starts at a position that is based on the scan position, wherein to code the up to whether the transform coefficient of the transform block is greater than the maximum map level of the level maps comprises to:

select, based on a transform class used to generate the transform block, a template for determining a coding context to code the up to whether the transform coefficient is greater than the maximum map level, wherein the transform class is one of a vertical transform class, a horizontal transform class, or a two-dimensional transform class; and

code a coefficient residual map, each residual coefficient of the coefficient residual map corresponding to a respective non-zero transform coefficient of the transform block having an absolute value exceeding the maximum map level.

11. The apparatus of claim 10 , wherein a same context is selected when the transform class is one of the vertical transform class or the horizontal transform class.

12. The apparatus of claim 10 , wherein to select, based on the transform class used to generate the transform block, the template for determining the coding context to code the up to whether the transform coefficient is greater than the maximum map level comprises to:

determine a context index by summing values corresponding to positions of the template, each value corresponding to a position of the template is determined by summing respective values of at least some of the level maps; and

upper-bound the context index by a predetermined number.

13. A method for decoding a transform block using level maps, comprising:

decoding a scan position, in a first scan direction, corresponding to an end-of-block;

decoding, in a second scan direction that is different from the first scan direction, an up to whether a transform coefficient of the transform block is greater than a maximum map level of the level maps, wherein the decoding starts at a position that is based on the scan position, the decoding the up to whether the transform coefficient of the transform block is greater than the maximum map level of the level maps comprising:

selecting a template based on a transform class used for the transform block, wherein the transform class is at least one of a vertical transform class, a horizontal transform class, or a two-dimensional transform class;

selecting, using the template, a context to code the up to whether the transform coefficient is greater than the maximum map level, wherein selecting the context comprises:

determining a context index by summing values corresponding to positions of the template, each value corresponding to a position of the template is determined by summing respective values of at least some of the level maps; and

upper-bounding the context index by a predetermined number; and

decoding a coefficient residual map, each residual coefficient of the coefficient residual map corresponding to a respective non-zero transform coefficient of the transform block having an absolute value exceeding the maximum map level.

14. The method of claim 13 , wherein a same context is selected when the transform class is one of the vertical transform class or the horizontal transform class.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2017
From: YOUNG, JOSEPH; HE, DAKE
To: GOOGLE LLC
Reel/Frame 044028/0945 →
Continuity (2)
Provisional Application 62575716 · Oct 23, 2017
Related Publication 20190124342A1 · Apr 25, 2019
Cited By (1)
US 12,389,036