IP Library › Granted Patent US 10,015,541
Granted Patent B2
US 10,015,541 · App. 14/667,839 · Granted Jul 3, 2018

Storing and retrieval heuristics

Inventors: Tal Maoz (Jerusalem, IL); Gal Moshitch (Jerusalem, IL); Aliza Itzkowitz (Jerusalem, IL); Zeev Geyzel (Tekoa, IL); Reuven Wachtfogel (Elazar, IL)
Assignee: CISCO TECHNOLOGY, INC.
H04N21/4345G06F17/30802G06F17/30817G06F17/30949G06K9/00744G06K9/00758H04N21/23418H04N21/84
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,015,541
App. No.
14/667,839
Granted
Jul 3, 2018
Kind
B2
Abstract

In one embodiment, a system comprises a processor to retrieve a first data element including a value X 0 and Y 0 , provide a hash function for use with a hash table having buckets, the hash function having a first and second input that in combination map to one of the buckets wherein the first input is in a range of X-values having X-value sub-ranges, the second input is in a range of Y-values having Y-value sub-ranges, different combinations of the X-value sub-ranges and the Y-value sub-ranges map using the hash function to different buckets, and input the value X 0 and Y 0 into the hash function yielding an output which is indicative of a first bucket of the hash-table. Related apparatus and methods are also described.

Claims (48)

1. A system comprising a processor; and a memory to store data used by the processor, wherein the processor is operative to:

retrieve a first data element from the memory, the first data element including a value X0 and a value Y0;

provide a hash function for use with a hash table having a plurality of buckets, the hash function having a plurality of inputs including a first input and a second input that in combination map to one of the buckets wherein:

(a) the first input is in a range of X-values having a plurality of non-overlapping X-value sub-ranges;

(b) the second input is in a range of Y-values having a plurality of non-overlapping Y-value sub-ranges;

(c) when the first input is any value in one of the X-value sub-ranges and the second input is any value in one of the Y-value sub-ranges, the hash function maps to a same one of the buckets; and

(d) different combinations of the X-value sub-ranges and the Y-value sub-ranges map using the hash function to different ones of the buckets; and

input the value X0 and the value Y0 of the first data element into the hash function yielding an output which is indicative of a first bucket of the buckets of the hash-table, wherein:

the first bucket is associated with a first one of the X-value sub-ranges and a second one of the Y-value sub-ranges;

a size of any of the X-value sub-ranges is equal to a first limit;

a size of any of the Y-value sub-ranges is equal to a second limit;

the first limit and second limit are set according to criteria used to determine a sub-set of candidate data element matches for the first data element in the hash-table;

the first limit is based on a maximum acceptable matching difference criteria between an X-value in each of a plurality of data elements and the value X0 of the first data element;

the second limit is based on a maximum acceptable matching difference criteria between a Y-value in each of the data elements and the value Y0 of the first data element; and

the hash-table stores the plurality of data elements in the buckets according to an X value and a Y value of each one data element of the plurality of data elements;

issue a command to retrieve all the data elements stored in the first bucket and all the data elements stored in eight different ones of the buckets adjacent in terms of sub-range to the first bucket, such that each of the eight buckets is associated with: one of the X-value sub-ranges, adjacent to, or the same as, the first X-value sub-range; and one of the Y-value sub-ranges, adjacent to, or the same as, the second Y-value sub-range; and

issue a command to compare at least part of the first data element to the data elements retrieved from the first bucket and the eight buckets to find a closest match to the first data element among the data elements retrieved from the first bucket and the eight buckets thereby improving a computer search speed for finding the closest match.

2. The system according to claim 1 , wherein the processor is operative to issue a command to store the first data element in the first bucket.

3. The system according to claim 1 , wherein the first data element is comprised in a video signature, SN, of a video frame.

4. The system according to claim 3 , wherein the value X0 and the value Y0 are average luminance values of the video frame.

5. The system according to claim 1 , wherein the first limit is in the range of 2-8 to 2-5 of a maximum value in the range of X-values and the second limit is in the range of 2-8 to 2-5 of a maximum value in the range of Y-values.

