IP Library Granted Patent US 10,187,653
Granted Patent B2
US 10,187,653 · App. 15/148,396 · Granted Jan 22, 2019

Motor vector prediction using co-located prediction units

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,187,653
App. No.
15/148,396
Granted
Jan 22, 2019
Kind
B2
Abstract

A system includes motion vector prediction circuitry that generates motion vectors for pixel groups and pixel subgroups within the pixel groups. For a current pixel group within the currently processed picture, the motion vector prediction circuitry selects a target reference picture. Without first translating the current pixel group in accord with an offset vector, the motion vector prediction circuitry initiates generation of a default motion vector for the current pixel group. Responsive to the selected target reference picture, the motion vector prediction circuitry generates the offset vector. The motion vector prediction circuitry translates the current pixel group in accord with offset vector and determines motion vectors for pixel subgroups of the current pixel group based on the translated position of the current pixel group.

Claims (62)

1. A device comprising:

buffer circuitry configured to store:

a current picture comprising a current pixel group comprising a pixel subgroup;

a target reference picture comprising a co-located pixel group that includes a spatial position in the target reference picture occupied by the current pixel group in the current picture; and

a reference vector picture;

candidate selection circuitry in data communication with the buffer circuitry, the candidate selection circuitry configured to:

without first shifting the current pixel group in accord with an offset vector, determine the co-located pixel group has an assigned candidate motion vector;

determine a default motion vector from the assigned candidate motion vector of the co-located pixel group; and

subgroup vector selection circuitry in data communication with the buffer circuitry and the candidate selection circuitry, the subgroup vector selection circuitry configured to:

determine that a spatiotemporal neighbor pixel group has an assigned reference vector that indicates a predictive relationship that points to the reference vector picture;

determine a ratio of a first duration between the current picture and the reference vector picture to a second duration between the current picture and the target reference picture;

scale the reference vector in accord with the ratio to determine the offset vector;

shift the current pixel group in accord with the offset vector, and then determine whether a pre-determined pixel of the pixel subgroup occupies a spatial position that is occupied by a predictor pixel group that is assigned a predictor motion vector;

when the pre-determined pixel of the pixel subgroup occupies the spatial position that is occupied by the predictor pixel group that is assigned a predictor motion vector, processing the predictor motion vector to generate a subgroup motion vector for the pixel subgroup; and

when the pre-determined pixel of the pixel subgroup does not occupy the spatial position that is occupied by the predictor pixel group that is assigned the predictor motion vector, assigning the default motion vector to the pixel subgroup irrespective of whether other predictor pixel groups are assigned predictor motion vectors.

2. The device of claim 1 , where the buffer circuitry is configured to store the target reference picture among a set of candidate reference pictures.

3. The device of claim 1 , where the subgroup vector selection circuitry is configured to select the spatiotemporal neighbor pixel group from among a set of candidate spatiotemporal neighbor pixel groups within the current picture and a temporal neighbor picture stored within the buffer circuitry.

4. The device of claim 3 , where the subgroup vector selection circuitry is configured to select the spatiotemporal neighbor pixel group from among the set of candidate spatiotemporal neighbor pixel groups responsive to the reference vector comprising a first available motion vector found within the set of candidate spatiotemporal neighbor pixel groups.

5. The device of claim 1 , where:

the target reference picture comprises a single candidate reference picture available for the current picture; and

the subgroup vector selection circuitry is configured to initiate scaling of the reference vector without first receiving an indication that the target reference picture was selected by the candidate selection circuitry.

6. The device of claim 1 , the co-located pixel group comprises a first pixel that occupies the spatial position within the target reference picture that is occupied by the pre-determined pixel of the current pixel group in the current picture.

7. The device of claim 1 , where the subgroup vector selection circuitry is configured to process the predictor motion vector to generate the subgroup motion vector by scaling the predictor motion vector in accord with another ratio of the first duration to a third duration between the target reference picture for the pixel subgroup and a predictor picture defined by the predictor motion vector.

8. A method comprising:

accessing a target reference picture available for a current pixel group in a current picture;

determining that a co-located pixel group of the target reference picture has an assigned candidate motion vector, the co-located pixel group occupying a space in the target reference picture occupied at least in part by the current pixel group in the current picture;

determining that a neighbor pixel group has an assigned reference vector that indicates a predictive relationship that points to a reference vector picture;

scaling the predictive relationship according to a relative temporal position of the target reference picture, the reference vector picture, and the current picture to determine an offset vector;

forgoing application of the offset vector for selection of a default motion vector for the current pixel group;

applying the offset vector by shifting the current pixel group in accord with the offset vector, and then determining whether a pre-determined pixel of a pixel subgroup of the current pixel group occupies a spatial position that is occupied by a predictor pixel group of the target reference picture that is assigned a predictor motion vector;

