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. |
19th May 2012, 14:30 | #401 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,733
|
I think in this case you could use tsp's RequestLinear before the filter, am I right?
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
21st May 2012, 12:03 | #403 | Link |
Registered User
Join Date: Dec 2006
Posts: 10
|
Thank you both for the information. I think the source of the misunderstanding lays in the filter sequence. I've looked at the Wiki once more, and in combination with your explanation, the problem is that an AVS script is written sequentially from source to finished output, while the actual way of functioning is the other way around. This is a different perspective, and requires a change of thinking.
Hence if I've got two frames and two threads, these are requested at the end of the filter chain, and thus also split first at the end of the filter chain. Within each thread, these frames work just as they would if there was one thread, as the filter works on one frame at the time, and can simply request from the cache(MT) above it any frames it needs to work on that particular frame. The effectiveness of the filter is thus not affected if the filter can retrieve the frame sequence it requires. The only way MT could thus negatively influence the (quality of the) execution of a temporal filter is if (1) the sequence does not provide all the necessary frames, but more likely: (2) the frames that the filter retrieves from the preceding cache are not in the right order or are not sequential/missing some frames. Problems would only appear if the cache preceding the temporal filter does not output frames their right sequence (meaning it just gives out an alternating sequence of frames, e.g. 1,3,5,7 to thread 1 and 2,4,6,8 to thread 2 - or even more chaotic combinations). My guess is this is what primarily constitutes the differences between the SetMTmodes. A truly spatial filter such as a resizer should, under that logic, function regardless of the mode because it does not matter which frame it gets. Important is that the sequence is kept in tact in the cache that follows the filter execution. Once again, thank you for clearing this up for me. I hope this will be useful for anyone else not familiar with the subject. On a side note, as already expected, the increase in speed on my machine (a 5300 Merom) was very small (about 0,1 fps on a typical 11-13fps using AVCHD device preset with -preset-medium). Naturally this is because the AVS script is very simple. But I did use this script to fprofile my own x264 builds, because it is the predominant way I'll be encoding. Last edited by BugiBugBug; 21st May 2012 at 12:06. |
21st May 2012, 14:50 | #404 | Link |
Registered User
Join Date: Aug 2007
Posts: 374
|
If "sequence does not provide all the necessary frames" it'll likely would just throw an error, not invent missing data.
All frames are explicitly numbered and requested by number: if you asked for frame n – you can't get some other frame. |
29th May 2012, 15:36 | #407 | Link | |
Registered User
Join Date: Jun 2009
Location: UK
Posts: 263
|
Quote:
The bad news, DVDBob, is that there's no simple answer to that question. But the good news is that you will be learning lots of new answers to it every day, for the rest of your life. For a basic "get you started" template script, look at the top post in the following thread: http://forum.doom9.org/showthread.ph...66#post1312666 For further info, see this page, starting about halfway down (under "ed avisynth MT 2.5.7.5 ") http://avisynth.org/mediawiki/MT Have fun! |
|
31st May 2012, 12:24 | #408 | Link |
Registered User
Join Date: Mar 2004
Location: Houston
Posts: 112
|
Need a hand. MeGUI seems to have done some updates including DGindexNV and now when attempting to index a file DGIndexNV.exe gives the following error:
The procedure entry point cuStreamDestroy_v2 could not be located in the dynamic link library nvcuda.dll I have an Nvidia NVS 4200M running on a Dell laptop under Windows XP if it matters. Nvidia driver version 268.83 which is the latest from Dell. Thanks for any suggestions on how to get this working again. |
31st May 2012, 12:51 | #409 | Link | |
Registered User
Join Date: Aug 2011
Posts: 98
|
Quote:
|
|
7th June 2012, 13:01 | #411 | Link |
RipBot264 author
Join Date: May 2006
Location: Poland
Posts: 7,815
|
Avisynth 2.6 MT installer (2012.05.16) -> http://www.mediafire.com/?prfoy9wfj4gtnnw
Installer source files -> http://www.mediafire.com/?308aa5d3r4nszwz
__________________
Windows 7 Image Updater - SkyLake\KabyLake\CoffeLake\Ryzen Threadripper |
10th June 2012, 14:41 | #413 | Link |
Registered User
Join Date: Feb 2011
Posts: 70
|
Encoding x264 on 32 Cores with Avisynth 2.6 MT
I have tried this Avisynth 2.6 MT
Replacing the old avisynth.dll with Avisynth 2.6 MT But the result make me disappointed Please see the screenshot * My system is Dual AMD Opteron 6272 with Total 32 Cores (My campus server, used for math calculations) * RAM 16GB * I am using MeGUI 2112 * x264 v2164 Avisynth Script Code:
SetMTMode(3) AVISource("C:\Documents and Settings\Administrator\My Documents\Downloads\Video\Sample.548673.avi", audio=false).AssumeFPS(24000,1001) SetMTMode(2) #deinterlace #crop LanczosResize(608,320) # Lanczos (Sharp) LoadPlugin("C:\Program Files\MeGUI\tools\avisynth_plugin\Convolution3DYV12.dll") Convolution3D("movielq") # Heavy Noise LoadPlugin("C:\Program Files\MeGUI\tools\avisynth_plugin\VSFilter.dll") TextSub("C:\Documents and Settings\Administrator\My Documents\Downloads\Documents\Watermark\watermark.srt", 1) Code:
program --preset fast --pass 2 --bitrate 5000 --stats ".stats" --deblock -1:-1 --b-adapt 2 --ref 3 --weightp 2 --qpmin 10 --qpmax 51 --chroma-qp-offset -2 --rc-lookahead 60 --merange 32 --me umh --direct auto --subme 9 --trellis 2 --psy-rd 0.00:0 --no-fast-pskip --output "output" "input" So guys, can you explain to me what is wrong ?? |
10th June 2012, 15:41 | #414 | Link |
Registered User
Join Date: Aug 2007
Posts: 374
|
With so many cores you sure hitting 32-bit address space limits with default number of threads. Try manually specifying different number of used threads in first SetMTMode call. Next, pipe output of Avisynth to x264 (you can also use 64 bit x264 this way) to free some more address space.
And if some other Avisynth MT version worked better at your setup - do post in case we have regression here. |
10th June 2012, 15:58 | #415 | Link |
RipBot264 author
Join Date: May 2006
Location: Poland
Posts: 7,815
|
also don't forget to update x264 to r2200. btw why do use only fast profile on such beast????
__________________
Windows 7 Image Updater - SkyLake\KabyLake\CoffeLake\Ryzen Threadripper |
10th June 2012, 16:46 | #416 | Link | ||
Registered User
Join Date: Feb 2011
Posts: 70
|
Quote:
Please give me the complete sample script, what should i do with SetMTMode(3) ?? change it to 5 or anything else ?? and why there is two SetMTMode, before and after the video source ?? Quote:
yeah its modified fast profile. i am not sure with this but the result is better than slow profile |
||
10th June 2012, 17:53 | #417 | Link |
RipBot264 author
Join Date: May 2006
Location: Poland
Posts: 7,815
|
especially with disabled psy visual optimalization. Take my advise and stick to presets created by developers. your settings are not good.
__________________
Windows 7 Image Updater - SkyLake\KabyLake\CoffeLake\Ryzen Threadripper Last edited by Atak_Snajpera; 10th June 2012 at 18:01. |
11th June 2012, 01:33 | #418 | Link |
Registered User
Join Date: Feb 2011
Posts: 70
|
Because i can not make Avisynth 2.6 MT works, so tried to split the video into 8 parts and than encode it simultaneously.
What i used: * Dual AMD Opteron 6272 (Total 32 Cores) * Video Source 1080p (1920x1040) * MeGUI 2112 * x264 r2200 * Avisynth v2.5.8 rev. 2 On 8 simultaneous encoding the 1st pass only take 50% of CPU Usage, and the 2nd pass take the makximum 100% of CPU usage Here is the screenshot Used very simple Avisynth Script. Code:
DirectShowSource("C:\Documents and Settings\Administrator\My Documents\Downloads\Video\Sample.548612-defa.mkv", fps=23.976, audio=false, convertfps=true).AssumeFPS(24000,1001) #deinterlace #crop #resize #denoise LoadPlugin("C:\Program Files\MeGUI\tools\avisynth_plugin\VSFilter.dll") TextSub("C:\Documents and Settings\Administrator\My Documents\Downloads\Documents\Watermark\watermark.srt", 1) Code:
program --preset fast --pass 2 --bitrate 5000 --stats ".stats" --threads 16 --deblock -1:-1 --b-adapt 2 --ref 3 --weightp 2 --qpmin 10 --qpmax 51 --chroma-qp-offset -2 --rc-lookahead 60 --merange 32 --me umh --direct auto --subme 9 --trellis 2 --psy-rd 0.00:0 --no-fast-pskip --output "output" "input" I hope i can make Avisynth 2.6 MT works to optimizing the all 32 cores, but i dont know how, will keep trying. Any suggestion please tell me very detail and clearly bcoz i am very new with this Last edited by defalopii; 11th June 2012 at 01:42. |
|
|