IP Library Granted Patent US 10,701,376
Granted Patent B2
US 10,701,376 · App. 16/027,759 · Granted Jun 30, 2020

Resilient image compression and decompression

Inventors: Christopher J. Hillar (San Francisco, CA); Ram Mehta (San Francisco, CA); Kilian Koepsell (San Francisco, CA); Charles Garfinkle (Ottawa, CA)
Assignee: AWECOM, INC.
H04N19/33H04N11/02H04N19/423H04N19/60
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 10,701,376
App. No.
16/027,759
Granted
Jun 30, 2020
Kind
B2
Abstract

An image processing method includes selecting an image in fixed storage of a computer and loading the selected image into memory of the computer. The method further includes representing the loaded image by a processor of the computer in the memory as an initial two-dimensional array of pixel values. Thereafter, the initial two-dimensional array of pixel values may be transformed into a hierarchy of progressively axially decremented two-dimensional arrays of signs and a pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of signs. Finally, each of the two-dimensional arrays of signs and each pair of one-dimensional values may be stored in the fixed storage as a compressed form of the selected image.

Claims (45)

1. An image processing method comprising:

selecting an image in fixed storage of a computer;

loading the selected image into memory of the computer;

representing the loaded image by a processor of the computer in the memory as an initial two-dimensional array of pixel values;

transforming the initial two-dimensional array of pixel values into a hierarchy of progressively axially decremented two-dimensional arrays of signs each of positive or negative, and a pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of signs by submitting the initial two-dimensional array to a recursive encoding operation that receives as input, a grid of specified dimension and that produces as output, on condition that the grid has a specified dimension of 1×1, a serialized form of the grid, but on condition that the grid has a specified dimension larger than 1×1, a concatenation of two encoded grids of a dimensionality half that of the specified dimension, and a bit stream representative of a sign array accounting for element-wise signs of positive or negative for an absolute value of a sum of the grid and an up-sampled form of a negated form of a decoded form of an output produced by the encoding operation receiving as input a down-sampled form of the grid, the concatenation after all recursive calls to the encoding operation have unwound, defining the hierarchy; and,

storing in the fixed storage each of the two-dimensional arrays of signs and each pair of one-dimensional values as a compressed form of the selected image.

2. The method of claim 1 , wherein the pixel values include at least one color intensity value.

3. The method of claim 2 , wherein each color intensity value is a combination of three eight-bit intensity values of a color space.

4. The method of claim 1 , further comprising:

loading the hierarchy into the memory of the computer; and,

generating a reconstructed two-dimensional array of pixel values from the hierarchy of progressively axially decremented two-dimensional arrays of signs and the pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of sign.

5. The method of claim 1 , further comprising:

loading the hierarchy into the memory of the computer; and,

generating a reconstructed two-dimensional array of pixel values from the hierarchy of progressively axially decremented two-dimensional arrays of signs and the pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of sign by submitting the hierarchy defined by the concatenation to a recursive decoding operation that receives as input, a data stream indicating a dimension, and that produces as output, on condition that the indicated dimension is 1×1, a de-serialized form of the data stream, but on condition that the indicated dimension is greater than 1×1, a grid of pixel values resulting from a summation of (1) an up-sampled form of a first output grid produced by the decoding operation receiving as input a first portion of the de-concatenated concatenation that is of a dimension half that of the indicated dimension, with (2) a product of a deserialized second sign array portion of the de-concatenated concatenation and an up-sampled form of a third output grid produced by the decoding operation receiving as input a third portion of the de-concatenated concatenation that is of a dimension half that of the indicated dimension, the summation after all recursive calls to the decoding operation have unwound, defining the reconstructed two-dimensional array of pixel values.

6. An image processing data processing system comprising:

a host computer with memory and at least one central processing unit (CPU);

fixed storage storing an image; and,

an image processing module comprising computer program instructions executing in the memory of the computer and adapted to perform:

selecting an image in the fixed storage;

loading the selected image into the memory;

representing the loaded image in the memory by the CPU as an initial two-dimensional array of pixel values;

transforming by the CPU the initial two-dimensional array of pixel values into a hierarchy of progressively axially decremented two-dimensional arrays of signs each of positive or negative, and a pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of signs by submitting the initial two-dimensional array to a recursive encoding operation that receives as input, a grid of specified dimension and that produces as output, on condition that the grid has a specified dimension of 1×1, a serialized form of the grid, but on condition that the grid has a specified dimension larger than 1×1, a concatenation of two encoded grids of a dimensionality half that of the specified dimension, and a bit stream representative of a sign array accounting for element-wise signs of positive or negative for an absolute value of a sum of the grid and an up-sampled form of a negated form of a decoded form of an output produced by the encoding operation receiving as input a down-sampled form of the grid, the concatenation after all recursive calls to the encoding operation have unwound, defining the hierarchy; and,

