Sparse and Redundant Representations: From Theory to Applications in Signal and Image Processing