Forum Archive Home -> Newbie / General discussions -> Why can IVTC not be perfect?
Why can IVTC not be perfect? | ||||||
| loekverhees posted 2009 Oct 31 09:38 | ||||||
| Hi all,
With 3:2 pulldown, 4 frames ABCD are converted to 5 frames (10 fields) AA AB BC CC DD. To IVTC the resulting video, I should say: combine the two fields of the first frame to get the original frame 1, combine the second field of the second frame and the first field of the third frame to get the original frame 2, combine the two fields of the fourth frame to get the original frame 3, and combine the two fields of the fifth frame to get the original frame 4. This way, the original video should be restored perfectly, they should be 100% identical. But as I read everywhere, this is not the case apparently (I read that artifacts can occur when IVTC is applied). But why does this method not work? | ||||||
| jagabo posted 2009 Oct 31 09:49 | ||||||
| Telecined video is often edited after being telecined. This can leave orphaned fields (a field where the complimentary field is no longer present).
For example, in your example: AA AB BC CC DD the video could be cut between the BC and CC frames. The second part of the C frame is gone. Editing after telecine also means software may have to adapt to the changes in telecine pattern and may make mistakes. In fact, the simple fact that these issues exist means all the automatic IVTC algorithms are continuously looking for them. So even with perfect telecined videos they may occasionally make mistakes. Even worse, broadcasters will often reduce the running time of video by occasionally throwing out frames (to make room for more ads). Every time a frame is discarded there is a break in the telecine pattern. | ||||||
| AlanHK posted 2009 Oct 31 09:53 | ||||||
| IVTC does work if the pulldown is perfectly applied: AA AB BC CC DD
The artifacts arise when it isn't, when the sequence is scrambled, or other video is overlaid, if it's stretched or compressed, blended, etc, etc. Animation is notorious for weird framerates. That's why there are so many IVTC tools, Avisynth scripts, and so on. | ||||||
| loekverhees posted 2009 Oct 31 10:07 | ||||||
| Okay, thanks. But if I have a 23.976 video and apply 3:2 pulldown to it, and I leave it that way, I should be able to perfectly IVTC it? And in this case, could this be done using the regular avisynth filters (such as separating the fields and combining specific fields to reproduce the original video)? | ||||||
| manono posted 2009 Oct 31 10:44 | ||||||
If it's had pulldown applied then I assume you're doing this for DVD. In that case you don't have to IVTC at all. You just use DGIndex with the Field Operation set for Forced Film and get an already perfect 23.976fps D2V project file for use in your script. This applies to any progressively encoded MPEG-2 video with pulldown applied. You only have to IVTC the hard telecined or soft/hard telecine mixed MPEG-2 videos.
Yes, but what's the point when there's a much easier way? | ||||||
| loekverhees posted 2009 Oct 31 11:07 | ||||||
Thanks for that 'Forced Film' recommendation, I didn't know that.
It was not my intention to actually use this method, I just asked it to be sure I understood it :). | ||||||
| jagabo posted 2009 Oct 31 11:12 | ||||||
Yes with something like:
The exact SelectEvery() arguments will depend on where you start with the pulldown. | ||||||
| Gavino posted 2009 Oct 31 11:31 | ||||||
Yes, but that "5,6" doesn't seem right. Shouldn't each pair be (even, odd) to select frames with the correct parity? (Or all (odd, even)) | ||||||
| jagabo posted 2009 Oct 31 11:48 | ||||||
| AviSynth keeps track of which fields are top fields and which are bottom fields. It will weave fields 5 and 6 correctly. If you want you can reverse their order:
SelectEvery(10, 0,1, 2,3, 6,5, 8,9) The end result will be the same. four film frames: A B C D 2:3 pulldown: Aa BbB cC dDd paired into frames: Aa Bb Bc Cd Dd SeparateFields: A a B b B c C d D d 0 1 2 3 4 5 6 7 8 9 (numbers for convenience) SelectEvery(10, 0,1, 2,3, 5,6, 8,9): A a B b c C D d Weave(): Aa Bb cC Dd (AviSynth knows c is lower field and C is upper field and will combine them correctly) | ||||||
| loekverhees posted 2009 Oct 31 11:50 | ||||||
If the sequence is:
Shouldn't it be this?
| ||||||
| jagabo posted 2009 Oct 31 11:53 | ||||||
Yes. That's why I said the exact pattern would depend on where in the pulldown you started. | ||||||
| loekverhees posted 2009 Oct 31 11:57 | ||||||
| Okay, I understand. | ||||||
| Gavino posted 2009 Oct 31 18:51 | ||||||
Ah, yes - thanks for clearing that up. The only slight oddity is that if written as (5, 6), the weaved frame will have a different parity (BFF or TFF) from the others inside Avisynth (visible via Info()). Of course, since the original footage was film, 5 and 6 represent the same moment in time, so their temporal order is irrelevant. Even so, for complete consistency it may be better to use (6,5) as it may matter under some obscure circumstances. |
Login/Register to our forum to be able to post here.
