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

Side by Side Diff: source/libvpx/vp9/common/x86/vp9_asm_stubs.c

Issue 11974002: libvpx: Pull from upstream (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 7 years, 11 months 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
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 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
11 11
12 #include "vpx_ports/config.h" 12 #include "./vpx_config.h"
13 #include "vpx_ports/mem.h" 13 #include "vpx_ports/mem.h"
14 #include "vp9/common/vp9_subpixel.h" 14 #include "vp9/common/vp9_subpixel.h"
15 15
16 extern const short vp9_six_tap_mmx[8][6 * 8]; 16 extern const short vp9_six_tap_mmx[8][6 * 8];
17 17
18 extern const short vp9_bilinear_filters_8x_mmx[8][2 * 8];
19
20 extern void vp9_filter_block1d_h6_mmx(unsigned char *src_ptr, 18 extern void vp9_filter_block1d_h6_mmx(unsigned char *src_ptr,
21 unsigned short *output_ptr, 19 unsigned short *output_ptr,
22 unsigned int src_pixels_per_line, 20 unsigned int src_pixels_per_line,
23 unsigned int pixel_step, 21 unsigned int pixel_step,
24 unsigned int output_height, 22 unsigned int output_height,
25 unsigned int output_width, 23 unsigned int output_width,
26 const short *vp9_filter); 24 const short *vp9_filter);
27 25
28 extern void vp9_filter_block1dc_v6_mmx(unsigned short *src_ptr, 26 extern void vp9_filter_block1dc_v6_mmx(unsigned short *src_ptr,
29 unsigned char *output_ptr, 27 unsigned char *output_ptr,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 unsigned int output_height, 86 unsigned int output_height,
89 const short *vp9_filter); 87 const short *vp9_filter);
90 88
91 extern void vp9_filter_block1d8_v6_only_sse2(unsigned char *src_ptr, 89 extern void vp9_filter_block1d8_v6_only_sse2(unsigned char *src_ptr,
92 unsigned int src_pixels_per_line, 90 unsigned int src_pixels_per_line,
93 unsigned char *output_ptr, 91 unsigned char *output_ptr,
94 int dst_pitch, 92 int dst_pitch,
95 unsigned int output_height, 93 unsigned int output_height,
96 const short *vp9_filter); 94 const short *vp9_filter);
97 95
98 extern prototype_subpixel_predict(vp9_bilinear_predict8x8_mmx);
99
100 /////////////////////////////////////////////////////////////////////////// 96 ///////////////////////////////////////////////////////////////////////////
101 // the mmx function that does the bilinear filtering and var calculation // 97 // the mmx function that does the bilinear filtering and var calculation //
102 // int one pass // 98 // int one pass //
103 /////////////////////////////////////////////////////////////////////////// 99 ///////////////////////////////////////////////////////////////////////////
104 DECLARE_ALIGNED(16, const short, vp9_bilinear_filters_mmx[16][8]) = { 100 DECLARE_ALIGNED(16, const short, vp9_bilinear_filters_mmx[16][8]) = {
105 { 128, 128, 128, 128, 0, 0, 0, 0 }, 101 { 128, 128, 128, 128, 0, 0, 0, 0 },
106 { 120, 120, 120, 120, 8, 8, 8, 8 }, 102 { 120, 120, 120, 120, 8, 8, 8, 8 },
107 { 112, 112, 112, 112, 16, 16, 16, 16 }, 103 { 112, 112, 112, 112, 16, 16, 16, 16 },
108 { 104, 104, 104, 104, 24, 24, 24, 24 }, 104 { 104, 104, 104, 104, 24, 24, 24, 24 },
109 { 96, 96, 96, 96, 32, 32, 32, 32 }, 105 { 96, 96, 96, 96, 32, 32, 32, 32 },
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 fdata2, src_pixels_per_line, 1, 9, 16, hfilter); 221 fdata2, src_pixels_per_line, 1, 9, 16, hfilter);
226 vp9_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 4, 222 vp9_filter_block1d_h6_mmx(src_ptr - (2 * src_pixels_per_line) + 4,
227 fdata2 + 4, src_pixels_per_line, 1, 9, 16, hfilter); 223 fdata2 + 4, src_pixels_per_line, 1, 9, 16, hfilter);
228 224
229 vfilter = vp9_six_tap_mmx[yoffset]; 225 vfilter = vp9_six_tap_mmx[yoffset];
230 vp9_filter_block1dc_v6_mmx(fdata2 + 16, dst_ptr, dst_pitch, 226 vp9_filter_block1dc_v6_mmx(fdata2 + 16, dst_ptr, dst_pitch,
231 16, 8, 4, 8, vfilter); 227 16, 8, 4, 8, vfilter);
232 vp9_filter_block1dc_v6_mmx(fdata2 + 20, dst_ptr + 4, dst_pitch, 228 vp9_filter_block1dc_v6_mmx(fdata2 + 20, dst_ptr + 4, dst_pitch,
233 16, 8, 4, 8, vfilter); 229 16, 8, 4, 8, vfilter);
234 } 230 }
235
236 void vp9_bilinear_predict16x16_mmx(unsigned char *src_ptr,
237 int src_pixels_per_line,
238 int xoffset,
239 int yoffset,
240 unsigned char *dst_ptr,
241 int dst_pitch) {
242 vp9_bilinear_predict8x8_mmx(src_ptr,
243 src_pixels_per_line, xoffset, yoffset,
244 dst_ptr, dst_pitch);
245 vp9_bilinear_predict8x8_mmx(src_ptr + 8,
246 src_pixels_per_line, xoffset, yoffset,
247 dst_ptr + 8, dst_pitch);
248 vp9_bilinear_predict8x8_mmx(src_ptr + 8 * src_pixels_per_line,
249 src_pixels_per_line, xoffset, yoffset,
250 dst_ptr + dst_pitch * 8, dst_pitch);
251 vp9_bilinear_predict8x8_mmx(src_ptr + 8 * src_pixels_per_line + 8,
252 src_pixels_per_line, xoffset, yoffset,
253 dst_ptr + dst_pitch * 8 + 8, dst_pitch);
254 }
255 #endif 231 #endif
256 232
257 #if HAVE_SSE2 233 #if HAVE_SSE2
258 void vp9_sixtap_predict16x16_sse2(unsigned char *src_ptr, 234 void vp9_sixtap_predict16x16_sse2(unsigned char *src_ptr,
259 int src_pixels_per_line, 235 int src_pixels_per_line,
260 int xoffset, 236 int xoffset,
261 int yoffset, 237 int yoffset,
262 unsigned char *dst_ptr, 238 unsigned char *dst_ptr,
263 int dst_pitch) { 239 int dst_pitch) {
264 /* Temp data bufffer used in filtering */ 240 /* Temp data bufffer used in filtering */
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 if (hfilter_aligned16[3] != 128) { 592 if (hfilter_aligned16[3] != 128) {
617 vp9_filter_block1d8_h8_ssse3(src_ptr, src_stride, dst_ptr, dst_stride, 4, 593 vp9_filter_block1d8_h8_ssse3(src_ptr, src_stride, dst_ptr, dst_stride, 4,
618 hfilter_aligned16); 594 hfilter_aligned16);
619 } else { 595 } else {
620 vp9_filter_block1d8_v8_ssse3(src_ptr - (3 * src_stride), src_stride, 596 vp9_filter_block1d8_v8_ssse3(src_ptr - (3 * src_stride), src_stride,
621 dst_ptr, dst_stride, 4, vfilter_aligned16); 597 dst_ptr, dst_stride, 4, vfilter_aligned16);
622 } 598 }
623 } 599 }
624 } 600 }
625 #endif 601 #endif
OLDNEW
« no previous file with comments | « source/libvpx/vp9/common/vp9_type_aliases.h ('k') | source/libvpx/vp9/common/x86/vp9_filter_sse2.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698