IP Library › Granted Patent US 11,032,541
Granted Patent B2
US 11,032,541 · App. 16/424,352 · Granted Jun 8, 2021

Method and apparatus for video coding

Inventors: Meng Xu (San Jose, CA); Xiang Li (Los Gatos, CA); Shan Liu (San Jose, CA)
Assignee: Tencent America LLC
H04N19/105H04N19/137H04N19/176H04N19/44H04N19/513
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,032,541
App. No.
16/424,352
Granted
Jun 8, 2021
Kind
B2
Abstract

Aspects of the disclosure provide methods and apparatuses for video coding. In some examples, an apparatus includes processing circuitry. The processing circuitry determines first and second reference motion vectors for decoding a current block based on coding information of at least one previously decoded block, offsets a first component to obtain a shifted first component, and offsets a second component to obtain a shifted second component. The processing circuitry generates a third component, on the first coordinate axis, of a first averaged reference motion vector by adding the shifted first component and the shifted second component, and constructs a list of reference motion vectors incorporating the first and second reference motion vectors and the first averaged reference motion vector. The processing circuitry also determines a motion vector predictor using the list of reference motion vectors, and decodes the current block for output based on the determined motion vector predictor.

Claims (104)

1. A method for video decoding in a decoder, comprising:

determining first and second reference motion vectors for decoding a current block based on coding information of at least one previously decoded block,

the first reference motion vector including a first component on a first coordinate axis, and

the second reference motion vector including a second component on the first coordinate axis;

generating a first sum by adding the first component and the second component;

setting a right-shift parameter as 1;

setting a left-shift parameter as 0;

executing a rounding subroutine or operating a rounding circuit to calculate a third component of the first averaged reference motion vector on the first coordinate axis according to:

offset=1<<(rightShift−1), and

y 1=( x 1>=0?( x 1+offset)>>rightShift:−((− x 1+offset)>>rightShift))<<leftShift,

wherein rightShift corresponds to the right-shift parameter, leftShift corresponds to the left-shift parameter, x1 corresponds to the first sum, and y1 corresponds to the third component;

constructing a list of reference motion vectors for decoding the current block, the list of reference motion vectors incorporating the first and second reference motion vectors and the first averaged reference motion vector;

determining a motion vector predictor using the list of reference motion vectors; and

decoding the current block for output based on the determined motion vector predictor.

2. The method of claim 1 , wherein

the first reference motion vector includes a fourth component on a second coordinate axis,

the second reference motion vector includes a fifth component on the second coordinate axis, and

the method further comprises:

generating a second sum by adding the fourth component and the fifth component; and

executing the rounding subroutine or operating the rounding circuit to calculate a sixth component of the first averaged reference motion vector on the second coordinate axis according to:

offset=1<<(rightShift−1), and

y 2=( x 2>=0?( x 2+offset)>>rightShift:−(− x 2+offset)>>rightShift))<<leftShift,

wherein x2 corresponds to the second sum, and y2 corresponds to the sixth component.

3. The method of claim 1 , further comprising:

generating a second averaged reference motion vector based on the first reference motion vector and a third reference motion vector; and

generating a third averaged reference motion vector based on the second reference motion vector and the third reference motion vector, wherein

the constructing the list of reference motion vectors for decoding the current block includes arranging the list of reference motion vectors to include, according to an ascending order of respective indices associated thereto, the first reference motion vector, the second reference motion vector, the third reference motion vector, the first averaged reference motion vector, the second averaged reference motion vector, and the third averaged reference motion vector.

4. The method of claim 3 , further comprising:

generating a fourth averaged reference motion vector based on the first reference motion vector and a fourth reference motion vector;

generating a fifth averaged reference motion vector based on the second reference motion vector and the fourth reference motion vector; and

generating a sixth averaged reference motion vector based on the third reference motion vector and the fourth reference motion vector, wherein

