Image super-resolution (SR) has grown up to be a hot research field of image processing these years. SR methods via sparse representation code image patch as linear combination of a few atoms chosen out from an over-complete dictionary. However, a universal dictionary is potentially unstable to represent various image structures. As a result, we adopt PCA sub-dictionaries and exploit the low-resolution image itself after k-means clustered instead of outer dataset through iteration to train them. In addition, a post-processing stage which exploits nonlocal redundancies of image is also proposed. Extensive experiments show that the proposed method achieves much better results than many state-of-the-art algorithms in terms of both objective evaluation and visual perception.