Mercurial > libavcodec.hg
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 |