IP Library › Granted Patent US 10,687,075
Granted Patent B2
US 10,687,075 · App. 16/711,238 · Granted Jun 16, 2020

Sub-block transform coding of prediction residuals

Inventors: Thomas W. Holcomb (Bothell, WA); Chih-Lung Lin (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04N19/523G06T3/40G06T7/0012H04N19/105H04N19/115H04N19/117H04N19/119H04N19/122H04N19/124H04N19/129H04N19/132H04N19/136H04N19/137H04N19/146H04N19/147H04N19/15H04N19/154H04N19/172H04N19/176H04N19/18H04N19/46H04N19/50H04N19/513H04N19/52H04N19/527H04N19/533H04N19/547H04N19/57H04N19/59H04N19/593H04N19/61H04N19/625H04N19/63H04N19/70H04N19/80H04N19/82H04N19/86H04N19/895H04N19/182
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,687,075
App. No.
16/711,238
Granted
Jun 16, 2020
Kind
B2
Abstract

Techniques and tools for sub-block transform coding are described. For example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding. The video encoder may determine the transform sizes as well as switching levels (e.g., frame, macroblock, or block) in a closed loop evaluation of the different transform sizes and switching levels. The encoder and decoder may use different scan patterns for different transform sizes when scanning values from two-dimensional blocks into one-dimensional arrays, or vice versa. The encoder and decoder may use sub-block pattern codes to indicate the presence or absence of information for the sub-blocks of particular blocks.

Claims (51)

1. A computer system comprising:

a buffer, implemented using memory, configured to receive encoded data in a bitstream, wherein the encoded data includes sub-block pattern information, the sub-block pattern information indicating an information pattern for presence or absence in the bitstream of prediction residual data for plural sub-blocks of a block of a video frame; and

a video decoder, implemented using one or more processors and memory, configured to perform operations to decode the encoded data to reconstruct the video frame using a variable-block-size inverse frequency transform, wherein the operations include, for a given sub-block of the respective sub-blocks of the block:

using the sub-block pattern information to determine that the given sub-block has prediction residual data in the bitstream;

getting, from the encoded data in the bitstream, encoded transform coefficients for the given sub-block;

entropy decoding the encoded transform coefficients for the given sub-block;

inverse quantizing the transform coefficients for the given sub-block;

with the variable-block-size inverse frequency transform, converting the transform coefficients for the given sub-block to prediction residual values for the given sub-block; and

combining the prediction residual values for the given sub-block with predicted values for the given sub-block.

2. The computer system of claim 1 , wherein the block is an 8×8 block and the plural sub-blocks are 4×4 sub-blocks.

3. The computer system of claim 1 , wherein the variable-block-size inverse frequency transform uses a transform size selected from among plural available transform sizes.

4. The computer system of claim 3 , wherein the plural available transform sizes include 8×8 and 4×4.

5. The computer system of claim 1 , wherein, for each of the respective sub-blocks of the block, if the sub-block has at least one non-zero transform coefficient, the sub-block pattern information indicates presence in the bitstream of prediction residual data for that sub-block.

6. The computer system of claim 1 , wherein the operations further include:

selecting a scan pattern from among multiple scan patterns; and

using the selected scan pattern to reorder the transform coefficients for the given sub-block from a one-dimensional array to a two-dimensional array.

7. The computer system of claim 1 , wherein the operations further include:

performing motion-compensated prediction to determine predicted values for the block, the predicted values for the block including the predicted values for the given sub-block.

8. One or more computer-readable media having stored thereon encoded data in a bitstream, the encoded data including sub-block pattern information, the sub-block pattern information indicating an information pattern for presence or absence in the bitstream of prediction residual data for plural sub-blocks of a block of a video frame, the one or more computer-readable media being selected from the group consisting of non-volatile memory, optical media, and magnetic media, wherein the encoded data is formatted to facilitate reconstruction by operations comprising:

receiving the encoded data in the bitstream; and

decoding the encoded data to reconstruct the video frame using a variable-block-size inverse frequency transform, wherein the decoding includes, for a given sub-block of the respective sub-blocks of the block:

using the sub-block pattern information to determine that the given sub-block has prediction residual data in the bitstream;

getting, from the encoded data in the bitstream, encoded transform coefficients for the given sub-block;

entropy decoding the encoded transform coefficients for the given sub-block;

inverse quantizing the transform coefficients for the given sub-block;

with the variable-block-size inverse frequency transform, converting the transform coefficients for the given sub-block to prediction residual values for the given sub-block; and

combining the prediction residual values for the given sub-block with predicted values for the given sub-block.

9. The one or more computer-readable media of claim 8 , wherein the block is an 8×8 block and the plural sub-blocks are 4×4 sub-blocks.

10. The one or more computer-readable media of claim 8 , wherein the variable-block-size inverse frequency transform uses a transform size selected from among plural available transform sizes.

11. The one or more computer-readable media of claim 10 , wherein the plural available transform sizes include 8×8 and 4×4.

12. The one or more computer-readable media of claim 8 , wherein, for each of the respective sub-blocks of the block, if the sub-block has at least one non-zero transform coefficient, the sub-block pattern information indicates presence in the bitstream of prediction residual data for that sub-block.

13. The one or more computer-readable media of claim 8 , wherein the decoding further includes:

selecting a scan pattern from among multiple scan patterns; and

using the selected scan pattern to reorder the transform coefficients for the given sub-block from a one-dimensional array to a two-dimensional array.

14. The one or more computer-readable media of claim 8 , wherein the decoding further includes:

performing motion-compensated prediction to determine predicted values for the block, the predicted values for the block including the predicted values for the given sub-block.

15. In a computer system that implements a video encoder, a method comprising:

encoding a video frame, to produce encoded data in a bitstream, using a variable-block-size frequency transform with support for switching of transform size at varying levels within the video frame, wherein the encoding includes, for a given sub-block of plural sub-blocks of a block of the video frame:

using predicted values for the given sub-block to determine prediction residual values for the given sub-block;

with the variable-block-size frequency transform, converting the prediction residual values for the given sub-block to transform coefficients for the given sub-block; and

quantizing the transform coefficients for the given sub-block;

entropy coding the quantized transform coefficients for the given sub-block to produce encoded transform coefficients for the given sub-block; and

setting sub-block pattern information to indicate that the given sub-block has prediction residual data in the bitstream; and

outputting the encoded data in the bitstream, wherein the encoded data includes the encoded transform coefficients for the given sub-block and the sub-block pattern information, the sub-block pattern information indicating an information pattern for presence or absence in the bitstream of prediction residual data for the plural sub-blocks of the block of the video frame.

16. The method of claim 15 , wherein the block is an 8×8 block and the plural sub-blocks are 4×4 sub-blocks.

17. The method of claim 15 , wherein the variable-block-size frequency transform uses a transform size selected from among plural available transform sizes.

18. The method of claim 17 , wherein the plural available transform sizes include 8×8 and 4×4.

19. The method of claim 15 , wherein, for each of the respective sub-blocks of the block, if the sub-block has at least one non-zero transform coefficient, the sub-block pattern information indicates presence in the bitstream of prediction residual data for that sub-block.

20. The method of claim 15 , wherein the encoding further includes:

selecting a scan pattern from among multiple scan patterns; and

using the selected scan pattern to reorder the transform coefficients for the given sub-block from a two-dimensional array to a one-dimensional array.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: HOLCOMB, THOMAS W.; LIN, CHIH-LUNG
To: MICROSOFT CORPORATION
Reel/Frame 051262/0409 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 051262/0464 →
Continuity (7)
Continuation 16197156 · Nov 20, 2018
Continuation 15246237 · Aug 24, 2016
Continuation 14337578 · Jul 22, 2014
Continuation 11890059 · Aug 3, 2007
Division 10322352 · Dec 17, 2002
Provisional Application 60341674 · Dec 17, 2001
Related Publication 20200120355A1 · Apr 16, 2020