comparison jrevdct.c @ 2257:5f64a30339e5 libavcodec

1/4 resolution decoding
author michael
date Sun, 26 Sep 2004 00:18:12 +0000
parents 7e0b2e86afa9
children 12e75af1d44c
comparison
equal deleted inserted replaced
2256:7e0b2e86afa9 2257:5f64a30339e5
1201 * row DCT calculations can be simplified this way. 1201 * row DCT calculations can be simplified this way.
1202 */ 1202 */
1203 1203
1204 register int *idataptr = (int*)dataptr; 1204 register int *idataptr = (int*)dataptr;
1205 1205
1206 /* WARNING: we do the same permutation as MMX idct to simplify the
1207 video core */
1208 d0 = dataptr[0]; 1206 d0 = dataptr[0];
1209 d2 = dataptr[1]; 1207 d2 = dataptr[1];
1210 d4 = dataptr[2]; 1208 d4 = dataptr[2];
1211 d6 = dataptr[3]; 1209 d6 = dataptr[3];
1212 1210
1625 1623
1626 dataptr++; /* advance pointer to next column */ 1624 dataptr++; /* advance pointer to next column */
1627 } 1625 }
1628 } 1626 }
1629 1627
1628 void j_rev_dct2(DCTBLOCK data){
1629 int d00, d01, d10, d11;
1630
1631 data[0] += 4;
1632 d00 = data[0+0*DCTSTRIDE] + data[1+0*DCTSTRIDE];
1633 d01 = data[0+0*DCTSTRIDE] - data[1+0*DCTSTRIDE];
1634 d10 = data[0+1*DCTSTRIDE] + data[1+1*DCTSTRIDE];
1635 d11 = data[0+1*DCTSTRIDE] - data[1+1*DCTSTRIDE];
1636
1637 data[0+0*DCTSTRIDE]= (d00 + d10)>>3;
1638 data[1+0*DCTSTRIDE]= (d01 + d11)>>3;
1639 data[0+1*DCTSTRIDE]= (d00 - d10)>>3;
1640 data[1+1*DCTSTRIDE]= (d01 - d11)>>3;
1641 }
1630 1642
1631 #undef FIX 1643 #undef FIX
1632 #undef CONST_BITS 1644 #undef CONST_BITS