IP Library › Granted Patent US 12,113,987
Granted Patent B2
US 12,113,987 · App. 17/556,142 · Granted Oct 8, 2024

Multi-pass decoder-side motion vector refinement

Inventors: Zhi Zhang (Munich, DE); Han Huang (San Diego, CA); Chun-Chi Chen (San Diego, CA); Yan Zhang (San Diego, CA); Vadim Seregin (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/139H04N19/132H04N19/157H04N19/176H04N19/186H04N19/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 12,113,987
App. No.
17/556,142
Granted
Oct 8, 2024
Kind
B2
Abstract

An example device includes memory configured to store video data and one or more processors coupled to the memory. The one or more processors are configured to apply a multi-pass DMVR to a motion vector for a block of the video data to determine at least one refined motion vector and decode the block based on the at least one refined motion vector. The multi-pass DMVR includes a block-based first pass, a sub-block-based second pass, and a sub-block-based third pass.

Claims (62)

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

applying a multi-pass decoder-side motion vector refinement (DMVR) to a motion vector for a block of the video data to determine at least one refined motion vector; and

decoding the block based on the at least one refined motion vector,

wherein the multi-pass DMVR comprises:

a first pass, the first pass being block-based and applied to the block of the video data, wherein applying the first pass comprises applying bi-lateral matching to the block and deriving at least one first refined motion vector for the block of the video data;

a second pass, the second pass being sub-block-based and applied to at least one second pass sub-block of the block of the video data, wherein a second pass sub-block width is equal to or less than a width of the block of the video data, and a second pass sub-block height is equal to or less than a height of the block of the video data, wherein the second pass uses the at least one first refined motion vector as an initial motion vector for the second pass, and wherein applying the second pass comprises applying bi-lateral matching to the at least one second pass sub-block and deriving at least one second refined motion vector for at least one respective second pass sub-block; and

a third pass, the third pass being sub-block-based and applied to at least one third pass sub-block of the block of the video data, the third pass sub-block being a sub-block of the at least one respective second pass sub-block, wherein a third pass sub-block width is equal to or less than the second pass sub-block width, and a third pass sub-block height is equal to or less than the second pass sub-block height, and wherein the third pass uses the at least one second refined motion vector as an initial motion vector for the at least one third pass sub-block, wherein applying the third pass comprises applying bi-directional optical flow (BDOF) to the at least one third pass sub-block and deriving at least one third refined motion vector for at least one respective third pass sub-block, and wherein the at least one refined motion vector is based on the at least one third refined motion vector.

2. The method of claim 1 , wherein the at least one second pass sub-block has a predetermined maximum width of 16 luma samples and a predetermined maximum height of 16 luma samples.

3. The method of claim 1 , wherein the at least one third pass sub-block has a predetermined maximum width of 8 luma samples and a predetermined maximum height of 8 luma samples.

4. The method of claim 1 , wherein a delta motion value range for at least one of the first pass or the second pass is [−8, 8] in a horizontal direction and [−8, 8] in a vertical direction and a delta motion value range for the third pass is [−2, 2] in the horizontal direction and [−2, 2] in the vertical direction.

5. The method of claim 1 , wherein the block of the video data is a first block, the method further comprising applying a shortened multi-pass DMVR to a motion vector for a second block of the video data, comprising:

determining to skip a given pass of the multi-pass DMVR for the second block; and

skipping the given pass of the multi-pass DMVR for the second block based on the determining to skip the given pass of the multi-pass DMVR for the second block.

6. The method of claim 5 , wherein the determining to skip the given pass is based on a result of a preceding pass.

7. The method of claim 1 , wherein the block of the video data is a first block, the method further comprising applying a shortened multi-pass DMVR to a motion vector for a second block of the video data, comprising:

applying a given sub-block-based pass of the multi-pass DMVR to a first sub-area of the second block of the video data, the first sub-area comprising a first one or more sub-blocks of the second block and deriving at least one refined motion vector for the first sub-area from applying the given sub-block-based pass of the multi-pass DMVR to the first sub-area;

determining to skip the given sub-block-based pass of the multi-pass DMVR for a second sub-area of the second block of the video data, the second sub-area comprising a second one or more sub-blocks of the second block, each of the first one or more sub-blocks of the second block being different than each of the second one or more sub-blocks of the second block; and

skipping the given sub-block-based pass of the multi-pass DMVR for the second sub-area of the second block based on the determining to skip the given sub-block-based pass of the multi-pass DMVR for the second sub-area of the second block, and deriving at least one refined motion vector for the second sub-area based on a refined motion vector from a preceding pass of the multi-pass DMVR to the second sub-area.

8. The method of claim 7 , wherein the determining to skip the given sub-block-based pass is based on a result of the preceding pass.

9. The method of claim 1 , wherein the block is a first block of the video data, the method further comprising:

determining not to apply DMVR to a second block of the video data;

based on the determining to not apply DMVR to the second block, skipping all passes of the multi-pass DMVR for the second block; and

decoding the second block based on an initial motion vector for the second block.

10. A device for decoding video data, the device comprising:

memory configured to store the video data; and

one or more processors implemented in circuitry and communicatively coupled to the memory, the one or more processors being configured to:

apply a multi-pass decoder-side motion vector refinement (DMVR) to a motion vector for a block of the video data to determine at least one refined motion vector; and

decode the block based on the at least one refined motion vector,

wherein the multi-pass DMVR comprises:

a first pass, the first pass being block-based and applied to the block of the video data, wherein applying the first pass comprises applying bi-lateral matching to the block and deriving at least one first refined motion vector for the block of the video data;

a second pass, the second pass being sub-block-based and applied to at least one second pass sub-block of the block of the video data, wherein a second pass sub-block width is equal to or less than a width of the block of the video data, and a second pass sub-block height is equal to or less than a height of the block of the video data, wherein the second pass uses the at least one first refined motion vector as an initial motion vector for the second pass, and wherein applying the second pass comprises applying bi-lateral matching to the at least one second pass sub-block and deriving at least one second refined motion vector for at least one respective second pass sub-block; and

a third pass, the third pass being sub-block-based and applied to at least one third pass sub-block of the block of the video data, the third pass sub-block being a sub-block of the at least one respective second pass sub-block, wherein a third pass sub-block width is equal to or less than the second pass sub-block width, and a third pass sub-block height is equal to or less than the second pass sub-block height, and wherein the third pass uses the at least one second refined motion vector as an initial motion vector for the at least one third pass sub-block, wherein applying the third pass comprises applying bi-directional optical flow (BDOF) to the at least one third pass sub-block and deriving at least one third refined motion vector for at least one respective third pass sub-block, and wherein the at least one refined motion vector is based on the at least one third refined motion vector.

11. The device of claim 10 , wherein the at least one second pass sub-block has a predetermined maximum width of 16 luma samples and a predetermined maximum height of 16 luma samples.

12. The device of claim 10 , wherein the at least one third pass sub-block has a predetermined maximum width of 8 luma samples and a predetermined maximum height of 8 luma samples.

13. The device of claim 10 , wherein a delta motion value range for at least one of the first pass or the second pass is [−8, 8] in a horizontal direction and [−8, 8] in a vertical direction and a delta motion value range for the third pass is [−2, 2] in the horizontal direction and [−2, 2] in the vertical direction.

14. The device of claim 10 , wherein the block of the video data is a first block, wherein the one or more processors are configured to apply a shortened multi-pass DMVR to a motion vector for a second block of the video data, and wherein to apply the shortened multi-pass DMVR to the motion vector for the second block, the one or more processors are configured to:

determine to skip a given pass of the multi-pass DMVR for the second block; and

skip the given pass of the multi-pass DMVR for the second block based on the determination to skip the given pass of the multi-pass DMVR for the second block.

15. The device of claim 14 , wherein the one or more processors are configured to determine to skip the given pass is based on a result of a preceding pass.

16. The device of claim 10 , wherein the block of the video data is a first block, wherein the one or more processors are configured to apply a shortened multi-pass DMVR to a motion vector for a second block of the video data, and wherein to apply the shortened multi-pass DMVR to the motion vector for the second block, the one or more processors are configured to:

apply a given sub-block-based pass of the multi-pass DMVR for a first sub-area of the second block of the video data, the first sub-area comprising a first one or more sub-blocks of the second block and derive at least one refined motion vector for the first sub-area from applying the given sub-block-based pass of the multi-pass DMVR to the first sub-area;

determine to skip the given sub-block-based pass of the multi-pass DMVR for a second sub-area of the second block of the video data, the second sub-area comprising a second one or more sub-blocks of the second block, each of the first one or more sub-blocks of the second block being different than each of the second one or more sub-blocks of the second block; and

skip the given sub-block-based pass of the multi-pass DMVR for the second sub-area of the second block based on the determination to skip the given sub-block-based pass of the multi-pass DMVR for the second sub-area of the second block and derive at least one refined motion vector for the second sub-area based on a refined motion vector from a preceding pass of the multi-pass DMVR to the second sub-area.

17. The device of claim 16 , wherein the one or more processors are configured to determine to skip the given sub-block-based pass is based on a result of the preceding pass.

18. The device of claim 10 , wherein the block is a first block of the video data, the one or more processors are further configured to:

determine not to apply DMVR to a second block of the video data;

based on the determination to not apply DMVR to the second block, skip all passes of the multi-pass DMVR for the second block; and

decode the second block based on an initial motion vector for the second block.

19. A non-transitory computer-readable storage medium storing instructions, which, when executed, cause one or more processors to:

apply a multi-pass decoder-side motion vector refinement (DMVR) to a motion vector for a block of video data to determine at least one refined motion vector; and

decode the block based on the at least one refined motion vector,

wherein the multi-pass DMVR comprises:

a first pass, the first pass being block-based and applied to the block of the video data, wherein applying the first pass comprises applying bi-lateral matching to the block and deriving at least one first refined motion vector for the block of the video data;

a second pass, the second pass being sub-block-based and applied to at least one second pass sub-block of the block of the video data, wherein a second pass sub-block width is equal to or less than a width of the block of the video data, and a second pass sub-block height is equal to or less than a height of the block of the video data, wherein the second pass uses the at least one first refined motion vector as an initial motion vector for the second pass, and wherein applying the second pass comprises applying bi-lateral matching to the at least one second pass sub-block and deriving at least one second refined motion vector for at least one respective second pass sub-block; and

a third pass, the third pass being sub-block-based and applied to at least one third pass sub-block of the block of the video data, the third pass sub-block being a sub-block of the at least one respective second pass sub-block, wherein a third pass sub-block width is equal to or less than the second pass sub-block width, and a third pass sub-block height is equal to or less than the second pass sub-block height, and wherein the third pass uses the at least one second refined motion vector as an initial motion vector for the at least one third pass sub-block, wherein applying the third pass comprises applying bi-directional optical flow (BDOF) to the at least one third pass sub-block and deriving at least one third refined motion vector for at least one respective third pass sub-block, and wherein the at least one refined motion vector is based on the at least one third refined motion vector.

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

means for applying a multi-pass decoder-side motion vector refinement (DMVR) to a motion vector for a block of the video data to determine at least one refined motion vector; and

means for decoding the block based on the at least one refined motion vector,

wherein the multi-pass DMVR comprises:

a first pass, the first pass being block-based and applied to the block of the video data, wherein applying the first pass comprises applying bi-lateral matching to the block and deriving at least one first refined motion vector for the block of the video data;

a second pass, the second pass being sub-block-based and applied to at least one second pass sub-block of the block of the video data, wherein a second pass sub-block width is equal to or less than a width of the block of the video data, and a second pass sub-block height is equal to or less than a height of the block of the video data, wherein the second pass uses the at least one first refined motion vector as an initial motion vector for the second pass, and wherein applying the second pass comprises applying bi-lateral matching to the at least one second pass sub-block and deriving at least one second refined motion vector for at least one respective second pass sub-block; and

a third pass, the third pass being sub-block-based and applied to at least one third pass sub-block of the block of the video data, the third pass sub-block being a sub-block of the at least one respective second pass sub-block, wherein a third pass sub-block width is equal to or less than the second pass sub-block width, and a third pass sub-block height is equal to or less than the second pass sub-block height, and wherein the third pass uses the at least one second refined motion vector as an initial motion vector for the at least one third pass sub-block, wherein applying the third pass comprises applying bi-directional optical flow (BDOF) to the at least one third pass sub-block and deriving at least one third refined motion vector for at least one respective third pass sub-block, and wherein the at least one refined motion vector is based on the at least one third refined motion vector.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2022
From: ZHANG, ZHI; HUANG, HAN; CHEN, CHUN-CHI; ZHANG, YAN; SEREGIN, VADIM; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 058621/0541 →
Continuity (2)
Provisional Application 63129221 · Dec 22, 2020
Related Publication 20220201315A1 · Jun 23, 2022