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 30th March 2020, 14:11   #121  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
Quote:
Originally Posted by Stereodude View Post
They're just very patient and aren't tempted by the idea of running hardware that's 100x faster.
I doubt many people refrain from upgrading their computer because it won't run XP, or because there's no drivers for newer hardware, but I suspect there's many who don't see much point spending money to upgrade Windows on an old PC.

Do most household only have a single PC? There's four used regularly here, one of which is an old Pentium 3.

I've procrastinated replacing my PC because I can't bring myself to install Windows Spyware 10, and switching to Linux would require more effort and a learning curve, although as Linux Avisynth appears to be a thing now it's probably time, but this PC will keep running XP because I use some old Windows-only software, including a program that was abandoned after the upgrade for Windows 2000. There's a fair chance I'll still use this PC to encode video occasionally too.

Old PCs might be slow, but you can still encode faster using them alongside a new computer running the latest hardware than you can if you don't.

Last edited by hello_hello; 30th March 2020 at 14:21.
hello_hello is offline   Reply With Quote
Old 30th March 2020, 15:36   #122  |  Link
Stereodude
Registered User
 
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
Quote:
Originally Posted by hello_hello View Post
I doubt many people refrain from upgrading their computer because it won't run XP, or because there's no drivers for newer hardware, but I suspect there's many who don't see much point spending money to upgrade Windows on an old PC.

Do most household only have a single PC? There's four used regularly here, one of which is an old Pentium 3.

I've procrastinated replacing my PC because I can't bring myself to install Windows Spyware 10, and switching to Linux would require more effort and a learning curve, although as Linux Avisynth appears to be a thing now it's probably time, but this PC will keep running XP because I use some old Windows-only software, including a program that was abandoned after the upgrade for Windows 2000. There's a fair chance I'll still use this PC to encode video occasionally too.

Old PCs might be slow, but you can still encode faster using them alongside a new computer running the latest hardware than you can if you don't.
I have 5 PCs that are used "regularly" excluding servers in my house. Two are laptops. One has a 4th gen i5 the other has an 8th gen i7. Desktop 1 has a 2nd gen Xeon and desktop 2 is a Ryzen 9 3950X. My HTPC has a 4th gen i3.

4 of them run Windows 10, the HTPC runs Windows 8.1. Every P3, P4, & Core2 duo/quad system have long been put out to pasture.

With x265 the Ryzen 9 system is ~4x faster than the 2nd E5 Xeon. Everything else is much slower* (technically the 8th gen i7 laptop [Dell XPS 13] is about as fast as the 2nd E5 Xeon in x265 thanks to AVX2 and other core enhancements but it sits in the high 90C's encoding thermally throttling the whole time with the internal fans cranked and I don't think that's good for the system for hours on end). Sure, I could get slightly more throughput using all the systems or even including old retired systems collecting dust, but it doesn't make sense.

1) It's a pain to split encodes if you want to use a qpfile file and have full control of the encoding process. The more pieces the bigger the hassle. Do I want to be messing with getting yet another system encoding it's tiny part of the job for another 5% of encoding throughput? Nope...

2) Even if not splitting single encodes, power efficiency is a thing. Electricity isn't super expensive here and I'm not exactly a treehugger, but doubling my power usage to get another 5% of total encoding throughput by using an old system hardly seems prudent.

Last edited by Stereodude; 30th March 2020 at 17:53.
Stereodude is offline   Reply With Quote
Old 30th March 2020, 16:09   #123  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
So you're the person using QPFiles. I figured someone must... but I didn't know who....

I'm OCD about a lot of things, but my enthusiasm for driving myself insane hasn't extended to QPFiles. I did consider it.... as there's software for converting QPFiles from chapters etc, but if you remove the studio promos from the beginning of a movie, which I generally do, they become too much trouble for me. And of course it makes splitting scripts harder, which I do more than I'd like to. Usually to fix a problem I missed, such as cropping or because a word in the hard-coded subs wasn't spelled correctly....

Edit: thinking about it, I could always encode the studio promos and cut them out later if I was using a QPFile created from chapters, although I'd need to split the script or use a QPFile to make sure there's a keyframe in the splitting position.

