# US 12,003,712 B2 · Handling video unit boundaries and virtual boundaries

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

- Number: US 12,003,712 B2
- Document ID: US12003712B2
- Status: Granted
- Kind: B2
- Application number: 17/548,187
- Filed: 2021-12-10
- Published: 2022-03-31
- Granted: 2024-06-04
- Earliest claimed: 2019-06-14
- Assignees: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Applicants: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Inventors: Li Zhang; Kai Zhang; Hongbin Liu; Yue Wang
- Web page: https://patentgrep.com/patent/US12003712B2

## CPC

- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- 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/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/82: involving filtering within a prediction loop
- H04N 19/96: Tree coding, e.g. quad-tree coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of video processing includes determining, for a conversion between a picture of a video that includes one or more blocks and a bitstream representation of the video, whether a virtual boundary is enabled for a block within the picture for a filtering process based on a rule related to a relationship between a bottom boundary of the block and the picture. The method also includes performing the conversion based on the determining.

## Claims

### Claim 1

A method of processing video data, comprising:
determining, for a conversion between a picture of a video that comprises one or more coding tree blocks and a bitstream of the video, whether a line buffer virtual boundary handling is enabled for a coding tree block within the picture for a first filtering process based on a relationship between a bottom boundary of the coding tree block and a bottom boundary of the picture; and
performing the conversion based on the determining,
wherein the first filtering process comprises:
determining at least one filtering index for the coding tree block;
deriving a filtering coefficient set based on the at least one filtering index; and
performing a filtering operation based on the filtering coefficient set,
wherein the line buffer virtual boundary handling is enabled, in a case that a) the bottom boundary of the coding tree block is not the bottom boundary of the picture containing the coding tree block and b) the bottom boundary of the coding tree block is a bottom boundary of a brick and the first filtering process across boundaries of bricks is disabled,
wherein the line buffer virtual boundary handling is enabled, in a case that a) the bottom boundary of the coding tree block is not the bottom boundary of the picture containing the coding tree block and b) the bottom boundary of the coding tree block is a bottom boundary of a slice and the first filtering process across boundaries of slices is disabled.

### Claim 2 (depends on 1)

The method of claim 1, wherein the line buffer virtual boundary handling is used to determine the at least one filtering index, and wherein samples outside a line buffer virtual boundary are not used to determine the at least one filtering index.

### Claim 3 (depends on 1)

The method of claim 1, wherein the line buffer virtual boundary handling is used in the filtering operation which uses a diamond shape filter, wherein in the filtering operation, a symmetrical padding is performed on two sides of a line buffer virtual boundary.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining a unified manner in which a padding process is applied for the first filtering process, wherein the padding process is applied to generate one or more virtual samples for a sample of the coding tree block that is located in proximity to boundaries of multiple kinds of video regions,
wherein the padding process is invoked only once for the first filtering process.

### Claim 5 (depends on 4)

The method of claim 4, wherein the boundaries of the multiple kinds of video regions comprise at least one of: a slice boundary, a brick boundary, a tile boundary, a sub-picture boundary, or 360-degree boundary.

### Claim 6 (depends on 4)

The method of claim 4, wherein the boundaries of multiple kinds of video regions comprise a virtual boundary or an actual boundary.

### Claim 7 (depends on 4)

The method of claim 4, wherein a number of lines to apply the padding process is determined based on a location of the sample relative to at least one of the boundaries.

### Claim 8 (depends on 4)

The method of claim 4, wherein the boundaries of multiple kinds of video regions comprise a horizontal boundary or a vertical boundary.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first filtering process is an adaptive loop filtering process.

### Claim 10 (depends on 1)

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

### Claim 11 (depends on 1)

The method of claim 1, wherein the conversion includes decoding the bitstream into the video.

### 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 picture of a video that comprises one or more coding tree blocks and a bitstream of the video, whether a line buffer virtual boundary handling is enabled for a coding tree block within the picture for a first filtering process based on a relationship between a bottom boundary of the coding tree block and a bottom boundary of the picture; and
perform the conversion based on determining whether the line buffer virtual boundary handling is enabled,
wherein the first filtering process comprises:
deciding at least one filtering index for the coding tree block;
deriving a filtering coefficient set based on the at least one filtering index; and
performing a filtering operation based on the filtering coefficient set,
wherein the line buffer virtual boundary handling is enabled, in a case that a) the bottom boundary of the coding tree block is not the bottom boundary of the picture containing the coding tree block and b) the bottom boundary of the coding tree block is a bottom boundary of a brick and the first filtering process across boundaries of bricks is disabled,
wherein the line buffer virtual boundary handling is enabled, in a case that a) the bottom boundary of the coding tree block is not the bottom boundary of the picture containing the coding tree block and b) the bottom boundary of the coding tree block is a bottom boundary of a slice and the first filtering process across boundaries of slices is disabled.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the line buffer virtual boundary handling is used to determine the at least one filtering index, and wherein samples outside a line buffer virtual boundary are not used to determine the at least one filtering index, and
wherein the line buffer virtual boundary handling is used in the filtering operation which uses a diamond shape filter, wherein in the filtering operation, a symmetrical padding is performed on two sides of the line buffer virtual boundary.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the instructions further cause the processor to:
determine a unified manner in which a padding process is applied for the first filtering process, wherein the padding process is applied to generate one or more virtual samples for a sample of the coding tree block that is located in proximity to boundaries of multiple kinds of video regions,
wherein the padding process is invoked only once for the first filtering process;
wherein the boundaries of the multiple kinds of video regions comprise at least one of: a slice boundary, a brick boundary, a tile boundary, a sub-picture boundary, or 360-degree boundary;
wherein the boundaries of multiple kinds of video regions comprise a virtual boundary or an actual boundary;
wherein a number of lines to apply the padding process is determined based on a location of the sample relative to at least one of the boundaries;
wherein the boundaries of multiple kinds of video regions comprise a horizontal boundary or a vertical boundary; and
wherein the first filtering process is an adaptive loop filtering process.

