IP Library Granted Patent US 9,578,331
Granted Patent B2
US 9,578,331 · App. 14/142,510 · Granted Feb 21, 2017

Separable directional transforms

Inventors: Yan Ye (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/00812H04N19/103H04N19/11H04N19/12H04N19/122H04N19/129H04N19/13H04N19/147H04N19/157H04N19/176H04N19/18H04N19/19H04N19/196H04N19/197H04N19/42H04N19/46H04N19/463H04N19/48H04N19/593H04N19/61H04N19/625H04N19/70
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,578,331
App. No.
14/142,510
Granted
Feb 21, 2017
Kind
B2
Abstract

This disclosure describes techniques for transforming residual blocks of video data. In particular, a plurality of different transforms selectively applied to the residual blocks based on the prediction mode of the video blocks. At least a portion of the plurality of transforms are separable directional transform specifically trained for a corresponding prediction mode to provide better energy compaction for the residual blocks of the given prediction mode. Using separable directional transforms offers the benefits of lower computation complexity and storage requirement than use of non-separable directional transforms. Additionally, a scan order used to scan the coefficients of the residual block may be adjusted when applying separable directional transforms. In particular, the scan order may be adjusted based on statistics associated with one or more previously coded blocks to better ensure that non-zero coefficients are grouped near the front of the one-dimensional coefficient vector to improve the effectiveness of entropy coding.

Claims (36)

1. A device for coding video data, the device comprising:

a memory configured to store a plurality of separable transforms for use in transforming between residual pixel values of a video block and residual transform coefficients of the video block, each of the plurality of separable transforms being associated with a corresponding partition size, wherein the plurality of separable transforms each comprise a column transform matrix of size N×N and a row transform matrix of size N×N, where N×N is a dimension of a partition size of a predicted video block; and

a processor configured to:

generate predicted pixel values of a video block having a partition size based on a prediction mode, wherein the prediction mode comprises one of a plurality of prediction modes for predicting pixel values in a specified direction;

select, based on the prediction mode, one or more separable transforms from the plurality of separable transforms for the partition size, wherein for a first one of the prediction modes having a first prediction direction and a second one of the prediction modes having a second, different, prediction direction, different transforms are selected based on the prediction mode, and wherein, for the first one of the prediction modes, selecting the one or more separable transforms comprises selecting a combination of a separable DCT transform and at least one other different separable transform; and

apply the selected separable transforms to transform between residual pixel values associated with the predicted pixel values and residual transform coefficients.

2. The device of claim 1 , wherein the first prediction direction is horizontal and the second prediction direction is vertical.

3. The device of claim 1 , wherein the separable DCT transform comprises a separable DCT-like integer transform.

4. The device of claim 1 , wherein the processor comprises a video encoder, wherein the transforms are transforms for use in transforming residual pixel values of the video block to residual transform coefficients, and wherein the processor is further configured to:

generate residual values of the video block based on the video block and the predicted pixel values;

apply the selected transforms to transform the residual values to the residual transform coefficients; and

encode data indicative of the residual transform coefficients and the prediction mode.

5. The device of claim 1 , wherein the processor comprises a video decoder, wherein the transforms are inverse transforms for use in transforming residual transform coefficients to residual pixel values of the video block, and wherein the processor is further configured to:

decode data indicative of the prediction mode and residual transform coefficients of the video block;

apply the selected transforms to transform the residual transform coefficients to the residual values of the video block; and

generate a video block based on the residual values of the video block and the predicted video block.

6. The device of claim 1 , wherein the device comprises a wireless communication device having a display, the display being configured to display the coded video data.

7. The device of claim 1 , wherein the device comprises an integrated circuit device.

8. A non-transitory computer-readable medium upon which is stored instructions that upon execution in a device cause the device to code video blocks, wherein the instructions cause the device to:

generate predicted pixel values of a video block having a partition size based on a prediction mode, wherein the prediction mode comprises one of a plurality of prediction modes for predicting pixel values in a specified direction;

select, based on the prediction mode, one or more separable transforms from a plurality of separable transforms for use in transforming between residual pixel values of a video block and residual transform coefficients of the video block, each of the plurality of separable transforms being associated with a corresponding partition size, wherein the plurality of separable transforms each comprise a column transform matrix of size N×N and a row transform matrix of size N×N, where N×N is a dimension of a partition size of a predicted video block, wherein for a first one of the prediction modes having a first prediction direction and a second one of the prediction modes having a second, different, prediction direction, different transforms are selected based on the prediction mode, and wherein, for the first one of the prediction modes, selecting the one or more separable transforms comprises selecting a combination of a separable DCT transform and at least one other different separable transform; and

apply the selected separable transforms to transform between residual pixel values associated with the predicted pixel values and residual transform coefficients.

9. A device for coding video data, the device comprising:

means for storing a plurality of separable transforms for use in transforming between residual pixel values of a video block and residual transform coefficients of the video block, each of the plurality of separable transforms being associated with a corresponding partition size, wherein the plurality of separable transforms each comprise a column transform matrix of size N×N and a row transform matrix of size N×N, where N×N is a dimension of a partition size of a predicted video block; and

means for processing video data configured to:

generate predicted pixel values of a video block having a partition size based on a prediction mode, wherein the prediction mode comprises one of a plurality of prediction modes for predicting pixel values in a specified direction;

select, based on the prediction mode, one or more separable transforms from the plurality of separable transforms for the partition size, wherein for a first one of the prediction modes having a first prediction direction and a second one of the prediction modes having a second, different, prediction direction, different transforms are selected based on the prediction mode, and wherein, for the first one of the prediction modes, selecting the one or more separable transforms comprises selecting a combination of a separable DCT transform and at least one other different separable transform; and

apply the selected separable transforms to transform between residual pixel values associated with the predicted pixel values and residual transform coefficients.

10. The device of claim 9 , wherein the video processing means comprises means for encoding video, wherein the transforms are transforms for use in transforming residual pixel values of the video block to residual transform coefficients, and wherein the video processing means is further configured to:

generate residual values of the video block based on the video block and the predicted pixel values;

apply the selected transforms to transform the residual values to the residual transform coefficients; and

encode data indicative of the residual transform coefficients and the prediction mode.

11. The device of claim 9 , wherein the video processing means comprises means for decoding video data, wherein the transforms are inverse transforms for use in transforming residual transform coefficients to residual pixel values of the video block, and wherein the video processing means is further configured to:

decode data indicative of the prediction mode and residual transform coefficients of the video block;

apply the selected transforms to transform the residual transform coefficients to the residual values of the video block; and

generate a video block based on the residual values of the video block and the predicted video block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2014
From: YE, YAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 033212/0139 →
Continuity (4)
Continuation 12133257 · Jun 4, 2008
Provisional Application 60944470 · Jun 15, 2007
Provisional Application 60979762 · Oct 12, 2007
Related Publication 20140112387A1 · Apr 24, 2014