Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avisynth Filters NVENC H.265/H.264 GPU Encoding Support for Performance Boost #3

Closed
Yassine-Boutakbout opened this issue Oct 18, 2020 · 7 comments

Comments

@Yassine-Boutakbout
Copy link

Is your feature request related to a problem? Please describe.

I'm Always frustrated when i try to encode Avisynth scripts (Video Applied Denoising and Sharpening Filters) using NVENC to benefit form GPU performance boost, and to lower encode time. Very often, created processes use CPU only, Nowadays in many Computers, GPU is a present computation component, it would be nice to get use of them to help speed the process of encoding knowing that Avisynth Plugins/Scripts take a lot of compute resources.

Describe the solution you'd like

Supporting Nvidia GPUs high computation capabilities would make MP_PIPELINE interesting, GPUs allow parallel computing, so, a good use of these GPUs will reduce encoding time.

Describe alternatives you've considered

if you guys code in C, CUDA will allow you to accomplish such task.

Explain why the feature matters to you

These days, Speed and Effeciency are very requested, now that everyone possesses a GPU Computer configuration, it's time to get use of them.

@SAPikachu
Copy link
Owner

AviSynth (and most of the plugins) is not designed to be run on GPU, MP_Pipeline's core is still AviSynth so we have no way to make it run (entirely) on GPU. Some plugins can offload their own computation to GPU and that's the best we can get.

@realfinder
Copy link

there are this https://github.com/nekopanda/AviSynthPlus

anyway it's kinda selfish to support cuda not opencl since not all people use or can get nvidia

@realfinder
Copy link

also, I don't think it will be any better to use gpu unless the function is mathematically intense (like NLMeans but there are KNLMeansCL already)

@Yassine-Boutakbout
Copy link
Author

@SAPikachu Ok, I understand, so in the best conditions you get lucky if you have plugins that support GPU computation, so far i tried a lot to figure out the performance issue but nothing seems to get the status in advance. Maybe real.finder know from where i should strike the problem since i'm using his filters (what he assembled together as avisynth filters).

@realfinder i don't know much about OpenCL, if it manages to communicate with GPU libraries, then it's a profit to generalize on all type of GPU (AMD included). also GPU helps to encode very faster regardless of type and intensity of filter/function, in my opinion, every fps boost should be drawn out of the GPU. and btw, correct me if i'm wrong, i assume you're a.k.a AmjadSONY. If that's the case, i'm using Denoising filters (Spatio-Temporal "deen()", and Spatial "eDeen()") that are very heavy for CPU to handle alone, that's what drove me here. more problem details are on doom9 forum StaxRip 2.0 page 111 @Legend Post. I'm using Avisynth+. maybe you know how to solve that, please help ^^.

@realfinder
Copy link

I did post in doom9

but also I will answer a few things here

1st I didn't see any filter from me, maybe you mean it's my plugins collection pack?

2nd, both "deen()" and Spatial "eDeen()" are very old and close source so you will not get much from them whether quality or speed

and as I and SAPikachu said, GPU is not magic for Performance Boost for everything, It depends on how the filter work, and when the data going from cpu to gpu and gpu to cpu it lost some speed so that why gpu in x264 was not succeed, NVENC is another story since it full hardware encoder, but again when the filter is mathematically intense as I said it will benefit from gpu indeed, also in the case of video decoder it will leave more cpu power for cpu filters (but in your case is not since you didn't use 100% of cpu power in first place)

and if you insists to get GPU in avs, you can try https://github.com/nekopanda/AviSynthPlus/releases as I said with https://github.com/nekopanda/AviSynthCUDAFilters/releases also LSMASHSource has gpu decoder http://avisynth.nl/index.php/LSMASHSource

@Yassine-Boutakbout
Copy link
Author

Yassine-Boutakbout commented Oct 20, 2020

thanks for replying in doom9, i'm really grateful.

i get good performance, but also some artifacts are showing up for some reason, more details in doom9.

i use these filters Mediafire->Avisynth x64 because they are organised and assembled regularly, and not everyone is doing such thing unless he's passioned ^^

i'm aware that "deen" and "edeen" are very old, but i couldn't get better filters, or i didn't know there are better ones.

For the GPU story i see what you mean, i understand now why it's not working with every filter. now i'm really confused here i don't know what approach i'll engage CPU? or GPU? anyway i will try to make something with CUDA filters using those links you suggested, but please, i need your expertise and i'm really open to your suggestions and ready to consider your adviced filters, especially good ones that you know in Denoising and Sharpening, maybe it will be better if i show you what i'm trying to accomplish, you might know what's better to do.

one last thing! there's also FFmpeg Encoder that supports a lot of libraries, what do you think about it?

thank you very much for everything ^^.

please if you want to contact me, this is my email : boutakbout.yassine@gmail.com

@realfinder
Copy link

yes, this getting off topic, so it's better to close this ticket

and yes I am the one who made this pack in mediafire, you can find me in discord (with AmjadSONY nickname) since I don't check email every times

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants