IP Library Granted Patent US 11,632,563
Granted Patent B2
US 11,632,563 · App. 16/793,751 · Granted Apr 18, 2023

Motion vector derivation in video coding

Inventors: Hongtao Wang (San Diego, CA); Wei-Jung Chien (San Diego, CA); Vadim Seregin (San Diego, CA); Yu Han (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM INCORPORATED
H04N19/513H04N19/52
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,632,563
App. No.
16/793,751
Granted
Apr 18, 2023
Kind
B2
Abstract

Techniques related to derivation of motion vectors of a first color component (e.g., chroma component) from motion vectors of a second color component (e.g., luma component) are described. A video coder (e.g., video encoder or video decoder), for a CU coded in affine mode with 4:4:4 color format, may determine a motion vector for each sub-block of the luma block, and determine a motion vector for each sub-block of the chroma block based only on the motion vector for each co-located (also called collocated) sub-block of the luma block. However, for another CU coded in affine mode but with a color format other than 4:4:4 (e.g., 4:2:2 or 4:2:0), the video coder may determine a motion vector for each sub-block of the chroma block based on an average of two or more motion vectors of sub-blocks of the luma block.

Claims (99)

1. A method of decoding video data, the method comprising:

determining that a coding mode for a first coding unit (CU) in a first picture is affine mode;

determining that a color format of the first CU is 4:4:4 color format, wherein the first CU includes a first luma block, the first luma block comprising a plurality of first luma sub-blocks, and a first chroma block, the first chroma block comprising a plurality of first chroma sub-blocks;

determining a motion vector for each of the first luma sub-blocks based on control point motion vectors for the first CU;

based on the color format of the first CU being the 4:4:4 color format, setting a motion vector for each of the first chroma sub-blocks based only on the motion vector of each co-located luma sub-block of the first luma sub-blocks, and no other luma sub-block of the first luma sub-blocks;

reconstructing the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the first chroma sub-blocks;

determining that a coding mode for a second CU in a second picture is affine mode, wherein the second picture is different from the first picture;

determining that a color format of the second CU is 4:2:2 or 4:2:0 color format, wherein the second CU includes a second luma block, the second luma block comprising a plurality of second luma sub-blocks, and a second chroma block, the second chroma block comprising a plurality of second chroma sub-blocks;

determining a motion vector for each of the second luma sub-blocks based on control point motion vectors for the second CU;

based on the color format of the second CU being 4:2:2 or 4:2:0 color format, setting a motion vector for each of the second chroma sub-blocks based on an average of motion vectors of two or more co-located second luma sub-blocks; and

reconstructing the second CU based on the motion vector for each of the second luma sub-blocks and the motion vector for each of the second chroma sub-blocks.

2. The method of claim 1 , wherein determining the motion vector for each of the first chroma sub-blocks based only on the motion vector of each co-located luma sub-block of the first luma sub-blocks comprises setting the motion vector for each of the first chroma sub-blocks equal to the motion vector of each co-located luma sub-block of the first luma sub-blocks.

3. The method of claim 1 , wherein determining that the color format of the second CU is 4:2:2 or 4:2:0 color format comprises determining that the color format of the second CU is 4:2:2 color format, the method further comprising:

determining, for each of the second chroma sub-blocks, an average of motion vectors of two of the second luma sub-blocks,

wherein setting the motion vector for each of the second chroma sub-blocks based on the average of motion vectors of two or more co-located second luma sub-blocks of comprises setting the motion vector for each of the second chroma sub-blocks based on the average of motion vectors of the two second luma sub-blocks.

4. The method of claim 3 , wherein determining, for each of the second chroma sub-blocks, the average of motion vectors of two of the second luma sub-blocks comprises determining, for each of the second chroma sub-blocks, a weighted average of motion vectors of the two second luma sub-blocks.

5. The method of claim 1 , wherein each of the first luma sub-blocks is of size 4x4, and each of the second chroma sub-blocks is of size 4x4.

6. The method of claim 1 , wherein, in the 4:4:4 color format, a ratio of a height of the first luma block to a height of the first chroma block is equal to 1, and a ratio of a width of the first luma block to a width of the first chroma block is equal to 1.

7. The method of claim 1 , wherein reconstructing the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the first chroma sub-blocks comprises:

determining first prediction samples for each of the first luma sub-blocks based on the motion vector for each of the first luma sub-blocks and second prediction samples for each of the first chroma sub-blocks based on the motion vector for each of the first chroma sub-blocks; and

receiving information indicative of the residual samples for the first CU; and

reconstructing the first CU based on the first prediction samples, the second prediction samples, and the residual samples.

8. A method of encoding video data, the method comprising:

determining that a coding mode for a first coding unit (CU) in a first picture is affine mode;

determining that a color format of the first CU is 4:4:4 color format, wherein the first CU includes a first luma block, the first luma block comprising a plurality of first luma sub-blocks, and a first chroma block, the first chroma block comprising a plurality of first chroma sub-blocks;

determining a motion vector for each of the first luma sub-blocks based on control point motion vectors for the first CU;

based on the color format of the first CU being the 4:4:4 color format, setting a motion vector for each of the first chroma sub-blocks based only on the motion vector of each co-located luma sub-block of the first luma sub-blocks, and no other luma sub-block of the first luma sub-blocks;

encoding the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the first chroma sub-blocks;

determining that a coding mode for a second CU in a second picture is affine mode, wherein the second picture is different from the first picture;

determining that a color format of the second CU is 4:2:2 or 4:2:0 color format, wherein the second CU includes a second luma block, the second luma block comprising a plurality of second luma sub-blocks, and a second chroma block, the second chroma block comprising a plurality of second chroma sub-blocks;

determining a motion vector for each of the second luma sub-blocks based on control point motion vectors for the second CU;

based on the color format of the second CU being 4:2:2 or 4:2:0 color format, setting a motion vector for each of the second chroma sub-blocks based on an average of motion vectors of two or more co-located second luma sub-blocks; and

encoding the second CU based on the motion vector for each of the second luma sub-blocks and the motion vector for each of the second chroma sub-blocks.

9. The method of claim 8 , wherein determining the motion vector for each of the first chroma sub-blocks based only on the motion vector of each co-located luma sub-block of the first luma sub-blocks comprises setting the motion vector for each of the first chroma sub-blocks equal to the motion vector of each co-located luma sub-block of the first luma sub-blocks.

10. The method of claim 8 , wherein determining that the color format of the second CU is 4:2:2 or 4:2:0 color format comprises determining that the color format of the second CU is 4:2:2 color format, the method further comprising:

determining, for each of the second chroma sub-blocks, an average of motion vectors of two of the second luma sub-blocks,

wherein setting the motion vector for each of the second chroma sub-blocks based on the average of motion vectors of two or more co-located second luma sub-blocks comprises setting the motion vector for each of the second chroma sub-blocks based on the average of motion vectors of the two second luma sub-blocks.

11. The method of claim 10 , wherein determining, for each of the second chroma sub-blocks, the average of motion vectors of two of the second luma sub-blocks comprises determining, for each of the second chroma sub-blocks, a weighted average of motion vectors of the two second luma sub-blocks.

12. The method of claim 8 , wherein each of the first luma sub-blocks is of size 4x4, and each of the second chroma sub-blocks is of size 4x4.

13. The method of claim 8 , wherein, in the 4:4:4 color format, a ratio of a height of the first luma block to a height of the first chroma block is equal to 1, and a ratio of a width of the first luma block to a width of the first chroma block is equal to 1.

14. The method of claim 8 , wherein encoding the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the first chroma sub-blocks comprises:

determining first prediction samples for each of the first luma sub-blocks based on the motion vector for each of the first luma sub-blocks and second prediction samples for each of the first chroma sub-blocks based on the motion vector for each of the first chroma sub-blocks;

determining residual samples based on differences between the first prediction samples and samples of the first luma block and differences between the second prediction samples and samples of the first chroma block; and

signaling information indicative of the residual samples.

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

memory configured to store the video data; and

processing circuitry coupled to the memory and comprising at least one of fixed-function or programmable circuitry, wherein the processing circuitry is configured to:

determine that a coding mode for a first coding unit (CU) in a first picture is affine mode;

determine that a color format of the first CU is 4:4:4 color format, wherein the first CU includes a first luma block, the first luma block comprising a plurality of first luma sub-blocks, and a first chroma block, the first chroma block comprising a plurality of first chroma sub-blocks;

determine a motion vector for each of the first luma sub-blocks based on control point motion vectors for the first CU;

based on the color format of the first CU being the 4:4:4 color format, set a motion vector for each of the first chroma sub-blocks based only on the motion vector of each co-located luma sub-block of the first luma sub-blocks, and no other luma sub-block of the first luma sub-blocks;

code the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the first chroma sub-blocks;

determine that a coding mode for a second CU in a second picture is affine mode, wherein the second picture is different from the first picture;

determine that a color format of the second CU is 4:2:2 or 4:2:0 color format, wherein the second CU includes a second luma block, the second luma block comprising a plurality of second luma sub-blocks and a second chroma block, the second chroma block comprising a plurality of second chroma sub-blocks;

determine a motion vector for each of the second luma sub-blocks based on control point motion vectors for the second CU;

based on the color format of the second CU being 4:2:2 or 4:2:0 color format, set a motion vector for each of the second chroma sub-blocks based on an average of motion vectors of two or more co-located second luma sub-blocks; and

code the second CU based on the motion vector for each of the second luma sub-blocks and the motion vector for each of the second chroma sub-blocks.

16. The device of claim 15 , wherein to determine the motion vector for each of the first chroma sub-blocks based only on the motion vector of each co-located luma sub-block of the first luma sub-blocks, the processing circuitry is configured to set the motion vector for each of the first chroma sub-blocks equal to the motion vector of each co-located luma sub-block of the first luma sub-blocks.

17. The device of claim 15 , wherein to determine that the color format of the second CU is 4:2:2 or 4:2:0 color format, the processing circuitry is configured to determine that the color format of the second CU is 4:2:2 color format, and wherein the processing circuitry is configured to:

determine, for each of the second chroma sub-blocks, an average of motion vectors of two of the second luma sub-blocks,

wherein to set the motion vector for each of the second chroma sub-blocks based on the average of motion vectors of two or more co-located second luma sub-blocks, the processing circuitry is configured to set the motion vector for each of the second chroma sub-blocks based on the average of motion vectors of the two second luma sub-blocks.

18. The device of claim 17 , wherein to determine, for each of the second chroma sub-blocks, the average of motion vectors of two of the second luma sub-blocks, the processing circuitry is configured to determine, for each of the second chroma sub-blocks, a weighted average of motion vectors of the two second luma sub-blocks.

19. The device of claim 15 , wherein each of the first luma sub-blocks is of size 4x4, and each of the first chroma sub-blocks is of size 4x4.

20. The device of claim 15 , wherein, in the 4:4:4 color format, a ratio of a height of the first luma block to a height of the first chroma block is equal to 1, and a ratio of a width of the first luma block to a width of the first chroma block is equal to 1.

21. The device of claim 15 , wherein to code the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the first chroma sub-blocks, the processing circuitry is configured to reconstruct the first CU, and wherein to reconstruct the first CU, the processing circuitry is configured to:

determine first prediction samples for each of the first luma sub-blocks based on the motion vector for each of the first luma sub-blocks and second prediction samples for each of the first chroma sub-blocks based on the motion vector for each of the first chroma sub-blocks; and

receive information indicative of the residual samples for the first CU; and

reconstruct the first CU based on the first prediction samples, the second prediction samples, and the residual samples.

22. The device of claim 15 , wherein to code the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the first chroma sub-blocks, the processing circuitry is configured to encode the first CU, and wherein to encode the first CU, the processing circuitry is configured to:

determine first prediction samples for each of the first luma sub-blocks based on the motion vector for each of the first luma sub-blocks and second prediction samples for each of the first chroma sub-blocks based on the motion vector for each of the first chroma sub-blocks;

determine residual samples based on differences between the first prediction samples and samples of the first luma block and differences between the second prediction samples and samples of the first chroma block; and

signal information indicative of the residual samples.

23. The device of claim 15 , wherein the device comprises a wireless communication device.

24. A computer-readable storage medium having instructions stored thereon that when executed cause one or more processors of a device for coding video data to:

determine that a coding mode for a first coding unit (CU) of a first picture is affine mode;

determine that a color format of the first CU is 4:4:4 color format, wherein the first CU includes a first luma block, the first luma block comprising a plurality of first luma sub-blocks, and a first chroma block, the first chroma block comprising a plurality of first chroma sub-blocks;

determine a motion vector for each of the first luma sub-blocks based on control point motion vectors for the first CU;

based on the color format of the first CU being the 4:4:4 color format, set a motion vector for each of the first chroma sub-blocks based only on the motion vector of each co-located luma sub-block of the first luma sub-blocks, and no other luma sub-block of the first luma sub-blocks;

code the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the first chroma sub-blocks;

determine that a coding mode for a second CU in a second picture is affine mode, wherein the second picture is different from the first picture;

determine that a color format of the second CU is 4:2:2 or 4:2:0 color format, wherein the second CU includes a second luma block, the second luma block comprising a plurality of second luma sub-blocks, and a second chroma block, the second chroma block comprising a plurality of second chroma sub-blocks;

determine a motion vector for each of the second luma sub-blocks based on control point motion vectors for the second CU;

based on the color format of the second CU being 4:2:2 or 4:2:0 color format, set a motion vector for each of the second chroma sub-blocks based on an average of motion vectors of two or more co-located luma sub-blocks of the second luma sub-blocks; and

code the second CU based on the motion vector for each of the second luma sub-blocks and the motion vector for each of the second chroma sub-blocks.

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

means for determining that a coding mode for a first coding unit (CU) is affine mode;

means for determining that a color format of the first CU is 4:4:4 color format, wherein the first CU that includes a first luma block, the first luma block comprising a plurality of first luma sub-blocks, and a first chroma block, the first chroma block comprising a plurality of first chroma sub-blocks;

means for determining a motion vector for each of the first luma sub-blocks based on control point motion vectors for the first CU;

means for setting a motion vector for each of the first chroma sub-blocks based only on the motion vector of each co-located luma sub-block of the first luma sub-blocks, and no other luma sub-block of the first luma sub-blocks, based on the color format of the first CU being the 4:4:4 color format;

means for coding the first CU based on the motion vector for each of the first luma sub-blocks and the motion vector for each of the chroma sub-blocks;

means for determining that a coding mode for a second CU in a second picture is affine mode, wherein the second picture is different from the first picture;

means for determining that a color format of the second CU is 4:2:2 or 4:2:0 color format, wherein the second CU includes a second luma block, the second luma block comprising a plurality of second luma sub-blocks, and a second chroma block, the second chroma block comprising a plurality of second chroma sub-blocks;

means for determining a motion vector for each of the second luma sub-blocks based on control point motion vectors for the second CU;

means for setting a motion vector for each of the second chroma sub-blocks based on an average of motion vectors of two or more co-located second luma sub-blocks based on the color format of the second CU being 4:2:2 or 4:2:0 color format; and

means for coding the second CU based on the motion vector for each of the second luma sub-blocks and the motion vector for each of the second chroma sub-blocks.

26. The method of claim 3 , wherein determining that the coding mode for the first CU in the first picture is affine mode comprises determining that the coding mode for the first CU in the first picture is affine mode based on a received syntax element.

27. The device of claim 17 , wherein to determine that the coding mode for the first CU in the first picture is affine mode, the processing circuitry is configured to determine that the coding mode for the first CU in the first picture is affine mode based on a received syntax element.

28. The computer-readable storage medium of claim 24 , wherein the instructions that cause the one or more processors to determine that the coding mode for the first CU in the first picture is affine mode comprise instructions that cause the one or more processors to determine that the coding mode for the first CU in the first picture is affine mode based on a received syntax element.

29. The device of claim 25 , wherein the means for determining that the coding mode for the first CU in the first picture is affine mode comprises means for determining that the coding mode for the first CU in the first picture is affine mode based on a received syntax element.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2020
From: WANG, HONGTAO; CHIEN, WEI-JUNG; SEREGIN, VADIM; HAN, YU; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 053325/0910 →
Continuity (2)
Provisional Application 62809476 · Feb 22, 2019
Related Publication 20200275118A1 · Aug 27, 2020