Abstract:
A method of image compressing is provided. During compressing, color intensity of the image is considered. When the color intensity of the image is relatively high, lower bits used for representing the image are dropped. When the color intensity of the image is relatively low, upper bits used for representing the image are dropped. By this, the image is compressed according to color intensity of the image. Therefore, the images with different color intensities are compressed dynamically. Correspondingly, a method of image decompressing is provided. Moreover, a compressing apparatus and a decompressing apparatus are also provided.

Description:
BACKGROUND 
     1. Field of the Invention 
     The present invention generally relates to image processing, and particularly to a method and an apparatus for image compression and decompression. 
     2. Description of Related Art 
     Various kinds of image formats such as bitmap (BMP), joint photographic experts group (JPEG), graphics interchange format (GIF), and so on are used for representing images. Particularly, the bitmap is a widely used image format that is generally represented with a two dimensional array of pixels. The bitmap is characterized by a number of bits per pixel (a color depth, which determines the number of colors it can represent). 
     Generally, each pixel of the bitmap has three individually defined color data: red, green, and blue. The amount of color information in each pixel determines the quality of the bitmap. Typically, each pixel of an uncompressed bitmap stores forty-eight bits digital data (sixteen bits corresponding to each color data) or twenty-four bits digital data (eight bits corresponding to each color data). A picture quality of the bitmap with forty-eight bits digital data is smoother than that with twenty-four bits digital data. 
     High-quality bitmap often takes up large amount of disk space, so some image compressing techniques sacrifice image quality to achieve a smaller file size. For example, one image compressing technique always drops lower three data bits of each color data that may be defined by eight bits, thereby a pixel is compressed from twenty-four bits to fifteen bits. However, this image compressing technique does not consider the color intensity factor of the bitmap during compressing. When the color intensity of the bitmap is relative low, the image quality may deteriorate and digital data for representing the color intensity of each pixel are mainly stored in the lower bits. If the lower data bits are dropped for compression, the image is greatly distorted after decompression. 
     Therefore, what is desired is to provide a method that is capable of compressing and decompressing images such as bitmap images considering color intensity factor and an apparatus for image compression and decompression is also desired. 
     SUMMARY 
     Accordingly, a method for compressing image is provided. During compressing, color intensity factor of the image is considered. When the image has a higher intensity, lower data bits of each color data are dropped. When the image has a lower intensity, upper data bits of each color data are dropped. Therefore, the images with different intensities are compressed dynamically. Correspondingly, a method for decompressing image is provided. Moreover, a compressing apparatus and a decompressing apparatus are also provided. 
     Other advantages and novel features of the present invention will become more apparent from the following detailed description of exemplary embodiment when taken in conjunction with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a functional block diagram of a compressing apparatus for compressing image according to an exemplary embodiment. 
         FIG. 2  is a detailed diagram of the image compressing apparatus of  FIG. 1 . 
         FIG. 3  is a flowchart of image compressing. 
         FIG. 4  is a functional block diagram of a decompressing apparatus for decompressing image according to an exemplary embodiment. 
         FIG. 5  is a detailed diagram of the image compressing apparatus of  FIG. 3 . 
         FIG. 6  is a flowchart of image decompressing. 
     
    
    
     DETAILED DESCRIPTION 
     Referring to  FIG. 1 , a functional block diagram of a compressing apparatus  20  in accordance with an exemplary embodiment is illustrated. The compressing apparatus  20  is used for dynamically compressing digital images such as a bitmap image based on color intensity of the bitmap image. The compressing apparatus  20  includes a data buffer module  21 , a control module  23 , a bit selecting module  25 , and a formatting module  27 . It should be noted that the compressing apparatus  20  may further include other functional blocks such as a display module for displaying images and a storage module for storing compressed image files. 
     The data buffer module  21  is configured to couple to data image generating devices, for example, charge coupled device (CCD) image sensors, for receiving and storing temporarily pixel data. 
     The control module  23  is connected to the data buffer module  21 , the bit selecting module  25 , and the formatting module  27 . The control module  23  is configured for analyzing color intensity of the pixel data and outputting a data line select signal corresponding to the analyzed color intensity to the bit selecting module  25 . The data line select signal reflects the color intensity that should be reserved in compressed image data for decompressing, so that the data line select signal is outputted to the formatting module  27 . 
     The bit selecting module  25  is connected to the data buffer module  21 , the control module  23 , and the formatting module  27 . The bit selecting module  25  is configured for selectively obtaining data bits of the pixel data transmitted from the data buffer module  21  according to the data line select signal transmitted from the control module  23 . If the color intensity of a particular pixel is higher than a predetermined value, upper data bits of the particular pixel are selected, whereas lower data bits of the particular pixel are dropped by the bit selecting module  25 . If the color intensity of the particular pixel is lower than the predetermined value, lower data bits of the particular pixel are selected, whereas upper data bits of the particular pixel are dropped by the bit selecting module  25 . As a result, the pixel data are compressed according to the color intensity. 
     The formatting module  27  is connected to the control module  23  and the bit selecting module  25 . The formatting module  27  is configured for receiving selected data bits transmitted from the bit selecting module  25 , and data line select signal from the control module  23 . The data line select signal and the selected data bits are combined by the formatting module  27  to yield formatted pixel data. 
     Referring to  FIG. 2 , a detailed diagram of the compressing apparatus  20  of  FIG. 1  is illustrated. A particular pixel includes three color data: red color data, green color data, and blue color data. Each of the color data are represented with eight bits, thus each of the particular pixel is represented with twenty-four bits totally. 
     The data buffer module  21  is connected to the control module  23  and the bit selecting module  25  by a data bus  12 . For exemplary purpose, the data bus  12  includes labeled data lines  10 ˜ 17 ,  20 ˜ 27 , and  30 ˜ 37  to more clearly describe the embodiment. 
     The data buffer module  21  receives pixel data inputted from input line  11 . The pixel data include eight bits of the red color data, eight bits of the green color data, and eight bits of the blue color data. The eight bits of the red color data are transmitted to the data lines  10 ˜ 17 . The eight bits of the green color data are transmitted to the data lines  20 ˜ 27 . The eight bits of the blue color data are transmitted to the data lines  30 ˜ 37 . 
     The control module  23  is connected to the data lines  15 ˜ 17 , the data lines  25 ˜ 27 , and the data lines  35 ˜ 37 . The control module  23  includes an OR gate logic circuit for receiving the upper three bits of the red color data, the green color data, and the blue color data. The control module  23  outputs a logical “0” as the data line select signal if all the bits received are logical “0”, otherwise, the control module  23  outputs a logical “1” as the data line select signal. A Logical “1” outputted from the control module  23  as the data line select signal indicates that the color intensity of the particular pixel is relatively high. Conversely, a Logical “0” outputted from the control module  23  indicates that the color intensity of the particular pixel is relatively low. 
     The bit selecting module  25  includes a first input port  252 , a second input port  254 , and an output port  256 . The first input port  252  is connected to the data lines  10 ˜ 14 , the data lines  20 ˜ 24 , and the data lines  30 ˜ 34  of the data bus  12 . The second input port  254  is connected to the data lines  13 ˜ 17 , the data lines  23 ˜ 27 , and the data lines  33 ˜ 37  of the data bus  12 . 
     The bit selecting module  25  is configured for selectively receiving data bits from the first input port  252  or the second input port  254  according to the data line select signal. When the data line select signal is logical “0”, the first input port  252  is enabled to receive data bits from the data lines  10 ˜ 14 , the data lines  20 ˜ 24 , and the data lines  30 ˜ 34 . When the data line select signal is logical “1”, the second input port  254  is enabled to receive data bits from the data lines  13 ˜ 17 , the data lines  23 ˜ 27 , and the data lines  33 ˜ 37 . 
     The formatting module  27  is connected to the control module  23  and the output port  256  of the bit selecting module  25 . The formatting module  27  is configured for receiving data line select signal of logical “0” or “1” outputted from the control module  23  and the selected data bits either from the first input port  252  or from the second input port  254 . The formatting module  27  combines the selected data bits with the data line select signal, and yields formatted pixel data. The formatted pixel data is outputted from output line  13 . A data size of a particular formatted pixel is sixteen bits, that is, the particular pixel is compressed from twenty-four bits to sixteen bits. 
     As described above, the pixel data inputted from the line  11  are compressed in view of color intensity of the bitmap image. When the color intensity of the pixel data is relatively high, several lower bits of a particular pixel are dropped from each color data. When the color intensity of the particular pixel is relatively low, several upper bits of the particular pixel are dropped from each color data. Therefore, a dynamic compression to the bitmap image considering the color intensity of the bitmap is achieved. 
     Referring to  FIG. 3 , a method  700  for compressing bitmap image in accordance with an exemplary embodiment is illustrated. In some embodiments, the method  700 , or portions thereof, may be performed by the compressing apparatus  20  as described above. The various actions in the method  700  may be performed in the order presented, or may be performed in a different order. Further, in some embodiments, some actions listed in  FIG. 3  may be omitted from the method  700 . 
     At block  701 , receiving pixel data is performed. The pixel data includes individual color data: red color data, green color data, and blue color data. Each color data is represented with eight bits, and one pixel is represented with twenty-four bits totally. The received pixel data may be temporarily stored in a data buffer module  21  of the compressing apparatus  20 . 
     At block  703 , analyzing color intensity of the pixel data and outputting data line select signals corresponding to the color intensity are performed. For example, the control module  23  outputs a logical “0” as the data line select signal if all the bits received are logical “0”, otherwise, the control module  23  outputs a logical “1” as the data line select signal. Logical “1” indicates the color intensity is relatively high. Logical “0” indicates the color intensity is relatively low. 
     At block  705 , identifying the data line select signal is performed. For example, the bit selecting module  25  of the compressing apparatus  20  identifies if the data line select signal is logical “0” or logical “1”. 
     At block  707 , upon determination that the data line select signal is logical “0”, selecting several lower bits of each color data of the particular pixel is performed. For example, if the data line select signal is logical “0”, the bit selecting module  25  selects and receives lower five bits ( 0 ˜ 4 ) of each color data from the data buffer module  21 . 
     At block  709 , upon determination that the data line select signal is logical “1”, selecting upper bits of each color data of the particular pixel is performed. For example, if the data line select signal is logical “1”, the bit selecting module  25  selects and receives upper five bits ( 3 ˜ 7 ) of each color data from the data buffer module  21 . 
     At block  711 , formatting the data line select signal and the selected data bits is performed. For example, the data line select signal is combined with five bits red color data, five bits green color data, and five bits blue color data, thereby yielding formatted pixel data. Therefore, the formatted pixel data is represented with sixteen bits. 
     As described above, the method  700  for image compression is performed by compressing the pixel data from twenty-four bits to sixteen bits. As color intensity of the image is considered during compression, so the method for compressing bitmap image is dynamic. 
     Referring to  FIG. 4 , a decompressing apparatus  30  for decompressing a compressed image in accordance with an exemplary embodiment is illustrated. The decompressing apparatus  30  is used for decompressing the compressed image considering color intensity of the compressed image. The decompressing apparatus  30  includes a data buffer module  31 , a control module  33 , and a restoring module  35 . 
     The data buffer module  31  is connected to the control module  33  and the restoring module  35 . The data buffer module  31  is configured for receiving compressed pixel data. The compressed pixel data may be from a file stored in a storage medium such as an optical disc. The compressed image includes data line select signal and compressed pixel data. The data line select signal is used for indicating color intensity of the compressed pixel data. The compressed pixel data are used for constructing an image with the data line select signal. 
     The control module  33  is connected to the data buffer module  31  and the restoring module  35 . The control module  33  is configured for receiving the data line select signal transmitted from the data buffer module  31 , and outputting the data line select signal to the restoring module  35 . 
     The restoring module  35  is connected to the data buffer module  31  and the control module  33 . The restoring module  35  is configured for receiving the data line select signal from the control module  33 , and decompressing the compressed pixel data based on the data line select signal. If the data line select signal indicates that the color intensity of the compressed pixel data is relatively high, the restoring module  35  inserts several “0” bits to lower bits of each color data of the compressed pixel data. If the data line select signal indicates that the intensity of the compressed pixel data is relatively low, the restoring module  35  inserts several “0” bits to upper bits of each color data of the compressed pixel data. 
     Referring to  FIG. 5 , a detailed diagram of the decompressing apparatus  30  in accordance with an exemplary embodiment is illustrated. 
     The data buffer module  31  receives compressed pixel data from line  15 . The compressed pixel data is represented with sixteen bits stored in the data buffer module  31 . Each color data of the compressed pixel data are represented with 5 bits. One flag bit “F” is used for indicating the color intensity of the compressed pixel data. 
     The control module  33  retrieves the flag bit “F” from the data buffer module  31 . If the flag bit “F” is logical “1”, the color intensity of the compressed pixel data is relatively high. If the flag bit “F” is logical “0”, the color intensity of the compressed pixel data is relatively low. The control module  33  outputs data line select signal corresponding to the color intensity to the restoring module  35  for decompressing the compressed pixel data. 
     The restoring module  35  is connected to the data buffer module  31  by a data bus  32 . The data bus  32  includes, and labeled data lines  10 ˜ 14 ,  20 ˜ 24 , and  30 ˜ 34 . The restoring module  35  receives compressed red color data, green color data, and blue color data from data lines  10 ˜ 14 ,  20 ˜ 24 , and  30 ˜ 34  respectively. 
     The restoring module  35  receives data line select signal corresponding to the color intensity of the compressed pixel data. If the data line select signal is logical “1”, the restoring module  35  inserts three bits “0” after 5 bits red color data “RRRRRR”, 5 bits green color data “GGGGG”, and 5 bits blue color data “BBBBB”. If the data line select signal is logical “0”, the restoring module  35  inserts three bits “0” before the 5 bits red color data “RRRRRR”, the 5 bits green color data “GGGGG”, and the 5 bits blue color data “BBBBB”. The restoring module  35  then outputs decompressed pixel data that is represented with twenty-four bits. Therefore, an image can be constructed by the decompressed pixel data. 
     Referring to  FIG. 6 , a method  800  for image decompression in accordance with an exemplary embodiment is illustrated. In some embodiments, the method  800 , or portions thereof, may be performed by the decompressing apparatus  30  illustrated in  FIG. 4  and  FIG. 5 . The various actions in the method  800  may be performed in the order presented, or may be performed in a different order. Further, in some embodiments, some actions listed in  FIG. 6  may be omitted from the method  800 . 
     At block  801 , receiving compressed pixel data is performed. 
     At block  803 , identifying color intensity from data line select signal contained in the compressed pixel data is performed. 
     At block  805 , upon determination that the color intensity is identified to be relatively high, inserting several “0” bits after each color data is performed. 
     At block  807 , upon determination that the color intensity is identified to be relatively low, inserting several “0” bits before each color data is performed. 
     As described above, the decompressing apparatus  30  and the decompressing method  800  are used for decompressing from sixteen bits to twenty-four bits in view of color intensity of the compressed pixel data. When the color intensity of the compressed pixel data is relatively high, several “0” bits are inserted after each color data. When the color intensity of the compressed pixel data is relatively low, several “0” bits are inserted before each color data. Therefore, a dynamic image decompression process is achieved. 
     Alternative embodiments will become apparent to those skilled in the art to which the present invention pertains without departing from its spirit and scope.