Image Compression and Lossless Reconstruction of Digital Image

The present invention is related to a system and method that provides 100% numerically lossless reconstruction of the image as compared from its uncompressed source. The method of the present invention is configured to compress the raw Red-Green-Blue (RGB) data from a digital image stored on a device and the method further comprises the steps of compressing the pixel (Pc) only if the RGB component of the pixel (Pc) to be compressed is predictable using the RGB component of the neighboring pixels (PN) by using the methods (m01-m16) else the pixel (Pc) is retained.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
BACKGROUND

Digital images, video technology are an essential and inherent part of the present day. Application of digital images, video technology in mobile and hand-held devices and over internet is immense. Most of the industries such as entertainment industry with animation and live action requirement, defense, broadcasting, medical imaging, surveillance, astronomy, robotics and computer graphics require soaring high on quality and performance with ever demanding needs of lossless image compression technique.

Existing professional video players provide a way to playback sequence of images or video from a compressed source which is lossy. Playing a sequence of uncompressed hi-resolution image-frames requires large RAM capacity. Commercially available hard-disk speed is not sufficient to transfer enormous amount of image data to the computer. For a 2K (2048×1024) image sequence of 800 frames, one would require 5033164800 Bytes (4.6875 GB) of RAM to playback 33.33 seconds of smooth playback at lossless quality. Hence there is a need of a system that provides lossless compression technique that allows the end user to be able to seamlessly playback video without frame-count limitations and thereby overcoming the constraint on RAM.

Hence what is needed is a compression/decompression method that provides 100% numerically lossless reconstruction of the image as compared from its uncompressed source and also the decompression system that should be extremely fast so as to read the compressed image data [and decompress] at 24 FPS losslessly.

SUMMARY

The present invention relates to a system and method for image compression and is particularly related to 100% numerically lossless reconstruction of the digital image.

The present invention relates to a system and method that provides 100% numerically lossless reconstruction of the image as compared to its uncompressed source. For this purpose, the method in accordance to one or more embodiment of the present invention compresses the pixel (Pc), only if the RGB component of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using any one of the methods (m01-m16).

In accordance to one or more embodiment of the present invention, the method that compresses the Red-Green-Blue (RGB) data from a digital image comprises the steps of identifying the pixel (Pc) to be compressed, identifying the neighboring pixels (PN) preceding the pixel (Pc) to be compressed wherein the neighboring pixels (PN) are taken within a cycle of four reference neighboring pixels preceding the pixel (Pc) to be compressed. The method further comprises the steps of checking if the RGB component of the pixel (Pc) to be compressed is predictable using the RGB component of the neighboring pixels (PN) by using any one of the methods (m01-m16) and compressing the pixel (Pc) only if the RGB component of the pixel (Pc) to be compressed is predictable using the RGB component of the neighboring pixels (PN) else retaining the pixel (Pc) if the RGB component of the pixel (Pc) is not predictable using the RGB component of the neighboring pixels.

In accordance to one or more embodiment of the present invention, the method of the present invention may be implemented on any personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, an iPod®, a video player, a DVD writer/player, a television and a home entertainment system.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other features of embodiments will become more apparent from the following detailed description of embodiments when read in conjunction with the accompanying drawings. In the drawings, like reference numerals refer to like elements.

FIG. 1 illustrates the method of identifying the neighboring pixels (PN) preceding the pixel (Pc) to be compressed in accordance to one embodiment of the invention.

FIG. 2 illustrates the method of compressing a digital image in accordance to one embodiment of the invention.

FIG. 2a illustrates the compression method m01 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2b illustrates the compression method m02 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2c illustrates the compression method m03 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2d illustrates the compression method m04 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2e illustrates the compression method m05 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2f illustrates the compression method m06 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2g illustrates the compression method m07 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2h illustrates the compression method m08 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2i illustrates the compression method m09 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2j illustrates the compression method m10 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2k illustrates the compression method m11 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2l illustrates the compression method m12 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2m illustrates the compression method m13 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2n illustrates the compression method m14 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2o illustrates the compression method m15 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

FIG. 2p illustrates the compression method m16 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention.

DETAILED DESCRIPTION

The present invention overcomes the drawback of prior art by providing a system and method that provides 100% numerically lossless reconstruction of the image as compared from its uncompressed source.

The term ‘Pc’ is used herein to represent any pixel to be compressed and the term ‘PcRed, PcBlue and PcGreen’ is used herein to represent the Red, Green and Blue component of the pixel ‘Pc’ to be compressed.

The term ‘PN’ is used herein to represent the neighboring pixels preceding the pixel (Pc) to be compressed and the neighboring pixels (PN) are taken within a cycle of four reference neighboring pixels (‘P1, P2, P3 and P4’) preceding the pixel (Pc) to be compressed.

The term ‘PNRed, PNGreen and PNBlue’ is used herein to represent the Red, Green and Blue components of the neighboring pixel ‘PN’.

The term ‘Neighbor Map’ is used herein to represent the bit wise binary representation of each neighboring pixel ‘PN’ that is used for predicting the RGB component of the pixel ‘PC’ to be compressed. For instance, the bit wise binary representation of (P1, P2, P3 and P4) is as follows

P1 00 P2 01 P3 10 P4 11

The term ‘Pind’ is used herein to represent the index values of the neighboring pixels ‘PN’. The index value of the neighboring pixels is as follows

Pind1 1 Pind2 2 Pind3 3 Pind4 4

The term ‘method map’ is used herein to represent the bit wise binary representation of method (m01-m16) denoting how each pixel ‘Pc’ is related to its neighboring pixel ‘PN’. The bit wise binary representation of the methods (m01-m16) is as follows:

m01 0000 m02 0001 m03 0010 m04 0011 m05 0100 m06 0101 m07 0110 m08 0111 m09 1000 m10 1001 m11 1010 m12 1011 m13 1100 m14 1101 m15 1110 m16 1111

The term ‘component difference map’ is used herein to represent the bit wise binary representation of the difference between the RGB components of the pixel (Pc) to be compressed and the RGB components of the neighboring pixels (PN). The bit wise binary representation of the component difference map is as follows:

D01 000 D02 000 D03 001 D04 001 D05 010 D06 010 D07 011 D08 111

The term ‘sign bit map’ is used herein to represent the bit wise binary representation of the difference between the comparisons, whether the comparison is positive or negative. If the result of the comparison is positive, the sign bit map is updated to one, else the sign bit map is updated to zero.