storing by the CPU in the fixed storage each of the two-dimensional arrays of signs and each pair of one-dimensional values as a compressed form of the selected image.

7. The system of claim 6 , wherein the pixel values include at least one color intensity value.

8. The system of claim 7 , wherein each color intensity value is a combination of three eight-bit intensity values of a color space.

9. The system of claim 6 , further comprising:

loading the hierarchy into the memory; and,

generating by the CPU in the memory a reconstructed two-dimensional array of pixel values from the hierarchy of progressively axially decremented two-dimensional arrays of signs and the pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of sign.

10. The system of claim 6 , further comprising:

loading the hierarchy into the memory; and,

generating by the CPU in the memory a reconstructed two-dimensional array of pixel values from the hierarchy of progressively axially decremented two-dimensional arrays of signs and the pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of sign by submitting the hierarchy defined by the concatenation to a recursive decoding operation that receives as input, a data stream indicating a dimension, and that produces as output, on condition that the indicated dimension is 1×1, a de-serialized form of the data stream, but on condition that the indicated dimension is greater than 1×1, a grid of pixel values resulting from a summation of (1) an up-sampled form of a first output grid produced by the decoding operation receiving as input a first grid portion of the de-concatenated concatenation that is of a dimension half that of the indicated dimension, with (2) a product of a deserialized second sign array portion of the de-concatenated concatenation and an up-sampled form of a third output grid produced by the decoding operation receiving as input a third portion of the de-concatenated concatenation that is of a dimension half that of the indicated dimension, the summation after all recursive calls to the decoding operation have unwound, defining the reconstructed two-dimensional array of pixel values.

11. A computer program product for image processing, the computer program product including a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a device to cause the device to perform a method including:

selecting an image in fixed storage of a computer;

loading the selected image into memory of the computer;

representing the loaded image by a processor of the computer in the memory as an initial two-dimensional array of pixel values;

transforming the initial two-dimensional array of pixel values into a hierarchy of progressively axially decremented two-dimensional arrays of signs each of positive or negative, and a pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of signs by submitting the initial two-dimensional array to a recursive encoding operation that receives as input, a grid of specified dimension and that produces as output, on condition that the grid has a specified dimension of 1×1, a serialized form of the grid, but on condition that the grid has a specified dimension larger than 1×1, a concatenation of two encoded grids of a dimensionality half that of the specified dimension, and a bit stream representative of a sign array accounting for element-wise signs of positive or negative for an absolute value of a sum of the grid and an up-sampled form of a negated form of a decoded form of an output produced by the encoding operation receiving as input a down-sampled form of the grid, the concatenation after all recursive calls to the encoding operation have unwound, defining the hierarchy; and,

storing in the fixed storage each of the two-dimensional arrays of signs and each pair of one-dimensional values as a compressed form of the selected image.

12. The computer program product of claim 11 , wherein the pixel values include at least one color intensity value.

13. The method of claim 12 , wherein each color intensity value is a combination of three eight-bit intensity values of a color space.

14. The computer program product of claim 12 , further comprising:

loading the hierarchy into the memory of the computer; and,

generating a reconstructed two-dimensional array of pixel values from the hierarchy of progressively axially decremented two-dimensional arrays of signs and the pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of sign.

15. The computer program product of claim 11 , further comprising:

loading the hierarchy into the memory of the computer; and,

generating a reconstructed two-dimensional array of pixel values from the hierarchy of progressively axially decremented two-dimensional arrays of signs and the pair of one-dimensional values for each 2×2 array of signs amongst the decremented two-dimensional arrays of sign by submitting the hierarchy defined by the concatenation to a recursive decoding operation that receives as input, a data stream indicating a dimension, and that produces as output, on condition that the indicated dimension is 1×1, a de-serialized form of the data stream, but on condition that the indicated dimension is greater than 1×1, a grid of pixel values resulting from a summation of (1) an up-sampled form of a first output grid produced by the decoding operation receiving as input a first portion of the de-concatenated concatenation that is of a dimension half that of the indicated dimension, with (2) a product of a deserialized second sign array portion of the de-concatenated concatenation and an up-sampled form of a third output grid produced by the decoding operation receiving as input a third portion of the de-concatenated concatenation that is of a dimension half that of the indicated dimension, the summation after all recursive calls to the decoding operation have unwound, defining the reconstructed two-dimensional array of pixel values.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2024
From: AWECOM, INC.
To: HILLAR, CHRIS
Reel/Frame 066475/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2018
From: HILLAR, CHRISTOPHER J.; MEHTA, RAM; KOEPSELL, KILIAN; GARFINKLE, CHARLES
To: AWECOM, INC.
Reel/Frame 046271/0080 →
Continuity (1)
Related Publication 20200014942A1 · Jan 9, 2020