Actually, I might need to rethink my entire position on QPFiles, now I'm talking about them. In order to edit the crap from the beginning or end of movies and because I'm lazy, I usually encode them separately after splitting the script to ensure there's a keyframe where one needs to be, then I append the split output, add the other streams and tell MKVToolNix to split the output at the same point, so it splits off the audio and subtitles etc too and I don't have to think about it. Instead of splitting the script to ensure there's a keyframe at the split point, I assume I could be using a QPFile. I'll give it a spin to see if it's quicker than copying the script and adding Trim() to the end. Although I would have to remember to add the QPFile to the command line, which I'm sure I'll regularly forget to do for at least the first 100 encodes .

Last edited by hello_hello; 30th March 2020 at 16:30.
hello_hello is offline   Reply With Quote
Old 30th March 2020, 17:26   #124  |  Link
Sharc
Registered User
 
Join Date: May 2006
Posts: 3,997
Interlaced source.

script 1:
Code:
AVIsource("source").ConverttoYV12(interlaced=true).AssumeTFF()
separatefields()
e=selecteven().fft3Dfilter(interlaced=false)
o=selectodd().fft3Dfilter(interlaced=false)
interleave(e,o)
weave()
script 2:
Code:
AVIsource("source").ConverttoYV12(interlaced=true).AssumeTFF()
fft3Dfilter(interlaced=true)
Shouldn't the 2 scripts produce identical interlaced outputs?
When separating the fields only 1 field is the same, the other field is different for the 2 scripts
Sharc is offline   Reply With Quote
Old 30th March 2020, 18:05   #125  |  Link
Stereodude
Registered User
 
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
Quote:
Originally Posted by hello_hello View Post
So you're the person using QPFiles. I figured someone must... but I didn't know who....
Well I used to re-encode for blu-ray which AFAIK required a keyframe where the chapter fell. Even with MKV it works nicer if there's a keyframe at the chapters on some devices.

I made a fairly simple spreadsheet to sort it all out when splitting. It suggests what frames to split the files (length / number of pieces). I open it in VD2 and use the closest scene change to the suggested number, enter those new frame numbers in a different row of the spreadsheet and then based on the original frame numbers of keyframes for chapter stops will tell me what frame number they need to be in each segment with only a little manual manipulation. It's then a copy paste fiesta to put the appropriate trim command into 8 avs files based on the spreadsheet and copy and paste to make 8 .chp files. It's not hard to do, but i'd estimate it still takes 20-30 minutes from start to finish.
Stereodude is offline   Reply With Quote
Old 30th March 2020, 18:58   #126  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
I wrote scripts to split AVS into multiple segments by converting chapter files, and then send them to different servers to encode, and later join the GOP files together.
Usually I only have to eac3to the chapters and prepare a universal avsi file to be imported, and all other works are for loop with scripts.

Code:
function p(string c, int fstart, int fend)
{
MP_Pipeline("""
lwlibavvideosource(""" + chr(34) + c + ".m2ts" + chr(34) + """, threads=1)

### prefetch: 32, 16
### lock threads to cores 4
### ###

QTGMC(Preset="fast")

### prefetch: 32, 16
### lock threads to cores 6
### ###

left = crop(0,0,976,0).MCTD().crop(0,0,960,0)
crop(944,0,0,0)

### export clip: left
### prefetch: 32, 16
### lock threads to cores 8
### ###

right = MCTD().crop(16,0,0,0)
stackhorizontal(left, right)


### prefetch: 32, 16
### lock threads to cores 10
### ###
""")

  trim(fstart,fend)

  f3kdb(output_depth=10,y=48,cb=48,cr=48,grainy=0,grainc=0)
}
Code:
import("mm.avsi")
p("01", 141600, 157957)
Hope this gives you some idea.
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Old 30th March 2020, 23:11   #127  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
I have uploaded the very first formal version here at GitHub.

141XP is included. msvc-x86 and -x64 are for daily drive. SSE and AVX routine is included for all core functions.

Let me know how it works for ya.
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Old 30th March 2020, 23:47   #128  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
I guess VS suport is still WIP? The function name is DelogoHD for VS
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 31st March 2020, 00:24   #129  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
Oops, that was a copy paste mistake. Please re-download and try.
FYI, I don't have VapourSynth environment here so I only made sure it compiles. If it's convenient for you to test on VS please let me know any issue.
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Old 31st March 2020, 00:59   #130  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
hmm, it seems like the filter does nothing. I even tried very high sigma values, but the image is unchanged: clip.neo_fft3d.FFT3D(sigma=90)
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 31st March 2020, 01:32   #131  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
I shall find a way to make planes default to [0,1,2]. Also reading some unfreed memory blocks, needs investigating.


