2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
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.
14 #include "./vp8_rtcd.h"
16 void vp8_short_fdct4x4_c(short *input
, short *output
, int pitch
)
23 for (i
= 0; i
< 4; i
++)
25 a1
= ((ip
[0] + ip
[3]) * 8);
26 b1
= ((ip
[1] + ip
[2]) * 8);
27 c1
= ((ip
[1] - ip
[2]) * 8);
28 d1
= ((ip
[0] - ip
[3]) * 8);
33 op
[1] = (c1
* 2217 + d1
* 5352 + 14500)>>12;
34 op
[3] = (d1
* 2217 - c1
* 5352 + 7500)>>12;
42 for (i
= 0; i
< 4; i
++)
49 op
[0] = ( a1
+ b1
+ 7)>>4;
50 op
[8] = ( a1
- b1
+ 7)>>4;
52 op
[4] =((c1
* 2217 + d1
* 5352 + 12000)>>16) + (d1
!=0);
53 op
[12] = (d1
* 2217 - c1
* 5352 + 51000)>>16;
60 void vp8_short_fdct8x4_c(short *input
, short *output
, int pitch
)
62 vp8_short_fdct4x4_c(input
, output
, pitch
);
63 vp8_short_fdct4x4_c(input
+ 4, output
+ 16, pitch
);
66 void vp8_short_walsh4x4_c(short *input
, short *output
, int pitch
)
75 for (i
= 0; i
< 4; i
++)
77 a1
= ((ip
[0] + ip
[2]) * 4);
78 d1
= ((ip
[1] + ip
[3]) * 4);
79 c1
= ((ip
[1] - ip
[3]) * 4);
80 b1
= ((ip
[0] - ip
[2]) * 4);
82 op
[0] = a1
+ d1
+ (a1
!=0);
93 for (i
= 0; i
< 4; i
++)