# US 12,015,775 B2 · Transform and quantization architecture 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 12,015,775 B2
- Document ID: US12015775B2
- Status: Granted
- Kind: B2
- Application number: 18/428,085
- Filed: 2024-01-31
- Published: 2024-05-23
- Granted: 2024-06-18
- Earliest claimed: 2010-09-30
- Assignees: Texas Instruments Incorporated
- Applicants: Texas Instruments Incorporated
- Inventors: Mangesh Sadafale; Madhukar Budagavi
- Web page: https://patentgrep.com/patent/US12015775B2

## CPC

- H04N 19/122: Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
- G06F 17/147: {Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform (G06F17/145 takes precedence)}
- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/126: Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
- H04N 19/15: by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
- H04N 19/156: Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
- H04N 19/159: Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
- H04N 19/42: characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence)
- H04N 19/51: Motion estimation or motion compensation
- H04N 19/61: in combination with predictive coding
- H04N 19/174: the region being a slice, e.g. a line of blocks or a group of blocks
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of encoding a video stream in a video encoder is provided that includes computing an offset into a transform matrix based on a transform block size, wherein a size of the transform matrix is larger than the transform block size, and wherein the transform matrix is one selected from a group consisting of a DCT transform matrix and an IDCT transform matrix, and transforming a residual block to generate a DCT coefficient block, wherein the offset is used to select elements of rows and columns of a DCT submatrix of the transform block size from the transform matrix.

## Claims

### Claim 1

A system comprising:
a receiver configured to receive a bit stream; and
a processor coupled to the receiver and configured to:
determine an array of transform coefficient values from the bit stream;
compute an offset into a transform matrix based on a dimension of a transform block, wherein the transform matrix is larger than the transform block;
select a value from the transform matrix using the offset; and
transform the array of transform coefficient values based on the selected value to reconstruct an array of residual samples.

### Claim 2 (depends on 1)

The system of claim 1, further comprising a light emitting diode display,
wherein the processor is further configured to generate a reconstructed video sequence based on the array of residual samples, and
wherein the light emitting diode display is configured to present the reconstructed video sequence.

### Claim 3 (depends on 1)

The system of claim 1, further comprising a liquid crystal display,
wherein the processor is further configured to generate a reconstructed video sequence based on the array of residual samples, and
wherein the liquid crystal display is configured to present the reconstructed video sequence.

### Claim 4 (depends on 1)

The system of claim 1, wherein the processor is configured to:
derive an inverse quantization step size for the array of transform coefficient values based on an inverse quantization vector and a quantization parameter; and
dequantize each coefficient value in the array of transform coefficient values using the inverse quantization step size to generate an array of dequantized transform coefficient values,
wherein to transform the array of transform coefficient values, the processor is configured to transform the array of dequantized transform coefficient values based on the selected value to reconstruct the array of residual samples.

### Claim 5 (depends on 1)

The system of claim 1, wherein the offset is a first offset, and wherein the processor is configured to:
compute a second offset into the transform matrix when the transform block is not square; and
transform the array of transform coefficient values using the first offset and the second offset to select values from the transform matrix.

### Claim 6 (depends on 1)

The system of claim 1, wherein to transform the array of transform coefficient values, the processor is configured to decompose the array of transform coefficient values and values selected from the transform matrix using even-odd decomposition.

### Claim 7 (depends on 1)

The system of claim 1, wherein to transform the array of transform coefficient values, the processor is configured to perform matrix multiplications between values selected from the transform matrix and the array of transform coefficient values.

### Claim 8

A system comprising:
a processor configured to:
determine an array of transform coefficient values;
compute an offset into a transform matrix based on a dimension of a transform block, wherein the transform matrix is larger than the transform block;
select a value from the transform matrix using the offset; and
transform the array of transform coefficient values based on the selected value to reconstruct an array of residual samples; and
generate a reconstructed video sequence based on the array of residual samples; and
a display coupled to the processor and configured to present the reconstructed video sequence.

### Claim 9 (depends on 8)

The system of claim 8, wherein the display includes a light emitting diode display configured to present the reconstructed video sequence.

### Claim 10 (depends on 8)

The system of claim 8, wherein the display includes a liquid crystal display configured to present the reconstructed video sequence.

### Claim 11 (depends on 8)

The system of claim 8, wherein the processor is configured to:
derive an inverse quantization step size for the array of transform coefficient values based on an inverse quantization vector and a quantization parameter; and
dequantize each coefficient value in the array of transform coefficient values using the inverse quantization step size to generate an array of dequantized transform coefficient values,
wherein to transform the array of transform coefficient values, the processor is configured to transform the array of dequantized transform coefficient values based on the selected value to reconstruct the array of residual samples.

### Claim 12 (depends on 8)

The system of claim 8, wherein the offset is a first offset, and wherein the processor is configured to:
compute a second offset into the transform matrix when the transform block is not square; and
transform the array of transform coefficient values using the first offset and the second offset to select values from the transform matrix.

### Claim 13 (depends on 8)

The system of claim 8, wherein to transform the array of transform coefficient values, the processor is configured to decompose the array of transform coefficient values and values selected from the transform matrix using even-odd decomposition.

### Claim 14 (depends on 8)

The system of claim 8, wherein to transform the array of transform coefficient values, the processor is configured to perform matrix multiplications between values selected from the transform matrix and the array of transform coefficient values.

### Claim 15

A method comprising:
entropy decoding a bit stream to determine a first array of transform coefficient values from the bit stream;
inverse quantizing the first array of transform coefficient values to generate a second array of transform coefficient values;
computing an offset into a transform matrix;
selecting a value from the transform matrix using the offset; and
transforming the second array of transform coefficient values based on the selected value to generate an array of residual samples.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
generating a reconstructed video sequence based on the array of residual samples; and
presenting the reconstructed video sequence via a display.

### Claim 17 (depends on 15)

The method of claim 15,
wherein the offset is a first offset, and
wherein the method further comprises:
computing a second offset into the transform matrix; and
transforming the second array of transform coefficient values coefficient value block by using the first offset and the second offset to select values from the transform matrix.

### Claim 18 (depends on 15)

The method of claim 15, wherein transforming the second array of transform coefficient values further comprises performing matrix multiplications between values selected from the transform matrix and the second array of transform coefficient values using a matrix multiplication engine.

### Claim 19 (depends on 1)

The system of claim 1, wherein to transform the array of transform coefficient values, the processor is configured to:
select values from the transform matrix using the offset;
determine a set of products by multiplying each value selected from the transform matrix with a respective value from the array of transform coefficient values; and
reconstruct the array of residual samples by at least determining a sum of the set of products.

### Claim 20 (depends on 8)

The system of claim 8, wherein to transform the array of transform coefficient values, the processor is configured to:
select values from the transform matrix using the offset;
determine a set of products by multiplying each value selected from the transform matrix with a respective value from the array of transform coefficient values; and
reconstruct the array of residual samples by at least determining a sum of the set of products.
