# US 12,604,006 B2 · Compression image containers for compressing images

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,604,006 B2
- Document ID: US12604006B2
- Status: Granted
- Kind: B2
- Application number: 18/539,807
- Filed: 2023-12-14
- Published: 2025-06-19
- Granted: 2026-04-14
- Earliest claimed: 2023-12-14
- Assignees: NetApp, Inc.
- Applicants: NetApp Inc.
- Inventors: Anton Krug
- Web page: https://patentgrep.com/patent/US12604006B2

## CPC

- H04N 19/127: Prioritisation of hardware or computational resources
- H04N 19/12: Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N 19/136: Incoming video signal characteristics or properties
- H04N 19/154: Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion (use of rate-distortion criteria H04N19/147)
- H04N 19/157: Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N 19/172: the region being a picture, frame or field
- H04N 19/184: the unit being bits, e.g. of the compressed video stream
- H04N 19/186: the unit being a colour or a chrominance component
- H04N 19/187: the unit being a scalable video layer
- H04N 19/30: using hierarchical techniques, e.g. scalability (H04N19/63 takes precedence)
- H04N 19/423: characterised by memory arrangements (H04N19/433 takes precedence)
- H04N 19/46: Embedding additional information in the video signal during the compression process (H04N19/517, H04N19/68, H04N19/70 take precedence)
- H04N 19/80: Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation (H04N19/635, H04N19/86 take precedence)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Techniques are provided for compressing images using compression image containers. Many user devices, such as smart phones, incorporate cameras that be utilized by users to capture photos. The photos can be either locally stored on a user device or uploaded to cloud storage. Managing the storage of a vast amount of photos is cumbersome and expensive where trillions of photos could be stored within the cloud storage. The techniques provided herein are capable of compressing images using compression image containers in order to significantly reduce storage consumed when storing images with similar or duplicate image information. Similar images are compressed together within the same compression image container for improved compression and reduced storage.

## Claims

### Claim 1

A method, comprising:
adding images into a processing queue for subsequent compression into compression image containers; and
in response to detecting a processing trigger event, processing the images within the processing queue, wherein for each image within the processing queue:
evaluating the image to identify a compression image container into which the image is to be compressed, wherein heuristics are used to select an existing compression image container or create a new compression image container as the compression image container; and
compressing the image into the compression image container by:
determining a service level specifying accuracy and size constraints for the image; and
compressing the image within the compression image container according to the service level.

### Claim 2 (depends on 1)

The method of claim 1, wherein the determining the service level comprises:
selecting the service level from a plurality of service levels that include a first service level specifying a fully compressed image mode and a first accuracy per channel, a second service level specifying a lossless image mode and a second accuracy per channel, and a third service level specify a partially lossless image mode and a third accuracy per channel.

### Claim 3 (depends on 1)

The method of claim 1, comprising:
utilizing date-time heuristics to identify the compression image container based upon the compression image container storing images that are created within a timespan of the image being created.

### Claim 4 (depends on 1)

The method of claim 1, wherein images are stored within a plurality of compression image containers, and wherein the method comprises:
storing a first compression level setting within a first compression image container of the plurality of compression image containers, wherein the first compression level setting is associated with a first compression used to compress the first compression image container;
storing a second compression level setting within a second compression image container of the plurality of compression image containers, wherein the second compression level setting is associated with a second compression used to compress the second compression image container; and
applying the second compression level setting for one or more additional compression image containers created from the second compression image container.

### Claim 5 (depends on 1)

The method of claim 1, comprising:
receiving a modification for the image; and
in response to determining that the image is frequently referenced by one or more other images, retaining an original compressed copy of the image within the compression image container and creating a new copy of the image upon which the modification is applied.

### Claim 6 (depends on 1)

The method of claim 1, comprising:
receiving a delete operation targeting the image;
in response to determining that a first compression level was used to compress the image, logically deleting the image and physically retaining the image in storage; and
in response to determining that a second compression level was used to compress the image, logically and physically deleting the image.

