IP Library Granted Patent US 7,668,385
Granted Patent B2
US 7,668,385 · App. 12/113,866 · Granted Feb 23, 2010

JPEG processing engine for low profile systems

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 7,668,385
App. No.
12/113,866
Granted
Feb 23, 2010
Kind
B2
Abstract

A method is provided for processing minimum coded units (MCUs) in a Joint Photographic Expert Group (JPEG) bit stream representing an image. A data structure is generated for storing MCU block numbers, corresponding MCU block coordinates, and corresponding MCU block editing lists. When an editing operation to the image is received, the editing operation is saved to a group of the MCU block editing lists of a group of the MCUs affected by the editing operation. Later the MCUs are retrieved from the JPEG bit stream one at a time and then processed according to the editing operations in the corresponding MCU blocking editing lists.

Claims (48)

1. A method executed by a computer system for processing minimum coded units (MCUs) in a Joint Photographic Expert Group (JPEG) bit stream representing an image to transform the image, comprising:

generating a data structure storing MCU block numbers of the MCUs, MCU block coordinates of the MCUs in the image, and MCU block editing lists of the MCUs;

receiving one or more editing operations to be applied to one or more of the MCUs;

subsequent to said receiving, saving the editing operations to one or more of the MCU block editing lists of the MCUs affected by the editing operations; and

subsequent to said saving, generating a new JPEG bit stream, comprising:

retrieving the MCUs from the JPEG bit stream; and

for each retrieved MCU, decoding the retrieved MCU, processing the retrieved MCU according to any editing operations in a corresponding MCU block editing list, encoding the retrieved MCU, and saving the retrieved MCU in the new JPEG bit stream.

2. A method executed by a computer system for processing minimum coded units (MCUs) in a Joint Photographic Expert Group (JPEG) bit stream representing an image to transform the image, comprising:

generating a data structure storing MCU block numbers of the MCUs, MCU block coordinates of the MCUs in the image, and MCU block editing lists of the MCUs;

receiving an editing operation to be applied to a group of the MCUs;

saving the editing operation to a group of the MCU block editing lists of the group of the MCUs affected by the editing operation;

receiving another editing operation to the image, wherein the editing operation is a cropping of the image;

saving the cropping operation to another group of the MCU block editing lists of another group of the MCUs being cropped out of the image; and

performing editing operations in the MCU block editing lists excluding said another group of the MCU block editing lists.

3. The method of claim 1 , wherein when one of the editing operations comprises a rotation, the method further comprises calculating new MCU block coordinates for the MCUs based on the rotation.

4. The method of claim 3 , further comprising:

determining a new order of the MCUs in the new JPEG bit stream after the rotation based on the new MCU block coordinates.

5. The method of claim 4 , wherein said generating a new JPEG bit stream further comprises:

from an index storing bit offsets from a start of the JPEG bit stream of the MCUs, reading the bit offsets of the MCUs;

from the bit offsets, determining the boundaries of the MCUs in the JPEG bit stream; and

wherein said retrieving the MCUs from the JPEG bit stream occurs in the new order.

6. The method of claim 1 , wherein said generating a new JPEG bit stream further comprises:

from an index storing bit offsets from a start of the JPEG bit stream of the MCUs, reading the bit offsets of the MCUs; and

from the bit offsets, determining the boundaries of the MCUs in the JPEG bit stream for said retrieving.

7. A computer readable storage medium encoded with instructions for processing minimum coded units (MCUs) in a Joint Photographic Expert Group (JPEG) bit stream representing a image to transform the image, the instructions comprising:

generating a data structure storing MCU block numbers of the MCUs, MCU block coordinates of the MCUs in the image, and MCU block editing lists of the MCUs;

receiving one or more editing operations to be applied to one or more of the MCUs;

subsequent to said receiving, saving the editing operations to one or more of the MCU block editing lists of the MCUs affected by the editing operation; and

subsequent to said saving, generating a new JPEG bit stream, comprising:

retrieving the MCUs from the JPEG bit stream; and

for each retrieved MCU, decoding the retrieved MCU, processing the retrieved MCU according to any editing operations in a corresponding MCU block editing list, encoding the retrieved MCU, and saving the retrieved MCU in the new JPEG bit stream.

8. A computer readable storage medium encoded with instructions for processing minimum coded units (MCUs) in a Joint Photographic Expert Group (JPEG) bit stream representing a image to transform the image, the instructions comprising:

generating a data structure storing MCU block numbers of the MCUs, MCU block coordinates of the MCUs in the image, and MCU block editing lists of the MCUs;

receiving an editing operation to be applied to a group of the MCUs;

saving the editing operation to a group of the MCU block editing lists of the group of the MCUs affected by the editing operation;

receiving another editing operation to the image, wherein the editing operation is a cropping of the image;

saving the cropping operation to another group of the MCU block editing lists of another group of the MCUs being cropped out of the image; and

performing editing operations in the MCU block editing lists excluding said another group of the MCU block editing lists.

9. The medium of claim 7 , wherein when one of the editing operations comprises a rotation, the instructions farther comprise calculating new MCU block coordinates for the MCUs based on the rotation.

10. The medium of claim 9 , wherein the instructions further comprise:

determining a new order of the MCUs in the new JPEG bit stream after the rotation based on the new MCU block coordinates.

11. The medium of claim 10 , wherein said generating a new JPEG bit stream further comprises:

from an index storing bit offsets from a start of the JPEG bit stream of the MCUs, reading the bit offsets of the MCUs;

from the bit offsets, determining the boundaries of the MCUs in the JPEG bit stream; and

wherein said retrieving the MCUs from the JPEG bit stream occurs in the new order.

12. The medium of claim 7 , wherein said generating a new JPEG bit stream further comprises:

from an index storing bit offsets from a start of the JPEG bit stream of the MCUs, reading the bit offsets of the MCUs; and

from the bit offsets, determining the boundaries of the MCUs in the JPEG bit stream for said retrieiving.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Nov 13, 2015
From: EAST WEST BANK
To: ARCSOFT, INC.; MULTIMEDIA IMAGE SOLUTION LIMITED; ARCSOFT (HANGZHOU) MULTIMEDIA TECHNOLOGY CO., LTD.; ARCSOFT (SHANGHAI) TECHNOLOGY CO., LTD.; ARCSOFT HANGZHOU CO., LTD.
Reel/Frame 037109/0027 →
SECURITY INTEREST Recorded Aug 14, 2014
From: ARCSOFT, INC.; ARCSOFT (SHANGHAI) TECHNOLOGY CO., LTD.; ARCSOFT (HANGZHOU) MULTIMEDIA TECHNOLOGY CO., LTD.; MULTIMEDIA IMAGE SOLUTION LIMITED; ARCSOFT HANGZHOU CO., LTD.
To: EAST WEST BANK
Reel/Frame 033535/0537 →
RELEASE OF SECURITY INTEREST Recorded Jul 19, 2011
From: EAST WEST BANK
To: ARCSOFT, INC.
Reel/Frame 026616/0643 →
SECURITY AGREEMENT Recorded Apr 13, 2010
From: ARCSOFT, INC.
To: EAST WEST BANK
Reel/Frame 024218/0828 →