the constructing the list of reference motion vectors for decoding the current block includes arranging the list of reference motion vectors to include, according to the ascending order of respective indices associated thereto, the first reference motion vector, the second reference motion vector, the third reference motion vector, the fourth reference motion vector, the first list reference motion vectors and adding the first averaged reference motion vector, the second averaged reference motion vector, the third averaged reference motion vector, the fourth averaged reference motion vector, the fifth averaged reference motion vector, and the sixth averaged reference motion vector.

5. The method of claim 1 , wherein the first and second reference motion vectors are determined based on the at least one previously decoded block that includes a spatial neighboring block and a temporal neighboring block.

6. The method of claim 1 , wherein the first and second reference motion vectors in the list of reference motion vectors correspond to 1/16 fractional-sample accuracy.

7. An apparatus, comprising:

processing circuitry configured to:

determine first and second reference motion vectors for decoding a current block based on coding information of at least one previously decoded block,

the first reference motion vector including a first component on a first coordinate axis, and

the second reference motion vector including a second component on the first coordinate axis;

generate a first sum by adding the first component and the second component;

set a right-shift parameter as 1;

set a left-shift parameter as 0;

execute a rounding subroutine or operate a rounding circuit to calculate a third component of the first averaged reference motion vector on the first coordinate axis according to:

offset=1<<(rightShift−1), and

y 1=( x 1>=0?( x 1+offset)>>rightShift:−((− x +offset)>>rightShift))<<leftShift,

wherein rightShift corresponds to the right-shift parameter, leftShift corresponds to the left-shift parameter, x1 corresponds to the first sum, and y1 corresponds to the third component;

construct a list of reference motion vectors for decoding the current block, the list of reference motion vectors incorporating the first and second reference motion vectors and the first averaged reference motion vector;

determine a motion vector predictor using the list of reference motion vectors; and

decode the current block for output based on the determined motion vector predictor.

8. The apparatus of claim 7 , wherein

the first reference motion vector includes a fourth component on a second coordinate axis,

the second reference motion vector includes a fifth component on the second coordinate axis,

the processing circuitry is further configured to:

generate a second sum by adding the fourth component and the fifth component; and

execute the rounding subroutine or operate the rounding circuit to calculate a sixth component of the first averaged reference motion vector on the second coordinate axis according to:

offset=1<<(rightShift−1), and

y 2=( x 2>=0?( x 2+offset)>>rightShift: −((− x 2+offset)>>rightShift))<<leftShift,

wherein x2 corresponds to the second sum, and y2 corresponds to the sixth component.

9. The apparatus of claim 7 , wherein the processing circuitry is further configured to:

generate a second averaged reference motion vector based on the first reference motion vector and a third reference motion vector;

generate a third averaged reference motion vector based on the second reference motion vector and the third reference motion vector; and

construct the list of reference motion vectors for decoding the current block by arranging the list of reference motion vectors to include, according to an ascending order of respective indices associated thereto, the first reference motion vector, the second reference motion vector, the third reference motion vector, the first averaged reference motion vector, the second averaged reference motion vector, and the third averaged reference motion vector.

10. The apparatus of claim 9 , wherein the processing circuitry is further configured to:

generate a fourth averaged reference motion vector based on the first reference motion vector and a fourth reference motion vector;

generate a fifth averaged reference motion vector based on the second reference motion vector and the fourth reference motion vector;

generate a sixth averaged reference motion vector based on the third reference motion vector and the fourth reference motion vector; and

construct the list of reference motion vectors for decoding the current block by arranging the list of reference motion vectors to include, according to the ascending order of respective indices associated thereto, the first reference motion vector, the second reference motion vector, the third reference motion vector, the fourth reference motion vector, the first list reference motion vectors and adding the first averaged reference motion vector, the second averaged reference motion vector, the third averaged reference motion vector, the fourth averaged reference motion vector, the fifth averaged reference motion vector, and the sixth averaged reference motion vector.

11. The apparatus of claim 7 , wherein the processing circuitry is further configured to:

determine the first and second reference motion vectors based on the at least one previously decoded block that includes a spatial neighboring block and a temporal neighboring block.

12. The apparatus of claim 7 , wherein the first and second reference motion vectors in the list of reference motion vectors correspond to 1/16 fractional-sample accuracy.

