IP Library › Granted Patent US 11,729,377
Granted Patent B2
US 11,729,377 · App. 17/735,483 · Granted Aug 15, 2023

Affine mode in video coding and decoding

Inventors: Hongbin Liu (Beijing, CN); Li Zhang (San Diego, CA); Kai Zhang (San Diego, CA); Yue Wang (Beijing, CN)
Assignees: BEIJING BYTEDANCE NETWORK TECHNOLOGY CO., LTD; BYTEDANCE INC.
H04N19/105H04N19/132H04N19/137H04N19/139H04N19/30H04N19/513H04N19/176H04N19/186
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 11,729,377
App. No.
17/735,483
Granted
Aug 15, 2023
Kind
B2
Abstract

Video coding and decoding in which the bitstream is generated using affine motion compensation mode are described. One example includes generating, for a reconstruction of a current video unit, a list of affine motion vector prediction candidates in which each candidate in the list is calculated without using a clipping operation, wherein the clipping operation limits a magnitude of the candidate motion vectors to a range; and performing the reconstruction of the current video unit using the list of affine motion vector prediction candidates.

Claims (45)

1. A method of processing video data, comprising:

constructing, during performing a conversion between a video unit in an affine video coding mode and a bitstream thereof, a list of control point motion vector predictors using a precision that is same as a precision used for a signaled control point motion vector difference of the video unit; wherein a precision of a motion vector related to a neighboring video unit is modified to the precision used for the signaled control point motion vector difference, prior to being used as a motion vector predictor in the list of control point motion vector predictors; and

performing the conversion using the list of control point motion vector predictors, wherein indication of usage of different precisions of multiple control point motion vector differences of the video unit is selectively signaled in the bitstream of the video unit based at least when one or more conditions are met,

wherein the precision used for a signaled motion vector difference is expressed as 1/(2{circumflex over ( )}Prec), and the precision of the motion vector related to the neighboring video unit is expressed as 1/(2{circumflex over ( )}PredPrec), and

wherein Prec indicates a precision used for encoding motion vector differences in the affine video coding mode, and PredPrec indicates a precision of motion vector predictors of the neighboring video unit.

2. The method of claim 1 , wherein the precision of the motion vector related to the neighboring video unit is modified by modifying the PredPrec.

3. The method of claim 1 , wherein modifying the precision of the motion vector related to the neighboring video unit comprises:

scaling the motion vector related to the neighboring video unit based on at least one of Prec and PredPrec.

4. The method of claim 3 , wherein the motion vector related to the neighboring video unit is scaled based on a difference between the Prec and PredPrec.

5. The method of claim 1 , wherein, if PredPrec>Prec, the motion vectors related to the neighboring video unit are denoted MVPredX, MVPredY, then motion vector predictors MVPred′X , MVPred′y of the list of control point motion vector predictors are calculated as:

MVPred′ X =round(MVPred X ,PredPrec−Prec),

MVPred′ Y =round(MVPred Y ,PredPrec−Prec),

wherein round(a, b) is defined as (a+offset)>>b, where >> is bit shift operation and offset is an integer.

6. The method of claim 5 , wherein the offset is equal to (1<<(b−1)).

7. The method of claim 1 , wherein, if PredPrec>Prec, the motion vectors related to the neighboring video unit are denoted MVPredX, MVPredY, then motion vector predictors MVPred′X , MVPred′y of the list of control point motion vector predictors are calculated as:

MVPred′ X =round(MVPred X ,PredPrec−Prec),

MVPred′ Y =round(MVPred Y ,PredPrec−Prec),

wherein round(MV, deltaPrec)=MV>>deltaPrec, where >> is bit shifting operation.

8. The method of claim 1 , wherein, if PredPrec<Prec, the motion vectors related to the neighboring video unit are denoted MVPredX, MVPredY, then motion vector predictors MVPred′X , MVPred′y of the list of control point motion vector predictors are calculated as:

MVPred′ X =MVPred X <<(PredPrec−Prec),

MVPred′ Y =MVPred Y <<(PredPrec−Prec).

9. The method of claim 1 , wherein the indication of the usage is signaled implicitly or explicitly in one or more of the following: a sequence parameter set (SPS), a sequence header, a video parameter set (VPS), a picture parameter set (PSP), a slice header, a picture header, a coding tree unit (CTU), a coding unit (CU), a group of CTU rows, or a group of CU rows.