6. The system according to claim 1 , wherein: the first data element is comprised in a video signature, S0, of a video frame; and each of the plurality of data elements is comprised in a different video signature, Si.

7. The system according to claim 6 , wherein the value X0 and the value Y0 are average luminance values of the video frame.

8. The system according to claim 6 , wherein the first limit is in the range of 2-8 to 2-5 of a maximum value in the range of X-values and the second limit is in the range of 2-8 to 2-5 of a maximum value in the range of Y-values.

9. A method comprising:

retrieving a first data element from a memory, the first data element including a value X0 and a value Y0;

providing a hash function for use with a hash table having a plurality of buckets, the hash function having a plurality of inputs including a first input and a second input that in combination map to one of the buckets wherein:

(a) the first input is in a range of X-values having a plurality of non-overlapping X-value sub-ranges;

(b) the second input is in a range of Y-values having a plurality of non-overlapping Y-value sub-ranges;

(c) when the first input is any value in one of the X-value sub-ranges and the second input is any value in one of the Y-value sub-ranges, the hash function maps to a same one of the buckets; and

(d) different combinations of the X-value sub-ranges and the Y-value sub-ranges map using the hash function to different ones of the buckets; and

inputting the value X0 and the value Y0 of the first data element into the hash function yielding an output which is indicative of a first bucket of the buckets of the hash-table, wherein:

the first bucket is associated with a first one of the X-value sub-ranges and a second one of the Y-value sub-ranges;

a size of any of the X-value sub-ranges is equal to a first limit;

a size of any of the Y-value sub-ranges is equal to a second limit;

the first limit and second limit are set according to criteria used to determine a sub-set of candidate data element matches for the first data element in the hash-table;

the first limit is based on a maximum acceptable matching difference criteria between an X-value in each of a plurality of data elements and the value X0 of the first data element; and

the second limit is based on a maximum acceptable matching difference criteria between a Y-value in each of the data elements and the value Y0 of the first data element; and

the hash-table stores the plurality of data elements in the buckets according to an X value and a Y value of each one data element of the plurality of data elements;

issuing a command to retrieve all the data elements stored in the first bucket and all the data elements stored in eight different ones of the buckets adjacent in terms of sub-range to the first bucket, such that each of the eight buckets is associated with: one of the X-value sub-ranges, adjacent to, or the same as, the first X-value sub-range; and one of the Y-value sub-ranges, adjacent to, or the same as, the second Y-value sub-range; and

issuing a command to compare at least part of the first data element to the data elements retrieved from the first bucket and the eight buckets t find a closest match to the first data element among the data elements retrieved from the first bucket and the eight buckets-thereby improving a computer search speed for finding the closest match.

10. The method according to claim 9 , further comprising issuing a command to store the first data element in the first bucket.

11. The method according to claim 9 , wherein: the first data element is comprised in a video signature, S0, of a video frame; and each of the plurality of data elements is comprised in a different video signature, Si.

12. The method according to claim 11 , wherein the value X0 and the value Y0 are average luminance values of the video frame.

13. The method according to claim 9 , wherein the first limit is in the range of 2-8 to 2-5 of a maximum value in the range of X-values and the second limit is in the range of 2-8 to 2-5 of a maximum value in the range of Y-values.

14. The method according to claim 9 , wherein the first data element is comprised in a video signature, SN, of a video frame.

15. The method according to claim 14 , wherein the value X0 and the value Y0 are average luminance values of the video frame.

16. The method according to claim 14 , wherein the first limit is in the range of 2-8 to 2-5 of a maximum value in the range of X-values and the second limit is in the range of 2-8 to 2-5 of a maximum value in the range of Y-values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2015
From: MAOZ, TAL; MOSHITCH, GAL; ITZKOWITZ, ALIZA; GEYZEL, ZEEV; WACHTFOGEL, REUVEN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 035409/0751 →
Continuity (1)
Related Publication 20160283477A1 · Sep 29, 2016
Cited By (1)
US 12,750,539