# US 11,909,982 B2 · Restrictions on motion vector difference

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,909,982 B2
- Document ID: US11909982B2
- Status: Granted
- Kind: B2
- Application number: 17/885,295
- Filed: 2022-08-10
- Published: 2023-02-09
- Granted: 2024-02-20
- Earliest claimed: 2019-04-25
- Assignees: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Applicants: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Inventors: Zhipin Deng; Li Zhang; Hongbin Liu
- Web page: https://patentgrep.com/patent/US11909982B2

## CPC

- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/105: Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
- H04N 19/109: among a plurality of temporal predictive coding modes
- H04N 19/157: Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N 19/167: Position within a video image, e.g. region of interest [ROI]
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/184: the unit being bits, e.g. of the compressed video stream
- H04N 19/52: by predictive encoding
- H04N 19/523: with sub-pixel accuracy
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of video processing comprises determining, for a conversion between a first block of video and a bitstream representation of the first block, a range of motion vector difference (MVD) component associated with the first block, wherein the range of MVD component is [−2M, 2M−1], where M=17; constraining value of the MVD component to be in the range of MVD component; and performing the conversion based on the constrained MVD component.

## Claims

### Claim 1

A method of processing video data, comprising:
determining, for a conversion between a first block of a video and a bitstream of the video, a motion vector difference (MVD) component with a first precision associated with the first block, the first precision is from a precision set comprising ¼-luma-sample precision, 1-luma-sample precision and 4-luma-sample precision; and
performing the conversion based on a constrained MVD component,
wherein a value of the MVD component is constrained to be in a range of the MVD component,
wherein the range of the MVD component is [−2M, 2M−1], where M=17,
wherein the range of the MVD component is adapted to an allowable MVD precision or an allowable motion vector (MV) precision of a codec,
wherein when there are multiple allowable MVD precisions or allowable MV precisions in the codec, the range of the MVD component is adapted to a finest precision of 1/16-luma-sample, and
wherein the 1/16-luma-sample precision is used for an affine coded block and does not exist in the precision set for the first block.

### Claim 2 (depends on 1)

The method of claim 1, wherein when the multiple allowable MVD precisions or the MV precisions include a 1/16-luma-sample, a ¼-luma-sample, and a 1-luma-sample, the range of the MVD component is adapted to the 1/16-luma-sample precision.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first block is applied with a first coding mode in which a motion information is derived based on a motion vector candidate list and a scaled MVD, and
wherein the scaled MVD is generated by bit-shifting the MVD, and
wherein the motion vector candidate list includes inherited candidates derived from neighboring blocks coded with the first coding mode, constructed candidates, and candidates with zero motion vectors (MVs).

### Claim 4 (depends on 1)

The method of claim 1, wherein the range of the MVD component is determined to be [−2M, 2M−1], where M=K+L, in which K denotes a number of bits used to represent an integer part of the MVD component, and L denotes a number of bits used to represent a fractional part of the MVD component, and wherein the MVD component is represented in a ½L-luma-sample precision, or
wherein a range of a motion vector (MV) component associated with the first block is determined to be [−2M, 2M−1], where M=K+L, in which K denotes a number of bits used to represent an integer part of the MV component, and L denotes a number of bits used to represent a fractional part of the MV component, wherein the MV component is represented in a ½L-luma-sample precision, and
wherein M, K and L are positive integers.

### Claim 5 (depends on 4)

The method of claim 4, wherein K=13, L=4, and M=17.

### Claim 6 (depends on 1)

The method of claim 1, wherein the MVD component is a signalled MVD component coded in a bitstream, or a converted MVD component associated with a certain precision through an internal shifting operation in a decoding process.

### Claim 7 (depends on 1)

The method of claim 1, wherein the MVD component includes a horizontal MVD component and a vertical MVD component, and wherein the horizontal MVD component and the vertical MVD component have a same range.

### Claim 8 (depends on 1)

The method of claim 1, wherein the MVD component is represented by integral bits, fractional bits, and a sign bit.

### Claim 9 (depends on 1)

The method of claim 1, wherein a range of a motion vector (MV) associated with the first block is a same as the range of the MVD component.

### Claim 10 (depends on 1)

The method of claim 1, wherein the conversion includes decoding the first block from the bitstream.

### Claim 11 (depends on 1)

The method of claim 1, wherein the conversion includes encoding the first block into the bitstream.

### Claim 12

