An apparatus for reducing an amount of storage required for maintaining a large-scale collection of multimedia data elements through an unsupervised clustering of multimedia data elements, comprising:
- an interface for allowing access to the large-scale collection of multimedia data elements;
- at least one processing unit;
- a storage unit for storing at least one cluster of multimedia data elements;
- a memory coupled to the at least one processing unit and the storage unit, the memory at least a portion of which contains instructions that when executed by the at least one processing unit configure the apparatus to:
- process the multimedia data elements in the large-scale collection to generate a first cluster of multimedia data elements;
- store the first cluster in the storage unit;
- repeat the generation of a new cluster from the first cluster and un-clustered multimedia data elements in the large-scale collection until a single cluster is reached;
- store a new cluster generated at each iteration in the storage unit, wherein a N-th cluster generated at the N-th iteration is stored in the storage unit, wherein the amount of storage required to store the N-th cluster is less than an amount of storage of the large-scale collection, thereby the unsupervised clustering enables reducing the storage amount required to store the multimedia data elements in the large-scale collection;
- generate for each of the multimedia data elements at least one respective signature, wherein a signature is generated from multiple patches of a multimedia data element, wherein multiple patches are of random length and random position within the multimedia data element;
- and
- perform the clustering on the respective generated signatures, thereby the created clusters include a collection of signatures respective of the multimedia data elements.