Joint coding of motion vector difference
This disclosure relates generally to video coding and particularly to methods and systems for providing signaling schemes for jointly coding of motion vector difference. An example method for decoding a current video block of a video bitstream is disclosed. The method includes receiving a coded video bitstream; determining, from the coded video bitstream, a flag for a current video block, wherein the flag indicates whether joint motion vector difference (MVD) coding is applied to the current video block; and in response to the flag indicating that the joint MVD coding is applied to the current video block: obtaining, by the device from the coded video bitstream, a joint MVD for the current video block, deriving, by the device based on the joint MVD, an MVD for the current video block, and decoding, by the device based on the joint MVD and the derived MVD, the current video block.
1. A method for encoding a current video block of a video bitstream into a coded video bitstream, comprising;
obtaining, by a device comprising a memory storing instructions and a processor in communication with the memory, the video bitstream comprising the current video block;
determining, by the device based on the video bitstream, a flag for the current video block, wherein the flag indicates whether joint motion vector difference (MVD) coding is applied to the current video block; and
when the flag indicates that the joint MVD coding is applied to the current video block:
encoding, by the device based on the video bitstream, a joint MVD for the current video block into the coded video bitstream,
deriving, by the device based on the joint MVD, an MVD for the current video block, and
encoding, by the device based on the joint MVD and the derived MVD, the current video block into the coded video bitstream,
wherein the flag indicates whether to apply joint MVD and to derive reference frame to the current video block in a single reference mode.
2. The method of claim 1 , further comprising:
determining a first reference frame and a second reference frame for the current video block in a compound reference mode;
when the flag indicates that the joint MVD coding is applied to the current video block and the compound reference mode comprises NEW_NEARMV:
applying the joint MVD to the first reference frame to the current video block, and
applying the derived MVD to the second reference frame to the current video block; and
when the flag indicates that the joint MVD coding is applied to the current video block and the compound reference mode comprises NEAR_NEWMV:
applying the joint MVD to the second reference frame to the current video block, and
applying the derived MVD to the first reference frame to the current video block.
3. The method of claim 1 , further comprising:
when the flag indicates that the joint MVD coding is applied to the current video block, determining that adaptive MVD pixel resolution is applied for coding MVD.
4. The method of claim 3 , wherein the encoding the joint MVD for the current video block into the coded video bitstream comprising:
determining an MVD class of the joint MVD;
determining a current MVD pixel resolution for the joint MVD based on the MVD class; and
encoding the joint MVD into the coded video bitstream corresponding to the current MVD pixel resolution.
5. The method of claim 1 , wherein:
the flag comprises one of the following values:
a first value indicating that one MVD is signaled to one reference frame,
a second value indicating that one MVD is signaled to one reference frame and adaptive MVD pixel resolution is applied to coding MVD, or
a third value indicating that one MVD is jointly signaled to two reference frames.
6. The method of claim 1 , wherein:
the flag comprises one of the following values:
a first value indicating that one MVD is signaled to one reference frame,
a second value indicating that one MVD is signaled to one reference frame and adaptive MVD pixel resolution is applied to coding MVD, or
a third value indicating that one MVD is jointly signaled to two reference frames and adaptive MVD pixel resolution is applied to coding MVD.
7. The method of claim 1 , wherein:
the flag comprises one of the following values:
a first value indicating that one MVD is signaled to one reference frame,
a second value indicating that one MVD is signaled to one reference frame and adaptive MVD pixel resolution is applied to coding MVD,
a third value indicating that one MVD is jointly signaled to two reference frames, or
a fourth value indicating that one MVD is jointly signaled to two reference frames and adaptive MVD pixel resolution is applied to coding MVD.
8. The method according to claim 1 , wherein:
a second flag is encoded for a high-level syntax comprising at least one of the following: a video parameter set (VPS), a picture parameter set (PPS), a sequence parameter set (SPS), a picture header, a frame header, a slice header, a tile header, or a coding tree unit (CTU) header; and
the second flag indicates whether the flag is signaled at a coded block level.
9. The method of claim 1 , further comprising:
when the flag indicates to apply joint MVD and to derive reference frame to the current video block:
determining a first reference frame for the current video block,
deriving a second reference frame based on the first reference frame,
applying the joint MVD to the first reference frame to the current video block, and
applying the derived MVD to the derived second reference frame to the current video block.
10. An apparatus for encoding a current video block of a video bitstream into a coded video bitstream, the apparatus comprising:
a memory storing instructions; and
a processor in communication with the memory, wherein, when the processor executes the instructions, the processor is configured to cause the apparatus to:
obtain the video bitstream comprising the current video block;
determine, based on the video bitstream, a flag for the current video block, wherein the flag indicates whether joint motion vector difference (MVD) coding is applied to the current video block; and
when the flag indicates that the joint MVD coding is applied to the current video block:
encode, based on the video bitstream, a joint MVD for the current video block into the coded video bitstream,
derive, based on the joint MVD, an MVD for the current video block, and
encode, based on the joint MVD and the derived MVD, the current video block into the coded video bitstream,
wherein the flag indicates whether to apply joint MVD and to derive reference frame to the current video block in a single reference mode.
11. The apparatus according to claim 10 , wherein, when the processor executes the instructions, the processor is configured to further cause the apparatus to:
determine a first reference frame and a second reference frame for the current video block in a compound reference mode;
when the flag indicates that the joint MVD coding is applied to the current video block and the compound reference mode comprises NEW_NEARMV:
apply the joint MVD to the first reference frame to the current video block, and
apply the derived MVD to the second reference frame to the current video block; and
when the flag indicates that the joint MVD coding is applied to the current video block and the compound reference mode comprises NEAR_NEWMV:
apply the joint MVD to the second reference frame to the current video block, and
apply the derived MVD to the first reference frame to the current video block.
12. The apparatus according to claim 10 , wherein, when the processor executes the instructions, the processor is configured to further cause the apparatus to:
when the flag indicates that the joint MVD coding is applied to the current video block, determine that adaptive MVD pixel resolution is applied for coding MVD.
13. The apparatus according to claim 10 , wherein:
the flag comprises one of the following values:
a first value indicating that one MVD is signaled to one reference frame,
a second value indicating that one MVD is signaled to one reference frame and adaptive MVD pixel resolution is applied to coding MVD, or
a third value indicating that one MVD is jointly signaled to two reference frames.
14. The apparatus according to claim 10 , wherein:
the flag comprises one of the following values:
a first value indicating that one MVD is signaled to one reference frame,
a second value indicating that one MVD is signaled to one reference frame and adaptive MVD pixel resolution is applied to coding MVD, or
a third value indicating that one MVD is jointly signaled to two reference frames and adaptive MVD pixel resolution is applied to coding MVD.
15. The apparatus according to claim 10 , wherein:
the flag comprises one of the following values:
a first value indicating that one MVD is signaled to one reference frame,
a second value indicating that one MVD is signaled to one reference frame and adaptive MVD pixel resolution is applied to coding MVD,
a third value indicating that one MVD is jointly signaled to two reference frames, or
a fourth value indicating that one MVD is jointly signaled to two reference frames and adaptive MVD pixel resolution is applied to coding MVD.
16. The apparatus according to claim 10 , wherein:
a second flag is encoded for a high-level syntax comprising at least one of the following: a video parameter set (VPS), a picture parameter set (PPS), a sequence parameter set (SPS), a picture header, a frame header, a slice header, a tile header, or a coding tree unit (CTU) header; and
the second flag indicates whether the flag is signaled at a coded block level.
17. The apparatus according to claim 10 , wherein, when the processor executes the instructions, the processor is configured to further cause the apparatus to:
when the flag indicates to apply joint MVD and to derive reference frame to the current video block:
determine a first reference frame for the current video block,
derive a second reference frame based on the first reference frame,
apply the joint MVD to the first reference frame to the current video block, and
apply the derived MVD to the derived second reference frame to the current video block.
18. A non-transitory computer readable storage medium storing instructions, wherein, when the instructions are executed by a processor, the instructions are configured to cause the processor to perform a conversion between video data and a coded video bitstream by:
obtaining the video data comprising a current video block;
determining, based on the video data, a flag for the current video block, wherein the flag indicates whether joint motion vector difference (MVD) coding is applied to the current video block; and
when the flag indicates that the joint MVD coding is applied to the current video block:
encoding, based on the video data, a joint MVD for the current video block into the coded video bitstream,
deriving, based on the joint MVD, an MVD for the current video block, and
encoding, based on the joint MVD and the derived MVD, the current video block into the coded video bitstream,
wherein the flag indicates whether to apply joint MVD and to derive reference frame to the current video block in a single reference mode.
19. The non-transitory computer readable storage medium according to claim 18 , wherein, when the instructions are executed by the processor, the instructions are configured to further cause the processor to:
determine a first reference frame and a second reference frame for the current video block in a compound reference mode;
when the flag indicates that the joint MVD coding is applied to the current video block and the compound reference mode comprises NEW_NEARMV:
apply the joint MVD to the first reference frame to the current video block, and
apply the derived MVD to the second reference frame to the current video block; and
when the flag indicates that the joint MVD coding is applied to the current video block and the compound reference mode comprises NEAR_NEWMV:
apply the joint MVD to the second reference frame to the current video block, and
apply the derived MVD to the first reference frame to the current video block.
20. The non-transitory computer readable storage medium according to claim 18 , wherein:
the flag comprises one of the following values:
a first value indicating that one MVD is signaled to one reference frame,
a second value indicating that one MVD is signaled to one reference frame and adaptive MVD pixel resolution is applied to coding MVD, or
a third value indicating that one MVD is jointly signaled to two reference frames.