View Full Version : Deleting duplicate frames?
drgonzo62
17th September 2006, 00:53
Hi,
I'm using Donald Graft's Decomb telecide() to turn interlaced frames
into progressive frames for later dirt/spot removal.
This filter however inserts duplicated frames that I can't get rid off
with decimate(), since it's not a consistant pattern. Cycle won't work.
How can I delete these duplicated frames to make dirt/spot detection easier?
neuron2
17th September 2006, 01:11
Please post a link to an *unprocessed* source clip that I can use to duplicate your problem.
BTW, Telecide() does not insert duplicates. It just does field matching and the resulting duplicates are a consequence of pulldown (or frame duplication).
If you have a weird base frame rate, such as 18fps, you can try MultiDecimate. The problem is that audio sync may suffer. Is there audio in this clip?
Post the unprocessed sample and I'll be able to figure out what you have.
drgonzo62
17th September 2006, 02:13
Please post a link to an *unprocessed* source clip that I can use to duplicate your problem.
BTW, Telecide() does not insert duplicates. It just does field matching and the resulting duplicates are a consequence of pulldown (or frame duplication).
If you have a weird base frame rate, such as 18fps, you can try MultiDecimate. The problem is that audio sync may suffer. Is there audio in this clip?
Post the unprocessed sample and I'll be able to figure out what you have.
Thanks for the help!
To answer your question; No, there is no audio attached to the footage.
Here is a sample of the footage. It has not been processed so far.
I exported it as a zipped jpg sequence to make sure that the change of
the interlace pattern is visible.
It still came out to be about 7.5MB. I hope that's not too big..
http://www.kaysievert.com/ftp/sample.zip
neuron2
17th September 2006, 14:21
You can use MultiDecimate since there is no audio.
That can remove all duplicates.
manono
17th September 2006, 16:27
neuron2 (or anyone else that knows how to do it)-
I got all the pics, but even after studying the ImageSource page, and trying a lot of different things, I couldn't get a script to open them all. Can you please give me a sample script for a .jpg sequence like that? I can do it in VdubMod by opening the first one, but couldn't do it using AviSynth.
neuron2
17th September 2006, 16:46
I just opened them in VirtualDub and then saved out a HUFYUV AVI, then AviSource() etc.
It starts out looking like Decimate(3) is right but then it all changes.
Wilbert
17th September 2006, 16:59
@manono,
ImageSource("c:\%04d.jpg", 0, 265, 25)
drgonzo62
17th September 2006, 21:23
...It starts out looking like Decimate(3) is right but then it all changes.Yes, that is exactly what I don't understand;
Why is the pattern changing?
I can only assume that it was transferred @ 18FPS or so to maintain
the actual film speed.
Of course when you record 18 frames of film to 25 frames of video
per second, I would expect this kind of inconsistancy over time.
Unfortunately I wasn't there when the film was transferred.
I haven't tried multiDecimate yet, but I'll give it a shot to see
if it'll work.
drgonzo62
17th September 2006, 22:58
You can use MultiDecimate since there is no audio.
That can remove all duplicates.Well, if that didn't work like a charme! :)
MultiDecimate got rid off all my duplicated frames and I now have
essentially 16.85fps progressive material again. Nice!
Thank you all for your help! :thanks:
manono
18th September 2006, 09:25
Yes, neuron2, that works, and thanks for the response.
Wilbert, I tried for easily half an hour to find the right combination to get the script to open. Seeing how you did it, it looks ridiculously easy, but I don't think I'd have ever figured it out on my own. It's those 4 numbers in the name of each JPG that confused me, and I never would have come up with "%04d" on my own. Thanks very much for solving the problem for me.
nicksteel
20th December 2006, 23:25
Exactly how do I process with MultiDecimate(). I did read the instructions. Do I make an avs like:
AVISource("E:\cap\m01.avi")
LanczosResize(704,480,2,0,1276,1024)
converttoyuy2()
MultiDecimate(pass=1)
and process with tmpgenc?
I have fraps captures with duplicate frames at the end of each save. Need to remove them.
neuron2
20th December 2006, 23:50
Exactly how do I process with MultiDecimate(). I did read the instructions. Try reading them again, paying particular attention to step 3. If there is something you don't understand, please post about it. But it's clear from your post that you are not following the instructions. I could post them in here but what is the point?
nicksteel
21st December 2006, 15:37
My problem was simple. Didn't understand where to open the avs in VDub.:confused: (I always script through Tmpgenc.) I know now.:o
Used MultiDecimate() without parameters and successfully created file showng duplicate frames.
As I read that audio sync problems sometimes occur, I plan to encode as usual with avs in Tmpgenc, then delete the duplicate frames in the mpg with VRD . This seems a viable solution to my problem. Thanks:)
If I did use pass=1 without filters in VDub, could I use pass=2 within my avs with filters into Tmpgenc to delete the frames during encode? I would be muxing with lame during Tmpgenc encode (just bubble sounds).
neuron2
21st December 2006, 17:09
My problem was simple. Didn't understand where to open the avs in VDub.:confused: (I always script through Tmpgenc.) I know now.:o
Used MultiDecimate() without parameters and successfully created file showng duplicate frames.
As I read that audio sync problems sometimes occur, I plan to encode as usual with avs in Tmpgenc, then delete the duplicate frames in the mpg with VRD . This seems a viable solution to my problem. Thanks:)
If I did use pass=1 without filters in VDub, could I use pass=2 within my avs with filters into Tmpgenc to delete the frames during encode? I would be muxing with lame during Tmpgenc encode (just bubble sounds). You still sound confused to me. Pass=1 is just for gathering the metrics. Pass=2 is for doing the decimation itself.
nicksteel
21st December 2006, 17:26
You still sound confused to me. Pass=1 is just for gathering the metrics. Pass=2 is for doing the decimation itself.
Understand Pass=1 and. Pass=2.
Is Pass=1 processed in Vdub and Pass=2 to be included in my avs going into Tmpgenc and processed?
or
Are Pass=1 and Pass=2 processed solely with Vdub prior to running Tmpgenc?
Terranigma
21st December 2006, 17:42
Lets look at this from a codec perspective (DIVX):
The first pass scans each frame to determine appropriate variable bitrates values to be used for additional passes (According to the codec's settings, i.e., Compression Levels/Motion Search). Doing another pass will again scan each frame, but take the first pass in consideration to further improve upon selecting appropriate vbr values for each frame.
What neuron2 is trying to say is the 1st Pass gathers the metrics (Scans), and the 2nd pass takes those metrics in consideration before decimating.
Hope that clears up some confusion. :)
neuron2
21st December 2006, 23:31
Understand Pass=1 and. Pass=2.
Is Pass=1 processed in Vdub and Pass=2 to be included in my avs going into Tmpgenc and processed?
or
Are Pass=1 and Pass=2 processed solely with Vdub prior to running Tmpgenc? Pass 1 is run in vdub. Then you set pass 2 in the script and can serve it straight to any application you like. It can be vdub or tmpgenc or anything for pass 2. Remember, avisynth does the processing. Using vdub for the first pass is just a simple way to make it happen.
nicksteel
21st December 2006, 23:54
Pass 1 is run in vdub. Then you set pass 2 in the script and can serve it straight to any application you like. It can be vdub or tmpgenc or anything for pass 2. Remember, avisynth does the processing. Using vdub for the first pass is just a simple way to make it happen.
Thanks, that's what I needed.:thanks:
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.