The goal of the Retinex theory is to removed the effects of illumination from the observed images. To address this typical ill-posed inverse problem, many existing Retinex algorithms obtain an enhanced image by using different assumptions either on the illumination or on the reflectance. One significant limitation of these Retinex algorithms is that if the assumption is false, the result is unsatisfactory. In this paper, we firstly build a Retinex model which includes two variables: the illumination and the reflectance. We propose an efficient and effective algorithm based on alternating direction optimization to solve this problem where FFT (Fast Fourier Transform) is used to speed up the computation. Comparing with most existing Retinex algorithms, the proposed method solve the illumination image and reflectance image without converting images to the logarithmic domain. One of the advantages in this paper is that, unlike other traditional Retinex algorithms, our method can simultaneously estimate the illumination image and the reflectance image, the later of which is the ideal image without the illumination effect. Since our method can directly separate the illumination and the reflectance, and the two variables constrain each other mutually in the computing process, the result is robust to some degree. Another advantage is that our method has less computational cost and can be applied to real-time processing.