when the pre-determined pixel of the pixel subgroup occupies the spatial position that is occupied by the predictor pixel group of the target reference picture that is assigned the predictor motion vector, processing the predictor motion vector to generate a subgroup motion vector for the pixel subgroup; and

when the pre-determined pixel of the pixel subgroup does not occupy the spatial position that is occupied by the predictor pixel group of the target reference picture that is assigned the predictor motion vector, using the default motion vector as the subgroup motion vector irrespective of whether other predictor pixel groups are assigned prediction motion vectors.

9. The method of claim 8 , further comprising selecting the target reference picture from among a set of candidate reference pictures responsive to determining that the co-located pixel group has the assigned candidate motion vector.

10. The method of claim 8 , further comprising selecting the neighbor pixel group from among a set of candidate neighbor pixel groups within the current picture responsive to determining that the neighbor pixel group has the assigned reference vector.

11. The method of claim 10 , where selecting the neighbor pixel group from among the set of candidate neighbor pixel groups within the current picture comprises selecting the neighbor pixel group responsive to the assigned reference vector comprising a first available motion vector found within the set of candidate neighbor pixel groups.

12. The method of claim 8 , where:

the target reference picture comprises a single reference picture available for the current picture; and

scaling the predictive relationship comprises scaling the predictive relationship in a parallel operation with determining that the co-located pixel group has the candidate motion vector, without first receiving an indication that the target reference picture has been selected.

13. The method of claim 8 , further comprising performing selection of the default motion vector by:

determining that the co-located pixel group comprises a first pixel that occupies the spatial position within the target reference picture that is occupied by the pre-determined pixel of the current pixel group in the current picture; and

processing a co-located motion vector assigned to the co-located pixel group to generate the default motion vector.

14. The method of claim 8 , where the co-located pixel group comprises a first pixel that occupies the spatial position within the target reference picture that is occupied by the pre-determined pixel of the current pixel group in the current picture.

15. A product comprising:

a machine readable medium other than a transitory signal; and

instructions stored on the machine readable medium, the instructions, when executed, configured to cause motion vector prediction circuitry to:

identify a candidate motion vector assigned to a co-located pixel group in a target reference picture for a current pixel group in a current picture, the co-located pixel group comprising a pixel position in the target reference picture included in the current pixel group in the current picture;

in response to identifying the candidate motion vector, select the target reference picture;

without first shifting the current pixel group in accord with a offset vector, initiate processing of the candidate motion vector to generate a default motion vector; and

determine subgroup motion vectors for multiple pixel subgroups of the current pixel group by:

identifying a reference vector assigned to a neighbor pixel group, the reference vector configured to signal a predictive relationship that points to a reference vector picture;

determining a scaling factor using a ratio of a first duration between the target reference picture and the current picture to a second duration between the target reference picture and the reference vector picture;

applying the scaling factor to the reference vector to determine the offset vector;

shifting the current pixel group in accord with the offset vector, and then determine whether a pre-determined pixel of the pixel subgroup occupies a spatial position that is occupied by a predictor pixel group that is assigned a predictor motion vector;

when the pre-determined pixel of the pixel subgroup occupies the spatial position that is occupied by the predictor pixel group that is assigned the predictor motion vector, processing the predictor motion vector to generate a subgroup motion vector for the pixel subgroup; and

when the pre-determined pixel of the pixel subgroup does not occupy the spatial position that is occupied by the predictor pixel group that is assigned the predictor motion vector, assigning the default motion vector to the pixel subgroup without searching other predictor pixel groups for a predictor motion vector for the pixel subgroup.

16. The product of claim 15 , where the instructions are further configured to cause the motion vector prediction circuitry to select the target reference picture from among a set of candidate reference pictures responsive to identification of the candidate motion vector.

17. The product of claim 15 , where the instructions are further configured to cause the motion vector prediction circuitry to select the neighbor pixel group from among a set of candidate neighbor pixel groups within the current picture and a temporal neighbor picture.

18. The product of claim 17 , where the instructions are further configured to cause the motion vector prediction circuitry to select the neighbor pixel group from among the set of candidate neighbor pixel groups by selecting the neighbor pixel group responsive to the reference vector comprising a first available motion vector found within the set of candidate neighbor pixel groups.

19. The product of claim 15 , where:

the target reference picture comprises a single candidate reference picture available for the current picture; and

scaling of the reference vector is initiated without first receiving an indication that the target reference picture was selected.

20. The product of claim 15 , where the co-located pixel group comprises a first pixel that occupies the spatial position within the target reference picture that is occupied by the pre-determined pixel of the current pixel group in the current picture.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER AND APPLICATION NOS. 13/237,550 AND 16/103,107 FROM THE MERGER PREVIOUSLY RECORDED ON REEL 047231 FRAME 0369. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048549/0113 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047231/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2016
From: ZHOU, MINHUA
To: BROADCOM CORPORATION
Reel/Frame 038529/0344 →