IP Library Granted Patent US 9,172,967
Granted Patent B2
US 9,172,967 · App. 13/253,385 · Granted Oct 27, 2015

Coding and decoding utilizing adaptive context model selection with zigzag scan

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,172,967
App. No.
13/253,385
Granted
Oct 27, 2015
Kind
B2
Abstract

There is a coding. The coding may include preparing video compression data based on source pictures utilizing a processor. The preparing may include processing a generated transform unit, including generating a significance map having a significance map array with y-x locations corresponding to the transform array. The generating may include scanning, utilizing a zigzag scanning pattern, a plurality of significance map elements in the significance map array. The generating may also include determining, utilizing the zigzag scanning pattern, a context model for coding a significance map element of the plurality of significance map elements based on a value associated with at least one coded neighbor significance map element of the significance map element in the significance map array. There is also a decoding including processing video compression data which is generated in the coding.

Claims (88)

1. A system for coding, the system comprising:

a processor configured to prepare video compression data based on source pictures, the preparing including:

partitioning the source pictures into coding units;

generating transform units, each transform unit being a transform array including transform coefficients assigned as entries to y-x locations of the transform array, based on residual measures associated with the coding units; and

for each generated transform unit, processing the generated transform unit by:

generating a significance map, having a significance map array with y-x locations corresponding to the y-x locations of the transform array of the generated transform unit;

when the transform array is above a defined size:

scanning, utilizing a zigzag scanning pattern, a plurality of significance map elements in the significance map array; and

determining a context model for coding a value associated with each of the plurality of significance map elements based on a respective value of at least one neighbor significance map element of the significance map element in the significance map array, the at least one neighbor significance map element located before a position of a current significance map element within a path defined by the zigzag scanning pattern; and

when the transform array is at or below the defined size:

determining the context model for coding the value associated with each of the plurality of significance map elements using a fixed criteria model for each position in the significance map array without reference to other significance map elements in the significance map array.

2. The system of claim 1 , wherein, when the transform array is above the defined size, the context model for coding the value associated with each significance map element having a y-x location of one of (0, 0), (0, 1) and (1, 0) in the significance map array is a unique context model.

3. The system of claim 1 , wherein, when the transform array is above the defined size, the context model for coding the value associated with each significance map element having a y-x location of (0, x) where x>1 in the significance map array is by the respective value of the significance map element having a y-x location in the significance map array of (0, x−1), (0,x−2), (1, x−2) and, if x is an even number, (1, x−1).

4. The system of claim 1 , wherein, when the transform array is above the defined size, the context model for coding the value associated with each significance map element having a y-x location of (y, 0) where y>1 in the significance map array is determined by the respective value of the significance map element having a y-x location in the significance map array of (y−1, 0), (y−2, 0), (y−2, 1) and, if y is an odd number, (y−1, 1).

5. The system of claim 1 , wherein the processing of the generated transform unit includes coding the value associated with each significance map element utilizing the determined context model.

6. The system of claim 1 , wherein residual measures associated with the coding units are generated based on a prediction process performed on prediction units based on the coding units.

7. The system of claim 1 , wherein each transform array has a size of one of 8×8, 16×16, 32×32, 64×64, 128×128 and 256×256; and wherein the processor is configured to determine the defined size to be a transform array of 8×8.

8. A method for coding, the method comprising preparing video compression data based on source pictures utilizing a processor, the preparing including:

partitioning the source pictures into coding units;

generating a plurality of transform units, each transform unit being a transform array including transform coefficients assigned as entries to y-x locations of the transform array, based on residual measures associated with the coding units; and

for each generated transform unit, processing the generated transform unit by:

generating a significance map, having a significance map array with y-x locations corresponding to the y-x locations of the transform array of the generated transform unit;

when the transform array is above a defined size:

scanning, utilizing a zigzag scanning pattern, a plurality of significance map elements in the significance map array; and

