PageRenderTime 24ms CodeModel.GetById 17ms app.highlight 3ms RepoModel.GetById 2ms app.codeStats 0ms

/media/libvpx/vp8/encoder/psnr.c

http://github.com/zpao/v8monkey
C | 31 lines | 15 code | 7 blank | 9 comment | 2 complexity | e3df6226b9550357841092e1d266a05d MD5 | raw file
 1/*
 2 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
 3 *
 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 */
10
11
12#include "vpx_scale/yv12config.h"
13#include "math.h"
14#include "vp8/common/systemdependent.h" /* for vp8_clear_system_state() */
15
16#define MAX_PSNR 60
17
18double vp8_mse2psnr(double Samples, double Peak, double Mse)
19{
20    double psnr;
21
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
26
27    if (psnr > MAX_PSNR)
28        psnr = MAX_PSNR;
29
30    return psnr;
31}