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 22nd May 2020, 21:25   #1401  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,652
Quote:
Originally Posted by Stereodude View Post
478 -> 476 gives the same behavior.

So I cut a sample from the M2V to provide you, but it didn't fail on the sample. It works as expected.

I can't explain it, but whether it fails or not seems to depend on the size of the sample. The 183 frame sample does not have the failure. The 462 frame sample does. I tried to rule out the program I was using to cut the M2V file (Mpg2Cut2) by running the entire clip through it to see if it behaved the same (it did). I've included both small clips. Maybe having both will help you figure out the cause of the problem.
Thanks. It's most probably not TFM filter related.
With VTS_02_1_bad_sample.M2V I got the difference right at frame 14. Debugging revealed nothing. But as I was single stepping until frame 14 in vdub2 and pressed a refresh, a totally different frame came in at the very same frame #14. Totally reproducible, so it's probably the source + source filter that behaves inconsistently, because it is not returning the same frame when the Nth frame is requested. I'm using ffms2 (don't know which version) but I think probably your issue has very similar roots.
pinterf is offline   Reply With Quote
Old 22nd May 2020, 21:58   #1402  |  Link
Stereodude
Registered User
 
Join Date: Dec 2002
Location: Region 0
Posts: 1,362
Quote:
Originally Posted by pinterf View Post
Thanks. It's most probably not TFM filter related.
With VTS_02_1_bad_sample.M2V I got the difference right at frame 14. Debugging revealed nothing. But as I was single stepping until frame 14 in vdub2 and pressed a refresh, a totally different frame came in at the very same frame #14. Totally reproducible, so it's probably the source + source filter that behaves inconsistently, because it is not returning the same frame when the Nth frame is requested. I'm using ffms2 (don't know which version) but I think probably your issue has very similar roots.
How is it not TFM related?

1) MPEG2Source is frame accurate. I don't know about ffms2 as I don't use it for MPEG-2.

2) I transcoded both of the samples to a lossless AVI that is absolutely frame accurate and used that in place of the MPEG-2 source the same thing happens. The short file works as expected the longer one doesn't.

3) What other filter in the filter chain is responsible for TFM's field matches? Why would TFM behave differently when the sequence occurs 40 frames into the clip vs. 321 frames into the clip?
Stereodude is offline   Reply With Quote
Old 22nd May 2020, 22:23   #1403  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,652
Going back using mpeg2source.

So that y0 parameter (band exclusion) is only used in the very first check in field matching decision (they call it of compareFields inside).
And then, bacause micmatching>0 the combing check algorithms (for myself: CheckComb) is working again on the whole frame.
The "micmatching" parameter is default = 1
When I set "micmatching"=0 the combing decision became identical for the stacked and non-stacked case.
Debug display output will report different MIC however but it seems that it does not overrides the first field matching decision.

Last edited by pinterf; 22nd May 2020 at 23:15.
pinterf is offline   Reply With Quote
Old 23rd May 2020, 01:08   #1404  |  Link
Stereodude
Registered User
 
Join Date: Dec 2002
Location: Region 0
Posts: 1,362
Thank you for digging into this.

So the documentation isn't really correct. That band is not excluded from the entire field matching decision, only part of it. It seems counter-intuitive that the band is not excluded from all checks/processing that influence matching since that's the very reason why you'd want to exclude the defined band in the first place. The TFM documentation states, "An exclusion band can be used to ignore subtitles, a logo, or other things that may interfer with the matching." None of those things will interfere with matching unless they have more combing than the underlying content. If they have no combing they won't interfere and you wouldn't need to exclude them.

IMHO the y0/y1 feature is broken.

Any thoughts on why the two clips behave differently?
Stereodude is offline   Reply With Quote
Old 23rd May 2020, 21:12   #1405  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,652
Quote:
Originally Posted by Stereodude View Post
Thank you for digging into this.

So the documentation isn't really correct. That band is not excluded from the entire field matching decision, only part of it. It seems counter-intuitive that the band is not excluded from all checks/processing that influence matching since that's the very reason why you'd want to exclude the defined band in the first place.

IMHO the y0/y1 feature is broken.
I agree, it took quite a few hours to shed light on this. At least I gained a more insider look over the internal processes.

The docs will be modded, and the source? Well, at the moment I do not dare to touch the other stuff to really exclude the y0-y1 bands from the checking. There are other things to do first.

