IP Library Granted Patent US 9,426,463
Granted Patent B2
US 9,426,463 · App. 13/761,924 · Granted Aug 23, 2016

Restriction of prediction units in B slices to uni-directional inter prediction

Inventors: Vadim Seregin (San Diego, CA); Xianglin Wang (San Diego, CA); Joel Sole Rojals (La Jolla, CA); Muhammed Zeyd Coban (Carlsbad, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/00587H04N19/109H04N19/159H04N19/176H04N19/52H04N19/577
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,426,463
App. No.
13/761,924
Granted
Aug 23, 2016
Kind
B2
Abstract

A video coding device generates a motion vector (MV) candidate list for a prediction unit (PU) of a coding unit (CU) that is partitioned into four equally-sized PUs. The video coding device converts a bi-directional MV candidate in the MV candidate list into a uni-directional MV candidate. In addition, the video coding device determines a selected MV candidate in the merge candidate list and generates a predictive video block for the PU based at least in part on one or more reference blocks indicated by motion information specified by the selected MV candidate.

Claims (100)

1. A method for encoding video data, the method comprising:

generating a motion vector (MV) candidate list for a prediction unit (PU) of a coding unit (CU) in a B slice;

after generating the MV candidate list, determining a selected MV candidate in the MV candidate list;

after determining the selected MV candidate, converting the selected MV candidate from a bi-directional MV candidate into a uni-directional MV candidate;

after converting the selected MV candidate into the uni-directional MV candidate, assigning the uni-directional MV candidate to the PU;

generating a predictive video block for the PU based at least in part on one or more reference blocks of decoded reference pictures, the one or more reference blocks indicated by motion information specified by the selected MV candidate;

using the uni-directional MV candidate assigned to the PU for merge candidate list construction or advanced motion vector prediction (AMVP) candidate list construction for a next block in coding order; and

outputting encoded video data based at least in part on the predictive video block.

2. The method of claim 1 , wherein converting the selected MV candidate into the uni-directional MV candidate comprises converting, in response to determining that the CU has a size equal to a smallest coding unit (SCU) size, the selected MV candidate into the uni-directional MV candidate.

3. The method of claim 1 , wherein the CU is a first CU and the method further comprises:

generating a MV candidate list for a PU of a second CU;

in response to determining that the second CU is partitioned into PUs according to a 2N×2N, 2N×N, or N×2N partitioning mode or that motion information of the PU of the second CU is signaled in advanced motion vector prediction (AMVP) mode, converting a bi-directional MV candidate in the MV candidate list for the PU of the second CU into a second uni-directional MV candidate;

determining a selected MV candidate in the MV candidate list for the PU of the second CU; and

generating a predictive video block for the PU of the second CU based at least in part on one or more reference blocks indicated by motion information specified by the selected MV candidate in the MV candidate list for the PU of the second CU.

4. The method of claim 1 , wherein converting the selected MV candidate comprises converting the selected MV candidate into the uni-directional MV candidate only when motion information of the PU is signaled using AMVP mode.

5. The method of claim 1 , wherein the method is performed on a mobile computing device.

6. A video encoding device comprising:

a data storage medium configured to store decoded reference pictures; and

one or more processors configured to:

generate a motion vector (MV) candidate list for a prediction unit (PU) of a coding unit (CU) in a B slice;

after generating the MV candidate list, determine a selected MV candidate in the MV candidate list;

after determining the selected MV candidate, convert the selected MV candidate from a bi-directional MV candidate into a uni-directional MV candidate;

after converting the selected MV candidate into the uni-directional MV candidate, assign the uni-directional MV candidate to the PU; and

generate a predictive video block for the PU based at least in part on one or more reference blocks of the decoded reference pictures, the one or more reference blocks indicated by motion information specified by the selected MV candidate;

use the uni-directional MV candidate assigned to the PU for merge candidate list construction or advanced motion vector prediction (AMVP) candidate list construction for a next block in coding order; and

output encoded video data based at least in part on the predictive video block.

7. The video encoding device of claim 6 , wherein the one or more processors are configured to convert, in response to determining that the CU has a size equal to a smallest coding unit (SCU) size, the selected MV candidate into the uni-directional MV candidate.

8. The video encoding device of claim 6 , wherein the CU is a first CU and the one or more processors are further configured to:

generate a MV candidate list for a PU of a second CU;

in response to determining that the second CU is partitioned into PUs according to a 2N×2N, 2N×N, or N×2N partitioning mode or that motion information of the PU of the second CU is signaled in advanced motion vector prediction (AMVP) mode, convert a bi-directional MV candidate in the MV candidate list for the PU of the second CU into a second uni-directional MV candidate;

determine a selected MV candidate in the MV candidate list for the PU of the second CU; and

generate a predictive video block for the PU of the second CU based at least in part on one or more reference blocks indicated by motion information specified by the selected MV candidate in the MV candidate list for the PU of the second CU.

9. The video encoding device of claim 6 , wherein the one or more processors are configured to convert the selected MV candidate into the uni-directional MV candidate only when motion information of the PU is signaled using advanced motion vector prediction (AMVP) mode.

10. A video encoding device comprising:

means for generating a motion vector (MV) candidate list for a prediction unit (PU) of a coding unit (CU) in a B slice, wherein the CU is partitioned into four equally-sized PUs;

means for determining, after the MV candidate list is generated, a selected MV candidate in the MV candidate list;

means for converting, after determining the selected MV candidate, the selected MV candidate from a bi-directional MV candidate into a uni-directional MV candidate;

means for assigning, after converting the selected MV candidate into the uni-directional MV candidate, the uni-directional MV candidate to the PU; and

means for generating a predictive video block for the PU based at least in part on one or more reference blocks of decoded reference pictures, the one or more reference blocks indicated by motion information specified by the selected MV candidate;

means for using the uni-directional MV candidate assigned to the PU for merge candidate list construction or advanced motion vector prediction (AMVP) candidate list construction for a next block in coding order; and

means for outputting encoded video data based at least in part on the predictive video block.

11. A non-transitory computer readable storage medium that store instructions that, when executed, configure one or more processors to:

generate a motion vector (MV) candidate list for a prediction unit (PU) of a coding unit (CU) in a B slice;

after generating the MV candidate list, determine a selected MV candidate in the MV candidate list;

after determining the selected MV candidate, convert the selected MV candidate from a bi-directional MV candidate into a uni-directional MV candidate;

after converting the selected MV candidate into the uni-directional MV candidate, assign the uni-directional MV candidate to the PU;

generate a predictive video block for the PU based at least in part on one or more reference blocks of decoded reference pictures, the one or more reference blocks indicated by motion information specified by the selected MV candidate;

use the uni-directional MV candidate assigned to the PU for merge candidate list construction or advanced motion vector prediction (AMVP) candidate list construction for a next block in coding order; and

output encoded video data based at least in part on the predictive video block.

12. A method for decoding video data, the method comprising:

generating a motion vector (MV) candidate list for a prediction unit (PU) of a coding unit (CU) in a B slice;

after generating the MV candidate list, determining a selected MV candidate in the MV candidate list;

after determining the selected MV candidate, converting the selected MV candidate from a bi-directional MV candidate into a uni-directional MV candidate;

after converting the selected MV candidate into the uni-directional MV candidate, assigning the uni-directional MV candidate to the PU;

generating a predictive video block for the PU based at least in part on one or more reference blocks of decoded reference pictures, the one or more reference blocks indicated by motion information specified by the selected MV candidate;

using the uni-directional MV candidate assigned to the PU for merge candidate list construction or advanced motion vector prediction (AMVP) candidate list construction for a next block in coding order; and

outputting decoded video data based at least in part on the predictive video block.

13. The method of claim 12 , wherein converting the selected MV candidate into the uni-directional MV candidate comprises converting, in response to determining that the CU has a size equal to a smallest coding unit (SCU) size, the selected MV candidate into the uni-directional MV candidate.

14. The method of claim 12 , wherein the CU is a first CU and the method further comprises:

generating a MV candidate list for a PU of a second CU;

in response to determining that the second CU is partitioned into PUs according to a 2N×2N, 2N×N, or N×2N partitioning mode or that motion information of the PU of the second CU is signaled in advanced motion vector prediction (AMVP) mode, converting a bi-directional MV candidate in the MV candidate list for the PU of the second CU into a second uni-directional MV candidate;

determining a selected MV candidate in the MV candidate list for the PU of the second CU; and

generating a predictive video block for the PU of the second CU based at least in part on one or more reference blocks indicated by motion information specified by the selected MV candidate in the MV candidate list for the PU of the second CU.

15. The method of claim 12 , wherein converting the bi-directional MV candidate comprises converting the selected MV candidate into the uni-directional MV candidate only when motion information of the PU is signaled using AMVP mode.

16. The method of claim 12 , wherein the method is performed on a mobile computing device.

17. A video decoding device comprising:

a data storage medium configured to store decoded reference pictures; and

one or more processors configured to:

generate a motion vector (MV) candidate list for a prediction unit (PU) of a coding unit (CU) in a B slice;

after generating the MV candidate list, determine a selected MV candidate in the MV candidate list;

after determining the selected MV candidate, convert the selected MV candidate from a bi-directional MV candidate into a uni-directional MV candidate;

after converting the selected MV candidate into the uni-directional MV candidate, assign the uni-directional MV candidate to the PU;

generate a predictive video block for the PU based at least in part on one or more reference blocks of the decoded reference pictures, the one or more reference blocks indicated by motion information specified by the selected MV candidate;

use the uni-directional MV candidate assigned to the PU for merge candidate list construction or advanced motion vector prediction (AMVP) candidate list construction for a next block in coding order; and

output decoded video data based at least in part on the predictive video block.

18. The video decoding device of claim 17 , wherein the one or more processors are configured to convert, in response to determining that the CU has a size equal to a smallest coding unit (SCU) size, the selected MV candidate into the uni-directional MV candidate.

19. The video decoding device of claim 17 , wherein the CU is a first CU and the one or more processors are further configured to:

generate a MV candidate list for a PU of a second CU;

in response to determining that the second CU is partitioned into PUs according to a 2N×2N, 2N×N, or N×2N partitioning mode or that motion information of the PU of the second CU is signaled in advanced motion vector prediction (AMVP) mode, convert a bi-directional MV candidate in the MV candidate list for the PU of the second CU into a second uni-directional MV candidate;

determine a selected MV candidate in the MV candidate list for the PU of the second CU; and

generate a predictive video block for the PU of the second CU based at least in part on one or more reference blocks indicated by motion information specified by the selected MV candidate in the MV candidate list for the PU of the second CU.

20. The video decoding device of claim 17 , wherein the one or more processors are configured to convert the selected MV candidate into the uni-directional MV candidate only when motion information of the PU is signaled using advanced motion vector prediction (AMVP) mode.

21. A video decoding device comprising:

means for generating a motion vector (MV) candidate list for a prediction unit (PU) of a coding unit (CU) in a B slice;

means for determining, after the MV candidate list is generated, a selected MV candidate in the MV candidate list;

means for converting, after determining the selected MV candidate, the selected MV candidate from a bi-directional MV candidate into a uni-directional MV candidate;

means for assigning, after converting the selected MV candidate into the uni-directional MV candidate, the uni-directional MV candidate to the PU;

means for generating a predictive video block for the PU based at least in part on one or more reference blocks of decoded reference pictures, the one or more reference blocks indicated by motion information specified by the selected MV candidate;

means for using the uni-directional MV candidate assigned to the PU for merge candidate list construction or advanced motion vector prediction (AMVP) candidate list construction for a next block in coding order; and

outputting decoded video data based at least in part on the predictive video block.

22. The video encoding device of claim 6 , further comprising a camera configured to capture the video data.

23. The video encoding device of claim 17 , comprising at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device.

24. The video decoding device of claim 17 , further comprising a display configured to display the decoded video data.

25. The video decoding device of claim 17 , comprising at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2013
From: SEREGIN, VADIM; WANG, XIANGLIN; SOLE ROJALS, JOEL; COBAN, MUHAMMED ZEYD; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 031271/0664 →
Continuity (6)
Continuation In Part 13628562 · Sep 27, 2012
Provisional Application 61596597 · Feb 8, 2012
Provisional Application 61622968 · Apr 11, 2012
Provisional Application 61643806 · May 7, 2012
Provisional Application 61710556 · Oct 5, 2012
Related Publication 20130202038A1 · Aug 8, 2013