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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 18th December 2005, 05:24   #481  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Darn, and here I thought I was up-to-date. Thanks tritical.
manono is offline   Reply With Quote
Old 19th December 2005, 03:38   #482  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
[link removed], changes:
Code:
  + Added emask parameter
  - Fixed edeint not working correctly with mode=1
  - Changed field=-1 operation when hints=false
This version adds the motion mask from external clip ability and fixes the edeint problem with mode=1. I also decided to change the default behavoir for field=-1 so that it operates in the same way as tfm by setting field equal to order (except if hints=true, then field is still set to 0). This will hopefully be the last version before 1.0 final.

The configs for using eedi2 with tdeint's mode=1 are:

1.) tff

interp = separatefields().eedi2(field=3)
tdeint(mode=1,order=1,edeint=interp)

2.) bff

interp = separatefields().eedi2(field=2)
tdeint(mode=1,order=0,edeint=interp)

Last edited by tritical; 19th March 2006 at 06:34.
tritical is offline   Reply With Quote
Old 19th December 2005, 04:26   #483  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
[link removed], changes:
Code:
TDecimate:
   + wrap display=true text to multiple columns and mark frames that will be
        dropped with '**'
   + round to nanosecond accuracy for all v1/v2 timecode output files
   + slightly more efficient metric cycle calculation
I have been working on adding internal caching to TIVTC... mainly for tdecimate because avisynth's internal cache doesn't work very well with TDecimate's access pattern. It isn't a problem for the typical cycle=5, cycleR=1 setup, but for large (>10) cycle sizes with cycleR > 1 it can be quite noticeable. I would probably recommend doing a metrics output pass in mode 4 first, and then using mode=0 with the metrics input file when using cycle sizes > 10 or 15.

Anyways, since the caching requires a good bit of internal tinkering I decided to go ahead and release a version with only the above changes first. Aside from the internal caching, the only things still to do are to port optimizations from tfm/tdecimate into fielddiff/framediff... though I may skip that since those functions are not used much.

