IP Library Granted Patent US 9,479,780
Granted Patent B2
US 9,479,780 · App. 13/678,183 · Granted Oct 25, 2016

Simplification of significance map coding

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,479,780
App. No.
13/678,183
Granted
Oct 25, 2016
Kind
B2
Abstract

In one embodiment, a method for encoding video data is provided that includes receiving an array of transform coefficients corresponding to a luma component or a chroma component of the video data. The method further includes encoding a significance map for the array, where the encoding includes selecting, using a shared context derivation process that applies to both the luma component and the chroma component, context models for encoding significance values in the significance map.

Claims (44)

1. A method for encoding video data comprising:

receiving, by a computing device, an array of transform coefficients corresponding to a luma component or a chroma component of the video data;

selecting, by the computing device, using a shared L1 context derivation process that applies to both the luma component and the chroma component, L1 context models wherein the L1 context models are selected from a shared set of L1 context models that apply to both the luma component and the chroma component and the selecting includes, for each sub-block in the array:

determining a significance value of a right neighbor sub-block of the sub-block and a significance value of a bottom neighbor sub-block of the sub-block, and

selecting one of a first L1 context model or a second L1 context model for encoding the significance value of the sub-block based only on the significance value of the right neighbor sub-block and the significance value of the bottom neighbor sub-block of the sub-block, wherein the first L1 context model is selected if neither the significance value of the right neighbor sub-block nor the significance value of the bottom neighbor sub-block is equal to one and the second L1 context model is selected if the significance value of the right neighbor sub-block or the significance value of the bottom neighbor sub-block is equal to one;

encoding, by the computing device, an L1 significance map that includes L1 significance values for sub-blocks in the array using the context models;

selecting, by the computing device, using a shared L0 context derivation process that applies to both the luma component and the chroma component, L0 context models wherein the L0 context models are selected from a shared set of L0 context models that apply to both the luma component and the chroma component and the selecting includes, for each sub-block in the array:

partitioning the array into a first region and a second region using a shared partitioning process, wherein the first region comprises a DC coefficient of the array and the second region comprises transform coefficients in the array other than the DC coefficient,

selecting, for each sub-block having a non-zero significance value, when the sub-block is in the first region, a first L0 context model for encoding the significance value of the transform coefficients of the sub-block,

selecting, for each sub-block having a non-zero significance value, when the sub-block is in the second region, one of a second L0 context model, a third L0 context model, a fourth L0 context model or a fifth L0 context model for encoding the significance value of a transform coefficient of the sub-block having a non-zero significance value based on significance values of four neighbor transform coefficients, wherein the second L0 context model is selected if there are no non-zero significance values among the four neighbor transform coefficients, the third L0 context model is selected if there is one non-zero significance value among the four neighbor transform coefficients, the fourth L0 context model is selected if there are two non-zero significance values among the four neighbor transform coefficients, and the fifth L0 context model is selected if there are more than two non-zero significance value among the four neighbor transform coefficients; and

encoding, by the computing device, an L0 significance map that includes L0 significance values for sub-blocks in the array using the L0 context models.

2. A method for decoding video data comprising:

receiving, by a computing device, a bitstream of compressed data, the compressed data including an array of transform coefficients that was previously encoded, the array corresponding to a luma component or a chroma component of the video data;

selecting, by the computing device, using a shared L1 context derivation process that applies to both the luma component and the chroma component, L1 context models wherein the L1 context models are selected from a shared set of L1 context models that apply to both the luma component and the chroma component and the selecting includes, for each sub-block in the array:

determining a significance value of a right neighbor sub-block of the sub-block and a significance value of a bottom neighbor sub-block of the sub-block, and

selecting one of a first L1 context model or a second L1 context model for decoding the significance value of the sub-block based only on the significance value of the right neighbor sub-block and the significance value of the bottom neighbor sub-block of the sub-block, wherein the first L1 context model is selected if neither the significance value of the right neighbor sub-block nor the significance value of the bottom neighbor sub-block is equal to one and the second L1 context model is selected if the significance value of the right neighbor sub-block or the significance value of the bottom neighbor sub-block is equal to one;

decoding, by the computing device, an L1 significance map that includes L1 significance values for sub-blocks in the array using the context models;

selecting, by the computing device, using a shared L0 context derivation process that applies to both the luma component and the chroma component, L0 context models wherein the L0 context models are selected from a shared set of L0 context models that apply to both the luma component and the chroma component and the selecting includes, for each sub-block in the array:

partitioning the array into a first region and a second region using a shared partitioning process, wherein the first region comprises a DC coefficient of the array and the second region comprises transform coefficients in the array other than the DC coefficient,

selecting, for each sub-block having a non-zero significance value, when the sub-block is in the first region, a first L0 context model for decoding the significance value of the transform coefficients of the sub-block,

selecting, for each sub-block having a non-zero significance value, when the sub-block is in the second region, one of a second L0 context model, a third L0 context model, a fourth L0 context model or a fifth L0 context model for decoding the significance value of a transform coefficient of the sub-block having a non-zero significance value based on significance values of four neighbor transform coefficients, wherein the second L0 context model is selected if there are no non-zero significance values among the four neighbor transform coefficients, the third L0 context model is selected if there is one non-zero significance value among the four neighbor transform coefficients, the fourth L0 context model is selected if there are two non-zero significance values among the four neighbor transform coefficients, and the fifth L0 context model is selected if there are more than two non-zero significance value among the four neighbor transform coefficients; and

