Mercurial > libavcodec.hg
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 |