1. A method for encoding data of a data file or a data stream and feeding the encoded data into a database, the method comprising: (a) collecting data which defines a set of consecutive frames taken from a time window of the data file or the data stream and encoding said data by extracting numerical high dimensional descriptors representing a content within said set of consecutive frames, (b) selecting representative descriptors from said set of consecutive frames, by: (i) clustering numerical high dimensional descriptors by finding all neighboring descriptors within the set of consecutive frames, wherein a neighborhood relationship between two descriptors is defined by a radius; and (ii) sorting descriptors based on their neighborhood relationships and selecting representative descriptors from each neighborhood cluster to filter out redundant descriptors, (c) creating a set of the selected descriptors, (d) labeling the selected descriptors in the set with a unique identifier, (e) comparing each of the selected descriptors in the set with descriptors from previously created sets having identifiers different from the unique identifier; (f) filtering at least one descriptor from the set upon determining that the at least one descriptor is a close neighbor to a descriptor from a previously created set; (g) replacing the filtered at least one descriptor with a link to the close neighbor descriptor from the previously created set; and (h) repeating steps (a) to (g) for a new time window that is shifted from the time window by an amount between 0.2 times and 1 times a duration of the time window, wherein the identifiers of the descriptors are stored on one or more storage areas or devices, and wherein the identifiers are organized on said one or more storage areas or devices such that identifiers of spatially closely located descriptors within a high dimensional space are with high likelihood stored within the same device area or partition.