# US 11,909,998 B2 · System and method for 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,909,998 B2
- Document ID: US11909998B2
- Status: Granted
- Kind: B2
- Application number: 16/906,993
- Filed: 2020-06-19
- Published: 2020-12-24
- Granted: 2024-02-20
- Earliest claimed: 2019-06-21
- Assignees: Panasonic Intellectual Property Corporation of America
- Applicants: Panasonic Intellectual Property Corporation of America
- Inventors: Che-Wei Kuo; JIng Ya Li; Chong Soon Lim; Han Boon Teo; Hai Wei Sun; Rohith Mars; Tadamasa Toma; Takahiro Nishi; Kiyofumi Abe; Yusuke Kato
- Web page: https://patentgrep.com/patent/US11909998B2

## CPC

- H04N 19/11: among a plurality of spatial predictive coding modes
- H04N 19/50: using predictive coding (H04N19/61 takes precedence)
- H04N 19/124: Quantisation
- 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/436: using parallelised computational arrangements
- H04N 19/593: involving spatial prediction techniques
- H04N 19/96: Tree coding, e.g. quad-tree coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

An encoder includes circuitry and memory. The circuitry determines whether a first virtual pipeline decoding unit (VPDU) is split into smaller blocks and whether a second VPDU is split into smaller blocks. In response to a determination the first VPDU is not split into smaller blocks and a determination the second VPDU is split into smaller blocks, a block of chroma samples is predicted without using luma samples. In response to a determination the first VPDU is split into smaller blocks and a determination the second VPDU is split into smaller blocks, the block of chroma samples is predicted using luma samples. In response to a determination the first VPDU is not split into smaller blocks and a determination the second VPDU is not split into smaller block, the block of chroma samples is predicted using luma samples. The block is encoded using the predicted chroma samples.

## Claims

### Claim 1

An encoder, comprising:
circuitry; and
memory coupled to the circuitry;
wherein the circuitry, in operation, performs the following:
determining a threshold luma block size for each 64×64 luma virtual pipeline decoding unit (VPDU) of a coding tree unit;
comparing a size of a first 64×64 luma VPDU of the coding tree unit to the determined threshold luma block size for the first 64×64 luma VPDU and determining whether the first 64×64 luma VPDU is split into smaller blocks based on the comparison of the size of the first 64×64 luma VPDU to the determined threshold luma block size for the first 64×64 luma VPDU;
comparing a size of a corresponding second 32×32 chroma VPDU to a threshold chroma block size and determining whether the corresponding second 32×32 chroma VPDU is split into smaller blocks based on the comparison of the size of the corresponding second 32×32 chroma VPDU to the threshold chroma block size;
in response to a determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting a block of chroma samples of the corresponding second 32×32 chroma VPDU without using luma samples;
in response to a determination the first 64×64 luma VPDU is split into smaller blocks and the determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples;
in response to the determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is not split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples; and
encoding the block using the predicted chroma samples.

### Claim 2 (depends on 1)

The encoder of claim 1, wherein the determined threshold luma block size for the first 64×64 luma VPDU is different from the threshold chroma block size.

### Claim 3 (depends on 2)

The encoder of claim 2, wherein the threshold chroma block size is a default threshold chroma block size.

### Claim 4 (depends on 2)

The encoder of claim 2, wherein the determined threshold luma block size for the first 64×64 luma VPDU and the threshold chroma block size are signaled.

### Claim 5 (depends on 1)

The encoder of claim 1, wherein partition shapes of smaller blocks are limited to a determined set of shapes and block sizes of smaller blocks are limited to a determined set of block sizes.

### Claim 6

An encoder, comprising:
a block splitter, which, in operation, splits a first image into a plurality of blocks;
an intra predictor, which, in operation, predicts blocks included in the first image, using reference blocks included in the first image;
an inter predictor, which, in operation, predicts blocks included in the first image, using reference blocks included in a second image different from the first image;
a loop filter, which, in operation, filters blocks included in the first image;
a transformer, which, in operation, transforms a prediction error between an original signal and a prediction signal generated by the intra predictor or the inter predictor, to generate transform coefficients;
a quantizer, which, in operation, quantizes the transform coefficients to generate quantized coefficients; and
an entropy encoder, which, in operation, variable encodes the quantized coefficients to generate an encoded bitstream including the encoded quantized coefficients and control information,
wherein predicting a block includes:
determining a threshold luma block size for each 64×64 luma virtual pipeline decoding unit (VPDU) of a coding tree unit;
comparing a size of a first 64×64 luma VPDU of the coding tree unit to the determined threshold luma block size for the first 64×64 luma VPDU and determining whether the first 64×64 luma VPDU is split into smaller blocks based on the comparison of the size of the first 64×64 luma VPDU to the determined threshold luma block size for the first 64×64 luma VPDU;
comparing a size of a corresponding second 32×32 chroma VPDU to a threshold chroma block size and determining whether the corresponding second 32×32 chroma VPDU is split into smaller blocks based on the comparison of the size of the corresponding second 32×32 chroma VPDU to the threshold chroma block size;
in response to a determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU without using luma samples;
in response to a determination the first 64×64 luma VPDU is split into smaller blocks and the determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples; and
in response to the determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is not split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples.

### Claim 7 (depends on 6)

The encoder of claim 6, wherein the determined threshold luma block size for the first 64×64 luma VPDU is different from the threshold chroma block size.

### Claim 8 (depends on 7)

The encoder of claim 7, wherein the threshold chroma block size is a default chroma block size.

### Claim 9 (depends on 7)

The encoder of claim 7, wherein the determined threshold luma block size for the first 64×64 luma VPDU is signaled.

### Claim 10 (depends on 6)

The encoder of claim 6, wherein partition shapes of smaller blocks are limited to a determined set of shapes and block sizes of smaller blocks are limited to a determined set of block sizes.

### Claim 11

A decoder, comprising:
circuitry;
memory coupled to the circuitry;
wherein the circuitry, in operation, performs the following:
determining a threshold luma block size for each 64×64 luma virtual pipeline decoding unit (VPDU) of a coding tree unit;
comparing a size of a first 64×64 luma VPDU of the coding tree unit to the determined threshold luma block size for the first 64×64 luma VPDU and determining whether the first 64×64 luma VPDU is split into smaller blocks based on the comparison of the size of the first 64×64 luma VPDU to the determined threshold luma block size for the first 64×64 luma VPDU;
comparing a size of a corresponding second 32×32 chroma VPDU to a threshold chroma block size and determining whether the corresponding second 32×32 chroma VPDU is split into smaller blocks based on the comparison of the size of the corresponding second 32×32 chroma VPDU to the threshold chroma block size;
in response to a determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting a block of chroma samples of the corresponding second 32×32 chroma VPDU without using luma samples;
in response to a determination the first 64×64 luma VPDU is split into smaller blocks and the determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples;
in response to the determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is not split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples; and
decoding the block using the predicted chroma samples.

### Claim 12 (depends on 11)

The decoder of claim 11, wherein the determined threshold luma block size for the first 64×64 luma VPDU is different from the threshold chroma block size.

### Claim 13 (depends on 12)

The decoder of claim 12, wherein the threshold chroma block size is a default threshold chroma block size.

### Claim 14 (depends on 12)

The decoder of claim 12, wherein the threshold chroma block size is signaled.

### Claim 15 (depends on 11)

The decoder of claim 11, wherein partition shapes of smaller blocks are limited to a determined set of shapes and block sizes of smaller blocks are limited to a determined set of block sizes.

### Claim 16

A decoding device, comprising:
a decoder, which, in operation, decodes an encoded bitstream to output quantized coefficients;
an inverse quantizer, which, in operation, inverse quantizes the quantized coefficients to output transform coefficients;
an inverse transformer, which, in operation, inverse transforms the transform coefficients to output a prediction error;
an intra predictor, which, in operation, predicts blocks included in a first image, using a reference blocks included in the first image;
an inter predictor, which, in operation, predicts blocks included in the first image, using reference blocks included in a second image different from the first image;
a loop filter which, in operation, filters blocks included in the first image; and
an output, which, in operation, outputs a picture including the first image,
wherein predicting a block includes:
determining a threshold luma block size for each 64×64 luma virtual pipeline decoding unit (VPDU) of a coding tree unit;
comparing a size of a first 64×64 luma VPDU of the coding tree unit to the determined threshold luma block size for the first 64×64 luma VPDU and determining whether the first 64×64 luma VPDU is split into smaller blocks based on the comparison of the size of the first 64×64 luma VPDU to the determined threshold luma block size for the first 64×64 luma VPDU;
comparing a size of a corresponding second 32×32 chroma VPDU to a threshold chroma block size and determining whether the corresponding second 32×32 chroma VPDU is split into smaller blocks based on the comparison of the size of the corresponding second 32×32 chroma VPDU to the threshold chroma block size;
in response to a determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU without using luma samples;
in response to a determination the first 64×64 luma VPDU is split into smaller blocks and the determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples; and
in response to the determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is not split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples.

