# US 2025/0097409 A1 · Method, apparatus, and medium for video processing

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

- Number: US 2025/0097409 A1
- Document ID: US20250097409A1
- Status: Published application
- Kind: A1
- Application number: 18/972,678
- Filed: 2024-12-06
- Published: 2025-03-20
- Earliest claimed: 2022-06-07
- Assignees: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Applicants: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Inventors: Zhipin DENG; Kai ZHANG; Li ZHANG
- Web page: https://patentgrep.com/patent/US20250097409A1

## CPC

- 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/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/176: the region being a block, e.g. a macroblock
- H04N 19/513: Processing of motion vectors
- H04N 19/521: {for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Embodiments of the present disclosure provide a solution for video processing. A method for video processing is proposed. The method comprises: determining, for a conversion between a video unit of a video and a bitstream of the video unit, whether an adaptive reordering-based motion compensation (ARMC) is applied to a prediction list of the video unit, wherein the prediction list comprises at least one a reconstruction reordered intra block copy (RRIBC) coded motion candidate; and performing the conversion based on the determining.

## Claims

### Claim 1

A method of video processing, comprising:
determining, for a conversion between a video unit of a video and a bitstream of the video unit, whether an adaptive reordering-based motion compensation (ARMC) is applied to a prediction list of the video unit, wherein the prediction list comprises at least one a reconstruction reordered intra block copy (RRIBC) coded motion candidate; and
performing the conversion based on the determining.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
in accordance with a determination that the ARMC is applied to the prediction list, applying the ARMC to the prediction list based on a RRIBC flip type of a specific motion candidate in the prediction list, and wherein different shapes of templates are used for different motion candidates in the prediction list, or
wherein determining whether the ARMC is applied to the prediction list comprises:
determining that the ARMC is not applied to the prediction list.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
in accordance with a determination that the ARMC is applied to the prediction list, applying the ARMC to non-RRIBC coded motion candidates in the prediction list, and wherein motion candidates in the prediction list are divided into a first subgroup and a second subgroup, and wherein the first subgroup comprises a first set of motion candidates coded with the RRIBC and the second subgroup comprises a second set of motion candidates not coded with the RRIBC, and/or
wherein the ARMC is not applied to the first set of motion candidates coded with the RRIBC, or the ARMC is applied to the second set of motion candidates not coded with the RRIBC, and/or
wherein ordering motion candidates in a final prediction list is dependent on coding information of the video unit, and/or
wherein motion candidates that are not coded with the RRIBC and are processed with the ARMC are put before motion candidates that are coded with the RRIBC but not processed with the ARMC, or the motion candidates that are not coded with the RRIBC and are processed with the ARMC are put after the motion candidates that are coded with the RRIBC but not processed with the ARMC, or the coding information comprises a flip type of a first available motion candidate in an original prediction list which is before the ARMC, and/or
wherein if the first available motion candidate in the original prediction list is coded with the RRIBC, motion candidates that are coded with the RRIBC but not processed with the ARMC are put first in the final prediction list, or if the first available motion candidate inf the original prediction list is not coded with the RRIBC, motion candidates that are processed with the ARMC and not coded with the RRIBC are put first in the final prediction list.

### Claim 4 (depends on 1)

The method of claim 1, wherein if the ARMC is applied to the prediction list, a second reference template that is different from a first reference template is used.

### Claim 5 (depends on 4)

The method of claim 4, wherein the first reference template is constructed from at least one of: left samples or above samples neighboring to a reference block, and/or
wherein the second reference template is constructed from at least one of bottom samples or right samples neighboring to a reference block, and/or
wherein the second reference template is used to determine a template cost of the at least one RRIBC coded motion candidate, and/or
wherein whether to use bottom samples or right samples neighboring to a reference block to construct a reference template of a reference lock is dependent on a flip type of the at least one RRIBC coded motion candidate, and/or
wherein whether to use a second reference template or a first reference template is dependent on a flip type of a motion candidate, and/or
wherein a second template is constructed from above and right samples neighboring to a reference block, and a first template is constructed from above and left samples neighboring to a current block, and/or
wherein a second template is constructed from bottom and left samples neighboring to a reference block, and a first template is constructed from above and left samples neighboring to a current block, and/or wherein the first reference template is used to determine a template cost of a motion candidate that is not coded with the RRIBC.

### Claim 6 (depends on 1)

The method of claim 1, wherein a validation check is applied to a reference template of the at least one RRIBC coded motion candidate.

### Claim 7 (depends on 6)

The method of claim 6, wherein the validation check is applied to check whether a right part of the reference template is within a valid area, and/or
wherein the validation check is applied to check whether a bottom part of the reference template is within a valid area, and/or
wherein if a sample of the reference template is outside a valid area, another sample within the valid area is used instead to construct the reference template, and/or
wherein if at least one sample of the reference template is outside a valid area, the reference template of the at least one RRIBC coded motion candidate is treated as unavailable, and/or
wherein if at least one sample of a right part of the reference template is outside a valid area, at least one sample on rightmost M columns inside a reference block is used instead to construct the reference template, wherein M is equal to a width of the right part of the reference template, and/or
wherein if at least one sample of a bottom part of the reference template is outside a valid area, at least one sample on top N rows inside a reference block is used instead to construct the reference template, wherein N is equal to a height of the bottom part of the reference template.

### Claim 8 (depends on 7)

The method of claim 7, wherein the valid area is predefined by a set of rules related to coding information, and wherein the coding information comprises at least one of: a virtual pipeline data unit (VPDU) size, a largest coding unit (LCU) size, a tile boundary, a picture boundary, a slice boundary, or a tile row, and/or
wherein a valid sample nearest to an invalid sample is used, or a valid sample inside a reference block is used, and/or
wherein the ARMC is not applied to the prediction list.

### Claim 9 (depends on 1)

The method of claim 1, wherein if the ARMC is applied to the prediction list, samples in a reference template of a reference block of the video unit are reordered.

### Claim 10 (depends on 9)

The method of claim 9, wherein sample in an above part of the reference template are reordered, and/or wherein samples in a right part of the reference template are reordered, or
wherein sample in a left part of the reference template are reordered, and/or wherein samples in a bottom part of the reference template are reordered, and/or
wherein whether to reorder samples in the reference template is dependent on a flip type of a motion candidate, and/or
a horizontal flip processing is applied to samples in an above part of the reference template which is constructed from above samples neighboring to the reference block, and/or
wherein a horizontal flip processing is applied to samples in a right part of the reference template which is constructed from right samples neighboring to the reference block, and/or
wherein a vertical flip processing is applied to samples in a left part of the reference template which is constructed from left samples neighboring to the reference block, and/or
wherein a vertical flip processing is applied to samples in a bottom part of the reference template which is constructed from bottom samples neighboring to the reference block.

### Claim 11 (depends on 10)

The method of claim 10, wherein if a width of the right part of the reference template is equal to a predefined number, the horizontal flip processing is not applied, and/or
wherein if a height of the bottom part of the reference template is equal to a predefined number, the vertical flip processing is not applied.

### Claim 12 (depends on 9)

The method of claim 9, wherein if a horizontal flip processing is applied, samples in an above part of the reference template are derived as:
temp
[
x
+
y
*
tempW
]
=
cur
[
curW
-
1
-
x
+
(
y
-
tempH
)
*
curStride
]
,
wherein temp represents a sample buffer of the above part of the reference template, (tempW, tempH) represents width and height of the above part of the reference template, (x,y) represents a location of a top-left sample of the above part of the reference template relative such part of the reference template, cur represents the sample buffer of the video unit, (curW, curH) represents width and height of the video unit, curStride represents a stride of the sample buffer of the video unit, or
wherein if a horizontal flip processing is applied, samples in a right part of the reference template are derived as:
temp
[
x
+
y
*
tempW
]
=
cur
[
curW
+
tempW
-
1
-
x
+
y
*
curStride
]
,
wherein temp represents a sample buffer of the right part of the reference template, (tempW, tempH) represents width and height of the right part of the reference template, (x,y) represents a location of a top-left sample of the right part of the reference template relative such part of the reference template, cur represents the sample buffer of the video unit, (curW, curH) represents width and height of the video unit, curStride represents a stride of the sample buffer of the video unit, or
wherein if a vertical flip processing is applied, samples in a bottom part of the reference template are derived as:
temp
[
x
+
y
*
temW
]
=
cur
[
x
+
(
curH
+
tempH
-
1
-
y
)
*
curStride
]
]
,
wherein temp represents a sample buffer of the bottom part of the reference template, (tempW, tempH) represents width and height of the bottom part of the reference template, (x,y) represents a location of a top-left sample of the bottom part of the reference template relative such part of the reference template, cur represents the sample buffer of the video unit, (curW, curH) represents width and height of the video unit, curStride represents a stride of the sample buffer of the video unit, or
wherein if a vertical flip processing is applied, samples in a left part of the reference template are derived as:
temp
[
x
+
y
*
tempW
]
=
cur
[
x
-
tempW
+
(
curH
-
1
-
y
]
*
curStride
]
,
wherein temp represents a sample buffer of the left part of the reference template, (tempW, tempH) represents width and height of the left part of the reference template, (x,y) represents a location of a top-left sample of the left part of the reference template relative such part of the reference template, cur represents the sample buffer of the video unit, (curW, curH) represents width and height of the video unit, curStride represents a stride of the sample buffer of the video unit.