10. The method of claim 1 , wherein the one or more conditions relate to at least one of: a size of the video unit, a shape of the video unit, a coding mode associated with the video unit, a number of affine parameters associated with the video unit, a slice type associated with the video unit, or a number of temporal layers associated with the video unit.

11. The method of claim 1 , wherein the conversion comprises: encoding the video unit into a bitstream representation.

12. The method of claim 1 , wherein the conversion comprises: decoding the video unit from a bitstream representation.

13. An apparatus for coding 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:

construct, during performing a conversion between a video unit in an affine video coding mode and a bitstream thereof, a list of control point motion vector predictors using a precision that is same as a precision used for a signaled control point motion vector difference of the video unit wherein a precision of a motion vector related to a neighboring video unit is modified to the precision used for the signaled control point motion vector difference, prior to being used as a motion vector predictor in the list of control point motion vector predictors; and

perform the conversion using the list of control point motion vector predictors,

wherein indication of usage of different precisions of multiple control point motion vector differences of the video unit is selectively signaled in the bitstream of the video unit based at least when one or more conditions are met,

wherein the precision used for a signaled motion vector difference is expressed as 1/(2{circumflex over ( )}Prec), and the precision of the motion vector related to the neighboring video unit is expressed as 1/(2{circumflex over ( )}PredPrec), and

wherein Prec indicates a precision used for encoding motion vector differences in the affine video coding mode, and PredPrec indicates a precision of motion vector predictors of the neighboring video unit.

14. The apparatus of claim 13 , wherein the conversion comprises: encoding the video unit into a bitstream representation.

15. The apparatus of claim 13 , wherein the conversion comprises: decoding the video unit from a bitstream representation.

16. A non-transitory computer-readable storage medium storing instructions that cause a processor to:

construct, during performing a conversion between a video unit in an affine video coding mode and a bitstream thereof, a list of control point motion vector predictors using a precision that is same as a precision used for a signaled control point motion vector difference of the video unit; wherein a precision of a motion vector related to a neighboring video unit is modified to the precision used for the signaled control point motion vector difference, prior to being used as a motion vector predictor in the list of control point motion vector predictors; and

perform the conversion using the list of control point motion vector predictors,

wherein indication of usage of different precisions of multiple control point motion vector differences of the video unit is selectively signaled in the bitstream of the video unit based at least when one or more conditions are met,

wherein the precision used for a signaled motion vector difference is expressed as 1/(2{circumflex over ( )}Prec), and the precision of the motion vector related to the neighboring video unit is expressed as 1/(2{circumflex over ( )}PredPrec), and

wherein Prec indicates a precision used for encoding motion vector differences in the affine video coding mode, and PredPrec indicates a precision of motion vector predictors of the neighboring video unit.

17. A non-transitory computer-readable recording medium storing a bitstream representation which is generated by a method performed by a video processing apparatus, wherein the method comprises:

constructing, for a video unit in an affine video coding mode, a list of control point motion vector predictors using a precision that is same as a precision used for signaled control point motion vector difference of the video unit; wherein a precision of a motion vector related to a neighboring video unit is modified to the precision used for the signaled control point motion vector difference, prior to being used as a motion vector predictor in the list of control point motion vector predictors; and

generating the bitstream from the video unit using the list of control point motion vector predictors,

wherein indication of usage of different precisions of multiple control point motion vector differences of the video unit is selectively signaled in the bitstream of the video unit based at least when one or more conditions are met,

wherein the precision used for a signaled motion vector difference is expressed as 1/(2{circumflex over ( )}Prec), and the precision of the motion vector related to the neighboring video unit is expressed as 1/(2{circumflex over ( )}PredPrec), and

wherein Prec indicates a precision used for encoding motion vector differences in the affine video coding mode, and PredPrec indicates a precision of motion vector predictors of the neighboring video unit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2022
From: ZHANG, LI; ZHANG, KAI
To: BYTEDANCE INC.
Reel/Frame 059815/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2022
From: LIU, HONGBIN; WANG, YUE
To: BEIJING BYTEDANCE NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 059815/0482 →
Priority Claims (1)
WO PCT/CN2018/104723 · Sep 8, 2018 · international
Continuity (3)
Continuation 17193605 · Mar 5, 2021
Continuation PCTIB2019057569 · Sep 9, 2019
Related Publication 20220279167A1 · Sep 1, 2022
Cited By (1)
US 12,604,013