comparison fdctref.c @ 2979:bfabfdf9ce55 libavcodec

COSMETICS: tabs --> spaces, some prettyprinting
author diego
date Thu, 22 Dec 2005 01:10:11 +0000
parents ef2149182f1c
children 2b72f9bc4f06
comparison
equal deleted inserted replaced
2978:403183bbb505 2979:bfabfdf9ce55
62 } 62 }
63 63
64 void fdct(block) 64 void fdct(block)
65 short *block; 65 short *block;
66 { 66 {
67 register int i, j; 67 register int i, j;
68 double s; 68 double s;
69 double tmp[64]; 69 double tmp[64];
70 70
71 for(i = 0; i < 8; i++) 71 for(i = 0; i < 8; i++)
72 for(j = 0; j < 8; j++) 72 for(j = 0; j < 8; j++)
73 { 73 {
74 s = 0.0; 74 s = 0.0;
75 75
76 /* 76 /*
77 * for(k = 0; k < 8; k++) 77 * for(k = 0; k < 8; k++)
78 * s += c[j][k] * block[8 * i + k]; 78 * s += c[j][k] * block[8 * i + k];
79 */ 79 */
80 s += c[j][0] * block[8 * i + 0]; 80 s += c[j][0] * block[8 * i + 0];
81 s += c[j][1] * block[8 * i + 1]; 81 s += c[j][1] * block[8 * i + 1];
82 s += c[j][2] * block[8 * i + 2]; 82 s += c[j][2] * block[8 * i + 2];
83 s += c[j][3] * block[8 * i + 3]; 83 s += c[j][3] * block[8 * i + 3];
84 s += c[j][4] * block[8 * i + 4]; 84 s += c[j][4] * block[8 * i + 4];
85 s += c[j][5] * block[8 * i + 5]; 85 s += c[j][5] * block[8 * i + 5];
86 s += c[j][6] * block[8 * i + 6]; 86 s += c[j][6] * block[8 * i + 6];
87 s += c[j][7] * block[8 * i + 7]; 87 s += c[j][7] * block[8 * i + 7];
88 88
89 tmp[8 * i + j] = s; 89 tmp[8 * i + j] = s;
90 } 90 }
91 91
92 for(j = 0; j < 8; j++) 92 for(j = 0; j < 8; j++)
93 for(i = 0; i < 8; i++) 93 for(i = 0; i < 8; i++)
94 { 94 {
95 s = 0.0; 95 s = 0.0;
96 96
97 /* 97 /*
98 * for(k = 0; k < 8; k++) 98 * for(k = 0; k < 8; k++)
99 * s += c[i][k] * tmp[8 * k + j]; 99 * s += c[i][k] * tmp[8 * k + j];
100 */ 100 */
101 s += c[i][0] * tmp[8 * 0 + j]; 101 s += c[i][0] * tmp[8 * 0 + j];
102 s += c[i][1] * tmp[8 * 1 + j]; 102 s += c[i][1] * tmp[8 * 1 + j];
103 s += c[i][2] * tmp[8 * 2 + j]; 103 s += c[i][2] * tmp[8 * 2 + j];
104 s += c[i][3] * tmp[8 * 3 + j]; 104 s += c[i][3] * tmp[8 * 3 + j];
105 s += c[i][4] * tmp[8 * 4 + j]; 105 s += c[i][4] * tmp[8 * 4 + j];
106 s += c[i][5] * tmp[8 * 5 + j]; 106 s += c[i][5] * tmp[8 * 5 + j];
107 s += c[i][6] * tmp[8 * 6 + j]; 107 s += c[i][6] * tmp[8 * 6 + j];
108 s += c[i][7] * tmp[8 * 7 + j]; 108 s += c[i][7] * tmp[8 * 7 + j];
109 s*=8.0; 109 s*=8.0;
110 110
111 block[8 * i + j] = (short)floor(s + 0.499999); 111 block[8 * i + j] = (short)floor(s + 0.499999);
112 /* 112 /*
113 * reason for adding 0.499999 instead of 0.5: 113 * reason for adding 0.499999 instead of 0.5:
114 * s is quite often x.5 (at least for i and/or j = 0 or 4) 114 * s is quite often x.5 (at least for i and/or j = 0 or 4)
115 * and setting the rounding threshold exactly to 0.5 leads to an 115 * and setting the rounding threshold exactly to 0.5 leads to an
116 * extremely high arithmetic implementation dependency of the result; 116 * extremely high arithmetic implementation dependency of the result;