I think for non-redundant case, this is almost done. And Nenya has done a nice job. It remains to focus on the redundant case, think and experiment about how PCA/SPCA does the job