# US 2019/0246142 A1 · Method, apparatus and medium for decoding or encoding

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

- Number: US 2019/0246142 A1
- Document ID: US20190246142A1
- Status: Published application
- Kind: A1
- Application number: 16/235,395
- Filed: 2018-12-28
- Published: 2019-08-08
- Earliest claimed: 2018-02-05
- Assignees: Tencent America LLC
- Applicants: Tencent America LLC
- Inventors: Xin ZHAO; Xiang LI; Shan LIU
- Web page: https://patentgrep.com/patent/US20190246142A1

## 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/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- H04N 19/156: Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/61: in combination with predictive coding
- H04N 19/625: using discrete cosine transform [DCT]
- H04N 19/96: Tree coding, e.g. quad-tree coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of encoding or decoding utilizing a low complexity transform may include receiving information regarding a target block for encoding or decoding, and if the at least one of a width or a height of a block size of the target block is greater than or equal to the predetermined threshold, performing encoding or decoding of the target block, but instead of applying a large transform having a size corresponding to the at least one of the width or the height of the block size of the target block, applying a first transform to a first portion of the target block, and applying the first transform or a second transform to a second portion of the target block. Also, at least one of the first transform and the second transform is a low-complexity transform that has a size that is less than the predetermined threshold.

## Claims

### Claim 1

A method comprising:
receiving information regarding a sound, video or image data block that is a target data block for encoding or decoding;
determining whether at least one of a width or a height of a block size of the target data block is greater than or equal to a predetermined threshold; and
if the at least one of the width or the height of the block size of the target data block is greater than or equal to the predetermined threshold, performing encoding or decoding of the target data block, but instead of applying a large transform having a size corresponding to the at least one of the width or the height of the block size of the target data block, applying a first transform to a first portion of the target data block, and applying the first transform or a second transform to a second portion of the target data block, wherein at least one of the first transform and the second transform is a low-complexity transform that has a size that is less than the predetermined threshold.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the processing steps of claim 1 are performed by one or more processors, and the low-complexity transform is one of: a Hadamard transform of which the transform core only consists of 1 and −1, and a predetermined transform of which the transform core only consists of power of 2.

### Claim 3 (depends on 1)

The method according to claim 1, further comprising zeroing out high frequency transform coefficients so that only lower-frequency transform coefficients are maintained.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the scaling of the low-complexity transform re-uses a same quantization scheme of another transform size that is different than the size of the low-complexity transform such that an N-point transform core is scaled by 64*sqrt(N) using an orthogonal transform core K which satisfies K*K′, which is an identity matrix such that when applying the low-complexity transform, the N-point transform core is scaled by 64*sqrt(N).

### Claim 5 (depends on 1)

The method according to claim 1, wherein
the low complexity transform is one of: a Hadamard-Walsh transform of which the transform core only consists of 1 and −1, and a transform of which the transform core only consists of a power of 2, and
the method further comprises:
generating a quantization scheme by scaling the low complexity transform,
if the low complexity transform is not the Hadamard-Walsh transform: causing or transmitting information that causes the target block to be encoded or decoded using the generated quantization scheme, and
if the low complexity transform is the Hadamard-Walsh transform: (i) adjusting the quantization scheme by performing shifting to compensate for a difference in scaling in large transforms; and (ii) causing or transmitting information that causes the target block to be encoded or decoded using the adjusted quantization scheme, wherein the decoding comprises: reverse transforming the target block to derive a dequantized transform block and up sampling the residual block(s) to an original block size.

### Claim 6 (depends on 1)

The method according to claim 1, wherein
the low complexity transform is a Hadamard-Walsh transform, and
because the scaling of large transforms are scaled differently, internal rounding operations, which includes at least a right shift operation, after horizontal and vertical transform are adjusted accordingly to match the different scaling.

### Claim 7 (depends on 1)

The method according to claim 1, further comprising:
first applying a X×Y transform, where X and Y can be 2, 4, 8, 16, 32 or 64, on every non-overlapped N×N blocks, and
subsequently applying a second transform on top of the transform coefficients generated by the X×Y transform, wherein either the first X×Y and/or the second transform are the low complexity transform.

### Claim 8 (depends on 1)

The method according to claim 1, wherein, for a target block with the at least one of the width and the height of the block size that that are equal to 128, for the 128-point transform, only the first 64, 32, 16, 8, 4, 2 or 1 transform coefficients are used and remaining coefficients are zeroed out.

### Claim 9 (depends on 1)

The method according to claim 1, wherein
instead of applying a large 128-point/256-point transform on a 128×M, M×128, 256×M or M×256 block, the data block is subsampled by a factor s, and the even samples compose one block and the odd samples compose another block,
the subsampling is applied on either/both horizontal/vertical directions,
the encoding comprises: applying the first transform on each sub-sampled data block, and generating the transform coefficients for each sub-sampled data block, and, subsequently, the transform coefficients are weighted and summed to generate another transform coefficient data block which is further quantized and entropy coded, and
the decoding comprises: the dequantized transform block is reverse transformed and residual blocks are up sampled to the original block size.

### Claim 10 (depends on 1)

