OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 4242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4253 test = _mm_movemask_epi8(temp1); | 4253 test = _mm_movemask_epi8(temp1); |
4254 | 4254 |
4255 if (!test) { | 4255 if (!test) { |
4256 // Do the row transform | 4256 // Do the row transform |
4257 idct8_sse2(inptr); | 4257 idct8_sse2(inptr); |
4258 | 4258 |
4259 // Find the min & max for the column transform | 4259 // Find the min & max for the column transform |
4260 // N.B. Only first 4 cols contain non-zero coeffs | 4260 // N.B. Only first 4 cols contain non-zero coeffs |
4261 max_input = _mm_max_epi16(inptr[0], inptr[1]); | 4261 max_input = _mm_max_epi16(inptr[0], inptr[1]); |
4262 min_input = _mm_min_epi16(inptr[0], inptr[1]); | 4262 min_input = _mm_min_epi16(inptr[0], inptr[1]); |
4263 for (i = 2; i < 4; i++) { | 4263 for (i = 2; i < 8; i++) { |
4264 max_input = _mm_max_epi16(max_input, inptr[i]); | 4264 max_input = _mm_max_epi16(max_input, inptr[i]); |
4265 min_input = _mm_min_epi16(min_input, inptr[i]); | 4265 min_input = _mm_min_epi16(min_input, inptr[i]); |
4266 } | 4266 } |
4267 max_input = _mm_cmpgt_epi16(max_input, max); | 4267 max_input = _mm_cmpgt_epi16(max_input, max); |
4268 min_input = _mm_cmplt_epi16(min_input, min); | 4268 min_input = _mm_cmplt_epi16(min_input, min); |
4269 temp1 = _mm_or_si128(max_input, min_input); | 4269 temp1 = _mm_or_si128(max_input, min_input); |
4270 test = _mm_movemask_epi8(temp1); | 4270 test = _mm_movemask_epi8(temp1); |
4271 | 4271 |
4272 if (test) { | 4272 if (test) { |
4273 // Use fact only first 4 rows contain non-zero coeffs | 4273 // Use fact only first 4 rows contain non-zero coeffs |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4549 vp9_highbd_idct16(temp_in, temp_out, bd); | 4549 vp9_highbd_idct16(temp_in, temp_out, bd); |
4550 for (j = 0; j < 16; ++j) { | 4550 for (j = 0; j < 16; ++j) { |
4551 dest[j * stride + i] = highbd_clip_pixel_add( | 4551 dest[j * stride + i] = highbd_clip_pixel_add( |
4552 dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 6), bd); | 4552 dest[j * stride + i], ROUND_POWER_OF_TWO(temp_out[j], 6), bd); |
4553 } | 4553 } |
4554 } | 4554 } |
4555 } | 4555 } |
4556 } | 4556 } |
4557 | 4557 |
4558 #endif // CONFIG_VP9_HIGHBITDEPTH | 4558 #endif // CONFIG_VP9_HIGHBITDEPTH |
OLD | NEW |