IP Library Granted Patent US 8,369,638
Granted Patent B2
US 8,369,638 · App. 12/165,474 · Granted Feb 5, 2013

Reducing DC leakage in HD photo transform

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 8,369,638
App. No.
12/165,474
Granted
Feb 5, 2013
Kind
B2
Abstract

In certain embodiments, to eliminate DC leakage into surrounding AC values, scaling stage within a photo overlap transform operator is modified such that the off-diagonal elements of the associated scaling matrix have the values of 0. In certain embodiments, the on-diagonal scaling matrix are given the values (0.5, 2). In some embodiments, the scaling is performed using a combination of reversible modulo arithmetic and lifting steps. In yet other embodiments, amount of DC leakage is estimated at the encoder, and preprocessing occurs to mitigate amount of leakage, with the bitstream signaling that preprocessing has occurred. A decoder may then read the signal and use the information to mitigate DC leakage.

Claims (74)

1. A method using a lapped, reversible transform to transform two-dimensional digital media tiled into blocks from a first domain to a second domain comprising:

in a computer:

applying a reversible Hadamard network to at least some of the blocks in the first domain;

applying a reversible scaling operator to at least some of the blocks; wherein the reversible scaling operator corresponds to a scaling matrix with off-diagonal entries of 0, 0 and with diagonal entries selected to reduce DC leakage; and

applying a reversible inverse Hadamard network to at least some of the blocks to generate the blocks of data in the second domain.

2. The method of claim 1 , wherein the applying the reversible scaling operator to the blocks comprises performing a four-lifting procedure comprising:

performing a first lifting procedure represented by the shear operator ↓ −1/2;

performing a second lifting procedure represented by the shear operator ↑1;

performing a third lifting procedure represented by the shear operator ↓1, and

performing a fourth lifting procedure represented by the shear operator ↑ −1/2.

3. The method of claim 1 wherein the first domain is the spatial domain and wherein the second domain is the temporal domain.

4. The method of claim 1 further comprising:

prior to applying the reversible scaling operator to at least some of the blocks; applying a reversible block rotation to the blocks;

subsequent to applying the reversible scaling operator to at least some of the blocks, applying another reversible block rotation to at least some of the blocks.

5. The method of claim 1 , wherein the applying the reversible scaling operator to at least some of the blocks comprises performing a four-lifting procedure comprising:

performing a first lifting procedure represented by the shear operator ↑½;

performing a second lifting procedure represented by the shear operator ↓−1;

performing a third lifting procedure represented by the shear operator ↑−1; and

performing a fourth lifting procedure represented by the shear operator ↓½.

6. The method of claim 1 wherein the first domain is the temporal domain and wherein the second domain is the spatial domain.

7. The method of claim 1 , wherein the applying the reversible scaling operator to at least some of the blocks wherein the on-diagonal elements of the 2×2 scaling matrix equal 0.5, 2.

8. The method of claim 1 , wherein the applying the reversible scaling operator to at least some of the blocks wherein the on-diagonal elements of the 2×2 scaling matrix equal ⅔, 3/2.

9. The method of claim 1 wherein the diagonal entries of the scaling matrix are inverses of each other and wherein applying the reversible scaling operator comprises: performing reversible modulo arithmetic steps to scale the block values; and performing lifting operations on the scaled block values using scaling factors whose numerator factors are powers of two.

10. A digital media encoder and/or decoder comprising:

a data storage buffer for storing digital media data to be encoded and/or decoded;

a processor programmed to:

tile the digital media data into blocks;

apply a reversible Hadamard network to at least some of the blocks in a first domain;

apply a reversible scaling operator to at least some of the blocks; wherein the reversible scaling operator corresponds to a scaling matrix with off-diagonal entries of 0, 0 and with diagonal entries selected to reduce DC leakage; and

apply a reversible inverse Hadamard network to at least some of the blocks to generate the blocks of data in a second domain.

11. The digital media encoder and/or decoder of claim 10 , wherein the processor in applying the reversible scaling operator performs a four-lifting step procedure comprising:

performing a first lifting procedure represented by the shear operator ↓−½;

performing a second lifting procedure represented by the shear operator ↑1;

performing a third lifting procedure represented by the shear operator ↓1,

performing a fourth lifting procedure represented by the shear operator ↑−½.

12. The digital media encoder and/or decoder of claim 10 , wherein the processor in applying the reversible scaling operator performs a four-lifting step procedure comprising:

performing a first lifting procedure represented by the shear operator ↑½;

performing a second lifting procedure represented by the shear operator ↓−1;

performing a third lifting procedure represented by the shear operator ↑−1; and

performing a fourth lifting procedure represented by the shear operator ↓½.

13. The digital media encoder and/or decoder of claim 10 , wherein the processor in applying the reversible scaling operator performs a seven-lifting step procedure comprising:

performing a first lifting procedure represented by the shear operator ↑1;

performing a second lifting procedure represented by the shear operator ↓−½;

performing a third lifting procedure represented by the shear operator ↑x;

performing a fourth lifting procedure represented by the shear operator ↓y;

performing a fifth lifting procedure represented by the shear operator ↑x;

performing a sixth lifting procedure represented by the shear operator ↓½; and

performing a seventh lifting procedure represented by the shear operator ↑−1.

14. The digital media encoder and/or decoder of claim 13 , wherein x=⅜and y=199/1024.

15. The digital media encoder and/or decoder of claim 13 , wherein x=⅜and y= 25/128.

16. The digital media encoder and/or decoder of claim 10 , wherein the processor programmed to apply a reversible scaling operator to at least some of the blocks;

further comprises the processor, programmed to performing reversible modulo arithmetic steps to scale values of the blocks; and the processor programmed to perform lifting operations on the scaled block values using scaling factors whose numerators are powers of two.

17. One or more computer-readable storage media storing computer-executable instructions which when executed by a computer cause the computer to perform a method of using a lapped, reversible transform to transform two- dimensional digital media tiled into blocks from a first domain to a second domain, the method comprising:

applying a reversible Hadamard network to at least some of the blocks in the first domain;

applying a reversible scaling operator to at least some of the blocks; wherein the reversible scaling operator corresponds to a scaling matrix with off-diagonal entries of 0, 0 and with diagonal entries selected to reduce DC leakage; and

applying a reversible inverse Hadamard network to at least some of the blocks to generate the blocks of data in the second domain.

18. The one or more computer-readable storage media of claim 17 , wherein the applying the reversible scaling operator to the blocks comprises performing a four-lifting procedure comprising:

performing a first lifting procedure represented by the shear operator ↓−½;

performing a second lifting procedure represented by the shear operator ↑1;

performing a third lifting procedure represented by the shear operator ↓1, and

performing a fourth lifting procedure represented by the shear operator ↑−½.

19. The one or more computer-readable storage media of claim 17 , wherein the first domain is the spatial domain and wherein the second domain is the temporal domain.

20. The one or more computer-readable storage media of claim 17 , wherein the method further comprises:

prior to applying the reversible scaling operator to at least some of the blocks; applying a reversible block rotation to the blocks;

subsequent to applying the reversible scaling operator to at least some of the blocks, applying another reversible block rotation to at least some of the blocks.

21. The one or more computer-readable storage media of claim 17 , wherein the applying the reversible scaling operator to at least some of the blocks comprises performing a four-lifting procedure comprising:

performing a first lifting procedure represented by the shear operator ↑½;

performing a second lifting procedure represented by the shear operator ↓−1;

performing a third lifting procedure represented by the shear operator ↑−1; and

performing a fourth lifting procedure represented by the shear operator ↓½.

22. The one or more computer-readable storage media of claim 17 , wherein the first domain is the temporal domain and wherein the second domain is the spatial domain.

23. The one or more computer-readable storage media of claim 17 , wherein the applying the reversible scaling operator to at least some of the blocks wherein the on-diagonal elements of the 2×2 scaling matrix equal 0.5, 2.

24. The one or more computer-readable storage media of claim 17 , wherein the applying the reversible scaling operator to at least some of the blocks wherein the on-diagonal elements of the 2×2 scaling matrix equal ⅔, 3/2.

25. The one or more computer-readable storage media of claim 17 , wherein the diagonal entries of the scaling matrix are inverses of each other and wherein applying the reversible scaling operator comprises: performing reversible modulo arithmetic steps to scale the block values; and performing lifting operations on the scaled block values using scaling factors whose numerator factors are powers of two.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2008
From: REGUNATHAN, SHANKAR; SULLIVAN, GARY J.; SUN, SHIJUN; SRINIVASAN, SRIDHAR; TU, CHENGJIE
To: MICROSOFT CORPORATION
Reel/Frame 021736/0664 →