Last edited by tritical; 19th December 2005 at 20:00.
tritical is offline   Reply With Quote
Old 19th December 2005, 06:41   #484  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
Here is [See this post: http://forum.doom9.org/showthread.ph...253#post759253]. This is the full incarnation of aviparse.exe which I put up last week, a readme is included. The new syntax is:

tc2cfr out_fps input_avi_file timecode_file output_avi_file

out_fps specifies the framerate of the destination file, whose name/path are specified by the output_avi_file parameter. The timecode file can have any framerate corresponding to the following equation:

framerate = out_fps/n for n=1 to a large number step=1

The maximum value for n depends on what out_fps is, but for an out_fps of 119.880120 the max value for n is 340 at which point it can no longer adaquetly differentiate between fps values. The program will tell you what the maximum value is for the specified out_fps value when it starts. In the end I've made this about as general a tool as possible as it can handle just about any combination of framerates. It also allows one to go from a vfr mkv to a 120fps avi file simply by using haali's mkv2vfr tool (for v1 tc) or mkvextract (for v2 tc) to get an avi+tc file and the using those as input into tc2cfr. Or you can use tdecimate in a timecode file output mode and instead of going to mkv go to an avi file.

Last edited by tritical; 30th December 2005 at 06:21.
tritical is offline   Reply With Quote
Old 19th December 2005, 07:46   #485  |  Link
foxyshadis
ангел смерти
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Lost
Posts: 9,558
Quote:
Originally Posted by tritical
Here is tc2cfr v1.0.
Awesome. I'm going to start playing with this now. Thank you so much, tritical!

Does the "no audio" rule still apply?
foxyshadis is offline   Reply With Quote
Old 19th December 2005, 09:04   #486  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
It does. More specifically, the avi can only have one stream in it and it must be a video stream. Also, it must use an "idx1" index (i.e. not open dml). The reason is I just didn't want to deal with the added complexity of handling multiple streams, and I can't think of why someone would use this on an avi with an audio stream already in it since such a file would be desynced. It seems to me that any avi you would be using tc2cfr on would be originally created with a single video stream in it.
tritical is offline   Reply With Quote
Old 19th December 2005, 19:58   #487  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
[link removed], changes:
Code:
TDecimate:
   + internal caching for modes 0, 1, and 3
   + show cycleR value in display output
   - Fixed a problem with display output wrap around for the drop frame #'s listing
   - Fixed metric prebuffering computing metrics for the incorrect frames within 
        a cycle after a seek to a random frame, causing a minor slow down when
        seeking.
   - Fixed requesting frames an extra time in modes 0, 1, and 3 when no field 
        matching hints from tfm were present in the stream.
The internal caching was actually much easier to add then I originally thought. It makes quite a difference for some cases, but not for others... your mileage may very. Found and fixed a couple other small bugs while testing it out as well.

EDIT:
Alright, I'm just gonna act as if Beta 6 was never released because it sucks horribly . The internal caching helped for rare scenerios, but it cut the speed by up to 4-5x for the typical cycle=5/cycleR=1 usage. The caching is needlessly doing a ton of bitblts when it doesn't have too (which is what is slowing things down). I'll put up a new version to fix the problems tommorrow.

Last edited by tritical; 20th December 2005 at 20:02.
tritical is offline   Reply With Quote
Old 20th December 2005, 20:01   #488  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
[link removed]. Only change was fixing the slowness problem of tdecimate's internal caching. It is now at least as fast as it previously was for all cases, and much faster for those rare cases. That should be the last new version for at least a few days .

Last edited by tritical; 19th January 2006 at 20:27.
tritical is offline   Reply With Quote
Old 24th December 2005, 23:52   #489  |  Link
Malow
In bytes we trust
 
Malow's Avatar
 
Join Date: Oct 2002
Location: Torres Beach, Brazil
Posts: 279
hi folks, i have one question: is bad to use tivtc in the "hybrid mode" for mkv vfr (using the examples avs in tivtc package) if the movie is pure film or pure ntsc interlaced video? (the speed is no problem..)

i really would like a "all purpose" script, for almost all kind of movie.. (not including anime)

or im asking too much?
Malow is offline   Reply With Quote
Old 25th December 2005, 03:20   #490  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
If it's pure interlaced then you would definitely be better off processing it with a true deinterlacer. If it's pure film then it should be fine to use mkv vfr mode. I personally use the vfr mode for all material that isn't pure interlaced.

TIVTC's hybrid detection is pretty accurate/robust and by default it will favor film detection since vidDetect=3 requires no duplicates via matches and all differences above vidThresh. The major place it will fail is not detecting really slow 30fps pans due to the frame differences being below vidThresh, though usually those pans are so slow that it isn't noticeable. That problem can be corrected by lowering vidThresh or simply using vidDetect=0 (only require no match duplicates), but that can lead to some false detections on anime and cartoons. The reason being that when there are repeated frames there will be no difference between possible matches and you can get things like "ccccc" instead of the usual "cccpp" pattern out of tfm. That scenerio cannot occur in a scene with continous motion, such as a panning scene, but in a static scene or a scene where there is motion only every 2, 3, or 4 frames it could happen leading to such a scene being detected as video. A false detection of such a scene as video is usually unnoticeable though (it would only cause a negative effect for scenes that have motion every 2, 3, 4, etc.. frames, not on a completely static scene). The problem with vidDetect=0 shouldn't occur with real life material where there aren't repeated frames. Also, if you use the d2v option then the rff flags will be taken into account when detecting film/video sections.
tritical is offline   Reply With Quote
Old 25th December 2005, 04:35   #491  |  Link
Malow
In bytes we trust
 
Malow's Avatar
 
Join Date: Oct 2002
Location: Torres Beach, Brazil
Posts: 279
wow, tnks for explanation and for your great work!!!!
Malow is offline   Reply With Quote
Old 26th December 2005, 04:34   #492  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
I put up a new version (v1.2) of tc2cfr on my website, it was mainly just internal changes and code cleanup. I also made a utility called cfr2tc that does the opposite operation... it takes an avi file with null frames and outputs a file with null frames removed and a v1 or v2 timecode file. cfr2tc can handle avi files containing multiple streams (2 audio streams + 1 video stream for example), but only one of the streams can be a video stream. The avi file it creates will contain only the video stream from the input file with null frames removed. It also has the ability to do timecode output only without creating a new avi file. Syntax for cfr2tc is:

cfr2tc input_avi_file output_avi_file timecode_file mode

Set mode to 1 for v1 timecode file ouput and to 2 for v2 timecode file output. Set it to 3/4 for v1 or v2 timecode output only. There are already a few programs to do this type of operation, but I decided to make this just to have something to do. I might make a little gui for them as well, haven't decided yet.

Links:

See this post: http://forum.doom9.org/showthread.ph...253#post759253.

Last edited by tritical; 30th December 2005 at 06:21.
tritical is offline   Reply With Quote
Old 26th December 2005, 20:56   #493  |  Link
Egh
Registered User
 
Join Date: Jun 2005
Posts: 630
Quote:
Originally Posted by tritical
I also made a utility called cfr2tc that does the opposite operation... it takes an avi file with null frames and outputs a file with null frames removed and a v1 or v2 timecode file. cfr2tc can handle avi files containing multiple streams (2 audio streams + 1 video stream for example), but only one of the streams can be a video stream. The avi file it creates will contain only the video stream from the input file with null frames removed. It also has the ability to do timecode output only without creating a new avi file.
Well, at least someone finally outside japan realized the convinience of such conversion Though more than one year after...

Good thing it's in one tool, not in two (aka avidelnul.exe and avi2timecode.exe tools).

I personally use that kind of conversion for hdtv raws, it's convinient to have no-null-frames avi in order to be able to use AVISource() on it (cause other way is to mux into mkv, therefore no AVISource() then).
Egh is offline   Reply With Quote
Old 30th December 2005, 06:20   #494  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
I ended up making a gui for cfr2tc/tc2cfr called tc-GUI. I hadn't coded anything in c# before and decided this would be a good time to give it a try... it definitely beats doing win32 api programming for gui development . It does require the .NET framework (1.1) to run. cfr2tc and tc2cfr have also both been updated to v1.3, mainly cosmetic fixes, plus the ability to specify the output fps as a fraction in tc2cfr.

cfr2tc, tc2cfr, and tc-GUI are now merged into one zip package for download. Link: avi_tc_package
tritical is offline   Reply With Quote
Old 3rd January 2006, 00:12   #495  |  Link
Revgen
Registered User
 
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
Note to all EEDI2 users:

If you're going to use a EEDI2/TDeint combo in any form on any film-based TFF material, make sure to use AssumeTFF() before you deinterlace. I was trying to use it as a postprocessor for TFM but it wouldn't deinterlace properly unless AssumeTFF() was enabled. The progressive frames may have confused it.

I've not yet experienced this problem with pure interlaced content though.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake?

Curly: Burned at the stake!

Moe: Why?

Curly: A hot steak is always better than a cold chop.
Revgen is offline   Reply With Quote
Old 5th January 2006, 23:57   #496  |  Link
MOmonster
Registered User
 
Join Date: May 2005
Location: Germany
Posts: 495
@tritical
I donīt if it is a bug or just different internal settings, but for this case, the newest tfm seems not to work correctly. The older version works just fine. I could not find something in the changelist that will cause this problem, maybe you know the reason for. Can it be because of the changed sco default or because of some optimizations?

Edit: Sorry my mistake. Indeed it was the different sco value that cause the different behaviour.

Last edited by MOmonster; 6th January 2006 at 00:06.
MOmonster is offline   Reply With Quote
Old 18th January 2006, 02:15   #497  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
[link removed], changes:
Code:
TFM:
  + Support d2v format version 13
  + Write MIC values into output file
  + A few new mmx/isse optimizations
  + sse2 optimizations (only used on P4)
  - Fixed clip2 crash caused by writing to a referenced frame [thanks tsp]
  - Fixed rare crash on d2v input parsing caused by sometimes writing one entry past 
        the end of an array

TDecimate:
  - sse2 optimizations (only used on P4)
Writing the MIC values into the tfm output file is in preparation for some two pass stuff in v1.1 of TIVTC. Main ideas atm are identifying combed frames by looking at relative MIC differences between neighboring frames and for identifying problem frames by running field matching twice using field=0 one time and field=1 the other time. Any places where the matches don't correlate between the two outputs would be identified as problem areas. Not sure it will allow much automatic correction, but would be a way to automatically identify areas where manual overrides may be needed.

I have had a new version of EEDI2 ready for a while now, but haven't released it due to various bug reports that I haven't been able to reproduce or nail down. The new version has interpolation direction consistency post-processing and corner/junction detection post-processing. Mainly trying to identify problem areas and then drop back to linear interpolation. I'll probably release that in the next couple days.

Finally, there is still the external motion-masking that was gonna go into TDeint2 but which I decided simply to make available in TDeint via the emask parameter. I haven't really touched it for the last month or more, but it will be done eventually. I haven't given it much priority since scharfis_brain has a similar script function and I rarely need to process true interlaced material.

TDeint v1.0 final will be out as soon as I have time to write the new doc (I've been saying that for too long).

Last edited by tritical; 19th January 2006 at 20:26.
tritical is offline   Reply With Quote
Old 18th January 2006, 04:09   #498  |  Link
foxyshadis
ангел смерти
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Lost
Posts: 9,558
Oh, thanks for reminding me. Minor feature request: Would it be possible in the future to make tfm optional in TDecimate mode 5 (would default to all "c")? If not, perhaps removing the check on too many frames? I only ask because I use it often on progressive sources, where tfm's not useful. It'd be nice to have one huge file for those tasks.

Now, if that's exactly what the batch=true option does, that'd be cool, I just don't want to break it messily what with the warning.

EEDI2 is liquid luv. ;D
foxyshadis is offline   Reply With Quote
Old 18th January 2006, 04:48   #499  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
Yep, I'll make the tfmIn file optional for mode 5 (set to all c matches if not given) in the next version. batch does roughly the same thing but still requires a file to be specified.

Currently, if batch=true, then when the metrics input array is allocated all values are initially set to 0 (instead of ULLONG_MAX which is what I use for not set) and the check for having real values for each entry is disabled. Any valid difference metric values that are present in the specified input file are still read in as usual. Also, when the tfm info array is allocated all values are initially set to 'p' (instead of the not set value) and the check for having real values for each entry is disabled. Any valid match info that is present in the specified tfmIn file is still read in as usual.
tritical is offline   Reply With Quote
Old 19th January 2006, 10:41   #500  |  Link
puffpio
Registered User
 
Join Date: Nov 2001
Posts: 176
First time using progressive content..time to try out TDecimate!

I think I'm using it right (output looks right) but just want to verify

I have a 60fps (not exactly) 720p HDTV stream
the frames repeat like 'aaabbaaabbaaabb' etc

So I apply TDecimate(cycleR=3)

and that should do it right? (remove 3 out of 5 frames)
it appears to work and gets me to 23.97 film framerate, but I just want to be sure
puffpio is offline   Reply With Quote
Reply

Tags
tdeint, tivtc

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 22:16.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.