# US 12,114,006 B2 · Method and apparatus for constructing motion information list in video encoding and decoding and device

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

- Number: US 12,114,006 B2
- Document ID: US12114006B2
- Status: Granted
- Kind: B2
- Application number: 17/896,937
- Filed: 2022-08-26
- Published: 2022-12-29
- Granted: 2024-10-08
- Earliest claimed: 2020-07-29
- Assignees: Tencent Technology (Shenzhen) Company Limited
- Applicants: Tencent Technology (Shenzhen) Company Limited
- Inventors: Yingbin Wang; Xiaozhong Xu; Shan Liu
- Web page: https://patentgrep.com/patent/US12114006B2

## CPC

- H04N 19/52: by predictive encoding
- H04N 19/109: among a plurality of temporal predictive coding modes
- H04N 19/11: among a plurality of spatial predictive coding modes
- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/159: Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
- H04N 19/172: the region being a picture, frame or field
- H04N 19/1883: {the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]}
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

This application provides a method for constructing a motion information list in video encoding and decoding performed by a computer device. The method includes: obtaining a motion information list, which is a candidate motion information list is used for providing a candidate prediction displacement vector; determining at least one piece of motion information when a length of the motion information list meets a condition; and adding the at least one piece of motion information to the candidate motion information list to obtain an updated motion information list when a length of the candidate motion information list is less than a threshold. According to the embodiments of this application, by filling a motion information list using extra motion information when motion information included in the motion information list is insufficient, more effective displacement vectors are provided in the motion information list to achieve a better displacement vector prediction effect.

## Claims

### Claim 1

A method for constructing a motion information list in video encoding and decoding, the method comprising:
obtaining a motion information list, wherein the motion information list is a candidate motion information list that is used for providing a candidate prediction displacement vector;
determining at least one piece of motion information when a length of the motion information list meets a condition, the length referring to a number of pieces of motion information comprised in the motion information list; and
adding the at least one piece of motion information to the candidate motion information list to obtain an updated motion information list when a length of the candidate motion information list is less than a threshold, wherein the motion information list is a historical motion information list used for recording historical motion information and the at least one piece of motion information includes motion information exported from another historical motion information list, wherein the another motion historical motion information list comprises a historical motion information list of an encoding and decoding unit adopting a prediction mode different from that of a current encoding and decoding unit and at least one piece of preset motion information comprising a displacement vector; and the displacement vector comprises at least one of the following:
(0, 0), (−w, 0), (−2*w, 0), (0, −h), (0, −2*h), (−w, −h), (−w, −2*h), (−2*w, −h), or (−2*w, −2*h), wherein w is a width of a minimum encoding and decoding unit, and h is a height of the minimum encoding and decoding unit; and
wherein the preset motion information further comprises position information; and the position information comprises at least one of the following:
coordinates of a pixel of a left boundary of a picture, wherein a horizontal coordinate is 0 and a value range of a vertical coordinate is [0, pic_h−1]);
coordinates of a pixel of an upper boundary of a picture, wherein a value range of a horizontal coordinate is [0, pic_w−1] and a vertical coordinate is 0;
coordinates of a pixel of a left boundary of a current CTU row, wherein a horizontal coordinate is 0 and a value range of a vertical coordinate is [y, y+ctu_h−1]);
coordinates of a pixel of an upper boundary of a current CTU row, wherein a value range of a horizontal coordinate is [0, pic_w−1] and a vertical coordinate is y;
coordinates of a pixel of a left boundary of a current CTU, wherein a horizontal coordinate is x and a value range of a vertical coordinate is [y, y+ctu_h−1]); or
coordinates of a pixel of an upper boundary of a current CTU, wherein a value range of a horizontal coordinate is [x, x+ctu_w−1] and a vertical coordinate is y, wherein
coordinates of an upper left corner of the current CTU are (x, y), a width of the picture is pic_w, a height of the picture is pic_h, a width of the current CTU is ctu_w, and a height of the current CTU is ctu_h.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising:
using the at least one piece of motion information to update the historical motion information list when encoding or decoding starts to be performed on each coding tree unit (CTU) row in a picture;
or
using the at least one piece of motion information to update the historical motion information list when encoding or decoding starts to be performed on each patch in a picture.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the at least one piece of motion information comprises at least one of the following:
motion information comprised in the historical motion information list after a target CTU is encoded or decoded; or
motion information comprised in a sequence header or a picture header.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the preset motion information further comprises size information, and a value of the size information is less than or equal to a first threshold.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the preset motion information further comprises a repetition times, and a value of the repetition times is less than or equal to a second threshold.

