IP Library Granted Patent US 9,628,805
Granted Patent B2
US 9,628,805 · App. 14/716,685 · Granted Apr 18, 2017

Tunable multi-part perceptual image hashing

Inventors: Martin Smarda (Karlovy Vary, CZ); Pavel Sramek (Pribram, CZ)
Assignee: AVAST SOFTWARE S.R.O.
H04N19/126G06F3/0481G06F3/04817G06F17/30247G06F21/564G06F21/565H04N1/32283H04N19/625
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 9,628,805
App. No.
14/716,685
Granted
Apr 18, 2017
Kind
B2
Abstract

Systems and methods generate a perceptual image hash of an image. The perceptual image hash can be generated from multiple features extracted from a DCT transformation of the image. The perceptual image hash can be compared to other perceptual image hash values using a weighted Hamming distance function.

Claims (66)

1. A method comprising:

receiving first image data, wherein said first image data comprises a first icon;

performing a discrete cosine transformation (DCT) on at least a portion of the first image data to create a DCT matrix;

determining a plurality of features from coefficients of a plurality of areas of the DCT matrix, wherein the features comprise a sign of a coefficient, a magnitude of the coefficient, a neighbor variance of the coefficient, and a differential between a magnitude of the coefficient and a reference average magnitude;

encoding the plurality of features of the coefficients into a first hash string; and

determining a weighted distance between the first hash string and a second hash string associated with a second icon for use in determining whether the first icon is a suspicious icon that is potentially associated with malware.

2. The method of claim 1 , wherein the neighbor variance of the coefficient is determined according to an area of the portion of the DCT matrix.

3. The method of claim 1 , further comprising:

uniting a first area of the plurality of areas with a second area of the plurality of areas to create a temporary area;

wherein the magnitude of the coefficient is determined based, at least in part, on statistical valued computed from the temporary area.

4. The method of claim 1 , further comprising:

determining a plurality of DCT matrices for a plurality of reference images; and

determining a mean value for each corresponding coefficient of the plurality of DCT matrices;

wherein the reference average magnitude comprises the mean value.

5. The method of claim 1 , wherein the weighted distance comprises a weighted hamming distance that is weighted according to a position of a feature encoded in the first hash string and the second hash string.

6. The method of claim 1 , further comprising:

composing a constant image pattern with the first image data, wherein the DCT transformation is performed on the first image data composed with the constant image pattern.

7. A non-transitory machine-readable medium having stored thereon instructions, that when executed by one or more processors of a device, cause the device to:

receive first image data, wherein said first image data comprises a first icon;

perform a discrete cosine transformation (DCT) on at least a portion of the first image data to create a DCT matrix;

determine a plurality of features from coefficients of a plurality of areas of the DCT matrix, wherein the features comprise a sign of a coefficient, a magnitude of the coefficient, a neighbor variance of the coefficient, and a differential between a magnitude of the coefficient and a reference average magnitude;

encode the plurality of features of the coefficients into a first hash string; and

determine a weighted distance between the first hash string and a second hash string associated with a second icon for use in determining whether the first icon is a suspicious icon that is potentially associated with malware.

8. The non-transitory machine-readable medium of claim 7 , wherein the neighbor variance of the coefficient is determined according to an area of the portion of the DCT matrix.

9. The non-transitory machine-readable medium of claim 7 , wherein the instructions further include instructions to cause the device to:

unite a first area of the plurality of areas with a second area of the plurality of areas to create a temporary area;

wherein the magnitude of the coefficient is determined based, at least in part, on statistical valued computed from the temporary area.

10. The non-transitory machine-readable medium of claim 7 , wherein the instructions further include instructions to cause the device to:

determine a plurality of DCT matrices for a plurality of reference images; and

determine a mean value for each corresponding coefficient of the plurality of DCT matrices;

wherein the reference average magnitude comprises the mean value.

11. The non-transitory machine-readable medium of claim 7 , wherein the weighted distance comprises a weighted hamming distance that is weighted according to a position of a feature encoded in the first hash string and the second hash string.

12. The non-transitory machine-readable medium of claim 7 , wherein the instructions further include instructions to cause the device to:

compose a constant image pattern with the first image data, wherein the DCT transformation is performed on the first image data composed with the constant image pattern.

13. An apparatus comprising:

one or more processors;

a non-transitory machine-readable medium coupled to the one or more processors; and

a perceptual image hash unit executable by the one or more processors and configured to:

receive first image data, wherein said first image data comprises a first icon,

