Adaptive coefficient scanning for video coding
First Claim
1. A method of coding video data, the method comprising:
- for each of first and second video blocks of a plurality of video blocks, generating a prediction block for the respective video block based on a first prediction mode of a plurality of prediction modes and one or more neighboring video blocks, each of the plurality of prediction modes being associated with a respective coefficient scan order of a plurality of coefficient scan orders;
for each of third and fourth video blocks of the plurality of video blocks, generating a prediction block for the respective video block based on a second prediction mode of the plurality of prediction modes and one or more neighboring video blocks, the second prediction mode being different than the first prediction mode;
for each of the plurality of video blocks, generating a reconstructed video block for the respective video block based on the prediction block for the respective video block and a residual block for the respective video block;
for each of the plurality of video blocks, applying one or more transforms to the respective video block to transform between residual pixel values of the respective video block and residual transform coefficient values of the respective video block, for each of the plurality of video blocks, selecting a coefficient scan order for scanning the respective video block from the plurality of coefficient scan orders based on a prediction mode used to generate the prediction block for the respective video block, the prediction mode being one of the plurality of prediction modes;
for each of the first and third video blocks, scanning the residual transform coefficient values of the respective video block using the coefficient scan order selected for the respective video block;
for each of the first and second prediction modes, collecting coefficient statistics for one or more of the video blocks within the plurality of video blocks that are associated with the respective prediction mode;
for each of the first and second prediction modes, adjusting the coefficient scan order for the respective prediction mode in accordance with the collected coefficient statistics for the respective prediction mode to generate an adjusted coefficient scan order for the respective prediction mode;
for each of the second and fourth video blocks, scanning the residual transform coefficient values of the respective video block using the adjusted coefficient scan order that corresponds to the prediction mode of the respective video block; and
for each of the plurality of video blocks, entropy coding the residual transform coefficient values for the respective video block.
6 Assignments
0 Petitions
Accused Products
Abstract
This disclosure describes techniques for scanning coefficients of video blocks. In particular, the techniques of this disclosure adapt a scan order used to scan a two-dimensional block of coefficients into a one-dimensional coefficient vector based on statistics associated with one or more previously coded blocks. For example, statistics that indicate the likelihood that a given coefficient value in each position of a two-dimensional block is zero or non-zero may be collected for one or more previously coded blocks. At some point, an adjustment to the scan order can be made in order to better ensure that non-zero coefficients are grouped together near the front of the one-dimensional coefficient vector, which can improve the effectiveness of entropy coding. The collection of statistics and adjustment of scan order may be made separately for each possible prediction mode.
62 Citations
54 Claims
-
1. A method of coding video data, the method comprising:
-
for each of first and second video blocks of a plurality of video blocks, generating a prediction block for the respective video block based on a first prediction mode of a plurality of prediction modes and one or more neighboring video blocks, each of the plurality of prediction modes being associated with a respective coefficient scan order of a plurality of coefficient scan orders; for each of third and fourth video blocks of the plurality of video blocks, generating a prediction block for the respective video block based on a second prediction mode of the plurality of prediction modes and one or more neighboring video blocks, the second prediction mode being different than the first prediction mode; for each of the plurality of video blocks, generating a reconstructed video block for the respective video block based on the prediction block for the respective video block and a residual block for the respective video block; for each of the plurality of video blocks, applying one or more transforms to the respective video block to transform between residual pixel values of the respective video block and residual transform coefficient values of the respective video block, for each of the plurality of video blocks, selecting a coefficient scan order for scanning the respective video block from the plurality of coefficient scan orders based on a prediction mode used to generate the prediction block for the respective video block, the prediction mode being one of the plurality of prediction modes; for each of the first and third video blocks, scanning the residual transform coefficient values of the respective video block using the coefficient scan order selected for the respective video block; for each of the first and second prediction modes, collecting coefficient statistics for one or more of the video blocks within the plurality of video blocks that are associated with the respective prediction mode; for each of the first and second prediction modes, adjusting the coefficient scan order for the respective prediction mode in accordance with the collected coefficient statistics for the respective prediction mode to generate an adjusted coefficient scan order for the respective prediction mode; for each of the second and fourth video blocks, scanning the residual transform coefficient values of the respective video block using the adjusted coefficient scan order that corresponds to the prediction mode of the respective video block; and for each of the plurality of video blocks, entropy coding the residual transform coefficient values for the respective video block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A device that codes video data, the device comprising:
-
a processor configured to; for each of first and second video blocks of a plurality of video blocks, generate a prediction block for the respective video block based on a first prediction mode of a plurality of prediction modes and one or more neighboring video blocks, each of the plurality of prediction modes being associated with a respective coefficient scan order of a plurality of coefficient scan orders; for each of third and fourth video blocks of the plurality of video blocks, generate a prediction block for the respective video block based on a second prediction mode of the plurality of prediction modes and one or more neighboring video blocks, the second prediction mode being different than the first prediction mode; for each of the plurality of video blocks, generate a reconstructed video block for the respective video block based on the prediction block for the respective video block and a residual block for the respective video block; for each of the plurality of video blocks, apply one or more transforms to the respective video block to transform between residual pixel values of the respective video block and residual transform coefficient values of the respective video block, for each of the plurality of video blocks, select a coefficient scan order for scanning the respective video block from the plurality of coefficient scan orders based on a prediction mode used to generate the prediction block for the respective video block, the prediction mode being one of the plurality of prediction modes; for each of the first and third video blocks, scan the residual transform coefficient values of the respective video block using the coefficient scan order selected for the respective video block; for each of the first and second prediction modes, collect coefficient statistics for one or more of the video blocks within the plurality of video blocks that are associated with the respective prediction mode; for each of the first and second prediction modes, adjust the coefficient scan order for the respective prediction mode in accordance with the collected coefficient statistics for the respective prediction mode to generate an adjusted coefficient scan order for the respective prediction mode; for each of the second and fourth video blocks, scan the residual transform coefficient values of the respective video block using the adjusted coefficient scan order that corresponds to the prediction mode of the respective video block; and for each of the plurality of video blocks, entropy code the residual transform coefficient values for the respective video block. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A non-transitory computer-readable medium comprising instructions that upon execution in a video coding device cause the device to code video blocks, wherein the instructions cause the device to:
-
for each of first and second video blocks of a plurality of video blocks, generate a prediction block for the respective video block based on a first prediction mode of a plurality of prediction modes and one or more neighboring video blocks, each of the plurality of prediction modes being associated with a respective coefficient scan order of a plurality of coefficient scan orders; for each of third and fourth video blocks of the plurality of video blocks, generate a prediction block for the respective video block based on a second prediction mode of the plurality of prediction modes and one or more neighboring video blocks, the second prediction mode being different than the first prediction mode; for each of the plurality of video blocks, generate a reconstructed video block for the respective video block based on the prediction block for the respective video block and a residual block for the respective video block; for each of the plurality of video blocks, apply one or more transforms to the respective video block to transform between residual pixel values of the respective video block and residual transform coefficient values of the respective video block, for each of the plurality of video blocks, select a coefficient scan order for scanning the respective video block from the plurality of coefficient scan orders based on a prediction mode used to generate the prediction block for predicting the respective video block, the prediction mode being one of the plurality of prediction modes; for each of the first and third video blocks, scan the residual transform coefficient values of the respective video block using the coefficient scan order selected for the respective video block; for each of the first and second prediction modes, collect coefficient statistics for one or more of the video blocks within the plurality of video blocks that are associated with the respective prediction mode; for each of the first and second prediction modes, adjust the coefficient scan order for the respective prediction mode in accordance with the collected coefficient statistics for the respective prediction mode to generate an adjusted coefficient scan order for the respective prediction mode; for each of the second and fourth video blocks, scan the residual transform coefficient values of the respective video block using the adjusted coefficient scan order that corresponds to the prediction mode of the respective video block; and
for each of the plurality of video blocks, entropy code the residual transform coefficient values for the respective video block. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A device that codes video data, the device comprising:
-
means for generating, for each of first and second video blocks of a plurality of video blocks, a prediction block for the respective video block based on a first prediction mode of a plurality of prediction modes and one or more neighboring video blocks, each of the plurality of prediction modes being associated with a respective coefficient scan order of a plurality of coefficient scan orders; means for generating, for each of third and fourth video blocks of the plurality of video blocks, a prediction block for the respective video block based on a second prediction mode of the plurality of prediction modes and one or more neighboring video blocks, the second prediction mode being different than the first prediction mode; means for generating, for each of the plurality of video blocks, a reconstructed video block for the respective video block based on the prediction block for the respective video block and a residual block for the respective video block; means for applying, for each of the plurality of video blocks, one or more transforms to the respective video block to transform between residual pixel values of the respective video block and residual transform coefficient values of the respective video block; means for selecting, for each of the plurality of video blocks, a coefficient scan order for scanning the respective video block from the plurality of coefficient scan orders based on a prediction mode used to generate the prediction block for the respective video block, the prediction mode being one of the plurality of prediction modes; means for scanning, for each of the first and third video blocks, the residual transform coefficient values of the respective video block using the coefficient scan order selected for the respective video block; means for collecting, for each of the first and second prediction modes, coefficient statistics for one or more of the video blocks within the plurality of video blocks that are associated with the respective prediction mode; means for adjusting, for each of the first and second prediction modes, the coefficient scan order for the respective prediction mode in accordance with the collected coefficient statistics for the respective prediction mode to generate an adjusted coefficient scan order for the respective prediction mode; wherein the residual transform coefficient scanning means scans, for each of the second and fourth video blocks, the residual transform coefficient values of the respective video block using the adjusted coefficient scan order that corresponds to the prediction mode of the respective video block; and means for entropy coding, for each of the plurality of video blocks, the residual transform coefficient values for the respective video block. - View Dependent Claims (43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
Specification