FIG. 1 illustrates the method of identifying the neighboring pixels (PN) preceding the pixel (Pc) to be compressed in accordance to one embodiment of the invention. For each pixel (Pc) to be compressed, neighboring pixels (PN) are taken within a cycle of four reference neighboring pixels preceding the pixel (Pc) to be compressed. As shown in FIG. 1 for each pixel (Pc) to be compressed, four neighboring pixels (P1, P2, P3 and P4) are identified preceding the pixel (Pc) to be compressed.

FIG. 2 illustrates the compression method configured for compressing a digital image in accordance to one embodiment of the present invention. The compression method for compressing a digital image acquired/stored in the device comprises the steps of identifying the RGB components of the pixel (Pc) to be compressed as PcRed, PcGreen and PcBlue (wherein PcRed is the red component of the pixel (Pc) to be compressed, PcGreen is the green component of the pixel (Pc) to be compressed and PcBlue is the blue component of the pixel (Pc) to be compressed) in step 201, identifying the RGB components of the neighboring pixels (PN) preceding the pixel (Pc) to be compressed as PNRed, PNGreen and PNBlue (as shown in FIG. 1, wherein PNRed is the red component of the neighboring pixel of (Pc) to be compressed, PNGreen is the green component of the neighboring pixel of (Pc) to be compressed and PNBlue is the blue component of the neighboring pixel of (Pc) to be compressed,) in step 202. In step 203, checking if the RGB component of the pixel (Pc) to be compressed is predictable using the RGB component of the neighboring pixels (PN) by using any one of the methods (m01-m16) (here the control is transferred to step 203a1 in FIG. 2a to step 203a75 in FIG. 2p to check if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using any one of the methods (m01-m16)) and compressing the pixel (Pc) in step 204 if the RGB component of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels by using any one of the methods (m01-m16) else retaining the pixel (Pc) in step 205 if the RGB component of the pixel (Pc) is not predictable by using any one of the methods m01-m16.

FIG. 2a illustrates the compression method m01 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m01 for compressing a digital image further comprises the steps of checking if PcRed=PNRed and PcGreen=PNGreen and Pcblue=PNBlue and the indices of the neighboring pixels (PN) are equal in step 203a1 (therefore only two bits is used for identifying the neighboring pixel (PN) for all the RGB components that matches the condition in step 203a1) then updating the neighbor map with corresponding neighboring pixel (PN) (binary value of the neighbor pixel (PN) is added to the neighbor map), and updating the method map with method m10 (binary value of method m01 (0000) is added to the method map) in step 203a2, else transferring the control to step 203a3 in FIG. 2b (here the control is transferred to step 203a3 to check if the RGB component of the pixel Pc to be compressed is predictable using method m02).

FIG. 2b illustrates the compression method m02 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m02 for compressing a digital image further comprises the steps of identifying PAvgRed, PAvgGreen, PAvgBlue, Pind in step 203a3, wherein PAvgRed, PAvgGreen, PAvgBlue are calculated as PAvgRed=average of the red component of the neighboring pixels (PN) and PPrevRed (wherein PPrevRed is the red component of the previous pixel of PN along the horizontal scan line), PAvgGreen=average of the green component of the neighboring pixels (PN) and PPrevGreen (wherein PPrevGreen is the green component of the previous pixel of (PN) along the horizontal scan-line), PAvgBlue=average of the blue component of the neighboring pixels (PN) and PPrevBlue (wherein PPrevBlue is the blue component of the previous pixel of (PN) along the horizontal scan-line) and Pind=index value of the neighboring pixels (PN).

In step 203a4 checking if Pc-Red=PAvgRed+Pind, Pc-Green=PAvgGreen+Pind and Pc-Blue=PAvgBlue+Pind and the indices of the neighboring pixels (PN) are equal (therefore only two bits is used for identifying the neighbor pixel for all the RGB components that matches the condition in step 203a4) then updating the sign bit map with one (here the sign bit map is updated with one to denote the sum of the average and index value), updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m02) (binary value of method m02 (0001) is added to the method map) in step 203a5. Else checking if Pc-Red=PAvgRed−Pind, Pc-Green=PAvgGreen−Pind and Pc-Blue=PAvgBlue−Pind and the indices of the neighboring pixels (PN) are equal in step 203a6 (therefore only two bits is used for identifying the neighbor pixel for all the RGB components that matches the condition in step 203a6) and if the condition holds true updating the sign bit element with zero, updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method m02 (binary value of method m02 (0001) is added to the method map) in step 203a7, else the control is transferred to step 203a8 in FIG. 2c (here the control is transferred to step 203a8 to check if the RGB component of the pixel Pc to be compressed is predictable using method m03).

FIG. 2c illustrates the compression method m03 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m03 for compressing a digital image further comprises the steps of checking if PcRed=PNRed+Pind and PcGreen=PNGreen+Pind and PcBlue=PNBlue+Pind and the indices of the neighboring pixels (PN) are equal in step 203a8 (since the indices of the neighboring pixels (PN) are equal, therefore only two bits is used for identifying the neighbor pixel for all the RGB components that matches the condition in step 203a8), then updating the sign bit map with one (here the sign bit map is updated with one to denote the sum between the RGB components of the neighboring reference pixel PN and its index value), updating the neighbor map with the corresponding neighboring pixel (PN), updating the method map with method 3 (m03) in step 203a9.

If the condition as discussed in step 203a8 holds false then checking if PcRed=PNRed−Pind and PcGreen=PNGreen−Pind and PcBlue=PNBlue−Pind and the indices of the neighboring pixels (PN) are equal (therefore only two bits is used for identifying the neighbor pixel for all the RGB components that matches the condition in step 203a10) in step 203a10, then updating the sign bit map with zero (here the sign bit map is updated with zero to denote the difference between the RGB components of the neighboring reference pixel PN and its index value), updating the neighbor map with the corresponding neighboring pixel (PN), updating the method map with method (m03) (binary value of method m03 (0010) is added to the method map) in step 203a11. If the condition as discussed in step 203a10 holds false the control is transferred to step 203a12 in FIG. 2d (here the control is transferred to step 203a12 to check if the RGB component of the pixel Pc to be compressed is predictable using method m04).

