Mercurial > libavcodec.hg
comparison dsputil.c @ 9440:daee921fb6bb libavcodec
VC1: add and use avg_no_rnd chroma MC functions
author | conrad |
---|---|
date | Tue, 14 Apr 2009 23:56:10 +0000 |
parents | ef3a7b711cc0 |
children | 5e1d9508b62f |
comparison
equal
deleted
inserted
replaced
9439:ef3a7b711cc0 | 9440:daee921fb6bb |
---|---|
1696 dst[3] = (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4] + 32 - 4) >> 6; | 1696 dst[3] = (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4] + 32 - 4) >> 6; |
1697 dst[4] = (A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5] + 32 - 4) >> 6; | 1697 dst[4] = (A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5] + 32 - 4) >> 6; |
1698 dst[5] = (A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6] + 32 - 4) >> 6; | 1698 dst[5] = (A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6] + 32 - 4) >> 6; |
1699 dst[6] = (A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7] + 32 - 4) >> 6; | 1699 dst[6] = (A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7] + 32 - 4) >> 6; |
1700 dst[7] = (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8] + 32 - 4) >> 6; | 1700 dst[7] = (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8] + 32 - 4) >> 6; |
1701 dst+= stride; | |
1702 src+= stride; | |
1703 } | |
1704 } | |
1705 | |
1706 static void avg_no_rnd_vc1_chroma_mc8_c(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y){ | |
1707 const int A=(8-x)*(8-y); | |
1708 const int B=( x)*(8-y); | |
1709 const int C=(8-x)*( y); | |
1710 const int D=( x)*( y); | |
1711 int i; | |
1712 | |
1713 assert(x<8 && y<8 && x>=0 && y>=0); | |
1714 | |
1715 for(i=0; i<h; i++) | |
1716 { | |
1717 dst[0] = avg2(dst[0], ((A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1] + 32 - 4) >> 6)); | |
1718 dst[1] = avg2(dst[1], ((A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2] + 32 - 4) >> 6)); | |
1719 dst[2] = avg2(dst[2], ((A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3] + 32 - 4) >> 6)); | |
1720 dst[3] = avg2(dst[3], ((A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4] + 32 - 4) >> 6)); | |
1721 dst[4] = avg2(dst[4], ((A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5] + 32 - 4) >> 6)); | |
1722 dst[5] = avg2(dst[5], ((A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6] + 32 - 4) >> 6)); | |
1723 dst[6] = avg2(dst[6], ((A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7] + 32 - 4) >> 6)); | |
1724 dst[7] = avg2(dst[7], ((A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8] + 32 - 4) >> 6)); | |
1701 dst+= stride; | 1725 dst+= stride; |
1702 src+= stride; | 1726 src+= stride; |
1703 } | 1727 } |
1704 } | 1728 } |
1705 | 1729 |
4488 c->put_h264_chroma_pixels_tab[2]= put_h264_chroma_mc2_c; | 4512 c->put_h264_chroma_pixels_tab[2]= put_h264_chroma_mc2_c; |
4489 c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_c; | 4513 c->avg_h264_chroma_pixels_tab[0]= avg_h264_chroma_mc8_c; |
4490 c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_c; | 4514 c->avg_h264_chroma_pixels_tab[1]= avg_h264_chroma_mc4_c; |
4491 c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_c; | 4515 c->avg_h264_chroma_pixels_tab[2]= avg_h264_chroma_mc2_c; |
4492 c->put_no_rnd_vc1_chroma_pixels_tab[0]= put_no_rnd_vc1_chroma_mc8_c; | 4516 c->put_no_rnd_vc1_chroma_pixels_tab[0]= put_no_rnd_vc1_chroma_mc8_c; |
4517 c->avg_no_rnd_vc1_chroma_pixels_tab[0]= avg_no_rnd_vc1_chroma_mc8_c; | |
4493 | 4518 |
4494 c->weight_h264_pixels_tab[0]= weight_h264_pixels16x16_c; | 4519 c->weight_h264_pixels_tab[0]= weight_h264_pixels16x16_c; |
4495 c->weight_h264_pixels_tab[1]= weight_h264_pixels16x8_c; | 4520 c->weight_h264_pixels_tab[1]= weight_h264_pixels16x8_c; |
4496 c->weight_h264_pixels_tab[2]= weight_h264_pixels8x16_c; | 4521 c->weight_h264_pixels_tab[2]= weight_h264_pixels8x16_c; |
4497 c->weight_h264_pixels_tab[3]= weight_h264_pixels8x8_c; | 4522 c->weight_h264_pixels_tab[3]= weight_h264_pixels8x8_c; |