[Ffmpeg-cvslog] CVS: ffmpeg/libavcodec dsputil.c, 1.122, 1.123 dsputil.h, 1.116, 1.117 h264.c, 1.132, 1.133 h264data.h, 1.7, 1.8 h264idct.c, 1.1, 1.2

Rich Felker dalias
Thu Jun 2 23:19:36 CEST 2005


On Thu, Jun 02, 2005 at 11:15:24PM +0200, Loren Merritt CVS wrote:
> +static void pred8x8l_down_left_c(uint8_t *src, int has_topleft, int has_topright, int stride)
> +{
> +    PREDICT_8x8_LOAD_TOP;
> +    PREDICT_8x8_LOAD_TOPRIGHT;
> +    SRC(0,0)= (t0 + 2*t1 + t2 + 2) >> 2;
> +    SRC(0,1)=SRC(1,0)= (t1 + 2*t2 + t3 + 2) >> 2;
> +    SRC(0,2)=SRC(1,1)=SRC(2,0)= (t2 + 2*t3 + t4 + 2) >> 2;
> +    SRC(0,3)=SRC(1,2)=SRC(2,1)=SRC(3,0)= (t3 + 2*t4 + t5 + 2) >> 2;
> +    SRC(0,4)=SRC(1,3)=SRC(2,2)=SRC(3,1)=SRC(4,0)= (t4 + 2*t5 + t6 + 2) >> 2;
> +    SRC(0,5)=SRC(1,4)=SRC(2,3)=SRC(3,2)=SRC(4,1)=SRC(5,0)= (t5 + 2*t6 + t7 + 2) >> 2;
> +    SRC(0,6)=SRC(1,5)=SRC(2,4)=SRC(3,3)=SRC(4,2)=SRC(5,1)=SRC(6,0)= (t6 + 2*t7 + t8 + 2) >> 2;
> +    SRC(0,7)=SRC(1,6)=SRC(2,5)=SRC(3,4)=SRC(4,3)=SRC(5,2)=SRC(6,1)=SRC(7,0)= (t7 + 2*t8 + t9 + 2) >> 2;
> +    SRC(1,7)=SRC(2,6)=SRC(3,5)=SRC(4,4)=SRC(5,3)=SRC(6,2)=SRC(7,1)= (t8 + 2*t9 + t10 + 2) >> 2;
> +    SRC(2,7)=SRC(3,6)=SRC(4,5)=SRC(5,4)=SRC(6,3)=SRC(7,2)= (t9 + 2*t10 + t11 + 2) >> 2;
> +    SRC(3,7)=SRC(4,6)=SRC(5,5)=SRC(6,4)=SRC(7,3)= (t10 + 2*t11 + t12 + 2) >> 2;
> +    SRC(4,7)=SRC(5,6)=SRC(6,5)=SRC(7,4)= (t11 + 2*t12 + t13 + 2) >> 2;
> +    SRC(5,7)=SRC(6,6)=SRC(7,5)= (t12 + 2*t13 + t14 + 2) >> 2;
> +    SRC(6,7)=SRC(7,6)= (t13 + 2*t14 + t15 + 2) >> 2;
> +    SRC(7,7)= (t14 + 3*t15 + 2) >> 2;
> +}

Cool!!! ASCII-art in ffmpeg! :))))))))))

> +static void pred8x8l_vertical_right_c(uint8_t *src, int has_topleft, int has_topright, int stride)
> +{
> +    PREDICT_8x8_LOAD_TOP;
> +    PREDICT_8x8_LOAD_LEFT;
> +    PREDICT_8x8_LOAD_TOPLEFT;
> +    SRC(0,6)= (l5 + 2*l4 + l3 + 2) >> 2;
> +    SRC(0,7)= (l6 + 2*l5 + l4 + 2) >> 2;
> +    SRC(0,4)=SRC(1,6)= (l3 + 2*l2 + l1 + 2) >> 2;
> +    SRC(0,5)=SRC(1,7)= (l4 + 2*l3 + l2 + 2) >> 2;
> +    SRC(0,2)=SRC(1,4)=SRC(2,6)= (l1 + 2*l0 + lt + 2) >> 2;
> +    SRC(0,3)=SRC(1,5)=SRC(2,7)= (l2 + 2*l1 + l0 + 2) >> 2;
> +    SRC(0,1)=SRC(1,3)=SRC(2,5)=SRC(3,7)= (l0 + 2*lt + t0 + 2) >> 2;
> +    SRC(0,0)=SRC(1,2)=SRC(2,4)=SRC(3,6)= (lt + t0 + 1) >> 1;
> +    SRC(1,1)=SRC(2,3)=SRC(3,5)=SRC(4,7)= (lt + 2*t0 + t1 + 2) >> 2;
> +    SRC(1,0)=SRC(2,2)=SRC(3,4)=SRC(4,6)= (t0 + t1 + 1) >> 1;
> +    SRC(2,1)=SRC(3,3)=SRC(4,5)=SRC(5,7)= (t0 + 2*t1 + t2 + 2) >> 2;
> +    SRC(2,0)=SRC(3,2)=SRC(4,4)=SRC(5,6)= (t1 + t2 + 1) >> 1;
> +    SRC(3,1)=SRC(4,3)=SRC(5,5)=SRC(6,7)= (t1 + 2*t2 + t3 + 2) >> 2;
> +    SRC(3,0)=SRC(4,2)=SRC(5,4)=SRC(6,6)= (t2 + t3 + 1) >> 1;
> +    SRC(4,1)=SRC(5,3)=SRC(6,5)=SRC(7,7)= (t2 + 2*t3 + t4 + 2) >> 2;
> +    SRC(4,0)=SRC(5,2)=SRC(6,4)=SRC(7,6)= (t3 + t4 + 1) >> 1;
> +    SRC(5,1)=SRC(6,3)=SRC(7,5)= (t3 + 2*t4 + t5 + 2) >> 2;
> +    SRC(5,0)=SRC(6,2)=SRC(7,4)= (t4 + t5 + 1) >> 1;
> +    SRC(6,1)=SRC(7,3)= (t4 + 2*t5 + t6 + 2) >> 2;
> +    SRC(6,0)=SRC(7,2)= (t5 + t6 + 1) >> 1;
> +    SRC(7,1)= (t5 + 2*t6 + t7 + 2) >> 2;
> +    SRC(7,0)= (t6 + t7 + 1) >> 1;
> +}

This one seems to have some combing though. Did you forget to
deinterlace/inverse telecine?

Rich





More information about the ffmpeg-cvslog mailing list