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

Unified Diff: source/convert.cc

Issue 2595333002: Libyuv MIPS DSPR2 optimizations. (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/libyuv/scale_row.h ('k') | source/convert_argb.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/convert.cc
diff --git a/source/convert.cc b/source/convert.cc
index 3779d999d24e3cd1c314f135cd1bbca84495a588..077a95ec75c0062a2744996a8c3ef810ede5bed2 100644
--- a/source/convert.cc
+++ b/source/convert.cc
@@ -579,6 +579,14 @@ int ARGBToI420(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToYRow = ARGBToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ARGBToYRow = ARGBToYRow_DSPR2;
+ }
+ }
+#endif
#if defined(HAS_ARGBTOYROW_MSA)
if (TestCpuFlag(kCpuHasMSA)) {
ARGBToYRow = ARGBToYRow_Any_MSA;
@@ -587,6 +595,14 @@ int ARGBToI420(const uint8* src_argb,
}
}
#endif
+#if defined(HAS_ARGBTOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ARGBToUVRow = ARGBToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ ARGBToUVRow = ARGBToUVRow_DSPR2;
+ }
+ }
+#endif
#if defined(HAS_ARGBTOUVROW_MSA)
if (TestCpuFlag(kCpuHasMSA)) {
ARGBToUVRow = ARGBToUVRow_Any_MSA;
@@ -664,6 +680,22 @@ int BGRAToI420(const uint8* src_bgra,
}
}
#endif
+#if defined(HAS_BGRATOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ BGRAToYRow = BGRAToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ BGRAToYRow = BGRAToYRow_DSPR2;
+ }
+ }
+#endif
+#if defined(HAS_BGRATOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ BGRAToUVRow = BGRAToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ BGRAToUVRow = BGRAToUVRow_DSPR2;
+ }
+ }
+#endif
for (y = 0; y < height - 1; y += 2) {
BGRAToUVRow(src_bgra, src_stride_bgra, dst_u, dst_v, width);
@@ -733,6 +765,22 @@ int ABGRToI420(const uint8* src_abgr,
}
}
#endif
+#if defined(HAS_ABGRTOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ABGRToYRow = ABGRToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ ABGRToYRow = ABGRToYRow_DSPR2;
+ }
+ }
+#endif
+#if defined(HAS_ABGRTOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ ABGRToUVRow = ABGRToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ ABGRToUVRow = ABGRToUVRow_DSPR2;
+ }
+ }
+#endif
for (y = 0; y < height - 1; y += 2) {
ABGRToUVRow(src_abgr, src_stride_abgr, dst_u, dst_v, width);
@@ -802,6 +850,22 @@ int RGBAToI420(const uint8* src_rgba,
}
}
#endif
+#if defined(HAS_RGBATOYROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ RGBAToYRow = RGBAToYRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ RGBAToYRow = RGBAToYRow_DSPR2;
+ }
+ }
+#endif
+#if defined(HAS_RGBATOUVROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ RGBAToUVRow = RGBAToUVRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 16)) {
+ RGBAToUVRow = RGBAToUVRow_DSPR2;
+ }
+ }
+#endif
for (y = 0; y < height - 1; y += 2) {
RGBAToUVRow(src_rgba, src_stride_rgba, dst_u, dst_v, width);
@@ -1015,6 +1079,14 @@ int RAWToI420(const uint8* src_raw,
}
}
#endif
+#if defined(HAS_RAWTOARGBROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ RAWToARGBRow = RAWToARGBRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 4)) {
+ RAWToARGBRow = RAWToARGBRow_DSPR2;
+ }
+ }
+#endif
{
// Allocate 2 rows of ARGB.
const int kRowSize = (width * 4 + 31) & ~31;
@@ -1143,6 +1215,14 @@ int RGB565ToI420(const uint8* src_rgb565,
}
}
#endif
+#if defined(HAS_RGB565TOARGBROW_DSPR2)
+ if (TestCpuFlag(kCpuHasDSPR2)) {
+ RGB565ToARGBRow = RGB565ToARGBRow_Any_DSPR2;
+ if (IS_ALIGNED(width, 8)) {
+ RGB565ToARGBRow = RGB565ToARGBRow_DSPR2;
+ }
+ }
+#endif
{
// Allocate 2 rows of ARGB.
const int kRowSize = (width * 4 + 31) & ~31;
« no previous file with comments | « include/libyuv/scale_row.h ('k') | source/convert_argb.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698