# US 10,313,682 B2 · Determining regions when performing intra block copying

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

- Number: US 10,313,682 B2
- Document ID: US10313682B2
- Status: Granted
- Kind: B2
- Application number: 14/466,407
- Filed: 2014-08-22
- Published: 2015-02-26
- Granted: 2019-06-04
- Earliest claimed: 2013-08-26
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Chao Pang; Liwei Guo; Jianle Chen; Rajan Laxman Joshi; Joel Sole Rojals; Marta Karczewicz
- Web page: https://patentgrep.com/patent/US10313682B2

## CPC

- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/593: involving spatial prediction techniques
- 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: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

In general, techniques are described for performing an intra block copying process to code video data. A video decoding device that includes a memory and one or more processors may perform the techniques. The memory may be configured to store a current block of a picture. The processors may be configured to perform an intra block copying process to decode the current block using a prediction block that is from a same slice or a same tile as that in which the coded current block resides, the prediction block restricted to be within a search region that only includes the same slice or the same tile as that in which the coded current block resides.

## Claims

### Claim 1

A method of decoding video data comprising:
performing, by one or more processors, an intra block copying process to decode a coded current block of a picture, wherein the coded current block comprises one of a coded current prediction unit (PU) or a coded current transform unit (TU) of a coded current coding unit (CU),
wherein performing the intra block copying process comprises:
obtaining an offset vector that identifies the prediction block restricted to be within a same slice or a same tile as that in which the coded current block resides, wherein the same slice comprises one of a plurality of slices, or the same tile comprises one of a plurality of tiles, the picture divided into the plurality of slices or the plurality of tiles, the coded current CU is in a coding tree unit (CTU) of the picture, and wherein the same slice or the same tile only includes the CTU in which the coded current CU resides and not a CTU to the left of the CTU in which the coded current CU resides;
obtaining the prediction block from within the same slice or the same tile in which the coded current block resides based on a location of the coded current block and the offset vector, wherein the prediction block does not overlap the coded current CU; and
decoding the coded current block based on the prediction block.

### Claim 2 (depends on 1)

The method of claim 1, wherein the prediction block has not been processed using any in-loop filtering.

### Claim 3 (depends on 1)

The method of claim 1, wherein a size of the offset vector has been restricted such that the offset vector is unable to identify a block outside of the same slice or the same tile in which the coded current block resides.

### Claim 4 (depends on 1)

The method of claim 1, wherein performing the intra block copying process comprises:
obtaining an offset vector that identifies the prediction block that resides partially within the same slice or the same tile as that in which the coded current block resides;
padding the slice or the tile to generate a padded slice or a padded tile that fills in a portion of the prediction block that resides outside of the slice or the tile;
obtaining the prediction block based on a location of the coded current block and the offset vector, the prediction block including at least some portion of the padding; and
decoding the coded current block based on the prediction block.

### Claim 5 (depends on 1)

The method of claim 1, further comprising obtaining, in one or more of a picture parameter set or sequence parameter set included within a bitstream to which the coded current block is stored, an intrabc_across_tiles_enabled_flag syntax element indicating whether a region used when performing the intra block copying process during encoding of the coded current block was determined such that the region does not include any block assigned to a different tile than the tile in which the coded current block resides, and
wherein performing the intra block coding process comprises performing the intra block coding process based on the intrabc_across_tiles_enabled_flag syntax element.

### Claim 6 (depends on 1)

The method of claim 1, further comprising obtaining, in one or more of a picture parameter set or sequence parameter set included within a bitstream to which the coded current block is stored, an intrabc_across_slices_enabled_flag syntax element indicating whether a region used when performing the intra block copying process during encoding of the coded current block was determined such that the region does not include any block assigned to a different slice than the slice in which the coded current block resides, and
wherein performing the intra block coding process comprises performing the intra block coding process based on the intrabc_across_slices_enabled_flag syntax element.

### Claim 7 (depends on 1)

The method of claim 1, wherein the prediction block is inter predicted from a reference block in a different slice or tile.

### Claim 8 (depends on 1)

The method of claim 1, wherein the coded current CU is in a coding tree unit (CTU) of the picture, and wherein the search region only includes a CTU to the left of the CTU of the coded current CU and the CTU of the coded current CU.

### Claim 9

A method of encoding video data comprising:
dividing, by one or more processors, a picture into a plurality of slices or a plurality of tiles;
performing, by the one or more processors, an intra block copying process to code a current block of the picture, wherein the current block comprises one of a current prediction unit (PU) or a current transform unit (TU) of a current coding unit (CU), the intra block copying process comprising:
identifying a search region in a video picture for the current block that does not include pixels from a different one of the plurality of slices or from a different one of the plurality of tiles in which the current block resides, the current CU is in a coding tree unit (CTU) of the picture, and the search region only includes the CTU in which the coded current CU resides and not a CTU to the left of the CTU in which the coded current CU resides;
after identifying the search region, accessing each block within the search region, determining a difference between each block accessed within the search region and the current block, and selecting a prediction block from each of the blocks accessed within the search region that resulted in a smallest difference between the accessed blocks and the current block;
encoding the current block based on the prediction block selected from the search region comprising identify a prediction block that resides at least partially within the determined search region and that does not overlap the current CU, and encoding the current block based on the identified prediction block.

### Claim 10 (depends on 9)

The method of claim 9, wherein pixels included in the search region have not been processed using any in-loop filters.

### Claim 11 (depends on 9)

The method of claim 9, wherein the current block comprises one of a current prediction unit (PU) or a current transform unit (TU) of a current coding unit (CU).

### Claim 12 (depends on 9)

