US2014199052A1PendingUtilityA1

Image Compression and Lossless Reconstruction of Digital Image

Assignee: BRAINWAVE INNOVATIONS PRIVATE LTDPriority: Jan 11, 2013Filed: May 9, 2013Published: Jul 17, 2014
Est. expiryJan 11, 2033(~6.5 yrs left)· nominal 20-yr term from priority
Inventors:Rejoy Alexander
G06T 9/004H04N 19/11H04N 19/593H04N 19/00569
25
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

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 (P c ) only if the RGB component of the pixel (P c ) to be compressed is predictable using the RGB component of the neighboring pixels (P N ) by using the methods (m 01 -m 16 ) else the pixel (P c ) is retained.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method that compresses the raw Red-Green-Blue (RGB) data from a digital image comprises the steps of:
 a) identifying the pixel (P c ) to be compressed;   b) identifying the neighboring pixels (P N ) preceding the pixel (P c ) to be compressed;   c) checking if the RGB component of the pixel (P c ) to be compressed is predictable using the RGB component of the neighboring pixels (P N );   d) compressing the pixel (P c ) if the RGB component of the pixel (P c ) to be compressed is predictable using the RGB component of the neighboring pixels (P N ), else
 retaining the pixel (P c ) if the RGB component of the pixel (P c ) to be compressed is not predictable using the RGB component of the neighboring pixels (P N ). 
   
     
     
         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 (P c ) to be compressed is predictable using the RGB component of the neighboring pixels (P N ) by using any one of the methods (m 01 -m 16 ). 
     
     
         4 . The method as claimed in  claim 1 , wherein the method for predicting the RGB component of the pixel (P c ) to be compressed by using any one of the methods (m 01 -m 16 ) further comprises the steps of:
 a) identifying the RGB components of the pixel (P c ) to be compressed as P cRed , P cGreen  and P cBlue  wherein:
 P cRed =red component of the pixel (P c ) to be compressed, 
 P cGreen =green component of the pixel (P c ) to be compressed, 
 P cBlue =blue component of the pixel (P c ) to be compressed; 
   b) identifying the RGB components of the neighboring pixels (P N ) to be compressed as P NRed , P NGreen  and P NBlue  wherein:
 P NRed =red component of the neighboring pixel of (P c ) to be compressed, 
 P NGreen =green component of the neighboring pixel of (P c ) to be compressed, 
 P NBlue =blue component of the neighboring pixel of (P c ) to be compressed; 
   c) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using the method m 01 , wherein the method m 01  further comprises the steps of:
 checking if P cRed =P NRed  and P cGreen =P NGreen  and P cBlue =P NBlue  and the indices of the neighboring pixels (P N ) are equal, then 
 updating the neighbor map with corresponding neighboring pixel (P N ); 
 updating the method map with the corresponding method (m 01 ), else 
   d) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 02 , wherein the method m 02  further comprises the steps of:
 identifying P AvgRed , P AvgGreen , P AvgBlue , P ind  wherein:
 P AvgRed =average of the red component of the neighboring pixels (P N ) and P PrevRed , wherein P PrevRed  is the red component of the previous pixel of (P N ) along the horizontal scan line, 
 P AvgGreen =average of the green component of the neighboring pixels (P N ) and P PrevGreen , wherein P PrevGreen  is the green component of the previous pixel of (P N ) along the horizontal scanline, 
 P AvgBlue =average of the blue component of the neighboring pixels (P N ) and P PrevBlue , wherein P PrevBlue  is the blue component of the previous pixel of (P N ) along the horizontal scanline, 
 P ind =index value of the neighboring pixels (P N ); 
 
 checking if P cRed =P AvgRed +P ind , P cGreen =P AvgGreen +P ind  and P cBlue =P AvgBlue +P ind  and the indices of the neighboring pixels (P N ) are equal; then
 updating the sign bit map with one; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) and updating the method map with method (m 02 ), else
 checking if P cRed =P AvgRed −P ind , P c-Green =P AvgGreen −P ind  and P c-Blue =P AvgBlue −P ind  and the indices of the neighboring pixels (P N ) are equal; then 
 updating the sign bit map with zero; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) and updating the method map with method (m 02 ); else 
 
 
   e) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 03 , wherein the method m 03  further comprises the steps of:
 checking if P cRed =P NRed +P ind  and P cGreen =P NGreen +P ind  and P cBlue =P NBlue +P ind  and the indices of the neighboring pixels (P N ) are equal, then
 updating the sign bit map with one; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) and updating the method map with method (m 03 ), else 
 checking if P cRed =P NRed −P ind  and P cGreen =P NGreen −P ind  and P cBlue =P NBlue −P ind  and the indices of the neighboring pixels (P N ) are equal; then 
 updating the sign bit map with zero; 
 updating the method map with method (m 03 ) and updating the neighbor map with the corresponding neighboring pixel (P N ), else 
 
   f) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 04 , wherein the method m 04  further comprises the steps of:
 identifying P AvgRed , P AvgGreen , P AvgBlue ; 
 calculating P DiffRed , P DiffGreen  and P DiffBlue , wherein:
     P   DiffRed   =P   NRed   −P   prevRed , 
     P   DiffGreen   =P   NGreen   −P   prevGreen , 
     P   DiffBlue   =P   NBlue   −P   PrevBlue ; 
 
 checking if P cRed =P AvgRed +P DiffRed  and P cGreen =P AvgGreen +P DiffGreen  and P cBlue =P AvgBlue +P DiffBlue  and the indices of the neighboring pixels (P N ) are equal; then
 updating the sign bit map with one; 
 updating the method map with method (m 04 ) and updating the neighbor map with the corresponding neighboring pixel (P N ), else 
 checking if P cRed =P AvgRed −P DiffRed  and P cGreen =P AvgGreen −P DiffGreen  and P cBlue =P AvgBlue −P DiffBlue  and the indices of the neighboring pixels (P N ) are equal; then 
 updating the sign bit map with zero; 
 updating the method map with method (m 04 ) and updating the neighbor map with the corresponding neighboring pixel (P N ); 
 
   g) else checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 05 , wherein the method m 05  further comprises the steps of:
 checking if P cRed =P AvgRed +P DiffRed +P ind  and P cGreen =P AvgGreen +P DiffGreen +P ind  and P cBlue =P AvgBlue +P DiffBlue +P ind  and the indices of the neighboring pixels (P N ) are equal; then
 updating the sign bit map with one; 
 updating the method map with method (m 05 ); 
 updating the neighbor map with the corresponding neighboring pixel (P N ), else 
 checking if P cRed =P AvgRed −P DiffRed −P ind  and P cGreen =P AvgGreen −P DiffGreen −P ind  and P cBlue =P AvgBlue −P DiffBlue −P ind  and the indices of neighboring pixels (P N ) are equal, then 
 updating the sign bit map with zero; 
 updating the method map with method (m 05 ) and updating the neighbor map with the corresponding neighboring pixel (P N ); 
 
   h) else checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 06 , wherein the method m 06  further comprises the steps of:
 calculating D NRed , D NGreen  and D NBlue , wherein: 
   
       ti  D   NRed   =P   cRed   −P   NRed ,
     D   NGreen   =P   cGreen   −P   NGreen , 
     D   NBlue   =P   cBlue   −P   NBlue ; 
   checking if D NRed =D NGreen  and D NRed =D NBlue  and the value of D NRed  lies between 1 and 8; then
 updating the sign bit map with one; 
 updating the component difference map with D NRed ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) and updating the method map with method (m 06 ), else 
 checking if D NRed =D NGreen  and D NRed =D NBlue  and the value of D NRed  lies between −1 and −8; then 
 updating the sign bit map with zero; 
 updating the component difference map with D NRed ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) and updating the method map with method (m 06 ), else 
   
 i) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 07 , wherein the method m 07  comprises the steps of:
 calculating D NRed , D NGreen  and D NBlue  wherein:
     D   NRed   =P   cRed   −P   AvgRed   +P   ind , 
     D   NGreen   =P   cGreen   −P   AvgGreen   +P   ind , 
     D   NBlue   =P   cBlue   −P   AvgBlue   +P   ind ; 
 
 checking if D NRed =D NGreen  and D NRed =D NBlue  and the value of D NRed  lies between 1 and 8;
 updating the sign bit map with one; 
 updating the component difference map with D NRed ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) and updating the method map with method (m 07 ); or else 
 checking if D NRed =D NGreen  and D NRed =D NBlue  and the value of D NRed  lies between −1 and −8; 
 updating the sign bit map with zero; 
 updating the component difference map with D NRed ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) and updating the method map with method (m 07 ), else 
 
 
 j) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 08 , wherein the method m 08  further comprises the steps of:
 identifying P PrevRed , P PrevGreen  and P PrevBlue  wherein:
 P PrevRed =red component of the previous pixel of P N  along the horizontal scanline, 
 P PrevGreen =green component of the previous pixel of P N  along the horizontal scanline, 
 P PrevBlue =blue component of the previous pixel of P N  along the horizontal scanline; 
 
 checking if P cRed =P PrevRed +P ind  and P cGreen =P PrevGreen +P ind  and P cBlue =P PrevBlue +P ind  and the indices of the neighboring pixels (P N ) are not equal; then
 updating the sign bit map with one; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 08 , else 
 checking if P cRed =P PrevRed −P ind  and P cGreen =P PrevGreen −P ind  and P cBlue =P PrevBlue −P ind  and the indices of the neighboring pixels (P N ) are not equal; 
 updating the sign bit map with zero; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 08 , else 
 
 
 k) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 09 , wherein the method m 09  further comprises the steps of:
 checking if P cRed =P PrevRed +P ind +P DiffRed  and P cGreen =P PrevGreen +P ind +P DiffGreen  and P cBlue =P PrevBlue +P ind +P DiffBlue  and the indices of the neighboring pixels (P N ) are not equal then;
 updating the sign bit map with one; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 09 ; or else 
 checking if P cRed =P PrevRed =P ind −P DiffRed  and P cGreen =P PrevGreen −P ind −P DiffGreen  and P cBlue =P PrevBlue −P ind −P DiffBlue  and the indices of the neighboring pixels (P N ) are not equal then; 
 updating the sign bit map with zero; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 09 ; else 
 
 
 l) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 10 , wherein the method m 10  further comprises the steps of:
 checking if P cRed =P NRed −P ind  and P cGreen =P NGreen +P ind  and P cBlue =P NBlue  P ind  and the indices of the neighboring pixels (P N ) are not equal then;
 updating the sign bit map with one; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 10 , or else 
 checking if P cRed =P NRed −P ind  and P cGreen =P NGreen −P ind  and P cBlue =P NBlue −P ind  and the indices of the neighboring pixels (P N ) are not equal then; 
 updating the sign bit map with zero; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 10 , else 
 
 
 m) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 12 , wherein the method m 11  further comprises the steps of:
 identifying P NPrevRed , P NPrevGreen  and P NPrevBlue  wherein:
     P   NPrevRed   =P   (NRed−Pind) , 
     P   NPrevGreen   =P   (NGreen−Pind) , 
     P   NPrevBlue   =P   (NBlue−Pind) ; 
 
 checking if P cRed =P NPrevRed +P ind  and P cGreen =P NPrevGreen +P ind  and P cBlue =P NPrevBlue +P ind  and the indices of the neighboring pixels (P N ) are not equal then;
 updating the sign bit map with one; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 11 , else 
 checking if P cRed =P NPrevRed −P ind  and P CGreen =P NPrevGreen −P ind  and P cBlue =P NPrevBlue −P ind  and the indices of the neighboring pixels (P N ) are not equal then; 
 updating the sign bit map with zero; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 11 ; else 
 
 
 n) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 12 , wherein the method m 12  further comprises the steps of:
 identifying P CPrevred , P CPrevgreen , P CPrevblue , wherein:
 P CPrevred =red component of the previous pixel of P c , 
 P CPrevgreen =green component of the previous pixel of P c , 
 P CPrevblue =blue component of the previous pixel of P c ; 
 
 calculating D CPrevDiffRed , D CPrevDiffBlue  and D CPrevDiffGreen  wherein:
     D   CPrevDiffRed   =P   cRed   −P   CPrevred , 
     D   CPrevDiffBlue   =P   cBlue   −P   CPrevblue , 
     D   CPrevDiffGreen   =P   cGreen   −P   cPrevGreen ; 
 
 checking if D CPrevDiffRed , D CPrevDiffBlue  and D CPrevDiffGreen  lies between 1 and 8; then
 updating the sign bit map with one; 
 updating the component difference map with D CPrevDiffRed , D CPrevDiffBlue  and 
 D CPrevDiffGreen ; 
 updating the method map with method m 12 , or else 
 checking if D CPrevDiffRed , D CPrevDiffBlue  and D CPrevDiffGreen  lies between −1 and −8 then 
 updating the sign bit map with zero; 
 updating the component difference map with D CPrevDifed , D CPrevDiffBlue  and D CPrevDiffGreen ; 
 updating the method map with method m 12 , else 
 
 
 o) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method M 13 , wherein the method m 13  further comprises the steps of:
 calculating D DiffRed , D DiffGreen  and D DiffBlue , wherein:
     D   DiffRed   =P   cRed   −P   NRed   +P   ind , 
     D   DiffBlue   =P   cBlue   −P   NBlue   +P   ind , 
     D   DiffGreen   =P   cGreen   −P   NGreen   +P   ind ; 
 
 checking if D DiffRed , D DiffBlue  and D DiffGreen  lies between 1 and 8;
 updating the sign bit map with one; 
 updating the component difference map with D DiffRed , D DiffBlue  and D DiffGreen ; 
 updating the neighbor map with the corresponding neighbor pixel (P N ); 
 updating the method map with the corresponding method m 13 , else 
 checking if D DiffRed , D DiffBlue  and D DiffGreen  lies between −1 and −8; 
 updating the sign bit element with zero; 
 updating the component difference map with D DiffRed , D DiffBlue  and D DiffGreen ; 
 updating the neighbor map with the corresponding neighbor pixel (P N ); 
 updating the method map with the corresponding method m 13 , else 
 
 
 p) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 14 , wherein the method m 14  further comprises the steps of:
 calculating D AvgDiffRed , D AvgDiffGreen  and D AvgDiffBlue , wherein:
     D   AvgDiffRed   =P   cRed   −P   AvgRed , 
     D   AvgDiffGreen   =P   cGreen   −P   AvgGreen , 
     D   AvgDiffBlue   =P   cBlue   −P   AvgBlue ; 
 checking if D AvgDiffRed  and D AvgDiffGreen  and D AvgDiffBlue  lies between 1 and 8; 
 updating the sign bit map with one; 
 updating the component difference map with D AvgDiffRed , D AvgDiffGreen  and D AvgDiffBlue ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ); 
 updating the method map with method m 14 , else 
 checking if D AvgDiffRed  and D AvgDiffGreen  and D AvgDiffBlue  lies between −1 and −8; 
 updating the sign bit element with zero; 
 updating the component difference map with D AvgDiffRed , D AvgDiffGreen  and D AvgDiffBlue ; 
 updating the neighbor map with corresponding neighboring pixel (P N ); 
 updating the method map with method m 14 , else 
 
 
 q) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 15 , wherein the method m 15  further comprises the steps of:
 calculating D NDiffRed , D NDiffGreen  and D NDiffBlue , wherein:
     D   NDiffRed   =P   cRed   −P   NRed , 
     D   NDiffGreen   =P   cGreen   −P   NGreen , 
     D   NDiffBlue   =P   cBlue   −P   NBlue ; 
 
 checking if D NDiffRed  and D NDiffGreen  and D NDiffBlue  lies between 1 and 8;
 updating the sign bit map with one; 
 updating the component difference map with D NDiffRed  and D NDiffGreen  and D NDiffBlue ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 15 ; or else 
 checking if D NDiffRed  and D NDiffGreen  and D NDiffBlue  lies between −1 and −8; 
 updating the sign bit map with zero; 
 updating the component difference map with D NDiffRed  and D NDiffGreen  and D NDiffBlue ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method m 15 , else 
 
 
 r) checking if the RGB components of the pixel (P c ) to be compressed is predictable using the RGB components of the neighboring pixels (P N ) by using method m 16 , wherein the method m 16  further comprises the steps of:
 calculating D NDiffRed , D NDiffGreen  and D NDiffBlue  as:
     D   NDiffRed   =P   cRed   −P   NRed   +P   ind , 
     D   NDiffGreen   =P   cGreen   −P   NGreen   +P   ind , 
     D   NDiffBlue   =P   cBlue   −P   NBlue   +P   ind ; 
 
 checking if D NDiffRed  and D NDiffGreen  and D NDiffBlue  lies between 1 and 8;
 updating the sign bit map with one; 
 updating the component difference map with D NDiffRed , D NDiffGreen  and D NDiffBlue ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method (m 16 ), else 
 checking if D NDiffRed  and D NDiffGreen  and D NDiffBlue  lies between −1 and −8; 
 updating the sign bit element with zero; 
 updating the component difference map with D NDiffRed , D NDiffGreen  and D NDiffBlue ; 
 updating the neighbor map with the corresponding neighboring pixel (P N ) for each Red, Green and Blue component; 
 updating the method map with method (m 16 ). 
 
 
 
     
     
         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 (P c ) to be compressed is predictable using any one of the methods (m 01 -m 16 ), else updating the compression map with zero. 
     
     
         6 . The method as claimed in  claim 4 , wherein the neighboring pixels (P N ) are taken within a cycle of four reference neighboring pixels preceding the pixel (P c ) 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 ‘P N ’ that is used for predicting the RGB component of the pixel ‘P c ’ to be compressed. 
     
     
         8 . The method as claimed in  claim 4 , wherein the method map is the bit wise binary representation of method (m 01 -m 16 ) denoting how each pixel P c  to be compressed is related to its neighboring pixel ‘P N ’. 
     
     
         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 (m 01 -m 16 ). 
     
     
         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 (P c ) to be compressed and the RGB components of the neighboring pixels (P N ). 
     
     
         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.

Join the waitlist — get patent alerts

Track US2014199052A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.