Intersecting motion vector prediction in video coding
Abstract
Example methods, devices, and computer-readable media are described. An example device includes one or more processors configured to determine, for each of a plurality of subblocks of a current block of a current picture of video data, a corresponding intersecting motion vector list. Each corresponding intersecting motion vector list includes at least one intersecting motion vector. The at least one intersecting motion vector includes a source motion vector associated with a first reference picture and a destination motion vector associated with a second reference picture. A source block is located in the first reference picture and has a predictor that is a subset of a destination block located in the second reference picture. The one or more processors are configured to determine an intersecting motion vector for the current block based on the corresponding intersecting motion vector lists and decode the current block based on the intersecting motion vector.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method of decoding video data, the method comprising:
determining, for each of a plurality of subblocks of a current block of a current picture of the video data, a corresponding intersecting motion vector list, each corresponding intersecting motion vector list comprising at least one intersecting motion vector, the at least one intersecting motion vector comprising a source motion vector associated with a source block located in a first reference picture and a destination motion vector associated with a destination block located in a second reference picture, and wherein the source block has a predictor that is a subset of the destination block, the first reference picture being already decoded and temporally prior to the current picture and the second reference picture being already decoded and temporally after the current picture; determining an intersecting motion vector for the current block based on the corresponding intersecting motion vector lists; and decoding the current block based on the intersecting motion vector.
2 . The method of claim 1 , further comprising storing each corresponding intersecting motion vector list.
3 . The method of claim 2 , wherein storing each corresponding intersecting motion vector list comprises storing, for a first corresponding intersecting motion vector list, only a first number of intersecting motion vectors appearing first in the first corresponding intersecting motion vector list, the first number of intersecting motion vectors being less than a number of intersecting motion vectors in the first corresponding intersecting motion vector list.
4 . The method of claim 1 , wherein determining the corresponding intersecting motion vector list comprises determining which intersecting motion vectors are valid, wherein the corresponding intersecting motion vector list comprises intersecting motion vectors determined to be valid and does not comprise intersecting motion vectors determined to not be valid.
5 . The method of claim 4 , wherein determining the corresponding intersecting motion vector list further comprises sorting valid intersecting motion vectors of a corresponding subblock based on bilateral matching cost so as to place an intersecting motion vector having a lower bilateral matching cost in a position closer to a front of the corresponding intersecting motion vector list than an intersecting motion vector having a higher bilateral matching cost.
6 . The method of claim 4 , wherein determining the corresponding intersecting motion vector list further comprises sorting valid intersecting motion vectors of a corresponding subblock based on an occurrences count of each intersecting motion vector in the corresponding intersecting motion vector list so as to place an intersecting motion vector having a higher occurrence count in a position closer to a front of the corresponding intersecting motion vector list than the intersecting motion vector having a lower occurrence count.
7 . The method of claim 4 , wherein determining which intersecting motion vectors are valid comprises determining that a first intersecting motion vector is valid, wherein determining that the first intersecting motion vector is valid comprises at least one of:
determining that the first intersecting motion vector comprises both a first source motion vector and a first destination motion vector in an extended picture boundary; determining that a first absolute value of each of a first horizontal component of the first source motion vector and a first horizontal component of the first destination motion vector is greater than a horizontal threshold; determining that a second absolute value of each of a first vertical component of the first source motion vector and a first vertical component of the first destination motion vector is greater than a vertical threshold; determining, for a pair of intersecting motion vectors comprising the first intersecting motion vector and a second intersecting motion vector, that a difference between the first horizontal component of the first source motion vector and a second horizontal component of a second source motion vector of the second intersecting motion vector is greater than a difference threshold; determining, for the pair of intersecting motion vectors, that a difference between the first vertical component of the first source motion vector and a second vertical component of the second source motion vector is greater than the difference threshold; determining, for the pair of intersecting motion vectors, that a difference between the first horizontal component of the first destination motion vector and a second horizontal component of a second destination motion vector of the second intersecting motion vector is greater than the difference threshold; or determining, for the pair of intersecting motion vectors, that a difference between the first vertical component of the first destination motion vector and a second vertical component of the second destination motion vector is greater than the difference threshold.
8 . The method of claim 1 , wherein determining the intersecting motion vector comprises:
determining an intersecting motion vector list for the current block based on all of the corresponding intersecting motion vector lists; and determining a value of an index, the value of the index indicative of the intersecting motion vector in the intersecting motion vector list for the current block.
9 . The method of claim 8 , wherein a number of intersecting motion vectors in the intersecting motion vector list for the current block is less than a total number of intersecting motion vectors in the corresponding intersecting motion vector lists.
10 . The method of claim 8 , wherein determining the intersecting motion vector list for the current block comprises sorting intersecting motion vectors of each of the corresponding intersecting motion vector lists based on at least one of bilateral matching cost, occurrence count, or template matching cost.
11 . The method of claim 1 , wherein the current block has a top-left position of (X, Y), the source motion vector comprises (srcItcMvHor, srcItcMvVer), the destination motion vector comprises (dstItcMvHor, dstItcMvVer), the source block comprises (srcRefBlk), and the destination block comprises (dstRefBlk), wherein the source block has a top-left position of (srcX, srcY) and the destination block has a top-left position of (dstX, dstY), and wherein srcX is equal to X+srcItcMvHor, srcY is equal to Y+srcItcMvVer, dstX is equal to X+dstItcMvHor, and dstY is equal to Y+dstItcMvVer.
12 . The method of claim 1 , wherein a block size of the source block, a block size of the destination block, a position of the source block, and a position of the destination block are of a same precision as the source motion vector and the destination motion vector.
13 . The method of claim 1 , wherein the decoding the current block comprises decoding the current block using subblock prediction, and wherein each subblock is predicted using a respective intersecting motion vector.
14 . The method of claim 13 , wherein decoding the current block using subblock prediction comprises using an affine model.
15 . The method of claim 1 , wherein the plurality of subblocks comprises a plurality of 4×4 subblocks.
16 . A device for decoding video data, the device comprising:
one or more memories for storing the video data; and one or more processors operatively coupled to the one or more memories, the one or more processors configured to:
determine, for each of a plurality of subblocks of a current block of a current picture of the video data, a corresponding intersecting motion vector list, each corresponding intersecting motion vector list comprising at least one intersecting motion vector, the at least one intersecting motion vector comprising a source motion vector associated with a source block located in a first reference picture and a destination motion vector associated with a destination block located in a second reference picture, and wherein the source block has a predictor that is a subset of the destination block, the first reference picture being already decoded and temporally prior to the current picture and the second reference picture being already decoded and temporally after the current picture;
determine an intersecting motion vector for the current block based on the corresponding intersecting motion vector lists; and
decode the current block based on the intersecting motion vector.
17 . The device of claim 16 , wherein the one or more processors are further configured to store each corresponding intersecting motion vector list in the one or more memories.
18 . The device of claim 17 , wherein as part of storing each corresponding intersecting motion vector list, the one or more processors are configured to store a first number of intersecting motion vectors appearing first in a first corresponding intersecting motion vector list, the first number of intersecting motion vectors being less than the number of intersecting motion vectors in the first corresponding intersecting motion vector list.
19 . The device of claim 16 , wherein as part of determining the corresponding intersecting motion vector list, the one or more processors are configured to determine which intersecting motion vectors are valid, wherein the corresponding intersecting motion vector list comprises intersecting motion vectors determined to be valid and does not comprise intersecting motion vectors determined to not be valid.
20 . The device of claim 19 , wherein as part of determining the corresponding intersecting motion vector list, the one or more processors are configured to sort valid intersecting motion vectors of a corresponding subblock based on bilateral matching cost so as to place an intersecting motion vector having a lower bilateral matching cost in a position closer to a front of the corresponding intersecting motion vector list than an intersecting motion vector having a higher bilateral matching cost.
21 . The device of claim 19 , wherein as part of determining the corresponding intersecting motion vector list, the one or more processors are configured to sort valid intersecting motion vectors of a corresponding subblock based on an occurrences count of each intersecting motion vector in the corresponding intersecting motion vector list so as to place an intersecting motion vector having a higher occurrence count cost in a position closer to a front of the corresponding intersecting motion vector list than the intersecting motion vector having a lower occurrence count.
22 . The device of claim 19 , wherein as part of determining which intersecting motion vectors are valid, the one or more processors are configured to determine that a first intersecting motion vector is valid, and as part of determining that the first intersecting motion vector is valid, the one or more processors are configured to at least one of:
determine that the first intersecting motion vector comprises both a first source motion vector and a first destination motion vector in an extended picture boundary; determine that a first absolute value of each of a first horizontal component of the first source motion vector and a first horizontal component of the first destination motion vector is greater than a horizontal threshold; determine that a second absolute value of each of a first vertical component of the first source motion vector and a first vertical component of the first destination motion vector is greater than a vertical threshold; determine, for a pair of intersecting motion vectors comprising the first intersecting motion vector and a second intersecting motion vector, that a difference between the first horizontal component of the first source motion vector and a second horizontal component of a second source motion vector of the second intersecting motion vector is greater than a difference threshold; determine, for the pair of intersecting motion vectors, that a difference between the first vertical component of the first source motion vector and a second vertical component of the second source motion vector is greater than the difference threshold; determine, for the pair of intersecting motion vectors, that a difference between the first horizontal component of the first destination motion vector and a second horizontal component of a second destination motion vector of the second intersecting motion vector is greater than the difference threshold; or determine, for the pair of intersecting motion vectors, that a difference between the first vertical component of the first destination motion vector and a second vertical component of the second destination motion vector is greater than the difference threshold.
23 . The device of claim 16 , wherein as part of determining the intersecting motion vector, the one or more processors are configured to:
determine an intersecting motion vector list for the current block based on all of the corresponding intersecting motion vector lists; and determine a value of an index, the value of the index indicative of the intersecting motion vector in the intersecting motion vector list for the current block.
24 . The device of claim 23 , wherein a number of intersecting motion vectors in the intersecting motion vector list for the current block is less than a total number of intersecting motion vectors in the corresponding intersecting motion vector lists.
25 . The device of claim 23 , wherein as part of determining the intersecting motion vector list for the current block, the one or more processors are configured to sort intersecting motion vectors of each of the corresponding intersecting motion vector lists based on at least one of bilateral matching cost, occurrence count, or template matching cost.
26 . The device of claim 16 , wherein the current block has a top-left position of (X, Y), the source motion vector comprises (srcItcMvHor, srcItcMvVer), the destination motion vector comprises (dstItcMvHor, dstItcMvVer), the source block comprises (srcRefBlk), and the destination block comprises (dstRefBlk), wherein the source block has a top-left position of (srcX, srcY) and the destination block has a top-left position of (dstX, dstY), and wherein srcX is equal to X+srcItcMvHor, srcY is equal to Y+srcItcMvVer, dstX is equal to X+dstItcMvHor, dstY is equal to Y+dstItcMvVer.
27 . The device of claim 16 , wherein a block size of the source block, a block size of the destination block, a position of the source block, and a position of the destination block are of a same precision as the source motion vector and the destination motion vector.
28 . The device of claim 16 , wherein as part of decoding the current block, the one or more processors are configured to decode the current block using subblock prediction, and wherein each subblock is predicted using a respective intersecting motion vector.
29 . The device of claim 28 , wherein as part of decoding the current block using subblock prediction, the one or more processors are configured to use an affine model.
30 . The device of claim 16 , further comprising a display configured to display decoded video data.
31 . The device of claim 16 , wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
32 . The device of claim 16 , wherein the plurality of subblocks comprises a plurality of 4×4 subblocks.
33 . A method for encoding video data, the method comprising:
determining, for each of a plurality of subblocks of a current block of a current picture of the video data, a corresponding intersecting motion vector list, each corresponding intersecting motion vector list comprising at least one intersecting motion vector, the at least one intersecting motion vector comprising a source motion vector associated with a source block located in a first reference picture and a destination motion vector associated with a destination block located in a second reference picture, and wherein the source block has a predictor that is a subset of the destination block, the first reference picture being already decoded and temporally prior to the current picture and the second reference picture being already decoded and temporally after the current picture; determining an intersecting motion vector for the current block based on the corresponding intersecting motion vector lists; and encoding the current block in accordance with the intersecting motion vector.
34 . A device for encoding video data, the device comprising:
one or more memories for storing the video data; and one or more processors operatively coupled to the one or more memories, the one or more processors configured to:
determine, for each of a plurality of subblocks of a current block of a current picture of video data, a corresponding intersecting motion vector list, each corresponding intersecting motion vector list comprising at least one intersecting motion vector, the at least one intersecting motion vector comprising a source motion vector associated with a source block located in a first reference picture and a destination motion vector associated with a destination block located in a second reference picture, and wherein the source block has a predictor that is a subset of the destination block, the first reference picture being already decoded and temporally prior to the current picture and the second reference picture being already decoded and temporally after the current picture;
determine an intersecting motion vector for the current block based on the corresponding intersecting motion vector lists; and
encode the current block in accordance with on the intersecting motion vector.Join the waitlist — get patent alerts
Track US2025317555A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.