perform a discrete cosine transformation (DCT) on at least a portion of the first image data to create a DCT matrix,

determine a plurality of features from coefficients of a plurality of areas of the DCT matrix, wherein the features comprise a sign of a coefficient, a magnitude of the coefficient, a neighbor variance of the coefficient, and a differential between a magnitude of the coefficient and a reference average magnitude,

encode the plurality of features of the coefficients into a first hash string, and

a detection engine configured to determine a weighted distance between the first hash string and a second hash string associated with a second icon for use in determining whether the first icon is a suspicious icon that is potentially associated with malware.

14. The apparatus of claim 13 , wherein the neighbor variance of the coefficient is determined according to an area of the portion of the DCT matrix.

15. The apparatus of claim 13 , wherein the perceptual image hash unit is further configured to:

unite a first area of the plurality of areas with a second area of the plurality of areas to create a temporary area;

wherein the magnitude of the coefficient is determined based, at least in part, on statistical valued computed from the temporary area.

16. The apparatus of claim 13 , wherein the non-transitory machine-readable medium includes instructions to cause the apparatus to:

determine a plurality of DCT matrices for a plurality of reference images; and

determine a mean value for each corresponding coefficient of the plurality of DCT matrices;

wherein the reference average magnitude comprises the mean value.

17. The apparatus of claim 13 , wherein the weighted distance comprises a weighted hamming distance that is weighted according to a position of a feature encoded in the first hash string and the second hash string.

18. The apparatus of claim 13 , wherein perceptual image hash unit is further configured to:

compose a constant image pattern with the first image data, wherein the DCT transformation is performed on the first image data composed with the constant image pattern.

19. The method of claim 1 , wherein the icon comprises a first image domain and the weighted distance function utilizes adjustable weights, said method further comprising tuning the weights to fit a second image domain.

20. The method of claim 19 , said method further comprising adjusting the adjustable weights to shift preferences to particular traits of an image in a given frequency range.

21. The method of claim 20 , said method further comprising, based upon a priority of said features, using a plurality of sets of adjustable weights.

22. The method of claim 21 , said method further comprising using a different set of said sets of adjustable weights for each of a plurality of perceptual similarity determination passes.

23. The non-transitory machine-readable medium of claim 7 , wherein the icon comprises a first image domain and the weighted distance function utilizes adjustable weights, wherein the instructions further include instructions to tune the weights to fit a second image domain.

24. The non-transitory machine-readable medium of claim 23 , wherein the instructions further include instructions to adjust the adjustable weights to shift preferences to particular traits of an image in a given frequency range.

25. The non-transitory machine-readable medium of claim 24 , wherein the instructions further include instructions to, based upon a priority of said features, use a plurality of sets of adjustable weights.

26. The non-transitory machine-readable medium of claim 25 , wherein the instructions further include instructions to use a different set of said sets of adjustable weights for each of a plurality of perceptual similarity determination passes.

27. The apparatus of claim 13 , wherein the icon comprises a first image domain and the weighted distance function utilizes adjustable weights, wherein the the weights are tuned to fit a second image domain.

28. The apparatus of claim 27 , wherein the adjustable weights are adjusted to shift preferences to particular traits of an image in a given frequency range.

29. The apparatus of claim 28 , wherein, based upon a priority of said features, a plurality of sets of adjustable weights is used.

30. The apparatus of claim 29 , wherein a different set of said sets of adjustable weights is used for each of a plurality of perceptual similarity determination passes.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2025
From: GEN DIGITAL AMERICAS S.R.O.
To: GEN DIGITAL INC.
Reel/Frame 071771/0767 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2025
From: AVAST SOFTWARE S.R.O.
To: GEN DIGITAL AMERICAS S.R.O.
Reel/Frame 071777/0341 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2021
From: CREDIT SUISSE INTERNATIONAL, AS COLLATERAL AGENT
To: AVAST SOFTWARE, S.R.O.
Reel/Frame 055726/0399 →
SECURITY INTEREST Recorded Jan 25, 2017
From: AVAST SOFTWARE S.R.O.
To: CREDIT SUISSE INTERNATIONAL, AS COLLATERAL AGENT
Reel/Frame 041084/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2015
From: SMARDA, MARTIN; SRAMEK, PAVEL
To: AVAST SOFTWARE S.R.O.
Reel/Frame 035674/0432 →
Continuity (2)
Provisional Application 62000918 · May 20, 2014
Related Publication 20150339829A1 · Nov 26, 2015