141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org/* 241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * Copyright 2011 The LibYuv Project Authors. All rights reserved. 341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * 441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * Use of this source code is governed by a BSD-style license 541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * that can be found in the LICENSE file in the root of the source 641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * tree. An additional intellectual property rights grant can be found 741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * in the file PATENTS. All contributing project authors may 841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org * be found in the AUTHORS file in the root of the source tree. 941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org */ 1041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifndef INCLUDE_LIBYUV_COMPARE_H_ // NOLINT 1241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#define INCLUDE_LIBYUV_COMPARE_H_ 1341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#include "libyuv/basic_types.h" 1541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 1641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifdef __cplusplus 1741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgnamespace libyuv { 1841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgextern "C" { 1941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif 2041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 2141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Compute a hash for specified memory. Seed of 5381 recommended. 2241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 2341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orguint32 HashDjb2(const uint8* src, uint64 count, uint32 seed); 2441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 2541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org// Sum Square Error - used to compute Mean Square Error or PSNR. 2641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 2741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orguint64 ComputeSumSquareError(const uint8* src_a, 2841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_b, int count); 2941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 3041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 3141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orguint64 ComputeSumSquareErrorPlane(const uint8* src_a, int stride_a, 3241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_b, int stride_b, 3341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 3441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 3541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgstatic const int kMaxPsnr = 128; 3641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 3741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 3841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgdouble SumSquareErrorToPsnr(uint64 sse, uint64 count); 3941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 4041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 4141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgdouble CalcFramePsnr(const uint8* src_a, int stride_a, 4241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_b, int stride_b, 4341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 4441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 4541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 4641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgdouble I420Psnr(const uint8* src_y_a, int stride_y_a, 4741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_u_a, int stride_u_a, 4841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_v_a, int stride_v_a, 4941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_y_b, int stride_y_b, 5041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_u_b, int stride_u_b, 5141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_v_b, int stride_v_b, 5241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 5341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 5441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 5541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgdouble CalcFrameSsim(const uint8* src_a, int stride_a, 5641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_b, int stride_b, 5741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 5841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 5941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgLIBYUV_API 6041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgdouble I420Ssim(const uint8* src_y_a, int stride_y_a, 6141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_u_a, int stride_u_a, 6241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_v_a, int stride_v_a, 6341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_y_b, int stride_y_b, 6441294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_u_b, int stride_u_b, 6541294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org const uint8* src_v_b, int stride_v_b, 6641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org int width, int height); 6741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 6841294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#ifdef __cplusplus 6941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} // extern "C" 7041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org} // namespace libyuv 7141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif 7241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org 7341294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.org#endif // INCLUDE_LIBYUV_COMPARE_H_ NOLINT 74