FIG. 2d illustrates the compression method m04 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method (m04) for compressing a digital image further comprises the steps of identifying PAvgRed, PAvgGreen, PAvgBlue in step 203a12 wherein PAvgRed=average of the red component of the neighboring pixels (PN) and PPrevRed (wherein PPrevRed is the red component of the previous pixel of PN along the horizontal scan line), PAvgGreen=average of the green component of the neighboring pixels (PN) and PPrevGreen (wherein PPrevGreen is the green component of the previous pixel of (PN) along the horizontal scan-line), PAvgBlue=average of the blue component of the neighboring pixels (PN) and PPrevBlue (wherein PPrevBlue is the blue component of the previous pixel of (PN) along the horizontal scan-line).

Calculating PDiffRed, PDiffRed, PDiffGreen and PDiffBlue in step 203a13, wherein:


PDiffRed=PNRed−PPrevRed;


PDiffGreen=PNGreen−PPrevGreen;


PDiffBlue=PNBlue−PPrevBlue;

In step 203a14, checking if PCRed=PAvgRed+PDiffRed and PcGreen=PAvgGreen+PDiffGreen and PcBlue=PAvgBlue+PDiffBlue and the indices of the neighboring pixels (PN) are equal (therefore only two bits is used for identifying the neighbor pixel for all the RGB components that matches the condition in step 203a14) and if the condition holds true in step 203a14 updating the sign bit element with one (here the sign bit element is updated with one to denote the sum of the average and difference value), updating the method map with method (m04) (binary value of method m04 (0011) is added to the method map) and updating the neighbor map with the corresponding neighboring pixel (PN) that matches the above condition in step 203a15. Else if the condition holds false in step 203a14, checking if PcRed=PAvgRed−PDiffRed and PcGreen=PAvgGreen−PDiffGreen and PcBlue=PAvgBlue−PDiffBlue and the indices of the neighboring pixels (PN) are equal (therefore only two bits is used for identifying the neighbor pixel for all the RGB components that matches the condition in step 203a16) in step 203a16 and if the condition holds true in step 203a16 then updating the sign bit map with zero (here the sign bit element is updated with zero to denote the differences between the Average and difference value), updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m04) (binary value of method m04 (0011) is added to the method map) in step 203a17, else the control is transferred to step 203a18 in FIG. 2e (here the control is transferred to step 203a18 to check if the RGB component of the pixel Pc to be compressed is predictable using method m05).

FIG. 2e illustrates the compression method m05 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method (m05) for compressing a digital image further comprises the steps of checking if PcRed=PAvgRed+PDiffRed+Pind and PcGreen=PAvgGreen+PDiffGreen+Pind and PcBlue=PAvgBlue+PDiffBlue+Pind and the indices of the neighboring pixels (PN) are equal (therefore only two bits is used for identifying the neighboring pixel for all the RGB components that matches the condition in step 203a18) and if the condition holds true in step 203a18, updating the sign bit map with one (here the sign bit element is updated with one to denote the sum of Average, Index Value and the difference value), updating the neighbor map with the corresponding PN and updating the method map with m05 (binary value of method m05 (0100) is added to the method map) in step 203a19.

Else if the condition holds false in step 203a18, checking if PcRed=PAvgRed−PDiffRed−Pind and PcGreen=PAvgGreen−PDiffGreen−Pind and PcBlue=PAvgBlue−PDiffBlue−Pind and the indices of the neighboring pixels PN are equal (therefore only two bits is used for identifying the neighbor pixel for all the RGB components that matches the condition in step 203a20) in step 203a20 and updating the sign bit map with zero (here the sign bit element is updated with zero to denote the difference between the Average, Index Value and the difference value), updating the neighbor map with the corresponding neighboring pixel PN and updating the method map with method 5 (m05) (binary value of method m05 (0100) is added to the method map) in step 203a21. Else if the condition holds false in step 203a20, the control is transferred to step 203a22 in FIG. 2f (here the control is transferred to step 203a22 to check if the RGB component of the pixel Pc to be compressed is predictable using method m06).

FIG. 2f illustrates the compression method m06 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m06 for compressing a digital image further comprises the steps of calculating DNRed, DNGreen and DNBlue in step 203a22, wherein:


DNRed=PcRed−PNRed;


DNGreen=PcGreen−PNGreen;


DNBlue=PcBlue−PNBlue;

In step 203a23, checking if DNRed=DNGreen and DNRed=DNBlue and the value of DNRed lies between 1 and 8 and if the condition in step 203a23 holds true then updating the sign bit map with one (here the sign bit map is updated with one to denote the difference as positive), updating the component difference map with DNRed, updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m06) (binary value of method m06 (0101) is added to the method map) in step 203a24.

Else if the condition holds false in step 203a23, checking if DNRed=DNGreen and DNRed=DNBlue and the value of DNRed lies between −1 and −8 in step 230 and if the condition holds true in step 203a25, updating the sign bit map with zero (here the sign bit element is updated with one to denote the difference as negative), updating the component difference map with DNRed, updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m06) (binary value of method m06 (0101) is added to the method map) in step 203a26. Else if the condition holds false in step 203a25, the control is transferred to the step 203a27 in FIG. 2g (here the control is transferred to step 203a27 to check if the RGB component of the pixel Pc to be compressed is predictable using method m07).

FIG. 2g illustrates the compression method m07 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m07 for compressing a digital image further comprises the steps of calculating DNRed, DNGreen and DNBlue in step 203a27, wherein:


DNRed=PcRed−PAvgRed+Pind;


DNGreen=PcGreen−PAvgGreen+Pind;


DNBlue=PcBlue−PAvgBlue+Pind;

In step 203a28, checking if DNRed=DNGreen and DNRed=DNBlue and the value Of DNRed lies between 1 and 8 and if the condition in step 203a28 holds true then updating the sign bit map with one (here the sign bit map is updated with one to denote the difference as positive), updating the component difference map with DNRed, updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m07), binary value of method m07 (0110) is added to the method map) in step 203a29.

Else if the condition holds false in step 203a28, checking if DNRed=DNGreen and DNRed=DNBlue and the value of DNRed lies between −1 and −8 in step 203a30 and if the condition holds true in step 203a30, updating the sign bit element with zero (here the sign bit element is updated with zero to denote the difference as negative), updating the component difference map with DNRed, updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m07) in step 203a31. Else if the condition holds false in step 203a30, then the control is transferred to the step 203a32 in FIG. 2h (here the control is transferred to step 203a32 to check if the RGB component of the pixel Pc to be compressed is predictable using method m08).

FIG. 2h illustrates the compression method m08 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m08 for compressing a digital image further comprises the steps of identifying PPrevRed, PPrevGreen and PPrevBlue in step 203a32, wherein:

  • PPrevRed=red component of the previous pixel of PN along the horizontal scan line;
  • PPrevBlue=blue component of the previous pixel of PN along the horizontal scan line;
  • PPrevGreen=green component of the previous pixel of PN along the horizontal scan line;

