IP Library Granted Patent US 8,217,952
Granted Patent B2
US 8,217,952 · App. 12/323,564 · Granted Jul 10, 2012

Techniques for caching images

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 8,217,952
App. No.
12/323,564
Granted
Jul 10, 2012
Kind
B2
Abstract

Techniques for caching images are presented. A matrix of pixel values represents an image. A diagonal of the matrix is used as an array of numbers representing an index value. The index value is compared to existing index values housed in a cache. When no match is present, the index value is inserted into the cache and the corresponding image associated with the inserted index value acquired. When a match is present no action is taken on the index values of the cache.

Claims (22)

1. A computer-implemented method that uses a processor to perform the processing of:

applying a discrete cosine transform (DCT) algorithm to images;

diagonally traversing each resultant matrix acquired from applying the DCT algorithm to each image to acquire an index value for each image; and

populating a cache with the index values, wherein each index value links to a particular image to which it relates for retrieval from the cache, and wherein when a new image is to be subsequently processed to the cache, a new index value is supplied for the new image and then the cache is searched for a match between the new index value and one of the index values already present in the cache, and assembling the index values in a balanced k-dimensional tree (KD tree) format within the cache, and using a nearest neighbor algorithm to determine the match for the new index value and to acquire a distance metric between the match and the new index value and when the distance metric is more than a threshold value adding the new index value to the KD tree within the cache and acquiring the new image for local linking to the cache.

2. The method of claim 1 , wherein applying further includes traversing the cache that originally indexed the images via a hashing technique using hashing values to acquire each of the images for which the DCT algorithm is applied.

3. The method of claim 1 , wherein applying further includes acquiring the images in a compressed format.

4. The method of claim 1 , wherein diagonally traversing further includes representing each index value as an array of numbers that depict a particular image to which it relates in a frequency domain.

5. The method of claim 1 , wherein populating further includes deciding to add the new image to the cache via the new index value and using the distance metric to generate the new image from an existing image associated with the match when the distance metric is less than or equal to the threshold value.

6. A computer-implemented method that uses a processor to perform the processing of:

receiving a candidate index value for a new image, the candidate index value representing an array of numbers for a diagonal of pixel values assembled from a matrix that represents the new image;

using a nearest neighbor algorithm to search index values already present in a cache against the candidate index value; and

determining whether a match is present in the cache in response to using the nearest neighbor algorithm, when the match is present the candidate index value is not placed in the cache and the new image is not acquired, when the match is not present the candidate index value is placed in the cache and the new image is acquired for linking to the cache, and deciding whether the match exists by comparing a distance metric for the candidate index value against each compared index value from the cache and determining the match exists when the distance metric is within a threshold value.

7. The method of claim 6 , wherein receiving further includes obtaining the candidate index value from a remote network site that natively vends the new image.

8. The method of claim 7 , wherein obtaining further includes having the remote network site use a discrete cosine transform (DCT) algorithm to produce the matrix from which the index value is derived via the diagonal.

9. The method of claim 6 , wherein using further includes searching the cache, wherein the index values are organized as a tree structure within the cache.

10. The method of claim 9 , wherein searching further includes representing the tree structure as a multidimensional tree structure.

11. The method of claim 6 , wherein determining further includes acquiring the new image by applying the distance metric to a particular image associated with a particular index value of the match to derive the new image.

12. A computer-implemented system, comprising:

a cache manager implemented in a computer-readable storage medium and to process on a processor; and

a cache implemented in a computer-readable storage medium accessible to the processor; wherein the cache manager maintains the cache as a tree data structure, each node of the tree data structure represented as a particular index value linked to a particular image, and particular index value representing a diagonal of a pixel matrix that represents the particular image, and wherein the cache is searched when a candidate index value is supplied to determine whether a candidate image associated with the candidate index value is represented within the tree data structure, and wherein the candidate index value is received remotely over a network connection by the cache manager, and wherein the cache manager uses a nearest neighbor algorithm to determine whether a match exists within the cache for the candidate index value, and wherein the cache manager determines a match exists if the comparison between the candidate index value and the index values of the cache fall within or below a predefined threshold.

13. The system of claim 12 , wherein the tree is a balanced k-dimensional tree (KD tree).

14. The system of claim 12 , wherein the cache is initially populated with hash values that the cache manager converts to the index values by iterating the cache to replace each of the hash values with a specific index value.

Assignments (16)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0018 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2009
From: CHANDRASEKARAN, KARTHIK
To: NOVELL, INC.
Reel/Frame 022083/0310 →