IP Library Granted Patent US 8,351,694
Granted Patent B2
US 8,351,694 · App. 13/156,991 · Granted Jan 8, 2013

Adaptive compression of multi-level 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 8,351,694
App. No.
13/156,991
Granted
Jan 8, 2013
Kind
B2
Abstract

The invention facilitates adaptive compression of multi-level images, such as captured digital images of a whiteboard, etc., encoding a bitstream comprising a color image component and a black-and-white image component. Either or both of a color and a black-and-white image can be output to a user based on user desires, receiving device capabilities, etc.

Claims (69)

1. A method, comprising:

determining a most frequently occurring color in a color-mapped image of a physical rendering which is not included in a color table, wherein the color table represents a predefined discrete set of colors known prior to the physical rendering being created, and the colors in the predefined discrete set of colors have respective color values;

designating the most frequently occurring color which is not included in the color table as a background color and assigning a color value to the background color, wherein the background color value is different from the color values included in the color table;

determining, for pixels comprising the color-mapped image, whether a pixel of the pixels exhibits a color value equal to a color value associated with the background color;

setting a flag for the pixel to a background value corresponding to a background pixel in response to the color value of the pixel being equal to the color value associated with the background color;

setting the flag for the pixel to a foreground value corresponding to a foreground pixel in response to the color value of the pixel being different than the value associated with the background color;

compressing respective flags for the pixels of the color-mapped image; and

compressing color value information for foreground pixels of the color-mapped image.

2. The method of claim 1 , further comprising compressing a black and white representation of the image employing a bi-level codec compressor.

3. The method of claim 1 , further comprising compressing the color value information for the foreground pixels of the image employing a Lempel-Ziv entropy encoder.

4. The method of claim 1 , further comprising selectively decoding the color value information or the respective flags to facilitate providing an output image.

5. The method of claim 1 , further comprising generating a header corresponding to a compressed file associated with the color-mapped image, the header comprising the value of the background color of the image.

6. The method of claim 5 , further comprising mapping the color-mapped image to a corresponding black and white image including setting color values for respective pixels of the pixels as a function of being equal or not equal to the color value associated with the background color of the image.

7. The method of claim 6 , further comprising encoding color values of foreground pixels based on determining a location of the foreground pixels in the corresponding black and white image.

8. The method of claim 7 , wherein the encoding of the color values of the foreground pixels comprises appending the color values of the foreground pixels, in scanning order, to a string.

9. The method of claim 8 , further comprising encoding the string based on a lossless compression scheme.

10. The method of claim 8 , further comprising encoding the string based on a lossy compression scheme.

11. The method of claim 1 , wherein the compressing the color value information comprises performing an octree reduction.

12. The method of claim 1 , wherein the compressing the color value information comprises performing vector quantization.

13. The method of claim 12 , wherein the performing the vector quantization comprises employing a Linde-Buzo-Gray algorithm.

14. The method of claim 1 , wherein the compressing the color value information comprises minimizing mean-square-error between original colors and encoded colors.

15. A system, comprising:

a control component configured to receive a color-mapped image and determine a mode of encoding the color-mapped image; and

a compression component configured to:

determine a most frequently occurring color in the color-mapped image of a physical rendering which is not included in a color table, wherein the color table is based on a predefined discrete set of colors known prior to creation of the physical rendering, and the colors in the predefined discrete set of colors have respective color values;

designate the most frequently occurring color which is not included in the color table as a background color and assign a color value to the background color, wherein the background color value is different from the color values included in the color table;

determine, for pixels of the color-mapped image, whether a pixel of the pixels exhibits a color value equal to a color value associated with the background color;

set a flag for the pixel to a background value that corresponds to a background pixel in response to the color value of the pixel being equal to the color value associated with the background color;

set the flag for the pixel to a foreground value that corresponds to a foreground pixel in response to the color value of the pixel being different than the value associated with the background color;

compress respective flags for the pixels of the color-mapped image; and

encode a string that comprises background pixel information and foreground pixel information associated with the color-mapped image.

16. The system of claim 15 , wherein the compression component is further configured to compress color value information associated with foreground pixels of the color-mapped image.

17. The system of claim 16 , wherein the compression component further comprises a Lempel-Ziv entropy encoder configured to compress the color value information.

18. The system of claim 17 , wherein the compression component is further configured to compress the background pixel information and the foreground pixel information to construct a black-and-white representation of the color-mapped image.

19. The system of claim 18 , wherein the control component is further configured to analyze bandwidth availability to determine a likelihood the black-and-white representation of the color-mapped image or a color representation of the color-mapped image will be successfully transmitted.

20. The system of claim 19 , wherein the control component is further configured to partition encoded information into at least one of the black-and-white representation of the color-mapped image or the color representation of the color-mapped image.

21. The system of claim 20 , wherein the control component is further configured to transmit the black-and-white representation of the color-mapped image in response to bandwidth availability being below a predetermined threshold.

