--- image.c 2002/12/29 06:48:25 1.20.2.13 +++ image.c 2003/02/15 15:22:18 1.26 @@ -938,6 +938,36 @@ return psnr_y; } + +float sse_to_PSNR(long sse, int pixels) +{ + if (sse==0) + return 99.99F; + + return 48.131F - 10*(float)log10((float)sse/(float)(pixels)); // log10(255*255)=4.8131 + +} + +long plane_sse(uint8_t * orig, + uint8_t * recon, + uint16_t stride, + uint16_t width, + uint16_t height) +{ + int diff, x, y; + long sse=0; + + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + diff = *(orig + x) - *(recon + x); + sse += diff * diff; + } + orig += stride; + recon += stride; + } + return sse; +} + /* #include @@ -1034,7 +1064,6 @@ } -#define ABS(X) (((X)>0)?(X):-(X)) float image_mad(const IMAGE * img1, const IMAGE * img2, @@ -1200,3 +1229,4 @@ } } +