determining a context model for coding a value associated with each of the plurality of significance map elements based on a respective value of at least one neighbor significance map element of the significance map element in the significance map array, the at least one neighbor significance map element located before a position of a current significance map element within a path defined by the zigzag scanning pattern; and

when the transform array is at or below the defined size:

determining the context model for coding the value associated with each of the plurality of significance map elements using a fixed criteria model for each position in the significance map array without reference to other significance map elements in the significance map array.

9. The method of claim 8 , wherein, when the transform array is above the defined size:

the context model for coding the value associated with each significance map element having a y-x location of one of (0, 0), (0, 1) and (1, 0) in the significance map array is a unique context model;

the context model for coding the value associated with each significance map element having a y-x location of (0, x) where x>1 in the significance map array is determined by the respective value of the significance map element having a y-x location in the significance map array of (0, x−1), (0,x−2), (1, x−2) and, if x is an even number, (1, x−1); and

the context model for coding the value associated with each significance map element having a y-x location of (y, 0) where y>1 in the significance map array is determined by the respective value of the significance map element having a y-x location in the significance map array of (y−1, 0), (y−2, 0), (y−2, 1) and, if y is an odd number, (y−1, 1).

10. A non-transitory computer readable medium storing computer readable instructions that when executed by a computer system perform a method for coding, the method comprising:

preparing video compression data based on source pictures utilizing a processor, the preparing including:

partitioning the source pictures into coding units;

generating a plurality of transform units, each transform unit being a transform array including transform coefficients assigned as entries to y-x locations of the transform array, based on residual measures associated with the coding units; and

for each generated transform unit, processing the generated transform unit by:

generating a significance map, having a significance map array with y-x locations corresponding to the y-x locations of the transform array of the generated transform unit;

when the transform array is above a defined size:

scanning, utilizing a zigzag scanning pattern, a plurality of significance map elements in the significance map array; and

determining a context model for coding a value associated with each of the plurality of significance map elements based on a respective value of at least one neighbor significance map element of the significance map element in the significance map array, the at least one neighbor significance map element located before a position of a current significance map element within a path defined by the zigzag scanning pattern; and

when the transform array is at or below the defined size:

determining the context model for coding the value associated with each of the plurality of significance map elements using a fixed criteria model for each position in the significance map array without reference to other significance map elements in the significance map array.

11. The non-transitory computer readable medium of claim 10 , wherein, when the transform array is above the defined size:

the context model for coding the value associated with each significance map element having a y-x location of one of (0, 0), (0, 1) and (1, 0) in the significance map array is a unique context model;

the context model for coding the value associated with each significance map element having a y-x location of (0, x) where x>1 in the significance map array is determined by the respective value of the significance map element having a y-x location in the significance map array of (0, x−1), (0,x−2), (1, x−2) and, if x is an even number, (1, x−1); and

the context model for coding the value associated with each significance map element having a y-x location of (y, 0) where y>1 in the significance map array is determined by the respective value of the significance map element having a y-x location in the significance map array of (y−1, 0), (y−2, 0), (y−2, 1) and, if y is an odd number, (y−1, 1).

12. A system for decoding, the system comprising:

an interface configured to receive video compression data; and

a processor configured to process the received video compression data, wherein the received video compression data is based on processed transform units, based on source pictures, and the processed transform units are prepared by steps including

partitioning the source pictures into coding units;

generating a plurality of transform units, each transform unit being a transform array including transform coefficients assigned as entries to y-x locations of the transform array, based on residual measures associated with the coding units; and

for each generated transform unit, processing the generated transform unit by:

generating a significance map, having a significance map array with y-x locations corresponding to the y-x locations of the transform array of the generated transform unit;

when the transform array is above a defined size:

scanning, utilizing a zigzag scanning pattern, a plurality of significance map elements in the significance map array; and

determining a context model for coding a value associated with each of the plurality of significance map elements based on a respective value of at least one neighbor significance map element of the significance map element in the significance map array, the at least one neighbor significance map element located before a position of a current significance map element within a path defined by the zigzag scanning pattern; and

when the transform array is at or below the defined size:

