# US 12,003,723 B2 · Unified transform type signaling and transform type dependent transform coefficient level coding

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

- Number: US 12,003,723 B2
- Document ID: US12003723B2
- Status: Granted
- Kind: B2
- Application number: 18/208,952
- Filed: 2023-06-13
- Published: 2023-10-12
- Granted: 2024-06-04
- Earliest claimed: 2019-01-02
- Assignees: Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
- Applicants: Fraunhofer-Gesellschaft Zur FöRderung Der Angewandten Forschung E.V.
- Inventors: Benjamin Bross; Phan Hoang Tung Nguyen; Paul Keydel; Heiko Schwarz; Detlev Marpe; Thomas Wiegand; Christian Helmrich
- Web page: https://patentgrep.com/patent/US12003723B2

## CPC

- H04N 19/102: characterised by the element, parameter or selection affected or controlled by the adaptive coding
- 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/129: Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
- H04N 19/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- 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 19/46: Embedding additional information in the video signal during the compression process (H04N19/517, H04N19/68, H04N19/70 take precedence)
- H04N 19/467: characterised by the embedded information being invisible, e.g. watermarking
- H04N 19/503: involving temporal prediction (adaptive coding with adaptive selection between spatial and temporal predictive coding H04N19/107; adaptive coding with adaptive selection among a plurality of temporal predictive coding modes H04N19/109)
- H04N 19/593: involving spatial prediction techniques
- H04N 19/61: in combination with predictive coding
- H04N 19/625: using discrete cosine transform [DCT]
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/18: the unit being a set of transform coefficients
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A picture in a data stream is subdivided into different size transform bocks. For a transform block, a transformation is selected by checking whether the block's size exceeds a threshold. If it does, a default technique is used to select the transformation. If it does not, a transformation is used from a list of transformations as identified by an index, the list including an identity transformation and non-identity transformations. A coefficients block in the data stream is decoded, and if the selected transformation is the identity transformation, then the coefficients block is used as a residual sample array, and if the selected transformation is not the identity transformation, the coefficients block is subjected to an inverse transformation corresponding to the selected transformation to obtain a residual sample array used to correct a prediction for the transform block.

## Claims

### Claim 1

An apparatus for decoding a picture comprising:
a processor configured to:
select, for a transform block, a transformation out of a predetermined list of transformations comprising an identity transformation and at least one non-identity transformation;
decode, for the transform block, a block of coefficients from a data stream based on the selected transformation, wherein:
to decode the block of coefficients when the selected transformation is a non-identity transformation, the processor is configured to:
decode, from the data stream, position information for acquiring a coefficient position, the position information indicating where along a scanning order traversing all coefficients of the block of coefficients, a non-zero coefficient is encountered first or where along the scanning order a non-zero coefficient is encountered last,
decode first coefficients of the block of coefficients from the data stream, the first coefficients comprise all non-zero coefficients of the block of coefficients and are traversed by the scanning order starting from or up to the coefficient position, and
infer second coefficients of the block of coefficients to be zero, the second coefficients different from the first coefficients,
to decode the block of coefficients when the selected transformation is the identity transformation, the processor is configured to decode all coefficients of the block of coefficients from the data stream;
derive from the block of coefficients a residual sample array for the transform block so that the block of coefficients is related to the residual sample array according to the selected transformation; and
correct a prediction for the transform block using the residual sample array to reconstruct the transform block.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein:
decoding the first coefficients of the block of coefficients from the data stream, the processor is configured to:
start the decoding of the first coefficients at the coefficient position, so that the first coefficients are traversed by the scanning order starting from the coefficient position, or
finish the decoding of the first coefficients at the coefficient position, so that the first coefficients are traversed by the scanning order up to the coefficient position,
decoding all of the coefficients of the block of coefficients from the data stream, the processor is configured to sequentially decode all coefficients starting or finishing at a coefficient of the block of coefficients which is traversed last by the scanning order.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein decoding all coefficients of the block of coefficients from the data stream, the processor is configured to:
use the scanning order and finish the decoding of all coefficients at a coefficient of the block of coefficients traversed last by the scanning order or
use an inverse scanning order and start the decoding of all coefficients at the coefficient of the block of coefficients traversed last by the scanning order.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein to decode the position information, the processor is configured to:
decoding decode coordinates of the coefficient position from the data stream, or
decode a rank of the coefficient position within the scanning order from the data stream.

### Claim 5

An apparatus for encoding a picture comprising:
a processor configured to:
select, for a transform block, a transformation out of a predetermined list of transformations comprising an identity transformation and at least one non-identity transformation;
derive a prediction for the transform block; and
encode, for the transform block, a block of coefficients into a data stream based on the selected transformation,
wherein to encode the block of coefficients when the selected transformation is a non-identity transformation, the processor is configured to:
encode, into the data stream, position information for acquiring a coefficient position, the position information indicating where along a scanning order traversing all coefficients of the block of coefficients, a non-zero coefficient is encountered first or where along the scanning order a non-zero coefficient is encountered last,
encode first coefficients of the block of coefficients into the data stream, the first coefficients comprise all non-zero coefficients of the block of coefficients and are traversed by the scanning order starting from or up to the coefficient position, and
infer second coefficients of the block of coefficients to be zero, the second coefficients different from the first coefficients,
wherein to encode the block of coefficients when the selected transformation is the identity transformation, the processor is configured to encode all coefficients of the block of coefficients into the data stream,
wherein the block of coefficients is related to a residual sample array according to the selected transformation, and
wherein the transform block is reconstructible by correcting the prediction thereof using the residual sample array.

### Claim 6

A method for decoding a picture, comprising:
selecting, for a transform block, a transformation out of a predetermined list of transformations comprising an identity transformation and at least one non-identity transformation;
decoding, for the transform block, a block of coefficients from a data stream based on the selected transformation, wherein:
decoding the block of coefficients when the selected transformation is a non-identity transformation, comprises
decoding, from the data stream, position information for acquiring a coefficient position, the position information indicating where along a scanning order traversing all coefficients of the block of coefficients, a non-zero coefficient is encountered first or where along the scanning order a non-zero coefficient is encountered last,
decoding first coefficients of the block of coefficients from the data stream, the first coefficients comprise all non-zero coefficients of the block of coefficients and are traversed by the scanning order starting from or up to the coefficient position, and
inferring second coefficients of the block of coefficients to be zero, the second coefficients, different from the first coefficients,
decoding the block of coefficients when the selected transform is the identity transformation, comprises decoding all coefficients of the block of coefficients from the data stream;
deriving from the block of coefficients a residual sample array for the transform block so that the block of coefficients is related to the residual sample array according to the selected transformation; and
correcting a prediction for the transform block using the residual sample array to reconstruct the transform block.

### Claim 7

A method for encoding a picture comprising:
selecting, for a transform block, a transformation out of a predetermined list of transformations comprising an identity transformation and at least one non-identity transformation;
deriving a prediction for the transform block; and
encode, for the transform block, a block of coefficients into a data stream based on the selected transformation,
wherein encoding the block of coefficients when the selected transformation is a non-identity transformation, comprises:
encoding, into the data stream, position information for acquiring a coefficient position, the position information indicating where along a scanning order traversing all coefficients of the block of coefficients, a non-zero coefficient is encountered first or where along the scanning order a non-zero coefficient is encountered last,
encoding first coefficients of the block of coefficients into the data stream, the first coefficients comprise all non-zero coefficients of the block of coefficients and are traversed by the scanning order starting from or up to the coefficient position, and
inferring second coefficients of the block of coefficients to be zero, the second coefficients different from the first coefficients,
wherein encoding the block of coefficients when the selected transformation is the identity transformation, comprises encoding all coefficients of the block of coefficients into the data stream,
wherein the block of coefficients is related to a residual sample array according to the selected transformation, and
wherein the transform block is reconstructible by correcting the prediction thereof using the residual sample array.

### Claim 8

A non-transitory computer-readable medium comprising program code, wherein the program code that, when executed by a processor of a decoding device, causes the processor to:
select, for a transform block, a transformation out of a predetermined list of transformations comprising an identity transformation and at least one non-identity transformation;
decode, for the transform block, a block of coefficients from a data stream based on the selected transformation, wherein:
the program code that when executed cause the processor to decode the block of coefficients when the selected transformation is a non-identity transformation, comprise program code that when executed cause the processor to:
decode, from the data stream, position information for acquiring a coefficient position, the position information indicating where along a scanning order traversing all coefficients of the block of coefficients, a non-zero coefficient is encountered first or where along the scanning order a non-zero coefficient is encountered last,
decode first coefficients of the block of coefficients from the data stream, the first coefficients comprise all non-zero coefficients of the block of coefficients and are traversed by the scanning order starting from or up to the coefficient position, and
infer second coefficients of the block of coefficients to be zero, the second coefficients different from the first coefficients,
the program code that when executed cause the processor to decode the block of coefficients when the selected transformation is the identity transformation, comprise program code that when executed cause the processor to decode all coefficients of the block of coefficients from the data stream;
derive from the block of coefficients a residual sample array for the transform block so that the block of coefficients is related to the residual sample array according to the selected transformation; and
correct a prediction for the transform block using the residual sample array to reconstruct the transform block.

### Claim 9

A non-transitory computer-readable medium comprising program code, wherein the program code that, when executed by a processor of an encoding device, causes the processor to:
select, for a transform block, a transformation out of a predetermined list of transformations comprising an identity transformation and at least one non-identity transformation;
derive a prediction for the transform block; and
encode, for the transform block, a block of coefficients into a data stream based on the selected transformation,
the program code that when executed cause the processor to encode the block of coefficients when the selected transformation is a non-identity transformation, comprise program code that when executed cause the processor to:
encode, into the data stream, position information for acquiring a coefficient position, the position information indicating where along a scanning order traversing all coefficients of the block of coefficients, a non-zero coefficient is encountered first or where along the scanning order a non-zero coefficient is encountered last,
encode first coefficients of the block of coefficients into the data stream, the first coefficients comprise all non-zero coefficients of the block of coefficients and are traversed by the scanning order starting from or up to the coefficient position, and
infer second coefficients of the block of coefficients to be zero, the second coefficients different from the first coefficients;
the program code that when executed cause the processor to encode the block of coefficients when the selected transformation is the identity transformation comprise program code that when executed cause the processor to encode all coefficients of the block of coefficients into the data stream,
wherein the block of coefficients is related to a residual sample array according to the selected transformation, and
wherein the transform block is reconstructible by correcting the prediction thereof using the residual sample array.
