CUDASynth

These CUDA filters are packaged into DGDecodeNV, which is part of DGDecNV.
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

Rocky wrote:
Sat Mar 02, 2024 7:27 am
Any results with test5?
Yes, test5 yielded a pop-up on run #2 6 of 8. Hopefully I did it right.
I tend to find I may need to run the test a number of times since it seems to run successfully a few times in a row.

Running it again with nothing running in the background ...
Interestingly, something new.
1 of 8 success
2 of 8 returned only 1 frame (that's new, usually it is 0) and no pop-up
3 of 8 failed and no pop-up
4 to 8 success


editing the log and looking for 'frame=' I see

Code: Select all

  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips.log (8 hits)
	Line  388: frame= 2558 fps=142 q=27.0 Lsize=   78690KiB time=00:01:42.20 bitrate=6307.5kbits/s speed=5.68x    
	Line  732: frame=    1 fps=0.6 q=11.0 Lsize=    3452KiB time=-00:00:00.08 bitrate=N/A speed=N/A    
	Line 1074: frame=    0 fps=0.0 q=0.0 Lsize=    3424KiB time=N/A bitrate=N/A speed=N/A    
	Line 1424: frame= 2730 fps=142 q=24.0 Lsize=   83154KiB time=00:01:48.89 bitrate=6255.5kbits/s speed=5.66x    
	Line 1774: frame= 2713 fps=142 q=29.0 Lsize=   83840KiB time=00:01:48.25 bitrate=6344.4kbits/s speed=5.66x    
	Line 2123: frame= 2575 fps=141 q=30.0 Lsize=   80291KiB time=00:01:42.88 bitrate=6393.3kbits/s speed=5.64x    
	Line 2469: frame= 2453 fps=141 q=29.0 Lsize=   76059KiB time=00:01:37.98 bitrate=6359.0kbits/s speed=5.63x    
	Line 2820: frame= 2790 fps=141 q=26.0 Lsize=   86503KiB time=00:01:51.32 bitrate=6365.3kbits/s speed=5.64x  
I really do like it here.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Thank you. After my afternoon swim I'll try to bring up the stuff you gave me.
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

It has nothing to do with cudasynth.

I had a pop up ("error creating decoder" ?) appear after reverting to the latest official release.
Unfortunately it disappears quickly, so I'll see if I can capture an image of it.
Funnily enough, all 8 encodes worked.
Realtime Task Manager performance numbers and graphs showed nowhere near full GPU memory consumption.

Sorry about that !!!!!!!!!!!!!!!!!!!!
I have no explanation other than it could well be my system.

edit:
pop-up5.jpg
Task Manager performance tab says dedicated GPU Memory never goes over 2.1/8 Gb[/i]

edit 2:
So, I reverted fully to the original vapoursynth folder with the official released DG stuff (i.e. without any newly copied DLLs and chance of a stuff up) and the say message popped up. Never noticed it before, not to say it never happened as I just popped the released DG stuff into the right place without any testing.
I wonder if it's to do with the nvidia driver which I updated a few weeks ago, or perhaps the latest Win11 updates which I installed recently ? Will install the latest nvidia driver and try that.
I have a terrible feeling, with no proof, that it's to do with my PC even though I install next to nothing and virus check everything frequently :( :(
I really do like it here.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Interesting. Well, let's try to get to the bottom of it. I should have test results tomorrow.

One interesting thing is that in the released stuff if the failure to create occurred it did not exit the application. It's only the CUDASynth version that now does that. So, what if for some reason, some race condition or something, it tries to create the decoder twice. Then there would be the popup but things would proceed just fine after OK with the first creation. I'm in my nest right now and can't remember if the popup has a fast timeout. Most of the popups have timeouts. I think most of them are 5 seconds.

Thank you for the information and testing. I'm not thinking right now that it's only an issue with your system. It's good news that the problem is likely not due to the CUDASynth functionality or Vapoursynth API4. :)
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

One possibility is that one of your streams changes video characteristics in mid-stream. If that is the case behavior will be undefined. The characteristics that matter are video type (AVC, HEVC, MPEG2, VC1), width, height, or chroma format.

Even if it is not a mid-stream change in one file, the DGI file may list multiple files that conflict with each other regarding the listed characteristics.

In both of these cases, the decoder gets killed and re-created. But the rest of DGSource() remains init'ed as for the initial characteristics, e.g., the frame size reported to Vapoursynth, the size of internal buffers, etc. DGSource() is simply not designed to support changes in the video characteristics incurred by a single decoding instance. I need to look at your test stuff to see if you are running into either of these scenarios. I don't know what your ffmpeg/pipe stuff is doing. The intended behavior is that every new encode should be done from a new decoding instance.

Let's see.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

I've ruled out format changes within or between your 8 test files. Moving on to recreate your test environment...

EDIT: I am unable to test your files as processed by your QSF script stuff (see following post).
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Ran into problems running your environment. The QSF video files are missing when DGIndexNV runs:

Code: Select all

D:\tmp\hydra3333\HDTV\DGtest>"!vapoursynth_root!\DGIndex\DGIndexNV.exe" -i "!QSF_VIDEO!" -e -h -o "!_DGI_FILE!"

D:\tmp\hydra3333\HDTV\DGtest>TYPE "!_DGI_LOG!"
The system cannot find the file specified.
It looks like the code in the bat file to create them is commented out. If I re-enable it, it wants to run a VB script, which is absent (no .vbs file anywhere), and I don't have VB installed anyway. There are no source files in the RESULTS folder.

How to proceed?
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Hold the presses! The following script fails with video hanging on the girl water skiing, but only for Vapoursynth.

Code: Select all

import vapoursynth as vs
from vapoursynth import core
core.std.LoadPlugin(path="D:/Don/Programming/C++/DGDecNV/DGDecodeNV/x64/Release/DGDecodeNV.dll")
video = core.dgdecodenv.DGSource(r'D:\tmp\hydra3333\HDTV\DGtest\TEST_SOURCE_VIDEOS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.dgi',deinterlace=2)
video.set_output()
Are you by any chance using deinterlace=2?

I will troubleshoot this, but I still need you to get me going on your test environment.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

I fixed the hang, so re-download test6. There's a chance that bug is causing your problems but I'm not sure, so please test it.
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

Oops, a poor assumption on my part on what files pre-existed or not.
OK, I popped some files *.qsf.mpg into the "RESULTS" folder in this share:
https://drive.google.com/drive/folders/ ... sp=sharing
The files are the same as the originals except having been fixed where possible via VideoReDo's QuickStreamFix.

If you place the *.qsf.mpg files in a folder "RESULTS" underneath the folder the script is in, the script should find them provided these variables are set to your satisfaction

Code: Select all

set "root=G:\HDTV\DGtest"

Set "C_source_TS_Folder=!root!\TEST_SOURCE_VIDEOS"
Set "C_done_TS_Folder=!root!\RESULTS"
Set "C_temp_path=!root!\SCRATCH"
The hacked up script uses this:

Code: Select all

set "QSF_VIDEO=%C_done_TS_Folder%\!source_filename!.qsf.!extension_mpeg2!"
to find the cleaned-up files and specify into dgindex etc.

Here's a typical test .vpy and it uses deinterlace=1 (2 not used in these tests).

Code: Select all

import vapoursynth as vs		# this allows use of constants eg vs.YUV420P8 
from vapoursynth import core	# actual vapoursynth core 
core.std.LoadPlugin(r'G:\HDTV\DGtest\Vapoursynth-x64\DGIndex\DGDecodeNV.dll') # do it like gonca https://forum.doom9.org/showthread.php?p=1877765#post1877765 
core.avs.LoadPlugin(r'G:\HDTV\DGtest\Vapoursynth-x64\DGIndex\DGDecodeNV.dll') # do it like gonca https://forum.doom9.org/showthread.php?p=1877765#post1877765 
before_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False ) 
#after_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False, dn_enable=3, dn_quality="best", dn_strength=0.06, dn_cstrength=0.06, dn_tthresh=75.0, dn_show=0, sh_enable=1, sh_strength=0.3 ) 
after_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False ) 
after_video = core.avs.DGDenoise(after_video, strength=0.06, cstrength=0.06) 
#after_video = core.avs.DGSharpen( after_video, strength=0.3 ) 
stacked_video = core.std.StackVertical( [before_video, after_video] ) 
stacked_video.set_output() 
OK I'll try the updated test6.
Since I also get a popup in the current released binary (not a testX) - even though it somehow still encodes - I'm still wondering perhaps it's my PC.
I really do like it here.
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

