IP Library › Granted Patent US 10,893,280
Granted Patent B2
US 10,893,280 · App. 16/659,666 · Granted Jan 12, 2021

Refined entropy coding for level maps

Inventors: Joseph Young (Mountain View, CA); Dake He (Cupertino, CA)
Assignee: GOOGLE LLC
H04N19/18H04N19/124H04N19/129H04N19/13H04N19/147H04N19/159H04N19/176H04N19/184H04N19/45H04N19/91H04N19/93H04N19/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,893,280
App. No.
16/659,666
Granted
Jan 12, 2021
Kind
B2
Abstract

An apparatus includes a memory and a processor. The processor is configured to execute instructions stored in the memory to obtain a transform type for decoding a transform block for the current block; select, based on the transform type, a template for coding a value of a non-zero map; select, based on the template, a context for entropy decoding the value of the non-zero map; and decode the value of the non-zero map based on the context. The non-zero map indicates which coefficients of the transform block have non-zero values. A method includes obtaining a transform class for coding a transform block for the current block, wherein the transform class corresponding to a transform type and a direction; selecting, based on the transform class, a coding context for coding a value of a non-zero map; and coding the value of the non-zero map based on the coding context.

Claims (75)

1. An apparatus for decoding a current block, comprising:

a processor configured to: obtain a transform type for decoding a transform block for the current block;

select, based on the transform type, a template for selecting context for coding a value of a non-zero map, wherein:

the non-zero map indicates which coefficients of the transform block have non-zero values; and

the template identifies relative neighboring locations of the value that are used for determining the context;

select, based on the template, the context for entropy decoding the value of the non-zero map; and

decode, from a compressed bitstream, the value of the non-zero map based on the context.

2. The apparatus of claim 1 , wherein;

the transform type is a one-dimensional vertical transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x+1, y), (x+2, y), (x+3, y), (x+4, y), (x, y+1), (x+1, y+1), and (x+1, y+2) of the non-zero map.

3. The apparatus of claim 1 , wherein: the transform type is a one-dimensional horizontal transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x+1, y), (x, y+1), (x+1, y+1), (x, y+2), (x+1, y+2), (x, y+3), and (x, y+4) of the non-zero map.

4. The apparatus of claim 1 , wherein:

the transform type is a two-dimensional transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x+1, y), (x+2, y), (x, y+1), (x+1, y+1), (x+2, y+1), (x, y+2), and (x+1, y+2) of the non-zero map.

5. The apparatus of claim 1 , wherein:

the transform type is a one-dimensional transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x+1, y), (x+2, y), (x+3, y), (x+4, y), (x+1, y+1), (x+1, y+1), and (x+1, y+2) of the non-zero map.

6. The apparatus of claim 1 , wherein:

the transform type is a one-dimensional transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x, y+l), (x+l, y+l), (x, y+2), (x+l, y+2), (x, y+3), (x+1, y+3), and (x, y+4) of the non-zero map.

7. The apparatus of claim 1 , wherein:

the transform type is a two-dimensional transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x+1, y), (x+2, y), (x+3, y), (x, y+1), (x+1, y+1), (x, y+2), and (x, y+3) of the non-zero map.

8. The apparatus of claim 1 , wherein the template consists of 7 positions.

9. The apparatus of claim 1 , wherein the template consists of 5 positions.

10. A method for coding a current block, comprising:

converting a residual block of the current block to a frequency domain using a transform to obtain a transform block;

obtaining a transform class of the transform, wherein the transform class corresponds to a transform type and a direction;

selecting, based on the transform class, a coding context for coding a value of a non-zero map, wherein:

the non-zero map indicates which coefficients of the transform block have non-zero values,

the transform class partitions the non-zero map into regions, and

the coding context is selected based on a region of the value; and coding the value of the non-zero map based on the coding context.

11. The method of claim 10 , wherein:

the transform class is a vertical transform class (TX_CLASS_VERT), and each region of the regions comprising at least one row of the non-zero map.

12. The method of claim 10 , wherein;

the transform class is a horizontal transform class (TX_CLASS_HORIZ), and each region of the regions comprising at least one column of the non-zero map.

13. The method of claim 10 , wherein:

the transform class is a 2-dimensional transform class (TX_CLASS_2D), and each region of the regions comprising at least one anti-diagonal line of the non-zero map.

14. An apparatus for decoding a current block, comprising:

a memory; and

a processor, the processor configured to execute instructions stored in the memory to:

obtain a transform class for decoding a transform block for the current block, the transform class corresponding to a transform type and a direction;

select, based on the transform type, a template for coding a value of a non-zero map, the non-zero map indicating which coefficients of the transform block have non-zero values;

obtain, using the template, a context value, wherein the context value is obtained by combining values of the non-zero map corresponding to positions of the template;

obtain, using the transform class, a region of the non-zero map, wherein the region includes the value of the non-zero map;

obtain a coding context for coding the value of the non-zero map using the context value and the region; and

decode, from a compressed bitstream, the value of the non-zero map based on the coding context.

15. The apparatus of claim 14 , wherein:

the transform class is a vertical transform class (TX_CLASS_VERT); and

the region is one of a first region consisting of a top most row of the non-zero map, a second region consisting of a second top-most row of the non-zero map, or a third region consisting of remaining rows of the non-zero map.

16. The apparatus of claim 14 , wherein;

the transform class is a horizontal transform class (TX_CLASS_HORIZ); and

the region is one of a first region consisting of a left most column of the non-zero map, a second region consisting of a second leftmost column of the non-zero map, or a third region consisting of remaining columns of the non-zero map.

17. The apparatus of claim 14 , wherein:

the transform class is a 2-dimensional transform class (TX_CLASS_2D); and

the region is one of a first region consisting of a first anti-diagonal line of the non-zero map, a second region consisting of a second anti-diagonal line of the non-zero map, or a third region consisting of remaining anti-diagonal lines of the non-zero map.

18. The apparatus of claim 14 , wherein:

the transform type is a one-dimensional vertical transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x+1, y), (x+2, y), (x+3, y), (x+4, y), (x, y+1), (x+1, y+1), and (x+1, y+2) of the non-zero map.

19. The apparatus of claim 14 , wherein:

the transform type is a one-dimensional horizontal transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x+1, y), (x, y+1), (x+1, y+1), (x, y+2), (x+1, y+2), (x, y+3), and (x, y+4) of the non-zero map.

20. The apparatus of claim 14 , wherein:

the transform type is a two-dimensional transform type;

the value of the non-zero map is at a position (x, y) of the non-zero map; and

the template includes positions (x+1, y), (x+2, y), (x, y+1), (x+1, y+1), (x+2, y+1), (x, y+2), and (x+1, y+2) of the non-zero map.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2019
From: YOUNG, JOSEPH; HE, DAKE
To: GOOGLE LLC
Reel/Frame 050785/0342 →
Continuity (3)
Continuation 15798495 · Oct 31, 2017
Provisional Application 62575716 · Oct 23, 2017
Related Publication 20200053367A1 · Feb 13, 2020
Cited By (1)
US 12,389,036