我一直把 RTX 超分辨率设置为最高的 4 档,但是今天我发现有时我显卡的算力不够用。
我的显示器是 2560x1440 75 Hz,当我全屏播放 1080p 60 fps 视频时(也就是超分辨率放大到 1440p),实际上每秒输出的帧数不是 60,而是显示器刷新率的一半 37.5。
最初我以为是 Potplayer 的问题,但是当我安装了 MPC-HC 播放器之后,我发现它的表现和 Potplayer 一样。
视频在以原分辨率播放时是正常的 60 fps,但是一旦全屏就变成 37.5 fps。
折腾许久未果,后来我发现了盲点,把视频播放区域逐渐拖大,发现随着实际渲染分辨率的增加,帧数逐渐降低,这才意识到是显卡的算力不够。
未放大时:
接近窗口最大化时:
全屏时:
之后我把超分辨率档位降低到 3 档,问题解决了,能始终保持 60 fps。
之后我又观察了 GPU 使用率的一些数据。
我的 GPU 是 3070 Laptop,当 VSR 为 4 档时,窗口最大化播放 1080p 60fps 的视频,GPU 使用率已经超过了 90%。
全屏时帧数当然会进一步降低,但是 MPC 渲染器在全屏后主动把渲染帧数降低到了显示器刷新率的 1/2,所以帧数变成了 37.5,GPU 使用率也随之下降到了65%。
如果是在浏览器里全屏播放,只会单纯降低帧率,不会像 MPC 渲染器一样降低到刷新率的一半。
此时由于显卡瓶颈,我无法得知把视频维持在 60fps 需要多少算力,只能大致估算。
当我窗口最大化播放时,帧率为 48,显卡功耗已经拉满:
上图中显示显卡使用率已经 99%,不过任务管理器里的 3D 使用率低一些,为 94%。
如果按任务管理器的数据推算,保持 60 帧需要 118% 的 3D 使用率。
把质量档降为 3,可以维持 60 fps,此时使用率为 67%,降低了很多。
(不过功耗还是接近满载)
3 档的显卡使用率约为 4 档的 60%。
我找到了一个 720p 60fps 的视频测试,这次没有瓶颈,可以放大到 1440p 60fps。
当质量为 4 时,使用率为 61%。
当质量为 3 时,使用率为 44%。
3 档的显卡使用率约为 4 档的 70%。
按照上面两组数据粗略估算,4 档需要的算力约为 3 档的 1.4 倍。
在 B 站某个直播间看视频,1080p 30 fps。
当质量为 4 时,使用率为 50%。
功耗真是没救了。
当质量为 3 时,使用率为 36%。
功耗也降低了很多。
下面是一个低分辨率视频从 854x480 超分辨率到 1440p 的对比图。从左到右依次是:
未启用 VSR、3 档、4 档。
可以看出 3 档还是明显比 4 档差的,不管是轮廓锯齿还是颜色噪点都比较明显。
(九转大肠梗:我故意保留了一些狗牙,这样你才知道你看的是低分辨率视频)
不过我喜欢全屏看视频,为了避免 4 档出现帧率变成 37.5 的情况,还是开 3 档吧。而且这样也可以降低功耗。
在研究问题的过程中,我发现源视频的分辨率越高,放大时所需的算力越多。这和我一开始的猜想是反的。
比如有两个视频,一个是 480p,一个是 1080p,都超到 1440p,我原以为 480p 放大倍数高,1080p 放大倍数低,所以 480p 会需要更多算力。
但事实是 1080p 需要的算力更多。这或许是因为 1080p 的画面包含的信息和细节更多,所以放大时的运算也会更多。
从现在的情况来看,这张 3070 laptop 显卡就卡在这儿了。
因为我的屏幕是 1440p,那些原本就是 1440p 和 2160p 的视频不需要超分辨率。
对于低于 1440p 的视频,开 4 档的话处理不了 1080p 60 fps,但是如果降到 3 档又变得尚有余力了。
毕竟这张显卡的功耗墙是 140w,笔记本就这样了,没办法。(不过好像再提高功耗,性价比也不是很高了,特别是 30 系的能耗比不如 40 系)
怪不得我看到一些评论说 4080、4090 开 3 档把视频放大到 4k 会超过 300w 功耗,啧啧。看来实时超分辨率对个人显卡来说还是压力太大了。
请问图中查看视频信息的软件是什么?