# US 11,451,827 B2 · Non-transform coding

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

- Number: US 11,451,827 B2
- Document ID: US11451827B2
- Status: Granted
- Kind: B2
- Application number: 17/230,246
- Filed: 2021-04-14
- Published: 2021-07-29
- Granted: 2022-09-20
- Earliest claimed: 2012-08-23
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Jizheng Xu; Cuiling Lan
- Web page: https://patentgrep.com/patent/US11451827B2

## CPC

- H04N 19/645: by grouping of coefficients into blocks after the transform
- H04N 19/12: Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N 19/13: Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
- H04N 19/14: Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence)
- H04N 19/147: according to rate distortion criteria (rate-distortion as a criterion for motion estimation H04N19/567)
- H04N 19/172: the region being a picture, frame or field
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 21/8451: {using Advanced Video Coding [AVC]}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Techniques for selectively transforming one or more coding units when coding video content are described herein. The techniques may include determining whether or not to transform a particular coding unit. The determination may be based on a difference in pixel values of the particular coding unit and/or one or more predefined rate-distortion constraints. When it is determined to not perform a transform, the particular coding unit may be coded without transforming the particular coding unit.

## Claims

### Claim 1

In a computer system, a method of encoding video, thereby producing encoded data as part of a bitstream, the method including, for a current block of pixel values of a frame of the video:
determining intra-frame prediction values for the current block;
based at least in part on the intra-frame prediction values, determining intra-frame prediction residual information for the current block;
selectively performing a transform on the intra-frame prediction residual information for the current block, thereby producing residual values for the current block;
quantizing the residual values for the current block;
determining that the current block is not further split; and
based at least in part on the determination that the current block is not further split, setting a flag in the bitstream, the flag at least in part indicating whether or not an inverse transform is to be used during decoding for the intra-frame prediction residual information for the current block, wherein the inverse transform is to be skipped if the flag indicates the inverse transform is not to be used during the decoding for the intra-frame prediction residual information for the current block.

### Claim 2 (depends on 1)

The method of claim 1, wherein the flag is entropy coded using context-based adaptive binary arithmetic coding.

### Claim 3 (depends on 1)

The method of claim 1, wherein the flag is entropy coded utilizing a flag for a block to the left of the current block and a flag for a block above the current block.

### Claim 4 (depends on 1)

The method of claim 1, wherein the inverse transform is to be performed if the flag indicates the inverse transform is to be used during the decoding for the intra-frame prediction residual information for the current block.

### Claim 5 (depends on 1)

The method of claim 1, wherein the bitstream includes the flag if the current block is not further split but lacks the flag if the current block is further split.

### Claim 6 (depends on 1)

The method of claim 1, wherein the residual values are transform coefficients or the intra-frame prediction residual information depending on whether the transform is performed for the current block, the residual values being the transform coefficients if the transform is performed for the current block, and the residual values being the intra-frame prediction residual information if the transform is not performed for the current block.

### Claim 7 (depends on 1)

The method of claim 1, wherein the intra-frame prediction residual information for the current block is for a transform unit of a coding unit of the frame.

### Claim 8

A computer system comprising:
memory configured to receive and store encoded data, from a bitstream, for a frame of video; and
a video decoder, implemented using one or more processors and memory, configured to perform operations to decode the encoded data, wherein the operations include, for a current block of pixel values of the frame:
determining that the current block is not further split;
based at least in part on the determination that the current block is not further split, referencing a flag in the bitstream, the flag at least in part indicating whether or not an inverse transform is used during decoding for intra-frame prediction residual information for the current block;
inverse quantizing residual values for the current block;
selectively performing an inverse transform on the inverse quantized residual values for the current block, thereby producing the intra-frame prediction residual information, wherein the inverse transform is skipped if the flag indicates the inverse transform is not used during the decoding for the intra-frame prediction residual information for the current block;
determining intra-frame prediction values for the current block; and
combining the intra-frame prediction residual information and the intra-frame prediction values for the current block.

### Claim 9 (depends on 8)

The computer system of claim 8, wherein the flag has been entropy coded using context-based adaptive binary arithmetic coding.

### Claim 10 (depends on 8)

The computer system of claim 8, wherein the flag has been entropy coded utilizing a flag for a block to the left of the current block and a flag for a block above the current block.

### Claim 11 (depends on 8)

The computer system of claim 8, wherein the inverse transform is performed if the flag indicates the inverse transform is used during the decoding for the intra-frame prediction residual information for the current block.

### Claim 12 (depends on 8)

The computer system of claim 8, wherein the bitstream includes the flag if the current block is not further split but lacks the flag if the current block is further split.

### Claim 13 (depends on 8)

The computer system of claim 8, wherein the residual values are transform coefficients or the intra-frame prediction residual information depending on whether the inverse transform is performed for the current block, the residual values being the transform coefficients if the inverse transform is performed for the current block, and the residual values being the intra-frame prediction residual information if the inverse transform is not performed for the current block.

### Claim 14 (depends on 8)

The computer system of claim 8, wherein the intra-frame prediction residual information for the current block is for a transform unit of a coding unit of the frame.

### Claim 15

One or more computer-readable memory or storage devices having stored thereon encoded data, in a bitstream, for a frame of video, wherein the encoded data includes a flag at least in part indicating whether or not an inverse transform is used during decoding for intra-frame prediction residual information for a current block of pixel values of the frame, the encoded data being organized to facilitate decoding by operations that include:
determining that the current block is not further split;
based at least in part on the determination that the current block is not further split, referencing the flag;
inverse quantizing residual values for the current block;
selectively performing an inverse transform on the inverse quantized residual values for the current block, thereby producing the intra-frame prediction residual information, wherein the inverse transform is skipped if the flag indicates the inverse transform is not used during the decoding for the intra-frame prediction residual information for the current block;
determining intra-frame prediction values for the current block; and
combining the intra-frame prediction residual information and the intra-frame prediction values for the current block.

### Claim 16 (depends on 15)

The one or more computer-readable memory or storage devices of claim 15, wherein the flag has been entropy coded using context-based adaptive binary arithmetic coding.

### Claim 17 (depends on 15)

The one or more computer-readable memory or storage devices of claim 15, wherein the flag has been entropy coded utilizing a flag for a block to the left of the current block and a flag for a block above the current block.

### Claim 18 (depends on 15)

The one or more computer-readable memory or storage devices of claim 15, wherein the inverse transform is performed if the flag indicates the inverse transform is used during the decoding for the intra-frame prediction residual information for the current block.

### Claim 19 (depends on 15)

The one or more computer-readable memory or storage devices of claim 15, wherein the bitstream includes the flag if the current block is not further split but lacks the flag if the current block is further split.

### Claim 20 (depends on 15)

The one or more computer-readable memory or storage devices of claim 15, wherein the residual values are transform coefficients or the intra-frame prediction residual information depending on whether the inverse transform is performed for the current block, the residual values being the transform coefficients if the inverse transform is performed for the current block, and the residual values being the intra-frame prediction residual information if the inverse transform is not performed for the current block.
