Overlapped optical flow-based motion vector refinement with adaptive subblock size
An example method of video coding includes receiving a video bitstream comprising a plurality of blocks. The method also includes deriving a set of subblock motion vectors for a current block of the plurality of blocks and deriving a set of refined subblock motion vectors for the current block by applying an optical flow refinement on a set of subblocks of the current block. The respective sizes of the set of subblocks are adaptively selected for the optical flow refinement. The method further includes reconstructing the current block using the set of refined subblock motion vectors.
1 . A method of video decoding performed at a computing system having memory and one or more processors, the method comprising:
receiving a video bitstream comprising a plurality of blocks;
deriving a set of subblock motion vectors for a current block of the plurality of blocks;
adaptively selecting respective sizes of a set of subblocks for optical flow refinement by extending a first subblock of the set of subblocks according to a first size of the respective sizes, including:
when the first subblock is located at a boundary of the current block, extending one or more first sides of the first subblock by N samples and padding one or more second sides of the first subblock; and
when the first subblock is not located at the boundary of the current block, extending each side of the first subblock by N samples;
deriving a set of refined subblock motion vectors for the current block by applying the optical flow refinement on the set of subblocks of the current block; and
reconstructing the current block using the set of refined subblock motion vectors.
2 . The method of claim 1 , wherein the respective sizes of the set of subblocks are predefined.
3 . The method of claim 1 , wherein the respective sizes of the set of subblocks are derived or signaled.
4 . The method of claim 1 , wherein the respective sizes comprise a base size and a second size, wherein the second size corresponds to the base size with N additional columns and rows, N being a non-negative integer.
5 . The method of claim 4 , wherein a value for N is selected from the group consisting of: 1, 2, 3, and 4.
6 . The method of claim 4 , wherein a value for N is based on a position of a subblock within the current block.
7 . The method of claim 1 , further comprising padding one or more values for an extended size of a subblock located at a boundary of the current block.
8 . The method of claim 1 , wherein the respective sizes of the set of subblocks are adaptively selected for the optical flow refinement by extending the first subblock of the set of subblocks according to a second size of the respective sizes, including:
when the first subblock is located at a boundary of the current block, extending one or more first sides of the first subblock by M samples and padding one or more second sides of the first subblock; and
when the first subblock is not located at the boundary of the current block, extending each side of the first subblock by N samples, wherein N is different than M.
9 . The method of claim 1 , wherein the respective sizes of the set of subblocks are adaptively selected for the optical flow refinement by further comprising extending the first subblock of the set of subblocks according to a first second size of the respective sizes, including:
when the first subblock is located at a boundary of the current block, not extending the first subblock; and
when the first subblock is not located at the boundary of the current block, extending each side of the first subblock by N samples.
10 . The method of claim 1 , wherein the respective sizes of the set of subblocks are adaptively selected for the optical flow refinement by extending the first subblock of the set of subblocks according to a second size of the respective sizes, including:
when the first subblock is located at a boundary of the current block, extending sides of the first subblock that are on an interior of the current block and not extending sides of the first subblock that are on the boundary of the current block; and
when the first subblock is not located at the boundary of the current block, extending each side of the first subblock by N samples.
11 . A computing system, comprising:
control circuitry;
memory; and
one or more sets of instructions stored in the memory and configured for execution by the control circuitry, the one or more sets of instructions comprising instructions for:
receiving video data comprising a plurality of blocks, including a current block;
identifying a set of subblock motion vectors for the current block;
identifying a set of refined subblock motion vectors for the current block by applying an optical flow refinement on a set of subblocks of the current block, where respective sizes of the set of subblocks are adaptively selected for the optical flow refinement by extending a first subblock of the set of subblocks according to a first size of the respective sizes, including:
when the first subblock is located at a boundary of the current block, extending one or more first sides of the first subblock by N samples and padding one or more second sides of the first subblock; and
when the first subblock is not located at the boundary of the current block, extending each side of the first subblock by N samples; and
encoding the current block using the set of refined subblock motion vectors.
12 . The computing system of claim 11 , wherein the respective sizes of the set of subblocks are predefined.
13 . The computing system of claim 11 , wherein the respective sizes of the set of subblocks are derived or signaled.
14 . The computing system of claim 11 , wherein the respective sizes comprise a base size and a second size, wherein the second size corresponds to the base size with N additional columns and rows, N being a non-negative integer.
15 . The computing system of claim 11 , wherein the one or more sets of instructions further comprise instructions for padding one or more values for an extended size of a subblock located at a boundary of the current block.
16 . A non-transitory computer-readable storage medium storing a video bitstream that is generated by a video encoding method and one or more instructions, the instructions when executed by a processor, cause a computing system to generate the video bitstream, the video bitstream comprising:
coded information for a plurality of blocks; and
wherein the video encoding method comprises:
identifying a set of subblock motion vectors for the current block;
identifying a set of refined subblock motion vectors for the current block by applying an optical flow refinement on a set of subblocks of the current block, where respective sizes of the set of subblocks are adaptively selected for the optical flow refinement by extending a first subblock of the set of subblocks according to a first size of the respective sizes, including:
when the first subblock is located at a boundary of the current block, extending one or more first sides of the first subblock by N samples and padding one or more second sides of the first subblock; and
when the first subblock is not located at the boundary of the current block, extending each side of the first subblock by N samples; and
encoding the current block using the set of refined subblock motion vectors.
17 . The non-transitory computer-readable storage medium of claim 16 , wherein the respective sizes of the set of subblocks are predefined.
18 . The non-transitory computer-readable storage medium of claim 16 , wherein the respective sizes of the set of subblocks are derived or signaled.
19 . The non-transitory computer-readable storage medium of claim 16 , wherein the respective sizes comprise a base size and a second size, wherein the second size corresponds to the base size with N additional columns and rows, N being a non-negative integer.