Mercurial > libavcodec.hg
comparison mpegaudiodec.c @ 3598:181b0e8f6d81 libavcodec
reorder butterflies to reduce memory load/store
author | michael |
---|---|
date | Sun, 20 Aug 2006 22:18:26 +0000 |
parents | ef69fc364d98 |
children | 9a069376b7e3 |
comparison
equal
deleted
inserted
replaced
3597:19fafe90977a | 3598:181b0e8f6d81 |
---|---|
580 /* DCT32 without 1/sqrt(2) coef zero scaling. */ | 580 /* DCT32 without 1/sqrt(2) coef zero scaling. */ |
581 static void dct32(int32_t *out, int32_t *tab) | 581 static void dct32(int32_t *out, int32_t *tab) |
582 { | 582 { |
583 int tmp0, tmp1; | 583 int tmp0, tmp1; |
584 | 584 |
585 | |
585 /* pass 1 */ | 586 /* pass 1 */ |
586 BF(0, 31, COS0_0); | 587 BF(0, 31, COS0_0); |
587 BF(1, 30, COS0_1); | 588 BF(15, 16, COS0_15); |
588 BF(2, 29, COS0_2); | 589 /* pass 2 */ |
589 BF(3, 28, COS0_3); | 590 BF(0, 15, COS1_0); |
590 BF(4, 27, COS0_4); | 591 BF(16, 31, -COS1_0); |
591 BF(5, 26, COS0_5); | 592 /* pass 1 */ |
592 BF(6, 25, COS0_6); | |
593 BF(7, 24, COS0_7); | 593 BF(7, 24, COS0_7); |
594 BF(8, 23, COS0_8); | 594 BF(8, 23, COS0_8); |
595 BF(9, 22, COS0_9); | |
596 BF(10, 21, COS0_10); | |
597 BF(11, 20, COS0_11); | |
598 BF(12, 19, COS0_12); | |
599 BF(13, 18, COS0_13); | |
600 BF(14, 17, COS0_14); | |
601 BF(15, 16, COS0_15); | |
602 | |
603 /* pass 2 */ | 595 /* pass 2 */ |
604 BF(0, 15, COS1_0); | |
605 BF(1, 14, COS1_1); | |
606 BF(2, 13, COS1_2); | |
607 BF(3, 12, COS1_3); | |
608 BF(4, 11, COS1_4); | |
609 BF(5, 10, COS1_5); | |
610 BF(6, 9, COS1_6); | |
611 BF(7, 8, COS1_7); | 596 BF(7, 8, COS1_7); |
612 | |
613 BF(16, 31, -COS1_0); | |
614 BF(17, 30, -COS1_1); | |
615 BF(18, 29, -COS1_2); | |
616 BF(19, 28, -COS1_3); | |
617 BF(20, 27, -COS1_4); | |
618 BF(21, 26, -COS1_5); | |
619 BF(22, 25, -COS1_6); | |
620 BF(23, 24, -COS1_7); | 597 BF(23, 24, -COS1_7); |
621 | |
622 /* pass 3 */ | 598 /* pass 3 */ |
623 BF(0, 7, COS2_0); | 599 BF(0, 7, COS2_0); |
624 BF(1, 6, COS2_1); | 600 BF(8, 15, -COS2_0); |
625 BF(2, 5, COS2_2); | 601 BF(16, 23, COS2_0); |
602 BF(24, 31, -COS2_0); | |
603 /* pass 1 */ | |
604 BF(3, 28, COS0_3); | |
605 BF(12, 19, COS0_12); | |
606 /* pass 2 */ | |
607 BF(3, 12, COS1_3); | |
608 BF(19, 28, -COS1_3); | |
609 /* pass 1 */ | |
610 BF(4, 27, COS0_4); | |
611 BF(11, 20, COS0_11); | |
612 /* pass 2 */ | |
613 BF(4, 11, COS1_4); | |
614 BF(20, 27, -COS1_4); | |
615 /* pass 3 */ | |
626 BF(3, 4, COS2_3); | 616 BF(3, 4, COS2_3); |
627 | |
628 BF(8, 15, -COS2_0); | |
629 BF(9, 14, -COS2_1); | |
630 BF(10, 13, -COS2_2); | |
631 BF(11, 12, -COS2_3); | 617 BF(11, 12, -COS2_3); |
632 | |
633 BF(16, 23, COS2_0); | |
634 BF(17, 22, COS2_1); | |
635 BF(18, 21, COS2_2); | |
636 BF(19, 20, COS2_3); | 618 BF(19, 20, COS2_3); |
637 | |
638 BF(24, 31, -COS2_0); | |
639 BF(25, 30, -COS2_1); | |
640 BF(26, 29, -COS2_2); | |
641 BF(27, 28, -COS2_3); | 619 BF(27, 28, -COS2_3); |
642 | |
643 /* pass 4 */ | 620 /* pass 4 */ |
644 BF(0, 3, COS3_0); | 621 BF(0, 3, COS3_0); |
622 BF(4, 7, -COS3_0); | |
623 BF(8, 11, COS3_0); | |
624 BF(12, 15, -COS3_0); | |
625 BF(16, 19, COS3_0); | |
626 BF(20, 23, -COS3_0); | |
627 BF(24, 27, COS3_0); | |
628 BF(28, 31, -COS3_0); | |
629 | |
630 | |
631 | |
632 /* pass 1 */ | |
633 BF(1, 30, COS0_1); | |
634 BF(14, 17, COS0_14); | |
635 /* pass 2 */ | |
636 BF(1, 14, COS1_1); | |
637 BF(17, 30, -COS1_1); | |
638 /* pass 1 */ | |
639 BF(6, 25, COS0_6); | |
640 BF(9, 22, COS0_9); | |
641 /* pass 2 */ | |
642 BF(6, 9, COS1_6); | |
643 BF(22, 25, -COS1_6); | |
644 /* pass 3 */ | |
645 BF(1, 6, COS2_1); | |
646 BF(9, 14, -COS2_1); | |
647 BF(17, 22, COS2_1); | |
648 BF(25, 30, -COS2_1); | |
649 | |
650 /* pass 1 */ | |
651 BF(2, 29, COS0_2); | |
652 BF(13, 18, COS0_13); | |
653 /* pass 2 */ | |
654 BF(2, 13, COS1_2); | |
655 BF(18, 29, -COS1_2); | |
656 /* pass 1 */ | |
657 BF(5, 26, COS0_5); | |
658 BF(10, 21, COS0_10); | |
659 /* pass 2 */ | |
660 BF(5, 10, COS1_5); | |
661 BF(21, 26, -COS1_5); | |
662 /* pass 3 */ | |
663 BF(2, 5, COS2_2); | |
664 BF(10, 13, -COS2_2); | |
665 BF(18, 21, COS2_2); | |
666 BF(26, 29, -COS2_2); | |
667 /* pass 4 */ | |
645 BF(1, 2, COS3_1); | 668 BF(1, 2, COS3_1); |
646 | |
647 BF(4, 7, -COS3_0); | |
648 BF(5, 6, -COS3_1); | 669 BF(5, 6, -COS3_1); |
649 | |
650 BF(8, 11, COS3_0); | |
651 BF(9, 10, COS3_1); | 670 BF(9, 10, COS3_1); |
652 | |
653 BF(12, 15, -COS3_0); | |
654 BF(13, 14, -COS3_1); | 671 BF(13, 14, -COS3_1); |
655 | |
656 BF(16, 19, COS3_0); | |
657 BF(17, 18, COS3_1); | 672 BF(17, 18, COS3_1); |
658 | |
659 BF(20, 23, -COS3_0); | |
660 BF(21, 22, -COS3_1); | 673 BF(21, 22, -COS3_1); |
661 | |
662 BF(24, 27, COS3_0); | |
663 BF(25, 26, COS3_1); | 674 BF(25, 26, COS3_1); |
664 | |
665 BF(28, 31, -COS3_0); | |
666 BF(29, 30, -COS3_1); | 675 BF(29, 30, -COS3_1); |
667 | 676 |
668 /* pass 5 */ | 677 /* pass 5 */ |
669 BF1(0, 1, 2, 3); | 678 BF1(0, 1, 2, 3); |
670 BF2(4, 5, 6, 7); | 679 BF2(4, 5, 6, 7); |