diff jrevdct.c @ 2257:5f64a30339e5 libavcodec

1/4 resolution decoding
author michael
date Sun, 26 Sep 2004 00:18:12 +0000
parents 7e0b2e86afa9
children 12e75af1d44c
line wrap: on
line diff
--- a/jrevdct.c	Sat Sep 25 23:18:58 2004 +0000
+++ b/jrevdct.c	Sun Sep 26 00:18:12 2004 +0000
@@ -1203,8 +1203,6 @@
 
     register int *idataptr = (int*)dataptr;
 
-    /* WARNING: we do the same permutation as MMX idct to simplify the
-       video core */
     d0 = dataptr[0];
     d2 = dataptr[1];
     d4 = dataptr[2];
@@ -1627,6 +1625,20 @@
   }
 }
 
+void j_rev_dct2(DCTBLOCK data){
+  int d00, d01, d10, d11;
+
+  data[0] += 4;
+  d00 = data[0+0*DCTSTRIDE] + data[1+0*DCTSTRIDE];
+  d01 = data[0+0*DCTSTRIDE] - data[1+0*DCTSTRIDE];
+  d10 = data[0+1*DCTSTRIDE] + data[1+1*DCTSTRIDE];
+  d11 = data[0+1*DCTSTRIDE] - data[1+1*DCTSTRIDE];
+ 
+  data[0+0*DCTSTRIDE]= (d00 + d10)>>3;
+  data[1+0*DCTSTRIDE]= (d01 + d11)>>3;
+  data[0+1*DCTSTRIDE]= (d00 - d10)>>3;
+  data[1+1*DCTSTRIDE]= (d01 - d11)>>3;
+}
 
 #undef FIX
 #undef CONST_BITS