[FFmpeg-soc] [soc]: r1322 - dirac/libavcodec/dirac.c

marco subversion at mplayerhq.hu
Sun Sep 9 17:09:01 CEST 2007


Author: marco
Date: Sun Sep  9 17:09:01 2007
New Revision: 1322

Log:
use the Deslauriers-Debuc wavelet for intra frames

Modified:
   dirac/libavcodec/dirac.c

Modified: dirac/libavcodec/dirac.c
==============================================================================
--- dirac/libavcodec/dirac.c	(original)
+++ dirac/libavcodec/dirac.c	Sun Sep  9 17:09:01 2007
@@ -1695,7 +1695,11 @@ int dirac_dwt(DiracContext *s, int16_t *
     for (level = s->frame_decoding.wavelet_depth; level >= 1; level--) {
         width  = subband_width(s, level);
         height = subband_height(s, level);
+
+        if (s->refs)
         dirac_subband_dwt_53(s->avctx, width, height, s->padded_width, coeffs, level);
+        else
+            dirac_subband_dwt_95(s->avctx, width, height, s->padded_width, coeffs, level);
     }
 
     return 0;
@@ -3654,8 +3658,12 @@ static int dirac_encode_frame(DiracConte
     /* Do not override default filter.  */
     put_bits(pb, 1, 1);
 
-    /* Set the default filter to LeGall.  */
+    /* Set the default filter to LeGall for inter frames and
+       Deslauriers-Debuc for intra frames.  */
+    if (s->refs)
     dirac_set_ue_golomb(pb, 1);
+    else
+        dirac_set_ue_golomb(pb, 0);
 
     /* Do not override the default depth.  */
     put_bits(pb, 1, 0);



More information about the FFmpeg-soc mailing list