media/libvpx/vp9/encoder/vp9_sad_c.c

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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  */
    12 #include <stdlib.h>
    13 #include "vp9/common/vp9_sadmxn.h"
    14 #include "vp9/encoder/vp9_variance.h"
    15 #include "./vpx_config.h"
    16 #include "vpx/vpx_integer.h"
    17 #include "./vp9_rtcd.h"
    19 #define sad_mxn_func(m, n) \
    20 unsigned int vp9_sad##m##x##n##_c(const uint8_t *src_ptr, \
    21                                   int  src_stride, \
    22                                   const uint8_t *ref_ptr, \
    23                                   int  ref_stride, \
    24                                   unsigned int max_sad) { \
    25   return sad_mx_n_c(src_ptr, src_stride, ref_ptr, ref_stride, m, n); \
    26 } \
    27 unsigned int vp9_sad##m##x##n##_avg_c(const uint8_t *src_ptr, \
    28                                       int  src_stride, \
    29                                       const uint8_t *ref_ptr, \
    30                                       int  ref_stride, \
    31                                       const uint8_t *second_pred, \
    32                                       unsigned int max_sad) { \
    33   uint8_t comp_pred[m * n]; \
    34   comp_avg_pred(comp_pred, second_pred, m, n, ref_ptr, ref_stride); \
    35   return sad_mx_n_c(src_ptr, src_stride, comp_pred, m, m, n); \
    36 }
    38 sad_mxn_func(64, 64)
    39 sad_mxn_func(64, 32)
    40 sad_mxn_func(32, 64)
    41 sad_mxn_func(32, 32)
    42 sad_mxn_func(32, 16)
    43 sad_mxn_func(16, 32)
    44 sad_mxn_func(16, 16)
    45 sad_mxn_func(16, 8)
    46 sad_mxn_func(8, 16)
    47 sad_mxn_func(8, 8)
    48 sad_mxn_func(8, 4)
    49 sad_mxn_func(4, 8)
    50 sad_mxn_func(4, 4)
    52 void vp9_sad64x32x4d_c(const uint8_t *src_ptr,
    53                        int  src_stride,
    54                        const uint8_t* const ref_ptr[],
    55                        int  ref_stride,
    56                        unsigned int *sad_array) {
    57   sad_array[0] = vp9_sad64x32(src_ptr, src_stride,
    58                               ref_ptr[0], ref_stride, 0x7fffffff);
    59   sad_array[1] = vp9_sad64x32(src_ptr, src_stride,
    60                               ref_ptr[1], ref_stride, 0x7fffffff);
    61   sad_array[2] = vp9_sad64x32(src_ptr, src_stride,
    62                               ref_ptr[2], ref_stride, 0x7fffffff);
    63   sad_array[3] = vp9_sad64x32(src_ptr, src_stride,
    64                               ref_ptr[3], ref_stride, 0x7fffffff);
    65 }
    67 void vp9_sad32x64x4d_c(const uint8_t *src_ptr,
    68                        int  src_stride,
    69                        const uint8_t* const ref_ptr[],
    70                        int  ref_stride,
    71                        unsigned int *sad_array) {
    72   sad_array[0] = vp9_sad32x64(src_ptr, src_stride,
    73                               ref_ptr[0], ref_stride, 0x7fffffff);
    74   sad_array[1] = vp9_sad32x64(src_ptr, src_stride,
    75                               ref_ptr[1], ref_stride, 0x7fffffff);
    76   sad_array[2] = vp9_sad32x64(src_ptr, src_stride,
    77                               ref_ptr[2], ref_stride, 0x7fffffff);
    78   sad_array[3] = vp9_sad32x64(src_ptr, src_stride,
    79                               ref_ptr[3], ref_stride, 0x7fffffff);
    80 }
    82 void vp9_sad32x16x4d_c(const uint8_t *src_ptr,
    83                        int  src_stride,
    84                        const uint8_t* const ref_ptr[],
    85                        int  ref_stride,
    86                        unsigned int *sad_array) {
    87   sad_array[0] = vp9_sad32x16(src_ptr, src_stride,
    88                               ref_ptr[0], ref_stride, 0x7fffffff);
    89   sad_array[1] = vp9_sad32x16(src_ptr, src_stride,
    90                               ref_ptr[1], ref_stride, 0x7fffffff);
    91   sad_array[2] = vp9_sad32x16(src_ptr, src_stride,
    92                               ref_ptr[2], ref_stride, 0x7fffffff);
    93   sad_array[3] = vp9_sad32x16(src_ptr, src_stride,
    94                               ref_ptr[3], ref_stride, 0x7fffffff);
    95 }
    97 void vp9_sad16x32x4d_c(const uint8_t *src_ptr,
    98                        int  src_stride,
    99                        const uint8_t* const ref_ptr[],
   100                        int  ref_stride,
   101                        unsigned int *sad_array) {
   102   sad_array[0] = vp9_sad16x32(src_ptr, src_stride,
   103                               ref_ptr[0], ref_stride, 0x7fffffff);
   104   sad_array[1] = vp9_sad16x32(src_ptr, src_stride,
   105                               ref_ptr[1], ref_stride, 0x7fffffff);
   106   sad_array[2] = vp9_sad16x32(src_ptr, src_stride,
   107                               ref_ptr[2], ref_stride, 0x7fffffff);
   108   sad_array[3] = vp9_sad16x32(src_ptr, src_stride,
   109                               ref_ptr[3], ref_stride, 0x7fffffff);
   110 }
   112 void vp9_sad64x64x3_c(const uint8_t *src_ptr,
   113                       int  src_stride,
   114                       const uint8_t *ref_ptr,
   115                       int  ref_stride,
   116                       unsigned int *sad_array) {
   117   sad_array[0] = vp9_sad64x64(src_ptr, src_stride, ref_ptr, ref_stride,
   118                               0x7fffffff);
   119   sad_array[1] = vp9_sad64x64(src_ptr, src_stride, ref_ptr + 1, ref_stride,
   120                               0x7fffffff);
   121   sad_array[2] = vp9_sad64x64(src_ptr, src_stride, ref_ptr + 2, ref_stride,
   122                               0x7fffffff);
   123 }
   125 void vp9_sad32x32x3_c(const uint8_t *src_ptr,
   126                       int  src_stride,
   127                       const uint8_t *ref_ptr,
   128                       int  ref_stride,
   129                       unsigned int *sad_array) {
   130   sad_array[0] = vp9_sad32x32(src_ptr, src_stride,
   131                               ref_ptr, ref_stride, 0x7fffffff);
   132   sad_array[1] = vp9_sad32x32(src_ptr, src_stride,
   133                               ref_ptr + 1, ref_stride, 0x7fffffff);
   134   sad_array[2] = vp9_sad32x32(src_ptr, src_stride,
   135                               ref_ptr + 2, ref_stride, 0x7fffffff);
   136 }
   138 void vp9_sad64x64x8_c(const uint8_t *src_ptr,
   139                       int  src_stride,
   140                       const uint8_t *ref_ptr,
   141                       int  ref_stride,
   142                       unsigned int *sad_array) {
   143   sad_array[0] = vp9_sad64x64(src_ptr, src_stride,
   144                               ref_ptr, ref_stride,
   145                               0x7fffffff);
   146   sad_array[1] = vp9_sad64x64(src_ptr, src_stride,
   147                               ref_ptr + 1, ref_stride,
   148                               0x7fffffff);
   149   sad_array[2] = vp9_sad64x64(src_ptr, src_stride,
   150                               ref_ptr + 2, ref_stride,
   151                               0x7fffffff);
   152   sad_array[3] = vp9_sad64x64(src_ptr, src_stride,
   153                               ref_ptr + 3, ref_stride,
   154                               0x7fffffff);
   155   sad_array[4] = vp9_sad64x64(src_ptr, src_stride,
   156                               ref_ptr + 4, ref_stride,
   157                               0x7fffffff);
   158   sad_array[5] = vp9_sad64x64(src_ptr, src_stride,
   159                               ref_ptr + 5, ref_stride,
   160                               0x7fffffff);
   161   sad_array[6] = vp9_sad64x64(src_ptr, src_stride,
   162                               ref_ptr + 6, ref_stride,
   163                               0x7fffffff);
   164   sad_array[7] = vp9_sad64x64(src_ptr, src_stride,
   165                               ref_ptr + 7, ref_stride,
   166                               0x7fffffff);
   167 }
   169 void vp9_sad32x32x8_c(const uint8_t *src_ptr,
   170                       int  src_stride,
   171                       const uint8_t *ref_ptr,
   172                       int  ref_stride,
   173                       unsigned int *sad_array) {
   174   sad_array[0] = vp9_sad32x32(src_ptr, src_stride,
   175                               ref_ptr, ref_stride,
   176                               0x7fffffff);
   177   sad_array[1] = vp9_sad32x32(src_ptr, src_stride,
   178                               ref_ptr + 1, ref_stride,
   179                               0x7fffffff);
   180   sad_array[2] = vp9_sad32x32(src_ptr, src_stride,
   181                               ref_ptr + 2, ref_stride,
   182                               0x7fffffff);
   183   sad_array[3] = vp9_sad32x32(src_ptr, src_stride,
   184                               ref_ptr + 3, ref_stride,
   185                               0x7fffffff);
   186   sad_array[4] = vp9_sad32x32(src_ptr, src_stride,
   187                               ref_ptr + 4, ref_stride,
   188                               0x7fffffff);
   189   sad_array[5] = vp9_sad32x32(src_ptr, src_stride,
   190                               ref_ptr + 5, ref_stride,
   191                               0x7fffffff);
   192   sad_array[6] = vp9_sad32x32(src_ptr, src_stride,
   193                               ref_ptr + 6, ref_stride,
   194                               0x7fffffff);
   195   sad_array[7] = vp9_sad32x32(src_ptr, src_stride,
   196                               ref_ptr + 7, ref_stride,
   197                               0x7fffffff);
   198 }
   200 void vp9_sad16x16x3_c(const uint8_t *src_ptr,
   201                       int  src_stride,
   202                       const uint8_t *ref_ptr,
   203                       int  ref_stride,
   204                       unsigned int *sad_array) {
   205   sad_array[0] = vp9_sad16x16(src_ptr, src_stride,
   206                               ref_ptr, ref_stride, 0x7fffffff);
   207   sad_array[1] = vp9_sad16x16(src_ptr, src_stride,
   208                               ref_ptr + 1, ref_stride, 0x7fffffff);
   209   sad_array[2] = vp9_sad16x16(src_ptr, src_stride,
   210                               ref_ptr + 2, ref_stride, 0x7fffffff);
   211 }
   213 void vp9_sad16x16x8_c(const uint8_t *src_ptr,
   214                       int  src_stride,
   215                       const uint8_t *ref_ptr,
   216                       int  ref_stride,
   217                       uint32_t *sad_array) {
   218   sad_array[0] = vp9_sad16x16(src_ptr, src_stride,
   219                               ref_ptr, ref_stride,
   220                               0x7fffffff);
   221   sad_array[1] = vp9_sad16x16(src_ptr, src_stride,
   222                               ref_ptr + 1, ref_stride,
   223                               0x7fffffff);
   224   sad_array[2] = vp9_sad16x16(src_ptr, src_stride,
   225                               ref_ptr + 2, ref_stride,
   226                               0x7fffffff);
   227   sad_array[3] = vp9_sad16x16(src_ptr, src_stride,
   228                               ref_ptr + 3, ref_stride,
   229                               0x7fffffff);
   230   sad_array[4] = vp9_sad16x16(src_ptr, src_stride,
   231                               ref_ptr + 4, ref_stride,
   232                               0x7fffffff);
   233   sad_array[5] = vp9_sad16x16(src_ptr, src_stride,
   234                               ref_ptr + 5, ref_stride,
   235                               0x7fffffff);
   236   sad_array[6] = vp9_sad16x16(src_ptr, src_stride,
   237                               ref_ptr + 6, ref_stride,
   238                               0x7fffffff);
   239   sad_array[7] = vp9_sad16x16(src_ptr, src_stride,
   240                               ref_ptr + 7, ref_stride,
   241                               0x7fffffff);
   242 }
   244 void vp9_sad16x8x3_c(const uint8_t *src_ptr,
   245                      int  src_stride,
   246                      const uint8_t *ref_ptr,
   247                      int  ref_stride,
   248                      unsigned int *sad_array) {
   249   sad_array[0] = vp9_sad16x8(src_ptr, src_stride,
   250                              ref_ptr, ref_stride, 0x7fffffff);
   251   sad_array[1] = vp9_sad16x8(src_ptr, src_stride,
   252                              ref_ptr + 1, ref_stride, 0x7fffffff);
   253   sad_array[2] = vp9_sad16x8(src_ptr, src_stride,
   254                              ref_ptr + 2, ref_stride, 0x7fffffff);
   255 }
   257 void vp9_sad16x8x8_c(const uint8_t *src_ptr,
   258                      int  src_stride,
   259                      const uint8_t *ref_ptr,
   260                      int  ref_stride,
   261                      uint32_t *sad_array) {
   262   sad_array[0] = vp9_sad16x8(src_ptr, src_stride,
   263                              ref_ptr, ref_stride,
   264                              0x7fffffff);
   265   sad_array[1] = vp9_sad16x8(src_ptr, src_stride,
   266                              ref_ptr + 1, ref_stride,
   267                              0x7fffffff);
   268   sad_array[2] = vp9_sad16x8(src_ptr, src_stride,
   269                              ref_ptr + 2, ref_stride,
   270                              0x7fffffff);
   271   sad_array[3] = vp9_sad16x8(src_ptr, src_stride,
   272                              ref_ptr + 3, ref_stride,
   273                              0x7fffffff);
   274   sad_array[4] = vp9_sad16x8(src_ptr, src_stride,
   275                              ref_ptr + 4, ref_stride,
   276                              0x7fffffff);
   277   sad_array[5] = vp9_sad16x8(src_ptr, src_stride,
   278                              ref_ptr + 5, ref_stride,
   279                              0x7fffffff);
   280   sad_array[6] = vp9_sad16x8(src_ptr, src_stride,
   281                              ref_ptr + 6, ref_stride,
   282                              0x7fffffff);
   283   sad_array[7] = vp9_sad16x8(src_ptr, src_stride,
   284                              ref_ptr + 7, ref_stride,
   285                              0x7fffffff);
   286 }
   288 void vp9_sad8x8x3_c(const uint8_t *src_ptr,
   289                     int  src_stride,
   290                     const uint8_t *ref_ptr,
   291                     int  ref_stride,
   292                     unsigned int *sad_array) {
   293   sad_array[0] = vp9_sad8x8(src_ptr, src_stride,
   294                             ref_ptr, ref_stride, 0x7fffffff);
   295   sad_array[1] = vp9_sad8x8(src_ptr, src_stride,
   296                             ref_ptr + 1, ref_stride, 0x7fffffff);
   297   sad_array[2] = vp9_sad8x8(src_ptr, src_stride,
   298                             ref_ptr + 2, ref_stride, 0x7fffffff);
   299 }
   301 void vp9_sad8x8x8_c(const uint8_t *src_ptr,
   302                     int  src_stride,
   303                     const uint8_t *ref_ptr,
   304                     int  ref_stride,
   305                     uint32_t *sad_array) {
   306   sad_array[0] = vp9_sad8x8(src_ptr, src_stride,
   307                             ref_ptr, ref_stride,
   308                             0x7fffffff);
   309   sad_array[1] = vp9_sad8x8(src_ptr, src_stride,
   310                             ref_ptr + 1, ref_stride,
   311                             0x7fffffff);
   312   sad_array[2] = vp9_sad8x8(src_ptr, src_stride,
   313                             ref_ptr + 2, ref_stride,
   314                             0x7fffffff);
   315   sad_array[3] = vp9_sad8x8(src_ptr, src_stride,
   316                             ref_ptr + 3, ref_stride,
   317                             0x7fffffff);
   318   sad_array[4] = vp9_sad8x8(src_ptr, src_stride,
   319                             ref_ptr + 4, ref_stride,
   320                             0x7fffffff);
   321   sad_array[5] = vp9_sad8x8(src_ptr, src_stride,
   322                             ref_ptr + 5, ref_stride,
   323                             0x7fffffff);
   324   sad_array[6] = vp9_sad8x8(src_ptr, src_stride,
   325                             ref_ptr + 6, ref_stride,
   326                             0x7fffffff);
   327   sad_array[7] = vp9_sad8x8(src_ptr, src_stride,
   328                             ref_ptr + 7, ref_stride,
   329                             0x7fffffff);
   330 }
   332 void vp9_sad8x16x3_c(const uint8_t *src_ptr,
   333                      int  src_stride,
   334                      const uint8_t *ref_ptr,
   335                      int  ref_stride,
   336                      unsigned int *sad_array) {
   337   sad_array[0] = vp9_sad8x16(src_ptr, src_stride,
   338                              ref_ptr, ref_stride, 0x7fffffff);
   339   sad_array[1] = vp9_sad8x16(src_ptr, src_stride,
   340                              ref_ptr + 1, ref_stride, 0x7fffffff);
   341   sad_array[2] = vp9_sad8x16(src_ptr, src_stride,
   342                              ref_ptr + 2, ref_stride, 0x7fffffff);
   343 }
   345 void vp9_sad8x16x8_c(const uint8_t *src_ptr,
   346                      int  src_stride,
   347                      const uint8_t *ref_ptr,
   348                      int  ref_stride,
   349                      uint32_t *sad_array) {
   350   sad_array[0] = vp9_sad8x16(src_ptr, src_stride,
   351                              ref_ptr, ref_stride,
   352                              0x7fffffff);
   353   sad_array[1] = vp9_sad8x16(src_ptr, src_stride,
   354                              ref_ptr + 1, ref_stride,
   355                              0x7fffffff);
   356   sad_array[2] = vp9_sad8x16(src_ptr, src_stride,
   357                              ref_ptr + 2, ref_stride,
   358                              0x7fffffff);
   359   sad_array[3] = vp9_sad8x16(src_ptr, src_stride,
   360                              ref_ptr + 3, ref_stride,
   361                              0x7fffffff);
   362   sad_array[4] = vp9_sad8x16(src_ptr, src_stride,
   363                              ref_ptr + 4, ref_stride,
   364                              0x7fffffff);
   365   sad_array[5] = vp9_sad8x16(src_ptr, src_stride,
   366                              ref_ptr + 5, ref_stride,
   367                              0x7fffffff);
   368   sad_array[6] = vp9_sad8x16(src_ptr, src_stride,
   369                              ref_ptr + 6, ref_stride,
   370                              0x7fffffff);
   371   sad_array[7] = vp9_sad8x16(src_ptr, src_stride,
   372                              ref_ptr + 7, ref_stride,
   373                              0x7fffffff);
   374 }
   376 void vp9_sad4x4x3_c(const uint8_t *src_ptr,
   377                     int  src_stride,
   378                     const uint8_t *ref_ptr,
   379                     int  ref_stride,
   380                     unsigned int *sad_array) {
   381   sad_array[0] = vp9_sad4x4(src_ptr, src_stride,
   382                             ref_ptr, ref_stride, 0x7fffffff);
   383   sad_array[1] = vp9_sad4x4(src_ptr, src_stride,
   384                             ref_ptr + 1, ref_stride, 0x7fffffff);
   385   sad_array[2] = vp9_sad4x4(src_ptr, src_stride,
   386                             ref_ptr + 2, ref_stride, 0x7fffffff);
   387 }
   389 void vp9_sad4x4x8_c(const uint8_t *src_ptr,
   390                     int  src_stride,
   391                     const uint8_t *ref_ptr,
   392                     int  ref_stride,
   393                     uint32_t *sad_array) {
   394   sad_array[0] = vp9_sad4x4(src_ptr, src_stride,
   395                             ref_ptr, ref_stride,
   396                             0x7fffffff);
   397   sad_array[1] = vp9_sad4x4(src_ptr, src_stride,
   398                             ref_ptr + 1, ref_stride,
   399                             0x7fffffff);
   400   sad_array[2] = vp9_sad4x4(src_ptr, src_stride,
   401                             ref_ptr + 2, ref_stride,
   402                             0x7fffffff);
   403   sad_array[3] = vp9_sad4x4(src_ptr, src_stride,
   404                             ref_ptr + 3, ref_stride,
   405                             0x7fffffff);
   406   sad_array[4] = vp9_sad4x4(src_ptr, src_stride,
   407                             ref_ptr + 4, ref_stride,
   408                             0x7fffffff);
   409   sad_array[5] = vp9_sad4x4(src_ptr, src_stride,
   410                             ref_ptr + 5, ref_stride,
   411                             0x7fffffff);
   412   sad_array[6] = vp9_sad4x4(src_ptr, src_stride,
   413                             ref_ptr + 6, ref_stride,
   414                             0x7fffffff);
   415   sad_array[7] = vp9_sad4x4(src_ptr, src_stride,
   416                             ref_ptr + 7, ref_stride,
   417                             0x7fffffff);
   418 }
   420 void vp9_sad64x64x4d_c(const uint8_t *src_ptr,
   421                        int  src_stride,
   422                        const uint8_t* const ref_ptr[],
   423                        int  ref_stride,
   424                        unsigned int *sad_array) {
   425   sad_array[0] = vp9_sad64x64(src_ptr, src_stride,
   426                               ref_ptr[0], ref_stride, 0x7fffffff);
   427   sad_array[1] = vp9_sad64x64(src_ptr, src_stride,
   428                               ref_ptr[1], ref_stride, 0x7fffffff);
   429   sad_array[2] = vp9_sad64x64(src_ptr, src_stride,
   430                               ref_ptr[2], ref_stride, 0x7fffffff);
   431   sad_array[3] = vp9_sad64x64(src_ptr, src_stride,
   432                               ref_ptr[3], ref_stride, 0x7fffffff);
   433 }
   435 void vp9_sad32x32x4d_c(const uint8_t *src_ptr,
   436                        int  src_stride,
   437                        const uint8_t* const ref_ptr[],
   438                        int  ref_stride,
   439                        unsigned int *sad_array) {
   440   sad_array[0] = vp9_sad32x32(src_ptr, src_stride,
   441                               ref_ptr[0], ref_stride, 0x7fffffff);
   442   sad_array[1] = vp9_sad32x32(src_ptr, src_stride,
   443                               ref_ptr[1], ref_stride, 0x7fffffff);
   444   sad_array[2] = vp9_sad32x32(src_ptr, src_stride,
   445                               ref_ptr[2], ref_stride, 0x7fffffff);
   446   sad_array[3] = vp9_sad32x32(src_ptr, src_stride,
   447                               ref_ptr[3], ref_stride, 0x7fffffff);
   448 }
   450 void vp9_sad16x16x4d_c(const uint8_t *src_ptr,
   451                        int  src_stride,
   452                        const uint8_t* const ref_ptr[],
   453                        int  ref_stride,
   454                        unsigned int *sad_array) {
   455   sad_array[0] = vp9_sad16x16(src_ptr, src_stride,
   456                               ref_ptr[0], ref_stride, 0x7fffffff);
   457   sad_array[1] = vp9_sad16x16(src_ptr, src_stride,
   458                               ref_ptr[1], ref_stride, 0x7fffffff);
   459   sad_array[2] = vp9_sad16x16(src_ptr, src_stride,
   460                               ref_ptr[2], ref_stride, 0x7fffffff);
   461   sad_array[3] = vp9_sad16x16(src_ptr, src_stride,
   462                               ref_ptr[3], ref_stride, 0x7fffffff);
   463 }
   465 void vp9_sad16x8x4d_c(const uint8_t *src_ptr,
   466                       int  src_stride,
   467                       const uint8_t* const ref_ptr[],
   468                       int  ref_stride,
   469                       unsigned int *sad_array) {
   470   sad_array[0] = vp9_sad16x8(src_ptr, src_stride,
   471                              ref_ptr[0], ref_stride, 0x7fffffff);
   472   sad_array[1] = vp9_sad16x8(src_ptr, src_stride,
   473                              ref_ptr[1], ref_stride, 0x7fffffff);
   474   sad_array[2] = vp9_sad16x8(src_ptr, src_stride,
   475                              ref_ptr[2], ref_stride, 0x7fffffff);
   476   sad_array[3] = vp9_sad16x8(src_ptr, src_stride,
   477                              ref_ptr[3], ref_stride, 0x7fffffff);
   478 }
   480 void vp9_sad8x8x4d_c(const uint8_t *src_ptr,
   481                      int  src_stride,
   482                      const uint8_t* const ref_ptr[],
   483                      int  ref_stride,
   484                      unsigned int *sad_array) {
   485   sad_array[0] = vp9_sad8x8(src_ptr, src_stride,
   486                             ref_ptr[0], ref_stride, 0x7fffffff);
   487   sad_array[1] = vp9_sad8x8(src_ptr, src_stride,
   488                             ref_ptr[1], ref_stride, 0x7fffffff);
   489   sad_array[2] = vp9_sad8x8(src_ptr, src_stride,
   490                             ref_ptr[2], ref_stride, 0x7fffffff);
   491   sad_array[3] = vp9_sad8x8(src_ptr, src_stride,
   492                             ref_ptr[3], ref_stride, 0x7fffffff);
   493 }
   495 void vp9_sad8x16x4d_c(const uint8_t *src_ptr,
   496                       int  src_stride,
   497                       const uint8_t* const ref_ptr[],
   498                       int  ref_stride,
   499                       unsigned int *sad_array) {
   500   sad_array[0] = vp9_sad8x16(src_ptr, src_stride,
   501                              ref_ptr[0], ref_stride, 0x7fffffff);
   502   sad_array[1] = vp9_sad8x16(src_ptr, src_stride,
   503                              ref_ptr[1], ref_stride, 0x7fffffff);
   504   sad_array[2] = vp9_sad8x16(src_ptr, src_stride,
   505                              ref_ptr[2], ref_stride, 0x7fffffff);
   506   sad_array[3] = vp9_sad8x16(src_ptr, src_stride,
   507                              ref_ptr[3], ref_stride, 0x7fffffff);
   508 }
   510 void vp9_sad8x4x4d_c(const uint8_t *src_ptr,
   511                      int  src_stride,
   512                      const uint8_t* const ref_ptr[],
   513                      int  ref_stride,
   514                      unsigned int *sad_array) {
   515   sad_array[0] = vp9_sad8x4(src_ptr, src_stride,
   516                             ref_ptr[0], ref_stride, 0x7fffffff);
   517   sad_array[1] = vp9_sad8x4(src_ptr, src_stride,
   518                             ref_ptr[1], ref_stride, 0x7fffffff);
   519   sad_array[2] = vp9_sad8x4(src_ptr, src_stride,
   520                             ref_ptr[2], ref_stride, 0x7fffffff);
   521   sad_array[3] = vp9_sad8x4(src_ptr, src_stride,
   522                             ref_ptr[3], ref_stride, 0x7fffffff);
   523 }
   525 void vp9_sad8x4x8_c(const uint8_t *src_ptr,
   526                      int  src_stride,
   527                      const uint8_t *ref_ptr,
   528                      int  ref_stride,
   529                      uint32_t *sad_array) {
   530   sad_array[0] = vp9_sad8x4(src_ptr, src_stride,
   531                              ref_ptr, ref_stride,
   532                              0x7fffffff);
   533   sad_array[1] = vp9_sad8x4(src_ptr, src_stride,
   534                              ref_ptr + 1, ref_stride,
   535                              0x7fffffff);
   536   sad_array[2] = vp9_sad8x4(src_ptr, src_stride,
   537                              ref_ptr + 2, ref_stride,
   538                              0x7fffffff);
   539   sad_array[3] = vp9_sad8x4(src_ptr, src_stride,
   540                              ref_ptr + 3, ref_stride,
   541                              0x7fffffff);
   542   sad_array[4] = vp9_sad8x4(src_ptr, src_stride,
   543                              ref_ptr + 4, ref_stride,
   544                              0x7fffffff);
   545   sad_array[5] = vp9_sad8x4(src_ptr, src_stride,
   546                              ref_ptr + 5, ref_stride,
   547                              0x7fffffff);
   548   sad_array[6] = vp9_sad8x4(src_ptr, src_stride,
   549                              ref_ptr + 6, ref_stride,
   550                              0x7fffffff);
   551   sad_array[7] = vp9_sad8x4(src_ptr, src_stride,
   552                              ref_ptr + 7, ref_stride,
   553                              0x7fffffff);
   554 }
   556 void vp9_sad4x8x4d_c(const uint8_t *src_ptr,
   557                      int  src_stride,
   558                      const uint8_t* const ref_ptr[],
   559                      int  ref_stride,
   560                      unsigned int *sad_array) {
   561   sad_array[0] = vp9_sad4x8(src_ptr, src_stride,
   562                             ref_ptr[0], ref_stride, 0x7fffffff);
   563   sad_array[1] = vp9_sad4x8(src_ptr, src_stride,
   564                             ref_ptr[1], ref_stride, 0x7fffffff);
   565   sad_array[2] = vp9_sad4x8(src_ptr, src_stride,
   566                             ref_ptr[2], ref_stride, 0x7fffffff);
   567   sad_array[3] = vp9_sad4x8(src_ptr, src_stride,
   568                             ref_ptr[3], ref_stride, 0x7fffffff);
   569 }
   571 void vp9_sad4x8x8_c(const uint8_t *src_ptr,
   572                      int  src_stride,
   573                      const uint8_t *ref_ptr,
   574                      int  ref_stride,
   575                      uint32_t *sad_array) {
   576   sad_array[0] = vp9_sad4x8(src_ptr, src_stride,
   577                              ref_ptr, ref_stride,
   578                              0x7fffffff);
   579   sad_array[1] = vp9_sad4x8(src_ptr, src_stride,
   580                              ref_ptr + 1, ref_stride,
   581                              0x7fffffff);
   582   sad_array[2] = vp9_sad4x8(src_ptr, src_stride,
   583                              ref_ptr + 2, ref_stride,
   584                              0x7fffffff);
   585   sad_array[3] = vp9_sad4x8(src_ptr, src_stride,
   586                              ref_ptr + 3, ref_stride,
   587                              0x7fffffff);
   588   sad_array[4] = vp9_sad4x8(src_ptr, src_stride,
   589                              ref_ptr + 4, ref_stride,
   590                              0x7fffffff);
   591   sad_array[5] = vp9_sad4x8(src_ptr, src_stride,
   592                              ref_ptr + 5, ref_stride,
   593                              0x7fffffff);
   594   sad_array[6] = vp9_sad4x8(src_ptr, src_stride,
   595                              ref_ptr + 6, ref_stride,
   596                              0x7fffffff);
   597   sad_array[7] = vp9_sad4x8(src_ptr, src_stride,
   598                              ref_ptr + 7, ref_stride,
   599                              0x7fffffff);
   600 }
   602 void vp9_sad4x4x4d_c(const uint8_t *src_ptr,
   603                      int  src_stride,
   604                      const uint8_t* const ref_ptr[],
   605                      int  ref_stride,
   606                      unsigned int *sad_array) {
   607   sad_array[0] = vp9_sad4x4(src_ptr, src_stride,
   608                             ref_ptr[0], ref_stride, 0x7fffffff);
   609   sad_array[1] = vp9_sad4x4(src_ptr, src_stride,
   610                             ref_ptr[1], ref_stride, 0x7fffffff);
   611   sad_array[2] = vp9_sad4x4(src_ptr, src_stride,
   612                             ref_ptr[2], ref_stride, 0x7fffffff);
   613   sad_array[3] = vp9_sad4x4(src_ptr, src_stride,
   614                             ref_ptr[3], ref_stride, 0x7fffffff);
   615 }

mercurial