wdq4587
17th May 2002, 12:34
Normally we say Telecine 3:2 pulldown is 4 fields add 1 field.
So original AviSynth way seems like a standard method for IVTC.
DoubleWeave()
SelectEvery(5,0,3)
After double the speed, get 2 frame from each 5 frame.
The TMPGEnc normally is also this way: 10010
Original 24fps progressive video
A B C D
A B C D
After 3:2 pulldown telecine
A A B C D
A B C C D
The interlace field play sequnce in TV is
A A B C D
_A B C C D
After DoubleWeave()
A A A B B C C D D A
A A B B C C C C D D
* * * *
Get 0 and 2 frame of every 5 frames. Then it's IVTCd
But if Telecined 30 fps video is compressd by 30fps.
(not store 24fps with rff and tff flag)
The things will be some different.
Decompressed output sequence (telecined) is
A #A #B C D
A #B #C C D
After DoubleWeave()
A#A#A#B#B C C D D A
A A#B#B#C#C C C D D
* # # *
The fields with # is come from interlace frame.
Since mpeg2 compress whole frame not field.
The fields decompress from compressed interlace frame will have
bad quality than normal frame, since the interlace frame is
difficult to compress.
Frame B cannot be good since it's generate from 2 interlance frames.
But frame C don't need generate from interlance frames.
So the best IVTC sequence is 0,3,6,8
And it's also suitable for store 24fps in DVD with rff,tff flags
Mod 5 sequence can only give 0,3,#5,8 or #1,3,6,8 which is alway bad
than the 0,3,6,8
Not the best way!
So I works like this:
DoubleWeave()
SelectEvery(10,0,3,6,8)
I think when you do IVTC, the best algorithm is avoid use composed
frame (from one frame bottom field and next frame top field). Even the source is not real 30fps (store 24fps), you lost nothing.
I also want Decomb can use this information to let it Decimate() more accurate.
So original AviSynth way seems like a standard method for IVTC.
DoubleWeave()
SelectEvery(5,0,3)
After double the speed, get 2 frame from each 5 frame.
The TMPGEnc normally is also this way: 10010
Original 24fps progressive video
A B C D
A B C D
After 3:2 pulldown telecine
A A B C D
A B C C D
The interlace field play sequnce in TV is
A A B C D
_A B C C D
After DoubleWeave()
A A A B B C C D D A
A A B B C C C C D D
* * * *
Get 0 and 2 frame of every 5 frames. Then it's IVTCd
But if Telecined 30 fps video is compressd by 30fps.
(not store 24fps with rff and tff flag)
The things will be some different.
Decompressed output sequence (telecined) is
A #A #B C D
A #B #C C D
After DoubleWeave()
A#A#A#B#B C C D D A
A A#B#B#C#C C C D D
* # # *
The fields with # is come from interlace frame.
Since mpeg2 compress whole frame not field.
The fields decompress from compressed interlace frame will have
bad quality than normal frame, since the interlace frame is
difficult to compress.
Frame B cannot be good since it's generate from 2 interlance frames.
But frame C don't need generate from interlance frames.
So the best IVTC sequence is 0,3,6,8
And it's also suitable for store 24fps in DVD with rff,tff flags
Mod 5 sequence can only give 0,3,#5,8 or #1,3,6,8 which is alway bad
than the 0,3,6,8
Not the best way!
So I works like this:
DoubleWeave()
SelectEvery(10,0,3,6,8)
I think when you do IVTC, the best algorithm is avoid use composed
frame (from one frame bottom field and next frame top field). Even the source is not real 30fps (store 24fps), you lost nothing.
I also want Decomb can use this information to let it Decimate() more accurate.