# US 11,445,182 B2 · Implementation aspects in intra block copy in video coding

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

- Number: US 11,445,182 B2
- Document ID: US11445182B2
- Status: Granted
- Kind: B2
- Application number: 17/384,246
- Filed: 2021-07-23
- Published: 2021-11-25
- Granted: 2022-09-13
- Earliest claimed: 2019-03-04
- Assignees: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Applicants: Beijing Bytedance Network Technology Co., Ltd.; Bytedance Inc.
- Inventors: Jizheng Xu; Li Zhang; Kai Zhang; Hongbin Liu; Yue Wang
- Web page: https://patentgrep.com/patent/US11445182B2

## 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/176: the region being a block, e.g. a macroblock
- H04N 19/423: characterised by memory arrangements (H04N19/433 takes precedence)
- H04N 19/593: involving spatial prediction techniques
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of visual media processing includes determining, for a conversion between a current video block of visual media data and a bitstream representation of the current video block, a buffer that stores reference samples for prediction in an intra block copy mode; for a sample spatially located at location of the current video block relative to an upper-left position of a coding tree unit including the current video block and having a block vector, computing a corresponding reference in the buffer at a reference location, wherein the reference location is determined using the block vector and the location; and upon determining that the reference location lies outside the buffer, re-computing the reference location based at least in part on a location of the current video block relative to the coding tree unit including the current video block.

## Claims

### Claim 1

A method of visual media processing, comprising:
determining, for a conversion of a current video block of a video and a bitstream of the video, that a first coding mode is applied on the current video block;
deriving a first block vector (BVx, BVy) for the current video block;
generating prediction samples for the current video block based on the first block vector and a luma buffer, wherein reconstructed samples of previous video blocks without being applied a filtering operation are stored in the luma buffer, and wherein in the first coding mode, the prediction samples are derived from a same picture including the current video block; and
performing the conversion based on the prediction samples;
wherein a size of the luma buffer is indicated by M=mW and N=H, wherein M is a width of the luma buffer, N is a height of the luma buffer, W is a width of a coding tree block including the current video block, and H is a height of a coding tree block including the current video block,
wherein m is a positive integer and derived based on W or H,
wherein W, H, M and N are all positive integers, and
wherein, for any pixel (x0, y0) in the current video block, y0+BVy and x0+BVx are restricted to a certain range.

### Claim 2 (depends on 1)

The method of claim 1, wherein y0+BVy should be in a range of [0, . . . , N−1], and x0+BVx should be in a range of [0, . . . , M−1].

### Claim 3 (depends on 1)

The method of claim 1, wherein the luma buffer is reset before coding a picture or a slice.

### Claim 4 (depends on 3)

The method of claim 3, wherein elements of the luma buffer are reset with a fixed value.

### Claim 5 (depends on 1)

The method of claim 1, wherein the reference area includes nearest available m−1 coding tree blocks in a coding tree block row.

### Claim 6 (depends on 1)

The method of claim 1, wherein after reconstructing a position (x, y) relative to an upper-left corner of a picture, a value at position (x mod M, y mod N) in the luma buffer is updated with a reconstructed value of the position (x, y).

### Claim 7 (depends on 1)

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

### Claim 8 (depends on 1)

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

### Claim 9

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 of a current video block of a video and a bitstream of the video, that a first coding mode is applied on the current video block;
derive a first block vector (BVx, BVy) for the current video block;
generate prediction samples for the current video block based on the first block vector and a luma buffer, wherein reconstructed samples of previous video blocks without being applied a filtering operation are stored in the luma buffer, and wherein in the first coding mode, the prediction samples are derived from a same picture including the current video block; and
perform the conversion based on the prediction samples,
wherein a size of the luma buffer is indicated by M=mW and N=H, wherein M is a width of the luma buffer, N is a height of the luma buffer, W is a width of a coding tree block including the current video block, and H is a height of a coding tree block including the current video block,
wherein m is a positive integer and derived based on W or H,
wherein W, H, M and N are all positive integers, and
wherein for any pixel (x0, y0) in the current video block, y0+BVy and x0+BVx are restricted to a certain range.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein y0+BVy should be in a range of [0, . . . , N−1], and x0+BVx should be in a range of [0, . . . , M−1].

### Claim 11 (depends on 9)

The apparatus of claim 9, wherein the luma buffer is reset before coding a picture or a slice.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein elements of the luma buffer are reset with a fixed value.

### Claim 13 (depends on 9)

The apparatus of claim 9, wherein the reference area includes nearest available m−1 coding tree blocks in a coding tree block row.

### Claim 14 (depends on 9)

The apparatus of claim 9, wherein after reconstructing a position (x, y) relative to an upper-left corner of a picture, a value at position (x mod M, y mod N) in the luma buffer is updated with a reconstructed value of the position (x, y).

### Claim 15 (depends on 9)

The apparatus of claim 9, wherein the conversion includes encoding the current video block into the bitstream.

### Claim 16 (depends on 9)

The apparatus of claim 9, wherein the conversion includes decoding the current video block from the bitstream.

### Claim 17

A non-transitory computer-readable storage medium storing instructions that cause a processor to:
determine, for a conversion of a current video block of a video and a bitstream of the video, that a first coding mode is applied on the current video block;
derive a first block vector (BVx, BVy) for the current video block;
generate prediction samples for the current video block based on the first block vector and a luma buffer, wherein reconstructed samples of previous video blocks without being applied a filtering operation are stored in the luma buffer, and wherein in the first coding mode, the prediction samples are derived from a same picture including the current video block; and
perform the conversion based on the prediction samples,
wherein a size of the luma buffer is indicated by M=mW and N=H, wherein M is a width of the luma buffer, N is a height of the luma buffer, W is a width of a coding tree block including the current video block, and H is a height of a coding tree block including the current video block,
wherein m is a positive integer and derived based on W or H,
wherein W, H, M and N are all positive integers, and
wherein for any pixel (x0, y0) in the current video block, y0+BVy and x0+BVx are restricted to a certain range.

### Claim 18

A non-transitory computer-readable recording medium storing a bitstream of a video which is generated by a method performed by a video processing apparatus, wherein the method comprises:
determining, that a first coding mode is applied on a current video block of the video;
deriving a first block vector (BVx, BVy) for the current video block;
generating prediction samples for the current video block based on the first block vector and a luma buffer, wherein reconstructed samples of previous video blocks without being applied a filtering operation are stored in the luma buffer, and wherein in the first coding mode, the prediction samples are derived from a same picture including the current video block; and
generating the bitstream based on the prediction samples,
wherein a size of the luma buffer is indicated by M=mW and N=H, wherein M is a width of the luma buffer, N is a height of the luma buffer, W is a width of a coding tree block including the current video block, and H is a height of a coding tree block including the current video block,
wherein m is a positive integer and derived based on W or H,
wherein W, H, M and N are all positive integers, and
wherein for any pixel (x0, y0) in the current video block, y0+BVy and x0+BVx are restricted to a certain range.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the luma buffer is reset before coding a picture or a slice.

### Claim 20 (depends on 18)

The non-transitory computer-readable recording medium of claim 18, wherein the luma buffer is reset before coding a picture or a slice.
