Sparse Dictionary Learning