In step 203a33, checking if PcRed=PPrevRed+Pind and PCGreen=PPrevGreen+Pind and PCBlue=PPrevBlue+Pind and the indices of the neighboring pixels (PN) may not be equal (therefore 2 Bits for identifying each component of the neighbor pixel for each RG&B components which matches the condition in step 203a33), then updating the sign bit map with one (here the sign bit map is updated with one to denote the difference as positive), updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN) and updating the method map with method m08 (binary value of method m08 (0111) is added to the method map) in step 203a34.

Else if the condition holds false in step 203a33, checking if PcRed=PPrevRed−Pind and PCGreen=PPrevGreen−Pind and PcBlue=PPrevBlue−Pind and the indices of the neighboring pixels PN may not be equal in step 203a35 (therefore 2 bits for identifying each component of the neighbor pixel for each RG&B components which matches the condition in step 203a35) and then updating the sign bit map with zero (here the sign bit map is updated with one to denote the difference as positive), updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN) (that holds true for the condition in step 203a35) and updating the method map with method m08 (binary value of method m08 (0111) is added to the method map) in step 203a36.

Else if the condition holds false in step 203a35, the control is transferred to the step 203a37 in FIG. 2i (here the control is transferred to step 203a37 to check if the RGB component of the pixel Pc to be compressed is predictable using method m09).

FIG. 2i illustrates the compression method m09 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method (m09) for compressing a digital image further comprises the steps of checking if PcRed=PPrevRed+Pind+PDiffRed and PCGreen=PPrevGreen+Pind+PDiffGreen and PCBlue=PPrevBlue+Pind+PDiffBlue and the indices of the neighboring pixels PN may not be equal in step 203a37 (therefore 2 Bits for identifying each component of the neighbor pixel for each RG&B components which matches the condition in step 203a37) then updating the sign bit element with one (here the sign bit map is updated with one to denote the sum between Previous Pixel of the current pixel and the Index value and the sum of difference), updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN) and updating the method map with method m09 (binary value of method m09 (1000) is added to the method map) in step 203a38. Else checking if PcRed=PPrevRed−Pind−PDiffRed and PCGreen=PPrevGreen−Pind−PDiffGreen and PcBlue=PPrevBlue−Pind−PDiffBlue and the indices of neighboring pixels identifying each Red, Green and Blue component may not be equal in step 203a39 and updating the sign bit map with zero (here the sign bit map is updated with zero to denote the difference between Previous Pixel of the current pixel and the Index value and the sum of difference), updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN) and updating the method map with method m09 (binary value of method m09 (1000) is added to the method map) in step 203a40. Else if the condition holds false in step 203a39, the control is transferred to the step 203a41 in FIG. 2j (here the control is transferred to step 203a41 to check if the RGB component of the pixel Pc to be compressed is predictable using method m10).

FIG. 2j illustrates the compression method m10 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m10 for compressing a digital image further comprises the steps of checking if PcRed=PNRed+Pind and PCGreen=PNGreen+Pind and PcBlue=PNBlue+Pind and the indices of the neighboring pixels (PN) may not be equal in step 203a41 (therefore 2 Bits for identifying each component of the neighbor pixel for each RG&B components which matches the condition in step 203a41) then updating the sign bit map with one (here the sign bit element is updated with one to denote the sum between neighboring Pixel and the Index value), updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN), updating the method map with method m10 (binary value of method m10 (1001) is added to the method map) in step 203a42. Else if the condition in step 203a41 holds false, checking if PcRed=PNRed−Pind and PcGreen=PNGreen−Pind and PcBlue=PNBlue−Pind and the indices of the neighboring pixels may not be equal in step 203a43 (therefore 2 Bits for identifying each component of the neighbor pixel for each RG&B components which matches the condition in step 203a43) then updating the sign bit element with zero (here the sign bit element is updated with zero to denote the sum between neighboring Pixel and the Index value), updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN) and updating the method map with method m10 (binary value of method m10 (1001) is added to the method map) in step 203a44. If the condition holds false in step 203a43, the control is transferred to the step 203a45 in FIG. 2k (here the control is transferred to step 203a45 to check if the RGB component of the pixel Pc to be compressed is predictable using method m11).

FIG. 2k illustrates the compression method m11 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method (m11) for compressing a digital image further comprises the steps of identifying PNPrevRed, NPrevRed, PNPrevGreen and PNPrevBlue in step 203a45 wherein:


PNPrevRed=P(NRed−Pind);


PNPrevGreen=P(NGreen−Pind);


PNPrevBlue=P(NBlue−Pind);

In step 203a46, checking if PcRed=PNPrevRed+Pind and PcGreen=PcGreen=PNPrevGreen+Pind and PcBlue=PNPrevBlue+Pind and the indices of the neighboring pixels (PN) may not be equal (therefore 2 Bits for identifying each component of the neighbor pixel for each RG&B components which matches the condition in step 203a46) then updating the sign bit map with one (here the sign bit map is updated with one to denote the sum between the previous pixels of the neighboring Pixel and the index value), updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN) and updating the method map with method ml 1 (binary value of method m11 (1010) is added to the method map) in step 203a47. If the condition in step 203a46 holds false then further checking if PcRed=PNPrevRed−Pind and PCGreen=PNPrevGreen−Pind and PcBlue=PNPrevBlue−Pind and the indices of the neighboring pixels (PN) may not be equal (therefore 2 Bits for identifying each component of the neighbor pixel for each RG&B components which matches the condition in step 203a48)in step 203a48 and then updating the sign bit element with zero updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN) and updating the method map with method m11 in step 203a49. Else transferring the control to step 203a50 in FIG. 2l, (here the control is transferred to step 203a50 to check if the RGB component of the pixel Pc to be compressed is predictable using method m12).

FIG. 2l illustrates the compression method m12 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m12 for compressing a digital image further comprises the steps of identifying PCPrevred, PCPrevgreen, PCPrevblue in step 203a50 wherein:

    • PCPrevred=red component of the previous pixel of Pc;
    • PCPrevgreen=green component of the previous pixel of Pc;
    • PCPrevblue=blue component of the previous pixel of Pc;

In step 203a51, calculating DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen, wherein


DCPrevDiffRed=PcRed−PCPrevred;


