POCS Method



NOTE:  For the sake of brevity we will omit much of the mathematical rigor of this method, and stick to general concepts.  Unfortunately, time does not permit us to present many of the relevant equations on this webpage.  Please refer to original papers or to our Matlab code for more detail.

    We begin POCS by taking a LR "reference" frame which we wish to transform succesive pixel frames into at a higher resolution.  The first step is to expand this reference to the desired resolution (SR) by placing extra pixels in between current pixel values.  Some method is then used to interpolate the points which were added (e.g. cubic spline, bilinear, etc.).  We used bilinear interpolation for this.
    The POCS method then uses affine projection to transform the LR frames to the reference SR frame pixel by pixel.  Since the transformation is essentially continuous and since we are projecting onto a discrete grid, we must allow for transformed pixels to end up in between SR grid points.  From the bilinear interpolation, there will already be "first guess" values in all pixels on the SR grid.
    We begin with the first frame which follows the "first guess" frame.  The affine transformation is used to transform the integer (x,y) values of pixel LR(x,y) in this LR image to the real values (u,v) in the SR frame (which are likely not integers.)  Given in the POCS model is assumption of a normalized linear-shift-invariant (LSI) Point Spread Function (PSF).  This PSF has a certain effective range, or "window."  This PSF is overlayed on the transformed position (u,v), and the current values of all SR grid points within the window are multiplied by the PSF value at that grid point.  Given these new values, we can infer a value V(u,v) at the position (u,v).  The step described in this process can be generally though of as using the transformed LR pixel location to scale the SR pixel, and then use those values to infer the original value stored in the transformed pixel.
    Now of course, this value is a result only of the PSF being combined with the SR values, and has nothing yet to do with the value from the LR grid, LR(x,y).  Now the the residual R(u,v;x,y) between V(u,v) and LR(x,y) is defined as simply the difference LR(x,y)-V(u,v).  This residual is multiplied by the PSF and placed on the point (u,v) in the SR grid.  Now the values of PSF*R(u,v;x,y) are added to the values currently at the integer SR grid points in the PSF window.
    This process is repeated for every pixel in the LR frame under consideration.  This entire process is then repeated for all LR frames under consideration.  This will produce the first iteration of the new "best guess" SR image.  This entire cycle is then repeated until the desired or maximum resolution is obtained.