Lossless color image compression adaptively using spatial prediction or inter-component prediction
AssigneeEMC Corporation
InventorsAlexey Valentinovich Romanovskiy, Marat Ravilevich Gilmutdinov, Nikolay Dmitrievich Egorov, Victor Anatolievich Yastrebov, Dmitry Vadimovich Novikov, Roman Alexandrovich Sokolovskiy
Life of this patent
Estimating the term…
Abstract
An improved lossless image compression technique involves adaptively selecting between spatial prediction and inter-component prediction techniques depending on which allows better results for any given component of a digital image pixel.
Claims14
A method performed by a computing device, the method comprising:
- receiving an image file, the image file having a set of pixels arranged in a grid, each pixel of the set of pixels having a plurality of color components;
- for each pixel of a subset of the set of pixels:
- for a first color component of the plurality of color components:
- predicting a value of the first color component of that pixel using a first prediction technique to yield a first predicted color value, the first prediction technique including median edge detection;
- and
- computing a difference between the first predicted color value and the value of the first color component to yield a first error value for that pixel;
- for a second color component of the plurality of color components, the second color component being distinct from the first color component:
- predicting a value of the second color component of that pixel using the first prediction technique to yield a second predicted color value;
- predicting the value of the second color component of that pixel using a second prediction technique to yield a third predicted color value, the second prediction technique lacking median edge detection, the second prediction technique utilizing inter-component prediction with respect to the first color component;
- selecting whichever of the second predicted color value and the third predicted color value is closer to the value of the second color component to yield a selected predicted color value;
- and
- computing a difference between the selected predicted color value and the value of the second color component to yield a second error value for that pixel;
- and
- encoding the first error value for that pixel and the second error value for that pixel in a compressed color image output stream;
- and
- writing the compressed color image output stream to persistent storage as an output compressed image file.
A data storage apparatus comprising:
- a host interface;
- memory;
- persistent storage;
- and
- a processor, the processor being configured to perform the operations of:
- receiving an image file into memory from the host interface, the image file having a set of pixels arranged in a grid, each pixel of the set of pixels having a plurality of color components;
- for each pixel of a subset of the set of pixels:
- for a first color component of the plurality of color components:
- predicting a value of the first color component of that pixel using a first prediction technique to yield a first predicted color value, the first prediction technique including median edge detection;
- and
- computing a difference between the first predicted color value and the value of the first color component to yield a first error value for that pixel;
- for a second color component of the plurality of color components, the second color component being distinct from the first color component:
- predicting a value of the second color component of that pixel using the first prediction technique to yield a second predicted color value;
- predicting the value of the second color component of that pixel using a second prediction technique to yield a third predicted color value, the second prediction technique lacking median edge detection, the second prediction technique utilizing inter-component prediction with respect to the first color component;
- selecting whichever of the second predicted color value and the third predicted color value is closer to the value of the second color component to yield a selected predicted color value;
- and
- computing a difference between the selected predicted color value and the value of the second color component to yield a second error value for that pixel;
- and
- encoding the first error value for that pixel and the second error value for that pixel in a compressed color image output stream;
- and
- writing the compressed color image output stream to the persistent storage as output compressed image file.
A computer program product comprising a non-transitory computer-readable storage medium storing a set of instruction, which, when executed by a computer, cause the computer to perform the following operations:
- receiving an image file, the image file having a set of pixels arranged in a grid, each pixel of the set of pixels having a plurality of color components;
- for each pixel of a subset of the set of pixels:
- for a first color component of the plurality of color components:
- predicting a value of the first color component of that pixel using a first prediction technique to yield a first predicted color value, the first prediction technique including median edge detection;
- and
- computing a difference between the first predicted color value and the value of the first color component to yield a first error value for that pixel;
- for a second color component of the plurality of color components, the second color component being distinct from the first color component:
- predicting a value of the second color component of that pixel using the first prediction technique to yield a second predicted color value;
- predicting the value of the second color component of that pixel using a second prediction technique to yield a third predicted color value, the second prediction technique lacking median edge detection, the second prediction technique utilizing inter-component prediction with respect to the first color component;
- selecting whichever of the second predicted color value and the third predicted color value is closer to the value of the second color component to yield a selected predicted color value;
- and
- computing a difference between the selected predicted color value and the value of the second color component to yield a second error value for that pixel;
- and
- encoding the first error value for that pixel and the second error value for that pixel in a compressed color image output stream;
- and
- writing the compressed color image output stream to persistent storage as an output compressed image file.
Dependencies are inferred from the claim text.