5 Replies Latest reply on Apr 8, 2009 10:30 AM by Dan Isaacs

    De-interlacing fields to subsequent frames

    akira3d Level 1

      I expect clips to automatically or optionally separate fields to subsequent frames given the following conditions:


      • a 29.97/30fps interlaced clip is dropped on to a sequence with a higher playback frame rate
      • an interlaced clip/sequence is set to export to a progressive format or at a higher playback frame rate (which should produce similar result as above)


      After Effects CS4 works as expected.  Plus I've been playing around with a lot of motion compensating deinterlacing plugins in both AVISynth and VirtualDub (slower ones can produce stellar results) that can handle this.


      On a related note, is there anyway to get the output window to show one of the two fields (and/or a weave of both) when playback is stopped?  My current project involves a mix of progressive (30fps) and interlaced (60 fields) footage (with the intention of outputting it at 60fps progressive, so I like being knowing whether I'm looking at frames or fields in the monitor.

        • 1. Re: De-interlacing fields to subsequent frames
          Dan Isaacs Level 2

          Deinterlacing in Premiere sucks. Stick with AviSynth. If you download my hs2sd() plugin pack for AviSynth there is a function called ConditionalSmoothBob(), which will output 2x frame rate from an interlaced source.





          …for very good and fast processing.





          … for slower processing, but often better quality.

          • 2. Re: De-interlacing fields to subsequent frames
            akira3d Level 1

            As for AVI Synth, I'm like the combination of eedi2 and tdeint for deinterlacing.  It is slow, but it does a really good job of preserving the original image in areas of little motion and keeping edges looking sharp when there is.  I wrote a batch file for creating the AVS files from all AVIs within a directory and added an option for enabling or disabling the deinterlacing...so I can edit the AVS files without the performance hit of deinterlacing.  I'll just update the AVS files to have the deinterlacing enabled before I render the final output.  That said, I'm using it to output a 30fps progressive sequence, so it isn't exactly the same situation I mentioned above.


            I've gotten decent 60fps progressive results with SmoothDeinterlace in both AVI Synth (deinterlace-smooth in VirtualDub).  This doesn't do anything to preserve edges, but it does a fairly good job of preserving detail in non-moving areas.


            I only asked the question because it seems odd that deinterlacing in Premiere Pro doesn't happen in all cases where I would suspect it should regardless of quality (at least to behave similarly with After Effects).

            • 3. Re: De-interlacing fields to subsequent frames
              Dan Isaacs Level 2

              My function uses Yadifmod instead of Tdeint... Tdeint has never really gotten me the results I'm looking for. My DeintMethod=1 uses Yadifmod + EEDI2, and DeintMethod=2 uses Yadifmod + TomsMoComp.


              Did you download the multithreaded version of EEDI2? It can drastically speed things up on multicore/multiprocessor systems. The link to it on Tritical's page is broken, so PM if you need it and I can email it to you.


              [ I just realized that misspelled the name of my plugin package --- it is, in fact, hd2sd and sd2hd ... corrected here so that searches will be able to find it! ]

              • 4. Re: De-interlacing fields to subsequent frames
                akira3d Level 1

                If I'm using tdeint like this...


                interp = separatefields().selecteven().EEDI2(field=0)



                ...would this be the similar settings for yadifmod?


                interp = separatefields().selecteven().EEDI2(field=0)


                The result seems a little smoother.

                • 5. Re: De-interlacing fields to subsequent frames
                  Dan Isaacs Level 2

                  OK... here's the way to do it with Yadifmod (requires YV12 or YUY2 input):



                  a.) Using EEDI2


                  (GetParity()) ?

                  \ Yadifmod(mode=1, edeint=SeparateFields().EEDI2(Field=3, maxd=12)) :

                  \ Yadifmod(mode=1, edeint=SeparateFields().EEDI2(Field=2, maxd=12))



                  b.) Using TomsMoComp (this is really good for fast processing)


                  Yadifmod(mode=1, edeint=Interleave(TomsMoComp(-1,0,0), DoubleWeave().SelectOdd().TomsMoComp(-1,0,0)))


                  In both caess, the output will be double the original framerate (i.e: 59.94 fps from 29.97), so to recover the original framerate:


                  # uncomment the next line to drop every other frame

                  # SelectEven()

                  # ... OR, uncomment the next line to blend adjacent frames together

                  # Merge(SelectEven(), SelectOdd())