Some results with the latest test6:

Code: Select all

Test Run 1: pop-up appeared once (item # unknown), encoded zero frames of it
Test Run 2: all completed successfully, no pop-up
Test Run 3: all completed successfully, no pop-up
Test Run 4: all completed successfully, no pop-up
Test Run 5: pop-up appeared once on item 7 of 8, encoded zero frames of it
Test Run 6: pop-up appeared once on item 2 of 8, encoded zero frames of it
Test Run 7: all completed successfully, no pop-up
pop-up6.jpg
edit: ran it once more with task manager "Performance" tab looking at GPU,
pop-up appeared once on item 1 of 8, encoded zero frames of it

Code: Select all

dedicated GPU memory 2.4/8.0 GB
shared GPU memory 1.2/16.0 GB
GPU memory 3.5/24.0 GB
utilization maxed at 94%
pop-up appeared once on item 5 of 8, encoded zero frames of it, similar gpu stats
I really do like it here.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

OK, it's not your system because it happened to me. Investigating...
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Please re-download test6 and re-test. It's working good for me.
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

Cool, success, no pop-ups or failed encodings. Thanks !

I ran the 8 encode batch, 10 times in sequence for both "new cudasynth way" and "old multi-line way".
Something I don't quite get with the latest test6 ... the speeds for "new cudasynth way" vs "old multi-line way" look close to the "new cudasynth way" when encoding ?
(I ran the encodings without anything else running in the background and without encoding audio, results below.)

Perhaps the source clips weren't large enough to show a significant difference, or the encoding chain is a levelling factor ?

(a) Results for "new cudasynth way" eg :

Code: Select all

after_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False, dn_enable=1, dn_quality="good", dn_strength=0.06, dn_cstrength=0.06, dn_tthresh=75.0, dn_show=0, sh_enable=1, sh_strength=0.3 ) 
after_video.set_output() 

Code: Select all

  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips-single-line.log (80 hits)
	Line   307: frame= 2558 fps=391 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.6x    
	Line   569: frame= 2669 fps=394 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.8x    
	Line   831: frame= 2728 fps=392 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.7x    
	Line  1093: frame= 2730 fps=392 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.7x    
	Line  1355: frame= 2713 fps=394 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.8x    
	Line  1617: frame= 2575 fps=389 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.5x    
	Line  1879: frame= 2453 fps=382 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.3x    
	Line  2141: frame= 2790 fps=389 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.6x    
	Line  2471: frame= 2558 fps=390 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.6x    
	Line  2733: frame= 2669 fps=394 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.7x    
	Line  2995: frame= 2728 fps=391 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.6x    
	Line  3257: frame= 2730 fps=391 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.6x    
	Line  3519: frame= 2713 fps=392 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.7x    
	Line  3781: frame= 2575 fps=389 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.5x    
	Line  4043: frame= 2453 fps=382 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.3x    
	Line  4305: frame= 2790 fps=389 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.5x    
	Line  4635: frame= 2558 fps=390 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.6x    
	Line  4897: frame= 2669 fps=391 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.6x    
	Line  5159: frame= 2728 fps=386 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.4x    
	Line  5421: frame= 2730 fps=391 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.6x    
	Line  5683: frame= 2713 fps=390 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.6x    
	Line  5945: frame= 2575 fps=388 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.5x    
	Line  6207: frame= 2453 fps=380 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.2x    
	Line  6469: frame= 2790 fps=388 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.5x    
	Line  6799: frame= 2558 fps=389 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.5x    
	Line  7061: frame= 2669 fps=389 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.5x    
	Line  7323: frame= 2728 fps=388 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.5x    
	Line  7585: frame= 2730 fps=390 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.6x    
	Line  7847: frame= 2713 fps=392 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.7x    
	Line  8109: frame= 2575 fps=387 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.5x    
	Line  8371: frame= 2453 fps=380 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.2x    
	Line  8633: frame= 2790 fps=388 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.5x    
	Line  8963: frame= 2558 fps=388 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.5x    
	Line  9225: frame= 2669 fps=391 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.6x    
	Line  9487: frame= 2728 fps=388 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.5x    
	Line  9749: frame= 2730 fps=391 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.6x    
	Line 10011: frame= 2713 fps=391 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.6x    
	Line 10273: frame= 2575 fps=387 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.4x    
	Line 10535: frame= 2453 fps=380 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.2x    
	Line 10797: frame= 2790 fps=388 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.5x    
	Line 11127: frame= 2558 fps=386 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.4x    
	Line 11389: frame= 2669 fps=390 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.6x    
	Line 11651: frame= 2728 fps=388 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.5x    
	Line 11913: frame= 2730 fps=391 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.6x    
	Line 12175: frame= 2713 fps=391 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.6x    
	Line 12437: frame= 2575 fps=387 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.5x    
	Line 12699: frame= 2453 fps=378 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.1x    
	Line 12961: frame= 2790 fps=386 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.4x    
	Line 13291: frame= 2558 fps=390 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.6x    
	Line 13553: frame= 2669 fps=391 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.6x    
	Line 13815: frame= 2728 fps=389 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.5x    
	Line 14077: frame= 2730 fps=389 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.5x    
	Line 14339: frame= 2713 fps=390 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.6x    
	Line 14601: frame= 2575 fps=387 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.5x    
	Line 14863: frame= 2453 fps=378 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.1x    
	Line 15125: frame= 2790 fps=390 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.6x    
	Line 15455: frame= 2558 fps=388 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.5x    
	Line 15717: frame= 2669 fps=392 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.7x    
	Line 15979: frame= 2728 fps=388 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.5x    
	Line 16241: frame= 2730 fps=392 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.6x    
	Line 16503: frame= 2713 fps=391 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.6x    
	Line 16765: frame= 2575 fps=387 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.5x    
	Line 17027: frame= 2453 fps=380 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.2x    
	Line 17289: frame= 2790 fps=389 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.5x    
	Line 17619: frame= 2558 fps=389 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.5x    
	Line 17881: frame= 2669 fps=391 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.6x    
	Line 18143: frame= 2728 fps=390 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.6x    
	Line 18405: frame= 2730 fps=391 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.6x    
	Line 18667: frame= 2713 fps=391 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.6x    
	Line 18929: frame= 2575 fps=386 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.4x    
	Line 19191: frame= 2453 fps=382 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.3x    
	Line 19453: frame= 2790 fps=389 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.5x    
	Line 19783: frame= 2558 fps=388 q=23.0 Lsize=   75258KiB time=00:01:42.20 bitrate=6032.5kbits/s speed=15.5x    
	Line 20045: frame= 2669 fps=391 q=24.0 Lsize=   79451KiB time=00:01:46.64 bitrate=6103.4kbits/s speed=15.6x    
	Line 20307: frame= 2728 fps=390 q=29.0 Lsize=   81354KiB time=00:01:49.00 bitrate=6114.2kbits/s speed=15.6x    
	Line 20569: frame= 2730 fps=392 q=19.0 Lsize=   78444KiB time=00:01:49.08 bitrate=5891.2kbits/s speed=15.7x    
	Line 20831: frame= 2713 fps=389 q=24.0 Lsize=   80146KiB time=00:01:48.40 bitrate=6056.8kbits/s speed=15.5x    
	Line 21093: frame= 2575 fps=387 q=24.0 Lsize=   76645KiB time=00:01:42.88 bitrate=6103.0kbits/s speed=15.4x    
	Line 21355: frame= 2453 fps=382 q=24.0 Lsize=   73086KiB time=00:01:38.00 bitrate=6109.4kbits/s speed=15.3x    
	Line 21617: frame= 2790 fps=389 q=20.0 Lsize=   82641KiB time=00:01:51.48 bitrate=6072.8kbits/s speed=15.6x  

