IP Library › Granted Patent US 12,355,975
Granted Patent B2
US 12,355,975 · App. 18/437,659 · Granted Jul 8, 2025

Joint coding of motion vector difference

Inventors: Liang Zhao (Sunnyvale, CA); Xin Zhao (San Jose, CA); Shan Liu (San Jose, CA)
Assignee: TENCENT AMERICA LLC
H04N19/137H04N19/105H04N19/172H04N19/176H04N19/46
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,355,975
App. No.
18/437,659
Granted
Jul 8, 2025
Kind
B2
Abstract

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.

Claims (113)

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.

Continuity (4)
Continuation 17901043 · Sep 1, 2022
Provisional Application 63289064 · Dec 13, 2021
Provisional Application 63281825 · Nov 22, 2021
Related Publication 20240187604A1 · Jun 6, 2024
References Cited (13)
US 11943448B2 · Zhao · 2024 [cited by examiner]
US 20130003849A1 · Chien et al. · 2013 [cited by applicant]
US 20140010310A1 · Rapaka et al. · 2014 [cited by applicant]
US 20170332095A1 · Zou et al. · 2017 [cited by applicant]
US 20200154126A1 · Li et al. · 2020 [cited by applicant]
WO WO2010106100A2 · 2010 [cited by applicant]
International Search Report and Written Opinion regarding PCT/US2022/042697 dated Dec. 28, 2022, 6 pages. [cited by applicant]
Chen et al., “An Overview of Core Coding Tools in the AV1 Video Codec,” Google, USA, 2018, 5 pages. [cited by applicant]
De Rivaz et al., “AV1 Bitstream & Decoding Process Specification,” Jan. 8, 2019, 681 pages. [cited by applicant]
Karpilovsky et al., “Proposal: New Inter Modes for AV2,” Google, Feb. 24, 2021, 6 pages. [cited by applicant]
Lu et al., “Optical Flow Motion Vector Refinement for AV2,” Google, Sep. 20, 2021, 11 pages. [cited by applicant]
Bross et al., “Versatile Video Coding Editorial Refinements on Draft 10,” Joint Video Experts Team, Oct. 16, 2020, 512 pages. [cited by applicant]
Zhou et al., “Adaptive Motion Vector Resolution In AVS3 Standard,” Samsung Research China—Beijing (SRC-B), Samsung Electronics Co., Ltd., Downloaded from UTC from IEEE Xplore on Nov. 28, 2022, 4 pages. [cited by applicant]