DCPrevDiffBlue=PcBlue−PCPrevblue;


DCPrevDiffGreen=PcGreen−PcPrevGreen;

Checking if DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen lies between 1 and 8 in step 203a52 and updating the sign bit map to one (here the sign bit map is updated with one to denote the differences in step 256 is positive), updating the component difference map with DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen, updating the method map with method m12 (binary value of method m12 (1011) is added to the method map) in step 203a53. If the condition in step 203a52 holds false then checking if DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen lies between −1 and −8 in step 203a54 and then updating the updating the sign bit element to zero, updating the component difference map with DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen, updating the method map with method m12 (binary value of method m12 (1011) is added to the method map) in step 203a55 if the condition in step 203a54 holds true else the control is transferred to step 203a56 in FIG. 2m (here the control is transferred to step 203a56 to check if the RGB component of the pixel Pc to be compressed is predictable using method m13).

FIG. 2m illustrates the compression method m13 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m13 for compressing a digital image further comprises the steps of calculating DDiffRed, DDiffGreen and DDiffBlue in step 203a56, wherein:


DDiffRed=PcRed−PNRed+Pind;


DDiffBlue=PcBlue−PNBlue+Pind;


DDiffGreen=PcGreen−PNGreen+Pind;

Checking if DDiffRed and DDiffBlue and DDiffGreen lies between 1 and 8 in step 203a57 and then updating the sign bit map with one (here the sign bit map is updated with one to denote the difference in step 203a57 as positive), updating the component difference map with DDiffRed, DDiffBlue and DDiffGreen and updating the method map with the corresponding method m13 (binary value of method m13 (1100) is added to the method map) in step 203a58. If the condition in step 203a57 holds false then further checking if DDiffRed and DDiffBlue and DDiffGreen lies between −1 and −8 in step 203a59 and then updating the the sign bit element with zero (here the sign bit map is updated with zero to denote the difference in step 203a59 as negative), updating the component difference map with DDiffRed, DDiffBlue and DDiffGreen and updating the method map with the corresponding method m13 (binary value of method m13 (1100) is added to the method map) in step 203a60, else transferring the control to step 203a61 in FIG. 2n (here the control is transferred to step 203a61 to check if the RGB component of the pixel Pc to be compressed is predictable using method m14).

FIG. 2n illustrates the compression method m14 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m14 for compressing a digital image further comprises the steps of calculating DAvgDiffRed, DAvgDiffGreen and DAvgDiffBlue in step 203a61, wherein:


DAvgDiffRed=PcRed−PAvgRed;


DAvgDiffGreen=PcGreen−PAvgGreen;


DAvgDiffBlue=PcBlue−PAvgBlue;

In step 203a62, checking if DAvgDiffRed and DAvgDiffGreen and DAvgDiffBlue lies between 1 and 8, then updating sign bit map with one (here the sign bit map is updated with one to denote the difference as positive), updating the component difference map with DAvgDiffRed, DAvgDiffGreen and DAvgDiffBlue, updating the neighbor map with the corresponding PN, updating the method map with m14 (binary value of method m14 (1101) is added to the method map) in step 203a63. If the condition in step 203a62 holds false then checking if DAvgDiffRed and DAvgDiffGreen and DAvgDiffBlue lies between −1 and −8 in step 203a64 and updating sign bit map with zero (here the sign bit map is updated with zero to denote the difference as negative), updating the component difference map with DAvgDiffRed, DAvgDiffGreen and DAvgDiffBlue, updating the neighbor map with the corresponding PN, updating the method map with m14 (binary value of method m14 (1101) is added to the method map) in step 203a65. Else transferring the control to step 203a66 in FIG. 2o (here the control is transferred to step 203a66 to check if the RGB component of the pixel Pc to be compressed is predictable using method m15).

FIG. 2o illustrates the compression method m15 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m15 for compressing a digital image further comprises the steps of calculating DNDiffRed, DNDiffGreen and DNDiffBlue in step 203a66, wherein:


DNDiffRed=PcRed−PNRed;


DNDiffGreen=PcGreen−PNGreen;


DNDiffBlue=PcBlue−PNBlue;

In step 203a67, checking if DNDiffRed and DNDiffGreen and DNDiffBlue lies between 1 and 8 and then updating the sign bit map with one (here the sign bit map is updated with one to denote the difference as positive), updating the component difference map with DNDiffRed and DNDiffGreen and DNDiffBlue, updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN), updating the method map with method m15 (binary value of method m15 (1110) is added to the method map) in step 203a68. If the condition holds false in step 203a67, checking if DNDiffRed and DNDiffGreen and DNDiffBlue lies between −1 and −8 in step 203a69 then updating the sign bit element with zero (here the sigh bit map is updated with zero to denote the difference as positive), updating the component difference map with DNDiffRed and DNDiffGreen and DNDiffBlue, updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN), updating the method map with method m15 (binary value of method m15 (1110) is added to the method map) in step 203a70. Else transferring the control to step 203a71 in FIG. 2p (here the control is transferred to step 203a71 to check if the RGB component of the pixel Pc to be compressed is predictable using method m16).

FIG. 2p illustrates the compression method m16 of the present invention in detail for compressing the digital image in accordance to one embodiment of the present invention. The compression method m16 for compressing a digital image further comprises the steps of calculating DNDiffRed, DNDiffGreen and DNDiffBlue in step 203a71 as:


DNDiffRed=PcRed−PNRed+Pind;


DNDiffGreen=PcGreen−PNGreen+Pind;


DNDiffBlue=PcBlue−PNBlue+Pind;

Checking if DNDiffRed and DNDiffGreen and DNDiffBlue lies between 1 and 8 in step 203a72 and updating the sign bit map with one (here the sign bit map is updated with one to denote the difference as positive), updating the component difference map with DNDiffRed, DNDiffGreen and DNDiffBlue, updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN) and updating the method map with method m16 (binary value of method m16 (1111) is added to the method map) in step 203a73, if the condition in step 203a72 holds true. Else checking if DNDiffRed and DNDiffGreen and DNDiffBlue lies between −1 and −8 in step 203a74 and updating the sign bit element with zero (here the sign bit map is updated with one to denote the difference as negative), updating the component difference map with DNDiffRed, DNDiffGreen and DNDiffBlue, updating the neighbor map with each Red, Green and Blue component of the neighboring pixel (PN), updating the method map with m16 (binary value of method m16 (1111) is added to the method map) in step 203a75. If the condition in step 203a74 also holds false, then the pixel (Pc) is retained as shown in step 205 in FIG. 2. Else if the RGB component of the pixel (Pc) to be compressed is predictable using any of the above method (m01-m16), the pixel (Pc) is compressed as shown in step 204 in FIG. 2.

