OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2015 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2015 The WebM project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 step1[3] = input[6]; | 163 step1[3] = input[6]; |
164 temp1 = input[1] * cospi_28_64 - input[7] * cospi_4_64; | 164 temp1 = input[1] * cospi_28_64 - input[7] * cospi_4_64; |
165 temp2 = input[1] * cospi_4_64 + input[7] * cospi_28_64; | 165 temp2 = input[1] * cospi_4_64 + input[7] * cospi_28_64; |
166 step1[4] = WRAPLOW(dct_const_round_shift(temp1), 8); | 166 step1[4] = WRAPLOW(dct_const_round_shift(temp1), 8); |
167 step1[7] = WRAPLOW(dct_const_round_shift(temp2), 8); | 167 step1[7] = WRAPLOW(dct_const_round_shift(temp2), 8); |
168 temp1 = input[5] * cospi_12_64 - input[3] * cospi_20_64; | 168 temp1 = input[5] * cospi_12_64 - input[3] * cospi_20_64; |
169 temp2 = input[5] * cospi_20_64 + input[3] * cospi_12_64; | 169 temp2 = input[5] * cospi_20_64 + input[3] * cospi_12_64; |
170 step1[5] = WRAPLOW(dct_const_round_shift(temp1), 8); | 170 step1[5] = WRAPLOW(dct_const_round_shift(temp1), 8); |
171 step1[6] = WRAPLOW(dct_const_round_shift(temp2), 8); | 171 step1[6] = WRAPLOW(dct_const_round_shift(temp2), 8); |
172 | 172 |
173 // stage 2 & stage 3 - even half | 173 // stage 2 |
174 idct4_c(step1, step1); | 174 temp1 = (step1[0] + step1[2]) * cospi_16_64; |
175 | 175 temp2 = (step1[0] - step1[2]) * cospi_16_64; |
176 // stage 2 - odd half | 176 step2[0] = WRAPLOW(dct_const_round_shift(temp1), 8); |
| 177 step2[1] = WRAPLOW(dct_const_round_shift(temp2), 8); |
| 178 temp1 = step1[1] * cospi_24_64 - step1[3] * cospi_8_64; |
| 179 temp2 = step1[1] * cospi_8_64 + step1[3] * cospi_24_64; |
| 180 step2[2] = WRAPLOW(dct_const_round_shift(temp1), 8); |
| 181 step2[3] = WRAPLOW(dct_const_round_shift(temp2), 8); |
177 step2[4] = WRAPLOW(step1[4] + step1[5], 8); | 182 step2[4] = WRAPLOW(step1[4] + step1[5], 8); |
178 step2[5] = WRAPLOW(step1[4] - step1[5], 8); | 183 step2[5] = WRAPLOW(step1[4] - step1[5], 8); |
179 step2[6] = WRAPLOW(-step1[6] + step1[7], 8); | 184 step2[6] = WRAPLOW(-step1[6] + step1[7], 8); |
180 step2[7] = WRAPLOW(step1[6] + step1[7], 8); | 185 step2[7] = WRAPLOW(step1[6] + step1[7], 8); |
181 | 186 |
182 // stage 3 -odd half | 187 // stage 3 |
| 188 step1[0] = WRAPLOW(step2[0] + step2[3], 8); |
| 189 step1[1] = WRAPLOW(step2[1] + step2[2], 8); |
| 190 step1[2] = WRAPLOW(step2[1] - step2[2], 8); |
| 191 step1[3] = WRAPLOW(step2[0] - step2[3], 8); |
183 step1[4] = step2[4]; | 192 step1[4] = step2[4]; |
184 temp1 = (step2[6] - step2[5]) * cospi_16_64; | 193 temp1 = (step2[6] - step2[5]) * cospi_16_64; |
185 temp2 = (step2[5] + step2[6]) * cospi_16_64; | 194 temp2 = (step2[5] + step2[6]) * cospi_16_64; |
186 step1[5] = WRAPLOW(dct_const_round_shift(temp1), 8); | 195 step1[5] = WRAPLOW(dct_const_round_shift(temp1), 8); |
187 step1[6] = WRAPLOW(dct_const_round_shift(temp2), 8); | 196 step1[6] = WRAPLOW(dct_const_round_shift(temp2), 8); |
188 step1[7] = step2[7]; | 197 step1[7] = step2[7]; |
189 | 198 |
190 // stage 4 | 199 // stage 4 |
191 output[0] = WRAPLOW(step1[0] + step1[7], 8); | 200 output[0] = WRAPLOW(step1[0] + step1[7], 8); |
192 output[1] = WRAPLOW(step1[1] + step1[6], 8); | 201 output[1] = WRAPLOW(step1[1] + step1[6], 8); |
(...skipping 2275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2468 out = WRAPLOW(highbd_dct_const_round_shift(out * cospi_16_64, bd), bd); | 2477 out = WRAPLOW(highbd_dct_const_round_shift(out * cospi_16_64, bd), bd); |
2469 a1 = ROUND_POWER_OF_TWO(out, 6); | 2478 a1 = ROUND_POWER_OF_TWO(out, 6); |
2470 | 2479 |
2471 for (j = 0; j < 32; ++j) { | 2480 for (j = 0; j < 32; ++j) { |
2472 for (i = 0; i < 32; ++i) | 2481 for (i = 0; i < 32; ++i) |
2473 dest[i] = highbd_clip_pixel_add(dest[i], a1, bd); | 2482 dest[i] = highbd_clip_pixel_add(dest[i], a1, bd); |
2474 dest += stride; | 2483 dest += stride; |
2475 } | 2484 } |
2476 } | 2485 } |
2477 #endif // CONFIG_VP9_HIGHBITDEPTH | 2486 #endif // CONFIG_VP9_HIGHBITDEPTH |
OLD | NEW |