IP Library Granted Patent US 10,257,520
Granted Patent B2
US 10,257,520 · App. 13/533,337 · Granted Apr 9, 2019

Modified coding for transform skipping

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,257,520
App. No.
13/533,337
Granted
Apr 9, 2019
Kind
B2
Abstract

Methods and devices for modified coding of blocks of residuals in the case of transform skipping. To better align the data with assumptions upon which the entropy coding scheme is based, the block of residual data is permuted at the encoder prior to entropy coding. The block of reconstructed data is then inverse permuted at the decoder to recover the reconstructed block of residuals. The permutation may include 180 rotation of the block, which may be of particular benefit in the case of intra-coded residuals.

Claims (61)

1. A method of decoding a bitstream of encoded video in a video decoder to reconstruct residuals, the method comprising:

determining that transform skipping is enabled for a block of residuals, meaning that no transform was applied during encoding and no inverse transform will be applied during decoding;

reconstructing, based on a scan order, a block of quantized residuals by entropy decoding a first part of the bitstream; and

based on the determination that transform skipping is enabled, reconstructing the block of residuals by one of rotating the block of quantized residuals and dequantizing the resulting rotated block or dequantizing the block of quantized residuals and rotating the resulting dequantized block.

2. The method claimed in claim 1 , wherein rotating comprises rotating by 180 degrees.

3. The method claimed in claim 1 , wherein the scan order is one of a horizontal, vertical, zigzag, or diagonal scan order.

4. The method claimed in claim 1 , wherein the block of residuals is a 4×4 intra-coded block.

5. The method claimed in claim 1 , wherein determining includes determining that the block of residuals is intra-coded.

6. The method claimed in claim 1 , wherein determining includes decoding a transform skipping flag from a header in the bitstream.

7. The method claimed in claim 1 , wherein determining comprises parsing a flag indicative of a lossless mode.

8. The method claimed in claim 1 , further comprising reconstructing a second block of residuals by:

determining that transform skipping is not enabled for the second block of residuals;

reconstructing, based on the scan order, a second block of quantized transform coefficients by entropy decoding a second part of the bitstream;

dequantizing the second block of quantized transform coefficients to produce a dequantized second block;

based on the determination that transform skipping is not enabled, inverse transforming the dequantized second block to obtain the second block of residuals.

9. A method of encoding video in a video encoder to output a bitstream of encoded data, the encoding including encoding residuals, the method comprising:

determining that transform skipping is enabled for a block of residuals, meaning that no transform is to be applied during encoding and no inverse transform will be applied during decoding;

based on the determination that transform skipping is enabled, producing a block of quantized residuals by one of either rotating the block of residuals and quantizing the resulting rotated block or quantizing the block of residuals and rotating the resulting quantized block;

scanning, in a scan order, the block of quantized residuals to produce a first sequence of quantized residuals; and

entropy encoding the first sequence of quantized residuals to generate a first part of the bitstream of encoded data.

10. The method claimed in claim 9 , wherein rotating comprises rotating by 180 degrees.

11. The method claimed in claim 9 , wherein the scan order is one of a horizontal, vertical, zigzag, or diagonal scan order.

12. The method claimed in claim 9 , wherein the block of residuals is a 4×4 intra-coded block.

13. The method claimed in claim 9 , wherein determining includes determining that the block of residuals is intra-coded.

14. The method claimed in claim 9 , wherein determining includes determining that a lossless mode is used in encoding.

15. The method claimed in claim 9 , further comprising encoding a second block of residuals by:

determining that transform skipping is not enabled for the second block of residuals;

based on the determination that transform skipping is not enabled for the second block of residuals, transforming the second block of residuals to produce a transformed block;

quantizing the transformed block to produce a second block of quantized coefficients;

scanning, in a scan order, the second block of quantized coefficients to produce a second sequence of quantized residuals;

entropy coding the second sequence of quantized residuals to produce a second part of the bitstream.

16. A decoder for decoding a bitstream of encoded video to reconstruct a block of residuals, the decoder comprising:

a processor;

a memory; and

a decoding application stored in memory and containing instructions that, when executed, cause the processor to:

determine that transform skipping is enabled for the block of residuals, meaning that no transform was applied during encoding and no inverse transform will be applied during decoding;

reconstruct based on a scan order, a block of quantized residuals by entropy decoding a first part of the bitstream; and

based on the determination that transform skipping is enabled, reconstruct the block of residuals by one of rotating the block of quantized residuals and dequantizing the resulting rotated block or dequantizing the block of quantized residuals and rotating the resulting dequantized block.

17. The decoder claimed in claim 16 , wherein rotating comprises rotating by 180 degrees.

18. The decoder claimed in claim 16 , wherein the scan order is one of a horizontal, vertical, zigzag, or diagonal scan order.

19. The decoder claimed in claim 16 , wherein the block of residuals is a 4×4 intra-coded block.

20. The decoder claimed in claim 16 , wherein the instructions, when executed, cause the processor to determine that transform skipping is enabled based on a determination that the block of residuals is intra-coded.

21. The decoder claimed in claim 16 , wherein the instructions, when executed, cause the processor to determine that transform skipping is enabled based on decoding a transform skipping flag from a header in the bitstream.

22. The decoder claimed in claim 16 , wherein the instructions, when executed, cause the processor to determine that transform skipping is enabled based on parsing a flag indicative of a lossless mode.

23. The decoder claimed in claim 16 , further comprising instructions which, when executed, configure the processor to reconstruct a second block of residuals by causing the processor to:

determine that transform skipping is not enabled for the second block of residuals;

reconstruct, based on a scan order, a second block of quantized transform coefficients by entropy decoding a second part of the bitstream;

dequantize the second block of quantized transform coefficients to produce a dequantized second block;

based on the determination that transform skipping is not enabled, inverse transforming the dequantized second block to obtain the second block of residuals.

24. An encoder for encoding video to output a bitstream of encoded data, the video including a block of residuals, the decoder comprising:

a processor;

a memory; and

an encoding application stored in memory and containing instructions that, when executed, cause the processor to:

determine that transform skipping is enabled for the block of residuals, meaning that no transform is to be applied during encoding and no inverse transform will be applied during decoding;

based on the determination that transform skipping is enabled, produce a block of quantized coefficients by one of either rotating the block of residuals and quantizing the resulting rotated block or quantizing the block of residuals and rotating the resulting quantized block;

scan, in a scan order, the block of quantized residuals to produce a sequence of quantized residuals; and

entropy encode the sequence of quantized residuals to generate a part of the bitstream of encoded data.

25. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to decode a bitstream of encoded video in a video decoder to reconstruct residuals, by performing the method of:

determining that transform skipping is enabled for a block of residuals, meaning that no transform was applied during encoding and no inverse transform will be applied during decoding;

reconstructing, based on a scan order, a block of quantized residuals by entropy decoding a first part of the bitstream; and

based on the determination that transform skipping is enabled, reconstructing the block of residuals by one of rotating the block of quantized residuals and dequantizing the resulting rotated block or dequantizing the block of quantized residuals and rotating the resulting dequantized block.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2018
From: BLACKBERRY LIMITED
To: VELOS MEDIA, LLC
Reel/Frame 047525/0606 →
CHANGE OF NAME Recorded Mar 15, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 038087/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2012
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028564/0650 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2012
From: MARTIN-COCHER, GAELLE CHRISTINE
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028451/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2012
From: HE, DAKE; WANG, JING
To: SLIPSTREAM DATA INC.
Reel/Frame 028451/0822 →