### Claim 6 (depends on 1)

The method according to claim 1, wherein a maximum length of the historical motion information list is N, and N is a positive integer; and
recording the historical motion information list comprises adding M pieces of motion information to an end of the historical motion information list, wherein M is a positive integer less than or equal to N.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the at least one piece of motion information comprises at least one of the following:
motion information comprised in a sequence header or a picture header;
motion information of a space adjacent unit of a current encoding and decoding unit; or
motion information determined based on information recorded in a historical unit list, wherein the historical unit list records information of at least one historical encoding and decoding unit.

### Claim 8 (depends on 7)

The method according to claim 7, wherein
when the candidate motion information list is used for providing a prediction displacement vector of an intra block copy (IBC) prediction mode or an intra string copy (ISC) prediction mode, the other historical motion information list comprises a historical motion information list corresponding to an inter-frame prediction mode;
or
when the candidate motion information list is used for providing a prediction displacement vector of an inter-frame prediction mode, the other historical motion information list comprises a historical motion information list corresponding to an IBC prediction mode or an ISC prediction mode.

### Claim 9 (depends on 7)

The method according to claim 7, wherein
when the prediction mode of the current encoding and decoding unit is an IBC prediction mode or an ISC prediction mode, the space adjacent unit comprises a space adjacent unit adopting the IBC prediction mode or the ISC prediction mode;
or
when the prediction mode of the current encoding and decoding unit is an inter-frame prediction mode, the space adjacent unit comprises a space adjacent unit adopting the inter-frame prediction mode.

### Claim 10 (depends on 7)

The method according to claim 7, wherein the historical unit list comprises a historical encoding and decoding unit whose coordinates are (xi, yi); and
when the prediction mode of the current encoding and decoding unit is an IBC prediction mode and coordinates of an upper left corner of the current encoding and decoding unit are (x, y), the motion information determined based on the information recorded in the historical unit list comprises a displacement vector (xi-x, yi-y); or
when the prediction mode of the current encoding and decoding unit is an ISC prediction mode and coordinates of a first pixel of a current string in the current encoding and decoding unit are (x, y), the motion information determined based on the information recorded in the historical unit list comprises a displacement vector (xi-x, yi-y).

### Claim 11 (depends on 7)

The method according to claim 7, wherein the information recorded in the historical unit list comprises at least one of the following:
information about a historical encoding and decoding unit whose prediction mode is an IBC prediction mode or an ISC prediction mode;
coordinates of an upper left corner of at least one encoding and decoding block comprised in the historical encoding and decoding unit when a prediction mode of the historical encoding and decoding unit is an IBC prediction mode or an inter-frame prediction mode; or
coordinates of at least one encoding and decoding string comprised in the historical encoding and decoding unit when a prediction mode of the historical encoding and decoding unit is an ISC prediction mode.

### Claim 12 (depends on 1)

The method according to claim 1, wherein the adding the at least one piece of motion information to the motion information list to obtain an updated motion information list comprises:
performing duplication checking and comparison on to-be-added motion information and motion information already existing in the motion information list; and
updating the motion information list according to a duplication checking and comparison result to obtain the updated motion information list.

### Claim 13

