| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright (c) 2013 The WebM project authors. All Rights Reserved. | |
| 3 * | |
| 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 | |
| 6 * tree. An additional intellectual property rights grant can be found | |
| 7 * in the file PATENTS. All contributing project authors may | |
| 8 * be found in the AUTHORS file in the root of the source tree. | |
| 9 */ | |
| 10 | |
| 11 #include "vp9/common/vp9_common.h" | |
| 12 | |
| 13 // defined in vp9/common/arm/neon/vp9_short_idct32x32_add_neon.asm | |
| 14 extern void idct32_transpose_and_transform(int16_t *transpose_buffer, | |
| 15 int16_t *output, int16_t *input); | |
| 16 extern void idct32_combine_add(uint8_t *dest, int16_t *out, int dest_stride); | |
| 17 | |
| 18 | |
| 19 // defined in vp9/common/arm/neon/vp9_short_idct16x16_add_neon.asm | |
| 20 extern void save_neon_registers(); | |
| 21 extern void restore_neon_registers(); | |
| 22 | |
| 23 void vp9_short_idct32x32_add_neon(int16_t *input, uint8_t *dest, | |
| 24 int dest_stride) { | |
| 25 // TODO(cd): move the creation of these buffers within the ASM file | |
| 26 // internal buffer used to transpose 8 lines into before transforming them | |
| 27 int16_t transpose_buffer[32 * 8]; | |
| 28 // results of the first pass (transpose and transform rows) | |
| 29 int16_t pass1[32 * 32]; | |
| 30 // results of the second pass (transpose and transform columns) | |
| 31 int16_t pass2[32 * 32]; | |
| 32 | |
| 33 // save register we need to preserve | |
| 34 save_neon_registers(); | |
| 35 // process rows | |
| 36 idct32_transpose_and_transform(transpose_buffer, pass1, input); | |
| 37 // process columns | |
| 38 // TODO(cd): do these two steps/passes within the ASM file | |
| 39 idct32_transpose_and_transform(transpose_buffer, pass2, pass1); | |
| 40 // combine and add to dest | |
| 41 // TODO(cd): integrate this within the last storage step of the second pass | |
| 42 idct32_combine_add(dest, pass2, dest_stride); | |
| 43 // restore register we need to preserve | |
| 44 restore_neon_registers(); | |
| 45 } | |
| 46 | |
| 47 // TODO(cd): Eliminate this file altogether when everything is in ASM file | |
| OLD | NEW |