Adaptive motion vector for warped motion mode of video coding
Abstract
The various implementations described herein include methods and systems for coding video. In one aspect, a method includes receiving a video bitstream including a current coding block in a current image frame, obtaining a syntax element value, and determining whether the current coding block is coded with a warped motion mode or a translational motion mode based on the syntax element value. The method further includes in accordance with a determination that the current coding block is coded with the warped motion mode, selecting a first motion vector difference (MVD) setting for the current coding block; in accordance with a determination that the current coding block is coded with the translational motion mode, selecting a second MVD setting distinct from the second MVD setting for the current coding block; and reconstructing the current coding block based at least in part on the selected MVD setting for the current coding block.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method for decoding video data, comprising:
receiving a video bitstream comprising a current coding block in a current image frame;
obtaining a syntax element value associated with the current coding block in the current image frame, the syntax element value being signaled before a motion vector difference (MVD) associated with the current coding block, the syntax element value indicating whether the current coding block is coded in a warped motion mode;
determining whether the current coding block is coded with the warped motion mode or a translational motion mode based on the syntax element value;
in accordance with a determination that the current coding block is coded with the warped motion mode, selecting a first motion vector difference (MVD) setting for the current coding block;
in accordance with a determination that the current coding block is coded with the translational motion mode, selecting a second MVD setting for the current coding block, the second MVD setting distinct from the first MVD setting; and
reconstructing the current coding block based at least in part on the selected MVD setting for the current coding block.
2. The method of claim 1 , wherein the first MVD setting includes a first MVD precision limit, and the second MVD setting includes a second MVD precision limit, and wherein the first MVD precision limit is lower than the second MVD precision limit.
3. The method of claim 1 , wherein the first MVD setting includes a first MVD precision limit, and the second MVD setting includes a second MVD precision limit, and wherein the first MVD precision limit is higher than the second MVD precision limit.
4. The method of claim 1 , wherein the first MVD setting further includes a first MVD magnitude range, and the second MVD setting includes a second MVD magnitude range distinct from the first MVD magnitude range.
5. The method of claim 4 , wherein the first MVD magnitude range is greater than the second MVD magnitude range.
6. The method of claim 1 , wherein the current coding block is coded with the warped motion mode, and the first MVD setting is selected to reconstruct the current coding block, further comprising:
determining that an alternative coding block of the current image frame is coded with the translational mode, the alternative coding block distinct from the current coding block;
selecting the second MVD setting for the alternative coding block; and
reconstructing the alternative coding block based at least in part on the second MVD setting for the alternative coding block.
7. The method of claim 1 , further comprising:
determining that the current coding block has two reference blocks including a first reference block and a second reference block;
determining a first MVD for the first reference block based on one of the first MVD setting and the second MVD setting;
based on a cost criterion of a difference of the first and second reference blocks, refining the first MVD for at least the first reference block to determine a first refined MVD; and
determining a first motion vector of the current coding block based on at least the first refined MVD associated with the first reference block.
8. The method of claim 7 , further comprising:
determining a second refined MVD for refining a MVD of the second reference block, including:
mirroring the first refined MVD to generate an intermediate MVD; and
scaling the intermediate MVD to generate the second refined MVD based on a ratio between two distances of the first and second reference blocks from the current coding block.
9. The method of claim 7 , wherein the difference of the first and second reference blocks includes one of: a sum of absolute difference (SAD), a sum of squared error (SAE), a sum of absolute transform difference (SATD), and a sum of mean removed SAD.
10. The method of claim 7 , refining the MVD for at least the first reference block further comprising:
identifying a plurality of refinement options for the first reference block;
determining that a difference of the first and second reference blocks corresponding to one of the plurality of refinement options satisfies the cost criterion;
identifying the one of the plurality of refinement options as the first refined MVD.
11. The method of claim 10 , refining the MVD for at least the first reference block further comprising:
determining a plurality of differences of the first and second reference blocks, each difference corresponding to a respective one of the plurality of refinement options for the first reference block; and
comparing the plurality of differences to determine whether each difference satisfies the cost criterion.
12. The method of claim 11 , determining the plurality of differences further comprising:
determining a subset of differences based on a subset of refinement options; and
before comparing the plurality of the differences, modifying the subset of differences with a difference factor that is less than 1.
13. The method of claim 11 , determining the plurality of differences further comprising:
determining a subset of differences based on a subset of refinement options; and
before comparing the plurality of the differences, modifying the subset of differences with a difference factor that is greater than 1.
14. A computing system, comprising:
control circuitry; and
memory storing one or more programs configured to be executed by the control circuitry, the one or more programs further comprising instructions for:
receiving a video bitstream comprising a current coding block in a current image frame;
obtaining a syntax element value associated with the current coding block in the current image frame, the syntax element value being signaled before a motion vector difference (MVD) associated with the current coding block, the syntax element value indicating whether the current coding block is coded in a warped motion mode;
determining whether the current coding block is coded with the warped motion mode or a translational motion mode based on the syntax element value;
in accordance with a determination that the current coding block is coded with the warped motion mode, selecting a first motion vector difference (MVD) setting for the current coding block;
in accordance with a determination that the current coding block is coded with the translational motion mode, selecting a second MVD setting for the current coding block, the second MVD setting distinct from the first MVD setting; and
reconstructing the current coding block based at least in part on the selected MVD setting for the current coding block.
15. The computing system of claim 14 , wherein each of the first and second MVD settings corresponds to a finest supported MVD precision for the current coding block.
16. The computing system of claim 14 , wherein each of the first and second MVD settings corresponds to a coarsest supported MVD precision for the current coding block.
17. The computing system of claim 14 , the one or more programs further comprising instructions for:
in accordance with a determination that the current coding block is coded with the warped motion mode, determining first context for entropy encoding the current coding block; and
in accordance with a determination that the current coding block is coded with the translational motion mode, determining second context for entropy encoding the current coding block, the second context distinct from the first context.
18. A non-transitory computer-readable storage medium storing one or more programs for execution by control circuitry of a computing system, the one or more programs comprising instructions for:
receiving a video bitstream comprising a current coding block in a current image frame;
obtaining a syntax element value associated with the current coding block in the current image frame, the syntax element value being signaled before a motion vector difference (MVD) associated with the current coding block, the syntax element value indicating whether the current coding block is coded in a warped motion mode;
determining whether the current coding block is coded with the warped motion mode or a translational motion mode based on the syntax element value;
in accordance with a determination that the current coding block is coded with the warped motion mode, selecting a first motion vector difference (MVD) setting for the current coding block;
in accordance with a determination that the current coding block is coded with the translational motion mode, selecting a second MVD setting for the current coding block, the second MVD setting distinct from the first MVD setting; and
reconstructing the current coding block based at least in part on the selected MVD setting for the current coding block.
19. The non-transitory computer-readable storage medium of claim 18 , the one or more programs further comprising instructions for:
determining that the current coding block has two reference blocks including a first reference block and a second reference block;
determining a first MVD for the first reference block based on one of the first MVD setting and the second MVD setting;
based on a cost criterion of a difference of the first and second reference blocks, refining the first MVD for at least the first reference block to determine a first refined MVD;
determining a first motion vector of the current coding block based on at least the first refined MVD associated with the first reference block; and
in accordance with a determination that the current coding block is coded with the warped motion mode, applying the first motion vector of the current coding block to determine a subblock motion vector for each of a set of subblocks of the current coding block.
20. The non-transitory computer-readable storage medium of claim 19 , wherein the current coding block includes a first subblock, the one or more programs further comprising instructions for:
determining that the first subblock has two reference blocks including a first reference subblock and a second reference subblock;
based on a cost criterion of a difference of the first and second reference subblocks, refining a subblock MVD of the first reference subblock to determine a refined subblock MVD; and
updating the subblock motion vector for the first subblock based on the refined subblock MVD associated with the first reference subblock.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.