### Claim 7 (depends on 1)

The method of claim 1, wherein the compression image container is constrained to storing up to an upper limit of images, and wherein the compressing the image comprises:
searching previously added images within the compression image container for a best fit image as a reference; and
compressing the image based upon the reference.

### Claim 8 (depends on 1)

The method of claim 1, comprising:
adding metadata, comprising at least one of decoding information, accuracy information, a speed setting, or a global setting, to the image within the compression image container, wherein the global setting is for a compression feature used to compress the image; and
utilizing the metadata to provide access to the image stored within the compression image container.

### Claim 9

A computing device, comprising:
a memory comprising machine executable code; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the machine to:
identify images to compress into compression image containers; and
process the images, wherein for each image:
evaluate the image to identify a compression image container into which the image is to be compressed, wherein heuristics are used to select an existing compression image container or create a new compression image container as the compression image container; and
compress the image into the compression image container by:
determining a service level specifying accuracy and size constraints for the image; and
compressing the image within the compression image container according to the service level.

### Claim 10 (depends on 9)

The computing device of claim 9, wherein the machine executable code causes the machine to:
apply one or more adjustment layers to the image to incrementally recreate a reconstructed image of the image.

### Claim 11 (depends on 9)

The computing device of claim 9, wherein the machine executable code causes the machine to:
utilize an adjustment layer to add or remove an existing image within the compression image container to the image in order to create a reconstructed image of the image.

### Claim 12 (depends on 9)

The computing device of claim 9, wherein the machine executable code causes the machine to:
apply an adjustment layer to the image in order to create a reconstructed image of the image, wherein the adjustment layer is applied to perform at least one of geometry changes or transformations for creating the reconstructed image.

### Claim 13 (depends on 9)

The computing device of claim 9, wherein the machine executable code causes the machine to:
apply a procedural adjustment layer to the image in order to create a reconstructed image of the image, wherein the procedural adjustment layer is applied to execute an algorithm or script for creating the reconstructed image.

### Claim 14 (depends on 9)

The computing device of claim 9, wherein the machine executable code causes the machine to:
apply a reference from the image to one or more other images within the compression image container that have a smaller index than the image, wherein the image references itself with an adjustment layer and the one or more other images.

### Claim 15 (depends on 9)

The computing device of claim 9, wherein the machine executable code causes the machine to:
apply a reference from the image to itself to reconstruct at least one of shadows, reflections, or other objects based upon a transfer adjustment layer.

### Claim 16 (depends on 9)

The computing device of claim 9, wherein the machine executable code causes the machine to:
increase a bit-depth resolution for the image;
smooth dithering into color values using high-frequency low-amplitude filtering;
compress the image according to a compression rate;
scale down the image from a higher bit-depth to a lower bit-depth to generate a lower bit-depth image; and
execute a script to handle error deltas and apply alterations to the lower bit-depth image.

### Claim 17

A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:
evaluate, utilizing heuristics, a first image to select a compression image container from a plurality of existing compression image containers;
compress the first image into the compression image container by:
determining a first service level specifying constraints for the first image; and
compressing the first image with one or more other images within the compression image container according to the service level;
evaluate, utilizing the heuristics, a second image to determine that a new compression image container is to be created for compressing the second image into the new compression image container; and
create the new compression imagine container and compress the second image into the new compression image container.

### Claim 18 (depends on 17)

The non-transitory machine readable medium of claim 17, wherein the instructions cause the machine to:
increase a bit-depth resolution for the first image.

### Claim 19 (depends on 18)

The non-transitory machine readable medium of claim 18, wherein the instructions cause the machine to:
smooth dithering into color values using high-frequency low-amplitude filtering; and
compress image according to a compression rate.

### Claim 20 (depends on 19)

The non-transitory machine readable medium of claim 19, wherein the instructions cause the machine to:
scale down the image from a higher bit-depth to a lower bit-depth to generate a lower bit-depth image; and
execute a script to handle error deltas and apply alterations to the lower bit-depth image.