(b) Results for "old way" eg :

Code: Select all

after_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False ) 
after_video = core.avs.DGDenoise(after_video, strength=0.06, cstrength=0.06) 
after_video = core.avs.DGSharpen( after_video, strength=0.3 ) 
after_video.set_output() 

Code: Select all

  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips-multi-line.log (80 hits)
	Line   309: frame= 2558 fps=385 q=25.0 Lsize=   74789KiB time=00:01:42.20 bitrate=5994.8kbits/s speed=15.4x    
	Line   573: frame= 2669 fps=384 q=27.0 Lsize=   80898KiB time=00:01:46.64 bitrate=6214.5kbits/s speed=15.3x    
	Line   837: frame= 2728 fps=393 q=31.0 Lsize=   80641KiB time=00:01:49.00 bitrate=6060.7kbits/s speed=15.7x    
	Line  1101: frame= 2730 fps=389 q=21.0 Lsize=   78041KiB time=00:01:49.08 bitrate=5860.9kbits/s speed=15.6x    
	Line  1365: frame= 2713 fps=388 q=24.0 Lsize=   80416KiB time=00:01:48.40 bitrate=6077.2kbits/s speed=15.5x    
	Line  1629: frame= 2575 fps=391 q=29.0 Lsize=   76679KiB time=00:01:42.88 bitrate=6105.7kbits/s speed=15.6x    
	Line  1893: frame= 2453 fps=391 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.6x    
	Line  2157: frame= 2790 fps=388 q=28.0 Lsize=   83298KiB time=00:01:51.48 bitrate=6121.1kbits/s speed=15.5x    
	Line  2489: frame= 2558 fps=388 q=25.0 Lsize=   74789KiB time=00:01:42.20 bitrate=5994.8kbits/s speed=15.5x    
	Line  2753: frame= 2669 fps=388 q=27.0 Lsize=   80887KiB time=00:01:46.64 bitrate=6213.7kbits/s speed=15.5x    
	Line  3017: frame= 2728 fps=391 q=31.0 Lsize=   80641KiB time=00:01:49.00 bitrate=6060.7kbits/s speed=15.6x    
	Line  3281: frame= 2730 fps=388 q=21.0 Lsize=   78038KiB time=00:01:49.08 bitrate=5860.7kbits/s speed=15.5x    
	Line  3545: frame= 2713 fps=390 q=24.0 Lsize=   80416KiB time=00:01:48.40 bitrate=6077.2kbits/s speed=15.6x    
	Line  3809: frame= 2575 fps=388 q=29.0 Lsize=   76681KiB time=00:01:42.88 bitrate=6105.9kbits/s speed=15.5x    
	Line  4073: frame= 2453 fps=389 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.5x    
	Line  4337: frame= 2790 fps=392 q=28.0 Lsize=   83298KiB time=00:01:51.48 bitrate=6121.1kbits/s speed=15.6x    
	Line  4669: frame= 2558 fps=386 q=25.0 Lsize=   74785KiB time=00:01:42.20 bitrate=5994.5kbits/s speed=15.4x    
	Line  4933: frame= 2669 fps=387 q=27.0 Lsize=   80898KiB time=00:01:46.64 bitrate=6214.5kbits/s speed=15.5x    
	Line  5197: frame= 2728 fps=387 q=31.0 Lsize=   80641KiB time=00:01:49.00 bitrate=6060.7kbits/s speed=15.5x    
	Line  5461: frame= 2730 fps=386 q=21.0 Lsize=   78038KiB time=00:01:49.08 bitrate=5860.7kbits/s speed=15.4x    
	Line  5725: frame= 2713 fps=387 q=24.0 Lsize=   80416KiB time=00:01:48.40 bitrate=6077.2kbits/s speed=15.5x    
	Line  5989: frame= 2575 fps=389 q=29.0 Lsize=   76679KiB time=00:01:42.88 bitrate=6105.7kbits/s speed=15.5x    
	Line  6253: frame= 2453 fps=385 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.5kbits/s speed=15.4x    
	Line  6517: frame= 2790 fps=388 q=28.0 Lsize=   83298KiB time=00:01:51.48 bitrate=6121.1kbits/s speed=15.5x    
	Line  6849: frame= 2558 fps=387 q=25.0 Lsize=   74781KiB time=00:01:42.20 bitrate=5994.2kbits/s speed=15.5x    
	Line  7113: frame= 2669 fps=388 q=27.0 Lsize=   80898KiB time=00:01:46.64 bitrate=6214.5kbits/s speed=15.5x    
	Line  7377: frame= 2728 fps=390 q=31.0 Lsize=   80641KiB time=00:01:49.00 bitrate=6060.7kbits/s speed=15.6x    
	Line  7641: frame= 2730 fps=383 q=21.0 Lsize=   78041KiB time=00:01:49.08 bitrate=5860.9kbits/s speed=15.3x    
	Line  7905: frame= 2713 fps=384 q=24.0 Lsize=   80408KiB time=00:01:48.40 bitrate=6076.6kbits/s speed=15.4x    
	Line  8169: frame= 2575 fps=388 q=29.0 Lsize=   76675KiB time=00:01:42.88 bitrate=6105.4kbits/s speed=15.5x    
	Line  8433: frame= 2453 fps=389 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.5x    
	Line  8697: frame= 2790 fps=387 q=28.0 Lsize=   83298KiB time=00:01:51.48 bitrate=6121.1kbits/s speed=15.5x    
	Line  9029: frame= 2558 fps=383 q=25.0 Lsize=   74788KiB time=00:01:42.20 bitrate=5994.7kbits/s speed=15.3x    
	Line  9293: frame= 2669 fps=385 q=27.0 Lsize=   80898KiB time=00:01:46.64 bitrate=6214.5kbits/s speed=15.4x    
	Line  9557: frame= 2728 fps=389 q=31.0 Lsize=   80641KiB time=00:01:49.00 bitrate=6060.7kbits/s speed=15.5x    
	Line  9821: frame= 2730 fps=385 q=21.0 Lsize=   78039KiB time=00:01:49.08 bitrate=5860.8kbits/s speed=15.4x    
	Line 10085: frame= 2713 fps=388 q=24.0 Lsize=   80416KiB time=00:01:48.40 bitrate=6077.2kbits/s speed=15.5x    
	Line 10349: frame= 2575 fps=388 q=29.0 Lsize=   76677KiB time=00:01:42.88 bitrate=6105.6kbits/s speed=15.5x    
	Line 10613: frame= 2453 fps=386 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.4x    
	Line 10877: frame= 2790 fps=390 q=28.0 Lsize=   83287KiB time=00:01:51.48 bitrate=6120.3kbits/s speed=15.6x    
	Line 11209: frame= 2558 fps=383 q=25.0 Lsize=   74789KiB time=00:01:42.20 bitrate=5994.8kbits/s speed=15.3x    
	Line 11473: frame= 2669 fps=385 q=27.0 Lsize=   80887KiB time=00:01:46.64 bitrate=6213.7kbits/s speed=15.4x    
	Line 11737: frame= 2728 fps=387 q=31.0 Lsize=   80645KiB time=00:01:49.00 bitrate=6061.0kbits/s speed=15.4x    
	Line 12001: frame= 2730 fps=384 q=21.0 Lsize=   78037KiB time=00:01:49.08 bitrate=5860.7kbits/s speed=15.4x    
	Line 12265: frame= 2713 fps=386 q=24.0 Lsize=   80408KiB time=00:01:48.40 bitrate=6076.6kbits/s speed=15.4x    
	Line 12529: frame= 2575 fps=384 q=29.0 Lsize=   76679KiB time=00:01:42.88 bitrate=6105.7kbits/s speed=15.4x    
	Line 12793: frame= 2453 fps=388 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.5x    
	Line 13057: frame= 2790 fps=387 q=28.0 Lsize=   83298KiB time=00:01:51.48 bitrate=6121.1kbits/s speed=15.5x    
	Line 13389: frame= 2558 fps=387 q=25.0 Lsize=   74781KiB time=00:01:42.20 bitrate=5994.2kbits/s speed=15.5x    
	Line 13653: frame= 2669 fps=390 q=27.0 Lsize=   80898KiB time=00:01:46.64 bitrate=6214.5kbits/s speed=15.6x    
	Line 13917: frame= 2728 fps=390 q=31.0 Lsize=   80651KiB time=00:01:49.00 bitrate=6061.4kbits/s speed=15.6x    
	Line 14181: frame= 2730 fps=391 q=21.0 Lsize=   78037KiB time=00:01:49.08 bitrate=5860.7kbits/s speed=15.6x    
	Line 14445: frame= 2713 fps=390 q=24.0 Lsize=   80408KiB time=00:01:48.40 bitrate=6076.6kbits/s speed=15.6x    
	Line 14709: frame= 2575 fps=385 q=29.0 Lsize=   76682KiB time=00:01:42.88 bitrate=6105.9kbits/s speed=15.4x    
	Line 14973: frame= 2453 fps=383 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.3x    
	Line 15237: frame= 2790 fps=387 q=28.0 Lsize=   83298KiB time=00:01:51.48 bitrate=6121.1kbits/s speed=15.5x    
	Line 15569: frame= 2558 fps=385 q=25.0 Lsize=   74781KiB time=00:01:42.20 bitrate=5994.2kbits/s speed=15.4x    
	Line 15833: frame= 2669 fps=387 q=27.0 Lsize=   80898KiB time=00:01:46.64 bitrate=6214.5kbits/s speed=15.4x    
	Line 16097: frame= 2728 fps=389 q=31.0 Lsize=   80651KiB time=00:01:49.00 bitrate=6061.4kbits/s speed=15.6x    
	Line 16361: frame= 2730 fps=386 q=21.0 Lsize=   78042KiB time=00:01:49.08 bitrate=5861.0kbits/s speed=15.4x    
	Line 16625: frame= 2713 fps=388 q=24.0 Lsize=   80416KiB time=00:01:48.40 bitrate=6077.2kbits/s speed=15.5x    
	Line 16889: frame= 2575 fps=386 q=29.0 Lsize=   76675KiB time=00:01:42.88 bitrate=6105.4kbits/s speed=15.4x    
	Line 17153: frame= 2453 fps=387 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.4x    
	Line 17417: frame= 2790 fps=391 q=28.0 Lsize=   83298KiB time=00:01:51.48 bitrate=6121.1kbits/s speed=15.6x    
	Line 17749: frame= 2558 fps=387 q=25.0 Lsize=   74786KiB time=00:01:42.20 bitrate=5994.6kbits/s speed=15.5x    
	Line 18013: frame= 2669 fps=385 q=27.0 Lsize=   80898KiB time=00:01:46.64 bitrate=6214.5kbits/s speed=15.4x    
	Line 18277: frame= 2728 fps=388 q=31.0 Lsize=   80641KiB time=00:01:49.00 bitrate=6060.7kbits/s speed=15.5x    
	Line 18541: frame= 2730 fps=387 q=21.0 Lsize=   78040KiB time=00:01:49.08 bitrate=5860.8kbits/s speed=15.4x    
	Line 18805: frame= 2713 fps=386 q=24.0 Lsize=   80416KiB time=00:01:48.40 bitrate=6077.2kbits/s speed=15.4x    
	Line 19069: frame= 2575 fps=388 q=29.0 Lsize=   76675KiB time=00:01:42.88 bitrate=6105.4kbits/s speed=15.5x    
	Line 19333: frame= 2453 fps=379 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.1x    
	Line 19597: frame= 2790 fps=389 q=28.0 Lsize=   83296KiB time=00:01:51.48 bitrate=6120.9kbits/s speed=15.5x    
	Line 19929: frame= 2558 fps=384 q=25.0 Lsize=   74781KiB time=00:01:42.20 bitrate=5994.2kbits/s speed=15.4x    
	Line 20193: frame= 2669 fps=384 q=27.0 Lsize=   80898KiB time=00:01:46.64 bitrate=6214.5kbits/s speed=15.3x    
	Line 20457: frame= 2728 fps=387 q=31.0 Lsize=   80641KiB time=00:01:49.00 bitrate=6060.7kbits/s speed=15.5x    
	Line 20721: frame= 2730 fps=386 q=21.0 Lsize=   78037KiB time=00:01:49.08 bitrate=5860.7kbits/s speed=15.4x    
	Line 20985: frame= 2713 fps=389 q=24.0 Lsize=   80416KiB time=00:01:48.40 bitrate=6077.2kbits/s speed=15.5x    
	Line 21249: frame= 2575 fps=388 q=29.0 Lsize=   76679KiB time=00:01:42.88 bitrate=6105.7kbits/s speed=15.5x    
	Line 21513: frame= 2453 fps=385 q=29.0 Lsize=   72118KiB time=00:01:38.00 bitrate=6028.4kbits/s speed=15.4x    
	Line 21777: frame= 2790 fps=391 q=28.0 Lsize=   83298KiB time=00:01:51.48 bitrate=6121.1kbits/s speed=15.6x 