Quote:
Originally Posted by Stereodude View Post
Any thoughts on why the two clips behave differently?
No time now for that, we can return to it some weeks later.

Currently the whole TIVTC project is under heavy changes/refactoring (since weeks and there are some more weeks ahead) in order to have a clean and maintainable source.

What can you expect:

My target is finishing the porting to 10+ bits, and make some AVX2 stuff, and the general lookout of the source code, remove as much ciphered and copy-pasted part as I can.

As for high bit-depth project: FrameDiff is already working in 16 bits, display=true is working on my test bench for YV16 and YV24 (and 8-16 bits) as well (current release is - inheritedly - can display only for YV12 and YUY2)

And an old TFM crash bug was fixed as well.
pinterf is offline   Reply With Quote
Old 23rd May 2020, 23:55   #1406  |  Link
Stereodude
Registered User
 
Join Date: Dec 2002
Location: Region 0
Posts: 1,362
Quote:
Originally Posted by pinterf View Post
I agree, it took quite a few hours to shed light on this. At least I gained a more insider look over the internal processes.

The docs will be modded, and the source? Well, at the moment I do not dare to touch the other stuff to really exclude the y0-y1 bands from the checking. There are other things to do first.
The feature was introduce in the 11/21/2004 v0.9.1 and it apparently took about 15.5 years for someone to notice that it doesn't really work as promised, so what's the hurry?
Stereodude is offline   Reply With Quote
Old 3rd June 2020, 09:09   #1407  |  Link
bruno321
Registered User
 
Join Date: Oct 2018
Posts: 61
New computer, new installation of avisynth+ 64 and megui 64. I'm having a problem with TDecimate and megui, I don't know who's the culprit. Script:

MPEG2Source("D:\projects\tests\segment.demuxed.d2v", cpu=0)
tfm()
TDecimate(hybrid=1)

AVSMeter64 output of the script:

Code:
AVSMeter 3.0.0.4 (x64), (c) Groucho2004, 2012-2020
AviSynth+ 3.5 (r3106, 3.5, x86_64) (3.5.0.0)

Number of frames:                     1315
Length (hh:mm:ss.ms):         00:01:05.750
Frame width:                           720
Frame height:                          576
Framerate:                          20.000 (20/1)
Colorspace:                           YV12

Frames processed:                   1315 (0 - 1314)
FPS (min | max | average):          84.27 | 276.4 | 150.8
Process memory usage (max):         34 MiB
Thread count:                       8
CPU usage (average):                23.6%

Time (elapsed):                     00:00:08.722

However, megui 2913 x64 gives me this error:

Code:
--[Information] [6/3/2020 10:05:21 AM] Started handling job
--[Information] [6/3/2020 10:05:24 AM] Preprocessing
-[NoImage] MPEG2Source("D:\projects\tests\segment.demuxed.d2v", cpu=0)
-[NoImage] tfm()
-[NoImage] TDecimate(hybrid=1)
--[Information] [6/3/2020 10:05:24 AM] AviSynth input script
--[Information] [6/3/2020 10:05:25 AM] resolution: 720x576
--[Information] [6/3/2020 10:05:25 AM] frame rate: 20/1
--[Information] [6/3/2020 10:05:25 AM] frames: 1315
--[Information] [6/3/2020 10:05:25 AM] length: 00:01:05.750
--[Information] [6/3/2020 10:05:25 AM] aspect ratio: 5:4 (1.250)
--[Information] [6/3/2020 10:05:25 AM] color space: YV12
--[Information] [6/3/2020 10:05:25 AM] Job command line: "C:\encoding\MeGUI-2913-64\tools\x264\x264.exe" --preset veryslow --tune film --crf 20 --keyint 200 --sar 1:1 --frames 1315 --output "D:\projects\tests\segment.demuxed tfm.264" "D:\projects\tests\segment.demuxed.avs" 
--[Information] [6/3/2020 10:05:25 AM] Process started
--[Information] [6/3/2020 10:05:25 AM] Standard output stream
--[Information] [6/3/2020 10:05:25 AM] Standard error stream
--[Error] [6/3/2020 10:05:27 AM] Process exits with error: 0xC0000005 STATUS_ACCESS_VIOLATION (-1073741819)
--[Information] [6/3/2020 10:05:27 AM] Job completed
When I use only tfm(), megui doesn't have a problem. Here's avsmeter64 avsinfo in case it helps:

Code:
AVSMeter 3.0.0.4 (x64), (c) Groucho2004, 2012-2020

VersionString:              AviSynth+ 3.5 (r3106, 3.5, x86_64)
VersionNumber:              2.60
File / Product version:     3.5.0.0 / 3.5.0.0
Interface Version:          7
Multi-threading support:    Yes
Avisynth.dll location:      C:\Windows\SYSTEM32\avisynth.dll
Avisynth.dll time stamp:    2020-04-02, 16:27:26 (UTC)
PluginDir2_5 (HKLM, x64):   C:\Program Files (x86)\AviSynth+\plugins64
PluginDir+   (HKLM, x64):   C:\Program Files (x86)\AviSynth+\plugins64+


[C++ 2.5 Plugins (64 Bit)]  [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins64\DGDecode.dll  [1.5.8.0, 2010-03-18]

[C++ 2.6 Plugins (64 Bit)]  [Version, Time stamp]
C:\Program Files (x86)\AviSynth+\plugins64+\ConvertStacked.dll  [n/a, 2020-04-02]
C:\Program Files (x86)\AviSynth+\plugins64+\DirectShowSource.dll  [n/a, 2020-04-02]
C:\Program Files (x86)\AviSynth+\plugins64+\ImageSeq.dll  [n/a, 2020-04-02]
C:\Program Files (x86)\AviSynth+\plugins64+\Shibatch.dll  [n/a, 2020-04-02]
C:\Program Files (x86)\AviSynth+\plugins64+\TimeStretch.dll  [n/a, 2020-04-02]
C:\Program Files (x86)\AviSynth+\plugins64+\VDubFilter.dll  [n/a, 2020-04-02]
C:\Program Files (x86)\AviSynth+\plugins64\DePan.dll  [2.13.1.6, 2020-05-22]
C:\Program Files (x86)\AviSynth+\plugins64\DePanEstimate.dll  [2.10.0.4, 2020-05-22]
C:\Program Files (x86)\AviSynth+\plugins64\DupStep.dll  [0.0.3.0, 2020-06-03]
C:\Program Files (x86)\AviSynth+\plugins64\masktools2.dll  [2.2.23.0, 2020-05-14]
C:\Program Files (x86)\AviSynth+\plugins64\mvtools2.dll  [2.7.43.0, 2020-06-02]
C:\Program Files (x86)\AviSynth+\plugins64\nnedi3.dll  [0.9.4.55, 2020-05-05]
C:\Program Files (x86)\AviSynth+\plugins64\RgTools.dll  [1.0.0.0, 2020-04-27]
C:\Program Files (x86)\AviSynth+\plugins64\TIVTC.dll  [1.0.17.0, 2020-05-12]

[Scripts (AVSI)]  [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins64+\colors_rgb.avsi  [2020-03-12]
C:\Program Files (x86)\AviSynth+\plugins64\QTGMC.avsi  [2020-06-02]
C:\Program Files (x86)\AviSynth+\plugins64\Zs_RF_Shared.avsi  [2020-06-03]

[Uncategorized files]  [Time stamp]
C:\Program Files (x86)\AviSynth+\plugins64+\colors_rgb.txt  [2020-03-12]



[Plugin errors/warnings]
____________________________________________________________________________________________________________

"C:\Program Files (x86)\AviSynth+\plugins64\DePanEstimate.dll" requires the FFTW library for some functions.

Note: 'libfftw3f-3.dll' can be downloaded here:
      http://www.fftw.org/install/windows.html

      'libfftw3f-3.dll' should be placed in "System32" and/or "SysWoW64"
____________________________________________________________________________________________________________

"C:\Program Files (x86)\AviSynth+\plugins64\mvtools2.dll" requires the FFTW library for some functions.

Note: 'libfftw3f-3.dll' can be downloaded here:
      http://www.fftw.org/install/windows.html

      'libfftw3f-3.dll' should be placed in "System32" and/or "SysWoW64"

Last edited by bruno321; 3rd June 2020 at 09:12.
bruno321 is offline   Reply With Quote
Old 3rd June 2020, 18:03   #1408  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,652
Could you please test this build:
https://drive.google.com/open?id=1kU...Dp8xivUFIQws0q
Replace your existing v1.0.17 TIVTC.DLL with the appropriate dll from the package.
pinterf is offline   Reply With Quote
Old 3rd June 2020, 20:35   #1409  |  Link
bruno321
Registered User
 
Join Date: Oct 2018
Posts: 61
Same error.
bruno321 is offline   Reply With Quote
Old 3rd June 2020, 21:06   #1410  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 4,995
Quote:
Originally Posted by bruno321 View Post
Same error.
Are you using the "portable" (or whatever it's called) Avisynth in megui?
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline   Reply With Quote
Old 4th June 2020, 05:58   #1411  |  Link
bruno321
Registered User
 
Join Date: Oct 2018
Posts: 61
You mean "use the included avisynth"? That's disabled.
bruno321 is offline   Reply With Quote
Old 4th June 2020, 08:42   #1412  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,652
Then I'd need a source sample for which the crash still occurs because with my samples I cannot reproduce the issue.
pinterf is offline   Reply With Quote
Old 4th June 2020, 12:16   #1413  |  Link
bruno321
Registered User
 
Join Date: Oct 2018
Posts: 61
Sure. Here it is https://fex.net/s/plnfycz

Thanks for looking at it
bruno321 is offline   Reply With Quote
Old 5th June 2020, 12:52   #1414  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,652
Quote:
Originally Posted by bruno321 View Post
Sure. Here it is https://fex.net/s/plnfycz

Thanks for looking at it
Thanks, everything is o.k. for me, could not reproduce your issue.
pinterf is offline   Reply With Quote
Old 5th June 2020, 15:42   #1415  |  Link
bruno321
Registered User
 
Join Date: Oct 2018
Posts: 61
Seems it was a problem with DGDecode. I switched to MPEG2DecPlus and it's fine now.
bruno321 is offline   Reply With Quote
Old 9th June 2020, 02:32   #1416  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 144
tdecimate() error, i meet too much artifact

Code: tfm().tdecimate()
Video test: https://drive.google.com/open?id=1Ix...mv8IN7MnS3qIjq
Frame 2533: https://drive.google.com/open?id=14j...aRaI-9rPS31ZJ-
kedautinh12 is offline   Reply With Quote
Old 10th June 2020, 23:33   #1417  |  Link
AzraelNewtype
Registered User
 
AzraelNewtype's Avatar
 
Join Date: Oct 2007
Posts: 136
Japanese broadcast is often kind of messy like this. Look into JIVTC, which is much slower and harder to use but designed specifically around this problem.
AzraelNewtype is offline   Reply With Quote
Old 11th June 2020, 01:31   #1418  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 144
Quote:
Originally Posted by AzraelNewtype View Post
Japanese broadcast is often kind of messy like this. Look into JIVTC, which is much slower and harder to use but designed specifically around this problem.
thanks, but i meet error: "invalid arguments to function 'JIVTC'"

my scripts:
LoadPlugin("E:\MeGUI-2924-64\tools\avisynth_plugin\yadifmod.dll")
LoadPlugin("E:\MeGUI-2924-64\tools\avisynth_plugin\masktools2.dll")
LoadPlugin("E:\MeGUI-2924-64\tools\avisynth_plugin\nnedi3.dll")
Import("E:\MeGUI-2924-64\tools\avisynth_plugin\JIVTC.avsi"

JIVTC()
kedautinh12 is offline   Reply With Quote
Old 11th June 2020, 13:16   #1419  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 8,227
Code:
function JIVTC(clip c, int pattern, int "thr", bool "draft", clip "ivtced", string "bobber", bool "show")
Clip c and pattern, are non optional, so of course "JIVTC()" error aborts for missing arguments.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 11th June 2020 at 13:22.
StainlessS is offline   Reply With Quote
Old 11th June 2020, 13:29   #1420  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,652
Quote:
Originally Posted by kedautinh12 View Post
tdecimate() error, i meet too much artifact

Code: tfm().tdecimate()
Video test: https://drive.google.com/open?id=1Ix...mv8IN7MnS3qIjq
Frame 2533: https://drive.google.com/open?id=14j...aRaI-9rPS31ZJ-
That specific part is like zooming into a fire fractal. It is really a tough task for an automatic recognition. Problem is that for some square blocks (greenish artifacts) the mask creation and thus the merge-it? decision was not successful. Since there are a zillion parameters of both filters, one can spend a week with trial and error.
pinterf 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 17:09.


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