decoding, by the computing device, an L0 significance map that includes L0 significance values for sub-blocks in the array using the L0 context models.

3. A non-transitory computer-readable medium including program code executable by a processor for encoding video data, wherein the program code, when executed by the processor, causes the processor to perform operations, the operations comprising:

receiving an array of transform coefficients corresponding to a luma component or a chroma component of the video data;

selecting, using a shared L1 context derivation process that applies to both the luma component and the chroma component, L1 context models wherein the L1 context models are selected from a shared set of L1 context models that apply to both the luma component and the chroma component and the selecting includes, for each sub-block in the array:

determining a significance value of a right neighbor sub-block of the sub-block and a significance value of a bottom neighbor sub-block of the sub-block, and

selecting one of a first L1 context model or a second L1 context model for encoding the significance value of the sub-block based only on the significance value of the right neighbor sub-block and the significance value of the bottom neighbor sub-block of the sub-block, wherein the first L1 context model is selected if neither the significance value of the right neighbor sub-block nor the significance value of the bottom neighbor sub-block is equal to one and the second L1 context model is selected if the significance value of the right neighbor sub-block or the significance value of the bottom neighbor sub-block is equal to one;

encoding an L1 significance map that includes L1 significance values for sub-blocks in the array using the context models;

selecting using a shared L0 context derivation process that applies to both the luma component and the chroma component, L0 context models wherein the L0 context models are selected from a shared set of L0 context models that apply to both the luma component and the chroma component and the selecting includes, for each sub-block in the array:

partitioning the array into a first region and a second region using a shared partitioning process, wherein the first region comprises a DC coefficient of the array and the second region comprises transform coefficients in the array other than the DC coefficient,

selecting, for each sub-block having a non-zero significance value, when the sub-block is in the first region, a first L0 context model for encoding the significance value of the transform coefficients of the sub-block,

selecting, for each sub-block having a non-zero significance value, when the sub-block is in the second region, one of a second L0 context model, a third L0 context model, a fourth L0 context model or a fifth L0 context model for encoding the significance value of a transform coefficient of the sub-block having a non-zero significance value based on significance values of four neighbor transform coefficients, wherein the second L0 context model is selected if there are no non-zero significance values among the four neighbor transform coefficients, the third L0 context model is selected if there is one non-zero significance value among the four neighbor transform coefficients, the fourth L0 context model is selected if there are two non-zero significance values among the four neighbor transform coefficients, and the fifth L0 context model is selected if there are more than two non-zero significance value among the four neighbor transform coefficients; and

encoding an L0 significance map that includes L0 significance values for sub-blocks in the array using the L0 context models.

4. A non-transitory computer-readable medium have stored thereon program code executable by a processor for decoding video data, the program code comprising:

receiving a bitstream of compressed data, the compressed data including an array of transform coefficients that was previously encoded, the array corresponding to a luma component or a chroma component of the video data;

selecting, using a shared L1 context derivation process that applies to both the luma component and the chroma component, L1 context models wherein the L1 context models are selected from a shared set of L1 context models that apply to both the luma component and the chroma component and the selecting includes, for each sub-block in the array:

determining a significance value of a right neighbor sub-block of the sub-block and a significance value of a bottom neighbor sub-block of the sub-block, and

selecting one of a first L1 context model or a second L1 context model for decoding the significance value of the sub-block based only on the significance value of the right neighbor sub-block and the significance value of the bottom neighbor sub-block of the sub-block, wherein the first L1 context model is selected if neither the significance value of the right neighbor sub-block nor the significance value of the bottom neighbor sub-block is equal to one and the second L1 context model is selected if the significance value of the right neighbor sub-block or the significance value of the bottom neighbor sub-block is equal to one;

decoding an L1 significance map that includes L1 significance values for sub-blocks in the array using the context models;

selecting using a shared L0 context derivation process that applies to both the luma component and the chroma component, L0 context models wherein the L0 context models are selected from a shared set of L0 context models that apply to both the luma component and the chroma component and the selecting includes, for each sub-block in the array:

partitioning the array into a first region and a second region using a shared partitioning process, wherein the first region comprises a DC coefficient of the array and the second region comprises transform coefficients in the array other than the DC coefficient,

selecting, for each sub-block having a non-zero significance value, when the sub-block is in the first region, a first L0 context model for decoding the significance value of the transform coefficients of the sub-block,

selecting, for each sub-block having a non-zero significance value, when the sub-block is in the second region, one of a second L0 context model, a third L0 context model, a fourth L0 context model or a fifth L0 context model for decoding the significance value of a transform coefficient of the sub-block having a non-zero significance value based on significance values of four neighbor transform coefficients, wherein the second L0 context model is selected if there are no non-zero significance values among the four neighbor transform coefficients, the third L0 context model is selected if there is one non-zero significance value among the four neighbor transform coefficients, the fourth L0 context model is selected if there are two non-zero significance values among the four neighbor transform coefficients, and the fifth L0 context model is selected if there are more than two non-zero significance value among the four neighbor transform coefficients; and

decoding an L0 significance map that includes L0 significance values for sub-blocks in the array using the L0 context models.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034274/0290 →
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 Nov 15, 2012
From: KUNG, WEI-YING; PANUSOPONE, KRIT; WANG, LIMIN
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 029306/0209 →