22. The system of claim 17 , further comprises an artificial intelligence component configured to determine whether a device includes a capability to display a color version of the color-mapped image.

23. The system of claim 22 , wherein the artificial intelligence component is further configured to employ at least one of a support vector machine, neural network, expert system, Bayesian belief network, fuzzy logic, or a data fusion engine.

24. The system of claim 16 , wherein the string of the background pixel information and the foreground pixel information includes a header that comprises information related to at least one of a dimension of the color-mapped image, a background color, a number of colors in the color-mapped image, or a colormap of the color-mapped image.

25. The system of claim 24 , further comprises a decoder configured to read the header and string and decode a first bitstream component and a second bitstream component.

26. The system of claim 25 , wherein the first bitstream component comprises information related to a bi-level version of a digital image from which the color-mapped image is generated.

27. The system of claim 25 , wherein the second bitstream component comprises information related to a color version of a digital image from which the color-mapped image is generated.

28. The system of claim 25 , wherein the decoder is further configured to assign a color to a plurality of foreground indices according to the colormap of the color-mapped image.

29. A system, comprising:

a control component configured to analyze information related to a compressed multi-level image created from a color-mapped image of a physical rendering; and

a decoder configured to read an encoded string of background pixel information and foreground pixel information, the encoded string including a header that comprises information related to a background color of the color-mapped image wherein the background color is a most frequently occurring color in the color-mapped image of the physical rendering that is not included in a color table comprising a predefined set of colors known prior to creation of the physical rendering, and wherein, for pixels of the color-mapped image, a pixel is flagged as a background pixel in response to the pixel having a color value equal to the background color, and a pixel is flagged as a foreground pixel in response to the pixel having a color value that is not equal to the background color.

30. The system of claim 29 , wherein the decoder further decodes a first bitstream component and a second bitstream component based on the information contained in the encoded string and the header.

31. The system of claim 30 , wherein the first bitstream component comprises other information associated with a bi-level representation of the physical rendering from which the color-mapped image is generated.

32. The system of claim 31 , further comprising a bi-level decoder decodes the first bitstream component.

33. The system of claim 30 , wherein the second bitstream comprises other information related to a color representation of the physical rendering from which the color-mapped image is generated.

34. The system of claim 33 , further comprising an entropy decoder that decodes the second bitstream component.

35. The system of claim 29 , wherein the decoder assigns a color to a plurality of foreground indices in accordance with the colormap of the color-mapped image.

36. A non-transitory computer readable storage medium comprising computer executable instructions that, in response to execution, cause a computing system to perform operations, comprising:

determining a most frequently occurring color in a color-mapped image of a physical rendering which is not included in a color table representing a predefined discrete set of colors known prior to creating the physical rendering, wherein the colors in the predefined discrete set of colors have respective color values;

designating the most frequently occurring color which is not included in the color table as a background color and assigning a color value to the background color, wherein the background color value is different from the color values included in the color table;

determining, for pixels comprising the color-mapped image, whether a respective pixel of the pixels exhibits a color value equal to a color value associated with the background color;

setting a flag for the respective pixel to a background value corresponding to a background pixel in response to the color value of the respective pixel being equal to the color value associated with the background color;

setting the flag for the respective pixel to a foreground value corresponding to a foreground pixel in response to the color value of the respective pixel being different than the color value associated with the background color;

compressing respective flags for the respective pixels of the color-mapped image; and

compressing color value information for foreground pixels of the color-mapped image.

37. A system, comprising:

means for determining a most frequently occurring color in a color-mapped image of a physical rendering which is not included in a color table, wherein the color table represents a predefined discrete set of colors known prior to the physical rendering being created, and the colors in the predefined discrete set of colors have respective color values;

means for designating the most frequently occurring color which is not included in the color table as a background color and assigning a color value to the background color, wherein the background color value is different from the color values included in the color table;

means for determining, for pixels comprising the color-mapped image, whether a respective pixel of the pixels exhibits a color value equal to a color value associated with the background color;

means for setting a flag for the respective pixel to a background value corresponding to a background pixel in response to the color value of the respective pixel being equal to the color value associated with the background color;

means for setting the flag for the respective pixel to a foreground value corresponding to a foreground pixel in response to the color value of the respective pixel being different than the color value associated with the background color;

means for compressing respective flags for the respective pixels of the color-mapped image; and

means for compressing color value information for foreground pixels of the color-mapped image.

Assignments (3)
MERGER Recorded Dec 31, 2015
From: NEIVERSAN NETWORKS CO. LLC
To: OL SECURITY LIMITED LIABILITY COMPANY
Reel/Frame 037392/0252 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2011
From: MALVAR, HENRIQUE S.; RENSHAW, ERIN L.
To: MICROSOFT CORPORATION
Reel/Frame 026419/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2011
From: MICROSOFT CORPORATION
To: NEIVERSAN NETWORKS CO. LLC
Reel/Frame 026419/0272 →