# US 12,003,745 B2 · Buffer updating for 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 12,003,745 B2
- Document ID: US12003745B2
- Status: Granted
- Kind: B2
- Application number: 17/386,497
- Filed: 2021-07-27
- Published: 2022-06-02
- Granted: 2024-06-04
- Earliest claimed: 2019-02-02
- 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/US12003745B2

## CPC

- H04N 19/433: characterised by techniques for memory access
- 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/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- H04N 19/137: Motion inside a coding unit, e.g. average field, frame or block difference
- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/146: Data rate or code amount at the encoder output
- H04N 19/159: Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
- H04N 19/174: the region being a slice, e.g. a line of blocks or a group of blocks
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/186: the unit being a colour or a chrominance component
- 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/423: characterised by memory arrangements (H04N19/433 takes precedence)
- H04N 19/517: by encoding
- H04N 19/52: by predictive encoding
- H04N 19/593: involving spatial prediction techniques
- H04N 19/80: Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation (H04N19/635, H04N19/86 take precedence)
- H04N 19/82: involving filtering within a prediction loop
- H04N 19/96: Tree coding, e.g. quad-tree coding
- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/86: involving reduction of coding artifacts, e.g. of blockiness
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of visual media processing includes determining a size of a buffer to store reference samples for prediction in an intra block copy mode; and performing a conversion between a current video block of visual media data and a bitstream of the current video block, using the reference samples stored in the buffer, wherein the conversion is performed in the intra block copy mode which is based on motion information related to a reconstructed block located in same video region with the current video block without referring to a reference picture.

## Claims

### Claim 1

A method of processing video data, comprising:
performing a conversion between a current video block and a bitstream of the current video block; and
updating a buffer which is used to store reference samples for prediction in an intra block copy mode, wherein the buffer is used for a conversion between a subsequent video block and a bitstream of the subsequent video block, wherein the conversion between the subsequent video block and a bitstream of the subsequent video block is performed in the intra block copy mode which is based on motion information related to a reconstructed block located in a same video region with the subsequent video block without referring to a reference picture;
wherein reconstructed samples of the current video block are modified before being stored in the buffer,
wherein a bit-depth conversion is performed on the reconstructed samples of the current video block before being stored in the buffer, and
wherein the bit-depth conversion corresponds to an alignment of a bit-depth of the reconstructed samples to a bit-depth of the buffer,
wherein a sample at a reference location within the buffer is updated with a reconstructed sample of the current video block according to an operation expressed as:
{p+[1<<(b−1)]}>>b, or
clip({p+[1<<(b−1)]}>>b, 0, (1<<bitdepth)−1), or
{p+[1<<(b−1)−1]}>>b, or
clip({p+[1<<(b−1)−1]}>>b, 0, (1<<bitdepth)−1), and
wherein p is the reconstructed sample, b is a bit-shifting value, “clip” is a clipping operation, and bitdepth is the bit-depth of the buffer.

### Claim 2 (depends on 1)

The method of claim 1, wherein the conversion between the current video block and the bitstream of the current video block is performed in the intra block copy mode.

### Claim 3 (depends on 1)

The method of claim 1, wherein the sample at the reference location (x mod M, y mod N) in the buffer is updated with the reconstructed sample located at position (x, y) relative to an upper-left corner of a video region associated with the current video block.

### Claim 4 (depends on 3)

The method of claim 3, wherein the video region is one of: a picture, a slice, a tile, or a coding tree unit.

### Claim 5 (depends on 1)

The method of claim 1, wherein the reference location within the buffer is derived based on a position of the reconstructed sample of the current video block and a position offset.

### Claim 6 (depends on 1)

The method of claim 1, wherein the reconstructed samples of the current video block correspond to pre-filtered samples.

### Claim 7 (depends on 1)

The method of claim 1, wherein the reconstructed samples of the current video block correspond to post-filtered samples.

### Claim 8 (depends on 1)

The method of claim 1, wherein the bit-depth conversion corresponds to a change in the bit-depth of the reconstructed samples.

### Claim 9 (depends on 1)

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

### Claim 10 (depends on 1)

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

### Claim 11

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:
perform a conversion between a current video block and a bitstream of the current video block; and
update a buffer which is used to store reference samples for prediction in an intra block copy mode, wherein the buffer is used for a conversion between a subsequent video block and a bitstream of the subsequent video block, wherein the conversion between the subsequent video block and a bitstream of the subsequent video block is performed in the intra block copy mode which is based on motion information related to a reconstructed block located in same video region with the subsequent video block without referring to a reference picture;
wherein reconstructed samples of the current video block are modified before being stored in the buffer,
wherein a bit-depth conversion is performed on the reconstructed samples of the current video block before being stored in the buffer, and
wherein the bit-depth conversion corresponds to an alignment of a bit-depth of the reconstructed samples to a bit-depth of the buffer,
wherein a sample at a reference location within the buffer is updated with a reconstructed sample of the current video block according to an operation expressed as:
{p+[1<<(b−1)]}>>b, or
clip({p+[1<<(b−1)]}>>b, 0, (1<<bitdepth)−1), or
{p+[1<<(b−1)−1]}>>b, or
clip({p+[1<<(b−1)−1]}>>b, 0, (1<<bitdepth)−1), and
wherein p is the reconstructed sample, b is a bit-shifting value, “clip” is a clipping operation, and bitdepth is the bit-depth of the buffer.

### Claim 12

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:
generating the bitstream based on a current video block;
updating a buffer which is used to store reference samples for prediction in an intra block copy mode, wherein the buffer is used for a conversion between a subsequent video block and a bitstream of the subsequent video block, wherein the conversion between the subsequent video block and a bitstream of the subsequent video block is performed in the intra block copy mode which is based on motion information related to a reconstructed block located in same video region with the subsequent video block without referring to a reference picture;
wherein reconstructed samples of the current video block are modified before being stored in the buffer,
wherein a bit-depth conversion is performed on the reconstructed samples of the current video block before being stored in the buffer, and
wherein the bit-depth conversion corresponds to an alignment of a bit-depth of the reconstructed samples to a bit-depth of the buffer,
wherein a sample at a reference location within the buffer is updated with a reconstructed sample of the current video block according to an operation expressed as:
{p+[1<<(b−1)]}>>b, or
clip({p+[1<<(b−1)]}>>b, 0, (1<<bitdepth)−1), or
{p+[1<<(b−1)−1]}>>b, or
clip({p+[1<<(b−1)−1]}>>b, 0, (1<<bitdepth)−1), and
wherein p is the reconstructed sample, b is a bit-shifting value, “clip” is a clipping operation, and bitdepth is the bit-depth of the buffer.
