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

Side by Side Diff: source/scale_argb.cc

Issue 2527983002: Add MSA optimized ARGB scaling functions (Closed)
Patch Set: Changes as per review comments Created 4 years 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 | « source/scale_any.cc ('k') | source/scale_msa.cc » ('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 2011 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2011 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 : ScaleARGBRowDown2Box_Any_NEON); 85 : ScaleARGBRowDown2Box_Any_NEON);
86 if (IS_ALIGNED(dst_width, 8)) { 86 if (IS_ALIGNED(dst_width, 8)) {
87 ScaleARGBRowDown2 = 87 ScaleARGBRowDown2 =
88 filtering == kFilterNone 88 filtering == kFilterNone
89 ? ScaleARGBRowDown2_NEON 89 ? ScaleARGBRowDown2_NEON
90 : (filtering == kFilterLinear ? ScaleARGBRowDown2Linear_NEON 90 : (filtering == kFilterLinear ? ScaleARGBRowDown2Linear_NEON
91 : ScaleARGBRowDown2Box_NEON); 91 : ScaleARGBRowDown2Box_NEON);
92 } 92 }
93 } 93 }
94 #endif 94 #endif
95 #if defined(HAS_SCALEARGBROWDOWN2_MSA)
96 if (TestCpuFlag(kCpuHasMSA)) {
97 ScaleARGBRowDown2 =
98 filtering == kFilterNone
99 ? ScaleARGBRowDown2_Any_MSA
100 : (filtering == kFilterLinear ? ScaleARGBRowDown2Linear_Any_MSA
101 : ScaleARGBRowDown2Box_Any_MSA);
102 if (IS_ALIGNED(dst_width, 4)) {
103 ScaleARGBRowDown2 =
104 filtering == kFilterNone
105 ? ScaleARGBRowDown2_MSA
106 : (filtering == kFilterLinear ? ScaleARGBRowDown2Linear_MSA
107 : ScaleARGBRowDown2Box_MSA);
108 }
109 }
110 #endif
95 111
96 if (filtering == kFilterLinear) { 112 if (filtering == kFilterLinear) {
97 src_stride = 0; 113 src_stride = 0;
98 } 114 }
99 for (j = 0; j < dst_height; ++j) { 115 for (j = 0; j < dst_height; ++j) {
100 ScaleARGBRowDown2(src_argb, src_stride, dst_argb, dst_width); 116 ScaleARGBRowDown2(src_argb, src_stride, dst_argb, dst_width);
101 src_argb += row_stride; 117 src_argb += row_stride;
102 dst_argb += dst_stride; 118 dst_argb += dst_stride;
103 } 119 }
104 } 120 }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 #if defined(HAS_SCALEARGBROWDOWNEVEN_NEON) 212 #if defined(HAS_SCALEARGBROWDOWNEVEN_NEON)
197 if (TestCpuFlag(kCpuHasNEON)) { 213 if (TestCpuFlag(kCpuHasNEON)) {
198 ScaleARGBRowDownEven = filtering ? ScaleARGBRowDownEvenBox_Any_NEON 214 ScaleARGBRowDownEven = filtering ? ScaleARGBRowDownEvenBox_Any_NEON
199 : ScaleARGBRowDownEven_Any_NEON; 215 : ScaleARGBRowDownEven_Any_NEON;
200 if (IS_ALIGNED(dst_width, 4)) { 216 if (IS_ALIGNED(dst_width, 4)) {
201 ScaleARGBRowDownEven = 217 ScaleARGBRowDownEven =
202 filtering ? ScaleARGBRowDownEvenBox_NEON : ScaleARGBRowDownEven_NEON; 218 filtering ? ScaleARGBRowDownEvenBox_NEON : ScaleARGBRowDownEven_NEON;
203 } 219 }
204 } 220 }
205 #endif 221 #endif
222 #if defined(HAS_SCALEARGBROWDOWNEVEN_MSA)
223 if (TestCpuFlag(kCpuHasMSA)) {
224 ScaleARGBRowDownEven = filtering ? ScaleARGBRowDownEvenBox_Any_MSA
225 : ScaleARGBRowDownEven_Any_MSA;
226 if (IS_ALIGNED(dst_width, 4)) {
227 ScaleARGBRowDownEven =
228 filtering ? ScaleARGBRowDownEvenBox_MSA : ScaleARGBRowDownEven_MSA;
229 }
230 }
231 #endif
206 232
207 if (filtering == kFilterLinear) { 233 if (filtering == kFilterLinear) {
208 src_stride = 0; 234 src_stride = 0;
209 } 235 }
210 for (j = 0; j < dst_height; ++j) { 236 for (j = 0; j < dst_height; ++j) {
211 ScaleARGBRowDownEven(src_argb, src_stride, col_step, dst_argb, dst_width); 237 ScaleARGBRowDownEven(src_argb, src_stride, col_step, dst_argb, dst_width);
212 src_argb += row_stride; 238 src_argb += row_stride;
213 dst_argb += dst_stride; 239 dst_argb += dst_stride;
214 } 240 }
215 } 241 }
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after
922 dst_stride_argb, dst_width, dst_height, clip_x, clip_y, 948 dst_stride_argb, dst_width, dst_height, clip_x, clip_y,
923 clip_width, clip_height, filtering); 949 clip_width, clip_height, filtering);
924 free(argb_buffer); 950 free(argb_buffer);
925 return r; 951 return r;
926 } 952 }
927 953
928 #ifdef __cplusplus 954 #ifdef __cplusplus
929 } // extern "C" 955 } // extern "C"
930 } // namespace libyuv 956 } // namespace libyuv
931 #endif 957 #endif
OLDNEW
« no previous file with comments | « source/scale_any.cc ('k') | source/scale_msa.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698