1 /*
2 * Copyright (c) 2012 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 #include "vpx_config.h"
12 #include "vp8_rtcd.h"
13
14 #if HAVE_DSPR2
15
vp8_dequant_idct_add_y_block_dspr2(short * q,short * dq,unsigned char * dst,int stride,char * eobs)16 void vp8_dequant_idct_add_y_block_dspr2
17 (short *q, short *dq,
18 unsigned char *dst, int stride, char *eobs)
19 {
20 int i, j;
21
22 for (i = 0; i < 4; i++)
23 {
24 for (j = 0; j < 4; j++)
25 {
26 if (*eobs++ > 1)
27 vp8_dequant_idct_add_dspr2(q, dq, dst, stride);
28 else
29 {
30 vp8_dc_only_idct_add_dspr2(q[0]*dq[0], dst, stride, dst, stride);
31 ((int *)q)[0] = 0;
32 }
33
34 q += 16;
35 dst += 4;
36 }
37
38 dst += 4 * stride - 16;
39 }
40 }
41
vp8_dequant_idct_add_uv_block_dspr2(short * q,short * dq,unsigned char * dstu,unsigned char * dstv,int stride,char * eobs)42 void vp8_dequant_idct_add_uv_block_dspr2
43 (short *q, short *dq,
44 unsigned char *dstu, unsigned char *dstv, int stride, char *eobs)
45 {
46 int i, j;
47
48 for (i = 0; i < 2; i++)
49 {
50 for (j = 0; j < 2; j++)
51 {
52 if (*eobs++ > 1)
53 vp8_dequant_idct_add_dspr2(q, dq, dstu, stride);
54 else
55 {
56 vp8_dc_only_idct_add_dspr2(q[0]*dq[0], dstu, stride, dstu, stride);
57 ((int *)q)[0] = 0;
58 }
59
60 q += 16;
61 dstu += 4;
62 }
63
64 dstu += 4 * stride - 8;
65 }
66
67 for (i = 0; i < 2; i++)
68 {
69 for (j = 0; j < 2; j++)
70 {
71 if (*eobs++ > 1)
72 vp8_dequant_idct_add_dspr2(q, dq, dstv, stride);
73 else
74 {
75 vp8_dc_only_idct_add_dspr2(q[0]*dq[0], dstv, stride, dstv, stride);
76 ((int *)q)[0] = 0;
77 }
78
79 q += 16;
80 dstv += 4;
81 }
82
83 dstv += 4 * stride - 8;
84 }
85 }
86
87 #endif
88
89