determining the context model for coding the value associated with each of the plurality of significance map elements using a fixed criteria model for each position in the significance map array without reference to other significance map elements in the significance map array.

13. The system of claim 12 , wherein, when the transform array is above the defined size, the context model for coding the value associated with each significance map element having a y-x location of one of (0, 0), (0, 1) and (1, 0) in the significance map array is a unique context model.

14. The system of claim 12 , wherein, when the transform array is above the defined size, the context model for coding the value associated with each significance map element having a y-x location of (0, x) where x>1 in the significance map array is determined by the respective value of the significance map element having a y-x location in the significance map array of (0, x−1), (0,x−2), (1, x−2) and, if x is an even number, (1, x−1).

15. The system of claim 12 , wherein, when the transform array is above the defined size, the context model for coding the value associated with each significance map element having a y-x location of (y, 0) where y>1 in the significance map array is determined by the respective value of the significance map element having a y-x location in the significance map array of (y−1, 0), (y−2, 0), (y−2, 1) and, if y is an odd number, (y−1, 1).

16. The system of claim 12 , wherein the processing of the generated transform unit includes coding the value associated with each significance map element utilizing the determined context model.

17. The system of claim 12 , wherein residual measures associated with coding units are generated based on a prediction process performed on prediction units based on the coding units.

18. The system of claim 12 , wherein each transform array has a size of one of 8×8, 16×16, 32×32, 64×64, 128×128 and 256×256.

19. A method for decoding, the method comprising:

receiving video compression data; and

processing the received video compression data, utilizing a processor, wherein the received video compression data is based on processed transform units, based on source pictures, and the processed transform units are prepared by steps including:

partitioning the source pictures into coding units;

generating a plurality of transform units, each transform unit being a transform array including transform coefficients assigned as entries to y-x locations of the transform array, based on residual measures associated with the coding units; and

for each generated transform unit, processing the generated transform unit by:

generating a significance map, having a significance map array with y-x locations corresponding to the y-x locations of the transform array of the generated transform unit;

when the transform array is above a defined size:

scanning, utilizing a zigzag scanning pattern, a plurality of significance map elements in the significance map array; and

determining a context model for coding a value associated with each of the plurality of significance map elements based on a respective value of at least one neighbor significance map element of the significance map element in the significance map array, the at least one neighbor significance map element located before a position of a current significance map element within a path defined by the zigzag scanning pattern; and

when the transform array is at or below the defined size:

determining the context model for coding the value associated with each of the plurality of significance map elements using a fixed criteria model for each position in the significance map array without reference to other significance map elements in the significance map array.

20. A non-transitory computer readable medium storing computer readable instructions that when executed by a computer system perform a method for decoding, the method comprising:

receiving video compression data; and

processing the received video compression data, utilizing a processor, wherein the received video compression data is based on processed transform units, based on source pictures, and the processed transform units are prepared by steps including:

partitioning the source pictures into coding units;

generating a plurality of transform units, each transform unit being a transform array including transform coefficients assigned as entries to y-x locations of the transform array, based on residual measures associated with the coding units; and

for each generated transform unit, processing the generated transform unit by:

generating a significance map, having a significance map array with y-x locations corresponding to the y-x locations of the transform array of the generated transform unit;

when the transform array is above a defined defined size:

scanning, utilizing a zigzag scanning pattern, a plurality of significance map elements in the significance map array; and

determining a context model for coding a value associated with each of the plurality of significance map elements based on a respective value of at least one neighbor significance map element of the significance map element in the significance map array, the at least one neighbor significance map element located before a position of a current significance map element within a path defined by the zigzag scanning pattern; and

when the transform array is at or below the defined size:

determining the context model for coding the value associated with each of the plurality of significance map elements using a fixed criteria model for each position in the significance map array without reference to other significance map elements in the significance map array.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034280/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030764/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030866/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2011
From: LOU, JIAN; PANUSOPONE, KRIT; WANG, LIMIN
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 027140/0945 →