In accordance to one embodiment of the invention, the method also comprises the steps of tracking the method id (if method m01 is used for predicting Pc, then the method id is 01) of Pc and comparing it with the method id of the previous pixel of Pc and updating the previous method map to one, if the method id of Pc and the previous pixel of Pc are same else the previous method map is updated to zero.

Thus the system and method of the present invention overcomes the drawback of prior art by providing 100% numerically lossless reconstruction of the image as compared from its uncompressed source. Also the system and method of the present invention may be implemented in any of the industries such as entertainment industry with animation and live action requirement, defense, broadcasting, medical imaging, surveillance, astronomy, robotics and computer graphics to allow the end users to seamlessly playback video/hi-resolution image-frames without frame-count limitations.

It is to be understood that although the invention has been described above in terms of particular embodiments, the foregoing embodiments are provided as illustrative only, and do not limit or define the scope of the invention. Various other embodiments, including but not limited to the following, are also within the scope of the claims. For example, elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions.

Any of the functions disclosed herein may be implemented using means for performing those functions. Such means include, but are not limited to, any of the components disclosed herein, such as the computer-related components described below.

The techniques described above may be implemented, for example, in hardware, one or more computer programs tangibly stored on one or more computer-readable media, firmware, or any combination thereof. The techniques described above may be implemented in one or more computer programs executing on (or executable by) a programmable computer including any combination of any number of the following: a processor, a storage medium readable and/or writable by the processor (including, for example, volatile and non-volatile memory and/or storage elements), an input device, and an output device. Program code may be applied to input entered using the input device to perform the functions described and to generate output using the output device.

Each computer program within the scope of the claims below may be implemented in any programming language, such as assembly language, machine language, a high-level procedural programming language, or an object-oriented programming language. The programming language may, for example, be a compiled or interpreted programming language.

Each such computer program may be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a computer processor. Method steps of the invention may be performed by one or more computer processors executing a program tangibly embodied on a computer-readable medium to perform functions of the invention by operating on input and generating output. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, the processor receives (reads) instructions and data from a memory (such as a read-only memory and/or a random access memory) and writes (stores) instructions and data to the memory. Storage devices suitable for tangibly embodying computer program instructions and data include, for example, all forms of non-volatile memory, such as semiconductor memory devices, including EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROMs. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application-specific integrated circuits) or FPGAs (Field-Programmable Gate Arrays). A computer can generally also receive (read) programs and data from, and write (store) programs and data to, a non-transitory computer-readable storage medium such as an internal disk (not shown) or a removable disk. These elements will also be found in a conventional desktop or workstation computer as well as other computers suitable for executing computer programs implementing the methods described herein, which may be used in conjunction with any digital print engine or marking engine, display monitor, or other raster output device capable of producing color or gray scale pixels on paper, film, display screen, or other output medium.

Any data disclosed herein may be implemented, for example, in one or more data structures tangibly stored on a non-transitory computer-readable medium. Embodiments of the invention may store such data in such data structure(s) and read such data from such data structure(s).

Claims

1. A method that compresses the raw Red-Green-Blue (RGB) data from a digital image comprises the steps of:

a) identifying the pixel (Pc) to be compressed;
b) identifying the neighboring pixels (PN) preceding the pixel (Pc) to be compressed;
c) checking if the RGB component of the pixel (Pc) to be compressed is predictable using the RGB component of the neighboring pixels (PN);
d) compressing the pixel (Pc) if the RGB component of the pixel (Pc) to be compressed is predictable using the RGB component of the neighboring pixels (PN), else retaining the pixel (Pc) if the RGB component of the pixel (Pc) to be compressed is not predictable using the RGB component of the neighboring pixels (PN).

2. The method as claimed in claim 1, wherein the method provides lossless reconstruction of the image when applied to a digital image.

3. The method as claimed in claim 1, wherein the RGB component of the pixel (Pc) to be compressed is predictable using the RGB component of the neighboring pixels (PN) by using any one of the methods (m01-m16).

4. The method as claimed in claim 1, wherein the method for predicting the RGB component of the pixel (Pc) to be compressed by using any one of the methods (m01-m16) further comprises the steps of: ti DNRed=PcRed−PNRed,

