Merge "Skip computation of distortion in vp8_pick_inter_mode if active_map is used"
[libvpx.git] / vp8 / encoder / psnr.c
blob5119bb8aab1b917baa59a183e623a4cbe54fcf0f
1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
12 #include "vpx_scale/yv12config.h"
13 #include "math.h"
14 #include "vp8/common/systemdependent.h" /* for vp8_clear_system_state() */
16 #define MAX_PSNR 60
18 double vp8_mse2psnr(double Samples, double Peak, double Mse)
20 double psnr;
22 if ((double)Mse > 0.0)
23 psnr = 10.0 * log10(Peak * Peak * Samples / Mse);
24 else
25 psnr = MAX_PSNR; // Limit to prevent / 0
27 if (psnr > MAX_PSNR)
28 psnr = MAX_PSNR;
30 return psnr;