Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
15th July 2010, 11:20 | #261 | Link | |
Registered User
Join Date: Dec 2002
Location: UK
Posts: 1,673
|
Quote:
The artefacts are less noticeable if you (for example) double the frame rate using MFlowFPS (so you still keep all the original frames), and then changefps or pulldown from that to whatever you really want. Of course it's not as smooth. There was a script (can't remember its name - I think it was in the Alchemist thread) that adaptively switched between motion compensation and blending (block-based), depending on the complexity of motion (I think). Unfortunately that added block-based artefacts. Cheers, David. |
|
15th July 2010, 11:32 | #262 | Link | |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 689
|
Quote:
Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
|
15th July 2010, 16:36 | #263 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,695
|
I decided to try some of the things manono has been suggesting. Here is what I found.
Code:
ChangeFPS(59.94) AssumeTFF() # or BFF, as required SeparateFields() SelectEvery(4, 0,3) Weave() AssumeFPS(29.97, true) I am doing some tests with DGPulldown, and am less convinced as to whether this is going to produce a useful result. I'll create a test DVD and see what happens. P.S. I did try encoding using the "ChangeFPS(19.98)" script, but this (as I expected) changes from 18 fps to 19.98 fps by duplicating entire frames. Given this, I don't see how DGPulldown is going to give me a smooth looking result. Last edited by johnmeyer; 15th July 2010 at 16:40. Reason: Add postscript |
15th July 2010, 16:46 | #264 | Link |
Registered User
Join Date: May 2008
Posts: 21
|
I've got a silly question. In your video hosted at vimeo, on the 6 second is that a bird that have been removed? xD
And on the 26 second that mosquito appeared from nothing. At the end of this idiocy of mine, congratulations, very, very good work that you've acomplished. Sorry for my bad english... Last edited by fabioseixal; 15th July 2010 at 16:53. |
15th July 2010, 16:55 | #265 | Link | |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 689
|
Quote:
Yes, the bird is gone and the mosquito appears from nothing. RemovedirtMC has done this. Perhaps I should have set the RemoveDirt strength a bit lower on these scenes.. Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
|
15th July 2010, 16:58 | #266 | Link | ||
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Quote:
Quote:
And you haven't ever addressed my main points. I contend that yours will be at least as jerky playing, but having purposely interlaced it, which requires a lot more bits for the same quality as progressive encoding, and with 50% more encoded frames, the output for the same filesize will also be of considerable poorer quality, probably something like 40% poorer quality as measured by the average quant. |
||
15th July 2010, 17:34 | #267 | Link | |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,695
|
Quote:
The problem with any sort of pulldown is that it introduces stutter (which is different than judder, the artifact you get on film when the camera pans horizontally). Stutter is where you can actually perceive the motion starting and stopping as frames are duplicated. The problem is that when you duplicate an entire frame (rather than duplicating only one field, a process which results in half the temporal disturbance), you introduce a HUGE discontinuity in the temporal cadence of the resulting video. This is a really bad thing and is visually very disturbing. I see it frequently on commercial broadcasts of theatrical films that have been (badly) decimated to fit a two hour time slot. I also have seen it in many NTSC->PAL and PAL->NTSC conversions that people have given to me to rescue. As people in the TFM threads have discovered, there is some amazingly bad stuff that gets done to video. The amount of visual disturbance any of these bad conversions create is a function of how often these discontinuities occur. The less frequent they are, the worse, because they are not part of the flow and when they happen during fast motion, they stick out like a sore thumb (for example, the 19.98 video I created in my failed attempt to use DGPulldown looked absolutely horrible because it repeats one entire frame, but only every ten frames). By contrast, the difference in encoding quality between encoding purely progressive video (with entire frames duplicated), and encoding interlaced video with pulldown fields is going to be noticed as a slight increase in encoding artifacts (mosquito noise, blockiness at transitions, etc.). At reasonably high bitrates, with a professional encoder using multi-pass encoding, the difference in these encoding artifacts can be so minor as to be unnoticeable. In addition, I think that underlying your comments is the belief that interlaced is somehow "worse" than progressive. It is true that interlaced presents additional challenges when editing, and it is also unfortunately true that many of the modern television sets cannot display it natively (something that does not have to be that way and which I hope will change), but interlaced video looks fantastic, unless you try to freeze an individual frame. Oh, and as I mentioned in passing above, I tried to follow your suggestion to encode a 19.98 AVI file (resulting from ChangeFPS(19.98) to a 19.98 MPEG-2 file and then apply DGPulldown to the result. However, I could not get Vegas, the standalone MainConcept MPEG-2 encoder, or TMPGEnc to encode a 19.98 MPEG-2 file. Last edited by johnmeyer; 15th July 2010 at 18:09. Reason: forgot the word "not" |
|
15th July 2010, 17:49 | #268 | Link | |
Avisynth language lover
Join Date: Dec 2007
Location: Spain
Posts: 3,431
|
Quote:
Manono's solution is to use ChangeFPS to get from 18 to 19.98 and then use DGPulldown to go the rest of the way. It seems to me this will produce, instead of the optimal 4:3:3 pattern, something like 6:6:3:3:...:3, because of the repeated frames resulting from the initial ChangeFPS. Are you sure this works, Manono? Edit: Actually, what might work is to combine 'my' hard pulldown (instead of a simple ChangeFPS) to get to 19.98 before using DGPulldown: ChangeFPS(39.96) SeparateFields() SelectEvery(4, 0,3) Weave() # is now 19.98 This would allow to encode the smallest number of frames while still getting as smooth playback as possible. Last edited by Gavino; 15th July 2010 at 18:22. |
|
15th July 2010, 18:31 | #269 | Link | |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,695
|
Quote:
The method that seems to hold the best promise (at least for my work) for 16 and 18 fps material is to use MFlowFPS to go from either of these two framerates to 24 fps progressive. This reduces the number of interpolations that MVTools must do (compared to having it interpolate all the way to 59.94 interlaced, i.e., 60i). Then, encode this 24 fps as 23.976 progressive MPEG-2 with the pulldown flags set, something that any MPEG-2 encoder can do. I've test this, and for most material it works well. You get the clean encoding that manono talked about; and you produce a DVD that can either be viewed as 29.97 with traditional 3:2 pulldown (which will be supplied by the DVD player) or as 24 fps progressive, if the DVD player and TV set can ignore the pulldown flag and display the material as it was encoded. For this application, I have found that using blksize=16 (for the MAnalyze function that precedes MFlowFPS) reduces the "broken leg" artifacts that MFlowFPS often produces. I call it this because you see the problem when people walk in front of the camera. Depending on the distance from the camera, their legs will appear to warp ("break") in mid stride. With the larger block size, this is reduced. Since 8mm and Super8 (and even most 16mm film) doesn't have the detail of HD video, this larger block size seems to work well for this application without much downside compared to blksize=8. P.S. I saw that Gavino was posting at the same time I posted. That code looks more promising, but I still don't see how I can encode a 19.98 MPEG-2 file, which I think is what is required in order to have the proper input to DGPulldown. And, I'm still not sure whether the output of DGPulldown can be used as the input to a DVD authoring tool. But, I'm willing to try to see what it look like. Any advice on how to encode 19.98 MPEG-2 would be appreciated (or, if I am not understanding correctly, a gentle nudge in the right direction ...) Last edited by johnmeyer; 15th July 2010 at 18:35. Reason: Saw Gavino's edit |
|
15th July 2010, 18:53 | #270 | Link | |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,733
|
Quote:
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
|
16th July 2010, 03:47 | #272 | Link | ||||
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Quote:
Quote:
Quote:
Quote:
I ran some tests on both methods and have to modify something I said earlier because your script doesn't have as high a percentage of interlaced frames as I thought. Rather than your script producing 40% poorer quality, it's more like 30-35%. First I encoded 1000 frames using both scripts at constant quality (quant) in CCE. The progressive script produced a file of 35.7 MB and the interlaced script of 49.1 MB, a size difference of 35.7%. Then I did encodes for the same file size and the average quant as measured by BitRate Viewer was 6.08 for the progressive script and 7.63 for the interlaced script. I say these are significant differences. If I've done this once for sub-23.976 framerates, I've done it a hundred times. You can't apply pulldown to interlaced output. Last edited by manono; 16th July 2010 at 05:32. |
||||
16th July 2010, 05:27 | #273 | Link | |
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
More notes:
Quote:
About encoding at noncompliant framerates: Because you'll be encoding at 23.976fps rather than at 19.98fps, you have to make adjustments in the bitrates to get the file sizes you want. You multiply each by a factor of encoded framerate/'real' framerate. In this example, 23.976/19.98=1.2. You multiply each bitrate by a factor of 1.2. If, for example, you use min-ave-max bitrates of 500-4000-9000, then adjust to 600-4800-10800. Everything gets straightened out after the pulldown is applied And if johnmeyer wants to try MFlowFPS on something like this, he might consider converting it to 19.98fps, rather than 23.976fps or 29.97fps, or whatever he's been trying. Fewer frames get interpolated and thus fewer artifacts. And by applying 3:3 pulldown after the encoding, there'll be no pulldown judder at all. |
|
16th July 2010, 10:11 | #274 | Link | ||
Avisynth language lover
Join Date: Dec 2007
Location: Spain
Posts: 3,431
|
Quote:
Quote:
|
||
16th July 2010, 12:19 | #275 | Link | |
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Quote:
I saw a novel way to do this which the Flicker Alley folks who restore and release silent films did. I'm a little foggy on the details now because it was a while back. If I remember correctly the 'base' framerate was 22 fps and they, instead of hard telecining it to 29.97fps, and rather than adding in duplicate frames to bring it up to 23.976fps so they could encode at that framerate progressively and add pulldown, added in blended frames to bring it up to 23.976fps, and then encoded it progressively with pulldown. It wasn't quite like what a ConvertFPS(23.976) does I don't think, because that seems to create more blended frames than they did. They created 2 new blended frames every second, with the original frames being left alone. If, for example, you were going from 18fps to 19.98fps, they would have had only 2 blended frames spread 10 frames apart created from the progressive frames on either side, with the rest the original progressive frames. You could probably figure a script for that. Although you might get a kind of strobing and blurring effect, the stutter wouldn't be anywhere near as jarring during certain kinds of movement. |
|
16th July 2010, 12:34 | #276 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,391
|
No need to script that. For that purpose you can use BlendFPS from mg262's motion.dll. It has an "aperture" parameter to control the amount of blending ... aperture is related to the relative weight that a frame would get by ConvertFPS - if frame's weight is smaller than "aperture", no blending is used. Else, do normal blending.
__________________
- We´re at the beginning of the end of mankind´s childhood - My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!) |
16th July 2010, 21:45 | #277 | Link |
Registered User
Join Date: Jul 2010
Posts: 7
|
John
Quote: I'm not sure what you mean by this. Aren't Blu-Ray blanks pretty cheap now? I have no Blueray player, writer or disks. So yes the cost to me would be significant and probably unjustifiable. At 73 my friends and relations tend to have VHS tape or DVD players but few have Blueray players. So DVD is my currently preferred method of distribution used for SD transfers. For distribution of the HD transfers I investigated: - - Burn to Blueray disk. Currently too costly and the recipient must have a Blueray player. - Burn a DVD disk compatible with the format and playable in a Blueray player. This works but needs a lower bit rate than that used by the HV20 tape transfer file. Cost effective but some degradation and again the recipient must have a Blueray player. - Use Avisynth to frame serve MultiAVCHD to generate a SD/SDHC memory card MPEG4 file compatible with the Panasonic Viera SD requirements. Not tested yet. Is SD card a viable distribution media? Can all TV's read the same SD card video file? -Burn a DVD data disk with the HV20 tape transfer file. The recipient or I copy the file to HDD or memory stick and they can play the file via USB2 to a Western Digital media box into their TV using the HDMI or other interface. The media box can apparently handle a wide range of input video file formats and types successfully. If the conversion quality is good/excellent then this could be the way to go. The Cineform software package you quoted costs far more than my telecine system did to build (excluding my HV20 video camera). Does your IVTC method of capture work OK with the Cineform package? The BMP route I chose is simple and inexpensive, my current software program works for SD or HD and emulsion side or base layer capture. The original film transport system layout was mirrored when I changed to emulsion side capture. If your film transport system repeatable positional accuracy of the film frame to frame is greater than zero pixels it produces a vertical displacement error of the same lines between adjacent frames. So any change of fps using fields from adjacent original frames to create an intermediate frame seems to me flawed because lines combined would be displaced from their desired position by the error. This is the beauty of MFlowFPS as it inherently computes the pixel positions for the generated frame from adjacent original frames, which includes the displacement error. I agree MFlowFPS does introduce artifacts; your "broken leg" naming is appropriate. When you look at the source frames that cause such artifacts these are often blurred due to the slow 1/25 s shutter speed of the cine camera used and/or contra-movement of different objects in a frame and the adjacent ones. The other situation is at scene changes. My criteria for what to do when editing the transfer are as follows. If I cut the affected frames out will it spoil the flow of the scene? If I need to keep the flow of the scene can I substitute other frames for the affected ones, with the original frames only and accept the transient fps speed change or with frames generated from the originals normally using PPro speed change facility. You also need to consider the number of adjacent frames showing the artefacts and if there is a soundtrack involved with the transfer. VideoFred I like your restoration script very much and thank you for sharing it with us. Please can you explain the strategy you use for the stunning colour correction you achieve when using an Avisynth script? Have you an Avisynth script for generating the MPEG 4 uploads you make to the Vimeo site that you are willing to share with us? Regards Gerald |
16th July 2010, 23:46 | #278 | Link | ||||
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,695
|
Quote:
Quote:
Quote:
Quote:
Also, the errors that become visible when using motion estimation seem, in my experience, to come more from motion of small objects within the frame, or from things which move into the frame, close to the camera. If the whole frame moves, motion estimation does an amazing job of correcting for this. VideoFred's script shows what can be done, and indeed the Depan settings he has created pretty much completely eliminate the motion caused by gate weave. As to any scan line errors, I guess you may be referring to the artifacts such as you get when bobbing interlaced material, problems on diagonal lines, and other things that happen when details jump back and forth across scan line or pixel boundaries. Again, this happens all the time not only for the reasons I mentioned, but also because most amateur 8mm, Super8, and 16mm film was shot hand-held, without the benefit of motion stabilization, and so is already bouncing all over the place. |
||||
17th July 2010, 02:35 | #279 | Link |
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Thank you for the suggestion, Didée. Ordinarily I shun blending like the plague, but for framerates below 19.98fps (the DGPulldown threshold for NTSC) where dupe frames have to be added, this works well. Although ChangeFPS(19.98) is fine for me, I guess because I'm not very sensitive to the added stutter, creating an 18fps source and then using:
BlendFPS(19.98,Aperture=0.2) made it play silky smooth with the blending not very noticeable. The next time I have an appropriate source I'll give BlendFPS a try. Thanks again, and to mg262, because I wasn't aware of this filter. |
19th July 2010, 08:10 | #280 | Link | ||
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 689
|
Quote:
Let me explain further: As you might know, I'm using a machine vision camera for capturing. With a machine vision camera one can set the correct color balance according to the live histogram. The (RGB) histogram is included in the camera software. But I'm using a custom app. made by Frank Vine. He has custom made it for capturing film with machine vision cameras. It has a live histogram and lots of other options. http://www.cine2digits.co.uk/ Please check 'Control and Capture' to see some screenshots from the software. Resumed: I have barely to do any color corrections because the source has a correct (RGB)color balance to begin with. Quote:
Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
||
|
|