a) identifying the RGB components of the pixel (Pc) to be compressed as PcRed, PcGreen and PcBlue wherein: PcRed=red component of the pixel (Pc) to be compressed, PcGreen=green component of the pixel (Pc) to be compressed, PcBlue=blue component of the pixel (Pc) to be compressed;
b) identifying the RGB components of the neighboring pixels (PN) to be compressed as PNRed, PNGreen and PNBlue wherein: PNRed=red component of the neighboring pixel of (Pc) to be compressed, PNGreen=green component of the neighboring pixel of (Pc) to be compressed, PNBlue=blue component of the neighboring pixel of (Pc) to be compressed;
c) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using the method m01, wherein the method m01 further comprises the steps of: checking if PcRed=PNRed and PcGreen=PNGreen and PcBlue=PNBlue and the indices of the neighboring pixels (PN) are equal, then updating the neighbor map with corresponding neighboring pixel (PN); updating the method map with the corresponding method (m01), else
d) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m02, wherein the method m02 further comprises the steps of: identifying PAvgRed, PAvgGreen, PAvgBlue, Pind wherein: PAvgRed=average of the red component of the neighboring pixels (PN) and PPrevRed, wherein PPrevRed is the red component of the previous pixel of (PN) along the horizontal scan line, PAvgGreen=average of the green component of the neighboring pixels (PN) and PPrevGreen, wherein PPrevGreen is the green component of the previous pixel of (PN) along the horizontal scanline, PAvgBlue=average of the blue component of the neighboring pixels (PN) and PPrevBlue, wherein PPrevBlue is the blue component of the previous pixel of (PN) along the horizontal scanline, Pind=index value of the neighboring pixels (PN); checking if PcRed=PAvgRed+Pind, PcGreen=PAvgGreen+Pind and PcBlue=PAvgBlue+Pind and the indices of the neighboring pixels (PN) are equal; then updating the sign bit map with one; updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m02), else checking if PcRed=PAvgRed−Pind, Pc-Green=PAvgGreen−Pind and Pc-Blue=PAvgBlue−Pind and the indices of the neighboring pixels (PN) are equal; then updating the sign bit map with zero; updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m02); else
e) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m03, wherein the method m03 further comprises the steps of: checking if PcRed=PNRed+Pind and PcGreen=PNGreen+Pind and PcBlue=PNBlue+Pind and the indices of the neighboring pixels (PN) are equal, then updating the sign bit map with one; updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m03), else checking if PcRed=PNRed−Pind and PcGreen=PNGreen−Pind and PcBlue=PNBlue−Pind and the indices of the neighboring pixels (PN) are equal; then updating the sign bit map with zero; updating the method map with method (m03) and updating the neighbor map with the corresponding neighboring pixel (PN), else
f) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m04, wherein the method m04 further comprises the steps of: identifying PAvgRed, PAvgGreen, PAvgBlue; calculating PDiffRed, PDiffGreen and PDiffBlue, wherein: PDiffRed=PNRed−PprevRed, PDiffGreen=PNGreen−PprevGreen, PDiffBlue=PNBlue−PPrevBlue; checking if PcRed=PAvgRed+PDiffRed and PcGreen=PAvgGreen+PDiffGreen and PcBlue=PAvgBlue+PDiffBlue and the indices of the neighboring pixels (PN) are equal; then updating the sign bit map with one; updating the method map with method (m04) and updating the neighbor map with the corresponding neighboring pixel (PN), else checking if PcRed=PAvgRed−PDiffRed and PcGreen=PAvgGreen−PDiffGreen and PcBlue=PAvgBlue−PDiffBlue and the indices of the neighboring pixels (PN) are equal; then updating the sign bit map with zero; updating the method map with method (m04) and updating the neighbor map with the corresponding neighboring pixel (PN);
g) else checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m05, wherein the method m05 further comprises the steps of: checking if PcRed=PAvgRed+PDiffRed+Pind and PcGreen=PAvgGreen+PDiffGreen+Pind and PcBlue=PAvgBlue+PDiffBlue+Pind and the indices of the neighboring pixels (PN) are equal; then updating the sign bit map with one; updating the method map with method (m05); updating the neighbor map with the corresponding neighboring pixel (PN), else checking if PcRed=PAvgRed−PDiffRed−Pind and PcGreen=PAvgGreen−PDiffGreen−Pind and PcBlue=PAvgBlue−PDiffBlue−Pind and the indices of neighboring pixels (PN) are equal, then updating the sign bit map with zero; updating the method map with method (m05) and updating the neighbor map with the corresponding neighboring pixel (PN);
h) else checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m06, wherein the method m06 further comprises the steps of: calculating DNRed, DNGreen and DNBlue, wherein:
DNGreen=PcGreen−PNGreen,
DNBlue=PcBlue−PNBlue;
checking if DNRed=DNGreen and DNRed=DNBlue and the value of DNRed lies between 1 and 8; then updating the sign bit map with one; updating the component difference map with DNRed; updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m06), else checking if DNRed=DNGreen and DNRed=DNBlue and the value of DNRed lies between −1 and −8; then updating the sign bit map with zero; updating the component difference map with DNRed; updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m06), else
i) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m07, wherein the method m07 comprises the steps of: calculating DNRed, DNGreen and DNBlue wherein: DNRed=PcRed−PAvgRed+Pind, DNGreen=PcGreen−PAvgGreen+Pind, DNBlue=PcBlue−PAvgBlue+Pind; checking if DNRed=DNGreen and DNRed=DNBlue and the value of DNRed lies between 1 and 8; updating the sign bit map with one; updating the component difference map with DNRed; updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m07); or else checking if DNRed=DNGreen and DNRed=DNBlue and the value of DNRed lies between −1 and −8; updating the sign bit map with zero; updating the component difference map with DNRed; updating the neighbor map with the corresponding neighboring pixel (PN) and updating the method map with method (m07), else
j) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m08, wherein the method m08 further comprises the steps of: identifying PPrevRed, PPrevGreen and PPrevBlue wherein: PPrevRed=red component of the previous pixel of PN along the horizontal scanline, PPrevGreen=green component of the previous pixel of PN along the horizontal scanline, PPrevBlue=blue component of the previous pixel of PN along the horizontal scanline; checking if PcRed=PPrevRed+Pind and PcGreen=PPrevGreen+Pind and PcBlue=PPrevBlue+Pind and the indices of the neighboring pixels (PN) are not equal; then updating the sign bit map with one; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m08, else checking if PcRed=PPrevRed−Pind and PcGreen=PPrevGreen−Pind and PcBlue=PPrevBlue−Pind and the indices of the neighboring pixels (PN) are not equal; updating the sign bit map with zero; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m08, else
k) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m09, wherein the method m09 further comprises the steps of: checking if PcRed=PPrevRed+Pind+PDiffRed and PcGreen=PPrevGreen+Pind+PDiffGreen and PcBlue=PPrevBlue+Pind+PDiffBlue and the indices of the neighboring pixels (PN) are not equal then; updating the sign bit map with one; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m09; or else checking if PcRed=PPrevRed=Pind−PDiffRed and PcGreen=PPrevGreen−Pind−PDiffGreen and PcBlue=PPrevBlue−Pind−PDiffBlue and the indices of the neighboring pixels (PN) are not equal then; updating the sign bit map with zero; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m09; else
l) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m10, wherein the method m10 further comprises the steps of: checking if PcRed=PNRed−Pind and PcGreen=PNGreen+Pind and PcBlue=PNBlue Pind and the indices of the neighboring pixels (PN) are not equal then; updating the sign bit map with one; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m10, or else checking if PcRed=PNRed−Pind and PcGreen=PNGreen−Pind and PcBlue=PNBlue−Pind and the indices of the neighboring pixels (PN) are not equal then; updating the sign bit map with zero; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m10, else
m) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m12, wherein the method m11 further comprises the steps of: identifying PNPrevRed, PNPrevGreen and PNPrevBlue wherein: PNPrevRed=P(NRed−Pind), PNPrevGreen=P(NGreen−Pind), PNPrevBlue=P(NBlue−Pind); checking if PcRed=PNPrevRed+Pind and PcGreen=PNPrevGreen+Pind and PcBlue=PNPrevBlue+Pind and the indices of the neighboring pixels (PN) are not equal then; updating the sign bit map with one; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m11, else checking if PcRed=PNPrevRed−Pind and PCGreen=PNPrevGreen−Pind and PcBlue=PNPrevBlue−Pind and the indices of the neighboring pixels (PN) are not equal then; updating the sign bit map with zero; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m11; else
n) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m12, wherein the method m12 further comprises the steps of: identifying PCPrevred, PCPrevgreen, PCPrevblue, wherein: PCPrevred=red component of the previous pixel of Pc, PCPrevgreen=green component of the previous pixel of Pc, PCPrevblue=blue component of the previous pixel of Pc; calculating DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen wherein: DCPrevDiffRed=PcRed−PCPrevred, DCPrevDiffBlue=PcBlue−PCPrevblue, DCPrevDiffGreen=PcGreen−PcPrevGreen; checking if DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen lies between 1 and 8; then updating the sign bit map with one; updating the component difference map with DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen; updating the method map with method m12, or else checking if DCPrevDiffRed, DCPrevDiffBlue and DCPrevDiffGreen lies between −1 and −8 then updating the sign bit map with zero; updating the component difference map with DCPrevDifed, DCPrevDiffBlue and DCPrevDiffGreen; updating the method map with method m12, else
o) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method M13, wherein the method m13 further comprises the steps of: calculating DDiffRed, DDiffGreen and DDiffBlue, wherein: DDiffRed=PcRed−PNRed+Pind, DDiffBlue=PcBlue−PNBlue+Pind, DDiffGreen=PcGreen−PNGreen+Pind; checking if DDiffRed, DDiffBlue and DDiffGreen lies between 1 and 8; updating the sign bit map with one; updating the component difference map with DDiffRed, DDiffBlue and DDiffGreen; updating the neighbor map with the corresponding neighbor pixel (PN); updating the method map with the corresponding method m13, else checking if DDiffRed, DDiffBlue and DDiffGreen lies between −1 and −8; updating the sign bit element with zero; updating the component difference map with DDiffRed, DDiffBlue and DDiffGreen; updating the neighbor map with the corresponding neighbor pixel (PN); updating the method map with the corresponding method m13, else
p) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m14, wherein the method m14 further comprises the steps of: calculating DAvgDiffRed, DAvgDiffGreen and DAvgDiffBlue, wherein: DAvgDiffRed=PcRed−PAvgRed, DAvgDiffGreen=PcGreen−PAvgGreen, DAvgDiffBlue=PcBlue−PAvgBlue; checking if DAvgDiffRed and DAvgDiffGreen and DAvgDiffBlue lies between 1 and 8; updating the sign bit map with one; updating the component difference map with DAvgDiffRed, DAvgDiffGreen and DAvgDiffBlue; updating the neighbor map with the corresponding neighboring pixel (PN); updating the method map with method m14, else checking if DAvgDiffRed and DAvgDiffGreen and DAvgDiffBlue lies between −1 and −8; updating the sign bit element with zero; updating the component difference map with DAvgDiffRed, DAvgDiffGreen and DAvgDiffBlue; updating the neighbor map with corresponding neighboring pixel (PN); updating the method map with method m14, else
q) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m15, wherein the method m15 further comprises the steps of: calculating DNDiffRed, DNDiffGreen and DNDiffBlue, wherein: DNDiffRed=PcRed−PNRed, DNDiffGreen=PcGreen−PNGreen, DNDiffBlue=PcBlue−PNBlue; checking if DNDiffRed and DNDiffGreen and DNDiffBlue lies between 1 and 8; updating the sign bit map with one; updating the component difference map with DNDiffRed and DNDiffGreen and DNDiffBlue; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m15; or else checking if DNDiffRed and DNDiffGreen and DNDiffBlue lies between −1 and −8; updating the sign bit map with zero; updating the component difference map with DNDiffRed and DNDiffGreen and DNDiffBlue; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method m15, else
r) checking if the RGB components of the pixel (Pc) to be compressed is predictable using the RGB components of the neighboring pixels (PN) by using method m16, wherein the method m16 further comprises the steps of: calculating DNDiffRed, DNDiffGreen and DNDiffBlue as: DNDiffRed=PcRed−PNRed+Pind, DNDiffGreen=PcGreen−PNGreen+Pind, DNDiffBlue=PcBlue−PNBlue+Pind; checking if DNDiffRed and DNDiffGreen and DNDiffBlue lies between 1 and 8; updating the sign bit map with one; updating the component difference map with DNDiffRed, DNDiffGreen and DNDiffBlue; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method (m16), else checking if DNDiffRed and DNDiffGreen and DNDiffBlue lies between −1 and −8; updating the sign bit element with zero; updating the component difference map with DNDiffRed, DNDiffGreen and DNDiffBlue; updating the neighbor map with the corresponding neighboring pixel (PN) for each Red, Green and Blue component; updating the method map with method (m16).

