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 #ifndef VARIANCE_H 13 #define VARIANCE_H 14 15 #include "vpx_config.h" 16 17 typedef unsigned int(*vp8_sad_fn_t)( 18 const unsigned char *src_ptr, 19 int source_stride, 20 const unsigned char *ref_ptr, 21 int ref_stride, 22 unsigned int max_sad); 23 24 typedef void (*vp8_copy32xn_fn_t)( 25 const unsigned char *src_ptr, 26 int source_stride, 27 const unsigned char *ref_ptr, 28 int ref_stride, 29 int n); 30 31 typedef void (*vp8_sad_multi_fn_t)( 32 const unsigned char *src_ptr, 33 int source_stride, 34 const unsigned char *ref_ptr, 35 int ref_stride, 36 unsigned int *sad_array); 37 38 typedef void (*vp8_sad_multi1_fn_t) 39 ( 40 const unsigned char *src_ptr, 41 int source_stride, 42 const unsigned char *ref_ptr, 43 int ref_stride, 44 unsigned short *sad_array 45 ); 46 47 typedef void (*vp8_sad_multi_d_fn_t) 48 ( 49 const unsigned char *src_ptr, 50 int source_stride, 51 const unsigned char * const ref_ptr[], 52 int ref_stride, 53 unsigned int *sad_array 54 ); 55 56 typedef unsigned int (*vp8_variance_fn_t) 57 ( 58 const unsigned char *src_ptr, 59 int source_stride, 60 const unsigned char *ref_ptr, 61 int ref_stride, 62 unsigned int *sse 63 ); 64 65 typedef unsigned int (*vp8_subpixvariance_fn_t) 66 ( 67 const unsigned char *src_ptr, 68 int source_stride, 69 int xoffset, 70 int yoffset, 71 const unsigned char *ref_ptr, 72 int Refstride, 73 unsigned int *sse 74 ); 75 76 typedef void (*vp8_ssimpf_fn_t) 77 ( 78 unsigned char *s, 79 int sp, 80 unsigned char *r, 81 int rp, 82 unsigned long *sum_s, 83 unsigned long *sum_r, 84 unsigned long *sum_sq_s, 85 unsigned long *sum_sq_r, 86 unsigned long *sum_sxr 87 ); 88 89 typedef unsigned int (*vp8_getmbss_fn_t)(const short *); 90 91 typedef unsigned int (*vp8_get16x16prederror_fn_t) 92 ( 93 const unsigned char *src_ptr, 94 int source_stride, 95 const unsigned char *ref_ptr, 96 int ref_stride 97 ); 98 99 typedef struct variance_vtable 100 { 101 vp8_sad_fn_t sdf; 102 vp8_variance_fn_t vf; 103 vp8_subpixvariance_fn_t svf; 104 vp8_variance_fn_t svf_halfpix_h; 105 vp8_variance_fn_t svf_halfpix_v; 106 vp8_variance_fn_t svf_halfpix_hv; 107 vp8_sad_multi_fn_t sdx3f; 108 vp8_sad_multi1_fn_t sdx8f; 109 vp8_sad_multi_d_fn_t sdx4df; 110 #if ARCH_X86 || ARCH_X86_64 111 vp8_copy32xn_fn_t copymem; 112 #endif 113 } vp8_variance_fn_ptr_t; 114 115 #endif 116