IP Library Granted Patent US 11,159,821
Granted Patent B2
US 11,159,821 · App. 17/221,275 · Granted Oct 26, 2021

Method and device for video image processing

Inventors: Xiaozhen Zheng (Shenzhen, CN); Tianliang Fu (Beijing, CN); Shanshe Wang (Beijing, CN); Siwei Ma (Beijing, CN); Weiran Li (Shenzhen, CN); Suhong Wang (Beijing, CN)
Assignee: SZ DJI TECHNOLOGY CO., LTD.
H04N19/58H04N19/105H04N19/119H04N19/129H04N19/137H04N19/139H04N19/176H04N19/30H04N19/513H04N19/56H04N19/573H04N19/96
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 11,159,821
App. No.
17/221,275
Granted
Oct 26, 2021
Kind
B2
Abstract

A video image processing method includes dividing a coding unit into one or more sub-blocks, constructing first and second motion vector candidate lists, and performing prediction for the coding unit according to the first and second motion vector candidate lists. The first motion vector candidate list includes a motion vector of a sub-block of the coding unit, and the second motion vector candidate list includes a motion vector of the coding unit. Constructing the first motion vector candidate list includes determining a reference motion vector of the coding unit, determining a related reference block of the sub-block of the coding unit in a co-located reference image of the coding unit according to the reference motion vector, determining a scaling factor of the motion vector of the related reference block, and adding the scaled motion vector into the first motion vector candidate list.

Claims (67)

1. A video image processing method comprising:

dividing a coding unit into one or more sub-blocks;

constructing a first motion vector candidate list and a second motion vector candidate list, the first motion vector candidate list including a motion vector of one sub-block of the one or more sub-blocks of the coding unit, and the second motion vector candidate list including a motion vector of the coding unit; and

performing prediction for the coding unit according to the first motion vector candidate list and the second motion vector candidate list;

wherein constructing the first motion vector candidate list includes:

scanning a left neighboring block of the coding unit and:

in response to a reference frame pointed to by a motion vector of the left neighboring block being same as a co-located reference image of the coding unit, determining the motion vector of the left neighboring block as a reference motion vector of the coding unit; and

in response to the reference frame pointed to by the motion vector of the left neighboring block being different from the co-located reference image of the coding unit, determining a default value (0, 0) as the reference motion vector of the coding unit;

determining a related reference block of the one sub-block of the coding unit in the co-located reference image of the coding unit according to the reference motion vector of the coding unit;

in response to a motion vector of the related reference block of the one sub-block pointing to a short-term reference image:

determining a scaling factor of the motion vector of the related reference block of the one sub-block according to:

a temporal distance between a reference image pointed to by the motion vector of the related reference block of the one sub-block and the co-located reference image of the coding unit, and

a temporal distance between the co-located reference image of the coding unit and an image containing the coding unit; and

scaling the motion vector of the related reference block of the one sub-block using the scaling factor;

in response to the motion vector of the related reference block of the one sub-block pointing to a long-term reference image:

setting the scaling factor of the motion vector of the related reference block of the one sub-block to 1; and

scaling the motion vector of the related reference block of the one sub-blocks using the scaling factor; and

adding the motion vector of the related reference block of the one sub-block after being scaled into the first motion vector candidate list.

2. The method of claim 1 , wherein constructing the first motion vector candidate list further includes:

determining a control point motion vector group of a neighboring block predicted by an affine transformation mode from neighboring blocks of the coding unit in a specific scanning order; and

adding the control point motion vector group as a candidate to the first motion vector candidate list.

3. An encoder comprising:

a memory storing computer executable instructions; and

a processor configured to execute the instructions to:

divide a coding unit into one or more sub-blocks;

construct a first motion vector candidate list and a second motion vector candidate list, the first motion vector candidate list including a motion vector of one sub-block of the one or more sub-blocks of the coding unit, and the second motion vector candidate list including a motion vector of the coding unit; and

perform prediction for the coding unit according to the first motion vector candidate list and the second motion vector candidate list;

wherein the processor executes the instructions to construct the first motion vector candidate list by:

scanning a left neighboring block of the coding unit and:

in response to a reference frame pointed to by a motion vector of the left neighboring block being same as a co-located reference image of the coding unit, determining the motion vector of the left neighboring block as a reference motion vector of the coding unit; and