13. A non-transitory computer-readable medium storing instructions which when executed by a computer for video decoding cause the computer to perform:

determining first and second reference motion vectors for decoding a current block based on coding information of at least one previously decoded block,

the first reference motion vector including a first component; on a first coordinate axis, and

the second reference motion vector including a second component; on the first coordinate axis;

generating a first sum by adding the first component and the second component;

setting a right-shift parameter as 1;

setting a left-shift parameter as 0;

executing a rounding subroutine or operating a rounding circuit to calculate a third component of the first averaged reference motion vector on the first coordinate axis according to:

offset=1<<(rightShift−1), and

y 1=( x 1>=0?( x 1+offset)>>rightShift:−((− x 1+offset)>>rightShift))<<leftShift,

wherein rightShift corresponds to the right-shift parameter, leftShift corresponds to the left-shift parameter, x1 corresponds to the first sum, and y1 corresponds to the third component;

constructing a list of reference motion vectors for decoding the current block, the list of reference motion vectors incorporating the first and second reference motion vectors and the first averaged reference motion vector;

determining a motion vector predictor using the list of reference motion vectors; and

decoding the current block for output based on the determined motion vector predictor.

14. The non-transitory computer-readable medium of claim 13 , wherein

the first reference motion vector includes a fourth component on a second coordinate axis,

the second reference motion vector includes a fifth component on the second coordinate axis, and

the instructions when executed by the computer further cause the computer to perform:

generating a second sum by adding the fourth component and the fifth component; and

executing the rounding, subroutine or operating the rounding circuit to calculate a sixth component of the first averaged reference motion vector on the second coordinate axis according to:

offset=1<<(rightShift−1), and

y 2=( x 2>=0?( x 2+offset)>>rightShift:−((− x 2+offset)>>rightShift))<<leftShift,

wherein x2 corresponds to the second sum, and y2 corresponds to the sixth component.

15. The non-transitory computer-readable medium of claim 13 , wherein the instructions when executed by the computer further cause the computer to perform:

generating a second averaged reference motion vector based on the first reference motion vector and a third reference motion vector; and

generating a third averaged reference motion vector based on the second reference motion vector and the third reference motion vector, wherein

the constructing the list of reference motion vectors for decoding the current block includes arranging the list of reference motion vectors to include, according to an ascending order of respective indices associated thereto, the first reference motion vector, the second reference motion vector, the third reference motion vector, the first averaged reference motion vector, the second averaged reference motion vector, and the third averaged reference motion vector.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions when executed by the computer further cause the computer to perform:

generating a fourth averaged reference motion vector based on the first reference motion vector and a fourth reference motion vector;

generating a fifth averaged reference motion vector based on the second reference motion vector and the fourth reference motion vector; and

generating a sixth averaged reference motion vector based on the third reference motion vector and the fourth reference motion vector, wherein

the constructing the list of reference motion vectors for decoding the current block includes arranging the list of reference motion vectors to include, according to the ascending order of respective indices associated thereto, the first reference motion vector, the second reference motion vector, the third reference motion vector, the fourth reference motion vector, the first list reference motion vectors and adding the first averaged reference motion vector, the second averaged reference motion vector, the third averaged reference motion vector, the fourth averaged reference motion vector, the fifth averaged reference motion vector, and the sixth averaged reference motion vector.

17. The non-transitory computer-readable medium of claim 13 , wherein the first and second reference motion vectors are determined based on the at least one previously decoded block that includes a spatial neighboring block and a temporal neighboring block.

18. The non-transitory computer-readable medium of claim 13 , wherein the first and second reference motion vectors in the list of reference motion vectors correspond to 1/16 fractional-sample accuracy.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2019
From: XU, MENG; LI, XIANG; LIU, SHAN
To: TENCENT AMERICA LLC
Reel/Frame 049297/0820 →
Continuity (2)
Provisional Application 62748675 · Oct 22, 2018
Related Publication 20200128237A1 · Apr 23, 2020