summaryrefslogtreecommitdiff
path: root/vp8/encoder/sad_c.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp8/encoder/sad_c.c')
-rw-r--r--vp8/encoder/sad_c.c155
1 files changed, 123 insertions, 32 deletions
diff --git a/vp8/encoder/sad_c.c b/vp8/encoder/sad_c.c
index 74c6bd76a..5eaca5935 100644
--- a/vp8/encoder/sad_c.c
+++ b/vp8/encoder/sad_c.c
@@ -1,19 +1,20 @@
/*
- * Copyright (c) 2010 The VP8 project authors. All Rights Reserved.
+ * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
- * Use of this source code is governed by a BSD-style license and patent
- * grant that can be found in the LICENSE file in the root of the source
- * tree. All contributing project authors may be found in the AUTHORS
- * file in the root of the source tree.
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
*/
#include <stdlib.h>
unsigned int vp8_sad16x16_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
int max_sad)
{
@@ -38,9 +39,9 @@ unsigned int vp8_sad16x16_c(
static __inline
unsigned int sad_mx_n_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
int m,
int n)
@@ -65,9 +66,9 @@ unsigned int sad_mx_n_c(
unsigned int vp8_sad8x8_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
int max_sad)
{
@@ -77,9 +78,9 @@ unsigned int vp8_sad8x8_c(
unsigned int vp8_sad16x8_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
int max_sad)
{
@@ -90,9 +91,9 @@ unsigned int vp8_sad16x8_c(
unsigned int vp8_sad8x16_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
int max_sad)
{
@@ -102,9 +103,9 @@ unsigned int vp8_sad8x16_c(
unsigned int vp8_sad4x4_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
int max_sad)
{
@@ -113,9 +114,9 @@ unsigned int vp8_sad4x4_c(
}
void vp8_sad16x16x3_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
unsigned int *sad_array
)
@@ -125,10 +126,28 @@ void vp8_sad16x16x3_c(
sad_array[2] = vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
}
+void vp8_sad16x16x8_c(
+ const unsigned char *src_ptr,
+ int src_stride,
+ const unsigned char *ref_ptr,
+ int ref_stride,
+ unsigned short *sad_array
+)
+{
+ sad_array[0] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr , ref_stride, 0x7fffffff);
+ sad_array[1] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 1, ref_stride, 0x7fffffff);
+ sad_array[2] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
+ sad_array[3] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 3 , ref_stride, 0x7fffffff);
+ sad_array[4] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 4, ref_stride, 0x7fffffff);
+ sad_array[5] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 5, ref_stride, 0x7fffffff);
+ sad_array[6] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 6 , ref_stride, 0x7fffffff);
+ sad_array[7] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 7, ref_stride, 0x7fffffff);
+}
+
void vp8_sad16x8x3_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
unsigned int *sad_array
)
@@ -138,10 +157,28 @@ void vp8_sad16x8x3_c(
sad_array[2] = vp8_sad16x8_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
}
+void vp8_sad16x8x8_c(
+ const unsigned char *src_ptr,
+ int src_stride,
+ const unsigned char *ref_ptr,
+ int ref_stride,
+ unsigned short *sad_array
+)
+{
+ sad_array[0] = (unsigned short)vp8_sad16x8_c(src_ptr, src_stride, ref_ptr , ref_stride, 0x7fffffff);
+ sad_array[1] = (unsigned short)vp8_sad16x8_c(src_ptr, src_stride, ref_ptr + 1, ref_stride, 0x7fffffff);
+ sad_array[2] = (unsigned short)vp8_sad16x8_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
+ sad_array[3] = (unsigned short)vp8_sad16x8_c(src_ptr, src_stride, ref_ptr + 3 , ref_stride, 0x7fffffff);
+ sad_array[4] = (unsigned short)vp8_sad16x8_c(src_ptr, src_stride, ref_ptr + 4, ref_stride, 0x7fffffff);
+ sad_array[5] = (unsigned short)vp8_sad16x8_c(src_ptr, src_stride, ref_ptr + 5, ref_stride, 0x7fffffff);
+ sad_array[6] = (unsigned short)vp8_sad16x8_c(src_ptr, src_stride, ref_ptr + 6 , ref_stride, 0x7fffffff);
+ sad_array[7] = (unsigned short)vp8_sad16x8_c(src_ptr, src_stride, ref_ptr + 7, ref_stride, 0x7fffffff);
+}
+
void vp8_sad8x8x3_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
unsigned int *sad_array
)
@@ -151,10 +188,28 @@ void vp8_sad8x8x3_c(
sad_array[2] = vp8_sad8x8_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
}
+void vp8_sad8x8x8_c(
+ const unsigned char *src_ptr,
+ int src_stride,
+ const unsigned char *ref_ptr,
+ int ref_stride,
+ unsigned short *sad_array
+)
+{
+ sad_array[0] = (unsigned short)vp8_sad8x8_c(src_ptr, src_stride, ref_ptr , ref_stride, 0x7fffffff);
+ sad_array[1] = (unsigned short)vp8_sad8x8_c(src_ptr, src_stride, ref_ptr + 1, ref_stride, 0x7fffffff);
+ sad_array[2] = (unsigned short)vp8_sad8x8_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
+ sad_array[3] = (unsigned short)vp8_sad8x8_c(src_ptr, src_stride, ref_ptr + 3 , ref_stride, 0x7fffffff);
+ sad_array[4] = (unsigned short)vp8_sad8x8_c(src_ptr, src_stride, ref_ptr + 4, ref_stride, 0x7fffffff);
+ sad_array[5] = (unsigned short)vp8_sad8x8_c(src_ptr, src_stride, ref_ptr + 5, ref_stride, 0x7fffffff);
+ sad_array[6] = (unsigned short)vp8_sad8x8_c(src_ptr, src_stride, ref_ptr + 6 , ref_stride, 0x7fffffff);
+ sad_array[7] = (unsigned short)vp8_sad8x8_c(src_ptr, src_stride, ref_ptr + 7, ref_stride, 0x7fffffff);
+}
+
void vp8_sad8x16x3_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
unsigned int *sad_array
)
@@ -164,10 +219,28 @@ void vp8_sad8x16x3_c(
sad_array[2] = vp8_sad8x16_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
}
+void vp8_sad8x16x8_c(
+ const unsigned char *src_ptr,
+ int src_stride,
+ const unsigned char *ref_ptr,
+ int ref_stride,
+ unsigned short *sad_array
+)
+{
+ sad_array[0] = (unsigned short)vp8_sad8x16_c(src_ptr, src_stride, ref_ptr , ref_stride, 0x7fffffff);
+ sad_array[1] = (unsigned short)vp8_sad8x16_c(src_ptr, src_stride, ref_ptr + 1, ref_stride, 0x7fffffff);
+ sad_array[2] = (unsigned short)vp8_sad8x16_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
+ sad_array[3] = (unsigned short)vp8_sad8x16_c(src_ptr, src_stride, ref_ptr + 3 , ref_stride, 0x7fffffff);
+ sad_array[4] = (unsigned short)vp8_sad8x16_c(src_ptr, src_stride, ref_ptr + 4, ref_stride, 0x7fffffff);
+ sad_array[5] = (unsigned short)vp8_sad8x16_c(src_ptr, src_stride, ref_ptr + 5, ref_stride, 0x7fffffff);
+ sad_array[6] = (unsigned short)vp8_sad8x16_c(src_ptr, src_stride, ref_ptr + 6 , ref_stride, 0x7fffffff);
+ sad_array[7] = (unsigned short)vp8_sad8x16_c(src_ptr, src_stride, ref_ptr + 7, ref_stride, 0x7fffffff);
+}
+
void vp8_sad4x4x3_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
- unsigned char *ref_ptr,
+ const unsigned char *ref_ptr,
int ref_stride,
unsigned int *sad_array
)
@@ -177,8 +250,26 @@ void vp8_sad4x4x3_c(
sad_array[2] = vp8_sad4x4_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
}
+void vp8_sad4x4x8_c(
+ const unsigned char *src_ptr,
+ int src_stride,
+ const unsigned char *ref_ptr,
+ int ref_stride,
+ unsigned short *sad_array
+)
+{
+ sad_array[0] = (unsigned short)vp8_sad4x4_c(src_ptr, src_stride, ref_ptr , ref_stride, 0x7fffffff);
+ sad_array[1] = (unsigned short)vp8_sad4x4_c(src_ptr, src_stride, ref_ptr + 1, ref_stride, 0x7fffffff);
+ sad_array[2] = (unsigned short)vp8_sad4x4_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, 0x7fffffff);
+ sad_array[3] = (unsigned short)vp8_sad4x4_c(src_ptr, src_stride, ref_ptr + 3 , ref_stride, 0x7fffffff);
+ sad_array[4] = (unsigned short)vp8_sad4x4_c(src_ptr, src_stride, ref_ptr + 4, ref_stride, 0x7fffffff);
+ sad_array[5] = (unsigned short)vp8_sad4x4_c(src_ptr, src_stride, ref_ptr + 5, ref_stride, 0x7fffffff);
+ sad_array[6] = (unsigned short)vp8_sad4x4_c(src_ptr, src_stride, ref_ptr + 6 , ref_stride, 0x7fffffff);
+ sad_array[7] = (unsigned short)vp8_sad4x4_c(src_ptr, src_stride, ref_ptr + 7, ref_stride, 0x7fffffff);
+}
+
void vp8_sad16x16x4d_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
unsigned char *ref_ptr[],
int ref_stride,
@@ -192,7 +283,7 @@ void vp8_sad16x16x4d_c(
}
void vp8_sad16x8x4d_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
unsigned char *ref_ptr[],
int ref_stride,
@@ -206,7 +297,7 @@ void vp8_sad16x8x4d_c(
}
void vp8_sad8x8x4d_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
unsigned char *ref_ptr[],
int ref_stride,
@@ -220,7 +311,7 @@ void vp8_sad8x8x4d_c(
}
void vp8_sad8x16x4d_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
unsigned char *ref_ptr[],
int ref_stride,
@@ -234,7 +325,7 @@ void vp8_sad8x16x4d_c(
}
void vp8_sad4x4x4d_c(
- unsigned char *src_ptr,
+ const unsigned char *src_ptr,
int src_stride,
unsigned char *ref_ptr[],
int ref_stride,