### Claim 13 (depends on 9)

The method of claim 9, wherein samples comprise at least one of: reconstruction samples or prediction samples.

### Claim 14 (depends on 1)

The method of claim 1, when if the ARMC is applied to the prediction list, samples in a current template of a current block of the video unit are ordered, and
wherein sample in an above part of the current template are reordered, and/or wherein samples in a left part of the current template are reordered, and/or
wherein whether to reorder samples in the current template is dependent on a flip type of a motion candidate, and/or
wherein a horizontal flip processing is applied to samples in an above part of the current template which is constructed from above samples neighboring to the current block, and/or
wherein a horizontal flip processing is applied to samples in a left part of the reference template which is constructed from left samples neighboring to the current block, and/or
wherein a vertical flip processing is applied to samples in an above part of the reference template which is constructed from above samples neighboring to the current block, and/or
wherein a vertical flip processing is applied to samples in a left part of the current template which is constructed from left samples neighboring to the current block, and/or
wherein if a width of the left part of the current template is equal to a predefined number, the horizontal flip processing is not applied, or wherein if a height of the above part of the current template is equal to a pre-defined number, the vertical flip processing is not applied.

### Claim 15 (depends on 14)

The method of claim 14, wherein if a horizontal flip processing is applied, samples in an above part of the current template are derived as:
temp
[
x
+
y
*
tempW
]
=
cur
[
curW
-
1
-
x
+
(
y
-
tempH
)
*
curStride
]
,
wherein temp represents a sample buffer of the above part of the current template, (tempW, tempH) represents width and height of the above part of the current template, (x,y) represents a location of a top-left sample of the above part of the current template relative such part of the current template, cur represents the sample buffer of the video unit, (curW, curH) represents width and height of the video unit, curStride represents a stride of the sample buffer of the video unit, or
wherein if a horizontal flip processing is applied, samples in a right part of the current template are derived as:
temp
[
x
+
y
*
tempW
]
=
cur
[
curW
+
tempW
-
1
-
x
+
y
*
curStride
]
,
wherein temp represents a sample buffer of the right part of the current template, (tempW, tempH) represents width and height of the right part of the current template, (x,y) represents a location of a top-left sample of the right part of the current template relative such part of the current template, cur represents the sample buffer of the video unit, (curW, curH) represents width and height of the video unit, curStride represents a stride of the sample buffer of the video unit, or
wherein if a vertical flip processing is applied, samples in a bottom part of the current template are derived as:
temp
[
x
+
y
*
temW
]
=
cur
[
x
+
(
curH
+
tempH
-
1
-
y
)
*
curStride
]
]
,
wherein temp represents a sample buffer of the bottom part of the current template, (tempW, tempH) represents width and height of the bottom part of the current template, (x,y) represents a location of a top-left sample of the bottom part of the current template relative such part of the current template, cur represents the sample buffer of the video unit, (curW, curH) represents width and height of the video unit, curStride represents a stride of the sample buffer of the video unit, or
wherein if a vertical flip processing is applied, samples in a left part of the current template are derived as:
temp
[
x
+
y
*
tempW
]
=
cur
[
x
-
tempW
+
(
curH
-
1
-
y
]
*
curStride
]
,
wherein temp represents a sample buffer of the left part of the current template, (tempW, tempH) represents width and height of the left part of the current template, (x,y) represents a location of a top-left sample of the left part of the current template relative such part of the current template, cur represents the sample buffer of the video unit, (curW, curH) represents width and height of the video unit, curStride represents a stride of the sample buffer of the video unit.

