Grouping Image fragments are grouped together based on similarity, but unlike standard
k-means clustering and such
cluster analysis methods, the image fragments are not necessarily
disjoint. This
block-matching algorithm is less computationally demanding and is useful later on in the aggregation step. Fragments do however have the same size. A fragment is grouped if its dissimilarity with a reference fragment falls below a specified threshold. This grouping technique is called block-matching, it is typically used to group similar groups across different frames of a
digital video, BM3D on the other hand may group
macroblocks within a single frame. All image fragments in a group are then stacked to form 3D cylinder-like shapes.
Collaborative filtering Filtering is done on every fragments group. A d+1 dimensional linear transform is applied, followed by a transform-domain shrinkage such as
Wiener filtering, then the linear transform is inverted to reproduce all (filtered) fragments.
Aggregation The image is transformed back into its two-dimensional form. All overlapping image fragments are weight-averaged to ensure that they are filtered for noise yet retain their distinct signal. == Extensions ==