# US 11,122,296 B2 · Block sized based transform restrictions

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

- Number: US 11,122,296 B2
- Document ID: US11122296B2
- Status: Granted
- Kind: B2
- Application number: 16/477,021
- Filed: 2018-01-05
- Published: 2020-01-02
- Granted: 2021-09-14
- Earliest claimed: 2017-01-11
- Assignees: InterDigital VC Holdings, Inc.
- Applicants: Interdigital Vc Holdings, Inc.
- Inventors: Fabrice Leleannec; Franck Galpin; Tangi Poirier
- Web page: https://patentgrep.com/patent/US11122296B2

## CPC

- H04N 19/122: Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
- H04N 19/61: in combination with predictive coding
- 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/119: Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
- H04N 19/13: Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
- H04N 19/157: Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A coding unit having a size multiple of three in horizontal or vertical direction is coded through one of several embodiments. In one embodiment, for some block sizes, the coding unit is coded and decoded systematically through SKIP mode. In another embodiment, the coding units can be coded in SKIP mode or with a DC coefficient. In another embodiment, an asymmetric division of a common coding unit parent is performed and transform coefficients are factorized among at least two sub-blocks to encode a coding unit. In another embodiment, a separable two dimensional transform can be applied by applying a transform over the block in one direction, and using two one-dimensional transforms on sub-blocks in the other direction to code. Methods, apparatus, and signal embodiments are provided for encoding and decoding.

## Claims

### Claim 1

A method for decoding a block of video data, comprising:
decoding a sub-block having size that is not a power-of-two in width or height, using processing such that an inverse transform that is not a power-of-two is not needed, wherein said sub-block was divided from said block into at least two rectangular sub-blocks, wherein, said processing comprises:
obtaining a DC coefficient of a sub-block having size that is not a power-of-two in width or height by entropy decoding a transform coefficient associated with a first smaller sub-block that comprises said sub-block;
reconstructing a low pass component of said sub-block using an inverse transform applied on said DC coefficient;
applying a partial inverse transform of said first smaller sub-block by applying an inverse transform on AC coefficients of the first smaller sub-block and considering a DC coefficient equal to zero;
entropy decoding an AC coefficient associated with a second smaller sub-block of said sub-block;
partially inverse transforming said second smaller sub-block by applying an inverse transform on the AC coefficients of said second smaller sub-block and considering a DC coefficient equal to zero.

### Claim 2

A method for coding a block of video data, comprising:
encoding a block comprising at least two rectangular sub-blocks, using processing such that a transform that is not a power-of-two is not needed, wherein, said processing comprises:
obtaining residuals for the block using interprediction;
dividing said residuals for the block into at least two sub-blocks comprising at least one sub-block having a dimension that is not a power-of-two;
replacing residuals for the at least one sub-block having a dimension that is not a power-of-two by zeros;
transforming each remaining sub-block using power-of-two sized transforms to generate transform coefficients.

### Claim 3 (depends on 2)

The method of claim 2, wherein a sub-block having a dimension that is not a power of two is a multiple of a power-of-two.

### Claim 4

The method of 3, wherein said sub-block having a dimension that is not a power of two is three times a power-of-two.

### Claim 5 (depends on 2)

The method of claim 2, further comprising encoding at least one syntax element indicative of at least one sub-block having residuals replaced by zeros.

### Claim 6 (depends on 2)

The method of claim 2, wherein said processing further comprises using SKIP mode for said sub-block having dimension that is not a power-of-two.

### Claim 7 (depends on 2)

The method of claim 2, wherein said processing comprises:
transforming said sub-block having dimension that is not a power-of-two using a one dimensional transform in a first direction;
transforming said sub-block having dimension that is not a power-of-two using a one dimensional transform in a second direction.

### Claim 8

An apparatus for coding a block of video data, comprising:
a memory, and
a processor, configured to:
encode a block comprising at least two rectangular sub-blocks, using processing such that a transform that is not a power-of-two is not needed, wherein, said processing comprises:
obtaining residuals for the block using interprediction;
dividing said residuals for the block into at least two sub-blocks comprising at least one sub-block having a dimension that is not a power-of-two;
replacing residuals for the at least one sub-block having a dimension that is not a power-of-two by zeros;
transforming each remaining sub-block using power-of-two sized transforms to generate transform coefficients.

### Claim 9

The apparatus of 8, wherein said sub-block having a dimension that is not a power of two is three times a power-of-two.

### Claim 10 (depends on 8)

The apparatus of claim 8, further comprising encoding at least one syntax element indicative of at least one sub-block having residuals replaced by zeros.

### Claim 11 (depends on 8)

The apparatus of claim 8, wherein said processor is further configured to:
transform said sub-block having dimension that is not a power-of-two using a one dimensional transform in a first direction;
transform said sub-block having dimension that is not a power-of-two using a one dimensional transform in a second direction.

### Claim 12

A method for decoding a block of video data, comprising:
decoding a block comprising at least two rectangular sub-blocks, using processing such that an inverse transform that is not a power-of-two is not needed, wherein, said processing comprises:
applying an inverse transform on coefficients of a first sub-block by applying a power-of-two sized inverse transform to generate residuals for the first sub-block;
inserting zeros for residuals in a second sub-block having a dimension that is not a power-of-two;
reconstructing residuals of the first sub-block and second sub-block that comprise the block.

### Claim 13 (depends on 12)

The method of claim 12, wherein a sub-block having a dimension that is not a power of two is a multiple of a power-of-two.

### Claim 14

The method of 13, wherein said sub-block having a dimension that is not a power of two is three times a power-of-two.

### Claim 15 (depends on 12)

The method of claim 12, further comprising decoding at least one syntax element indicative of at least one sub-block having residuals replaced by zeros.

### Claim 16 (depends on 12)

The method of claim 12, wherein said processing further comprises using SKIP mode for said sub-block having dimension that is not a power-of-two.

### Claim 17 (depends on 12)

The method of claim 12, wherein said processing comprises:
inverse transforming said sub-block having dimension that is not a power-of-two using a one dimensional inverse transform in a first direction;
inverse transforming said sub-block having dimension that is not a power-of-two using a one dimensional inverse transform in a second direction.

### Claim 18

An apparatus for decoding a block of video data, comprising:
a memory, and
a processor, configured to:
decode a block comprising at least two rectangular sub-blocks, using processing such that an inverse transform that is not a power-of-two is not needed, wherein, said processing comprises:
applying an inverse transform on coefficients of a first sub-block by applying a power-of-two sized inverse transform to generate residuals for the first sub-block;
inserting zeros for residuals in a second sub-block having a dimension that is not a power-of-two;
reconstructing residuals of the first sub-block and second sub-block that comprise the block.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein said sub-block having a dimension that is not a power of two is three times a power-of-two.

### Claim 20 (depends on 18)

The apparatus of claim 18, further comprising decoding at least one syntax element indicative of at least one sub-block having residuals replaced by zeros.

### Claim 21 (depends on 18)

The apparatus of claim 18, wherein said processor is further configured to:
inverse transform said sub-block having dimension that is not a power-of-two using a one dimensional inverse transform in a first direction;
inverse transform said sub-block having dimension that is not a power-of-two using a one dimensional inverse transform in a second direction.