Just in case the limiting/levelling factor was vspipe/ffmpeg/nvenc encoding speed, I re-ran the 8 encode batch, 10 times in sequence for both "new cudasynth way" and "old multi-line way", just using vspipe only with frames to null :

Code: Select all

"!vspipeexe64!" --filter-time --container y4m "!_VPY_file!" -- 
(c) vspipe-only results for "new cudasynth way" :

Code: Select all

  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips-single-line-vspipe-only.log (80 hits)
	Line   234: Output 2558 frames in 4.53 seconds (564.73 fps)
	Line   436: Output 2669 frames in 4.80 seconds (556.11 fps)
	Line   638: Output 2728 frames in 4.82 seconds (566.49 fps)
	Line   840: Output 2730 frames in 4.76 seconds (573.29 fps)
	Line  1042: Output 2713 frames in 4.77 seconds (568.50 fps)
	Line  1244: Output 2575 frames in 4.54 seconds (567.61 fps)
	Line  1446: Output 2453 frames in 4.36 seconds (562.31 fps)
	Line  1648: Output 2790 frames in 4.93 seconds (565.81 fps)
	Line  1919: Output 2558 frames in 4.58 seconds (558.60 fps)
	Line  2122: Output 2669 frames in 4.89 seconds (546.13 fps)
	Line  2325: Output 2728 frames in 4.80 seconds (568.31 fps)
	Line  2528: Output 2730 frames in 4.82 seconds (566.70 fps)
	Line  2731: Output 2713 frames in 4.86 seconds (558.78 fps)
	Line  2934: Output 2575 frames in 4.59 seconds (561.14 fps)
	Line  3137: Output 2453 frames in 4.51 seconds (543.61 fps)
	Line  3340: Output 2790 frames in 5.10 seconds (547.39 fps)
	Line  3611: Output 2558 frames in 4.55 seconds (561.63 fps)
	Line  3814: Output 2669 frames in 4.91 seconds (543.46 fps)
	Line  4017: Output 2728 frames in 4.89 seconds (557.75 fps)
	Line  4220: Output 2730 frames in 4.87 seconds (561.00 fps)
	Line  4423: Output 2713 frames in 4.81 seconds (563.49 fps)
	Line  4626: Output 2575 frames in 4.60 seconds (559.82 fps)
	Line  4829: Output 2453 frames in 4.41 seconds (555.73 fps)
	Line  5032: Output 2790 frames in 4.98 seconds (559.96 fps)
	Line  5303: Output 2558 frames in 4.49 seconds (569.24 fps)
	Line  5506: Output 2669 frames in 4.76 seconds (560.27 fps)
	Line  5709: Output 2728 frames in 4.83 seconds (565.12 fps)
	Line  5912: Output 2730 frames in 4.82 seconds (566.37 fps)
	Line  6115: Output 2713 frames in 4.81 seconds (564.46 fps)
	Line  6318: Output 2575 frames in 4.63 seconds (556.55 fps)
	Line  6521: Output 2453 frames in 4.41 seconds (556.32 fps)
	Line  6724: Output 2790 frames in 4.96 seconds (562.06 fps)
	Line  6995: Output 2558 frames in 4.54 seconds (562.83 fps)
	Line  7198: Output 2669 frames in 4.83 seconds (553.03 fps)
	Line  7401: Output 2728 frames in 4.90 seconds (556.86 fps)
	Line  7604: Output 2730 frames in 4.96 seconds (550.80 fps)
	Line  7807: Output 2713 frames in 4.95 seconds (548.50 fps)
	Line  8010: Output 2575 frames in 4.59 seconds (561.51 fps)
	Line  8213: Output 2453 frames in 4.40 seconds (557.94 fps)
	Line  8416: Output 2790 frames in 4.93 seconds (566.44 fps)
	Line  8687: Output 2558 frames in 4.58 seconds (558.84 fps)
	Line  8890: Output 2669 frames in 4.79 seconds (557.53 fps)
	Line  9093: Output 2728 frames in 4.84 seconds (563.66 fps)
	Line  9296: Output 2730 frames in 4.83 seconds (564.95 fps)
	Line  9499: Output 2713 frames in 4.84 seconds (560.32 fps)
	Line  9702: Output 2575 frames in 4.62 seconds (557.50 fps)
	Line  9905: Output 2453 frames in 4.44 seconds (552.06 fps)
	Line 10108: Output 2790 frames in 5.09 seconds (548.36 fps)
	Line 10379: Output 2558 frames in 4.59 seconds (557.51 fps)
	Line 10582: Output 2669 frames in 4.76 seconds (560.56 fps)
	Line 10785: Output 2728 frames in 4.90 seconds (557.20 fps)
	Line 10988: Output 2730 frames in 4.84 seconds (563.73 fps)
	Line 11191: Output 2713 frames in 4.82 seconds (562.52 fps)
	Line 11394: Output 2575 frames in 4.60 seconds (559.38 fps)
	Line 11597: Output 2453 frames in 4.46 seconds (549.88 fps)
	Line 11800: Output 2790 frames in 5.02 seconds (556.32 fps)
	Line 12071: Output 2558 frames in 4.57 seconds (559.75 fps)
	Line 12274: Output 2669 frames in 4.80 seconds (556.17 fps)
	Line 12477: Output 2728 frames in 4.91 seconds (555.87 fps)
	Line 12680: Output 2730 frames in 4.82 seconds (566.15 fps)
	Line 12883: Output 2713 frames in 4.80 seconds (564.78 fps)
	Line 13086: Output 2575 frames in 4.61 seconds (559.16 fps)
	Line 13289: Output 2453 frames in 4.48 seconds (546.99 fps)
	Line 13492: Output 2790 frames in 5.00 seconds (558.24 fps)
	Line 13763: Output 2558 frames in 4.53 seconds (564.98 fps)
	Line 13966: Output 2669 frames in 4.70 seconds (567.48 fps)
	Line 14169: Output 2728 frames in 4.81 seconds (567.66 fps)
	Line 14372: Output 2730 frames in 4.81 seconds (568.12 fps)
	Line 14575: Output 2713 frames in 4.78 seconds (567.78 fps)
	Line 14778: Output 2575 frames in 4.55 seconds (566.06 fps)
	Line 14981: Output 2453 frames in 4.37 seconds (561.80 fps)
	Line 15184: Output 2790 frames in 4.95 seconds (563.36 fps)
	Line 15455: Output 2558 frames in 4.55 seconds (561.87 fps)
	Line 15658: Output 2669 frames in 4.92 seconds (541.98 fps)
	Line 15861: Output 2728 frames in 4.88 seconds (559.29 fps)
	Line 16064: Output 2730 frames in 4.85 seconds (562.87 fps)
	Line 16267: Output 2713 frames in 4.85 seconds (559.00 fps)
	Line 16470: Output 2575 frames in 4.63 seconds (555.99 fps)
	Line 16673: Output 2453 frames in 4.44 seconds (552.38 fps)
	Line 16876: Output 2790 frames in 4.93 seconds (566.20 fps)
