PRE-PROCESSING OF IMAGE DATA FOR ENHANCED COMPRESSION

Abstract
Embodiments herein provide for a pre-processing stage or mechanism for enhancing data compression of an image by splitting or separating the color channels for pixels into planar data sources. Typically, image data is displayed as an interleaved set of channel types for a color space such that each pixel within an image (such as a bitmap) has one component for each color channel. By separating the interleaved bitmap into a planar representation, each plane can be compressed independently and often times achieve higher compression ratios. This is especially true for channels that are expected to stay fairly constant throughout the bitmap most of the time. The utilization of the above embodiment can be further enhanced through manipulation of channel data or through converting the color space from one form to another.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and other advantageous features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:



FIG. 1 illustrates a pre-processing stage for assisting in the compression of a digital image in accordance with example embodiments;



FIG. 2A illustrates the separation of a digital image into planar data sources for enhancing compression ratios in accordance with example embodiments;



FIG. 2B illustrates a specific example of using planar data sources for enhanced compression in accordance with exemplary embodiments;



FIG. 2C illustrates the use of planar data sources for exposing patterns and mathematical functions of color channels in accordance with example embodiments;



FIG. 2D illustrates additional techniques for manipulating data to enhance pattern recognition for more efficient compression in accordance with example embodiments;



FIG. 3 illustrates a flow diagram for a method of pre-processing image data for improved data compression in accordance with example embodiments; and



FIG. 4 illustrates a method of decompressing digital image data that was encoded as separate color channels of a color space in order to improve data compression in accordance with example embodiments.


