OLD | NEW |
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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 | 96 |
97 // The following are available on Mips platforms: | 97 // The following are available on Mips platforms: |
98 #if !defined(LIBYUV_DISABLE_MIPS) && !defined(__native_client__) && \ | 98 #if !defined(LIBYUV_DISABLE_MIPS) && !defined(__native_client__) && \ |
99 defined(__mips__) && defined(__mips_dsp) && (__mips_dsp_rev >= 2) | 99 defined(__mips__) && defined(__mips_dsp) && (__mips_dsp_rev >= 2) |
100 #define HAS_SCALEROWDOWN2_DSPR2 | 100 #define HAS_SCALEROWDOWN2_DSPR2 |
101 #define HAS_SCALEROWDOWN4_DSPR2 | 101 #define HAS_SCALEROWDOWN4_DSPR2 |
102 #define HAS_SCALEROWDOWN34_DSPR2 | 102 #define HAS_SCALEROWDOWN34_DSPR2 |
103 #define HAS_SCALEROWDOWN38_DSPR2 | 103 #define HAS_SCALEROWDOWN38_DSPR2 |
104 #endif | 104 #endif |
105 | 105 |
| 106 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) |
| 107 #define HAS_SCALEARGBROWDOWN2_MSA |
| 108 #define HAS_SCALEARGBROWDOWNEVEN_MSA |
| 109 #endif |
| 110 |
106 // Scale ARGB vertically with bilinear interpolation. | 111 // Scale ARGB vertically with bilinear interpolation. |
107 void ScalePlaneVertical(int src_height, | 112 void ScalePlaneVertical(int src_height, |
108 int dst_width, | 113 int dst_width, |
109 int dst_height, | 114 int dst_height, |
110 int src_stride, | 115 int src_stride, |
111 int dst_stride, | 116 int dst_stride, |
112 const uint8* src_argb, | 117 const uint8* src_argb, |
113 uint8* dst_argb, | 118 uint8* dst_argb, |
114 int x, | 119 int x, |
115 int y, | 120 int y, |
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 uint8* dst, | 560 uint8* dst, |
556 int dst_width); | 561 int dst_width); |
557 void ScaleARGBRowDown2Linear_NEON(const uint8* src_argb, | 562 void ScaleARGBRowDown2Linear_NEON(const uint8* src_argb, |
558 ptrdiff_t src_stride, | 563 ptrdiff_t src_stride, |
559 uint8* dst_argb, | 564 uint8* dst_argb, |
560 int dst_width); | 565 int dst_width); |
561 void ScaleARGBRowDown2Box_NEON(const uint8* src_ptr, | 566 void ScaleARGBRowDown2Box_NEON(const uint8* src_ptr, |
562 ptrdiff_t src_stride, | 567 ptrdiff_t src_stride, |
563 uint8* dst, | 568 uint8* dst, |
564 int dst_width); | 569 int dst_width); |
| 570 void ScaleARGBRowDown2_MSA(const uint8_t* src_argb, |
| 571 ptrdiff_t src_stride, |
| 572 uint8_t* dst_argb, |
| 573 int dst_width); |
| 574 void ScaleARGBRowDown2Linear_MSA(const uint8_t* src_argb, |
| 575 ptrdiff_t src_stride, |
| 576 uint8_t* dst_argb, |
| 577 int dst_width); |
| 578 void ScaleARGBRowDown2Box_MSA(const uint8_t* src_argb, |
| 579 ptrdiff_t src_stride, |
| 580 uint8_t* dst_argb, |
| 581 int dst_width); |
565 void ScaleARGBRowDown2_Any_SSE2(const uint8* src_argb, | 582 void ScaleARGBRowDown2_Any_SSE2(const uint8* src_argb, |
566 ptrdiff_t src_stride, | 583 ptrdiff_t src_stride, |
567 uint8* dst_argb, | 584 uint8* dst_argb, |
568 int dst_width); | 585 int dst_width); |
569 void ScaleARGBRowDown2Linear_Any_SSE2(const uint8* src_argb, | 586 void ScaleARGBRowDown2Linear_Any_SSE2(const uint8* src_argb, |
570 ptrdiff_t src_stride, | 587 ptrdiff_t src_stride, |
571 uint8* dst_argb, | 588 uint8* dst_argb, |
572 int dst_width); | 589 int dst_width); |
573 void ScaleARGBRowDown2Box_Any_SSE2(const uint8* src_argb, | 590 void ScaleARGBRowDown2Box_Any_SSE2(const uint8* src_argb, |
574 ptrdiff_t src_stride, | 591 ptrdiff_t src_stride, |
575 uint8* dst_argb, | 592 uint8* dst_argb, |
576 int dst_width); | 593 int dst_width); |
577 void ScaleARGBRowDown2_Any_NEON(const uint8* src_ptr, | 594 void ScaleARGBRowDown2_Any_NEON(const uint8* src_ptr, |
578 ptrdiff_t src_stride, | 595 ptrdiff_t src_stride, |
579 uint8* dst, | 596 uint8* dst, |
580 int dst_width); | 597 int dst_width); |
581 void ScaleARGBRowDown2Linear_Any_NEON(const uint8* src_argb, | 598 void ScaleARGBRowDown2Linear_Any_NEON(const uint8* src_argb, |
582 ptrdiff_t src_stride, | 599 ptrdiff_t src_stride, |
583 uint8* dst_argb, | 600 uint8* dst_argb, |
584 int dst_width); | 601 int dst_width); |
585 void ScaleARGBRowDown2Box_Any_NEON(const uint8* src_ptr, | 602 void ScaleARGBRowDown2Box_Any_NEON(const uint8* src_ptr, |
586 ptrdiff_t src_stride, | 603 ptrdiff_t src_stride, |
587 uint8* dst, | 604 uint8* dst, |
588 int dst_width); | 605 int dst_width); |
| 606 void ScaleARGBRowDown2_Any_MSA(const uint8_t* src_argb, |
| 607 ptrdiff_t src_stride, |
| 608 uint8_t* dst_argb, |
| 609 int dst_width); |
| 610 void ScaleARGBRowDown2Linear_Any_MSA(const uint8_t* src_argb, |
| 611 ptrdiff_t src_stride, |
| 612 uint8_t* dst_argb, |
| 613 int dst_width); |
| 614 void ScaleARGBRowDown2Box_Any_MSA(const uint8_t* src_argb, |
| 615 ptrdiff_t src_stride, |
| 616 uint8_t* dst_argb, |
| 617 int dst_width); |
589 | 618 |
590 void ScaleARGBRowDownEven_SSE2(const uint8* src_argb, | 619 void ScaleARGBRowDownEven_SSE2(const uint8* src_argb, |
591 ptrdiff_t src_stride, | 620 ptrdiff_t src_stride, |
592 int src_stepx, | 621 int src_stepx, |
593 uint8* dst_argb, | 622 uint8* dst_argb, |
594 int dst_width); | 623 int dst_width); |
595 void ScaleARGBRowDownEvenBox_SSE2(const uint8* src_argb, | 624 void ScaleARGBRowDownEvenBox_SSE2(const uint8* src_argb, |
596 ptrdiff_t src_stride, | 625 ptrdiff_t src_stride, |
597 int src_stepx, | 626 int src_stepx, |
598 uint8* dst_argb, | 627 uint8* dst_argb, |
599 int dst_width); | 628 int dst_width); |
600 void ScaleARGBRowDownEven_NEON(const uint8* src_argb, | 629 void ScaleARGBRowDownEven_NEON(const uint8* src_argb, |
601 ptrdiff_t src_stride, | 630 ptrdiff_t src_stride, |
602 int src_stepx, | 631 int src_stepx, |
603 uint8* dst_argb, | 632 uint8* dst_argb, |
604 int dst_width); | 633 int dst_width); |
605 void ScaleARGBRowDownEvenBox_NEON(const uint8* src_argb, | 634 void ScaleARGBRowDownEvenBox_NEON(const uint8* src_argb, |
606 ptrdiff_t src_stride, | 635 ptrdiff_t src_stride, |
607 int src_stepx, | 636 int src_stepx, |
608 uint8* dst_argb, | 637 uint8* dst_argb, |
609 int dst_width); | 638 int dst_width); |
| 639 void ScaleARGBRowDownEven_MSA(const uint8_t* src_argb, |
| 640 ptrdiff_t src_stride, |
| 641 int32_t src_stepx, |
| 642 uint8_t* dst_argb, |
| 643 int dst_width); |
| 644 void ScaleARGBRowDownEvenBox_MSA(const uint8* src_argb, |
| 645 ptrdiff_t src_stride, |
| 646 int src_stepx, |
| 647 uint8* dst_argb, |
| 648 int dst_width); |
610 void ScaleARGBRowDownEven_Any_SSE2(const uint8* src_argb, | 649 void ScaleARGBRowDownEven_Any_SSE2(const uint8* src_argb, |
611 ptrdiff_t src_stride, | 650 ptrdiff_t src_stride, |
612 int src_stepx, | 651 int src_stepx, |
613 uint8* dst_argb, | 652 uint8* dst_argb, |
614 int dst_width); | 653 int dst_width); |
615 void ScaleARGBRowDownEvenBox_Any_SSE2(const uint8* src_argb, | 654 void ScaleARGBRowDownEvenBox_Any_SSE2(const uint8* src_argb, |
616 ptrdiff_t src_stride, | 655 ptrdiff_t src_stride, |
617 int src_stepx, | 656 int src_stepx, |
618 uint8* dst_argb, | 657 uint8* dst_argb, |
619 int dst_width); | 658 int dst_width); |
620 void ScaleARGBRowDownEven_Any_NEON(const uint8* src_argb, | 659 void ScaleARGBRowDownEven_Any_NEON(const uint8* src_argb, |
621 ptrdiff_t src_stride, | 660 ptrdiff_t src_stride, |
622 int src_stepx, | 661 int src_stepx, |
623 uint8* dst_argb, | 662 uint8* dst_argb, |
624 int dst_width); | 663 int dst_width); |
625 void ScaleARGBRowDownEvenBox_Any_NEON(const uint8* src_argb, | 664 void ScaleARGBRowDownEvenBox_Any_NEON(const uint8* src_argb, |
626 ptrdiff_t src_stride, | 665 ptrdiff_t src_stride, |
627 int src_stepx, | 666 int src_stepx, |
628 uint8* dst_argb, | 667 uint8* dst_argb, |
629 int dst_width); | 668 int dst_width); |
| 669 void ScaleARGBRowDownEven_Any_MSA(const uint8_t* src_argb, |
| 670 ptrdiff_t src_stride, |
| 671 int32_t src_stepx, |
| 672 uint8_t* dst_argb, |
| 673 int dst_width); |
| 674 void ScaleARGBRowDownEvenBox_Any_MSA(const uint8* src_argb, |
| 675 ptrdiff_t src_stride, |
| 676 int src_stepx, |
| 677 uint8* dst_argb, |
| 678 int dst_width); |
630 | 679 |
631 // ScaleRowDown2Box also used by planar functions | 680 // ScaleRowDown2Box also used by planar functions |
632 // NEON downscalers with interpolation. | 681 // NEON downscalers with interpolation. |
633 | 682 |
634 // Note - not static due to reuse in convert for 444 to 420. | 683 // Note - not static due to reuse in convert for 444 to 420. |
635 void ScaleRowDown2_NEON(const uint8* src_ptr, | 684 void ScaleRowDown2_NEON(const uint8* src_ptr, |
636 ptrdiff_t src_stride, | 685 ptrdiff_t src_stride, |
637 uint8* dst, | 686 uint8* dst, |
638 int dst_width); | 687 int dst_width); |
639 void ScaleRowDown2Linear_NEON(const uint8* src_ptr, | 688 void ScaleRowDown2Linear_NEON(const uint8* src_ptr, |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
793 ptrdiff_t src_stride, | 842 ptrdiff_t src_stride, |
794 uint8* dst_ptr, | 843 uint8* dst_ptr, |
795 int dst_width); | 844 int dst_width); |
796 | 845 |
797 #ifdef __cplusplus | 846 #ifdef __cplusplus |
798 } // extern "C" | 847 } // extern "C" |
799 } // namespace libyuv | 848 } // namespace libyuv |
800 #endif | 849 #endif |
801 | 850 |
802 #endif // INCLUDE_LIBYUV_SCALE_ROW_H_ | 851 #endif // INCLUDE_LIBYUV_SCALE_ROW_H_ |
OLD | NEW |