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. |
14th December 2004, 19:29 | #121 | Link |
Registered User
Join Date: Dec 2003
Location: MO, US
Posts: 999
|
In a word, yep . The main things that make it so much slower are:
1.) by default decimate only checks luma while tdecimate checks both luma and chroma (set quality = 3 in decimate to sample both) 2.) tdecimate uses overlapping blocks while decimate doesn't 3.) tdecimate can use user defined block sizes in metric calculations (the blockx and blocky parameters) while decimate uses fixed 32x32 blocks I am suprised it was that much of a drop off, though it would make more difference with larger frame sizes. I could try adding a quality setting like decimate has (to do subsampling) or having a metrics mode that does not use overlapping blocks or both. Though then tdecimate would be pretty much the same as decimate for most similar 1-in-N non-hybrid cases. |
14th December 2004, 19:38 | #122 | Link |
Registered User
Join Date: May 2004
Posts: 94
|
Thx for the fast answer
It would be nice to have a TDecimate as fast as Decimate, but then it would be Decimate... so... I'll try playing with Decimate() parameters to check if I can get something perfect. It works perfectly 99% of the time, TDecimate worked on the last 1%, too bad |
15th December 2004, 05:45 | #123 | Link |
Registered User
Join Date: Dec 2003
Location: MO, US
Posts: 999
|
[link removed, look farther down], changes:
Code:
TDecimate: - Fixed problems with longest string decimation and static to panning and panning to static scene workarounds in longest string decimation + added se parameter (causes mode 3 to stop early once the last actual frame is delivered) + mmx and sse2 blending routines now work with any width (not just mod 8 and mod 16) Last edited by tritical; 22nd December 2004 at 07:48. |
15th December 2004, 15:00 | #124 | Link |
Registered User
Join Date: May 2004
Posts: 94
|
triptical, I have a file (29.97fps 3:2 pattern, that I'm trying to IVTC) with a glitch in the middle resulting in a field order change (bff to tff).
When I was using Telecide, my script looked like that: Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\mpeg2dec3.dll") a = trim(mpeg2source("D:\test.d2v"),0,80192) b = trim(mpeg2source("D:\test.d2v"),80193,0) a = Telecide(a,order=0,guide=1,post=2) a = Decimate(a) b = Telecide(b,order=1,guide=1,post=2) b = Decimate(b) return a + b So, with your filters, I thought I could use: Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\mpeg2dec3.dll") Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\TIVTC\TIVTC.dll") a = trim(mpeg2source("D:\test.d2v"),0,80192) b = trim(mpeg2source("D:\test.d2v"),80193,0) a = TFM(a,order=0) a = Decimate(a) b = TFM(b,order=1) b = Decimate(b) return a + b But it does not work, the second part of the clip goes "forward and backward". So I tried this: Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\mpeg2dec3.dll") Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\TIVTC\TIVTC.dll") mpeg2source("D:\test.d2v") TFM() Decimate() But it displays lots of interlaced frames in the second part since the field order is wrong. So, then, I tried to play with the options of TFM and tried this: Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\mpeg2dec3.dll") Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\TIVTC\TIVTC.dll") mpeg2source("D:\test.d2v") TFM(mode=3) Decimate() It seems to work just fine, and does not care about the field order. What do you think about all this ? Thx again PS: I'm using TIVTCv095. |
15th December 2004, 18:48 | #125 | Link |
Registered User
Join Date: Dec 2003
Location: MO, US
Posts: 999
|
Not really sure off hand, but I do have a couple questions:
First, in this script where the second part is messed up: Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\mpeg2dec3.dll") Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\TIVTC\TIVTC.dll") a = trim(mpeg2source("D:\test.d2v"),0,80192) b = trim(mpeg2source("D:\test.d2v"),80193,0) a = TFM(a,order=0) a = Decimate(a) b = TFM(b,order=1) b = Decimate(b) return a + b If you set order = 0 in the second TFM call does it also produce bad results on the second part? Second, if you use this script: Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\mpeg2dec3.dll") Loadplugin("C:\Program Files\AVIsynth 2.5\plugins\TIVTC\TIVTC.dll") mpeg2source("D:\test.d2v") TFM(d2v="D:\test.d2v") Decimate() Does TFM pop up an error about illegal transitions? If so, does the resulting fixed d2v file produce correct output with that script? Also, the reason setting mode=3 seems to fix things is because, as you said, it really doesn't care about the field order since mode 3 does 3-way matching. |
15th December 2004, 19:24 | #126 | Link | ||
Registered User
Join Date: May 2004
Posts: 94
|
Quote:
Quote:
This is GREAT ! Just so I know, what does it fix in the d2v so that the field order is now the same all along ? I'm concerned about this as I don't want to loose some frames even if they look like crap because of the glitch, otherwise the sound will be off synch. |
||
15th December 2004, 21:28 | #128 | Link | |
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
Quote:
Now, how Bandai managed to b0rk the telecine in this part so there's a cycle of 5 frames with no dup right after the cycle containing the scene change (with the pan going at the same speed per new frame as in the cycles after it) so that it'll pan faster during that cycle when viewing it on a TV is beyond me - now IVTC would have to drop a frame that really isn't a dup or blend the frames down, but what can you do? It plays smoother with conCycle=1, though, so I'll use that. Also, Last Exile for instance had a few blend transitions where they faded quickly from one pan into another with the telecine patterns not matching up where blending down looked much better (it's a fade after all) than a dropped field in the middle... np: Autechre - PIOBmx19 (Garbage) |
|
15th December 2004, 22:58 | #129 | Link | ||
Registered User
Join Date: Dec 2003
Location: MO, US
Posts: 999
|
Quote:
Quote:
|
||
17th December 2004, 05:46 | #131 | Link |
Brazilian Anime Ripper
Join Date: Nov 2001
Location: Brazil
Posts: 237
|
I have too many jagged lines with TFM. I already tried all modes but I have the same ammount of jagged lines to all modes.
My source is anime (Inuyasha TV Episodes). My actual script is: LoadPlugin("d:\encodes\filtros\removegrain.dll") LoadPlugin("d:\encodes\filtros\removedirt.dll") LoadPlugin("d:\encodes\filtros\dup.dll") LoadPlugin("d:\encodes\filtros\dgdecode.dll") LoadPlugin("d:\encodes\filtros\mpasource.dll") LoadPlugin("d:\encodes\filtros\masktools-v1.5.5.dll") LoadPlugin("d:\encodes\filtros\tivtc.dll") LoadPlugin("d:\encodes\filtros\degrainmedian.dll") LoadPlugin("d:\encodes\filtros\mvtools.dll") LoadPlugin("d:\encodes\filtros\hqdn3d.dll") import("d:\encodes\filtros\degrainMC.avs") import("d:\encodes\filtros\LimitedSharpen.avs") import("d:\encodes\filtros\FastLineDarken_1.3.avs") video=MPEG2Source("d:\inuyasha117.d2v") audio=MPASource("d:\inuyasha117.mpa") AudioDub(video,audio) Trim(107,10213)++Trim(10369,21066)++Trim(21224,36415) TFM(mode=1) TDecimate(mode=1,hybrid=1) Crop(2,18,-6,-16,align=true) LimitedSharpen(dest_x=320,dest_y=240) DeGrainMC() hqdn3d() FastLineDarken() dup(threshold=1,blend=true,maxcopies=8)
__________________
Capture cards: Compro VideoMate Gold+ (Philips SAA7134 based) (not active) Hauppauge PVR 150MCE (not active) ATI TV Wonder Elite (active) |
17th December 2004, 12:06 | #132 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
could you post a small sample of the m2v where it exhibits this problem?
i've noticed that some telecines are inherently a little jaggy (though not as bad as you get from field-discarding), like Evangelion Platinum (better than the old release, but could be better) and Serial Experiments Lain. so even with correctly matched fields there might still be some jaggyness from a rough telecine.
__________________
sucking the life out of your videos since 2004 |
17th December 2004, 13:41 | #133 | Link | |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,389
|
Quote:
Jagginess might come from applying too much filtering on a *too small resolution*. I'd have a particular suspect on FastLineDarken for that respect. And instead of calling LimitedSharpen before all those denoisers, you can completely drop it as well and spare its CPU time: everything it has done will be 100% destroyed by the aftercoming filters ... What about Crop(2,18,-6,-16,align=true) DeGrainMC() hqdn3d() dup(threshold=1,blend=true,maxcopies=8) FastLineDarken() LimitedSharpen(dest_x=320,dest_y=240)
__________________
- 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!) |
|
17th December 2004, 14:09 | #134 | Link |
Brazilian Anime Ripper
Join Date: Nov 2001
Location: Brazil
Posts: 237
|
No, it's not the filters, because I tried Kernelbob+BlendBob and the problem is not occurring.
The jagged problem is really from TFM.
__________________
Capture cards: Compro VideoMate Gold+ (Philips SAA7134 based) (not active) Hauppauge PVR 150MCE (not active) ATI TV Wonder Elite (active) |
17th December 2004, 22:26 | #136 | Link |
Brazilian Anime Ripper
Join Date: Nov 2001
Location: Brazil
Posts: 237
|
Yes!! PP=0 resolve the jagged problem but I need PP because I have too many interlaced parts now. What can I do?
__________________
Capture cards: Compro VideoMate Gold+ (Philips SAA7134 based) (not active) Hauppauge PVR 150MCE (not active) ATI TV Wonder Elite (active) |
18th December 2004, 00:41 | #137 | Link |
Registered User
Join Date: Dec 2003
Location: MO, US
Posts: 999
|
@acrespo
Could you provide some more information, such as if the problem is there are too many false combed frame detections (in which case try setting chroma=false), or if combed frame detections are ok but you just don't like the results from cubic deinterlacing (in which case try using PP = 5 for blending or PP = 7 for ela). Using display=true in tfm could help with determining which is the case. If you could provide a small sample clip that would be even better. @All Well there was another problem with hybrid detection, it was from not correctly differentiating between deinterlaced frames and c matches when checking for duplicates via matches in tdecimate. It would cause some cycles that had combed frames that were deinterlaced to not be detected as video when they should have been. Also, I haven't been invoking a cache between TFM and TFMPP when PP>4, which was making things slower when frames needed deinterlacing. On the non bug related side, I've added handling for the case when 2 dups need to be dropped when there's a change from a panning scene to another panning scene. In the case of vfr (hybrid=2) both dups are dropped and the timecodes are adjusted for that cycle to compensate and in the cfr case either 1.) both dups are dropped and the frame before the scenechange is repeated or 2.) if tdecimate doesn't know exactly where the scenechange is it drops the lowest metric frame and replaces the other with a blend of its two neighbors. If anyone has any other ideas or suggestions for what to do in such a case feel free to post them. |
18th December 2004, 17:50 | #138 | Link |
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
Would you happen to have a link for your latest version? If nothing terrible happens tomorrow, I'm going to dig into it and try to come up with some MMX/SSE/SSE2 code - which probably would be a good idea to do on the latest code...
np: Autechre - Dial (Gantz Graf EP) |
19th December 2004, 09:14 | #139 | Link |
Almost Silent Member
Join Date: Jun 2002
Location: Purgatory
Posts: 273
|
Just wanted to drop in and say that I've been getting great results with TIVTC. TFM is working well and TDecimate is coming along great.
Keep up the good work, and best of luck on future optimizations.
__________________
Rethinking the "Why?" chromosome. |
20th December 2004, 08:05 | #140 | Link |
Registered User
Join Date: Dec 2003
Location: MO, US
Posts: 999
|
Was gonna post this last time, but there was one lingering problem I didn't get fixed before I had to leave. So here is [link removed, look farther down], pretty much just the changes/fixes mentioned before:
Code:
TFM: - Fixed not invoking a cache between TFM and TFMPP when PP > 4 + Some internal additions to allow TDecimate to tell the difference between c matches and deinterlaced frames + Added debug output to d2v checking... when debug=true and a d2v file is specified it will report the type of d2v detected, the detected field order from the d2v if order = -1, and report the errors if any are found TDecimate: - Fixed not differentiating between c matches and deinterlaced frames when hybrid > 0 and checking for dups via matches - Fixed crash with debug=true and large cycles (> 50) due to too small of a string buffer - Changed default sceneThresh to 13 - conCycle and conCycleTP now default to 1 when vidDetect = 3 and still default to 2 when vidDetect != 3 + Added handling for cycles around scene changes which need 2 dups removed + Some other internal changes Thanks for the comments, glad to see someone got some use out of it, and hopefully Leak will work some mmx/isse magic to improve the speed a little. Last edited by tritical; 22nd December 2004 at 07:47. |
Tags |
tdeint, tivtc |
Thread Tools | Search this Thread |
Display Modes | |
|
|