View Full Version :
Inverse telecine and Deinterlacing destructive???
sampo
20th December 2001, 07:44
I have looked all over the net to find a page that addresses this issue without any luck, so i'll address it here. hopefully someone else shares the same opinion as me...
i think that deintelacing and inverse telecine is destructive to an interlaced video feed. ive seen countless pages filled with pictures of people saying how wonderful inverse telecine looks. there's only one problem: movies are meant to be PLAYED. who cares what an ITC frame looks like? not me!
tv's are far better than monitors when comparing smoothness because they are displaying an interlaced feed. why is no one even talking about making drivers that can mimik interlaced tv's?? Im pretty sure it can be done although i know next to nothing when it comes to programming. such a driver would make playback look so much better!!!! (well, i think. ive never actually seen it done)..
Yes, deinterlacing does make a progressive display look better and im sure it compresses the video better.. but gosh, am i the only one that has a problem with the choppyness (especially during camera movement)??
I guess my question is does anyone care about this whole issue? and is anyone talking/planning on tweaking drivers/codecs to fix the problem?
prr
20th December 2001, 16:21
I'd say who cares how it looks on monitor. Clips are meant to be played on TV :)
pi314
20th December 2001, 16:27
The standard movie is 24fps progressive. IVTC recovers the original 24fps source from the movie. IVTC is not a destructive process.
However, if the source is standard NTSC. It is 60fps interlaced. So, you are right, deinterlacing is destructive (typically). Unfortunately, I don't think it is possible to playback an interlaced source on todays computers and make it look good without deinterlacing.
paul
ProfDrMorph
20th December 2001, 16:48
TVs are better than monitors? LOL
TVs are much worse since the images are blurred ( 320x240 looks fine on TVs but not on monitors since they are more precise ). Next the images are interlaced: every second is missing. So you see only a half picture. It's just like cheating. You won't notice all these tricks because you don't sit next to it. But if you want to see DETAILS monitors are much better. So I prefer going for progressive images and monitors and so for deinterlacing/inverse telecine.
pi314
20th December 2001, 17:37
When you deinterlace a native NTSC source, you are losing motion information! You are going from 60fps to 30fps. Even though in the end you have the same number of pixels, you are not presenting them in the way they were originally intended.
However, the source of most DVD are really 24fps. So this argument is kind of moot. All major movies should be encoded at 23.976fps.
For sources that are actually 60fps interlaced (like TV shows), it is a bit less clear. If you plan on playing it back exclusively on a TV, it might be better to leave it interlaced. Though DivX doesn't encode interlaced video very well. I think thats the point sampo was trying to make.
sampo
20th December 2001, 19:16
I guess Im wondering if it is possible to make a patch/driver/ whatever that will interlace a progressive image in real time and display the picture line by line. the lines would require fading. it would take alot of cpu power but i think it could be done. That way it would compress nicely AND applear to be in 60fps. this would be ideal.
and ProfDrMorph i was talking about smoothness, not resolution. read my post before you go off on unrelated tangents.
pi314
20th December 2001, 19:26
sampo, I'm not quite sure what you are suggesting. Are you suggesting that playing back a 24fps progressive source at 60fps interlaced on a progressive monitor would make the motion smoother? If so, that doesn't make much sense.
Maybe you mean taking a 60fps interlaced source, deinterlace it and encoding at 30fps progressive, and then reinterlacing it during playback. That also would have some problems. If you use a blend deinterlacer or smart deinterlacer, you are getting rid of the 60fps motion information, so reinterlacing them wouldn't gain you anything. The only way around this would be to use a codec that handles interlaced streams well, such as MPEG2.
Even in that case, I highly doubt the fading technique you are suggesting would look good on a monitor. The best way to playback an interlaced stream on a progressive monitor is to "bob" at 60fps. That's what most tv tuner cards do.
Antti
20th December 2001, 19:51
320x240 video is blurred also on a monitor. Or not in monitor, but in display adapter. It's called "scaling" ;)
Beastie
20th December 2001, 22:03
If you play a progressive video via the TV out of your graphics card, then it is interlaced in hardware. The output is 50 of 60fps interlaced. If you start with an interlaced source eg. camcorder footage, and this is to be played to a TV, then there is no need to de-interlace as this will add artifacts and reduce the smoothness of the video.
Just my 2 cents worth. Cheers, Beastie.
gooki
21st December 2001, 05:28
Listen to what Beastie has to say.
Your video card that provides tv out should be interlacing the image and increasing the franerate to 50/60fps depending if you're using pal or ntsc.
And as for choppy movies I've watched plenty of ivtc divx movies and the only one that's been choppy was 'fist of ledgend' and that was because someone used the wrong ivtc patters.
So encoding in interlaced mode is pointless as:
a: interlaced images on monitors look shit because monitors are better than tv's.
b: you waste bits as you're encoding twice the amount of frames (trust me i fucked up an encode of city hunter and made it 50fps - quality was very crap).
c: your tv out card makes it interlaced at 50/60fps so if it's been encoded with he right ivtc pattern you shouldn't notice any difference is smoothness.
The only time i would consider encoding at 30fps is when the actual source is 60fps intelaced not telecined.
sampo
21st December 2001, 06:57
sigh..
i dont think anyone understands my post. im talking about real time interlacing from a progressive video.
say the video is in 29.97fps at a resolution of 640x480 and is progressive (no interlacing). im wondering if it is possible to display frames in the following order on a computer screen:
"scan" 1:
odd-numbered horizontal lines (1-479) from frame 1
"scan" 2:
even-numbered horizontal lines (2-480) from frame 1
fading lines 1-479 from "scan" 1
"scan" 3:
odd-numbered horizontal lines (1-479) from frame 2
fading lines 2-480 from "scan" 2
"scan" 4:
even-numbered horizontal lines (2-480) from frame 2
fading lines 1-479 from "scan" 3
"scan" 5:
odd-numbered horizontal lines (1-479) from frame 3
fading lines 2-480 from "scan" 4
"scan" 6:
even-numbered horizontal lines (2-480) from frame 3
fading lines 1-479 from "scan" 5
and so on..
just like a tv, you'd see 59.94 (29.97 X 2) SCANS per second but only 29.97 real FRAMES per second. this would make movement so much smoother.. trust me, there is a huge difference between 30fps interlaced (when viewed on a tv of course) and 30fps progressive.. real time interlacing would take care of the aweful compression you'd get by leaving it interlaced. the player would just have to be able to read one frame in advance to pick up the even or odd horizontal lines.
i know there is a simpler way to put this but thats the best i can do.
sampo
21st December 2001, 07:16
gooki...
>a: interlaced images on monitors look shit because monitors are >better than tv's.
this is not true. interlaced videos look good on tv's because they scan one set of interlaced lines at a time (odd or even), doubling the scans per second. interlacing looks bad on monitors because it displays the whole frame at once. since its interlaced, it looks bad.
>b: you waste bits as you're encoding twice the amount of frames
>(trust me i fucked up an encode of city hunter and made it 50fps - >quality was very crap).
you are not encoding twice the amounts of frames. interlacing only tricks your eyes into thinking you see 50 or 60 fps (depending on ntsc or pal of course). ntsc and pal standard dvd's and cable feeds are always 25 or 30fps whether of not they are interlaced or not.
>c: your tv out card makes it interlaced at 50/60fps so if it's been >encoded with he right ivtc pattern you shouldn't notice any >difference is smoothness.
im pretty sure this is incorrect. i think that tv-out images in progressive. the tv then displays the horizontal lines in an odd, even, odd, even, order but since each set of "odd/even" is originally part of the same frame (as opposed to interlacing) there is no advantage to interlacing.
Milkman Dan
21st December 2001, 09:57
No, TV-outs are interlaced. By your argument, the tv would have to 'detect' the progressive stream and do the 're-interlacing' itself. Which is certainly no feature I've ever heard of. Same goes for VCR's and whatever else you might route your signal through.
TV-outs are interlaced for compatibility.
I also have to disagree with your logic that tv's are 'better' than monitors essentially because they are displaying their native format. I would say that a computer monitor displays interlaced lines better than a television. Aside from the fact that it would look terrible, the precision would be greater, and it would have this smoothness that you seem to covet so much.
I mean, I guess it's cool and all that you can discern the difference between FILM motion and 50fields per second, but really, if it bugs you that much, I'd stick to watching rips on a TV. Because people, as they have already explained, watch things on their monitors for a specific reason...it LOOKS better. They are obviously willing to sacrifice temporal resolution for spatial precision. And that's what monitors cater too.
So I guess you're barking up the wrong tree here. If you can get someone to write a DShow filter that does what you are talking about, more power to you. But I wouldn't be surprised if few people use it.
EDIT: I also just realized that since monitors display at upwards of 60Hz+, they, at the very LEAST, have twice the frame refresh rate of a TV. Naturally, you'd have to have 60fps-p, but you see my point.
Milkman Dan
21st December 2001, 10:19
No, mr pi above has you on this one. It doesn't make any sense, because you aren't reclaiming the lost temporal resolution by displaying progressive video this way.
True interlaced video has a field structure like this:
ab cd ef gh ij kl mn and so on.
This yields the increased temporal resoution you crave, since each field has the capacity to be ever slightly different from its predecessor.
Progressive fields look like this:
aa bb cc dd ee ff gg and so on.
Each pair of fields is a dupe, obviously. Thus, there are periods in fast motion where (to you) noticable motion can be missed
If you playback P-streams as I-streams in the manner you suggest, all you're going to do is raise the 'framerate'. You won't get increased temporal resolution, because it was never there to begin with. You'd have to have some sort of 'motion interpolator' to do what you are talking about.
Originally posted by sampo
sigh..
i dont think anyone understands my post. im talking about real time interlacing from a progressive video.
say the video is in 29.97fps at a resolution of 640x480 and is progressive (no interlacing). im wondering if it is possible to display frames in the following order on a computer screen:
"scan" 1:
odd-numbered horizontal lines (1-479) from frame 1
"scan" 2:
even-numbered horizontal lines (2-480) from frame 1
fading lines 1-479 from "scan" 1
"scan" 3:
odd-numbered horizontal lines (1-479) from frame 2
fading lines 2-480 from "scan" 2
"scan" 4:
even-numbered horizontal lines (2-480) from frame 2
fading lines 1-479 from "scan" 3
"scan" 5:
odd-numbered horizontal lines (1-479) from frame 3
fading lines 2-480 from "scan" 4
"scan" 6:
even-numbered horizontal lines (2-480) from frame 3
fading lines 1-479 from "scan" 5
and so on..
just like a tv, you'd see 59.94 (29.97 X 2) SCANS per second but only 29.97 real FRAMES per second. this would make movement so much smoother.. trust me, there is a huge difference between 30fps interlaced (when viewed on a tv of course) and 30fps progressive.. real time interlacing would take care of the aweful compression you'd get by leaving it interlaced. the player would just have to be able to read one frame in advance to pick up the even or odd horizontal lines.
i know there is a simpler way to put this but thats the best i can do.
ProfDrMorph
21st December 2001, 12:40
Milkman Dan is right you can't raise motion which isn't there by realtime interlacing. I highly doubt that the raised "fps" on TV ( 50/60 updates of the screen with half pictures instead of (24)/25/30 updates of the screen with a full picture ) will result in smoother motion when a movie is shown which was recorded for the cinema ( 24 FPS ) since interlacing doesn't add motion. Motion interpolation like Real Player 8 can do is the way to go.
@sampo:
sigh..
i dont think anyone understands my post. im talking about real time interlacing from a progressive video.
Ok I missed the point in my first post since I only refered to one part of one of your sentences and forgot about the second. But your thread isn't better: It's called "Inverse telecine and Deinterlacing destructive???" and you want to tell us that we may improve smoothness by using some sort of realtime interlacing of a progressive source?
btw: Play a 640x480@60FPS stream on a monitor and it will look much better than on a TV. It's as smooth as on your TV but has more details. So the reason why TVs MAY be smoother is that they CAN show streams that where recorded with 60 half pictures per second. And usually you don't use so many screen updates for video streams on computers. But on computers it would look better if you would deinterlace a stream with 60 half pictures per second without reducing the number of screen updates per second so that the resulting progressive stream would have 60 FPS. Ok the deinterlacing would have to calculate the missing lines in between without knowing what was really there but maybe it's possible through some kind of interpolation.
And don't forget that humans can't see all those frames in just one second. The most people won't notice a difference between 24 FPS and 60 FPS. That's the reason why 24 FPS is used for cinemas because you need less information for 24 FPS than for 60 FPS. What I want to say is that when you're watching an interesting movie then you don't think about it's smoothness.
legman
21st December 2001, 14:35
yeah, they are right.
You can't add whats not there.
Inerlaced source is better encoded as interlaced for smoothness. Inversing it will loose data.
A progressive stream should be kept progressive, then hardware fixes it.
If you want that smoothness from the studios, they would have to shoot more frames per second. No matter what the number, if it is higher it can be displayed as interlaced with some work.
I think you either have very fast eyes, are seeing an originally interlaced foootage that was inversed (should not have been done) or have errors with you puter decoding correctly.
It's a toss up between picture quality and smoothness.
The idea above about a motion emulator is about the only thing you could do. If 24 fps is not fast enough, then there is nothing we can do.
Remember, interlaced is 60 fields per sec, not 60 frames. The data in one field is only half the picture. Like I said above, "are seeing an originally interlaced foootage that was inversed (should not have been done). This is the most commonly done mistake. They play pretty well and look good, but are not quite as smooth.
pi314
21st December 2001, 21:31
Interlacing a progressive source CANNOT make it look smoother. As many people have pointed out (including myself), you cannot get more information than is in your original source. This is a basic law of information theory. To prove this point, when you playback a movie on a monitor, you are really playing it back at the monitor's refresh rate (in my case 85p), but it doesn't look any smoother than it would at 24p.
The real problem is when you try to encode a true 60i source (such as a TV show). Most people deinterlace and encode at 30p. This results in a loss of temporal resolution. The only ways to keep all the motion information is to encode it at 60i, which a lot of codecs can't handle, or at 60p which requires a LOT more bandwidth.
And then there is the matter of playing back a 60i source on a progressive monitor. The stupid way of doing this is to play it back as if it were a 720x480x30p source ("weave"). This leads to combing artifacts. A better way of doing this is to play it back at 720x240x60p ("bob"). Unfortunately this leads to a bit of jitter.
The problem we are left with is how to encode a 60i source efficiently. It is possible to do this without sacrificing quality or bandwidth; MPEG2 does this very well, as does huffyuv. Maybe the creators of DivX4 could add this to there todo list.
pi
baz00ie
21st December 2001, 22:21
One solution,... if this is what you're after, is to use the PICVideo MJPEG codec to capture your 640x480 input. The codec has the ability to capture even and odd lines into seperate parts and then re-assemble them during playback. The result is a much clearer picture for processing because you won't have any "ghosting" occuring between scan lines.
It does cost $18.00 US , however, it is well worth it. You can find it here:
http://www.jpg.com/video/mjpeg.htm
later
Joe
ProfDrMorph
22nd December 2001, 00:45
Maybe some coder show try to write a filter which tries to calculate the missing lines of interlaced "60" FPS source without reducing anything ( keep resolution AND keep "FPS" ( ok going from interlaced to progressive would double the real frame rate but I hope you know what I mean ) ).
As anybody an idea how this could be done ( the calculation )? If so I'm willing to make a try. I can write C/C++ code and I'm able to learn how to write filters for VirtualDub ( this should be enough for a first approach ).
Another problem would that I have no TV card in my computer. Someone would have to capture something with 60 FPS and give me the file as it is. ( HuffYUV, MJPEG, MPEG2 or any codec that can handle 29.97 FPS interlaced streams )
Kedirekin
22nd December 2001, 01:40
Or, if you were really nuts, you could emulate a TV. Play back at 59.whatever fps - play each frame twice and alternately fade the even and odd lines buy 50% or something. You could even fade the top lines more than the bottom ones (emulate phosphor fade).
Of course, that introduces the whole problem of field order on a PC monitor, where it usually isn't a problem.
This is kind of a silly thread.
ProfDrMorph
22nd December 2001, 11:19
yes it's silly. Simple solution: stick with progressive 24/25/29.97 FPS for monitors and interlaced 50/60 "FPS" for TVs. Usually you won't notice a difference between the different FPS. ;)
My previous post was about offering the possibility to use higher progressive frame rates for the ones who think they see a difference.
b0b0b0b
22nd December 2001, 12:14
Originally posted by Kedirekin
This is kind of a silly thread.
I was going to say that this thread is crazy, but I realized that the actual question is whether you can encode interlaced material with divx in the same way you can with mpeg-2.
My impression is that you cannot.
ProfDrMorph
22nd December 2001, 16:24
I realized that the actual question is whether you can encode interlaced material with divx in the same way you can with mpeg-2.
My impression is that you cannot.
You're right. DivX is only meant for progressive sources. I think that's the reason why they added a deinterlacing filter into DivX4.
Antti
22nd December 2001, 17:15
Divx4 is only for prog sources because MPEG-4 simple profile doesn't support interlacing (contrary to MPEG-2 MP@ML). However you can simply feed interlaced material to the codec, the results may vary from great to poor. If you use TV-out, it may be useful not to deinterlace (e.g. sports).
Anyway, interlaced video requires a lot higher bitrate than progressive, combed pictures are hard to compress.
It's interesting to note that interlacing support in MPEG-2 improves compression efficiency only by 20% when compared to the method above.
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.