The method according to claim 1, wherein when a large transform needs to be applied in the horizontal and/or vertical direction, instead of applying a large M×N transform, multiples of a smaller block size transform are applied along the horizontal and/or vertical directions, and zero-out is applied for each smaller block size transform, and the results are weighted and summed up to generate the transform coefficients for the whole block and when an inverse large transform needs to be applied in the horizontal and/or vertical direction, instead of applying a large M×N inverse transform, a smaller block size transform is applied and then up sampled to M×N to generate the residuals for the whole block, where M is the block width and N is the block height.

### Claim 11

An apparatus comprising:
at least one memory configured to store computer program code; and
at least one processor configured to access the at least one memory and operate according to the computer program code, the computer program code comprising:
first applying code configured to cause the at least one processor to receive information regarding a sound, video or image data block that is a target data block for encoding or decoding;
second applying code configured to cause the at least one processor to determine whether at least one of a width or a height of a block size of the target data block is greater than or equal to a predetermined threshold; and
third applying code configured to cause the at least one processor to, if the at least one of the width or the height of the block size of the target block is greater than or equal to the predetermined threshold, perform encoding or decoding of the target data block, but instead of applying a large transform having a size corresponding to the at least one of the width or the height of the block size of the target data block, applying a first transform to a first portion of the target data block, and applying the first transform or a second transform to a second portion of the target data block, wherein at least one of the first transform and the second transform is a low-complexity transform that has a size that is less than the predetermined threshold.

### Claim 12 (depends on 11)

The apparatus according to claim 11, wherein the low-complexity transform is one of: a Hadamard transform of which the transform core only consists of 1 and −1, and a predetermined transform of which the transform core only consists of power of 2.

### Claim 13 (depends on 11)

The apparatus according to claim 11, further comprising fourth applying code that is configured to cause the at least one processor to zero out high frequency transform coefficients so that only lower-frequency transform coefficients are maintained.

### Claim 14 (depends on 11)

The apparatus according to claim 11, further comprising fifth applying code that is configured to cause the at least one processor to scale the low-complexity transform, which includes re-using a same quantization scheme of another transform size that is different than the size of the low-complexity transform such that an N-point transform core is scaled by 64*sqrt(N) using an orthogonal transform core K which satisfies K*K′, which is an identify matrix, such that when applying the low complexity transform, the N-point transform core is scaled by 64*sqrt(N).

### Claim 15 (depends on 12)

The apparatus according to claim 12, further comprising fifth applying code that is configured to cause the at least one processor to:
generate a quantization scheme by scaling the low complexity transform,
if the low complexity transform is not the Hadamard-Walsh transform: cause or transmit information that causes the target data block to be encoded or decoded using the generated quantization scheme, and
if the low complexity transform is the Hadamard-Walsh transform: (i) adjust the quantization scheme by performing shifting to compensate for a difference in scaling in large transforms; and (ii) cause or transmit information that causes the target data block to be encoded or decoded using the adjusted quantization scheme, wherein the decoding comprises: reverse transforming the target data block to derive a dequantized transform block and up sampling the residual block(s) to an original block size.

### Claim 16 (depends on 11)

The apparatus according to claim 11, wherein
the low complexity transform is a Hadamard-Walsh transform, and
because the scaling of large transforms are scaled differently, internal rounding operations, which includes at least a right shift operation, after horizontal and vertical transform are adjusted accordingly to match the different scaling.

### Claim 17 (depends on 11)

The apparatus according to claim 11, further comprising fifth applying code that is configured to cause the at least one processor to:
first apply a X×Y transform, where X and Y can be 2, 4, 8, 16, 32 or 64, on every non-overlapped N×N blocks, and
subsequently apply a second transform on top of the transform coefficients generated by the X×Y transform, wherein either the first X×Y and/or the second transform are the low complexity transform.

### Claim 18 (depends on 11)

The apparatus according to claim 11, wherein, for a target block with the at least one of the width and the height of the block size that that are equal to 128, for the 128-point transform, only the first 64, 32, 16, 8, 4, 2 or 1 transform coefficients are used and remaining coefficients are zeroed out.

### Claim 19 (depends on 11)

The apparatus according to claim 11, wherein when a large transform needs to be applied in the horizontal and/or vertical direction, instead of applying a large M×N transform, multiples of a smaller block size transform are applied along the horizontal and/or vertical directions, and zero-out is applied for each smaller block size transform, and the results are weighted and summed up to generate the transform coefficients for the whole block and when an inverse large transform needs to be applied in the horizontal and/or vertical direction, instead of applying a large M×N inverse transform, a smaller block size transform is applied and then up sampled to M×N to generate the residuals for the whole block, where M is the block width and N is the block height.

### Claim 20

A non-transitory computer-readable storage medium storing instructions that cause one or more processors to:
receive information regarding a sound, video or image data block that is a target data block for encoding or decoding;
determine whether at least one of a width or a height of a block size of the target data block is greater than or equal to a predetermined threshold; and
if the at least one of the width or the height of the block size of the target data block is greater than or equal to the predetermined threshold, perform encoding or decoding of the target data block, but instead of applying a large transform having a size corresponding to the at least one of the width or the height of the block size of the target data block, applying a first transform to a first portion of the target data block, and applying the first transform or a second transform to a second portion of the target data block, wherein at least one of the first transform and the second transform is a low-complexity transform that has a size that is less than the predetermined threshold.
