Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: source/libvpx/vp9/common/arm/neon/vp9_idct32x32_neon.c

Issue 54923004: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(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
OLDNEW
« no previous file with comments | « source/libvpx/vp9/common/arm/neon/vp9_idct16x16_neon.c ('k') | source/libvpx/vp9/common/arm/neon/vp9_save_reg_neon.asm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698