Fast color searching
First Claim
Patent Images
1. A system comprising:
- a memory configured to store computer-executable instructions; and
a computing device comprising one or more hardware processors, the computing device in communication with the memory and configured to execute the computer-executable instructions to at least;
obtain a color search range for colors, the colors specified by an n-dimensional color model, the color search range comprising, for each color dimension in the n-dimensional color model, a minimum dimension color value and a maximum dimension color value;
for each color dimension, identify a first bit prefix that comprises a subset of bits of the minimum color value of the respective color dimension and a second bit prefix that comprises a subset of bits of the maximum dimension color value of the respective color dimension;
interleave bits of each color dimension'"'"'s first bit prefix based on a bit order of the bits of each color dimension'"'"'s first bit prefix to form an interleaved first bit prefix;
interleave bits of each color dimension'"'"'s second bit prefix based on a bit order of the bits of each color dimension'"'"'s second bit prefix to form an interleaved second bit prefix;
generate one or more integer search ranges based at least in part on the interleaved first bit prefix and the interleaved second bit prefix, wherein the one or more integer search ranges each comprise a number of bits that is larger than a number of bits in the interleaved first bit prefix;
generate a search query, the search query comprising the one or more integer search ranges as search parameters, wherein generation of the search query to comprise the one or more integer search ranges instead of a second integer search range representing the color search range results in an increased query speed, the increased query speed resulting based at least in part on at least one bit value that falls within the second integer search range not falling within the one or more integer search ranges;
initiate a search, based at least in part on the search query, of a data store for colors within the one or more integer search ranges, the data store comprising records associated with at least one indexed integer color value; and
receive search results from the data store, the search results comprising records associated with at least one indexed integer color value within the one or more integer search ranges.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are described to quickly search a data store based on one or more n-dimensional colors. The n-dimensional colors in the data store may be converted to interleaved integers and indexed. An n-dimensional color search range may be converted to one or more integer search ranges. A fast color search query may be formulated based on the one or more integer search ranges, and transmitted to the data store for searching. The data store may use the interleaved integer index to quickly compare the integer search ranges to the interleaved integers, and send back one or more colors or object results that matched the desired color range.
161 Citations
21 Claims
-
1. A system comprising:
-
a memory configured to store computer-executable instructions; and a computing device comprising one or more hardware processors, the computing device in communication with the memory and configured to execute the computer-executable instructions to at least; obtain a color search range for colors, the colors specified by an n-dimensional color model, the color search range comprising, for each color dimension in the n-dimensional color model, a minimum dimension color value and a maximum dimension color value; for each color dimension, identify a first bit prefix that comprises a subset of bits of the minimum color value of the respective color dimension and a second bit prefix that comprises a subset of bits of the maximum dimension color value of the respective color dimension; interleave bits of each color dimension'"'"'s first bit prefix based on a bit order of the bits of each color dimension'"'"'s first bit prefix to form an interleaved first bit prefix; interleave bits of each color dimension'"'"'s second bit prefix based on a bit order of the bits of each color dimension'"'"'s second bit prefix to form an interleaved second bit prefix; generate one or more integer search ranges based at least in part on the interleaved first bit prefix and the interleaved second bit prefix, wherein the one or more integer search ranges each comprise a number of bits that is larger than a number of bits in the interleaved first bit prefix; generate a search query, the search query comprising the one or more integer search ranges as search parameters, wherein generation of the search query to comprise the one or more integer search ranges instead of a second integer search range representing the color search range results in an increased query speed, the increased query speed resulting based at least in part on at least one bit value that falls within the second integer search range not falling within the one or more integer search ranges; initiate a search, based at least in part on the search query, of a data store for colors within the one or more integer search ranges, the data store comprising records associated with at least one indexed integer color value; and receive search results from the data store, the search results comprising records associated with at least one indexed integer color value within the one or more integer search ranges. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-implemented method comprising:
-
under control of a hardware computing device configured with specific computer-executable instructions, obtaining a color search range for colors, the colors specified by an n-dimensional color model, the color search range comprising, for each color dimension in the n-dimensional color model, a minimum dimension color value and a maximum dimension color value; calculating one or more integer search ranges, wherein the one or more integer search ranges are determined by interleaving bits of first bit prefixes that comprise a subset of bits of the minimum color values and interleaving bits of second bit prefixes that comprise a subset of bits of the maximum dimension color values, and wherein the one or more integer search ranges each comprise a number of bits that is larger than a number of interleaved first bit prefix bits; initiating a search of a data store based at least in part on a search query comprising the one or more integer search ranges as search parameters, the data store comprising records associated with at least one indexed integer color value, wherein initiating the search based at least in part on the search query that comprises the one or more integer search ranges instead of a second integer search range representing the color search range results in an increased query speed, the increased query speed resulting based at least in part on at least one bit value that falls within the second integer search range not falling within the one or more integer search ranges; and receiving search results from the data store, the search results comprising one or more records associated with at least one indexed integer color value within the one or more integer search ranges. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A non-transitory computer readable storage medium storing computer-executable instructions that when executed by a processor perform operations comprising:
-
obtaining an RGB color search range, the RGB color search range comprising a minimum red value, a maximum red value, a minimum green value, a maximum green value, a minimum blue value, and a maximum blue value; identifying a first red bit prefix that comprises a subset of bits of the minimum red value and a second red bit prefix that comprises a subset of bits of the maximum red value; identifying a first green bit prefix that comprises a subset of bits of the minimum green value and a second green bit prefix that comprises a subset of bits of the maximum green value; identifying a first blue bit prefix that comprises a subset of bits of the minimum blue value and a second blue bit prefix that comprises a subset of bits of the maximum blue value; interleaving bits of the first red bit prefix, the first green bit prefix, and the first blue bit prefix from highest dimensional order to lowest dimensional order to form an interleaved first bit prefix; interleaving bits of the second red bit prefix, the second green bit prefix, and the second blue bit prefix from highest dimensional order to lowest dimensional order to form an interleaved second bit prefix; generating one or more integer search ranges based at least in part on the interleaved first bit prefix and the interleaved second bit prefix, wherein the one or more integer search ranges each comprise a number of bits that is larger than a number of bits in the interleaved first bit prefix; and retrieving search results from a data store using the one or more integer search ranges, the search results comprising records associated with at least one indexed integer color value within the one or more integer search ranges, wherein retrieving the search results using the one or more integer search ranges instead of a second integer search range representing the RGB color search range results in an increased query speed, the increased query speed resulting based at least in part on at least one bit value that falls within the second integer search range not falling within the one or more integer search ranges. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification