2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
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.
13 #include "vp8/common/filter.h"
14 #include "vp8/common/subpixel.h"
15 #include "bilinearfilter_arm.h"
17 void vp8_filter_block2d_bil_armv6
19 unsigned char *src_ptr
,
20 unsigned char *dst_ptr
,
21 unsigned int src_pitch
,
22 unsigned int dst_pitch
,
29 unsigned short FData
[36*16]; /* Temp data buffer used in filtering */
31 /* First filter 1-D horizontally... */
32 vp8_filter_block2d_bil_first_pass_armv6(src_ptr
, FData
, src_pitch
, Height
+ 1, Width
, HFilter
);
34 /* then 1-D vertically... */
35 vp8_filter_block2d_bil_second_pass_armv6(FData
, dst_ptr
, dst_pitch
, Height
, Width
, VFilter
);
39 void vp8_bilinear_predict4x4_armv6
41 unsigned char *src_ptr
,
42 int src_pixels_per_line
,
45 unsigned char *dst_ptr
,
52 HFilter
= vp8_bilinear_filters
[xoffset
];
53 VFilter
= vp8_bilinear_filters
[yoffset
];
55 vp8_filter_block2d_bil_armv6(src_ptr
, dst_ptr
, src_pixels_per_line
, dst_pitch
, HFilter
, VFilter
, 4, 4);
58 void vp8_bilinear_predict8x8_armv6
60 unsigned char *src_ptr
,
61 int src_pixels_per_line
,
64 unsigned char *dst_ptr
,
71 HFilter
= vp8_bilinear_filters
[xoffset
];
72 VFilter
= vp8_bilinear_filters
[yoffset
];
74 vp8_filter_block2d_bil_armv6(src_ptr
, dst_ptr
, src_pixels_per_line
, dst_pitch
, HFilter
, VFilter
, 8, 8);
77 void vp8_bilinear_predict8x4_armv6
79 unsigned char *src_ptr
,
80 int src_pixels_per_line
,
83 unsigned char *dst_ptr
,
90 HFilter
= vp8_bilinear_filters
[xoffset
];
91 VFilter
= vp8_bilinear_filters
[yoffset
];
93 vp8_filter_block2d_bil_armv6(src_ptr
, dst_ptr
, src_pixels_per_line
, dst_pitch
, HFilter
, VFilter
, 8, 4);
96 void vp8_bilinear_predict16x16_armv6
98 unsigned char *src_ptr
,
99 int src_pixels_per_line
,
102 unsigned char *dst_ptr
,
106 const short *HFilter
;
107 const short *VFilter
;
109 HFilter
= vp8_bilinear_filters
[xoffset
];
110 VFilter
= vp8_bilinear_filters
[yoffset
];
112 vp8_filter_block2d_bil_armv6(src_ptr
, dst_ptr
, src_pixels_per_line
, dst_pitch
, HFilter
, VFilter
, 16, 16);