IP Library Granted Patent US 11,501,466
Granted Patent B2
US 11,501,466 · App. 16/468,457 · Granted Nov 15, 2022

Compressed versions of image data based on relationships of data

Inventors: Jordi Arnabat Benedicto (Barcelona, ES); Jordi Vilar Benito (Barcelona, ES)
Assignee: Hewlett-Packard Development Company, L.P.
G06T9/00H03M7/3066H03M7/3071H03M7/3077H03M7/46H03M7/6011
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,501,466
App. No.
16/468,457
Granted
Nov 15, 2022
Kind
B2
Abstract

Methods of image compression are described. A stream of color image data is filtered with a prediction routine using a pixel neighborhood. The filtered stream of color image data is sorted with a block sorting routing. A version of the color image data is compressed based on the sorted and filtered stream of color image data.

Claims (60)

1. An image processing system comprising:

a prefilter engine to generate, based on color image data, a stream of symbol patterns that can be analyzed sequentially, wherein a pixel representation in the stream includes:

an index to a neighbor pixel of a target pixel, the target pixel represented by the pixel representation;

a channel mask of the target pixel with reference to the neighbor pixel; and

a sequence of non-null differences between the selected neighbor and the target pixel;

a sort engine to perform, on the stream, a block sorting routine that uses relationships of data within the stream by factoring the input into a non-increasing sequence of words; and

a compression engine to provide a version of the color image data compressed based on the relationships of data.

2. The system of claim 1 , wherein:

the target image area is a pixel;

the prefilter engine is to:

classify a plurality of neighbor pixels in a neighborhood of the target pixel;

rank the plurality of neighbor pixels;

select, from the plurality of neighbor pixels, the neighbor pixel that has a minimum number of components different with respect to the target pixel; and

encode the index of the selected neighbor pixel, the channel mask and the sequence of non-null differences into the pixel representation; and

the sorted stream is a nonempty string that is smaller in lexicographic order than all of its rotations.

3. The system of claim 2 , wherein a bit of the mask represents a color plane of the target pixel being compressed with respect to the selected neighbor and the prefilter engine:

determines a number of component matches of the neighbor pixel to the target pixel;

identifies a number of component differences of the non-matching components between the target pixel and the selected neighbor pixel;

generates a mask using the identified number of component differences; and

generates a sequence of non-null differences between the target pixel and the selected neighbor pixels by removing zeros.

4. The system of claim 1 , wherein:

the stream generated by the prefilter engine is a spatially low correlated sequence of bytes where both the inter-pixel correlations and intra-pixel correlations have been used to encode neighboring pixel changes of neighbor image region data.

5. The system of claim 1 , wherein:

the block sorting routine is bijective and divides the stream into a series of words compared to all rotations;

the color image data is chunky encoded in tiles arranged as a first number rows of a second number of pixels; and

a tile size is tuned for a memory bounded environment or a compression demand above a threshold.

6. The system of claim 1 , further comprising:

a postfilter engine to perform a filter routine based on the relationships of data associated with the block sorting operation.

7. The system of claim 6 , wherein:

the sorting routine includes a Burrow-Wheeler Transform operation; and

the filter routine includes a move-to-front transform operation with run-length encoding.

8. A non-transitory computer-readable storage medium comprising a set of instructions executable by a processor resource to:

convert input image data to a planar representation of a target image region based on previously-scanned neighbor image region data, each pixel encoded as a character sequence with a head byte representing an index of a reference neighbor and a channel mask;

generate a stream with frequency changes that achieve a non-increasing threshold by rearrangement of each of the character sequences into a sorted lexicographic order where the rearranged character sequence is smallest of the rotations of the character sequences;

filter the stream based on a data relationship among the character sequences; and

provide a compressed version of the input image data using the stream filtered based on the data relationship among the character sequences.

9. The medium of claim 8 , wherein the set of instructions is executable by the processor resource to:

divide the input image data into tiles arranged as a first number of rows of pixels and a second number of columns of pixels;

select a neighbor pixel that has already been scanned and has a minimum number of components different from the other neighbor pixels; and

encode the index of the selected neighbor pixel and the channel mask with non-null delta into the head byte of the particular character sequence.

10. The medium of claim 9 , wherein the set of instructions is executable by the processor resource to:

perform a bijective Burrows-Wheeler transform by factoring input into a non-increasing sequence of Lyndon words;

generate encoded sequences using a run-length-encoding routine having an unconstrained length limitation;

perform a move-to-front transform on the generated encoded sequences; and

perform an entropy encoding routine on the generated encoded sequences.

11. A method of image compression comprising:

filtering a stream of color image data with a prediction routine that uses a neighborhood of a pixel to encode a color difference as a sequence including the index of the reference neighbor and a mask of channels with non-null delta, the neighborhood including pixels already scanned;

sorting the filtered stream of color image data with a block sorting routine that shuffles data in order to decrease a frequency of changes in an output stream than in the filtered stream by factoring input into a non-increasing sequence of Lyndon words; and

providing a version of the color image data compressed based on a data relationship associated with the frequency of changes.

12. The method of claim 11 , comprising:

filtering the sorted stream of color image data with a filter routine based on the correlation level associated with the block sorting routine.

13. The method of claim 12 , comprising:

dividing input color image data into tiles arranged as a first number rows of a second number of pixels;

generating the stream of color image data from the tiles.

14. The method of claim 13 , comprising:

determining the first number of rows and the second number of pixels based on a compression level and a memory bound level.

15. The method of claim 13 , comprising:

scanning pixels from left-to-right and top-to-bottom; and

selecting a neighbor pixel in the neighborhood as a reference neighbor when the neighbor pixel has a minimum absolute difference of the neighborhood,

wherein the neighborhood of a pixel only includes pixels already scanned.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2019
From: HP PRINTING AND COMPUTING SOLUTIONS, S.L.U.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 050035/0758 →
Continuity (1)
Related Publication 20210134017A1 · May 6, 2021