### Claim 17 (depends on 16)

The decoding device of claim 16, wherein the determined threshold luma block size for the first 64×64 luma VPDU is different from the threshold chroma block size.

### Claim 18 (depends on 17)

The decoding device of claim 17, wherein the threshold chroma block size is signaled.

### Claim 19 (depends on 16)

The decoding device of claim 16, wherein partition shapes of smaller blocks are limited to a determined set of shapes and block sizes of smaller blocks are limited to a determined set of block sizes.

### Claim 20

An encoding method, comprising:
determining a threshold luma block size for each 64×64 luma virtual pipeline decoding unit (VPDU) of a coding tree unit;
comparing a size of a first 64×64 luma VPDU of the coding tree unit to the determined threshold luma block size for the first 64×64 luma VPDU and determining whether the first 64×64 luma VPDU is split into smaller blocks based on the comparison of the size of the first 64×64 luma VPDU to the determined threshold luma block size for the first 64×64 luma VPDU;
comparing a size of a corresponding second 32×32 chroma VPDU to a threshold chroma block size and determining whether the corresponding second 32×32 chroma VPDU is split into smaller blocks based on the comparison of the size of the corresponding second 32×32 chroma VPDU to the threshold chroma block size;
in response to a determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting a block of chroma samples of the corresponding second 32×32 chroma VPDU without using luma samples;
in response to a determination the first 64×64 luma VPDU is split into smaller blocks and the determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples;
in response to the determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is not split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples; and
encoding the block using the predicted chroma samples.

### Claim 21 (depends on 20)

The encoding of claim 20, wherein the determined threshold luma block size for the first 64×64 luma VPDU is different from the threshold chroma block size.

### Claim 22 (depends on 20)

The encoding method of claim 20, wherein partition shapes of smaller blocks are limited to a determined set of shapes and block sizes of smaller blocks are limited to a determined set of block sizes.

### Claim 23

A decoding method, comprising:
determining a threshold luma block size for each 64×64 luma virtual pipeline decoding unit (VPDU) of a coding tree unit;
comparing a size of a first 64×64 luma VPDU of the coding tree unit to the determined threshold luma block size for the first 64×64 luma VPDU and determining whether the first 64×64 luma VPDU is split into smaller blocks based on the comparison of the size of the first 64×64 luma VPDU to the determined threshold luma block size for the first 64×64 luma VPDU;
comparing a size of a corresponding second 32×32 chroma VPDU to a threshold chroma block size and determining whether the corresponding second 32×32 chroma VPDU is split into smaller blocks based on the comparison of the size of the corresponding second 32×32 chroma VPDU to the threshold chroma block size;
in response to a determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting a block of chroma samples of the corresponding second 32×32 chroma VPDU without using luma samples;
in response to a determination the first 64×64 luma VPDU is split into smaller blocks and the determination the corresponding second 32×32 chroma VPDU is split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples;
in response to the determination the first 64×64 luma VPDU is not split into smaller blocks and a determination the corresponding second 32×32 chroma VPDU is not split into smaller blocks, predicting the block of chroma samples of the corresponding second 32×32 chroma VPDU using luma samples; and
decoding the block using the predicted chroma samples.

### Claim 24 (depends on 23)

The decoding of claim 23, wherein the determined threshold luma block size of the first 64×64 luma VPDU is different from the threshold chroma block size.

### Claim 25 (depends on 23)

The decoding method of claim 23, wherein partition shapes of smaller blocks are limited to a determined set of shapes and block sizes of smaller blocks are limited to a determined set of block sizes.
