TianZerL / Anime4KCPP

A high performance anime upscaler
GNU General Public License v3.0
1.82k stars 139 forks source link

请问作者还会继续更新吗?我看到版本已经停留很久了 #109

Open Alvin-Blithe opened 1 year ago

Alvin-Blithe commented 1 year ago

非常感谢作者!

TianZerL commented 1 year ago

作者目前在备考

Alvin-Blithe commented 1 year ago

哈哈,好的,作者加油。 另外由于我最近在折腾potplayer播放器,我使用的是lav+mpcvr+anime4cpp(使用的是加载为滤镜的dll文件版本)的滤镜配置,我看到了 #73 的留言,我尝试了多次之后,发现只要lav或者mpcvr一旦我强制要求调用独显进行工作时,就会出现卡顿无法播放的情况,但不调用独显,让lav使用软解,是都能正常工作的。当然,我对这些不甚了解。等作者有空时可以尝试一下,我只是表达一下我的做法。

TianZerL commented 1 year ago

dll滤镜工作的前提是必须把数据copy回内存,如需要硬件解码请使用DXVA2 copy-back或者D3D11 copy-back解码器。

硬解码、anime4kcpp和mpcvr三者是可以同时工作的。 image

Alvin-Blithe commented 1 year ago

那应该如何设置才行,以下是我的lav和mpcvr的设置,我同时在mpcvr中使用了超分辨 Snipaste_2023-11-07_20-52-32 image

Alvin-Blithe commented 1 year ago

不过即便我在lav中选择none进行软解,我的独显已经在运行时少则占用50%,大部分时候占用在80%~90%,请问还可以让lav硬解吗?

TianZerL commented 1 year ago

不过即便我在lav中选择none进行软解,我的独显已经在运行时少则占用50%,大部分时候占用在80%~90%,请问还可以让lav硬解吗?

解码是单独的电路,一般不影响显卡渲染和计算,要开硬解的话,lav解码器选dxva2 copy-back或者d3d11 copy-back,显卡可以选核显或者独显,mpcvr保持默认就行。

显卡高负载的原因可能源于mpcvr的超分,1080p的原视屏两次超分就是8k了。

关于上面提到的解码显卡选择,还需要具体问题具体分析,力求最少的数据拷贝次数,毕竟就算是算力很高的显卡,如果你的系统内存或者显存带宽跟不上依然可能卡顿。 如果你的系统是核显负责输出的话,可以用核显解码,独显跑滤镜,最后交给核显输出,这样理论上数据流只需要在显存内存来回拷贝2次,性能可能是比较好的,此时如果你开独显硬解,则数据理论上需要拷贝3次。 如果是独显直连,则应该完全绕开核显,从解码到渲染都不使用核显。 实际情况还需要测试。

Alvin-Blithe commented 1 year ago

感谢你的耐心解释,我尝试了让lav解码使用核显,mpcvr用独显渲染,并不会出现卡顿和崩溃现象。当然,我在资源管理器中看到我的内存以及显卡的显存带宽是完全足够的。 另外,我可以向你请教一下这个滤镜和原来的0.9hlsl版的着色器一起使用,能够起到加强的效果吗? 2.我现在的设置是属于使用独显来使这个滤镜进行吗?我在wiki中没有理解这些设置的参数,谢谢。 Snipaste_2023-11-07_22-10-29

TianZerL commented 1 year ago

原版hlsl没必要使用,现在的配置就是在使用独立显卡的cuda跑滤镜。

mpcvr用独立显卡渲染的话,如果显示器是核显负责输出,还是会多一次把数据复制给核显的过程,和打游戏时类似,如果核显的性能不是弱到跑不动mpcvr渲染器的话,可能并不会有性能提升,但会增加带宽压力。

Alvin-Blithe commented 1 year ago

好的,谢谢作者