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

Side by Side Diff: include/libyuv/rotate_row.h

Issue 2617703002: Add MSA optimized rotate functions (used 16x16 transpose) (Closed)
Patch Set: correct file mode Created 3 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
« no previous file with comments | « no previous file | include/libyuv/row.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2013 The LibYuv 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 #define HAS_TRANSPOSEUVWX8_NEON 54 #define HAS_TRANSPOSEUVWX8_NEON
55 #endif 55 #endif
56 56
57 #if !defined(LIBYUV_DISABLE_MIPS) && !defined(__native_client__) && \ 57 #if !defined(LIBYUV_DISABLE_MIPS) && !defined(__native_client__) && \
58 defined(__mips__) && defined(__mips_dsp) && (__mips_dsp_rev >= 2) 58 defined(__mips__) && defined(__mips_dsp) && (__mips_dsp_rev >= 2)
59 #define HAS_TRANSPOSEWX8_DSPR2 59 #define HAS_TRANSPOSEWX8_DSPR2
60 #define HAS_TRANSPOSEUVWX8_DSPR2 60 #define HAS_TRANSPOSEUVWX8_DSPR2
61 #endif // defined(__mips__) 61 #endif // defined(__mips__)
62 62
63 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) 63 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa)
64 #define HAS_TRANSPOSEWX8_MSA 64 #define HAS_TRANSPOSEWX16_MSA
65 #define HAS_TRANSPOSEUVWX8_MSA 65 #define HAS_TRANSPOSEUVWX16_MSA
66 #endif 66 #endif
67 67
68 void TransposeWxH_C(const uint8* src, 68 void TransposeWxH_C(const uint8* src,
69 int src_stride, 69 int src_stride,
70 uint8* dst, 70 uint8* dst,
71 int dst_stride, 71 int dst_stride,
72 int width, 72 int width,
73 int height); 73 int height);
74 74
75 void TransposeWx8_C(const uint8* src, 75 void TransposeWx8_C(const uint8* src,
76 int src_stride, 76 int src_stride,
77 uint8* dst, 77 uint8* dst,
78 int dst_stride, 78 int dst_stride,
79 int width); 79 int width);
80 void TransposeWx16_C(const uint8* src,
81 int src_stride,
82 uint8* dst,
83 int dst_stride,
84 int width);
80 void TransposeWx8_NEON(const uint8* src, 85 void TransposeWx8_NEON(const uint8* src,
81 int src_stride, 86 int src_stride,
82 uint8* dst, 87 uint8* dst,
83 int dst_stride, 88 int dst_stride,
84 int width); 89 int width);
85 void TransposeWx8_SSSE3(const uint8* src, 90 void TransposeWx8_SSSE3(const uint8* src,
86 int src_stride, 91 int src_stride,
87 uint8* dst, 92 uint8* dst,
88 int dst_stride, 93 int dst_stride,
89 int width); 94 int width);
90 void TransposeWx8_Fast_SSSE3(const uint8* src, 95 void TransposeWx8_Fast_SSSE3(const uint8* src,
91 int src_stride, 96 int src_stride,
92 uint8* dst, 97 uint8* dst,
93 int dst_stride, 98 int dst_stride,
94 int width); 99 int width);
95 void TransposeWx8_DSPR2(const uint8* src, 100 void TransposeWx8_DSPR2(const uint8* src,
96 int src_stride, 101 int src_stride,
97 uint8* dst, 102 uint8* dst,
98 int dst_stride, 103 int dst_stride,
99 int width); 104 int width);
100 void TransposeWx8_Fast_DSPR2(const uint8* src, 105 void TransposeWx8_Fast_DSPR2(const uint8* src,
101 int src_stride, 106 int src_stride,
102 uint8* dst, 107 uint8* dst,
103 int dst_stride, 108 int dst_stride,
104 int width); 109 int width);
105 void TransposeWx8_MSA(const uint8* src, 110 void TransposeWx16_MSA(const uint8* src,
106 int src_stride, 111 int src_stride,
107 uint8* dst, 112 uint8* dst,
108 int dst_stride, 113 int dst_stride,
109 int width); 114 int width);
110 115
111 void TransposeWx8_Any_NEON(const uint8* src, 116 void TransposeWx8_Any_NEON(const uint8* src,
112 int src_stride, 117 int src_stride,
113 uint8* dst, 118 uint8* dst,
114 int dst_stride, 119 int dst_stride,
115 int width); 120 int width);
116 void TransposeWx8_Any_SSSE3(const uint8* src, 121 void TransposeWx8_Any_SSSE3(const uint8* src,
117 int src_stride, 122 int src_stride,
118 uint8* dst, 123 uint8* dst,
119 int dst_stride, 124 int dst_stride,
120 int width); 125 int width);
121 void TransposeWx8_Fast_Any_SSSE3(const uint8* src, 126 void TransposeWx8_Fast_Any_SSSE3(const uint8* src,
122 int src_stride, 127 int src_stride,
123 uint8* dst, 128 uint8* dst,
124 int dst_stride, 129 int dst_stride,
125 int width); 130 int width);
126 void TransposeWx8_Any_DSPR2(const uint8* src, 131 void TransposeWx8_Any_DSPR2(const uint8* src,
127 int src_stride, 132 int src_stride,
128 uint8* dst, 133 uint8* dst,
129 int dst_stride, 134 int dst_stride,
130 int width); 135 int width);
131 void TransposeWx8_Any_MSA(const uint8* src, 136 void TransposeWx16_Any_MSA(const uint8* src,
132 int src_stride, 137 int src_stride,
133 uint8* dst, 138 uint8* dst,
134 int dst_stride, 139 int dst_stride,
135 int width); 140 int width);
136 141
137 void TransposeUVWxH_C(const uint8* src, 142 void TransposeUVWxH_C(const uint8* src,
138 int src_stride, 143 int src_stride,
139 uint8* dst_a, 144 uint8* dst_a,
140 int dst_stride_a, 145 int dst_stride_a,
141 uint8* dst_b, 146 uint8* dst_b,
142 int dst_stride_b, 147 int dst_stride_b,
143 int width, 148 int width,
144 int height); 149 int height);
145 150
146 void TransposeUVWx8_C(const uint8* src, 151 void TransposeUVWx8_C(const uint8* src,
147 int src_stride, 152 int src_stride,
148 uint8* dst_a, 153 uint8* dst_a,
149 int dst_stride_a, 154 int dst_stride_a,
150 uint8* dst_b, 155 uint8* dst_b,
151 int dst_stride_b, 156 int dst_stride_b,
152 int width); 157 int width);
158 void TransposeUVWx16_C(const uint8* src,
159 int src_stride,
160 uint8* dst_a,
161 int dst_stride_a,
162 uint8* dst_b,
163 int dst_stride_b,
164 int width);
153 void TransposeUVWx8_SSE2(const uint8* src, 165 void TransposeUVWx8_SSE2(const uint8* src,
154 int src_stride, 166 int src_stride,
155 uint8* dst_a, 167 uint8* dst_a,
156 int dst_stride_a, 168 int dst_stride_a,
157 uint8* dst_b, 169 uint8* dst_b,
158 int dst_stride_b, 170 int dst_stride_b,
159 int width); 171 int width);
160 void TransposeUVWx8_NEON(const uint8* src, 172 void TransposeUVWx8_NEON(const uint8* src,
161 int src_stride, 173 int src_stride,
162 uint8* dst_a, 174 uint8* dst_a,
163 int dst_stride_a, 175 int dst_stride_a,
164 uint8* dst_b, 176 uint8* dst_b,
165 int dst_stride_b, 177 int dst_stride_b,
166 int width); 178 int width);
167 void TransposeUVWx8_DSPR2(const uint8* src, 179 void TransposeUVWx8_DSPR2(const uint8* src,
168 int src_stride, 180 int src_stride,
169 uint8* dst_a, 181 uint8* dst_a,
170 int dst_stride_a, 182 int dst_stride_a,
171 uint8* dst_b, 183 uint8* dst_b,
172 int dst_stride_b, 184 int dst_stride_b,
173 int width); 185 int width);
174 void TransposeUVWx8_MSA(const uint8* src, 186 void TransposeUVWx16_MSA(const uint8* src,
175 int src_stride, 187 int src_stride,
176 uint8* dst_a, 188 uint8* dst_a,
177 int dst_stride_a, 189 int dst_stride_a,
178 uint8* dst_b, 190 uint8* dst_b,
179 int dst_stride_b, 191 int dst_stride_b,
180 int width); 192 int width);
181 193
182 void TransposeUVWx8_Any_SSE2(const uint8* src, 194 void TransposeUVWx8_Any_SSE2(const uint8* src,
183 int src_stride, 195 int src_stride,
184 uint8* dst_a, 196 uint8* dst_a,
185 int dst_stride_a, 197 int dst_stride_a,
186 uint8* dst_b, 198 uint8* dst_b,
187 int dst_stride_b, 199 int dst_stride_b,
188 int width); 200 int width);
189 void TransposeUVWx8_Any_NEON(const uint8* src, 201 void TransposeUVWx8_Any_NEON(const uint8* src,
190 int src_stride, 202 int src_stride,
191 uint8* dst_a, 203 uint8* dst_a,
192 int dst_stride_a, 204 int dst_stride_a,
193 uint8* dst_b, 205 uint8* dst_b,
194 int dst_stride_b, 206 int dst_stride_b,
195 int width); 207 int width);
196 void TransposeUVWx8_Any_DSPR2(const uint8* src, 208 void TransposeUVWx8_Any_DSPR2(const uint8* src,
197 int src_stride, 209 int src_stride,
198 uint8* dst_a, 210 uint8* dst_a,
199 int dst_stride_a, 211 int dst_stride_a,
200 uint8* dst_b, 212 uint8* dst_b,
201 int dst_stride_b, 213 int dst_stride_b,
202 int width); 214 int width);
203 void TransposeUVWx8_Any_MSA(const uint8* src, 215 void TransposeUVWx16_Any_MSA(const uint8* src,
204 int src_stride, 216 int src_stride,
205 uint8* dst_a, 217 uint8* dst_a,
206 int dst_stride_a, 218 int dst_stride_a,
207 uint8* dst_b, 219 uint8* dst_b,
208 int dst_stride_b, 220 int dst_stride_b,
209 int width); 221 int width);
210 222
211 #ifdef __cplusplus 223 #ifdef __cplusplus
212 } // extern "C" 224 } // extern "C"
213 } // namespace libyuv 225 } // namespace libyuv
214 #endif 226 #endif
215 227
216 #endif // INCLUDE_LIBYUV_ROTATE_ROW_H_ 228 #endif // INCLUDE_LIBYUV_ROTATE_ROW_H_
OLDNEW
« no previous file with comments | « no previous file | include/libyuv/row.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698