in response to the reference frame pointed to by the motion vector of the left neighboring block being different from the co-located reference image of the coding unit, determining a default value (0, 0) as the reference motion vector of the coding unit;

determining a related reference block of the one sub-block of the coding unit in the co-located reference image of the coding unit according to the reference motion vector of the coding unit;

in response to a motion vector of the related reference block of the one sub-block pointing to a short-term reference image:

determining a scaling factor of the motion vector of the related reference block of the one sub-block according to:

 a temporal distance between a reference image pointed to by the motion vector of the related reference block of the one sub-block and the co-located reference image of the coding unit, and

 a temporal distance between the co-located reference image of the coding unit and an image containing the coding unit; and

scaling the motion vector of the related reference block of the one sub-block using the scaling factor;

in response to the motion vector of the related reference block of the one sub-block pointing to a long-term reference image:

setting the scaling factor of the motion vector of the related reference block of the one sub-block to 1; and

scaling the motion vector of the related reference block of the one sub-block using the scaling factor; and

adding the motion vector of the related reference block of the one sub-block after being scaled into the first motion vector candidate list.

4. The encoder of claim 3 , wherein the processor is further configured to execute the instructions to:

determine a control point motion vector group of a neighboring block predicted by an affine transformation mode from neighboring blocks of the coding unit in a specific scanning order; and

add the control point motion vector group as a candidate to the first motion vector candidate list.

5. A decoder comprising:

a memory storing computer executable instructions; and

a processor configured to execute the instructions to:

divide a coding unit into one or more sub-blocks;

construct a first motion vector candidate list and a second motion vector candidate list, the first motion vector candidate list including a motion vector of one sub-block of the one or more sub-blocks of the coding unit, and the second motion vector candidate list including a motion vector of the coding unit; and

perform prediction for the coding unit according to the first motion vector candidate list and the second motion vector candidate list;

wherein the processor executes the instructions to construct the first motion vector candidate list by:

scanning a left neighboring block of the coding unit and:

in response to a reference frame pointed to by a motion vector of the left neighboring block being same as a co-located reference image of the coding unit, determining the motion vector of the left neighboring block as a reference motion vector of the coding unit; and

in response to the reference frame pointed to by the motion vector of the left neighboring block being different from the co-located reference image of the coding unit, determining a default value (0, 0) as the reference motion vector of the coding unit;

determining a related reference block of the one sub-block of the coding unit in the co-located reference image of the coding unit according to the reference motion vector of the coding unit;

in response to a motion vector of the related reference block of the one sub-block pointing to a short-term reference image:

determining a scaling factor of the motion vector of the related reference block of the one sub-block according to:

 a temporal distance between a reference image pointed to by the motion vector of the related reference block of the one sub-block and the co-located reference image of the coding unit, and

 a temporal distance between the co-located reference image of the coding unit and an image containing the coding unit; and

scaling the motion vector of the related reference block of the one sub-block using the scaling factor;

in response to the motion vector of the related reference block of the one sub-block pointing to a long-term reference image:

setting the scaling factor of the motion vector of the related reference block of the one sub-block to 1; and

scaling the motion vector of the related reference block of the one sub-block using the scaling factor; and

adding the motion vector of the related reference block of the one sub-block after being scaled into the first motion vector candidate list.

6. The decoder of claim 5 , wherein the processor is further configured to execute the instructions to:

determine a control point motion vector group of a neighboring block predicted by an affine transformation mode from neighboring blocks of the coding unit in a specific scanning order; and

add the control point motion vector group as a candidate to the first motion vector candidate list.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2021
From: ZHENG, XIAOZHEN; FU, TIANLIANG; WANG, SHANSHE; MA, SIWEI; LI, WEIRAN; WANG, SUHONG
To: SZ DJI TECHNOLOGY CO., LTD.
Reel/Frame 055808/0915 →
Priority Claims (4)
WO PCT/CN2018/081652 · Apr 2, 2018 · international
WO PCT/CN2018/095710 · Jul 13, 2018 · international
WO PCT/CN2018/103693 · Aug 31, 2018 · international
WO PCT/CN2018/107436 · Sep 25, 2018 · international
Continuity (3)
Continuation 17039939 · Sep 30, 2020
Continuation PCTCN2018112805 · Oct 30, 2018
Related Publication 20210227254A1 · Jul 22, 2021
Cited By (4)
US 12,294,736 US 12,294,737 US 12,294,738 US 12,389,030