comparison ra288.c @ 7366:d74804a3a18b libavcodec

Give parameters of do_hybrid_window() more meaningful names
author vitor
date Thu, 24 Jul 2008 03:28:01 +0000
parents 031d4866b192
children f8e1a1ef4a56
comparison
equal deleted inserted replaced
7365:031d4866b192 7366:d74804a3a18b
135 for (; n >= 0; n--) 135 for (; n >= 0; n--)
136 tgt[n] = scalar_product_float(src, src - n, len); 136 tgt[n] = scalar_product_float(src, src - n, len);
137 137
138 } 138 }
139 139
140 static void do_hybrid_window(int n, int i, int j, const float *in, float *out, float *st1, 140 static void do_hybrid_window(int order, int n, int non_rec, const float *in,
141 float *st2, const float *table) 141 float *out, float *hist, float *out2,
142 const float *window)
142 { 143 {
143 unsigned int x; 144 unsigned int x;
144 float buffer1[37]; 145 float buffer1[37];
145 float buffer2[37]; 146 float buffer2[37];
146 float work[111]; 147 float work[111];
147 148
148 /* rotate and multiply */ 149 /* rotate and multiply */
149 memmove(st1 , st1 + i, (n + j)*sizeof(*st1)); 150 memmove(hist , hist + n, (order + non_rec)*sizeof(*hist));
150 memcpy (st1 + n + j, in , i *sizeof(*st1)); 151 memcpy (hist + order + non_rec, in , n *sizeof(*hist));
151 152
152 colmult(work, table, st1, n + i + j); 153 colmult(work, window, hist, order + n + non_rec);
153 154
154 prodsum(buffer1, work + n , i, n); 155 prodsum(buffer1, work + order , n , order);
155 prodsum(buffer2, work + n + i, j, n); 156 prodsum(buffer2, work + order + n, non_rec, order);
156 157
157 for (x=0; x <= n; x++) { 158 for (x=0; x <= order; x++) {
158 st2[x] = st2[x] * 0.5625 + buffer1[x]; 159 out2[x] = out2[x] * 0.5625 + buffer1[x];
159 out[x] = st2[x] + buffer2[x]; 160 out [x] = out2[x] + buffer2[x];
160 } 161 }
161 162
162 /* Multiply by the white noise correcting factor (WNCF) */ 163 /* Multiply by the white noise correcting factor (WNCF) */
163 *out *= 257./256.; 164 *out *= 257./256.;
164 } 165 }
169 float buffer2[8], temp2[11]; 170 float buffer2[8], temp2[11];
170 171
171 memcpy(buffer1 , glob->output + 20, 20*sizeof(*buffer1)); 172 memcpy(buffer1 , glob->output + 20, 20*sizeof(*buffer1));
172 memcpy(buffer1 + 20, glob->output , 20*sizeof(*buffer1)); 173 memcpy(buffer1 + 20, glob->output , 20*sizeof(*buffer1));
173 174
174 do_hybrid_window(36, 40, 35, buffer1, temp1, glob->st1a, glob->st1b, table1); 175 do_hybrid_window(36, 40, 35, buffer1, temp1, glob->st1a, glob->st1b,
176 table1);
175 177
176 if (pred(temp1, glob->st1, 36)) 178 if (pred(temp1, glob->st1, 36))
177 colmult(glob->pr1, glob->st1, table1a, 36); 179 colmult(glob->pr1, glob->st1, table1a, 36);
178 180
179 memcpy(buffer2 , glob->history + 4, 4*sizeof(*buffer2)); 181 memcpy(buffer2 , glob->history + 4, 4*sizeof(*buffer2));
180 memcpy(buffer2 + 4, glob->history , 4*sizeof(*buffer2)); 182 memcpy(buffer2 + 4, glob->history , 4*sizeof(*buffer2));
181 183
182 do_hybrid_window(10, 8, 20, buffer2, temp2, glob->st2a, glob->st2b, table2); 184 do_hybrid_window(10, 8, 20, buffer2, temp2, glob->st2a, glob->st2b,
185 table2);
183 186
184 if (pred(temp2, glob->st2, 10)) 187 if (pred(temp2, glob->st2, 10))
185 colmult(glob->pr2, glob->st2, table2a, 10); 188 colmult(glob->pr2, glob->st2, table2a, 10);
186 } 189 }
187 190