Blind noise level estimation is an important step of many image processing applications, such as denoising, compression, and segmentation. In this paper, an iterative noise estimation algorithm based on DCT of image patches is proposed. Our method estimates noise level from the statistics of the DCT coefficient differences between pairs of homogeneous image patches, which are robustly selected from weak textured areas. The utilize of DCT difference coefficient data makes the algorithm robust to noise. In order to select weak textured blocks accurately even for noise case, we present a new weak texture detector, which is based on the ratio of AC and DC coefficient in DCT blocks. In the same DCT framework, a simple but effective image denoising method is presented and integrated into our iterative noise estimation method. We have demonstrated the good performance of this method using several public image databases.