Pko
27th March 2002, 19:06
I am trying to encode to SVCD a stream from a DVD that is hybrid (that is, contains around 20 - 30% CGI that is pure NTSC and around 80 - 70% real-actors footage encoded as FILM). I am trying to encode it (with CCESP) to SVCD, and there are some options that I can think of:
1) encode as progressive
Obviously very bad solution, I did not even tried it.
2) encode as interlaced
Is the best solution IMHO but some friends have told me that some with some software players it will look very bad... I have tested it with very good results with a short sample; it looks great both in my stand alone player and in WinDVD. Of course, I had to encode it twice, one with "upper field first" and one otherwise; both look good in WinDVD but the first one look awful in the stand alone player... so I conclude the original stream is "lower field first"
It had not only really good apearance but also encoded really fast (1.518X in my short 2 minute clip; I'm using an Athlon XP 1700+ OC to 1900+; the timing measurements are not accurate since the computer was doing a few things at the same time: burning CDs, surfing the net and such. I encoded it in 4 passes, 2200 average, 300 min, 2500 max, that settings were for all the tests)
Result is a 29.97 NTSC interlaced stream
3) deinterlace with decomb
Using FieldDeinterlace() by itself
Appears to be the easier brute-force solution... when you do not want to think or try field order or anything, this will allways give a reasonably good result. Does not look as good as 2), and also took more time (1.101X). Movement is smooth in the NTSC sections but not so smooth and with a few ghosting in the FILM sections.
Result is a 29.97 NTSC progressive stream
4) IVTC with decomb, mode 0 (default)
Using telecide(), decimate(cycle=5)
Gives good results, better than 3) and perhaps as good as 2). Takes more time though (0.975X). Movement is perhaps not as smooth as 3) in NTSC sections (but is difficult to say... is a very subjetive opinion), but there is absolutely no ghosting ever and (at least in FILM sections) quality is excellent both image-wise and movement-wise.
Result is a 23.976 FILM progressive stream; I executed pulldown on it to get a 29.97 NTSC stream with 3:2 pulldown and then muxed with the same audio as with the other clips, and obtained the same A/V synch as with the other clips.
5) IVTC with decomb, mode 1
Using telecide(), decimate(cycle=5,mode=1,threshold=35)
(I took an arbitrary 35 value for threshold; I have read in a guide that it should be a number between 25 and 50 and that is a pretty intermediate number :-) )
Gives results almost as good, image-wise, as 4) and also with no ghosting, but the movement was not as smooth as it should be neither in NTSC nor FILM sections... Well, at this point I had saw so many times the test clip that it was really really difficult to give a reasonably neutral opinion, so perhaps I was seeing "jumps" in the movement that weren't really there... It encoded at about 1.000X, that is, in realtime... But as I said, the timing was not very accurate since I was using the computer for different thing while the different tests where being compressed.
Result is a 29.97 NTSC progressive stream
6) Encode as an Hybrid stream
I did not really did this because there are no tools to do this, at least not any I know of... But I think that this MUST be possible; for example, the original DVD *IS* hybrid...
Perhaps there could exist a version of a IVTC Avisynth plugin that detects when to IVTC and when to leave the stream as pure NTSC (well, telling CCESP when to encode as progressive or not would be a very difficult task, I presume; if the NTSC sections are decombed, it should be allways progressive, I think). It should not only do the conversion but also create a "log" file where it should write which frames where IVTC'd and which where treated as NTSC (perhaps decombed to progressive). Then, a special version of pulldown should take that file (after the compression to MPEG2 phase) and apply the 3:2 pulldown only to the relevant frames, leaving the rest as NTSC.
The result should be an hybrid stream, and so, the most faithful to the original of all, whith no combing, no ghosting, the best quality (only had to encode the REAL frames) and as smooth in movement as the original... Well, the decombing process would make it no so "faithful", but...
What do you think about this? What is the approach DVD2SVCD takes in these cases? Do you think -as I do- that for now the best solution is encode as interlaced? Is that "maintain hybrid" approach feasible or it is just another stupid idea almost impossible to do in the real world?
I doubted where to post this... "DVD2SVCD advanced", "CCE" and "SVCD and VCD encoding" forums where good candidates (I will put in some of the a reference to this posting), but here appears to be were the "IVTC wizards" stop most often :-)
1) encode as progressive
Obviously very bad solution, I did not even tried it.
2) encode as interlaced
Is the best solution IMHO but some friends have told me that some with some software players it will look very bad... I have tested it with very good results with a short sample; it looks great both in my stand alone player and in WinDVD. Of course, I had to encode it twice, one with "upper field first" and one otherwise; both look good in WinDVD but the first one look awful in the stand alone player... so I conclude the original stream is "lower field first"
It had not only really good apearance but also encoded really fast (1.518X in my short 2 minute clip; I'm using an Athlon XP 1700+ OC to 1900+; the timing measurements are not accurate since the computer was doing a few things at the same time: burning CDs, surfing the net and such. I encoded it in 4 passes, 2200 average, 300 min, 2500 max, that settings were for all the tests)
Result is a 29.97 NTSC interlaced stream
3) deinterlace with decomb
Using FieldDeinterlace() by itself
Appears to be the easier brute-force solution... when you do not want to think or try field order or anything, this will allways give a reasonably good result. Does not look as good as 2), and also took more time (1.101X). Movement is smooth in the NTSC sections but not so smooth and with a few ghosting in the FILM sections.
Result is a 29.97 NTSC progressive stream
4) IVTC with decomb, mode 0 (default)
Using telecide(), decimate(cycle=5)
Gives good results, better than 3) and perhaps as good as 2). Takes more time though (0.975X). Movement is perhaps not as smooth as 3) in NTSC sections (but is difficult to say... is a very subjetive opinion), but there is absolutely no ghosting ever and (at least in FILM sections) quality is excellent both image-wise and movement-wise.
Result is a 23.976 FILM progressive stream; I executed pulldown on it to get a 29.97 NTSC stream with 3:2 pulldown and then muxed with the same audio as with the other clips, and obtained the same A/V synch as with the other clips.
5) IVTC with decomb, mode 1
Using telecide(), decimate(cycle=5,mode=1,threshold=35)
(I took an arbitrary 35 value for threshold; I have read in a guide that it should be a number between 25 and 50 and that is a pretty intermediate number :-) )
Gives results almost as good, image-wise, as 4) and also with no ghosting, but the movement was not as smooth as it should be neither in NTSC nor FILM sections... Well, at this point I had saw so many times the test clip that it was really really difficult to give a reasonably neutral opinion, so perhaps I was seeing "jumps" in the movement that weren't really there... It encoded at about 1.000X, that is, in realtime... But as I said, the timing was not very accurate since I was using the computer for different thing while the different tests where being compressed.
Result is a 29.97 NTSC progressive stream
6) Encode as an Hybrid stream
I did not really did this because there are no tools to do this, at least not any I know of... But I think that this MUST be possible; for example, the original DVD *IS* hybrid...
Perhaps there could exist a version of a IVTC Avisynth plugin that detects when to IVTC and when to leave the stream as pure NTSC (well, telling CCESP when to encode as progressive or not would be a very difficult task, I presume; if the NTSC sections are decombed, it should be allways progressive, I think). It should not only do the conversion but also create a "log" file where it should write which frames where IVTC'd and which where treated as NTSC (perhaps decombed to progressive). Then, a special version of pulldown should take that file (after the compression to MPEG2 phase) and apply the 3:2 pulldown only to the relevant frames, leaving the rest as NTSC.
The result should be an hybrid stream, and so, the most faithful to the original of all, whith no combing, no ghosting, the best quality (only had to encode the REAL frames) and as smooth in movement as the original... Well, the decombing process would make it no so "faithful", but...
What do you think about this? What is the approach DVD2SVCD takes in these cases? Do you think -as I do- that for now the best solution is encode as interlaced? Is that "maintain hybrid" approach feasible or it is just another stupid idea almost impossible to do in the real world?
I doubted where to post this... "DVD2SVCD advanced", "CCE" and "SVCD and VCD encoding" forums where good candidates (I will put in some of the a reference to this posting), but here appears to be were the "IVTC wizards" stop most often :-)