A computer device, comprising a processor and a memory, the memory storing at least one instruction, the at least one instruction, when executed by the processor, causes the computing device to perform operations comprising:
obtaining a motion information list, wherein the motion information list is a candidate motion information list that is used for providing a candidate prediction displacement vector;
determining at least one piece of motion information when a length of the motion information list meets a condition, the length referring to a number of pieces of motion information comprised in the motion information list; and
adding the at least one piece of motion information to the candidate motion information list to obtain an updated motion information list when a length of the candidate motion information list is less than a threshold, wherein the motion information list is a historical motion information list used for recording historical motion information and the at least one piece of motion information includes motion information exported from another historical motion information list, wherein the another motion historical motion information list comprises a historical motion information list of an encoding and decoding unit adopting a prediction mode different from that of a current encoding and decoding unit and at least one piece of preset motion information comprising a displacement vector; and the displacement vector comprises at least one of the following:
(0, 0), (−w, 0), (−2*w, 0), (0, −h), (0, −2*h), (−w, −h), (−w, −2*h), (−2*w, −h), or (−2*w, −2*h), wherein w is a width of a minimum encoding and decoding unit, and h is a height of the minimum encoding and decoding unit; and
wherein the preset motion information further comprises position information; and the position information comprises at least one of the following:
coordinates of a pixel of a left boundary of a picture, wherein a horizontal coordinate is 0 and a value range of a vertical coordinate is [0, pic_h−1]);
coordinates of a pixel of an upper boundary of a picture, wherein a value range of a horizontal coordinate is [0, pic_w−1] and a vertical coordinate is 0;
coordinates of a pixel of a left boundary of a current CTU row, wherein a horizontal coordinate is 0 and a value range of a vertical coordinate is [y, y+ctu_h−1]);
coordinates of a pixel of an upper boundary of a current CTU row, wherein a value range of a horizontal coordinate is [0, pic_w−1] and a vertical coordinate is y;
coordinates of a pixel of a left boundary of a current CTU, wherein a horizontal coordinate is x and a value range of a vertical coordinate is [y, y+ctu_h−1]); or
coordinates of a pixel of an upper boundary of a current CTU, wherein a value range of a horizontal coordinate is [x, x+ctu_w−1] and a vertical coordinate is y, wherein
coordinates of an upper left corner of the current CTU are (x, y), a width of the picture is pic_w, a height of the picture is pic_h, a width of the current CTU is ctu_w, and a height of the current CTU is ctu_h.

### Claim 14 (depends on 13)

The computer device according to claim 13, wherein the operations further comprise:
using the at least one piece of motion information to update the historical motion information list when encoding or decoding starts to be performed on each coding tree unit (CTU) row in a picture;
or
using the at least one piece of motion information to update the historical motion information list when encoding or decoding starts to be performed on each patch in a picture.

### Claim 15

A non-transitory computer-readable storage medium, storing at least one instruction, the at least one instruction, when executed by a processor of a computer device, causes the computing device to perform operations comprising:
obtaining a motion information list, wherein the motion information list is a candidate motion information list that is used for providing a candidate prediction displacement vector;
determining at least one piece of motion information when a length of the motion information list meets a condition, the length referring to a number of pieces of motion information comprised in the motion information list; and
adding the at least one piece of motion information to the candidate motion information list to obtain an updated motion information list when a length of the candidate motion information list is less than a threshold, wherein the motion information list is a historical motion information list used for recording historical motion information and the at least one piece of motion information includes motion information exported from another historical motion information list, wherein the another motion historical motion information list comprises a historical motion information list of an encoding and decoding unit adopting a prediction mode different from that of a current encoding and decoding unit and at least one piece of preset motion information comprising a displacement vector; and the displacement vector comprises at least one of the following:
(0, 0), (−w, 0), (−2*w, 0), (0, −h), (0, −2*h), (−w, −h), (−w, −2*h), (−2*w, −h), or (−2*w, −2*h), wherein w is a width of a minimum encoding and decoding unit, and h is a height of the minimum encoding and decoding unit; and
wherein the preset motion information further comprises position information; and the position information comprises at least one of the following:
coordinates of a pixel of a left boundary of a picture, wherein a horizontal coordinate is 0 and a value range of a vertical coordinate is [0, pic_h−1]);
coordinates of a pixel of an upper boundary of a picture, wherein a value range of a horizontal coordinate is [0, pic_w−1] and a vertical coordinate is 0;
coordinates of a pixel of a left boundary of a current CTU row, wherein a horizontal coordinate is 0 and a value range of a vertical coordinate is [y, y+ctu_h−1]);
coordinates of a pixel of an upper boundary of a current CTU row, wherein a value range of a horizontal coordinate is [0, pic_w−1] and a vertical coordinate is y;
coordinates of a pixel of a left boundary of a current CTU, wherein a horizontal coordinate is x and a value range of a vertical coordinate is [y, y+ctu_h−1]); or
coordinates of a pixel of an upper boundary of a current CTU, wherein a value range of a horizontal coordinate is [x, x+ctu_w−1] and a vertical coordinate is y, wherein
coordinates of an upper left corner of the current CTU are (x, y), a width of the picture is pic_w, a height of the picture is pic_h, a width of the current CTU is ctu_w, and a height of the current CTU is ctu_h.