An apparatus for processing video data comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to:
determine, for a conversion between a first block of a video and a bitstream of the video, a motion vector difference (MVD) component with a first precision associated with the first block, the first precision is from a precision set comprising ¼-luma-sample precision, 1-luma-sample precision and 4-luma-sample precision; and
perform the conversion based on a constrained MVD component,
wherein a value of the MVD component is constrained to be in a range of the MVD component,
wherein the range of the MVD component is [−2M, 2M−1], where M=17,
wherein the range of the MVD component is adapted to an allowable MVD precision or an allowable motion vector (MV) precision of a codec,
wherein when there are multiple allowable MVD precisions or allowable MV precisions in the codec, the range of the MVD component is adapted to a finest precision of 1/16-luma-sample, and
wherein the 1/16-luma-sample precision is used for an affine coded block and does not exist in the precision set for the first block.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein when the multiple allowable MVD precisions or the MV precisions include a 1/16-luma-sample, a ¼-luma-sample, and a 1-luma-sample, the range of the MVD component is adapted to the 1/16-luma-sample precision.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the first block is applied with a first coding mode in which a motion information is derived based on a motion vector candidate list and a scaled MVD, wherein the scaled MVD is generated by bit-shifting the MVD, and
wherein the motion vector candidate list includes inherited candidates derived from neighboring blocks coded with the first coding mode, constructed candidates, and candidates with zero motion vectors (MVs).

### Claim 15 (depends on 12)

The apparatus of claim 12, wherein the range of the MVD component is determined to be [−2M, 2M−1], where M=K+L, in which K denotes a number of bits used to represent an integer part of the MVD component, and L denotes a number of bits used to represent a fractional part of the MVD component, and wherein the MVD component is represented in a ½L-luma-sample precision, or
wherein a range of a motion vector (MV) component associated with the first block is determined to be [−2M, 2M−1], where M=K+L, in which K denotes a number of bits used to represent an integer part of the MV component, and L denotes a number of bits used to represent a fractional part of the MV component, wherein the MV component is represented in a ½L-luma-sample precision, and
wherein M, K and L are positive integers.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein K=13, L=4, and M=17.

### Claim 17 (depends on 12)

The apparatus of claim 12, wherein the MVD component is a signalled MVD component coded in a bitstream, or a converted MVD component associated with a certain precision through an internal shifting operation in a decoding process.

### Claim 18 (depends on 12)

The apparatus of claim 12, wherein the MVD component includes a horizontal MVD component and a vertical MVD component, and wherein the horizontal MVD component and the vertical MVD component have a same range.

### Claim 19

A non-transitory computer-readable storage medium storing instructions that cause a processor to:
determine, for a conversion between a first block of a video and a bitstream of the video, a motion vector difference (MVD) component with a first precision associated with the first block, the first precision is from a precision set comprising ¼-luma-sample precision, 1-luma-sample precision and 4-luma-sample precision; and
perform the conversion based on a constrained MVD component,
wherein a value of the MVD component is constrained to be in a range of the MVD component,
wherein the range of the MVD component is [−2M, 2M−1], where M=17,
wherein the range of the MVD component is adapted to an allowable MVD precision or an allowable motion vector (MV) precision of a codec,
wherein when there are multiple allowable MVD precisions or allowable MV precisions in the codec, the range of the MVD component is adapted to a finest precision of 1/16-luma-sample, and
wherein the 1/16-luma-sample precision is used for an affine coded block and does not exist in the precision set for the first block.

### Claim 20

A method for storing a bitstream of a video which is generated by a video processing apparatus, wherein the method comprises:
determining, a first block of the video, a motion vector difference (MVD) component with a first precision associated with the first block, the first precision is from a precision set comprising ¼-luma-sample precision, 1-luma-sample precision and 4-luma-sample precision;
generating the bitstream based on a constrained MVD component; and
storing the bitstream in a non-transitory computer-readable recording medium,
wherein a value of the MVD component is constrained to be in a range of the MVD component, and
wherein the range of the MVD component is [−2M, 2M−1], where M=17,
wherein the range of the MVD component is adapted to an allowable MVD precision or an allowable motion vector (MV) precision of a codec,
wherein when there are multiple allowable MVD precisions or allowable MV precisions in the codec, the range of the MVD component is adapted to a finest precision of 1/16-luma-sample, and
wherein the 1/16-luma-sample precision is used for an affine coded block and does not exist in the precision set for the first block.