(d) vspipe-only results for "old way" :

Code: Select all

  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips-multi-line-vspipe-only.log (80 hits)
	Line   235: Output 2558 frames in 5.40 seconds (473.42 fps)
	Line   440: Output 2669 frames in 5.57 seconds (479.37 fps)
	Line   645: Output 2728 frames in 5.61 seconds (486.39 fps)
	Line   850: Output 2730 frames in 5.67 seconds (481.14 fps)
	Line  1055: Output 2713 frames in 5.63 seconds (482.02 fps)
	Line  1260: Output 2575 frames in 5.40 seconds (476.63 fps)
	Line  1465: Output 2453 frames in 5.13 seconds (478.00 fps)
	Line  1670: Output 2790 frames in 5.87 seconds (475.05 fps)
	Line  1943: Output 2558 frames in 5.33 seconds (479.62 fps)
	Line  2148: Output 2669 frames in 5.53 seconds (482.73 fps)
	Line  2353: Output 2728 frames in 5.67 seconds (481.00 fps)
	Line  2558: Output 2730 frames in 5.71 seconds (477.90 fps)
	Line  2763: Output 2713 frames in 5.70 seconds (476.10 fps)
	Line  2968: Output 2575 frames in 5.42 seconds (474.69 fps)
	Line  3173: Output 2453 frames in 5.13 seconds (478.59 fps)
	Line  3378: Output 2790 frames in 5.80 seconds (481.31 fps)
	Line  3651: Output 2558 frames in 5.33 seconds (479.52 fps)
	Line  3856: Output 2669 frames in 5.56 seconds (480.35 fps)
	Line  4061: Output 2728 frames in 5.69 seconds (479.25 fps)
	Line  4266: Output 2730 frames in 5.69 seconds (479.52 fps)
	Line  4471: Output 2713 frames in 5.73 seconds (473.58 fps)
	Line  4676: Output 2575 frames in 5.35 seconds (480.89 fps)
	Line  4881: Output 2453 frames in 5.14 seconds (477.34 fps)
	Line  5086: Output 2790 frames in 5.83 seconds (478.87 fps)
	Line  5359: Output 2558 frames in 5.32 seconds (480.69 fps)
	Line  5564: Output 2669 frames in 5.54 seconds (482.02 fps)
	Line  5769: Output 2728 frames in 5.68 seconds (480.46 fps)
	Line  5974: Output 2730 frames in 5.72 seconds (477.16 fps)
	Line  6179: Output 2713 frames in 5.67 seconds (478.74 fps)
	Line  6384: Output 2575 frames in 5.41 seconds (475.73 fps)
	Line  6589: Output 2453 frames in 5.11 seconds (480.37 fps)
	Line  6794: Output 2790 frames in 5.82 seconds (479.10 fps)
	Line  7067: Output 2558 frames in 5.36 seconds (476.93 fps)
	Line  7272: Output 2669 frames in 5.58 seconds (478.60 fps)
	Line  7477: Output 2728 frames in 5.66 seconds (481.68 fps)
	Line  7682: Output 2730 frames in 5.69 seconds (479.99 fps)
	Line  7887: Output 2713 frames in 5.67 seconds (478.43 fps)
	Line  8092: Output 2575 frames in 5.46 seconds (471.46 fps)
	Line  8297: Output 2453 frames in 5.11 seconds (480.08 fps)
	Line  8502: Output 2790 frames in 5.79 seconds (481.96 fps)
	Line  8775: Output 2558 frames in 5.34 seconds (478.59 fps)
	Line  8980: Output 2669 frames in 5.59 seconds (477.05 fps)
	Line  9185: Output 2728 frames in 5.71 seconds (477.98 fps)
	Line  9390: Output 2730 frames in 5.73 seconds (476.77 fps)
	Line  9595: Output 2713 frames in 5.66 seconds (479.26 fps)
	Line  9800: Output 2575 frames in 5.39 seconds (477.52 fps)
	Line 10005: Output 2453 frames in 5.14 seconds (477.12 fps)
	Line 10210: Output 2790 frames in 5.82 seconds (479.16 fps)
	Line 10483: Output 2558 frames in 5.32 seconds (480.76 fps)
	Line 10688: Output 2669 frames in 5.55 seconds (480.69 fps)
	Line 10893: Output 2728 frames in 5.69 seconds (479.45 fps)
	Line 11098: Output 2730 frames in 5.69 seconds (479.85 fps)
	Line 11303: Output 2713 frames in 5.64 seconds (481.18 fps)
	Line 11508: Output 2575 frames in 5.35 seconds (481.53 fps)
	Line 11713: Output 2453 frames in 5.16 seconds (475.83 fps)
	Line 11918: Output 2790 frames in 5.79 seconds (482.08 fps)
	Line 12191: Output 2558 frames in 5.36 seconds (477.55 fps)
	Line 12396: Output 2669 frames in 5.57 seconds (479.09 fps)
	Line 12601: Output 2728 frames in 5.68 seconds (480.61 fps)
	Line 12806: Output 2730 frames in 5.69 seconds (479.96 fps)
	Line 13011: Output 2713 frames in 5.66 seconds (479.63 fps)
	Line 13216: Output 2575 frames in 5.35 seconds (481.17 fps)
	Line 13421: Output 2453 frames in 5.13 seconds (477.88 fps)
	Line 13626: Output 2790 frames in 5.82 seconds (479.31 fps)
	Line 13899: Output 2558 frames in 5.37 seconds (476.37 fps)
	Line 14104: Output 2669 frames in 5.58 seconds (478.04 fps)
	Line 14309: Output 2728 frames in 5.68 seconds (480.45 fps)
	Line 14514: Output 2730 frames in 5.70 seconds (478.99 fps)
	Line 14719: Output 2713 frames in 5.71 seconds (475.53 fps)
	Line 14924: Output 2575 frames in 5.38 seconds (478.76 fps)
	Line 15129: Output 2453 frames in 5.14 seconds (476.99 fps)
	Line 15334: Output 2790 frames in 5.88 seconds (474.65 fps)
	Line 15607: Output 2558 frames in 5.37 seconds (476.58 fps)
	Line 15812: Output 2669 frames in 5.57 seconds (479.30 fps)
	Line 16017: Output 2728 frames in 5.70 seconds (478.53 fps)
	Line 16222: Output 2730 frames in 5.83 seconds (468.09 fps)
	Line 16427: Output 2713 frames in 5.72 seconds (474.44 fps)
	Line 16632: Output 2575 frames in 5.42 seconds (474.81 fps)
	Line 16837: Output 2453 frames in 5.17 seconds (474.63 fps)
	Line 17042: Output 2790 frames in 5.93 seconds (470.65 fps)

