1. A method of determining similarities in still or moving images utilizing a hierarchical structure including a base level and higher levels, the method comprising the steps of: a) performing an initial segmentation of data objects in the base level into a plurality of segments using a master processor, each object being representative of a different image or video, the data objects included in the base level of the hierarchy being original data objects and a data set of the base level; b) performing a discrete distribution (D2) clustering on each of the segments on one or more slave processors to determine a group of clusters within the segment, each of the clusters corresponding to a local centroid; c) combining the local centroids within all of the segments determined in step b) into one global data set of local centroids and performing an initial segmentation of this global data set of local centroids into a plurality of segments using the master processor, the global data set of local centroids representing a higher level of the hierarchy, a size of the data set of the higher level being smaller than a size of data set of the previous level; d) iteratively repeating steps b) and c) at higher levels in the hierarchy until a single segmentation of the data objects is achieved, the number of centroids is reduced to a predefined number, or a predefined threshold based on distances of the data objects to the centroids is satisfied; and e) outputting information regarding the way in which the data objects are clustered in terms of similarity.