IP Library Granted Patent US 8,478,074
Granted Patent B2
US 8,478,074 · App. 11/482,558 · Granted Jul 2, 2013

Providing multiple and native representations of an image

Inventors: Rajat Goel (Seattle, WA); Margaret L. Goodwin (Kirkland, WA); Radu C. Margarint (Bothell, WA); Robert A. Wlodarczyk (Redmond, WA); Thomas W. Olsen (Issaquah, WA); Wei-Chung Jones Wang (Mercer Island, WA)
Assignee: Microsoft Corporation
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,478,074
App. No.
11/482,558
Granted
Jul 2, 2013
Kind
B2
Abstract

Various embodiments are disclosed relating to providing multiple and native representations of an image. According to an example embodiment, multiple realizations of an image may be generated and provided, rather than only a single realization, for example. Also, in another embodiment, the generation and output of multiple realizations may use one or more native objects to natively perform the transforms or image processing to provide the images or realizations.

Claims (59)

1. A method comprising at least the following steps implemented by a computing device or an image processor device:

receiving an image, wherein the image is electronic;

receiving an image processing command for the received image, wherein the image processing command specifies a particular transform to be performed on the image, wherein a native and a non-native transform can each perform the same functionality of the particular transform, wherein each native transform operates on a non-down-sampled version of the image and is performed during decoding of the image and each non-native transform operates on a down-sampled version of the image and is performed after decoding of the image, and wherein the particular transform does not include compressing or decompressing the image;

selecting the native transform over the non-native transform in response to the image processing command; and

performing a plurality of transforms, including the native transform instead of the non-native transform, on the image based on the image processing command to concurrently provide one or more realizations of the image.

2. The method of claim 1 wherein the receiving an image comprises:

receiving a file comprising at least one of a raster graphics image, a digital image and a bitmap image.

3. The method of claim 1 wherein the receiving an image processing command comprises:

receiving an image processing command to perform one or more of the following transforms to the image: scaling the image, converting a format of the image to a different format and flipping or rotating the image.

4. The method of claim 1 wherein the performing comprises:

performing natively a first transform by a decoder on the image based on the image processing command; and

performing natively by the decoder a second transform on the image based on the image processing command.

5. The method of claim 1 wherein the performing comprises:

performing, without re-sampling the image, a plurality of transforms on the image based on the image processing command to provide one or more realizations of the image.

6. The method of claim 1 wherein the performing comprises:

instantiating a decoder object;

instantiating an object for one or more transforms; and

associating the object for the one or more transforms with the decoder object.

7. The method of claim 6 wherein the instantiating an object for one or more transforms comprises:

instantiating a scaler object;

instantiating a format converter object; or

instantiating a flip/rotator object to perform at least one of a flip and rotate transform.

8. The method of claim 1 wherein the performing further comprises:

storing state information identifying a state of the image being processed.

9. The method of claim 1 wherein the performing further comprises:

storing one or more intermediate stage image realizations after one or more of the transforms are performed on the image.

10. The method of claim 1 wherein the performing comprises:

performing natively a plurality of transforms on the image based on the image processing command to provide a plurality of realizations of the image.

11. A method comprising at least the following steps implemented by a computing device or an image processor device:

receiving an image, wherein the image is electronic;

receiving an image processing command for the image, wherein the image processing command specifies a particular transform to be performed on the image, wherein a native transform and a non-native transform can each perform the same functionality of the particular transform, wherein each native transform operates on a non-down-sampled version of the image and is performed during decoding of the image and each non-native transform operates on a down-sampled version of the image and is performed after decoding of the image, and wherein the particular transform does not include compressing or decompressing the image;

selecting the native transform over the non-native transform in response to the image processing command; and

performing a plurality of transforms, including the native transform instead of the non-native transform, on the image based on the image processing command to concurrently provide a plurality of realizations of the image.

12. The method of claim 11 wherein the receiving an image processing command comprises:

receiving an image processing command to perform one or more of the following transforms to the image: scaling the image, converting a format of the image to a different format and flipping or rotating the image.

13. The method of claim 11 wherein the performing comprises:

instantiating a decoder object;

instantiating an object for one or more transforms; and

associating the object for the one or more transforms to the decoder object.

14. The method of claim 11 wherein the performing further comprises:

storing one or more intermediate stage image realizations after one or more of the transforms are performed on the image to concurrently provide the plurality of realizations of the image.

15. The method of claim 11 wherein the performing comprises instantiating an object to perform each of a plurality of transforms, the instantiating including one or more of:

instantiating a decoder object;

instantiating a scaler object;

instantiating a format converter object; or

instantiating a flip/rotator object to perform at least one of a flip and rotate transform.

16. The method of claim 11 wherein the performing comprises:

performing a plurality of transforms on the image based on the image processing command to concurrently provide a plurality of realizations of the image, the plurality of realizations including an original or unprocessed image and one or more processed or transformed image realizations.

17. The method of claim 11 wherein the performing comprises:

concurrently outputting the plurality of realizations of the image.

18. A method comprising at least the following steps implemented by a computing device or an image processor device:

receiving an image, wherein the image is electronic;

receiving an image processing command, wherein the image processing command specifies a particular transform to be performed on the image, wherein a native transform and a non-native transform can each perform the same functionality of the particular transform, wherein each native transform operates on a non-resampled version of the image and is performed during decoding of the image and each non-native transform operates on a resampled version of the image and is performed after decoding of the image, and wherein the particular transform does not include compressing or decompressing the image;

determining, based on the image processing command, one or more transforms and an arrangement for the transforms to process the image and to concurrently provide multiple realizations of the image in accordance with the image processing command, wherein the determining selects only one of the native transform and the non-native transform to perform the particular transform;

performing the one or more transforms on the image in at least one of an order and arrangement based on the determining; and

concurrently providing the multiple realizations resulting from the performing, wherein the multiple realizations comprise realizations of versions of the image both before and after application of at least one of the one or more transforms.

19. The method of claim 18 wherein the determining comprises:

determining, based on the image processing command, one or more transforms and at least one of a serial and parallel arrangement or order of the transforms to process the image and to concurrently provide multiple realizations of the image in accordance with the image processing command.

20. The method of claim 18 , wherein the multiple realizations comprise at least one intermediate stage realization after at least one but not all of the one or more transforms are performed, and at least one final stage realization after all of the one or more transforms are performed.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2006
From: GOEL, RAJAT; GOODWIN, MARGARET L.; MARGARINT, RADU C.; WLODARCZYK, ROBERT A.; OLSEN, THOMAS W.; WANG, WEI-CHUNG JONES
To: MICROSOFT CORPORATION
Reel/Frame 018073/0732 →
Continuity (1)
Related Publication 20080008392A1 · Jan 10, 2008