OK, vspipe-only results (c) and (d) appear to show a significant difference.

I suppose one could test frame sizes larger than 720x576 to see if the encoder chain is still the levelling factor then :) (One may guess that heavy filtering of sorts using cudasynth may yield most benefit, and comparison of cudasynth to to cpu-only filtering may be fairer in some way).
And, test on another newer nvidia card if one has one, i.e. better than an RTX2060 SUPER VENTUS OC.
Ah, fun for another day I guess.

Thank you.
I really do like it here.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Thank goodness!

Yes, I think you are right about performance. I believe the relevant factors are the frame size [most important as the gain scales as O(size^2)], and the dilution by the extra stuff in your chain. You'll have an approximate 2500% increase in PCIe load for UHD versus SD! And another times-two for HBD. We could also think about connecting to NVEnc without coming back to the CPU, further reducing the PCIe load, and obviating the need for vspipe, etc. Finally, by keeping PCIe load to a minimum we have headroom to implement further parallelism, although the raw decode will always be limited by the one NVDec and NVEnc engines. Hmm, don't some GPUs have multiple engines?

When testing with the old way, you should also use the old DGSource(), because you have a 34% gain on the decode side even without using any integrated filters. That gain is coming from the CUDASynth framework.

What filters would you like to see added next? I'll probably make a formal release of DGDecNV pretty soon, maybe before adding more filters.

I'm surprised you didn't ask what the root cause was.

Listen up, m8. I'm so grateful to you for reporting this issue and supporting me with your testing and analyses. I also learned some stuff that will be useful for me. It was something of a dog's breakfast for a while there but now it's bonza. You're a definite ripsnorter, so throw a shrimp on the barbie!
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