5. The method as claimed in claim 4, wherein the method further comprises the steps of updating the compression map with one, if the RGB component of the pixel (Pc) to be compressed is predictable using any one of the methods (m01-m16), else updating the compression map with zero.

6. The method as claimed in claim 4, wherein the neighboring pixels (PN) are taken within a cycle of four reference neighboring pixels preceding the pixel (Pc) to be compressed.

7. The method as claimed in claim 4, wherein the neighbor map is the bit wise binary representation of each neighboring pixel ‘PN’ that is used for predicting the RGB component of the pixel ‘Pc’ to be compressed.

8. The method as claimed in claim 4, wherein the method map is the bit wise binary representation of method (m01-m16) denoting how each pixel Pc to be compressed is related to its neighboring pixel ‘PN’.

9. The method as claimed in claim 4, wherein the sign bit map is the bit wise binary representation of the difference between the comparisons used in method (m01-m16).

10. The device as claimed in claim 4, wherein the component difference map is the bit wise binary representation of the difference between the RGB components of the pixel (Pc) to be compressed and the RGB components of the neighboring pixels (PN).

11. The method as claimed in claim 1, wherein the method is implemented in a personal computer, a laptop computer, a computer workstation, a server, a mainframe computer, a handheld computer, a personal digital assistant, a cellular/mobile telephone, a smart appliance, a gaming console, a digital camera, a digital camcorder, a camera phone, a iPod®, a video player, a DVD writer/player, a television or a home entertainment system.

Patent History
Publication number: 20140199052
Type: Application
Filed: May 9, 2013
Publication Date: Jul 17, 2014
Applicant: Brainwave Innovations Private Limited (Bangalore)
Inventor: Rejoy Alexander (Bangalore)
Application Number: 13/890,535
Classifications
Current U.S. Class: Color Video Signal Processing (386/300)
International Classification: H04N 7/32 (20060101);