Mercurial > libavcodec.hg
comparison libpostproc/postprocess.c @ 157:bc12fd7e6153 libavcodec
temp denoiser changes: (a-b)^2 instead of |a-b| and MMX2/3DNOW version
| author | michael |
|---|---|
| date | Wed, 14 Nov 2001 02:46:58 +0000 |
| parents | c09459686be3 |
| children | d1a4f4ca7178 |
comparison
equal
deleted
inserted
replaced
| 156:c09459686be3 | 157:bc12fd7e6153 |
|---|---|
| 33 Horizontal X1# a E E | 33 Horizontal X1# a E E |
| 34 LinIpolDeinterlace e E E* | 34 LinIpolDeinterlace e E E* |
| 35 CubicIpolDeinterlace a e e* | 35 CubicIpolDeinterlace a e e* |
| 36 LinBlendDeinterlace e E E* | 36 LinBlendDeinterlace e E E* |
| 37 MedianDeinterlace# Ec Ec | 37 MedianDeinterlace# Ec Ec |
| 38 TempDeNoiser# a | 38 TempDeNoiser# E e e |
| 39 | 39 |
| 40 * i dont have a 3dnow CPU -> its untested, but noone said it doesnt work so it seems to work | 40 * i dont have a 3dnow CPU -> its untested, but noone said it doesnt work so it seems to work |
| 41 # more or less selfinvented filters so the exactness isnt too meaningfull | 41 # more or less selfinvented filters so the exactness isnt too meaningfull |
| 42 E = Exact implementation | 42 E = Exact implementation |
| 43 e = allmost exact implementation (slightly different rounding,...) | 43 e = allmost exact implementation (slightly different rounding,...) |
| 59 compare the quality & speed of all filters | 59 compare the quality & speed of all filters |
| 60 split this huge file | 60 split this huge file |
| 61 border remover | 61 border remover |
| 62 optimize c versions | 62 optimize c versions |
| 63 try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks | 63 try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks |
| 64 smart blur | |
| 64 ... | 65 ... |
| 65 | 66 |
| 66 Notes: | 67 Notes: |
| 67 */ | 68 */ |
| 68 | 69 |
| 2590 :: "r" (dst), "r" (dstStride), "r" (src) | 2591 :: "r" (dst), "r" (dstStride), "r" (src) |
| 2591 : "%eax", "%ebx" | 2592 : "%eax", "%ebx" |
| 2592 ); | 2593 ); |
| 2593 } | 2594 } |
| 2594 #endif | 2595 #endif |
| 2596 //static int test=0; | |
| 2595 | 2597 |
| 2596 static void inline tempNoiseReducer(uint8_t *src, int stride, | 2598 static void inline tempNoiseReducer(uint8_t *src, int stride, |
| 2597 uint8_t *tempBlured, int *maxNoise) | 2599 uint8_t *tempBlured, int *maxNoise) |
| 2598 { | 2600 { |
| 2601 #define FAST_L2_DIFF | |
| 2602 //#define L1_DIFF //u should change the thresholds too if u try that one | |
| 2603 #if defined (HAVE_MMX2) || defined (HAVE_3DNOW) | |
| 2604 asm volatile( | |
| 2605 "leal (%2, %2, 2), %%eax \n\t" // 3*stride | |
| 2606 "leal (%2, %2, 4), %%ebx \n\t" // 5*stride | |
| 2607 "leal (%%ebx, %2, 2), %%ecx \n\t" // 7*stride | |
| 2608 // 0 1 2 3 4 5 6 7 8 9 | |
| 2609 // %x %x+%2 %x+2%2 %x+eax %x+4%2 %x+ebx %x+2eax %x+ecx %x+8%2 | |
| 2610 //FIXME reorder? | |
| 2611 #ifdef L1_DIFF //needs mmx2 | |
| 2612 "movq (%0), %%mm0 \n\t" // L0 | |
| 2613 "psadbw (%1), %%mm0 \n\t" // |L0-R0| | |
| 2614 "movq (%0, %2), %%mm1 \n\t" // L1 | |
| 2615 "psadbw (%1, %2), %%mm1 \n\t" // |L1-R1| | |
| 2616 "movq (%0, %2, 2), %%mm2 \n\t" // L2 | |
| 2617 "psadbw (%1, %2, 2), %%mm2 \n\t" // |L2-R2| | |
| 2618 "movq (%0, %%eax), %%mm3 \n\t" // L3 | |
| 2619 "psadbw (%1, %%eax), %%mm3 \n\t" // |L3-R3| | |
| 2620 | |
| 2621 "movq (%0, %2, 4), %%mm4 \n\t" // L4 | |
| 2622 "paddw %%mm1, %%mm0 \n\t" | |
| 2623 "psadbw (%1, %2, 4), %%mm4 \n\t" // |L4-R4| | |
| 2624 "movq (%0, %%ebx), %%mm5 \n\t" // L5 | |
| 2625 "paddw %%mm2, %%mm0 \n\t" | |
| 2626 "psadbw (%1, %%ebx), %%mm5 \n\t" // |L5-R5| | |
| 2627 "movq (%0, %%eax, 2), %%mm6 \n\t" // L6 | |
| 2628 "paddw %%mm3, %%mm0 \n\t" | |
| 2629 "psadbw (%1, %%eax, 2), %%mm6 \n\t" // |L6-R6| | |
| 2630 "movq (%0, %%ecx), %%mm7 \n\t" // L7 | |
| 2631 "paddw %%mm4, %%mm0 \n\t" | |
| 2632 "psadbw (%1, %%ecx), %%mm7 \n\t" // |L7-R7| | |
| 2633 "paddw %%mm5, %%mm6 \n\t" | |
| 2634 "paddw %%mm7, %%mm6 \n\t" | |
| 2635 "paddw %%mm6, %%mm0 \n\t" | |
| 2636 #elif defined (FAST_L2_DIFF) | |
| 2637 "pcmpeqb %%mm7, %%mm7 \n\t" | |
| 2638 "movq b80, %%mm6 \n\t" | |
| 2639 "pxor %%mm0, %%mm0 \n\t" | |
| 2640 #define L2_DIFF_CORE(a, b)\ | |
| 2641 "movq " #a ", %%mm5 \n\t"\ | |
| 2642 "movq " #b ", %%mm2 \n\t"\ | |
| 2643 "pxor %%mm7, %%mm2 \n\t"\ | |
| 2644 PAVGB(%%mm2, %%mm5)\ | |
| 2645 "paddb %%mm6, %%mm5 \n\t"\ | |
| 2646 "movq %%mm5, %%mm2 \n\t"\ | |
| 2647 "psllw $8, %%mm5 \n\t"\ | |
| 2648 "pmaddwd %%mm5, %%mm5 \n\t"\ | |
| 2649 "pmaddwd %%mm2, %%mm2 \n\t"\ | |
| 2650 "paddd %%mm2, %%mm5 \n\t"\ | |
| 2651 "psrld $14, %%mm5 \n\t"\ | |
| 2652 "paddd %%mm5, %%mm0 \n\t" | |
| 2653 | |
| 2654 L2_DIFF_CORE((%0), (%1)) | |
| 2655 L2_DIFF_CORE((%0, %2), (%1, %2)) | |
| 2656 L2_DIFF_CORE((%0, %2, 2), (%1, %2, 2)) | |
| 2657 L2_DIFF_CORE((%0, %%eax), (%1, %%eax)) | |
| 2658 L2_DIFF_CORE((%0, %2, 4), (%1, %2, 4)) | |
| 2659 L2_DIFF_CORE((%0, %%ebx), (%1, %%ebx)) | |
| 2660 L2_DIFF_CORE((%0, %%eax,2), (%1, %%eax,2)) | |
| 2661 L2_DIFF_CORE((%0, %%ecx), (%1, %%ecx)) | |
| 2662 | |
| 2663 #else | |
| 2664 "pxor %%mm7, %%mm7 \n\t" | |
| 2665 "pxor %%mm0, %%mm0 \n\t" | |
| 2666 #define L2_DIFF_CORE(a, b)\ | |
| 2667 "movq " #a ", %%mm5 \n\t"\ | |
| 2668 "movq " #b ", %%mm2 \n\t"\ | |
| 2669 "movq %%mm5, %%mm1 \n\t"\ | |
| 2670 "movq %%mm2, %%mm3 \n\t"\ | |
| 2671 "punpcklbw %%mm7, %%mm5 \n\t"\ | |
| 2672 "punpckhbw %%mm7, %%mm1 \n\t"\ | |
| 2673 "punpcklbw %%mm7, %%mm2 \n\t"\ | |
| 2674 "punpckhbw %%mm7, %%mm3 \n\t"\ | |
| 2675 "psubw %%mm2, %%mm5 \n\t"\ | |
| 2676 "psubw %%mm3, %%mm1 \n\t"\ | |
| 2677 "pmaddwd %%mm5, %%mm5 \n\t"\ | |
| 2678 "pmaddwd %%mm1, %%mm1 \n\t"\ | |
| 2679 "paddd %%mm1, %%mm5 \n\t"\ | |
| 2680 "paddd %%mm5, %%mm0 \n\t" | |
| 2681 | |
| 2682 L2_DIFF_CORE((%0), (%1)) | |
| 2683 L2_DIFF_CORE((%0, %2), (%1, %2)) | |
| 2684 L2_DIFF_CORE((%0, %2, 2), (%1, %2, 2)) | |
| 2685 L2_DIFF_CORE((%0, %%eax), (%1, %%eax)) | |
| 2686 L2_DIFF_CORE((%0, %2, 4), (%1, %2, 4)) | |
| 2687 L2_DIFF_CORE((%0, %%ebx), (%1, %%ebx)) | |
| 2688 L2_DIFF_CORE((%0, %%eax,2), (%1, %%eax,2)) | |
| 2689 L2_DIFF_CORE((%0, %%ecx), (%1, %%ecx)) | |
| 2690 | |
| 2691 #endif | |
| 2692 | |
| 2693 "movq %%mm0, %%mm4 \n\t" | |
| 2694 "psrlq $32, %%mm0 \n\t" | |
| 2695 "paddd %%mm0, %%mm4 \n\t" | |
| 2696 "movd %%mm4, %%ecx \n\t" | |
| 2697 // "movl %3, %%ecx \n\t" | |
| 2698 // "movl %%ecx, test \n\t" | |
| 2699 // "jmp 4f \n\t" | |
| 2700 "cmpl %4, %%ecx \n\t" | |
| 2701 " jb 2f \n\t" | |
| 2702 "cmpl %5, %%ecx \n\t" | |
| 2703 " jb 1f \n\t" | |
| 2704 | |
| 2705 "leal (%%ebx, %2, 2), %%ecx \n\t" // 7*stride | |
| 2706 "movq (%0), %%mm0 \n\t" // L0 | |
| 2707 "movq (%0, %2), %%mm1 \n\t" // L1 | |
| 2708 "movq (%0, %2, 2), %%mm2 \n\t" // L2 | |
| 2709 "movq (%0, %%eax), %%mm3 \n\t" // L3 | |
| 2710 "movq (%0, %2, 4), %%mm4 \n\t" // L4 | |
| 2711 "movq (%0, %%ebx), %%mm5 \n\t" // L5 | |
| 2712 "movq (%0, %%eax, 2), %%mm6 \n\t" // L6 | |
| 2713 "movq (%0, %%ecx), %%mm7 \n\t" // L7 | |
| 2714 "movq %%mm0, (%1) \n\t" // L0 | |
| 2715 "movq %%mm1, (%1, %2) \n\t" // L1 | |
| 2716 "movq %%mm2, (%1, %2, 2) \n\t" // L2 | |
| 2717 "movq %%mm3, (%1, %%eax) \n\t" // L3 | |
| 2718 "movq %%mm4, (%1, %2, 4) \n\t" // L4 | |
| 2719 "movq %%mm5, (%1, %%ebx) \n\t" // L5 | |
| 2720 "movq %%mm6, (%1, %%eax, 2) \n\t" // L6 | |
| 2721 "movq %%mm7, (%1, %%ecx) \n\t" // L7 | |
| 2722 "jmp 4f \n\t" | |
| 2723 | |
| 2724 "1: \n\t" | |
| 2725 "leal (%%ebx, %2, 2), %%ecx \n\t" // 7*stride | |
| 2726 "movq (%0), %%mm0 \n\t" // L0 | |
| 2727 "pavgb (%1), %%mm0 \n\t" // L0 | |
| 2728 "movq (%0, %2), %%mm1 \n\t" // L1 | |
| 2729 "pavgb (%1, %2), %%mm1 \n\t" // L1 | |
| 2730 "movq (%0, %2, 2), %%mm2 \n\t" // L2 | |
| 2731 "pavgb (%1, %2, 2), %%mm2 \n\t" // L2 | |
| 2732 "movq (%0, %%eax), %%mm3 \n\t" // L3 | |
| 2733 "pavgb (%1, %%eax), %%mm3 \n\t" // L3 | |
| 2734 "movq (%0, %2, 4), %%mm4 \n\t" // L4 | |
| 2735 "pavgb (%1, %2, 4), %%mm4 \n\t" // L4 | |
| 2736 "movq (%0, %%ebx), %%mm5 \n\t" // L5 | |
| 2737 "pavgb (%1, %%ebx), %%mm5 \n\t" // L5 | |
| 2738 "movq (%0, %%eax, 2), %%mm6 \n\t" // L6 | |
| 2739 "pavgb (%1, %%eax, 2), %%mm6 \n\t" // L6 | |
| 2740 "movq (%0, %%ecx), %%mm7 \n\t" // L7 | |
| 2741 "pavgb (%1, %%ecx), %%mm7 \n\t" // L7 | |
| 2742 "movq %%mm0, (%1) \n\t" // R0 | |
| 2743 "movq %%mm1, (%1, %2) \n\t" // R1 | |
| 2744 "movq %%mm2, (%1, %2, 2) \n\t" // R2 | |
| 2745 "movq %%mm3, (%1, %%eax) \n\t" // R3 | |
| 2746 "movq %%mm4, (%1, %2, 4) \n\t" // R4 | |
| 2747 "movq %%mm5, (%1, %%ebx) \n\t" // R5 | |
| 2748 "movq %%mm6, (%1, %%eax, 2) \n\t" // R6 | |
| 2749 "movq %%mm7, (%1, %%ecx) \n\t" // R7 | |
| 2750 "movq %%mm0, (%0) \n\t" // L0 | |
| 2751 "movq %%mm1, (%0, %2) \n\t" // L1 | |
| 2752 "movq %%mm2, (%0, %2, 2) \n\t" // L2 | |
| 2753 "movq %%mm3, (%0, %%eax) \n\t" // L3 | |
| 2754 "movq %%mm4, (%0, %2, 4) \n\t" // L4 | |
| 2755 "movq %%mm5, (%0, %%ebx) \n\t" // L5 | |
| 2756 "movq %%mm6, (%0, %%eax, 2) \n\t" // L6 | |
| 2757 "movq %%mm7, (%0, %%ecx) \n\t" // L7 | |
| 2758 "jmp 4f \n\t" | |
| 2759 | |
| 2760 "2: \n\t" | |
| 2761 "cmpl %3, %%ecx \n\t" | |
| 2762 " jb 3f \n\t" | |
| 2763 | |
| 2764 "leal (%%ebx, %2, 2), %%ecx \n\t" // 7*stride | |
| 2765 "movq (%0), %%mm0 \n\t" // L0 | |
| 2766 "movq (%0, %2), %%mm1 \n\t" // L1 | |
| 2767 "movq (%0, %2, 2), %%mm2 \n\t" // L2 | |
| 2768 "movq (%0, %%eax), %%mm3 \n\t" // L3 | |
| 2769 "movq (%1), %%mm4 \n\t" // R0 | |
| 2770 "movq (%1, %2), %%mm5 \n\t" // R1 | |
| 2771 "movq (%1, %2, 2), %%mm6 \n\t" // R2 | |
| 2772 "movq (%1, %%eax), %%mm7 \n\t" // R3 | |
| 2773 PAVGB(%%mm4, %%mm0) | |
| 2774 PAVGB(%%mm5, %%mm1) | |
| 2775 PAVGB(%%mm6, %%mm2) | |
| 2776 PAVGB(%%mm7, %%mm3) | |
| 2777 PAVGB(%%mm4, %%mm0) | |
| 2778 PAVGB(%%mm5, %%mm1) | |
| 2779 PAVGB(%%mm6, %%mm2) | |
| 2780 PAVGB(%%mm7, %%mm3) | |
| 2781 "movq %%mm0, (%1) \n\t" // R0 | |
| 2782 "movq %%mm1, (%1, %2) \n\t" // R1 | |
| 2783 "movq %%mm2, (%1, %2, 2) \n\t" // R2 | |
| 2784 "movq %%mm3, (%1, %%eax) \n\t" // R3 | |
| 2785 "movq %%mm0, (%0) \n\t" // L0 | |
| 2786 "movq %%mm1, (%0, %2) \n\t" // L1 | |
| 2787 "movq %%mm2, (%0, %2, 2) \n\t" // L2 | |
| 2788 "movq %%mm3, (%0, %%eax) \n\t" // L3 | |
| 2789 | |
| 2790 "movq (%0, %2, 4), %%mm0 \n\t" // L4 | |
| 2791 "movq (%0, %%ebx), %%mm1 \n\t" // L5 | |
| 2792 "movq (%0, %%eax, 2), %%mm2 \n\t" // L6 | |
| 2793 "movq (%0, %%ecx), %%mm3 \n\t" // L7 | |
| 2794 "movq (%1, %2, 4), %%mm4 \n\t" // R4 | |
| 2795 "movq (%1, %%ebx), %%mm5 \n\t" // R5 | |
| 2796 "movq (%1, %%eax, 2), %%mm6 \n\t" // R6 | |
| 2797 "movq (%1, %%ecx), %%mm7 \n\t" // R7 | |
| 2798 PAVGB(%%mm4, %%mm0) | |
| 2799 PAVGB(%%mm5, %%mm1) | |
| 2800 PAVGB(%%mm6, %%mm2) | |
| 2801 PAVGB(%%mm7, %%mm3) | |
| 2802 PAVGB(%%mm4, %%mm0) | |
| 2803 PAVGB(%%mm5, %%mm1) | |
| 2804 PAVGB(%%mm6, %%mm2) | |
| 2805 PAVGB(%%mm7, %%mm3) | |
| 2806 "movq %%mm0, (%1, %2, 4) \n\t" // R4 | |
| 2807 "movq %%mm1, (%1, %%ebx) \n\t" // R5 | |
| 2808 "movq %%mm2, (%1, %%eax, 2) \n\t" // R6 | |
| 2809 "movq %%mm3, (%1, %%ecx) \n\t" // R7 | |
| 2810 "movq %%mm0, (%0, %2, 4) \n\t" // L4 | |
| 2811 "movq %%mm1, (%0, %%ebx) \n\t" // L5 | |
| 2812 "movq %%mm2, (%0, %%eax, 2) \n\t" // L6 | |
| 2813 "movq %%mm3, (%0, %%ecx) \n\t" // L7 | |
| 2814 "jmp 4f \n\t" | |
| 2815 | |
| 2816 "3: \n\t" | |
| 2817 "leal (%%ebx, %2, 2), %%ecx \n\t" // 7*stride | |
| 2818 "movq (%0), %%mm0 \n\t" // L0 | |
| 2819 "movq (%0, %2), %%mm1 \n\t" // L1 | |
| 2820 "movq (%0, %2, 2), %%mm2 \n\t" // L2 | |
| 2821 "movq (%0, %%eax), %%mm3 \n\t" // L3 | |
| 2822 "movq (%1), %%mm4 \n\t" // R0 | |
| 2823 "movq (%1, %2), %%mm5 \n\t" // R1 | |
| 2824 "movq (%1, %2, 2), %%mm6 \n\t" // R2 | |
| 2825 "movq (%1, %%eax), %%mm7 \n\t" // R3 | |
| 2826 PAVGB(%%mm4, %%mm0) | |
| 2827 PAVGB(%%mm5, %%mm1) | |
| 2828 PAVGB(%%mm6, %%mm2) | |
| 2829 PAVGB(%%mm7, %%mm3) | |
| 2830 PAVGB(%%mm4, %%mm0) | |
| 2831 PAVGB(%%mm5, %%mm1) | |
| 2832 PAVGB(%%mm6, %%mm2) | |
| 2833 PAVGB(%%mm7, %%mm3) | |
| 2834 PAVGB(%%mm4, %%mm0) | |
| 2835 PAVGB(%%mm5, %%mm1) | |
| 2836 PAVGB(%%mm6, %%mm2) | |
| 2837 PAVGB(%%mm7, %%mm3) | |
| 2838 "movq %%mm0, (%1) \n\t" // R0 | |
| 2839 "movq %%mm1, (%1, %2) \n\t" // R1 | |
| 2840 "movq %%mm2, (%1, %2, 2) \n\t" // R2 | |
| 2841 "movq %%mm3, (%1, %%eax) \n\t" // R3 | |
| 2842 "movq %%mm0, (%0) \n\t" // L0 | |
| 2843 "movq %%mm1, (%0, %2) \n\t" // L1 | |
| 2844 "movq %%mm2, (%0, %2, 2) \n\t" // L2 | |
| 2845 "movq %%mm3, (%0, %%eax) \n\t" // L3 | |
| 2846 | |
| 2847 "movq (%0, %2, 4), %%mm0 \n\t" // L4 | |
| 2848 "movq (%0, %%ebx), %%mm1 \n\t" // L5 | |
| 2849 "movq (%0, %%eax, 2), %%mm2 \n\t" // L6 | |
| 2850 "movq (%0, %%ecx), %%mm3 \n\t" // L7 | |
| 2851 "movq (%1, %2, 4), %%mm4 \n\t" // R4 | |
| 2852 "movq (%1, %%ebx), %%mm5 \n\t" // R5 | |
| 2853 "movq (%1, %%eax, 2), %%mm6 \n\t" // R6 | |
| 2854 "movq (%1, %%ecx), %%mm7 \n\t" // R7 | |
| 2855 PAVGB(%%mm4, %%mm0) | |
| 2856 PAVGB(%%mm5, %%mm1) | |
| 2857 PAVGB(%%mm6, %%mm2) | |
| 2858 PAVGB(%%mm7, %%mm3) | |
| 2859 PAVGB(%%mm4, %%mm0) | |
| 2860 PAVGB(%%mm5, %%mm1) | |
| 2861 PAVGB(%%mm6, %%mm2) | |
| 2862 PAVGB(%%mm7, %%mm3) | |
| 2863 PAVGB(%%mm4, %%mm0) | |
| 2864 PAVGB(%%mm5, %%mm1) | |
| 2865 PAVGB(%%mm6, %%mm2) | |
| 2866 PAVGB(%%mm7, %%mm3) | |
| 2867 "movq %%mm0, (%1, %2, 4) \n\t" // R4 | |
| 2868 "movq %%mm1, (%1, %%ebx) \n\t" // R5 | |
| 2869 "movq %%mm2, (%1, %%eax, 2) \n\t" // R6 | |
| 2870 "movq %%mm3, (%1, %%ecx) \n\t" // R7 | |
| 2871 "movq %%mm0, (%0, %2, 4) \n\t" // L4 | |
| 2872 "movq %%mm1, (%0, %%ebx) \n\t" // L5 | |
| 2873 "movq %%mm2, (%0, %%eax, 2) \n\t" // L6 | |
| 2874 "movq %%mm3, (%0, %%ecx) \n\t" // L7 | |
| 2875 | |
| 2876 "4: \n\t" | |
| 2877 | |
| 2878 :: "r" (src), "r" (tempBlured), "r"(stride), | |
| 2879 "m"(maxNoise[0]), "m"(maxNoise[1]), "m"(maxNoise[2]) | |
| 2880 : "%eax", "%ebx", "%ecx", "memory" | |
| 2881 ); | |
| 2882 //printf("%d\n", test); | |
| 2883 #else | |
| 2599 int y; | 2884 int y; |
| 2600 int d=0; | 2885 int d=0; |
| 2601 int sysd=0; | 2886 int sysd=0; |
| 2602 | 2887 |
| 2603 for(y=0; y<8; y++) | 2888 for(y=0; y<8; y++) |
| 2606 for(x=0; x<8; x++) | 2891 for(x=0; x<8; x++) |
| 2607 { | 2892 { |
| 2608 int ref= tempBlured[ x + y*stride ]; | 2893 int ref= tempBlured[ x + y*stride ]; |
| 2609 int cur= src[ x + y*stride ]; | 2894 int cur= src[ x + y*stride ]; |
| 2610 int d1=ref - cur; | 2895 int d1=ref - cur; |
| 2611 d+= ABS(d1); //d1*d1; | 2896 // if(x==0 || x==7) d1+= d1>>1; |
| 2897 // if(y==0 || y==7) d1+= d1>>1; | |
| 2898 // d+= ABS(d1); | |
| 2899 d+= d1*d1; | |
| 2612 sysd+= d1; | 2900 sysd+= d1; |
| 2613 } | 2901 } |
| 2614 } | 2902 } |
| 2615 //printf("%d %d %d\n", maxNoise[0], maxNoise[1], maxNoise[2]); | 2903 //printf("%d %d %d\n", maxNoise[0], maxNoise[1], maxNoise[2]); |
| 2616 /* | 2904 /* |
| 2680 (ref*3 + cur + 2)>>2; | 2968 (ref*3 + cur + 2)>>2; |
| 2681 } | 2969 } |
| 2682 } | 2970 } |
| 2683 } | 2971 } |
| 2684 } | 2972 } |
| 2973 #endif | |
| 2685 } | 2974 } |
| 2686 | 2975 |
| 2687 #ifdef HAVE_ODIVX_POSTPROCESS | 2976 #ifdef HAVE_ODIVX_POSTPROCESS |
| 2688 #include "../opendivx/postprocess.h" | 2977 #include "../opendivx/postprocess.h" |
| 2689 int use_old_pp=0; | 2978 int use_old_pp=0; |
| 2912 } | 3201 } |
| 2913 | 3202 |
| 2914 ppMode.lumMode= mode; | 3203 ppMode.lumMode= mode; |
| 2915 mode= ((mode&0xFF)>>4) | (mode&0xFFFFFF00); | 3204 mode= ((mode&0xFF)>>4) | (mode&0xFFFFFF00); |
| 2916 ppMode.chromMode= mode; | 3205 ppMode.chromMode= mode; |
| 2917 ppMode.maxTmpNoise[0]= 150; | 3206 ppMode.maxTmpNoise[0]= 700; |
| 2918 ppMode.maxTmpNoise[1]= 200; | 3207 ppMode.maxTmpNoise[1]= 1500; |
| 2919 ppMode.maxTmpNoise[2]= 400; | 3208 ppMode.maxTmpNoise[2]= 3000; |
| 2920 | 3209 |
| 2921 #ifdef HAVE_ODIVX_POSTPROCESS | 3210 #ifdef HAVE_ODIVX_POSTPROCESS |
| 2922 // Note: I could make this shit outside of this file, but it would mean one | 3211 // Note: I could make this shit outside of this file, but it would mean one |
| 2923 // more function call... | 3212 // more function call... |
| 2924 if(use_old_pp){ | 3213 if(use_old_pp){ |