The method of claim 9, wherein performing the intra block copying process comprises:
restricting a size of an offset vector identifying a location of a prediction block relative to the current block within the search region such that the offset vector is unable to identify those blocks of the search region that reside outside of the slice or the tile in which the current block resides;
identifying a prediction block within the search region based on the offset vector; and
encoding the current block based on the identified prediction block.

### Claim 13 (depends on 9)

The method of claim 9, wherein performing the intra block copying process comprises:
determining a region that extends beyond the slice or the tile in which the current block resides, padding the slice or the tile to generate a padded slice or a padded tile that is the same size as the determined region;
identifying a prediction block within the determined region; and
encoding the current block based on the identified prediction block.

### Claim 14 (depends on 9)

The method of claim 9, further comprising specifying, in one or more of a picture parameter set or sequence parameter set included within a bitstream to which the coded current block is stored, an intrabc_across_tiles_enabled_flag syntax element indicating whether the search region was determined such that the search region does not include any block of the picture assigned to the different tile than the tile in which the current block resides.

### Claim 15 (depends on 9)

The method of claim 9, further comprising specifying, in one or more of a picture parameter set or sequence parameter set included within a bitstream to which the coded current block is stored, an intrabc_across_slices_enabled_flag syntax element indicating whether the search region was determined such that the search region does not include any block of the picture assigned to the different slice than the slice in which the current block resides.

### Claim 16 (depends on 9)

The method of claim 9, wherein performing the intra block copying process comprises determining a region of the picture such that the region does not include any block of the picture assigned to the different slice or the different tile than the slice or the in which the current block resides and does not require pixel padding to be performed with respect to the picture.

### Claim 17

A video decoding device comprising:
a memory configured to store a current block of a picture, wherein the current block comprises one of a coded current prediction unit (PU) or a coded current transform unit (TU) of a coded current coding unit (CU), and
one or more processors configured to perform an intra block copying process to decode the current block, the intra block copying process comprising:
obtaining an offset vector that identifies the prediction block restricted to be within a same slice or a same tile as that in which the coded current block resides, wherein the same slice comprises one of a plurality of slices, or the same tile comprises one of a plurality of tiles, the picture divided into the plurality of slices or the plurality of tiles, the coded current CU is in a coding tree unit (CTU) of the picture, and wherein the same slice or the same tile only includes the CTU in which the coded current CU resides and not a CTU to the left of the CTU in which the coded current CU resides;
obtaining the prediction block from with the same slice or the same tile in which the coded current block resides based on a location of the coded current block and the offset vector, wherein the prediction block does not overlap the coded current CU; and
decoding the coded current block based on the prediction block.

### Claim 18 (depends on 17)

The video decoding device of claim 17, wherein the prediction block has not been processed using any in-loop filtering.

### Claim 19 (depends on 17)

The video decoding device of claim 17, wherein a size of the offset vector has been restricted such that the offset vector is unable to identify a block outside of the same slice or the same tile in which the coded current block resides.

### Claim 20 (depends on 17)

The video decoding device of claim 17, wherein the one or more processors are configured to obtain an offset vector that identifies the prediction block that resides partially within the same slice or the same tile as that in which the coded current block resides, pad the slice or the tile to generate a padded slice or a padded tile that fills in a portion of the prediction block that resides outside of the slice or the tile, obtain the prediction block based on a location of the coded current block and the offset vector, the prediction block including at least some portion of the padding, and decode the coded current block based on the prediction block.

### Claim 21 (depends on 17)

The video decoding device of claim 17, wherein the one or more processors are further configured to obtain, in one or more of a picture parameter set or sequence parameter set included within a bitstream to which the coded current block is stored, an intrabc_across_tiles_enabled_flag syntax element indicating whether the search region used when performing the intra block copying process during encoding of the coded current block was determined such that the search region does not include any block assigned to a different tile than the tile in which the coded current block resides, and
wherein the one or more processors are configured to perform the intra block coding process based on the intrabc_across_tiles_enabled_flag syntax element.

### Claim 22 (depends on 17)

The video decoding device of claim 17, wherein the one or more processors are further configured to obtain, in one or more of a picture parameter set or sequence parameter set included within a bitstream to which the coded current block is stored, an intrabc_across_slices_enabled_flag syntax element indicating whether the search region used when performing the intra block copying process during encoding of the coded current block was determined such that the search region does not include any block assigned to a different slice than the slice in which the coded current block resides, and
wherein the one or more processors are configured to perform the intra block coding process based on the intrabc_across_slices_enabled_flag syntax element.

### Claim 23

A video encoding device comprising:
a memory configured to store a current block of a picture, wherein the current block comprises one of a current prediction unit (PU) or a current transform unit (TU) of a current coding unit (CU); and
one or more processors configured to:
divide the picture into a plurality of slices or a plurality of tiles;
perform an intra block copying process to encode the current block, the intra block copying process comprising:
identifying a search region in a video picture for the current block that does not include pixels from a different one of the plurality of slices or from a different one of the plurality of tiles in which the current block resides, the current CU is in a coding tree unit (CTU) of the picture, and the search region only includes the CTU in which the coded current CU resides and not a CTU to the left of the CTU in which the coded current CU resides;
after identifying the search region, accessing each block within the search region, determining a difference between each block accessed within the search region and the current block, and selecting a prediction block from each of the blocks accessed within the search region that resulted in a smallest difference between the accessed blocks and the current block; and
encoding the current block based on the prediction block selected from the search region comprising identify a prediction block that resides at least partially within the determined search region and that does not overlap the current CU, and encoding the current block based on the identified prediction block.

### Claim 24 (depends on 23)

The video encoding device of claim 23, wherein pixels included in the search region have not been processed using any in-loop filters.
