A color interpolation algorithm is necessary to acquire color images of good quality with a digital still camera in which a single CCD image sensor is equiped. Since a color filter array is adopted, we must interpolate missing color values in the red, green, and blue channels at each pixel location. Inappropriate color interpolation causes color artifacts, resulting in degraded color resolution. A color interpolation algorithm with a variable color ratio is proposed by incorporating cross-channel correlation. The color ratio of weighted sums in the color channels is utilized instead of the weighted sum of color ratios, and the color ratio varies with respect to the cross-channel correlation at each pixel. The proposed algorithm is composed of initial color interpolation step and the updating step of the green channel, where the updating step is carried out iteratively. Furthermore, a minus weighted sum based on the external divide, a modified edge indicator function, and a 5×5 support region for the red and blue channels are also adopted to improve the performance. With the proposed algorithm, we have achieved improvements in the image quality especially along the edges and in the detail of the image by removing color artifacts. The superiority of the proposed algorithm is demonstrated in the experimental results.