IP Library Granted Patent US 6,859,561
Granted Patent B2
US 6,859,561 · App. 10/856,780 · Granted Feb 22, 2005

Faster lossless rotation of JPEG images

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 6,859,561
App. No.
10/856,780
Granted
Feb 22, 2005
Kind
B2
Abstract

Image rotations of 90°, 180° and 270° and horizontal and vertical mirroring image transformations are performed losslessly and with greatly enhanced speed by processing orthogonal transform coefficients in a zig-zag order with direct storage of S (size) values, reassociated R (run of zero valued coefficients) from an adjacent coded orthogonal transform value and a non-zero valued transformation coefficient in reverse zig-zag order. Cache misses are avoided by processing values which are not widely separated in the coded data and other features of the technique and memory accesses are reduced to accelerate processing while extremely little computation is required. These effects are substantially augmented when intermediate codes having certain attributes including coding of zero valued coefficients and flagging certain code features are employed.

Claims (23)

1. A method of performing lossless rotations of image data including the steps of

rearranging or maintaining orthogonal transform coefficient zig-zag order, depending on rotation angle,

altering signs of said orthogonal transform coefficients by an exclusive OR operation inverting binary values of said orthogonal transform coefficients, and

storing an R value with an adjacent S value and orthogonal transform coefficient value in reverse zig-zag order if said zig-zag order is rearranged.

2. A method as recited in claim 1 , wherein said method is performed using apacked block data structure including

an R/S byte,

an orthogonal transform coefficient adjacent said R/S byte, and

an end of block indicator.

3. A method as recited in claim 1 , wherein said method is performed using apacked data block structure including

a first pair of bytes representing a block number, a Klast value and at least one flag indicating if all said coefficient values in said block are coded in eight bits or fewer or if any requires more than eight bits to be uniquely coded,

a second pair of bytes respectively representing an R/S value and a coefficient value.

4. A method as recited in claim 3 , wherein said packed block data structurefurther includes

at least one additional pair of bytes including a EOB byte and a padding byte.

5. A method as recited in claim 3 , wherein said first pair of bytes furtherincludes

another flag indicating if any runs of consecutive zero-valued coefficients greater than sixteen are present in said block.

6. A method as recited in claim 1 , including further steps of

testing for coefficient values requiring more than eight bits to be uniquely coded, and

using a flag in at least one block of data to indicate if all said coefficient values in said block are coded in eight bits or fewer or if any requires more than eight bits to be uniquely coded.

7. A method as recited in claim 6 wherein said coefficient values are DCT coefficients.

8. A method as recited in claim 7 wherein said DCT coefficients are AC DCT coefficients.

9. A method as recited in claim 8 , wherein said testing step is performed once per image.

10. A method as recited in claim 8 , wherein said testing step is performed once per block.

11. A method as recited in claim 8 including the further step of using another flag in a block of data to indicate if any ZRLs are present.