Rocky wrote:
Tue Mar 05, 2024 2:56 am
I'm surprised you didn't ask what the root cause was.
:) I did wonder, and curiosity nearly got the better of me, however I had enough of those questions in the last 10 working years to choose not to bother you. Suspected you'd needed to brute force it with retries if the cause was not discernible, which is what I'd had to occasionally consider in the past just to get something going ;) Then thought you'd get the better of it :)

Anyway, most thankful for your wonderful work ... I rely on it every day. Beaut !

A word to the wise, the advertising wallahs do ads about shrimps on a barbie ... us ordinary bogans chuck on steaks and lamb chops and chopped onions and sliced potatoes :D
I really do like it here.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

hydra3333 wrote:
Tue Mar 05, 2024 6:55 am
Suspected you'd needed to brute force it with retries if the cause was not discernible
Brilliant thinking. At first I just said let's retry up to 5 times but fortuitously I added a two-second sleep in the loop. Then using debug statements I saw that it never retried more than once. So I just put one sleep before the create decoder call. Then I noticed that the majority of the time it did work the first time without delay. We knew that from the sporadic nature of the popups, too. So now I do the first try without a delay and if it fails, I delay and try again. I do try 5 times and then do the popup if it continues failing, just so that we will have an indication if things go wonky. My theory is that CUVID needs some time to properly close and your processing stream comes fast and furious. Occasionally the close would not be finished. We don't have a good way to actually verify that but it's good enough for me.

Thanks for the rebuke about shrimp on the barbie. I guess that's for foo-foo people, not people like you and me.

Please don't forget to tell me if you are hot to trot on any additional filters. There's a Yank saying for you.

"It began as a common phrase people used to talk about someone who was more than ready for s*x. It began in the early 1900s and derived from American jive talk, drawing from the idea of a horse eager to get going."
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

Well, just a thought ... on something probably in the too hard basket and/or not worth one's while ...

A few things seem to depend on motion estimation like the venerable mvtools2 https://avisynth.org.ru/mvtools/mvtools2.html for example
(i) temporal denoising, which you mention above
(ii) motion interpolated framerate changing
(iii) and a "DepanStabilize" :D (useful only for the home videos market)

I vaguely recall a post somewhere about a part of the nv block being able to return motion vectors however you didn't seem to be altogether convinced, so maybe it's not possible or too hard or not worth the effort to try it.

If a motion compensated framerate changing using interpolated frames and/or a "DepanStabilize" is even possible, one wonders if there'd be a speed benefit or not. Don't know if nvidia provide something handy in a lib, who knows.

Nope is always a fine and well accepted answer :D

Dare I mention it may be possible garner a couple of bob from commercializing it (or may not) ?
I really do like it here.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Yeah, I hear ya. I'll eventually get around to that.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Here is test7:

* When opening and indexing a media file directly with DGSource(), by default streams are
now not demuxed. If you want to have them be demuxed while indexing, add an @ character to the
DGSource() filename, e.g., DGSource("file.ts@").

* The DGDecodeNV manual was brought fully up-to-date, and so the Notes.txt file was removed.
This build is now considered to be a release candidate for DGDecNV 252. Changes to DGIndexNV are
insignificant. Please give the new document some scrutiny and report any issues. Thank you.

http://rationalqm.us/misc/DGDecodeNV_test7.zip

:salute: Sherman for the document update.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Oops, the 'show' option for DGDenoise() got missed in the document. Sherman will fix that and re-up it this afternoon. He's busy doing his math tutoring right now.

EDIT: manual was updated online.
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

Hello, a "quick" query. Similar to previous tests on VHS videos 0 to 7 in sequence, repeated with various settings.

If I use dn_enable=1, dn_quality="best" denoising I see these relatively consistent fps for VHS videos :

Code: Select all

after_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False, dn_enable=1, dn_quality="best", dn_strength=0.06, dn_cstrength=0.06, dn_tthresh=75.0, dn_show=0, sh_enable=1, sh_strength=0.3 ) 
stacked_video = core.std.StackVertical( [before_video, after_video] ) 
  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips.log (8 hits)
	Line  387: frame= 2558 fps=146 q=27.0 Lsize=   75442KiB time=00:01:42.20 bitrate=6047.2kbits/s speed=5.84x    
	Line  729: frame= 2669 fps=143 q=29.0 Lsize=   80114KiB time=00:01:46.64 bitrate=6154.3kbits/s speed=5.72x    
	Line 1071: frame= 2728 fps=143 q=33.0 Lsize=   81274KiB time=00:01:49.00 bitrate=6108.2kbits/s speed=5.69x    
	Line 1413: frame= 2730 fps=142 q=25.0 Lsize=   79584KiB time=00:01:49.08 bitrate=5976.8kbits/s speed=5.67x    
	Line 1755: frame= 2713 fps=142 q=29.0 Lsize=   80504KiB time=00:01:48.40 bitrate=6083.8kbits/s speed=5.66x    
	Line 2097: frame= 2575 fps=139 q=30.0 Lsize=   77023KiB time=00:01:42.88 bitrate=6133.1kbits/s speed=5.57x    
	Line 2439: frame= 2453 fps=140 q=30.0 Lsize=   73022KiB time=00:01:38.00 bitrate=6104.0kbits/s speed=5.61x    
	Line 2781: frame= 2790 fps=136 q=25.0 Lsize=   83146KiB time=00:01:51.48 bitrate=6109.9kbits/s speed=5.45x  

If I use dn_enable=3, dn_quality="best" denoising I see these relatively consistent fps for VHS videos :

Code: Select all

after_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False, dn_enable=3, dn_quality="best", dn_strength=0.06, dn_cstrength=0.06, dn_tthresh=75.0, dn_show=0, sh_enable=1, sh_strength=0.3 ) 
stacked_video = core.std.StackVertical( [before_video, after_video] ) 
  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips.log (8 hits)
	Line  387: frame= 2558 fps=143 q=27.0 Lsize=   75409KiB time=00:01:42.20 bitrate=6044.5kbits/s speed=5.71x    
	Line  729: frame= 2669 fps=141 q=29.0 Lsize=   80233KiB time=00:01:46.64 bitrate=6163.5kbits/s speed=5.62x    
	Line 1071: frame= 2728 fps=137 q=33.0 Lsize=   81386KiB time=00:01:49.00 bitrate=6116.6kbits/s speed=5.49x    
	Line 1413: frame= 2730 fps=142 q=24.0 Lsize=   79693KiB time=00:01:49.08 bitrate=5985.0kbits/s speed=5.67x    
	Line 1755: frame= 2713 fps=140 q=29.0 Lsize=   80549KiB time=00:01:48.40 bitrate=6087.2kbits/s speed=5.61x    
	Line 2097: frame= 2575 fps=139 q=29.0 Lsize=   77044KiB time=00:01:42.88 bitrate=6134.8kbits/s speed=5.57x    
	Line 2439: frame= 2453 fps=139 q=29.0 Lsize=   73031KiB time=00:01:38.00 bitrate=6104.8kbits/s speed=5.55x    
	Line 2781: frame= 2790 fps=138 q=26.0 Lsize=   82919KiB time=00:01:51.48 bitrate=6093.2kbits/s speed=5.51x  

** Whereas if I use dn_enable=1, dn_quality="good" the fps vary a bit which seems unusual:

Code: Select all