### Claim 15

A non-transitory computer-readable storage medium storing instructions that cause a processor to:
determine, for a conversion between a picture of a video that comprises one or more coding tree blocks and a bitstream of the video, whether a line buffer virtual boundary handling is enabled for a coding tree block within the picture for a first filtering process based on a relationship between a bottom boundary of the coding tree block and a bottom boundary of the picture; and
perform the conversion based on determining about whether the line buffer virtual boundary handling is enabled,
wherein the first filtering process comprises:
deciding at least one filtering index for the coding tree block;
deriving a filtering coefficient set based on the at least one filtering index; and
performing a filtering operation based on the filtering coefficient set,
wherein the line buffer virtual boundary handling is enabled in a case that a) the bottom boundary of the coding tree block is not the bottom boundary of the picture containing the coding tree block and b) the bottom boundary of the coding tree block is a bottom boundary of a brick and the first filtering process across boundaries of bricks is disabled,
wherein the line buffer virtual boundary handling is enabled, in a case that a) the bottom boundary of the coding tree block is not the bottom boundary of the picture containing the coding tree block and b) the bottom boundary of the coding tree block is a bottom boundary of a slice and the first filtering process across boundaries of slices is disabled.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the line buffer virtual boundary handling is used to determine the at least one filtering index, and wherein samples outside a line buffer virtual boundary are not used to determine the at least one filtering index, and
wherein the line buffer virtual boundary handling is used in the filtering operation which uses a diamond shape filter, wherein in the filtering operation, a symmetrical padding is performed on two sides of the line buffer virtual boundary.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, the instructions further cause the processor to:
determine a unified manner in which a padding process is applied for the first filtering process, wherein the padding process is applied to generate one or more virtual samples for a sample of the coding tree block that is located in proximity to boundaries of multiple kinds of video regions,
wherein the padding process is invoked only once for the first filtering process;
wherein the boundaries of the multiple kinds of video regions comprise at least one of: a slice boundary, a brick boundary, a tile boundary, a sub-picture boundary, or 360-degree boundary;
wherein the boundaries of multiple kinds of video regions comprise a virtual boundary or an actual boundary;
wherein a number of lines to apply the padding process is determined based on a location of the sample relative to at least one of the boundaries;
wherein the boundaries of multiple kinds of video regions comprise a horizontal boundary or a vertical boundary; and
wherein the first filtering process is an adaptive loop filtering process.

### Claim 18

A method for storing a bitstream of a video, comprising:
determining whether a line buffer virtual boundary handling is enabled for a coding tree block within a picture of a video for a first filtering process based on a relationship between a bottom boundary of the coding tree block and a bottom boundary of the picture;
generating the bitstream based on the determining, and
storing the bitstream in a non-transitory computer-readable recording medium,
wherein the first filtering process comprises:
deciding at least one filtering index for the coding tree block;
deriving a filtering coefficient set based on the at least one filtering index; and
performing a filtering operation based on the filtering coefficient set,
wherein the line buffer virtual boundary handling is enabled in a case that a) the bottom boundary of the coding tree block is not the bottom boundary of the picture containing the coding tree block and b) the bottom boundary of the coding tree block is a bottom boundary of a brick and the first filtering process across boundaries of bricks is disabled,
wherein the line buffer virtual boundary handling is enabled, in a case that a) the bottom boundary of the coding tree block is not the bottom boundary of the picture containing the coding tree block and b) the bottom boundary of the coding tree block is a bottom boundary of a slice and the first filtering process across boundaries of slices is disabled.

### Claim 19 (depends on 18)

The method of claim 18, wherein the line buffer virtual boundary is used to determine the at least one filtering index, and wherein samples outside the line buffer virtual boundary are not used to determine the at least one filtering index, and
wherein the line buffer virtual boundary is used in the filtering operation which uses a diamond shape filter, wherein in the filtering operation, a symmetrical padding is performed on two sides of the line buffer virtual boundary.

### Claim 20 (depends on 18)

The method of claim 18, further comprising:
determining a unified manner in which a padding process is applied for the first filtering process, wherein the padding process is applied to generate one or more virtual samples for a sample of the coding tree block that is located in proximity to boundaries of multiple kinds of video regions,
wherein the padding process is invoked only once for the first filtering process;
wherein the boundaries of the multiple kinds of video regions comprise at least one of: a slice boundary, a brick boundary, a tile boundary, a sub-picture boundary, or 360-degree boundary;
wherein the boundaries of multiple kinds of video regions comprise a virtual boundary or an actual boundary;
wherein a number of lines to apply the padding process is determined based on a location of the sample relative to at least one of the boundaries;
wherein the boundaries of multiple kinds of video regions comprise a horizontal boundary or a vertical boundary; and
wherein the first filtering process is an adaptive loop filtering process.
