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

Side by Side Diff: source/convert_from_argb.cc

Issue 2378753004: Add MSA optimized I422ToYUY2Row, I422ToUYVYRow functions (Closed)
Patch Set: Created 4 years, 2 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
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2012 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 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 } 546 }
547 #endif 547 #endif
548 #if defined(HAS_I422TOYUY2ROW_NEON) 548 #if defined(HAS_I422TOYUY2ROW_NEON)
549 if (TestCpuFlag(kCpuHasNEON)) { 549 if (TestCpuFlag(kCpuHasNEON)) {
550 I422ToYUY2Row = I422ToYUY2Row_Any_NEON; 550 I422ToYUY2Row = I422ToYUY2Row_Any_NEON;
551 if (IS_ALIGNED(width, 16)) { 551 if (IS_ALIGNED(width, 16)) {
552 I422ToYUY2Row = I422ToYUY2Row_NEON; 552 I422ToYUY2Row = I422ToYUY2Row_NEON;
553 } 553 }
554 } 554 }
555 #endif 555 #endif
556 #if defined(HAS_I422TOYUY2ROW_MSA)
557 if (TestCpuFlag(kCpuHasMSA)) {
558 I422ToYUY2Row = I422ToYUY2Row_Any_MSA;
559 if (IS_ALIGNED(width, 32)) {
560 I422ToYUY2Row = I422ToYUY2Row_MSA;
561 }
562 }
563 #endif
556 564
557 { 565 {
558 // Allocate a rows of yuv. 566 // Allocate a rows of yuv.
559 align_buffer_64(row_y, ((width + 63) & ~63) * 2); 567 align_buffer_64(row_y, ((width + 63) & ~63) * 2);
560 uint8* row_u = row_y + ((width + 63) & ~63); 568 uint8* row_u = row_y + ((width + 63) & ~63);
561 uint8* row_v = row_u + ((width + 63) & ~63) / 2; 569 uint8* row_v = row_u + ((width + 63) & ~63) / 2;
562 570
563 for (y = 0; y < height; ++y) { 571 for (y = 0; y < height; ++y) {
564 ARGBToUVRow(src_argb, 0, row_u, row_v, width); 572 ARGBToUVRow(src_argb, 0, row_u, row_v, width);
565 ARGBToYRow(src_argb, row_y, width); 573 ARGBToYRow(src_argb, row_y, width);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 } 656 }
649 #endif 657 #endif
650 #if defined(HAS_I422TOUYVYROW_NEON) 658 #if defined(HAS_I422TOUYVYROW_NEON)
651 if (TestCpuFlag(kCpuHasNEON)) { 659 if (TestCpuFlag(kCpuHasNEON)) {
652 I422ToUYVYRow = I422ToUYVYRow_Any_NEON; 660 I422ToUYVYRow = I422ToUYVYRow_Any_NEON;
653 if (IS_ALIGNED(width, 16)) { 661 if (IS_ALIGNED(width, 16)) {
654 I422ToUYVYRow = I422ToUYVYRow_NEON; 662 I422ToUYVYRow = I422ToUYVYRow_NEON;
655 } 663 }
656 } 664 }
657 #endif 665 #endif
666 #if defined(HAS_I422TOUYVYROW_MSA)
667 if (TestCpuFlag(kCpuHasMSA)) {
668 I422ToUYVYRow = I422ToUYVYRow_Any_MSA;
669 if (IS_ALIGNED(width, 32)) {
670 I422ToUYVYRow = I422ToUYVYRow_MSA;
671 }
672 }
673 #endif
658 674
659 { 675 {
660 // Allocate a rows of yuv. 676 // Allocate a rows of yuv.
661 align_buffer_64(row_y, ((width + 63) & ~63) * 2); 677 align_buffer_64(row_y, ((width + 63) & ~63) * 2);
662 uint8* row_u = row_y + ((width + 63) & ~63); 678 uint8* row_u = row_y + ((width + 63) & ~63);
663 uint8* row_v = row_u + ((width + 63) & ~63) / 2; 679 uint8* row_v = row_u + ((width + 63) & ~63) / 2;
664 680
665 for (y = 0; y < height; ++y) { 681 for (y = 0; y < height; ++y) {
666 ARGBToUVRow(src_argb, 0, row_u, row_v, width); 682 ARGBToUVRow(src_argb, 0, row_u, row_v, width);
667 ARGBToYRow(src_argb, row_y, width); 683 ARGBToYRow(src_argb, row_y, width);
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after
1277 src_argb += src_stride_argb; 1293 src_argb += src_stride_argb;
1278 dst_yj += dst_stride_yj; 1294 dst_yj += dst_stride_yj;
1279 } 1295 }
1280 return 0; 1296 return 0;
1281 } 1297 }
1282 1298
1283 #ifdef __cplusplus 1299 #ifdef __cplusplus
1284 } // extern "C" 1300 } // extern "C"
1285 } // namespace libyuv 1301 } // namespace libyuv
1286 #endif 1302 #endif
OLDNEW
« no previous file with comments | « source/convert_from.cc ('k') | source/cpu_id.cc » ('j') | source/cpu_id.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698