after_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False, dn_enable=1, dn_quality="good", dn_strength=0.06, dn_cstrength=0.06, dn_tthresh=75.0, dn_show=0, sh_enable=1, sh_strength=0.3 ) 
stacked_video = core.std.StackVertical( [before_video, after_video] ) 
  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips.log (8 hits)
	Line  387: frame= 2558 fps= 85 q=27.0 Lsize=   75415KiB time=00:01:42.20 bitrate=6045.0kbits/s speed=3.41x    
	Line  729: frame= 2669 fps=124 q=29.0 Lsize=   80111KiB time=00:01:46.64 bitrate=6154.0kbits/s speed=4.94x    
	Line 1071: frame= 2728 fps=169 q=33.0 Lsize=   81283KiB time=00:01:49.00 bitrate=6108.9kbits/s speed=6.76x    
	Line 1413: frame= 2730 fps=106 q=24.0 Lsize=   79592KiB time=00:01:49.08 bitrate=5977.4kbits/s speed=4.25x    
	Line 1755: frame= 2713 fps=258 q=29.0 Lsize=   80509KiB time=00:01:48.40 bitrate=6084.2kbits/s speed=10.3x    
	Line 2097: frame= 2575 fps= 72 q=30.0 Lsize=   76999KiB time=00:01:42.88 bitrate=6131.2kbits/s speed=2.88x    
	Line 2439: frame= 2453 fps= 83 q=24.0 Lsize=   72981KiB time=00:01:38.00 bitrate=6100.7kbits/s speed=3.34x    
	Line 2781: frame= 2790 fps= 90 q=26.0 Lsize=   82896KiB time=00:01:51.48 bitrate=6091.5kbits/s speed= 3.6x 
Repeated test result:
  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips.log (8 hits)
	Line  387: frame= 2558 fps=157 q=27.0 Lsize=   75402KiB time=00:01:42.20 bitrate=6043.9kbits/s speed=6.27x    
	Line  729: frame= 2669 fps= 57 q=29.0 Lsize=   80115KiB time=00:01:46.64 bitrate=6154.4kbits/s speed=2.26x    
	Line 1071: frame= 2728 fps= 71 q=33.0 Lsize=   81283KiB time=00:01:49.00 bitrate=6108.9kbits/s speed=2.83x    
	Line 1413: frame= 2730 fps=141 q=24.0 Lsize=   79581KiB time=00:01:49.08 bitrate=5976.6kbits/s speed=5.62x    
	Line 1755: frame= 2713 fps=162 q=29.0 Lsize=   80499KiB time=00:01:48.40 bitrate=6083.4kbits/s speed=6.48x    
	Line 2097: frame= 2575 fps= 89 q=30.0 Lsize=   76986KiB time=00:01:42.88 bitrate=6130.2kbits/s speed=3.57x    
	Line 2439: frame= 2453 fps= 87 q=24.0 Lsize=   72962KiB time=00:01:38.00 bitrate=6099.0kbits/s speed=3.49x    
	Line 2781: frame= 2790 fps=284 q=26.0 Lsize=   82914KiB time=00:01:51.48 bitrate=6092.8kbits/s speed=11.3x 
And if I use dn_enable=3, dn_quality="good" the fps also vary a bit :

Code: Select all

after_video = core.dgdecodenv.DGSource( r'G:\HDTV\DGtest\RESULTS\00_PostcardsFromMannum_sample-unprocessed_interlaced_CUT.DGI', deinterlace=1, use_top_field=True, use_pf=False, dn_enable=3, dn_quality="good", dn_strength=0.06, dn_cstrength=0.06, dn_tthresh=75.0, dn_show=0, sh_enable=1, sh_strength=0.3 ) 
stacked_video = core.std.StackVertical( [before_video, after_video] ) 
  G:\HDTV\DGtest\TEST_CUDASynth_VHS_clips.log (8 hits)
	Line  387: frame= 2558 fps=249 q=27.0 Lsize=   75384KiB time=00:01:42.20 bitrate=6042.6kbits/s speed=9.96x    
	Line  729: frame= 2669 fps=282 q=29.0 Lsize=   80239KiB time=00:01:46.64 bitrate=6163.9kbits/s speed=11.3x    
	Line 1071: frame= 2728 fps=249 q=33.0 Lsize=   81357KiB time=00:01:49.00 bitrate=6114.5kbits/s speed=9.96x    
	Line 1413: frame= 2730 fps=205 q=24.0 Lsize=   79668KiB time=00:01:49.08 bitrate=5983.1kbits/s speed= 8.2x    
	Line 1755: frame= 2713 fps=251 q=29.0 Lsize=   80515KiB time=00:01:48.40 bitrate=6084.7kbits/s speed=  10x    
	Line 2097: frame= 2575 fps=151 q=29.0 Lsize=   77018KiB time=00:01:42.88 bitrate=6132.7kbits/s speed=6.02x    
	Line 2439: frame= 2453 fps=135 q=29.0 Lsize=   73011KiB time=00:01:38.00 bitrate=6103.1kbits/s speed=5.38x    
	Line 2781: frame= 2790 fps=126 q=26.0 Lsize=   82922KiB time=00:01:51.48 bitrate=6093.4kbits/s speed=5.05x
Yes it's a poor test since it stacks filtered alongside unfiltered, with associated overheads.

Though I wonder, is that variation in fps to be expected ?
Perhaps the nature of the sources, or ffmpeg nvenc encoding takes longer due to less effective denoising ? Although, the first 2 lines in the ** test compared to the first 2 lines in the repeated test (in the same box) seem to render that unlikely.

Cheers

PS dn_enable options aren't described in the manual ;)
I really do like it here.
User avatar
Rocky
Posts: 3623
Joined: Fri Sep 06, 2019 12:57 pm

CUDASynth

Post by Rocky »

Thanks for pointing out the missing dn_enable stuff, m8. I have fixed it. I'll try to answer your fps variation question tomorrow as I am tired after getting 252 out the door and helping Curly with his eac3to release. Plus I just ate a large ribeye and my brain is in a fog.

BTW, in the release, I omitted the AVX512 executable as it was identical to the AVX2 one. So nothing in the code could benefit from it, apparently.

BTW2, the next filter will be a full-featured DGTweak(). In case y'all forgot, I wrote the very first Tweak() filter way way back when. :ugeek:
User avatar
hydra3333
Posts: 406
Joined: Wed Oct 06, 2010 3:34 am
Contact:

CUDASynth

Post by hydra3333 »

Rocky wrote:
Tue Mar 12, 2024 6:58 pm
Thanks for pointing out the missing dn_enable stuff, m8. I have fixed it. I'll try to answer your fps variation question tomorrow as I am tired after getting 252 out the door and helping Curly with his eac3to release. Plus I just ate a large ribeye and my brain is in a fog.
No worries. We'll deserved break from it.
A tad envious about the steak :)
I must lookup tweak now ...
I really do like it here.
User avatar
thechaoscoder
Posts: 49
Joined: Tue Jul 14, 2020 8:34 am

CUDASynth

Post by thechaoscoder »

Rocky wrote:
Tue Mar 12, 2024 6:58 pm
BTW2, the next filter will be a full-featured DGTweak(). In case y'all forgot, I wrote the very first Tweak() filter way way back when. :ugeek:
Sounds great. Will it support features like auto gain, auto balance? This filter here http://avisynth.nl/index.php/AutoAdjust is one of the better ones, but it's also a bit broken (no source code)
Post Reply