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. |
|
|
Thread Tools | Search this Thread | Display Modes |
11th November 2002, 22:44 | #1 | Link |
Registered User
Join Date: Oct 2002
Location: Norway
Posts: 56
|
Automatic replacement of bad frames in scene changes? need help.
Lately i have aquired several anime DVD's wich have white dirty lines at the top and the bottom of the picture whenever the scene changes. This is on the original material, so theres not much to do about it exept replace the frames with good ones. (you anime encoders out there probably know what im talking about. Berserk has very large (and thus annoying) scene change lines. I think its somethign with how the anime is shot, but thats not the point here..
The this is that i CAN edit this and make it look very good by a simple script. The frame right before and right after a scene change is allways bad, so if i have scene changes at frame 10 and 80, this script will fix it: a=10 b=80 Freezeframe(a,a,(a-1)) FreezeFrame((a+1),(a+1),(a+2)) Freezeframe(b,b,(b-1)) FreezeFrame((b+1),(b+1),(b+2)) Problem is that it takes a LOT of time to manually find these scenes, and doing this on 26 episodes, not to mention the hundreds of DBZ eps, is incredibly slow and tedious. so.. is there a way i can somehow link this to some scene change thing like the DivX codec uses to find out where to place the keyframes? Because the errors only appear in scene changes i could automate this and get a perfect result. Or.. if there is another used method to deal with this that i dont allready know (not nessecarily including AVS scripting) i would like to know. Im very computer littarate in general, and im an experienced encoder, but i have very little coding experience, so any solution would have to be within the frames of other programs i guess as i am currently unable to build my own. Grateful for all contructive response =) -Stigma PS: i have attached an image of the white stuff for those that are curious about what the heck im talking about ^_^ |
12th November 2002, 12:42 | #2 | Link |
Registered User
Join Date: May 2002
Posts: 384
|
Hmm, i usually do that manually in Aviutil adn then feed it to avisynth using VFapi. Dont know if it can be done with avisynth though. A filteer that specifically tries to smooth and/or remove blending artifacts, that are prevalent in PAL animes too would be nice too.
Problem is that that will be nigh on impossible to do. |
12th November 2002, 17:27 | #5 | Link |
Noise is your friend
Join Date: Sep 2002
Location: Ontario, Canada
Posts: 554
|
It wouldn't be difficult at all to write a filter with a scene change detector that simply copies over frame new_scene with frame (new_scene + 1).
Maybe someone with a shorter to-do list than myself could take a look at it...
__________________
Regards, SansGrip |
12th November 2002, 17:37 | #6 | Link | |
Registered User
Join Date: May 2002
Posts: 384
|
Quote:
|
|
12th November 2002, 21:46 | #7 | Link |
Registered User
Join Date: Oct 2002
Location: Norway
Posts: 56
|
well of course, it would be near impossible to get a 100% perfect filter for this, since the errors vary in size, how they appear ect.
BUT.. it wouldbe a deinate boon to those that dont bother to frameedit in the first place... it would atleast get more then half i bet So is there a coder out there somewhere who wants work? ^_^ -Stigma |
12th November 2002, 22:14 | #8 | Link |
Noise is your friend
Join Date: Sep 2002
Location: Ontario, Canada
Posts: 554
|
well of course, it would be near impossible to get a 100% perfect filter for this, since the errors vary in size, how they appear ect.
It would be very difficult to remove the errors from the bad frame, yes, but it would be very easy to completely replace the frames immediately before and immediately after a scene change. In other words, given these frames: A B C D - E F G H where the dash represents the scene change, we assume D and E are bad. D gets replaced with C and E gets replaced with F.
__________________
Regards, SansGrip |
13th November 2002, 11:47 | #9 | Link |
Registered User
Join Date: Oct 2002
Location: Norway
Posts: 56
|
Well it would certainly be a HUGE timesaver, but is anyone out tehre willing to make this thing? I know i cant yet =/ i dont have the slightest idea how to use a scene detection thing in combination with this.
-Stigma |
23rd November 2002, 04:48 | #10 | Link |
Registered User
Join Date: Nov 2002
Posts: 1
|
Yea this would be very helpful and timesaving in a sense.... but the last 2 frames in every scene change are always the same, ie any motion or scrolling scene. For a filter to be effective in doin this task, it would have to work in compilation with AviUtil's scene change detection on very low settings.... which takes forever to go throu a whole episode
In short, a filter like this would be a big advance in quality of animes being ripped/encoded, but very unlikely..... very impossible if u ask me. Take the time to frame correct it yourself, if u only want to hit scene changes, use AviUtil, very useful and hits about every scene change, (plus any big change in the frames) or go throu the whole episode by hand and fix the errors... |
26th July 2006, 14:15 | #11 | Link |
Registered User
Join Date: Jul 2004
Posts: 24
|
Well, it has been almost four years, does anyone have a solution or can create a solution for this kind of problem exposed by Stigma?
I tried to use freezeframe manually, just for test, and it took 4 hours for a 22 minute anime! I had to freeze one frame before and after each keyframe. For example, I have a bad keyframe = 20. freezeframe(20,20,19) freezeframe(21,21,22) In other words: freezeframe(a,a,a-1) freezeframe(a+1,a+1,a+2) If some plugin could catch ALL the keyframes when opening the encoded video on Virtualdub, one little program could easily do this function above and generate a text file with all the freezeframe lines to add it on a AVS script. I know sometimes it appears one keyframe right after other keyframe, but it's easy to fix manually by watching the video on Virtualdub before encoding. Does anyone know if it's something possible to do? It would be great, especially for old animes. Last edited by Tanma; 26th July 2006 at 14:37. |
26th July 2006, 14:34 | #12 | Link |
Registered User
Join Date: May 2002
Posts: 384
|
Just use Yatta to go through the video and manually freezeframe it there and save it into an avs file, eventhough Yatta is kinda awkward to use for that, any automatic attempt prolyl will fuck up at some point, because of scrolling scenes, which obviously will be noticable if u freeze it. Or it might fuck up and see an action scene as a scenechange as well.
|
26th July 2006, 14:49 | #13 | Link | |
Registered User
Join Date: Jul 2004
Posts: 24
|
Quote:
Using a program like aegisub i can find where are the action scenes, by looking the keyframes through the timing bar. Last edited by Tanma; 26th July 2006 at 14:57. |
|
27th July 2006, 14:03 | #14 | Link |
Registered User
Join Date: Oct 2002
Location: Norway
Posts: 56
|
Holy thread necromancy batman!! =P
Unfortunately I no logner think a filter like this is possible to make. not because it couldn't be coded, but because that it would either not be effective, or have too many false positives. the best bet is to use a program to detect keyframes as was sugested... atleast it speeds up the process a lot from going through them all manually. -Stigma
__________________
Ars Longa, Vita Brevis "Art (is) long, life (is) short" |
27th July 2006, 17:53 | #15 | Link |
Registered User
Join Date: Jul 2004
Posts: 24
|
Stigma, i think it is something possible.
There is a program that detect keyframes, his name is ymc, that comes with yatta. With the option SCLavc checked, it generates a .yap file with all the keyframe numbers. Unfortunatelly, I don't know how to program it, but the idea is simple, as we pointed. For example, I have a text file with the keyframes generated by ymc, that will have something like this: 2486 2692 2725 2765 2830 3165 3374 3636 3731 The solution for avoid problems with action scenes is pretty simple: (A = current keyframe) if A <= (previous keyframe + 10) then jump to the next keyframe #or something like that else Freezeframe(A-1,A-1,A-2) FreezeFrame(A,A,A+1) In some videos (like the one I'm dealing), it is better to use Freezeframe(A-1,A-2,A-3) FreezeFrame(A,A+1,A+2) For example, with keyframes 2486 and 2692, the output would be somethinf like this: freezeframe(2485,2485,2484) freezeframe(2486,2486,2487) freezeframe(2691,2691,2690) freezeframe(2692,2692,2693) The best would be if we had a option to insert the number of frames we want to freeze before and after each keyframe, as I told before. Anyone can do a program to do this stuff? Last edited by Tanma; 27th July 2006 at 19:17. |
28th July 2006, 05:28 | #16 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
now this isn't optimal, but "improvesceneswitch" in the removedirt package will replace the frames either side of a scenechange with the next ones along.
so instead of: 1 2 3 4|5 6 7 8 you get: 1 2 3 3|6 6 7 8 this'll get rid of the film splice marks, but in action scenes you'll probably get stutter (DBZ is full of flashing stuff that'll no doubt set off a scenechange detector). ...or you could just leave them in and try not to notice them. the original editor obviously didn't care, so why should we? you'll notice Bollywood films have this artefact a lot, as do lower budget or older TV shows shot on 16mm.
__________________
sucking the life out of your videos since 2004 |
29th July 2006, 01:45 | #17 | Link | |
Registered User
Join Date: Jul 2004
Posts: 24
|
Quote:
|
|
23rd January 2008, 09:21 | #20 | Link |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 689
|
I am looking for a solution for this myself. I'm transfering old 8mm films and at scene change I need to delete -say- 5 frames from the previous scene and 5 frames from the next scene.
Now, Fizicks DepanEstimate is detecting scene change very well. With info=true you will see "base" is the indicator for this. It must be possible to automize this... I hope? It would save us a lot of work.... PS: detecting keyframes is not a problem for me. I capture in uncompressed RGB24 so all frames are keyframes. 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 Last edited by videoFred; 23rd January 2008 at 09:26. |
|
|