# US 2017/0289575 A1 · 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 2017/0289575 A1
- Document ID: US20170289575A1
- Status: Published application
- Kind: A1
- Application number: 15/624,824
- Filed: 2017-06-16
- Published: 2017-10-05
- 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/US20170289575A1

## 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 at position 1

-20. (canceled)

### Claim 21

One or more computer memory or storage devices having stored thereon computer-executable instructions for causing a computer system, when programmed thereby, to perform operations comprising:
encoding one or more frames of video to produce encoded data, wherein the encoding includes, for a current block of pixel values of a transform unit (TU) for a coding unit (CU) of a current frame among the one or more frames of video:
if the TU is a leaf TU:
setting a flag for the current block, the flag indicating whether or not a frequency transform is used during the encoding for the current block;
selectively performing the frequency transform on residual information for the current block, thereby producing transform coefficients, wherein the frequency transform is performed when the flag indicates the frequency transform is used during the encoding for the current block but skipped when the flag indicates the frequency transform is not used during the encoding for the current block; and
entropy coding the flag; and
if the TU is not a leaf TU, performing the frequency transform on the residual information for the current block, thereby producing the transform coefficients; and
quantizing residual values for the current block, wherein if the frequency transform is used during the encoding for the current block the residual values are the transform coefficients, and otherwise the residual values are the residual information; and
outputting the encoded data as part of a bitstream.

### Claim 22 (depends on 21)

The one or more computer memory or storage devices of claim 21, wherein the TU is a leaf TU if the TU is a lowest-level TU, which may not be further split into sub-units.

### Claim 23 (depends on 21)

The one or more computer memory or storage devices of claim 21, wherein the bitstream includes the flag for the current block if the TU is a leaf TU but lacks the flag for the current block if the TU is not a leaf TU.

### Claim 24 (depends on 21)

The one or more computer memory or storage devices of claim 21, wherein the encoding for the current block includes the setting the flag, the selectively performing, and the entropy coding the flag only if the TU is a leaf TU, and otherwise the encoding for the current block skips the setting the flag, the selectively performing, and the entropy coding the flag.

### Claim 25 (depends on 21)

The one or more computer memory or storage devices of claim 21, wherein the encoding for the current block further includes:
determining the residual information relative to intra-predicted values for the current block; and
entropy coding the quantized residual values.

### Claim 26 (depends on 21)

The one or more computer memory or storage devices of claim 21, wherein the TU is a first TU of the CU, wherein the CU further includes a second TU, and wherein the frequency transform is performed for the current block of the first TU but skipped for a block of pixel values of the second TU.

### Claim 27 (depends on 21)

The one or more computer memory or storage devices of claim 21, wherein the entropy coding the flag for the current block uses context-based adaptive binary arithmetic coding.

### Claim 28 (depends on 27)

The one or more computer memory or storage devices of claim 27, wherein the entropy coding the flag for the current block utilizes a flag for a block to the left of the current block and a flag for a block above the current block.

### Claim 29

In a computing device that implements a video encoder, a method comprising:
encoding one or more frames of video to produce encoded data, wherein the encoding includes, for a current block of pixel values of a transform unit (TU) for a coding unit (CU) of a current frame among the one or more frames of video:
if the TU is a leaf TU:
setting a flag for the current block, the flag indicating whether or not a frequency transform is used during the encoding for the current block;
selectively performing the frequency transform on residual information for the current block, thereby producing transform coefficients, wherein the frequency transform is performed when the flag indicates the frequency transform is used during the encoding for the current block but skipped when the flag indicates the frequency transform is not used during the encoding for the current block; and
entropy coding the flag; and
if the TU is not a leaf TU, performing the frequency transform on the residual information for the current block, thereby producing the transform coefficients; and
quantizing residual values for the current block, wherein if the frequency transform is used during the encoding for the current block the residual values are the transform coefficients, and otherwise the residual values are the residual information; and
outputting the encoded data as part of a bitstream.

### Claim 30 (depends on 29)

The method of claim 29, wherein the TU is a leaf TU if the TU is a lowest-level TU, which may not be further split into sub-units.

### Claim 31 (depends on 29)

The method of claim 29, wherein the bitstream includes the flag for the current block if the TU is a leaf TU but lacks the flag for the current block if the TU is not a leaf TU.

### Claim 32 (depends on 29)

The method of claim 29, wherein the encoding for the current block includes the setting the flag, the selectively performing, and the entropy coding the flag only if the TU is a leaf TU, and otherwise the encoding for the current block skips the setting the flag, the selectively performing, and the entropy coding the flag.

### Claim 33 (depends on 29)

The method of claim 29, wherein the encoding for the current block further includes:
determining the residual information relative to intra-predicted values for the current block; and
entropy coding the quantized residual values.

### Claim 34 (depends on 29)

The method of claim 29, wherein the TU is a first TU of the CU, wherein the CU further includes a second TU, and wherein the frequency transform is performed for the current block of the first TU but skipped for a block of pixel values of the second TU.

### Claim 35 (depends on 29)

The method of claim 29, wherein the entropy coding the flag for the current block uses context-based adaptive binary arithmetic coding.

### Claim 36 (depends on 35)

The method of claim 35, wherein the entropy coding the flag for the current block utilizes a flag for a block to the left of the current block and a flag for a block above the current block.

### Claim 37

A computing device comprising one or more processors and memory, wherein the computing device implements a video encoder configured to perform operations comprising:
encoding one or more frames of video to produce encoded data, wherein the encoding includes, for a current block of pixel values of a transform unit (TU) for a coding unit (CU) of a current frame among the one or more frames of video:
if the TU is a leaf TU:
setting a flag for the current block, the flag indicating whether or not a frequency transform is used during the encoding for the current block;
selectively performing the frequency transform on residual information for the current block, thereby producing transform coefficients, wherein the frequency transform is performed when the flag indicates the frequency transform is used during the encoding for the current block but skipped when the flag indicates the frequency transform is not used during the encoding for the current block; and
entropy coding the flag; and
if the TU is not a leaf TU, performing the frequency transform on the residual information for the current block, thereby producing the transform coefficients; and
quantizing residual values for the current block, wherein if the frequency transform is used during the encoding for the current block the residual values are the transform coefficients, and otherwise the residual values are the residual information; and
outputting the encoded data as part of a bitstream.

### Claim 38 (depends on 37)

The computing device of claim 37, wherein the TU is a leaf TU if the TU is a lowest-level TU, which may not be further split into sub-units.

### Claim 39 (depends on 37)

The computing device of claim 37, wherein the bitstream includes the flag for the current block if the TU is a leaf TU but lacks the flag for the current block if the TU is not a leaf TU.

### Claim 40 (depends on 37)

The computing device of claim 37, wherein the entropy coding the flag for the current block uses context-based adaptive binary arithmetic coding, and wherein the entropy coding the flag for the current block utilizes a flag for a block to the left of the current block and a flag for a block above the current block.
