comparison h263.c @ 174:ac5075a55488 libavcodec

new IDCT code by Michael Niedermayer (michaelni@gmx.at) - #define SIMPLE_IDCT to enable
author arpi_esp
date Sun, 09 Dec 2001 12:04:09 +0000
parents de80712db90b
children 840cd25bf259
comparison
equal deleted inserted replaced
173:37eaaa9596cc 174:ac5075a55488
552 *dc_val_ptr = &dc_val[(x) + (y) * wrap]; 552 *dc_val_ptr = &dc_val[(x) + (y) * wrap];
553 553
554 return pred; 554 return pred;
555 } 555 }
556 556
557 void mpeg4_pred_ac(MpegEncContext * s, INT16 *block, int n, 557 void mpeg4_pred_ac(MpegEncContext * s, INT16 *block, int n,
558 int dir) 558 int dir)
559 { 559 {
560 int x, y, wrap, i; 560 int x, y, wrap, i;
561 INT16 *ac_val, *ac_val1; 561 INT16 *ac_val, *ac_val1;
562 562
577 if (s->ac_pred) { 577 if (s->ac_pred) {
578 if (dir == 0) { 578 if (dir == 0) {
579 /* left prediction */ 579 /* left prediction */
580 ac_val -= 16; 580 ac_val -= 16;
581 for(i=1;i<8;i++) { 581 for(i=1;i<8;i++) {
582 block[i*8] += ac_val[i]; 582 block[block_permute_op(i*8)] += ac_val[i];
583 } 583 }
584 } else { 584 } else {
585 /* top prediction */ 585 /* top prediction */
586 ac_val -= 16 * wrap; 586 ac_val -= 16 * wrap;
587 for(i=1;i<8;i++) { 587 for(i=1;i<8;i++) {
588 block[i] += ac_val[i + 8]; 588 block[block_permute_op(i)] += ac_val[i + 8];
589 } 589 }
590 } 590 }
591 } 591 }
592 /* left copy */ 592 /* left copy */
593 for(i=1;i<8;i++) 593 for(i=1;i<8;i++)
594 ac_val1[i] = block[i * 8]; 594 ac_val1[i] = block[block_permute_op(i * 8)];
595 /* top copy */ 595 /* top copy */
596 for(i=1;i<8;i++) 596 for(i=1;i<8;i++)
597 ac_val1[8 + i] = block[i]; 597 ac_val1[8 + i] = block[block_permute_op(i)];
598 } 598 }
599 599
600 static inline void mpeg4_encode_dc(MpegEncContext * s, int level, int n, int *dir_ptr) 600 static inline void mpeg4_encode_dc(MpegEncContext * s, int level, int n, int *dir_ptr)
601 { 601 {
602 int size, v, pred; 602 int size, v, pred;