Claims
  • 1. In a digital image computing device, a method of pre-processing an image for improved data compression by exposing one or more common patterns in the image data that are typically unrecognizable by a bit stream processor when the image data is displayed in color channel interleaved form, the method comprising: receiving a digital image represented as a plurality of pixels, wherein each pixel is defined by a first color space including at least two color channels that are typically displayed such that the layout of the plurality of pixels appears as an interleaved sequence of the at least two color channels;determining if the digital image is separated into at least two planar data sources, each of which includes digital image data for each of the individual at least two color channels such that redundancy or another recognizable sequence of digital image data can be readily identified by one or more data compression modules that are pattern based, statistics based, or both; andbased upon the above determination, sending the at least two planar data sources to the one or more data compression modules in order to assist the one or more data compression modules to more efficiently compress the digital image than when the digital image is in its interleaved form.
  • 2. The method of claim 1, wherein the digital image is in a virtual network computing environment and the digital image is compressed for transmitting to a remote device, and wherein the digital image is too complex to send to the remote device as a series of graphic primitives, and wherein if left in its interleaved form the compression and transmission of the digital image to the remote device overly consumes transmission bandwidth.
  • 3. The method of claim 1, wherein the one or more data compression modules includes one or more of RLE, MPEG based, JPEG, GIF, ZIP, LZ based, JBIG, DejaVu, or other well known pattern or statistical based compression mechanism.
  • 4. The method of claim 1, wherein the at least two planar data sources are sent to a first data compression module for compressing large redundancies of digital data and then sent to a second data compression module for other pattern, statistical, or arithmetic based processing.
  • 5. The method of claim 1, wherein it is determined that the digital image is not separated into the at least two planar data sources, the method further comprising: identifying each individual component of a first color channel for the at least two color channels and placing them into a first planar data source corresponding to one of the at least two planar data sources; andidentifying each individual component of a second color channel for the at least two color channels and placing them into a second planar data source corresponding to another of the at least two planar data sources.
  • 6. The method of claim 1, wherein the first color space is one of RGB, RGBA, CMYK, CIELAB, CIELUV, CIE, YUV, YIQ, YDbDr, HLS, HSL, HIS, HSB, YCbCr, YPbPr, and YCoCr.
  • 7. The method of claim 1, further comprising one or more of: converting a second color space to the first color space, which has a better compression ratio than the second color space or can be used to further manipulate the digital image data for better pattern or statistical recognition;identifying one or more areas within the at least two planar data sources where the image data can be altered for better pattern recognition; andbased on one or more control settings, or based on the type of compressor used, modifying the areas by altering original image data to achieve even better redundancy or other recognizable sequences or patterns than without the manipulation.
  • 8. The method of claim 7, wherein the first color space is a color space that has color channels of luminance and at least one chrominance component, and wherein the second color space is RGB based.
  • 9. The method of claim 8, wherein the modification includes sub-sampling such that at least a chrominance value for one color channel of a pixel is modified to match a chrominance value for another color channel of an adjacent pixel.
  • 10. The method of claim 9, wherein the modification is based on an average of the chrominance values.
  • 11. The method of claim 8, wherein the modification includes a quantization of the at least one chrominance component such that the bit size for the corresponding color channel is reduced a predetermined amount in order to reduce the amount of data needed to represent the at least one chrominance component, and wherein the reduction of the bit size reduces the color palette, but not the range of colors.
  • 12. The method of claim 1, wherein at least one of the at least two planar data sources is passed to an RLE for a first compression mechanism that identifies large sequence patters, and wherein the at least two planar data sources are passed to another general purpose compressor for further data compression.
  • 13. The method of claim 12, wherein the first color space is an RGB color space with an Alpha channel, and wherein the Alpha channel comprises a large amount of redundancy data, which is passed to the RLE.
  • 14. In a remote device of a virtual network computing environment that transmits digital images that are too complex to send to a remote device as a series of graphic primitives, a method of decompressing digital image data that was encoded as separate color channels of a color space, the method comprising: receiving a first set of compressed digital image data representing one of at least two planar data sources, wherein each of the at least two planar data sources corresponds to a separate color channel of a first color space for a plurality of pixels of a digital image, and wherein each of the at least two planar data sources were exposed as separate digital image data such that redundancy or another recognizable sequence of digital image data could be readily identified by one or more data compression modules that are pattern based, statistics based, or both;receiving a second set of compressed digital image data representing another of the at least two planar data sources;decompressing the first and second sets of compressed digital image data into their respective planar data sources; anddisplaying the digital image as an interleaved sequence of the decompressed color channels such that each pixel of the digital image includes a color component corresponding to each of the at least two planar data sources.
  • 15. The method of claim 14, wherein the one or more data compression modules compressed the at least two planar data sources into one or more of the following forms: RLE, MPEG based, JPEG, GIF, ZIP, LZ based, JBIG, DejaVu, or other well known pattern or statistical based forms.
  • 16. The method of claim 14, wherein the first color space is one of RGB, RGBA, CMYK, CIELAB, CIELUV, CIE, YUV, YIQ, YDbDr, HLS, HSL, HIS, HSB, YCbCr, YPbPr, and YCoCr.
  • 17. The method of claim 14, wherein the fist color space is converted into a second color space prior to displaying the digital image.
  • 18. The method of claim 17, wherein the first color space is a color space that has color channels of luminance and at least one chrominance component, and wherein the second color space is RGB based.
  • 19. The method of claim 14, wherein the first color space is an RGB color space with an Alpha channel with a large amount of redundancy data, and wherein the Alpha channel is received as a compressed RLE stream.
  • 20. In a digital image computing device, a computer program product for implementing a method of pre-processing an image for improved data compression by exposing one or more common patterns in the image data that are typically unrecognizable by a bit stream processor when the image data is displayed in color channel interleaved form, the computer program product comprising one or more computer-readable media having stored thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform the following: receive a digital image represented as a plurality of pixels, wherein each pixel is defined by a first color space including at least two color channels that are typically displayed such that the layout of the plurality of pixels appears as an interleaved sequence of the at least two color channels;determine if the digital image is separated into at least two planar data sources, each of which includes digital image data for each of the individual at least two color channels such that redundancy or another recognizable sequence of digital image data can be readily identified by one or more data compression modules that are pattern based, statistics based, or both; andbased upon the above determination, send the at least two planar data sources to the one or more data compression modules in order to assist the one or more data compression modules to more efficiently compress the digital image than when the digital image is in its interleaved form.
Provisional Applications (1)
Number Date Country
60776648 Feb 2006 US