### Claim 16 (depends on 1)

The method of claim 1, wherein at most one template is reordered, and/or
wherein samples in a current template of a current block of the video unit are reordered, and samples in a reference template of a reference block of the video unit are not reordered, or
wherein samples in a reference template of a reference block of the video unit are reordered, and samples in a current template of a current block of the video unit are not reordered.

### Claim 17 (depends on 1)

The method of claim 1, wherein the conversion includes encoding the video unit into the bitstream, or
wherein the conversion includes decoding the video unit from the bitstream.

### Claim 18

An apparatus for video processing 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 video unit of a video and a bitstream of the video unit, whether an adaptive reordering-based motion compensation (ARMC) is applied to a prediction list of the video unit, wherein the prediction list comprises at least one a reconstruction reordered intra block copy (RRIBC) coded motion candidate; and
perform the conversion based on the determining.

### Claim 19

A non-transitory computer-readable storage medium storing instructions that cause a processor to:
determine, for a conversion between a video unit of a video and a bitstream of the video unit, whether an adaptive reordering-based motion compensation (ARMC) is applied to a prediction list of the video unit, wherein the prediction list comprises at least one a reconstruction reordered intra block copy (RRIBC) coded motion candidate; and
perform the conversion based on the determining.

### Claim 20

A non-transitory computer-readable recording medium storing a bitstream of a video which is generated by a method performed by an apparatus for video processing, wherein the method comprises:
determining whether an adaptive reordering-based motion compensation (ARMC) is applied to a prediction list of a video unit of the video, wherein the prediction list comprises at least one a reconstruction reordered intra block copy (RRIBC) coded motion candidate; and
generating a bitstream based on the determining.
