comparison dsputil.c @ 10370:6009feb54020 libavcodec

Move HuffYUV left prediction to dsputil. Patch by Nathan Caldwell, saintdev gmail
author cehoyos
date Tue, 06 Oct 2009 16:06:15 +0000
parents 4d1b9ca628fc
children 442ab0c41eae
comparison
equal deleted inserted replaced
10369:71a38fce15bc 10370:6009feb54020
3606 3606
3607 *left= l; 3607 *left= l;
3608 *left_top= lt; 3608 *left_top= lt;
3609 } 3609 }
3610 3610
3611 static int add_hfyu_left_prediction_c(uint8_t *dst, uint8_t *src, int w, int acc){
3612 int i;
3613
3614 for(i=0; i<w-1; i++){
3615 acc+= src[i];
3616 dst[i]= acc;
3617 i++;
3618 acc+= src[i];
3619 dst[i]= acc;
3620 }
3621
3622 for(; i<w; i++){
3623 acc+= src[i];
3624 dst[i]= acc;
3625 }
3626
3627 return acc;
3628 }
3629
3630 #if HAVE_BIGENDIAN
3631 #define B 3
3632 #define G 2
3633 #define R 1
3634 #else
3635 #define B 0
3636 #define G 1
3637 #define R 2
3638 #endif
3639 static inline void add_hfyu_left_prediction_bgr32_c(uint8_t *dst, uint8_t *src, int w, int *red, int *green, int *blue){
3640 int i;
3641 int r,g,b;
3642 r= *red;
3643 g= *green;
3644 b= *blue;
3645
3646 for(i=0; i<w; i++){
3647 b+= src[4*i+B];
3648 g+= src[4*i+G];
3649 r+= src[4*i+R];
3650
3651 dst[4*i+B]= b;
3652 dst[4*i+G]= g;
3653 dst[4*i+R]= r;
3654 }
3655
3656 *red= r;
3657 *green= g;
3658 *blue= b;
3659 }
3660 #undef B
3661 #undef G
3662 #undef R
3663
3611 #define BUTTERFLY2(o1,o2,i1,i2) \ 3664 #define BUTTERFLY2(o1,o2,i1,i2) \
3612 o1= (i1)+(i2);\ 3665 o1= (i1)+(i2);\
3613 o2= (i1)-(i2); 3666 o2= (i1)-(i2);
3614 3667
3615 #define BUTTERFLY1(x,y) \ 3668 #define BUTTERFLY1(x,y) \
4735 c->add_bytes= add_bytes_c; 4788 c->add_bytes= add_bytes_c;
4736 c->add_bytes_l2= add_bytes_l2_c; 4789 c->add_bytes_l2= add_bytes_l2_c;
4737 c->diff_bytes= diff_bytes_c; 4790 c->diff_bytes= diff_bytes_c;
4738 c->add_hfyu_median_prediction= add_hfyu_median_prediction_c; 4791 c->add_hfyu_median_prediction= add_hfyu_median_prediction_c;
4739 c->sub_hfyu_median_prediction= sub_hfyu_median_prediction_c; 4792 c->sub_hfyu_median_prediction= sub_hfyu_median_prediction_c;
4793 c->add_hfyu_left_prediction = add_hfyu_left_prediction_c;
4794 c->add_hfyu_left_prediction_bgr32 = add_hfyu_left_prediction_bgr32_c;
4740 c->bswap_buf= bswap_buf; 4795 c->bswap_buf= bswap_buf;
4741 #if CONFIG_PNG_DECODER 4796 #if CONFIG_PNG_DECODER
4742 c->add_png_paeth_prediction= ff_add_png_paeth_prediction; 4797 c->add_png_paeth_prediction= ff_add_png_paeth_prediction;
4743 #endif 4798 #endif
4744 4799