Try v3.
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median

Last edited by MeteorRain; 31st March 2020 at 01:52.
MeteorRain is offline   Reply With Quote
Old 31st March 2020, 08:37   #132  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
v3 clang x64 gets "stuck" in vsedit if more then 1 frame is requested simultaneously. If I hit the play button or benchmark (tested it also with blankclip just to be sure it's not the source)
msvc looks a bit better, it gets only stuck sometimes

Tested with R48 / R49 x64, win10, ryzen 2600

oh and sigma works now in v3

Edit:
core.std.SetMaxCPU("none") did not help
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database

Last edited by ChaosKing; 31st March 2020 at 08:46.
ChaosKing is offline   Reply With Quote
Old 31st March 2020, 09:02   #133  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
SetMaxCPU changes the instruction set to VapourSynth, so I don't think that matters.

I tried clang x64 and msvc x64 with VirtualDub2, both look pretty normal. Does it only break on VSEdit? Mind pasting the full script? Are you on YUV420P8 or some more "advanced" pixel format?
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Old 31st March 2020, 09:20   #134  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Same thing happens in vdub

Code:
import vapoursynth as vs
core = vs.core

clip = core.std.BlankClip(format=vs.YUV420P8)
clip = clip.neo_fft3d.FFT3D()
clip.set_output()
See here what it looks like in vdub: https://i.imgur.com/WBAYLy1.gifv
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 31st March 2020, 10:07   #135  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
Reproduced.

When I copy paste to create my VPY script it had set threads to 1 already, which is why I didn't reproduce it.

Multi-threading upstream request needs some special routine and I've fixed it accordingly (hopefully!).


Try v4.
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median

Last edited by MeteorRain; 31st March 2020 at 11:10.
MeteorRain is offline   Reply With Quote
Old 31st March 2020, 18:26   #136  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
v4 is looking good
A quick speed test (x64) with a ntsc DVD, default values:
- neo fft clang ~ 71.8 fps
- neo fft msvc ~73.9 fps
- neo fft msvc-xp ~74.1 fps
- "old" fft ~ 67.4 fps

run multiple times 1500 frames in vsedit
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database

Last edited by ChaosKing; 31st March 2020 at 18:28.
ChaosKing is offline   Reply With Quote
Old 31st March 2020, 23:27   #137  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
This is weird...
I tried the version from msvc-xp_x86 and Dependency Walker says that everything is fine, however when I try to use the plugin, it prompts me to an "Access Violation".
Yet, when I run AVSMeter on my plugin folder, it doesn't complain at all, it just shows me neo-fft3d in my plugin+ folder.

Code:
FFVideoSource("test.mkv")
neo_FFT3D()
access violation

Code:
FFVideoSource("test.mkv")
neo_FFT3D(sigma=2.0, bt=3, y=3, u=3, v=3)
access violation

Code:
ColorBars(width=640, height=480, pixel_type="YV12")
neo_FFT3D(sigma=2.0, bt=3, y=3, u=3, v=3)
access violation



However... it works fine on Windows 10 (same PC, same hardware, same Avisynth installation, same fftw3.3.8, same AVS Script, same version of AVSPmod)...

The former version made by Ferenc Pinter, however, works like a charm on XP.
But I don't understand why... it should work, every dependency is included, the compiler compiled fine and didn't complain about anything and the CPU - although it supports 'till AVX2 - should be able to use the SSE/SSE2/SSSE3/SSE4.1/SSE4.2 on XP...

Is there a way to force SSE instead of AVX on Windows 10? Just to make sure that nothing is broken in the code and that it has really something (weird and deeply obscure) to deal with XP?
FranceBB is offline   Reply With Quote
Old 31st March 2020, 23:55   #138  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
If you can compile it youself, here's the compiling script: https://gist.github.com/msg7086/bb23...cc8c2c49f90c0e

To remove AVX routine, comment this out.
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Old 1st April 2020, 07:06   #139  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
It's probably not an AVX problem, for XP you have to build with v141_xp platform toolset (Visual Studio 2017 - Windows XP (v141_xp)) _and_ manually adding
/Zc:threadSafeInit-
to the additional options for C/C++ compiler
pinterf is offline   Reply With Quote
Old 1st April 2020, 08:09   #140  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
Thanks, please try NeoFFT3D_r1v5-windows-xp.zip
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Reply

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 23:08.


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