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